Browse Source

Update local copy of manual (v4.6).

accumulation-v4.7
Dave Parker 6 years ago
parent
commit
6c21696ac8
  1. 32
      manual/Appendices/AllOnOnePage.html
  2. 32
      manual/Appendices/ExplicitModelFiles.html
  3. 6
      manual/ConfiguringPRISM/AllOnOnePage.html
  4. 6
      manual/ConfiguringPRISM/ComputationEngines.html
  5. 2
      manual/InstallingPRISM/AllOnOnePage.html
  6. 2
      manual/InstallingPRISM/Main.html
  7. 349
      manual/Main/AllOnOnePage.html
  8. 2
      manual/Main/Main.html
  9. 6
      manual/PropertySpecification/AllOnOnePage.html
  10. 2
      manual/PropertySpecification/PTAProperties.html
  11. 4
      manual/PropertySpecification/Reward-basedProperties.html
  12. 173
      manual/RunningPRISM/AllOnOnePage.html
  13. 5
      manual/RunningPRISM/Experiments.html
  14. 5
      manual/RunningPRISM/ExplicitModelImport.html
  15. 4
      manual/RunningPRISM/LoadingAndBuildingAModel.html
  16. 16
      manual/RunningPRISM/ModelChecking.html
  17. 2
      manual/RunningPRISM/SupportForPEPAModels.html
  18. 16
      manual/ThePRISMLanguage/AllOnOnePage.html
  19. 12
      manual/ThePRISMLanguage/Expressions.html
  20. 2
      manual/ThePRISMLanguage/Main.html
  21. 2
      manual/ThePRISMLanguage/PTAs.html
  22. 2
      manual/index.html
  23. 20
      manual/pub/skins/offline/css/prism.css

32
manual/Appendices/AllOnOnePage.html

@ -116,6 +116,7 @@ Below, we describe:
<div class='vspace'></div><ul><li><a href='AllOnOnePage.html#sta'>State (.sta) files</a>
</li><li><a href='AllOnOnePage.html#tra'>Transitions (.tra) files</a>
</li><li><a href='AllOnOnePage.html#trarows'>Transitions (.tra) files (row form)</a>
</li><li><a href='AllOnOnePage.html#lab'>Labels (.lab) files</a>
</li><li><a href='AllOnOnePage.html#rews'>State rewards (.rews) files</a>
</li><li><a href='AllOnOnePage.html#rewt'>Transition rewards (.rewt) files</a>
</li></ul><div class='vspace'></div><hr />
@ -285,6 +286,25 @@ To clarify terminology: each <em>state</em> of the MDP contains (nondeterministi
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/Appendices/AllOnOnePage?action=sourceblock&amp;num=8' type='text/plain'>[&#036;[Get Code]]</a></div>
</div>
<div class='vspace'></div><hr />
<p class='vspace'><a name='lab' id='lab'></a>
</p><h3>Labels (.lab) files</h3>
<p>These contain an explicit list of which <a class='wikilink' href='../ThePRISMLanguage/FormulasAndLabels.html'>labels</a> are satisfied in each state.
The first line lists the labels, assigning each one an index.
The remaining lines list indices of all states satisfying one or more labels,
followed by a list of the the indices of labels that that are satisfied in it.
This includes the built-in labels <code>"init"</code> (initial states) and <code>deadlock</code> (deadlock states).
An example is shown below, where, for example, both <code>"heads"</code> and <code>"end"</code> are satisfied in state 2.
</p>
<div class='vspace'></div>
<div class='sourceblock ' id='sourceblock9'>
<div class='sourceblocktext'><div class="text">0=&quot;init&quot; 1=&quot;deadlock&quot; 2=&quot;heads&quot; 3=&quot;tails&quot; 4=&quot;end&quot;<br />
0: 0<br />
2: 2 4<br />
3: 3 4</div></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/Appendices/AllOnOnePage?action=sourceblock&amp;num=9' type='text/plain'>[&#036;[Get Code]]</a></div>
</div>
<div class='vspace'></div><hr />
<p class='vspace'><a name='rews' id='rews'></a>
</p><h3>State rewards (.srew) files</h3>
@ -293,12 +313,12 @@ To clarify terminology: each <em>state</em> of the MDP contains (nondeterministi
<p class='vspace'>For the <a class='urllink' href='../uploads/lec3.pm'>lec3.pm</a> (6-state) DTMC example from above, we get rewards in 3 states (0, 4 and 5):
</p>
<div class='vspace'></div>
<div class='sourceblock ' id='sourceblock9'>
<div class='sourceblock ' id='sourceblock10'>
<div class='sourceblocktext'><div class="text">6 3<br />
0 2<br />
4 1<br />
5 1</div></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/Appendices/AllOnOnePage?action=sourceblock&amp;num=9' type='text/plain'>[&#036;[Get Code]]</a></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/Appendices/AllOnOnePage?action=sourceblock&amp;num=10' type='text/plain'>[&#036;[Get Code]]</a></div>
</div>
<div class='vspace'></div><hr />
@ -310,25 +330,25 @@ except that probabilities/rates are replaced with reward values, and the number
<p class='vspace'>For the <a class='urllink' href='../uploads/lec3.pm'>lec3.pm</a> (6-state) DTMC example from above, we get non-zero transition rewards on 4 transitions:
</p>
<div class='vspace'></div>
<div class='sourceblock ' id='sourceblock10'>
<div class='sourceblock ' id='sourceblock11'>
<div class='sourceblocktext'><div class="text">6 4<br />
1 0 1<br />
1 2 1<br />
1 4 1<br />
2 5 2</div></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/Appendices/AllOnOnePage?action=sourceblock&amp;num=10' type='text/plain'>[&#036;[Get Code]]</a></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/Appendices/AllOnOnePage?action=sourceblock&amp;num=11' type='text/plain'>[&#036;[Get Code]]</a></div>
</div>
<p class='vspace'>And or the <a class='urllink' href='../uploads/lec12mdpa.nm'>lec12mdpa.nm</a> (4-state) MDP example, we get non-zero transition rewards on 4 transitions:
</p>
<div class='vspace'></div>
<div class='sourceblock ' id='sourceblock11'>
<div class='sourceblock ' id='sourceblock12'>
<div class='sourceblocktext'><div class="text">4 5 4<br />
1 0 2 6<br />
1 0 3 6<br />
1 1 0 5<br />
1 1 1 5</div></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/Appendices/AllOnOnePage?action=sourceblock&amp;num=11' type='text/plain'>[&#036;[Get Code]]</a></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/Appendices/AllOnOnePage?action=sourceblock&amp;num=12' type='text/plain'>[&#036;[Get Code]]</a></div>
</div>
</div>

32
manual/Appendices/ExplicitModelFiles.html

@ -119,6 +119,7 @@ Below, we describe:
<div class='vspace'></div><ul><li><a href='ExplicitModelFiles.html#sta'>State (.sta) files</a>
</li><li><a href='ExplicitModelFiles.html#tra'>Transitions (.tra) files</a>
</li><li><a href='ExplicitModelFiles.html#trarows'>Transitions (.tra) files (row form)</a>
</li><li><a href='ExplicitModelFiles.html#lab'>Labels (.lab) files</a>
</li><li><a href='ExplicitModelFiles.html#rews'>State rewards (.rews) files</a>
</li><li><a href='ExplicitModelFiles.html#rewt'>Transition rewards (.rewt) files</a>
</li></ul><div class='vspace'></div><hr />
@ -288,6 +289,25 @@ To clarify terminology: each <em>state</em> of the MDP contains (nondeterministi
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/Appendices/ExplicitModelFiles?action=sourceblock&amp;num=8' type='text/plain'>[&#036;[Get Code]]</a></div>
</div>
<div class='vspace'></div><hr />
<p class='vspace'><a name='lab' id='lab'></a>
</p><h3>Labels (.lab) files</h3>
<p>These contain an explicit list of which <a class='wikilink' href='../ThePRISMLanguage/FormulasAndLabels.html'>labels</a> are satisfied in each state.
The first line lists the labels, assigning each one an index.
The remaining lines list indices of all states satisfying one or more labels,
followed by a list of the the indices of labels that that are satisfied in it.
This includes the built-in labels <code>"init"</code> (initial states) and <code>deadlock</code> (deadlock states).
An example is shown below, where, for example, both <code>"heads"</code> and <code>"end"</code> are satisfied in state 2.
</p>
<div class='vspace'></div>
<div class='sourceblock ' id='sourceblock9'>
<div class='sourceblocktext'><div class="text">0=&quot;init&quot; 1=&quot;deadlock&quot; 2=&quot;heads&quot; 3=&quot;tails&quot; 4=&quot;end&quot;<br />
0: 0<br />
2: 2 4<br />
3: 3 4</div></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/Appendices/ExplicitModelFiles?action=sourceblock&amp;num=9' type='text/plain'>[&#036;[Get Code]]</a></div>
</div>
<div class='vspace'></div><hr />
<p class='vspace'><a name='rews' id='rews'></a>
</p><h3>State rewards (.srew) files</h3>
@ -296,12 +316,12 @@ To clarify terminology: each <em>state</em> of the MDP contains (nondeterministi
<p class='vspace'>For the <a class='urllink' href='../uploads/lec3.pm'>lec3.pm</a> (6-state) DTMC example from above, we get rewards in 3 states (0, 4 and 5):
</p>
<div class='vspace'></div>
<div class='sourceblock ' id='sourceblock9'>
<div class='sourceblock ' id='sourceblock10'>
<div class='sourceblocktext'><div class="text">6 3<br />
0 2<br />
4 1<br />
5 1</div></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/Appendices/ExplicitModelFiles?action=sourceblock&amp;num=9' type='text/plain'>[&#036;[Get Code]]</a></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/Appendices/ExplicitModelFiles?action=sourceblock&amp;num=10' type='text/plain'>[&#036;[Get Code]]</a></div>
</div>
<div class='vspace'></div><hr />
@ -313,25 +333,25 @@ except that probabilities/rates are replaced with reward values, and the number
<p class='vspace'>For the <a class='urllink' href='../uploads/lec3.pm'>lec3.pm</a> (6-state) DTMC example from above, we get non-zero transition rewards on 4 transitions:
</p>
<div class='vspace'></div>
<div class='sourceblock ' id='sourceblock10'>
<div class='sourceblock ' id='sourceblock11'>
<div class='sourceblocktext'><div class="text">6 4<br />
1 0 1<br />
1 2 1<br />
1 4 1<br />
2 5 2</div></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/Appendices/ExplicitModelFiles?action=sourceblock&amp;num=10' type='text/plain'>[&#036;[Get Code]]</a></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/Appendices/ExplicitModelFiles?action=sourceblock&amp;num=11' type='text/plain'>[&#036;[Get Code]]</a></div>
</div>
<p class='vspace'>And or the <a class='urllink' href='../uploads/lec12mdpa.nm'>lec12mdpa.nm</a> (4-state) MDP example, we get non-zero transition rewards on 4 transitions:
</p>
<div class='vspace'></div>
<div class='sourceblock ' id='sourceblock11'>
<div class='sourceblock ' id='sourceblock12'>
<div class='sourceblocktext'><div class="text">4 5 4<br />
1 0 2 6<br />
1 0 3 6<br />
1 1 0 5<br />
1 1 1 5</div></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/Appendices/ExplicitModelFiles?action=sourceblock&amp;num=11' type='text/plain'>[&#036;[Get Code]]</a></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/Appendices/ExplicitModelFiles?action=sourceblock&amp;num=12' type='text/plain'>[&#036;[Get Code]]</a></div>
</div>
</div>

6
manual/ConfiguringPRISM/AllOnOnePage.html

@ -230,6 +230,12 @@ Performance (time and space), however, may vary significantly and if you are usi
<p class='vspace'>Note also that precise details regarding the memory usage of the current engine are displayed during model checking (from the GUI, check the "Log" tab). This can provide valuable feedback when experimenting with different engines.
</p>
<p class='vspace'>PRISM also has some basic support for automatically selecting the engine (and other settings) heuristically,
based on the size and type of the model, and the property being checked.
Use, for example, <code>-heuristic speed</code> from the command-line to choose options
which target computation speed rather than saving memory.
This is also available from the "Heuristic" option under the "PRISM" tab of the "Options" dialog in the GUI.
</p>
<div class='vspace'></div><h3>Approximate/statistical model checking</h3>
<p>Although it is not treated as a separate "engine", like those above,
PRISM also provides approximate/statistical model checking,

6
manual/ConfiguringPRISM/ComputationEngines.html

@ -149,6 +149,12 @@ Performance (time and space), however, may vary significantly and if you are usi
<p class='vspace'>Note also that precise details regarding the memory usage of the current engine are displayed during model checking (from the GUI, check the "Log" tab). This can provide valuable feedback when experimenting with different engines.
</p>
<p class='vspace'>PRISM also has some basic support for automatically selecting the engine (and other settings) heuristically,
based on the size and type of the model, and the property being checked.
Use, for example, <code>-heuristic speed</code> from the command-line to choose options
which target computation speed rather than saving memory.
This is also available from the "Heuristic" option under the "PRISM" tab of the "Options" dialog in the GUI.
</p>
<div class='vspace'></div><h3>Approximate/statistical model checking</h3>
<p>Although it is not treated as a separate "engine", like those above,
PRISM also provides approximate/statistical model checking,

2
manual/InstallingPRISM/AllOnOnePage.html

@ -123,7 +123,7 @@ which install the required dependencies and PRISM itself. They can be found in t
<div class='vspace'></div>
<div class='sourceblock ' id='sourceblock1'>
<div class='sourceblocktext'><div class="shell"><span style="font-weight:bold;">cd "c:\Program Files\prism-4.5-win\bin"</span><br/>
<span style="font-weight:bold;">prism ..\examples\dice\dice.pm</span><br/>
<span style="font-weight:bold;">prism ..\prism-examples\simple\dice\dice.pm</span><br/>
</div></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/InstallingPRISM/AllOnOnePage?action=sourceblock&amp;num=1' type='text/plain'>[&#036;[Get Code]]</a></div>
</div>

2
manual/InstallingPRISM/Main.html

@ -126,7 +126,7 @@ which install the required dependencies and PRISM itself. They can be found in t
<div class='vspace'></div>
<div class='sourceblock ' id='sourceblock1'>
<div class='sourceblocktext'><div class="shell"><span style="font-weight:bold;">cd "c:\Program Files\prism-4.5-win\bin"</span><br/>
<span style="font-weight:bold;">prism ..\examples\dice\dice.pm</span><br/>
<span style="font-weight:bold;">prism ..\prism-examples\simple\dice\dice.pm</span><br/>
</div></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/InstallingPRISM/Instructions?action=sourceblock&amp;num=1' type='text/plain'>[&#036;[Get Code]]</a></div>
</div>

349
manual/Main/AllOnOnePage.html
File diff suppressed because it is too large
View File

2
manual/Main/Main.html

@ -78,7 +78,7 @@ a.varlink { text-decoration:none; }
This document is the main source of information regarding the installation and operation of the PRISM tool. For access to other resources, such as <a class='urllink' href='http://www.prismmodelchecker.org/publications.php'>related publications</a> and details of <a class='urllink' href='http://www.prismmodelchecker.org/casestudies/'>case studies</a>, or to <a class='urllink' href='http://www.prismmodelchecker.org/download.php'>download</a> the tool itself, see the main <a class='urllink' href='http://www.prismmodelchecker.org/'>PRISM website</a>.
</p>
<div class='vspace'></div><h3>Which version of PRISM does this manual describe?</h3>
<p>This manual describes version <strong>4.5</strong>.
<p>This manual describes version <strong>4.6</strong>.
In general, the online copy of the manual corresponds to the most recent
<a class='urllink' href='http://www.prismmodelchecker.org/download.php'>publically available</a>
version of PRISM (including beta versions).

6
manual/PropertySpecification/AllOnOnePage.html

@ -770,8 +770,8 @@ the rewards associated with the model correspond to power consumption, the prope
</p>
<div class='vspace'></div>
<table border='1' cellpadding='5' ><tr ><td >&nbsp;</td><td align='center'><code><strong>F</strong></code></td><td align='center'>cosafe</td><td align='center'><code><strong>C</strong>&lt;=t</code></td><td align='center'><code><strong>C</strong></code></td><td align='left'><code><strong>I</strong>=t</code></td><td align='right'><code><strong>S</strong></code></td></tr>
<tr ><td align='center'><strong>DTMCs</strong></td><td align='center'>SMHE</td><td align='center'>SMHE</td><td align='center'>SMHE</td><td align='center'>SMHE</td><td align='center'>SMHE</td><td align='right'>SMH-</td></tr>
<tr ><td align='center'><strong>CTMCs</strong></td><td align='center'>SMHE</td><td align='center'>SMHE</td><td align='center'>SMHE</td><td align='center'>SMHE</td><td align='center'>SMHE</td><td align='right'>SMH-</td></tr>
<tr ><td align='center'><strong>DTMCs</strong></td><td align='center'>SMHE</td><td align='center'>SMHE</td><td align='center'>SMHE</td><td align='center'>SMHE</td><td align='center'>SMHE</td><td align='right'>SMHE</td></tr>
<tr ><td align='center'><strong>CTMCs</strong></td><td align='center'>SMHE</td><td align='center'>SMHE</td><td align='center'>SMHE</td><td align='center'>SMHE</td><td align='center'>SMHE</td><td align='right'>SMHE</td></tr>
<tr ><td align='center'><strong>MDPs</strong></td><td align='center'>SM-E</td><td align='center'>SMHE</td><td align='center'>S--E</td><td align='center'>----</td><td align='center'>SM-E</td><td align='right'>----</td></tr>
</table><hr />
<h1>Non-Probabilistic Properties</h1>
@ -1158,7 +1158,7 @@ e.g. until (<code><strong>U</strong></code>) properties are allowed, as are cloc
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/PropertySpecification/AllOnOnePage?action=sourceblock&amp;num=71' type='text/plain'>[&#036;[Get Code]]</a></div>
</div>
<p class='vspace'>This engine, however, does not yet support time-bounded reachability properties and, like the "stochastic games" engine, does not allowed nested properties. Also, references to clocks must, like in the modelling language, not use strict comparisons
<p class='vspace'>This engine, like the "stochastic games" engine, does not allowed nested properties. Also, references to clocks must, like in the modelling language, not use strict comparisons
(e.g. <code>x&lt;=5</code> is allowed, <code>x&lt;5</code> is not).
</p>
<p class='vspace'>The digital clocks also has support for rewards:

2
manual/PropertySpecification/PTAProperties.html

@ -124,7 +124,7 @@ e.g. until (<code><strong>U</strong></code>) properties are allowed, as are cloc
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/PropertySpecification/PTAProperties?action=sourceblock&amp;num=2' type='text/plain'>[&#036;[Get Code]]</a></div>
</div>
<p class='vspace'>This engine, however, does not yet support time-bounded reachability properties and, like the "stochastic games" engine, does not allowed nested properties. Also, references to clocks must, like in the modelling language, not use strict comparisons
<p class='vspace'>This engine, like the "stochastic games" engine, does not allowed nested properties. Also, references to clocks must, like in the modelling language, not use strict comparisons
(e.g. <code>x&lt;=5</code> is allowed, <code>x&lt;5</code> is not).
</p>
<p class='vspace'>The digital clocks also has support for rewards:

4
manual/PropertySpecification/Reward-basedProperties.html

@ -306,8 +306,8 @@ the rewards associated with the model correspond to power consumption, the prope
</p>
<div class='vspace'></div>
<table border='1' cellpadding='5' ><tr ><td >&nbsp;</td><td align='center'><code><strong>F</strong></code></td><td align='center'>cosafe</td><td align='center'><code><strong>C</strong>&lt;=t</code></td><td align='center'><code><strong>C</strong></code></td><td align='left'><code><strong>I</strong>=t</code></td><td align='right'><code><strong>S</strong></code></td></tr>
<tr ><td align='center'><strong>DTMCs</strong></td><td align='center'>SMHE</td><td align='center'>SMHE</td><td align='center'>SMHE</td><td align='center'>SMHE</td><td align='center'>SMHE</td><td align='right'>SMH-</td></tr>
<tr ><td align='center'><strong>CTMCs</strong></td><td align='center'>SMHE</td><td align='center'>SMHE</td><td align='center'>SMHE</td><td align='center'>SMHE</td><td align='center'>SMHE</td><td align='right'>SMH-</td></tr>
<tr ><td align='center'><strong>DTMCs</strong></td><td align='center'>SMHE</td><td align='center'>SMHE</td><td align='center'>SMHE</td><td align='center'>SMHE</td><td align='center'>SMHE</td><td align='right'>SMHE</td></tr>
<tr ><td align='center'><strong>CTMCs</strong></td><td align='center'>SMHE</td><td align='center'>SMHE</td><td align='center'>SMHE</td><td align='center'>SMHE</td><td align='center'>SMHE</td><td align='right'>SMHE</td></tr>
<tr ><td align='center'><strong>MDPs</strong></td><td align='center'>SM-E</td><td align='center'>SMHE</td><td align='center'>S--E</td><td align='center'>----</td><td align='center'>SM-E</td><td align='right'>----</td></tr>
</table>
</div>

173
manual/RunningPRISM/AllOnOnePage.html

@ -218,7 +218,9 @@ Some screenshots of the GUI version of PRISM are shown below.
<div class='vspace'></div><div class="img"> <a class='urllink' href='../uploads/gui2.gif'><img width='500' src='../uploads/gui2.gif' alt='' /></a><br /><span class="caption"><strong>The PRISM GUI (model checking)</strong></span></div>
<div class='vspace'></div><hr />
<h1>Loading And Building a Model</h1>
<p>Typically, when using PRISM, the first step is to load a model that has been specified in the PRISM modelling language. If using the GUI, select menu option "Model | Open Model" and choose a file. There are a selection of sample PRISM model files in the <code>examples</code> directory of the distribution.
<p>Typically, when using PRISM, the first step is to load a model that has been specified in the PRISM modelling language. If using the GUI, select menu option "Model | Open Model" and choose a file. There are a selection of sample PRISM model files in the <code>prism-examples</code> directory of the distribution.
A few very small models are contained in the subdirectory <code>simple</code>;
the rest are in subdirectories grouped by model type.
</p>
<p class='vspace'>The model will then be displayed in the editor in the "Model" tab of the GUI window. The file is parsed upon loading. If there are no errors, information about the modules, variables, and other components of the model is displayed in the panel to the left and a green tick will be visible. If there are errors in the file, a red cross will appear instead and the errors will be highlighted in the model editor. To view details of the error, position the mouse pointer over the source of the error (or over the red cross). Alternatively, select menu option "Model | Parse Model" and the error mIessage will be displayed in a message box. Model descriptions can, of course, also be typed from scratch into the GUI's editor.
</p>
@ -695,7 +697,7 @@ You can optionally request that state descriptions are added to each state of gr
<p>Typically, once a model has been constructed, it is analysed through model checking.
Properties are specified as described in the "<a class='wikilink' href='../PropertySpecification/Main.html'>Property Specification</a>" section,
and are usually kept in files with extensions <code>.props</code>, <code>.pctl</code> or <code>.csl</code>.
There are properties files accompanying most of the sample PRISM models in the <code>examples</code> directory.
There are properties files accompanying most of the sample PRISM models in the <code>prism-examples</code> directory.
</p>
<p class='vspace'>
</p><h3>GUI</h3>
@ -749,15 +751,25 @@ For example, to check only the fourth property in the file:
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/RunningPRISM/AllOnOnePage?action=sourceblock&amp;num=29' type='text/plain'>[&#036;[Get Code]]</a></div>
</div>
<p class='vspace'>Alternatively, the contents of a properties file can be specified directly from the command-line, using the <code>-pf</code> switch:
<p class='vspace'>You can also provide a comma-separated list of multiple properties to check,
using neither numerical indices or property names:
</p>
<div class='vspace'></div>
<div class='sourceblock ' id='sourceblock30'>
<div class='sourceblocktext'><div class="shell"><span style="font-weight:bold;">prism poll2.sm -pf 'P&gt;=0.5 [ true U&lt;=5 (s=1 &amp; a=0) ]'</span><br/>
<div class='sourceblocktext'><div class="shell"><span style="font-weight:bold;">prism poll2.sm poll.csl -prop 4,5,safe</span><br/>
</div></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/RunningPRISM/AllOnOnePage?action=sourceblock&amp;num=30' type='text/plain'>[&#036;[Get Code]]</a></div>
</div>
<p class='vspace'>Alternatively, the contents of a properties file can be specified directly from the command-line, using the <code>-pf</code> switch:
</p>
<div class='vspace'></div>
<div class='sourceblock ' id='sourceblock31'>
<div class='sourceblocktext'><div class="shell"><span style="font-weight:bold;">prism poll2.sm -pf 'P&gt;=0.5 [ true U&lt;=5 (s=1 &amp; a=0) ]'</span><br/>
</div></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/RunningPRISM/AllOnOnePage?action=sourceblock&amp;num=31' type='text/plain'>[&#036;[Get Code]]</a></div>
</div>
<p class='vspace'>The switches <code>-pctl</code> and <code>-csl</code> are aliases for <code>-pf</code>.
</p>
<p class='vspace'>Note the use of single quotes (<code>'...'</code>) to avoid characters such as
@ -845,10 +857,10 @@ If, for a given property, statistical model checking results in one or more path
<p>Statistical model checking can also be enabled from the command-line version of PRISM, by including the <code>-sim</code> switch. The default methods used are CI (Confidence Interval) for "quantitative" properties and SPRT (Sequential Probability Ratio Test) for "bounded" properties. To select a particular method, use switch <code>-simmethod &lt;method&gt;</code> where <code>&lt;method&gt;</code> is one of <code>ci</code>, <code>aci</code>, <code>apmc</code> and <code>sprt</code>. For example:
</p>
<div class='vspace'></div>
<div class='sourceblock ' id='sourceblock31'>
<div class='sourceblock ' id='sourceblock32'>
<div class='sourceblocktext'><div class="shell"><span style="font-weight:bold;">prism model.pm model.pctl -prop 1 -sim -simmethod aci</span><br/>
</div></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/RunningPRISM/AllOnOnePage?action=sourceblock&amp;num=31' type='text/plain'>[&#036;[Get Code]]</a></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/RunningPRISM/AllOnOnePage?action=sourceblock&amp;num=32' type='text/plain'>[&#036;[Get Code]]</a></div>
</div>
<p class='vspace'>PRISM has default values for the various simulation method parameters, but these can also be specified using the switches <code>-simsamples</code>, <code>-simconf</code>, <code>-simwidth</code> and <code>-simapprox</code>. The exact meaning of these switches for each simulation method is given in the table below.
@ -877,19 +889,19 @@ time value for which you wish to compute probabilities.
From the command-line, add the <code>-steadystate</code> (or <code>-ss</code>) switch:
</p>
<div class='vspace'></div>
<div class='sourceblock ' id='sourceblock32'>
<div class='sourceblock ' id='sourceblock33'>
<div class='sourceblocktext'><div class="shell"><span style="font-weight:bold;">prism poll2.sm -ss</span><br/>
</div></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/RunningPRISM/AllOnOnePage?action=sourceblock&amp;num=32' type='text/plain'>[&#036;[Get Code]]</a></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/RunningPRISM/AllOnOnePage?action=sourceblock&amp;num=33' type='text/plain'>[&#036;[Get Code]]</a></div>
</div>
<p class='vspace'>for steady-state probabilities or the <code>-transient</code> (or <code>-tr</code>) switch:
</p>
<div class='vspace'></div>
<div class='sourceblock ' id='sourceblock33'>
<div class='sourceblock ' id='sourceblock34'>
<div class='sourceblocktext'><div class="shell"><span style="font-weight:bold;">prism poll2.sm -tr 2.0</span><br/>
</div></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/RunningPRISM/AllOnOnePage?action=sourceblock&amp;num=33' type='text/plain'>[&#036;[Get Code]]</a></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/RunningPRISM/AllOnOnePage?action=sourceblock&amp;num=34' type='text/plain'>[&#036;[Get Code]]</a></div>
</div>
<p class='vspace'>for transient probabilities, again specifying a time value in the latter case.
@ -899,11 +911,11 @@ either on the screen (from the command-line) or in the log (from the GUI).
<p class='vspace'>To instead export the vector of computed probabilities to a file, use the "Model | Compute/export" option from the GUI, or the <code>-exportsteadystate</code> (or <code>-exportss</code>) and <code>-exporttransient</code> (or <code>-exporttr</code>) switches from the command-line:
</p>
<div class='vspace'></div>
<div class='sourceblock ' id='sourceblock34'>
<div class='sourceblock ' id='sourceblock35'>
<div class='sourceblocktext'><div class="shell"><span style="font-weight:bold;">prism poll2.sm -ss -exportss poll2-ss.txt</span><br/>
<span style="font-weight:bold;">prism poll2.sm -tr 2.0 -exporttr poll2-tr2.txt</span><br/>
</div></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/RunningPRISM/AllOnOnePage?action=sourceblock&amp;num=34' type='text/plain'>[&#036;[Get Code]]</a></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/RunningPRISM/AllOnOnePage?action=sourceblock&amp;num=35' type='text/plain'>[&#036;[Get Code]]</a></div>
</div>
<p class='vspace'>From the command-line, you can request that the probability vectors exported are in Matlab format by adding the <code>-exportmatlab</code> switch.
@ -915,30 +927,30 @@ an equiprobable choice over the set of initial states.
You can override this and provide a specific initial distribution. This is done using the <code>-importinitdist</code> switch. The format for this imported distribution is identical to the ones exported by PRISM, i.e. simply a list of probabilities for all states separated by new lines. For example, this:
</p>
<div class='vspace'></div>
<div class='sourceblock ' id='sourceblock35'>
<div class='sourceblock ' id='sourceblock36'>
<div class='sourceblocktext'><div class="shell"><span style="font-weight:bold;">prism poll2.sm -tr 1.0 -exporttr poll2-tr1.txt</span><br/>
<span style="font-weight:bold;">prism poll2.sm -tr 1.0 -importinitdist poll2-tr1.txt -exporttr poll2-tr2.txt</span><br/>
</div></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/RunningPRISM/AllOnOnePage?action=sourceblock&amp;num=35' type='text/plain'>[&#036;[Get Code]]</a></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/RunningPRISM/AllOnOnePage?action=sourceblock&amp;num=36' type='text/plain'>[&#036;[Get Code]]</a></div>
</div>
<p class='vspace'>is (essentially) equivalent to this:
</p>
<div class='vspace'></div>
<div class='sourceblock ' id='sourceblock36'>
<div class='sourceblock ' id='sourceblock37'>
<div class='sourceblocktext'><div class="shell"><span style="font-weight:bold;">prism poll2.sm -tr 2.0 -exporttr poll2-tr2.txt</span><br/>
</div></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/RunningPRISM/AllOnOnePage?action=sourceblock&amp;num=36' type='text/plain'>[&#036;[Get Code]]</a></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/RunningPRISM/AllOnOnePage?action=sourceblock&amp;num=37' type='text/plain'>[&#036;[Get Code]]</a></div>
</div>
<div class='vspace'></div><h3>Ranges of time values</h3>
<p>Finally, you can compute transient probabilities for a range of time values, e.g.:
</p>
<div class='vspace'></div>
<div class='sourceblock ' id='sourceblock37'>
<div class='sourceblock ' id='sourceblock38'>
<div class='sourceblocktext'><div class="shell"><span style="font-weight:bold;">prism poll2.sm -tr 0.1:0.01:0.2</span><br/>
</div></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/RunningPRISM/AllOnOnePage?action=sourceblock&amp;num=37' type='text/plain'>[&#036;[Get Code]]</a></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/RunningPRISM/AllOnOnePage?action=sourceblock&amp;num=38' type='text/plain'>[&#036;[Get Code]]</a></div>
</div>
<p class='vspace'>which computes transient probabilities for the time points 0.1, 0.11, 0.12, .., 0.2. In this case, the computation is done incrementally, with probabilities for each time point being computed from the previous point for efficiency.
@ -948,30 +960,30 @@ You can override this and provide a specific initial distribution. This is done
This is done by leaving one or more <a class='wikilink' href='../ThePRISMLanguage/Constants.html'>constants</a> undefined, e.g.:
</p>
<div class='vspace'></div>
<div class='sourceblock ' id='sourceblock38'>
<div class='sourceblock ' id='sourceblock39'>
<div class='sourceblocktext'><div class="prism"><span class="prismkeyword">const</span> <span class="prismkeyword">int</span> <span class="prismident">N</span>;<br/>
<span class="prismkeyword">const</span> <span class="prismkeyword">double</span> <span class="prismident">T</span>;<br/>
</div></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/RunningPRISM/AllOnOnePage?action=sourceblock&amp;num=38' type='text/plain'>[&#036;[Get Code]]</a></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/RunningPRISM/AllOnOnePage?action=sourceblock&amp;num=39' type='text/plain'>[&#036;[Get Code]]</a></div>
</div>
<p class='vspace'>This can be done for constants in the model file, the properties file, or both.
Before any verification can be performed, values must be provided for any such constants. In the GUI, a dialog appears in which the user is required to enter values. From the command line, the <code>-const</code> switch must be used, e.g.:
</p>
<div class='vspace'></div>
<div class='sourceblock ' id='sourceblock39'>
<div class='sourceblock ' id='sourceblock40'>
<div class='sourceblocktext'><div class="shell"><span style="font-weight:bold;">prism cluster.sm cluster.csl -const N=4,T=85.9</span><br/>
</div></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/RunningPRISM/AllOnOnePage?action=sourceblock&amp;num=39' type='text/plain'>[&#036;[Get Code]]</a></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/RunningPRISM/AllOnOnePage?action=sourceblock&amp;num=40' type='text/plain'>[&#036;[Get Code]]</a></div>
</div>
<p class='vspace'>To run an experiment, provide a <em>range</em> of values for one or more of the constants. Model checking will be performed for all combinations of the constant values provided. For example:
</p>
<div class='vspace'></div>
<div class='sourceblock ' id='sourceblock40'>
<div class='sourceblock ' id='sourceblock41'>
<div class='sourceblocktext'><div class="shell"><span style="font-weight:bold;">prism cluster.sm cluster.csl -const N=4:6,T=60:10:100</span><br/>
</div></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/RunningPRISM/AllOnOnePage?action=sourceblock&amp;num=40' type='text/plain'>[&#036;[Get Code]]</a></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/RunningPRISM/AllOnOnePage?action=sourceblock&amp;num=41' type='text/plain'>[&#036;[Get Code]]</a></div>
</div>
<p class='vspace'>where <code>N=4:6</code> means that values of 4,5 and 6 are used for <code>N</code>,
@ -981,10 +993,10 @@ and <code>T=60:10:100</code> means that values of 60, 70, 80, 90 and 100 (i.e. s
You can also specify double-valued constants as fractions rather than decimals. For example:
</p>
<div class='vspace'></div>
<div class='sourceblock ' id='sourceblock41'>
<div class='sourceblock ' id='sourceblock42'>
<div class='sourceblocktext'><div class="shell"><span style="font-weight:bold;">prism cluster.sm cluster.csl -const N=4,T=85.9 -const p=1/3</span><br/>
</div></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/RunningPRISM/AllOnOnePage?action=sourceblock&amp;num=41' type='text/plain'>[&#036;[Get Code]]</a></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/RunningPRISM/AllOnOnePage?action=sourceblock&amp;num=42' type='text/plain'>[&#036;[Get Code]]</a></div>
</div>
<p class='vspace'>From the GUI, the same thing can be achieved by selecting a single property,
@ -1018,19 +1030,19 @@ or as code which can be used to generate the graph in Matlab.
<p>You can export all the results from an experiment to a file or to the screen. From the command-line, use the <code>-exportresults</code> switch, for example:
</p>
<div class='vspace'></div>
<div class='sourceblock ' id='sourceblock42'>
<div class='sourceblock ' id='sourceblock43'>
<div class='sourceblocktext'><div class="shell"><span style="font-weight:bold;">prism cluster.sm cluster.csl -prop 4 -const N=4:5,T=0:10:20 -exportresults res.txt</span><br/>
</div></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/RunningPRISM/AllOnOnePage?action=sourceblock&amp;num=42' type='text/plain'>[&#036;[Get Code]]</a></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/RunningPRISM/AllOnOnePage?action=sourceblock&amp;num=43' type='text/plain'>[&#036;[Get Code]]</a></div>
</div>
<p class='vspace'>to send to output file <code>res.txt</code>, or:
</p>
<div class='vspace'></div>
<div class='sourceblock ' id='sourceblock43'>
<div class='sourceblock ' id='sourceblock44'>
<div class='sourceblocktext'><div class="shell"><span style="font-weight:bold;">prism cluster.sm cluster.csl -prop 4 -const N=4:5,T=0:10:20 -exportresults stdout</span><br/>
</div></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/RunningPRISM/AllOnOnePage?action=sourceblock&amp;num=43' type='text/plain'>[&#036;[Get Code]]</a></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/RunningPRISM/AllOnOnePage?action=sourceblock&amp;num=44' type='text/plain'>[&#036;[Get Code]]</a></div>
</div>
<p class='vspace'>to send the results straight to the screen. From the GUI, right click on the experiment and select "Export results".
@ -1038,7 +1050,7 @@ or as code which can be used to generate the graph in Matlab.
<p class='vspace'>The default behaviour is to export a <em>list</em> of results in <em>text</em> form, using tabs to separate items. The above examples produce:
</p>
<div class='vspace'></div>
<div class='sourceblock ' id='sourceblock44'>
<div class='sourceblock ' id='sourceblock45'>
<div class='sourceblocktext'><div class="text">N &nbsp; &nbsp; &nbsp; T &nbsp; &nbsp; &nbsp; Result<br />
4 &nbsp; &nbsp; &nbsp; 0 &nbsp; &nbsp; &nbsp; 0.0<br />
4 &nbsp; &nbsp; &nbsp; 10&nbsp; &nbsp; &nbsp; 4.707364688019771E-6<br />
@ -1046,20 +1058,20 @@ or as code which can be used to generate the graph in Matlab.
5 &nbsp; &nbsp; &nbsp; 0 &nbsp; &nbsp; &nbsp; 0.0<br />
5 &nbsp; &nbsp; &nbsp; 10&nbsp; &nbsp; &nbsp; 3.267731327728599E-6<br />
5 &nbsp; &nbsp; &nbsp; 20&nbsp; &nbsp; &nbsp; 8.343575060356386E-6</div></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/RunningPRISM/AllOnOnePage?action=sourceblock&amp;num=44' type='text/plain'>[&#036;[Get Code]]</a></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/RunningPRISM/AllOnOnePage?action=sourceblock&amp;num=45' type='text/plain'>[&#036;[Get Code]]</a></div>
</div>
<p class='vspace'>You can change the format in which the results are exported by appending one or more comma-separated options to the end of the <code>-exportresults</code> switch, for example to export in CSV (comma-separated values) format:
</p>
<div class='vspace'></div>
<div class='sourceblock ' id='sourceblock45'>
<div class='sourceblock ' id='sourceblock46'>
<div class='sourceblocktext'><div class="shell"><span style="font-weight:bold;">prism cluster.sm cluster.csl -prop 4 -const N=4:5,T=0:10:20 -exportresults res.txt:csv</span><br/>
</div></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/RunningPRISM/AllOnOnePage?action=sourceblock&amp;num=45' type='text/plain'>[&#036;[Get Code]]</a></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/RunningPRISM/AllOnOnePage?action=sourceblock&amp;num=46' type='text/plain'>[&#036;[Get Code]]</a></div>
</div>
<div class='vspace'></div>
<div class='sourceblock ' id='sourceblock46'>
<div class='sourceblock ' id='sourceblock47'>
<div class='sourceblocktext'><div class="text">N, T, Result<br />
4, 0, 0.0<br />
4, 10, 4.707364688019771E-6<br />
@ -1067,26 +1079,26 @@ or as code which can be used to generate the graph in Matlab.
5, 0, 0.0<br />
5, 10, 3.267731327728599E-6<br />
5, 20, 8.343575060356386E-6</div></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/RunningPRISM/AllOnOnePage?action=sourceblock&amp;num=46' type='text/plain'>[&#036;[Get Code]]</a></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/RunningPRISM/AllOnOnePage?action=sourceblock&amp;num=47' type='text/plain'>[&#036;[Get Code]]</a></div>
</div>
<p class='vspace'>You can also add the <code>matrix</code> option, to export the results as one or more 2D matrices, rather than a list.
This is particularly useful if you want to create a surface plot from results that vary over two constants.
</p>
<div class='vspace'></div>
<div class='sourceblock ' id='sourceblock47'>
<div class='sourceblock ' id='sourceblock48'>
<div class='sourceblocktext'><div class="shell"><span style="font-weight:bold;">prism cluster.sm cluster.csl -prop 4 -const N=4:5,T=0:10:20 -exportresults res.txt:csv,matrix</span><br/>
</div></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/RunningPRISM/AllOnOnePage?action=sourceblock&amp;num=47' type='text/plain'>[&#036;[Get Code]]</a></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/RunningPRISM/AllOnOnePage?action=sourceblock&amp;num=48' type='text/plain'>[&#036;[Get Code]]</a></div>
</div>
<div class='vspace'></div>
<div class='sourceblock ' id='sourceblock48'>
<div class='sourceblock ' id='sourceblock49'>
<div class='sourceblocktext'><div class="text">&quot;N\T&quot;<br />
, 0.0, 10.0, 20.0<br />
4, 0.0, 4.707364688019771E-6, 1.3126420636755292E-5<br />
5, 0.0, 3.267731327728599E-6, 8.343575060356386E-6</div></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/RunningPRISM/AllOnOnePage?action=sourceblock&amp;num=48' type='text/plain'>[&#036;[Get Code]]</a></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/RunningPRISM/AllOnOnePage?action=sourceblock&amp;num=49' type='text/plain'>[&#036;[Get Code]]</a></div>
</div>
<p class='vspace'>The <code>matrix</code> option is also available in normal (non-CSV) mode.
@ -1094,14 +1106,14 @@ This is particularly useful if you want to create a surface plot from results th
<p class='vspace'>Finally, you can export results in the form of comments, used by PRISM's functionality:
</p>
<div class='vspace'></div>
<div class='sourceblock ' id='sourceblock49'>
<div class='sourceblock ' id='sourceblock50'>
<div class='sourceblocktext'><div class="shell"><span style="font-weight:bold;">prism cluster.sm cluster.csl -prop 4 -const N=4:5,T=0:10:20 -exportresults res.txt:comment</span><br/>
</div></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/RunningPRISM/AllOnOnePage?action=sourceblock&amp;num=49' type='text/plain'>[&#036;[Get Code]]</a></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/RunningPRISM/AllOnOnePage?action=sourceblock&amp;num=50' type='text/plain'>[&#036;[Get Code]]</a></div>
</div>
<div class='vspace'></div>
<div class='sourceblock ' id='sourceblock50'>
<div class='sourceblock ' id='sourceblock51'>
<div class='sourceblocktext'><div class="prism"><span class="prismcomment">// RESULT (N=4,T=0): 0.0</span><br/>
<span class="prismcomment">// RESULT (N=4,T=10): 4.707364688019771E-6</span><br/>
<span class="prismcomment">// RESULT (N=4,T=20): 1.3126420636755292E-5</span><br/>
@ -1109,18 +1121,22 @@ This is particularly useful if you want to create a surface plot from results th
<span class="prismcomment">// RESULT (N=5,T=10): 3.267731327728599E-6</span><br/>
<span class="prismcomment">// RESULT (N=5,T=20): 8.343575060356386E-6</span><br/>
</div></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/RunningPRISM/AllOnOnePage?action=sourceblock&amp;num=50' type='text/plain'>[&#036;[Get Code]]</a></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/RunningPRISM/AllOnOnePage?action=sourceblock&amp;num=51' type='text/plain'>[&#036;[Get Code]]</a></div>
</div>
<hr />
<p class='vspace'>A related option is the <code>-exportvector &lt;file&gt;</code> switch, useful in general contexts, not for experiments.
This exports the results for all states of the model
(typically, the log just displays the result for the initial state, unless a <a class='wikilink' href='../PropertySpecification/Filters.html'>filter</a> has been used)
to the the file <code>file</code>.
</p><hr />
<h1>Adversaries</h1>
<p>When model checking some properties of MDPs, PRISM can also generate an <em>optimal adversary</em>, i.e. one which corresponds to either the minimum or maximum values of the probabilities or rewards computed during verification. Recall that, for MDPs, PRISM quantifies over all possible adversaries, i.e. all possible resolutions of nondeterminism in the model. A typical property would be:
</p>
<div class='vspace'></div>
<div class='sourceblock ' id='sourceblock51'>
<div class='sourceblock ' id='sourceblock52'>
<div class='sourceblocktext'><div class="prism"><span class="prismkeyword">Pmax</span>=? [ <span class="prismkeyword">F</span> "<span class="prismident">error</span>" ]<br/>
</div></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/RunningPRISM/AllOnOnePage?action=sourceblock&amp;num=51' type='text/plain'>[&#036;[Get Code]]</a></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/RunningPRISM/AllOnOnePage?action=sourceblock&amp;num=52' type='text/plain'>[&#036;[Get Code]]</a></div>
</div>
<p class='vspace'>which computes the maximum probability, over all adversaries, of reaching a state satisfying the label <code>"error"</code>, from all states of the model. When under the control of a specific adversary, the behaviour of an MDP is purely probabilistic, yielding a single value (for each state) for the probability of reaching <code>"error"</code>. In addition to giving the maximum probability value(s), PRISM can produce an adversary of the MDP for which the probabilities (for each state) coincide with the maximum values.
@ -1130,10 +1146,10 @@ This is particularly useful if you want to create a surface plot from results th
<p class='vspace'>Currently, adversary generation is only implemented in the <a class='wikilink' href='../ConfiguringPRISM/ComputationEngines.html'>sparse engine</a>, so you need to make sure this engine is enabled. From the command-line, you specify that an optimal adversary should be generated using the <code>-exportadv</code> switch, e.g.:
</p>
<div class='vspace'></div>
<div class='sourceblock ' id='sourceblock52'>
<div class='sourceblock ' id='sourceblock53'>
<div class='sourceblocktext'><div class="shell"><span style="font-weight:bold;">prism mdp.nm -pctl 'Pmax=? [ F "error" ]' -exportadv adv.tra -s</span><br/>
</div></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/RunningPRISM/AllOnOnePage?action=sourceblock&amp;num=52' type='text/plain'>[&#036;[Get Code]]</a></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/RunningPRISM/AllOnOnePage?action=sourceblock&amp;num=53' type='text/plain'>[&#036;[Get Code]]</a></div>
</div>
<p class='vspace'>From the GUI, change the "Adversary export" option (under the "PRISM" settings) from "None" to "DTMC". You can also change the filename for the export adversary which, by default, is <code>adv.tra</code> as in the example above.
@ -1158,7 +1174,7 @@ Secondly, each local state of a sequential component must be named. For exampl
definition of these differs from the PEPA definition. Every PEPA
synchronisation must have exactly one active component.
Some examples of PEPA model descriptions which can be imported into PRISM
can be found in the <code>examples/pepa</code> directory.
can be found in the <code>prism-examples/pepa</code> directory.
</p>
<p class='vspace'>From the command-line version of PRISM, add the <code>-importpepa</code> switch and the model will be treated as a PEPA description.
From the GUI, select "Model | Open model" and then choose "PEPA models"
@ -1180,7 +1196,7 @@ by selecting menu option "Model | View | Parsed PRISM model".
<p>An SBML file comprises a set of <em>species</em> and a set of <em>reactions</em> which they undergo. Below is the SBML file for the simple reversible reaction: <strong>Na + Cl &#8596; Na<sup>+</sup> + Cl<sup>-</sup></strong>, where there are initially 100 Na and Cl atoms and no ions, and the base rates for the forwards and backwards reactions are 100 and 10, respectively.
</p>
<div class='vspace'></div>
<div class='sourceblock ' id='sourceblock53'>
<div class='sourceblock ' id='sourceblock54'>
<div class='sourceblocktext'><div class="xml"><span class="sc3"><span class="re1">&lt;?xml</span> <span class="re0">version</span>=<span class="st0">&quot;1.0&quot;</span> <span class="re0">encoding</span>=<span class="st0">&quot;UTF-8&quot;</span><span class="re2">?&gt;</span></span><br />
<span class="sc3"><span class="re1">&lt;sbml</span> <span class="re0">xmlns</span>=<span class="st0">&quot;http://www.sbml.org/sbml/level2&quot;</span> <span class="re0">metaid</span>=<span class="st0">&quot;_000000&quot;</span> <span class="re0">level</span>=<span class="st0">&quot;2&quot;</span> <span class="re0">version</span>=<span class="st0">&quot;1&quot;</span><span class="re2">&gt;</span></span><br />
&nbsp; <span class="sc3"><span class="re1">&lt;model</span> <span class="re0">id</span>=<span class="st0">&quot;nacl&quot;</span> <span class="re0">name</span>=<span class="st0">&quot;Na+Cl&quot;</span><span class="re2">&gt;</span></span><br />
@ -1240,13 +1256,13 @@ by selecting menu option "Model | View | Parsed PRISM model".
<br />
&nbsp; <span class="sc3"><span class="re1">&lt;/model<span class="re2">&gt;</span></span></span><br />
<span class="sc3"><span class="re1">&lt;/sbml<span class="re2">&gt;</span></span></span></div></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/RunningPRISM/AllOnOnePage?action=sourceblock&amp;num=53' type='text/plain'>[&#036;[Get Code]]</a></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/RunningPRISM/AllOnOnePage?action=sourceblock&amp;num=54' type='text/plain'>[&#036;[Get Code]]</a></div>
</div>
<p class='vspace'>And here is the resulting PRISM code:
</p>
<div class='vspace'></div>
<div class='sourceblock ' id='sourceblock54'>
<div class='sourceblock ' id='sourceblock55'>
<div class='sourceblocktext'><div class="prism"><span class="prismcomment">// File generated by automatic SBML-to-PRISM conversion</span><br/>
<span class="prismcomment">// Original SBML file: nacl.xml</span><br/>
<br/>
@ -1333,7 +1349,7 @@ by selecting menu option "Model | View | Parsed PRISM model".
<span class="prismcomment">// 4</span><br/>
<span class="prismkeyword">rewards</span> "<span class="prismident">cl_minus</span>" <span class="prismkeyword">true</span> : <span class="prismident">cl_minus</span>; <span class="prismkeyword">endrewards</span><br/>
</div></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/RunningPRISM/AllOnOnePage?action=sourceblock&amp;num=54' type='text/plain'>[&#036;[Get Code]]</a></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/RunningPRISM/AllOnOnePage?action=sourceblock&amp;num=55' type='text/plain'>[&#036;[Get Code]]</a></div>
</div>
<p class='vspace'>From the latter, we can use PRISM to generate a simple plot of the expected amount of Na and Na+ over time (using both model checking and a single random trace from the simulator):
@ -1344,11 +1360,11 @@ by selecting menu option "Model | View | Parsed PRISM model".
<p>At present, the SBML-to-PRISM translator is included in the PRISM code-base, but not integrated into the application itself.
</p>
<div class='vspace'></div>
<div class='sourceblock ' id='sourceblock55'>
<div class='sourceblock ' id='sourceblock56'>
<div class='sourceblocktext'><div class="shell"><span style="font-weight:bold;">cd prism</span><br/>
<span style="font-weight:bold;">java -cp classes prism.SBML2Prism sbml_file.xml &gt; prism_file.sm</span><br/>
</div></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/RunningPRISM/AllOnOnePage?action=sourceblock&amp;num=55' type='text/plain'>[&#036;[Get Code]]</a></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/RunningPRISM/AllOnOnePage?action=sourceblock&amp;num=56' type='text/plain'>[&#036;[Get Code]]</a></div>
</div>
<p class='vspace'>If you are using a binary (rather than source code) distribution of PRISM, replace <code>classes</code> with <code>lib/prism.jar</code> in the above.
@ -1356,7 +1372,7 @@ by selecting menu option "Model | View | Parsed PRISM model".
<p class='vspace'>Alternatively (on Linux or Mac OS X), ensure <code>prism</code> is in your path and then save the script below as an executable file called <code>sbml2prism</code>:
</p>
<div class='vspace'></div>
<div class='sourceblock ' id='sourceblock56'>
<div class='sourceblock ' id='sourceblock57'>
<div class='sourceblocktext'><div class="bash"><span class="co0">#!/bin/sh</span><br />
<br />
<span class="co0"># Startup script for SBML-to-PRISM translator</span><br />
@ -1365,28 +1381,28 @@ by selecting menu option "Model | View | Parsed PRISM model".
<span class="re2">PRISM_MAINCLASS</span>=<span class="st0">&quot;prism.SBML2Prism&quot;</span><br />
<span class="kw3">export</span> PRISM_MAINCLASS<br />
prism <span class="st0">&quot;$@&quot;</span></div></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/RunningPRISM/AllOnOnePage?action=sourceblock&amp;num=56' type='text/plain'>[&#036;[Get Code]]</a></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/RunningPRISM/AllOnOnePage?action=sourceblock&amp;num=57' type='text/plain'>[&#036;[Get Code]]</a></div>
</div>
<p class='vspace'>Then use:
</p>
<div class='vspace'></div>
<div class='sourceblock ' id='sourceblock57'>
<div class='sourceblock ' id='sourceblock58'>
<div class='sourceblocktext'><div class="shell"><span style="font-weight:bold;">sbml2prism sbml_file.xml &gt; prism_file.sm</span><br/>
</div></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/RunningPRISM/AllOnOnePage?action=sourceblock&amp;num=57' type='text/plain'>[&#036;[Get Code]]</a></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/RunningPRISM/AllOnOnePage?action=sourceblock&amp;num=58' type='text/plain'>[&#036;[Get Code]]</a></div>
</div>
<p class='vspace'>The following PRISM properties file will also be useful:
</p>
<div class='vspace'></div>
<div class='sourceblock ' id='sourceblock58'>
<div class='sourceblock ' id='sourceblock59'>
<div class='sourceblocktext'><div class="prism"><span class="prismkeyword">const</span> <span class="prismkeyword">double</span> <span class="prismident">T</span>;<br/>
<span class="prismkeyword">const</span> <span class="prismkeyword">int</span> <span class="prismident">c</span>;<br/>
<br/>
<span class="prismkeyword">R</span>{<span class="prismident">c</span>}=? [<span class="prismkeyword">I</span>=<span class="prismident">T</span>]<br/>
</div></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/RunningPRISM/AllOnOnePage?action=sourceblock&amp;num=58' type='text/plain'>[&#036;[Get Code]]</a></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/RunningPRISM/AllOnOnePage?action=sourceblock&amp;num=59' type='text/plain'>[&#036;[Get Code]]</a></div>
</div>
<p class='vspace'>This contains a single property which, based on the reward structures in the PRISM model generated by the translator, means "the expected amount of species <em>c</em> at time <em>T</em>". The constant <em>c</em> is an integer index which can range between 1 and <em>N</em>, where <em>N</em> is the number of species in the model. To view the expected amount of each species over time, create an <a class='wikilink' href='Experiments.html'>experiment</a> in PRISM which varies <em>c</em> from 1 to <em>N</em> and <em>T</em> over the desired time range.
@ -1403,11 +1419,11 @@ prism <span class="st0">&quot;$@&quot;</span></div></div>
<p class='vspace'>Furthermore, since PRISM is primarily a model checking (rather than simulation) tool, it is important that the amount of each species also has an upper bound (to ensure a finite state space). When model checking, the efficiency (or even feasibility) of the process is likely to be very sensitive to the upper bound(s) chosen. When using the discrete-event simulation functionality of PRISM, this is not the case and the bounds can can be set much higher. By default the translator uses an upper bound of 100 (which is increased if the initial amount exceeds this). A different value can specified through a second command-line argument as follows:
</p>
<div class='vspace'></div>
<div class='sourceblock ' id='sourceblock59'>
<div class='sourceblock ' id='sourceblock60'>
<div class='sourceblocktext'><div class="shell"><span style="font-weight:bold;">cd prism</span><br/>
<span style="font-weight:bold;">java -cp classes prism.SBML2Prism sbml_file.xml 1000 &gt; prism_file.sm</span><br/>
</div></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/RunningPRISM/AllOnOnePage?action=sourceblock&amp;num=59' type='text/plain'>[&#036;[Get Code]]</a></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/RunningPRISM/AllOnOnePage?action=sourceblock&amp;num=60' type='text/plain'>[&#036;[Get Code]]</a></div>
</div>
<p class='vspace'>Alternatively, upper bounds can be modified manually after the translation process.
@ -1422,16 +1438,15 @@ prism <span class="st0">&quot;$@&quot;</span></div></div>
The format in which this information is input to the tool is exactly the same as is currently output
(see the section "<a class='wikilink' href='ExportingTheModel.html'>Exporting The Model</a>" and the appendix "<a class='wikilink' href='../Appendices/ExplicitModelFiles.html'>Explicit Model Files</a>").
Presently, this functionality is only supported in the command-line version of the tool, using the <code>-importtrans</code> switch (and more convenient <code>-importmodel</code>; see below).
At the moment, PRISM makes no attempt to discern the model type from the input file.
By default it assumes that the model is an MDP.
If this is not the case, the model type can be overwritten using the <code>-dtmc</code>, <code>-ctmc</code> and <code>-mdp</code> switches.
PRISM makes some attempt to discern the model type from the format of the input files,
but if this does not work, the model type can be overwritten using the <code>-dtmc</code>, <code>-ctmc</code> and <code>-mdp</code> switches.
For example:
</p>
<div class='vspace'></div>
<div class='sourceblock ' id='sourceblock60'>
<div class='sourceblock ' id='sourceblock61'>
<div class='sourceblocktext'><div class="shell"><span style="font-weight:bold;">prism -importtrans poll2.tra -ctmc</span><br/>
</div></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/RunningPRISM/AllOnOnePage?action=sourceblock&amp;num=60' type='text/plain'>[&#036;[Get Code]]</a></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/RunningPRISM/AllOnOnePage?action=sourceblock&amp;num=61' type='text/plain'>[&#036;[Get Code]]</a></div>
</div>
<p class='vspace'>Please note that this method of constructing models in PRISM is typically less efficient than using the PRISM language.
@ -1444,20 +1459,20 @@ The following example shows how PRISM could be used to build, export and then re
(not a good strategy in general):
</p>
<div class='vspace'></div>
<div class='sourceblock ' id='sourceblock61'>
<div class='sourceblock ' id='sourceblock62'>
<div class='sourceblocktext'><div class="shell"><span style="font-weight:bold;">prism poll2.sm -exporttrans poll2.tra -exportstates poll2.sta</span><br/>
<span style="font-weight:bold;">prism -importtrans poll2.tra -importstates poll2.sta -ctmc</span><br/>
</div></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/RunningPRISM/AllOnOnePage?action=sourceblock&amp;num=61' type='text/plain'>[&#036;[Get Code]]</a></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/RunningPRISM/AllOnOnePage?action=sourceblock&amp;num=62' type='text/plain'>[&#036;[Get Code]]</a></div>
</div>
<p class='vspace'>You can also import label information using the switch <code>-importlabels</code>, e.g.:
</p>
<div class='vspace'></div>
<div class='sourceblock ' id='sourceblock62'>
<div class='sourceblock ' id='sourceblock63'>
<div class='sourceblocktext'><div class="shell"><span style="font-weight:bold;">prism -importtrans poll2.tra -importstates poll2.sta -importlabels poll2.lab -ctmc</span><br/>
</div></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/RunningPRISM/AllOnOnePage?action=sourceblock&amp;num=62' type='text/plain'>[&#036;[Get Code]]</a></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/RunningPRISM/AllOnOnePage?action=sourceblock&amp;num=63' type='text/plain'>[&#036;[Get Code]]</a></div>
</div>
<p class='vspace'>where the labels file (<code>poll2.lab</code> above) is in the format generated by the <code>-exportlabels</code> <a class='wikilink' href='ExportingTheModel.html'>export option</a> of PRISM.
@ -1470,19 +1485,19 @@ If not, the default is to assume a single initial state, in which all variables
<p class='vspace'>Lastly, state (but currently not transition) rewards can also be imported, using the <code>-importstaterewards</code> switch, e.g.:
</p>
<div class='vspace'></div>
<div class='sourceblock ' id='sourceblock63'>
<div class='sourceblock ' id='sourceblock64'>
<div class='sourceblocktext'><div class="shell"><span style="font-weight:bold;">prism -importtrans poll2.tra -importstates poll2.sta -importlabels poll2.lab -importstaterewards poll2.srew -ctmc</span><br/>
</div></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/RunningPRISM/AllOnOnePage?action=sourceblock&amp;num=63' type='text/plain'>[&#036;[Get Code]]</a></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/RunningPRISM/AllOnOnePage?action=sourceblock&amp;num=64' type='text/plain'>[&#036;[Get Code]]</a></div>
</div>
<p class='vspace'>In a similar style to PRISM's <a class='wikilink' href='ExportingTheModel.html'><code>-exportmodel</code></a> switch, you can import several several files for a model using a single <code>-importmodel</code> switch. For example, this is equivalent to the command given above:
</p>
<div class='vspace'></div>
<div class='sourceblock ' id='sourceblock64'>
<div class='sourceblock ' id='sourceblock65'>
<div class='sourceblocktext'><div class="shell"><span style="font-weight:bold;">prism -importmodel poll2.tra,sta,lab,srew -ctmc</span><br/>
</div></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/RunningPRISM/AllOnOnePage?action=sourceblock&amp;num=64' type='text/plain'>[&#036;[Get Code]]</a></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/RunningPRISM/AllOnOnePage?action=sourceblock&amp;num=65' type='text/plain'>[&#036;[Get Code]]</a></div>
</div>
<p class='vspace'>The contents of each file is determined by its extension:
@ -1495,10 +1510,10 @@ Possible file extensions are:
<p class='vspace'>Use the extension <code>.all</code> to import from all of these files:
</p>
<div class='vspace'></div>
<div class='sourceblock ' id='sourceblock65'>
<div class='sourceblock ' id='sourceblock66'>
<div class='sourceblocktext'><div class="shell"><span style="font-weight:bold;">prism -importmodel poll2.all -ctmc</span><br/>
</div></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/RunningPRISM/AllOnOnePage?action=sourceblock&amp;num=65' type='text/plain'>[&#036;[Get Code]]</a></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/RunningPRISM/AllOnOnePage?action=sourceblock&amp;num=66' type='text/plain'>[&#036;[Get Code]]</a></div>
</div>
</div>

5
manual/RunningPRISM/Experiments.html

@ -281,6 +281,11 @@ This is particularly useful if you want to create a surface plot from results th
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/RunningPRISM/Experiments?action=sourceblock&amp;num=13' type='text/plain'>[&#036;[Get Code]]</a></div>
</div>
<p class='vspace'>A related option is the <code>-exportvector &lt;file&gt;</code> switch, useful in general contexts, not for experiments.
This exports the results for all states of the model
(typically, the log just displays the result for the initial state, unless a <a class='wikilink' href='../PropertySpecification/Filters.html'>filter</a> has been used)
to the the file <code>file</code>.
</p>
</div>

5
manual/RunningPRISM/ExplicitModelImport.html

@ -100,9 +100,8 @@ a.varlink { text-decoration:none; }
The format in which this information is input to the tool is exactly the same as is currently output
(see the section "<a class='wikilink' href='ExportingTheModel.html'>Exporting The Model</a>" and the appendix "<a class='wikilink' href='../Appendices/ExplicitModelFiles.html'>Explicit Model Files</a>").
Presently, this functionality is only supported in the command-line version of the tool, using the <code>-importtrans</code> switch (and more convenient <code>-importmodel</code>; see below).
At the moment, PRISM makes no attempt to discern the model type from the input file.
By default it assumes that the model is an MDP.
If this is not the case, the model type can be overwritten using the <code>-dtmc</code>, <code>-ctmc</code> and <code>-mdp</code> switches.
PRISM makes some attempt to discern the model type from the format of the input files,
but if this does not work, the model type can be overwritten using the <code>-dtmc</code>, <code>-ctmc</code> and <code>-mdp</code> switches.
For example:
</p>
<div class='vspace'></div>

4
manual/RunningPRISM/LoadingAndBuildingAModel.html

@ -96,7 +96,9 @@ a.varlink { text-decoration:none; }
</div>
<!--PageText-->
<div id='wikitext'>
<p>Typically, when using PRISM, the first step is to load a model that has been specified in the PRISM modelling language. If using the GUI, select menu option "Model | Open Model" and choose a file. There are a selection of sample PRISM model files in the <code>examples</code> directory of the distribution.
<p>Typically, when using PRISM, the first step is to load a model that has been specified in the PRISM modelling language. If using the GUI, select menu option "Model | Open Model" and choose a file. There are a selection of sample PRISM model files in the <code>prism-examples</code> directory of the distribution.
A few very small models are contained in the subdirectory <code>simple</code>;
the rest are in subdirectories grouped by model type.
</p>
<p class='vspace'>The model will then be displayed in the editor in the "Model" tab of the GUI window. The file is parsed upon loading. If there are no errors, information about the modules, variables, and other components of the model is displayed in the panel to the left and a green tick will be visible. If there are errors in the file, a red cross will appear instead and the errors will be highlighted in the model editor. To view details of the error, position the mouse pointer over the source of the error (or over the red cross). Alternatively, select menu option "Model | Parse Model" and the error mIessage will be displayed in a message box. Model descriptions can, of course, also be typed from scratch into the GUI's editor.
</p>

16
manual/RunningPRISM/ModelChecking.html

@ -99,7 +99,7 @@ a.varlink { text-decoration:none; }
<p>Typically, once a model has been constructed, it is analysed through model checking.
Properties are specified as described in the "<a class='wikilink' href='../PropertySpecification/Main.html'>Property Specification</a>" section,
and are usually kept in files with extensions <code>.props</code>, <code>.pctl</code> or <code>.csl</code>.
There are properties files accompanying most of the sample PRISM models in the <code>examples</code> directory.
There are properties files accompanying most of the sample PRISM models in the <code>prism-examples</code> directory.
</p>
<p class='vspace'><a name='gui' id='gui'></a>
</p><h3>GUI</h3>
@ -153,15 +153,25 @@ For example, to check only the fourth property in the file:
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/RunningPRISM/ModelChecking?action=sourceblock&amp;num=3' type='text/plain'>[&#036;[Get Code]]</a></div>
</div>
<p class='vspace'>Alternatively, the contents of a properties file can be specified directly from the command-line, using the <code>-pf</code> switch:
<p class='vspace'>You can also provide a comma-separated list of multiple properties to check,
using neither numerical indices or property names:
</p>
<div class='vspace'></div>
<div class='sourceblock ' id='sourceblock4'>
<div class='sourceblocktext'><div class="shell"><span style="font-weight:bold;">prism poll2.sm -pf 'P&gt;=0.5 [ true U&lt;=5 (s=1 &amp; a=0) ]'</span><br/>
<div class='sourceblocktext'><div class="shell"><span style="font-weight:bold;">prism poll2.sm poll.csl -prop 4,5,safe</span><br/>
</div></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/RunningPRISM/ModelChecking?action=sourceblock&amp;num=4' type='text/plain'>[&#036;[Get Code]]</a></div>
</div>
<p class='vspace'>Alternatively, the contents of a properties file can be specified directly from the command-line, using the <code>-pf</code> switch:
</p>
<div class='vspace'></div>
<div class='sourceblock ' id='sourceblock5'>
<div class='sourceblocktext'><div class="shell"><span style="font-weight:bold;">prism poll2.sm -pf 'P&gt;=0.5 [ true U&lt;=5 (s=1 &amp; a=0) ]'</span><br/>
</div></div>
<div class='sourceblocklink'><a href='http://www.prismmodelchecker.org/manual/RunningPRISM/ModelChecking?action=sourceblock&amp;num=5' type='text/plain'>[&#036;[Get Code]]</a></div>
</div>
<p class='vspace'>The switches <code>-pctl</code> and <code>-csl</code> are aliases for <code>-pf</code>.
</p>
<p class='vspace'>Note the use of single quotes (<code>'...'</code>) to avoid characters such as

2
manual/RunningPRISM/SupportForPEPAModels.html

@ -90,7 +90,7 @@ Secondly, each local state of a sequential component must be named. For exampl
definition of these differs from the PEPA definition. Every PEPA
synchronisation must have exactly one active component.
Some examples of PEPA model descriptions which can be imported into PRISM
can be found in the <code>examples/pepa</code> directory.
can be found in the <code>prism-examples/pepa</code> directory.
</p>
<p class='vspace'>From the command-line version of PRISM, add the <code>-importpepa</code> switch and the model will be treated as a PEPA description.
From the GUI, select "Model | Open model" and then choose "PEPA models"

16
manual/ThePRISMLanguage/AllOnOnePage.html

@ -108,7 +108,7 @@ on the PRISM web site.
</p>
<p class='vspace'>In this section, we describe the PRISM language and present a number of small illustrative examples.
A precise definition of the semantics of the language is available from the "<a class='urllink' href='http://www.prismmodelchecker.org/doc/'>Documentation</a>" section of the PRISM web site. One of the best ways to learn what can be done with the PRISM language is to look at some existing examples.
A number of these are included with the tool distribution in the <code>examples</code> directory.
A number of these are included with the tool distribution in the <code>prism-examples</code> directory.
Many additional examples can be found on the "<a class='urllink' href='http://www.prismmodelchecker.org/casestudies/'>Case Studies</a>" section of the <a class='urllink' href='http://www.prismmodelchecker.org/'>PRISM website</a>.
</p>
<p class='vspace'>The fundamental components of the PRISM language are <em>modules</em> and <em>variables</em>.
@ -539,12 +539,12 @@ All expressions must evaluate correctly in terms of type (integer, double or Boo
</p>
<p class='vspace'>Expressions can make use of several built-in functions:
</p>
<div class='vspace'></div><ul><li><code>min(...)</code> and <code>max(...)</code>, which select the minimum and maximum value, respectively, of two or more numbers;
</li><li><code>floor(x)</code> and <code>ceil(x)</code>, which round <code>x</code> down and up, respectively, to the nearest integer;
</li><li><code>round(x)</code>, which rounds <code>x</code> to the nearest integer;
</li><li><code>pow(x,y)</code> which computes <code>x</code> to the power of <code>y</code>;
</li><li><code>mod(i,n)</code> for integer modulo operations;
</li><li><code>log(x,b)</code>, which computes the logarithm of <code>x</code> to base <code>b</code>.
<div class='vspace'></div><ul><li><code>min(...)</code> and <code>max(...)</code>, which select the minimum and maximum value, respectively, of two or more numbers
</li><li><code>floor(x)</code> and <code>ceil(x)</code>, which round <code>x</code> down and up, respectively, to the nearest integer
</li><li><code>round(x)</code>, which rounds <code>x</code> to the nearest integer (note, in a tie-break, we always round <em>up</em>, e.g. <code>round(-1.5)</code> gives <code>-1</code> not <code>-2</code>)
</li><li><code>pow(x,y)</code> which computes <code>x</code> to the power of <code>y</code>
</li><li><code>mod(i,n)</code> for integer modulo operations
</li><li><code>log(x,b)</code>, which computes the logarithm of <code>x</code> to base <code>b</code>
</li></ul><p class='vspace'>Examples of their usage are:
</p>
<div class='vspace'></div>
@ -735,7 +735,7 @@ secondly, they are written using quotation marks (<code>"..."</code>), as illust
<h1>PTAs</h1>
<p class='vspace'>So far in this section, we have mainly focused on three types of models: DTMCs, MDPs and CTMCs.
PRISM also supports a fourth: <em>probabilistic timed automata</em> (PTAs), which extend MDPs with the ability to model real-time behaviour. This is done in the style of <em>timed automata</em> [<a class='wikilink' href='../Main/References.html#AD94'>AD94</a>], by adding real-valued <em>clocks</em> which increase with time and can be reset. For background material on PTAs, see for example [<a class='wikilink' href='../Main/References.html#NPS13'>NPS13</a>].
You can also find several example PTA models included in the PRISM distribution. Look in the <code>examples/pta</code> directory.
You can also find several example PTA models included in the PRISM distribution. Look in the <code>prism-examples/ptas</code> directory.
</p>
<p class='vspace'>Before describing how PTA features are incorporated into the PRISM modelling language, we give a simple example. Here is a small PTA:
</p>

12
manual/ThePRISMLanguage/Expressions.html

@ -127,12 +127,12 @@ All expressions must evaluate correctly in terms of type (integer, double or Boo
</p>
<p class='vspace'>Expressions can make use of several built-in functions:
</p>
<div class='vspace'></div><ul><li><code>min(...)</code> and <code>max(...)</code>, which select the minimum and maximum value, respectively, of two or more numbers;
</li><li><code>floor(x)</code> and <code>ceil(x)</code>, which round <code>x</code> down and up, respectively, to the nearest integer;
</li><li><code>round(x)</code>, which rounds <code>x</code> to the nearest integer;
</li><li><code>pow(x,y)</code> which computes <code>x</code> to the power of <code>y</code>;
</li><li><code>mod(i,n)</code> for integer modulo operations;
</li><li><code>log(x,b)</code>, which computes the logarithm of <code>x</code> to base <code>b</code>.
<div class='vspace'></div><ul><li><code>min(...)</code> and <code>max(...)</code>, which select the minimum and maximum value, respectively, of two or more numbers
</li><li><code>floor(x)</code> and <code>ceil(x)</code>, which round <code>x</code> down and up, respectively, to the nearest integer
</li><li><code>round(x)</code>, which rounds <code>x</code> to the nearest integer (note, in a tie-break, we always round <em>up</em>, e.g. <code>round(-1.5)</code> gives <code>-1</code> not <code>-2</code>)
</li><li><code>pow(x,y)</code> which computes <code>x</code> to the power of <code>y</code>
</li><li><code>mod(i,n)</code> for integer modulo operations
</li><li><code>log(x,b)</code>, which computes the logarithm of <code>x</code> to base <code>b</code>
</li></ul><p class='vspace'>Examples of their usage are:
</p>
<div class='vspace'></div>

2
manual/ThePRISMLanguage/Main.html

@ -111,7 +111,7 @@ on the PRISM web site.
</p>
<p class='vspace'>In this section, we describe the PRISM language and present a number of small illustrative examples.
A precise definition of the semantics of the language is available from the "<a class='urllink' href='http://www.prismmodelchecker.org/doc/'>Documentation</a>" section of the PRISM web site. One of the best ways to learn what can be done with the PRISM language is to look at some existing examples.
A number of these are included with the tool distribution in the <code>examples</code> directory.
A number of these are included with the tool distribution in the <code>prism-examples</code> directory.
Many additional examples can be found on the "<a class='urllink' href='http://www.prismmodelchecker.org/casestudies/'>Case Studies</a>" section of the <a class='urllink' href='http://www.prismmodelchecker.org/'>PRISM website</a>.
</p>
<p class='vspace'>The fundamental components of the PRISM language are <em>modules</em> and <em>variables</em>.

2
manual/ThePRISMLanguage/PTAs.html

@ -98,7 +98,7 @@ a.varlink { text-decoration:none; }
<div id='wikitext'>
<p class='vspace'>So far in this section, we have mainly focused on three types of models: DTMCs, MDPs and CTMCs.
PRISM also supports a fourth: <em>probabilistic timed automata</em> (PTAs), which extend MDPs with the ability to model real-time behaviour. This is done in the style of <em>timed automata</em> [<a class='wikilink' href='../Main/References.html#AD94'>AD94</a>], by adding real-valued <em>clocks</em> which increase with time and can be reset. For background material on PTAs, see for example [<a class='wikilink' href='../Main/References.html#NPS13'>NPS13</a>].
You can also find several example PTA models included in the PRISM distribution. Look in the <code>examples/pta</code> directory.
You can also find several example PTA models included in the PRISM distribution. Look in the <code>prism-examples/ptas</code> directory.
</p>
<p class='vspace'>Before describing how PTA features are incorporated into the PRISM modelling language, we give a simple example. Here is a small PTA:
</p>

2
manual/index.html

@ -78,7 +78,7 @@ a.varlink { text-decoration:none; }
This document is the main source of information regarding the installation and operation of the PRISM tool. For access to other resources, such as <a class='urllink' href='http://www.prismmodelchecker.org/publications.php'>related publications</a> and details of <a class='urllink' href='http://www.prismmodelchecker.org/casestudies/'>case studies</a>, or to <a class='urllink' href='http://www.prismmodelchecker.org/download.php'>download</a> the tool itself, see the main <a class='urllink' href='http://www.prismmodelchecker.org/'>PRISM website</a>.
</p>
<div class='vspace'></div><h3>Which version of PRISM does this manual describe?</h3>
<p>This manual describes version <strong>4.5</strong>.
<p>This manual describes version <strong>4.6</strong>.
In general, the online copy of the manual corresponds to the most recent
<a class='urllink' href='http://www.prismmodelchecker.org/download.php'>publically available</a>
version of PRISM (including beta versions).

20
manual/pub/skins/offline/css/prism.css

@ -486,3 +486,23 @@ a.prism-cite { color:#006600; }
float:left;
clear:both;
}
.prism-tag {
color:white;
background-color:grey;
border-radius:2px;
padding:2px;
margin-left:4px;
font-size:75%;
}
div.prism-shell {
padding:5px 10px 5px 10px;
margin:10px 0 10px 0;
border:1px dotted #808080;
background-color:#F1F0ED;
overflow:auto;
font-family:monospace;
font-weight:bold;
font-size:90%;
}
Loading…
Cancel
Save