@ -29,7 +29,7 @@ As in :doc:`../getting_started`, we import some required modules and build a mod
>>> model = stormpy.build_model(prism_program)
>>> model = stormpy.build_model(prism_program)
We also import the `ShortestPathsGenerator`::
We also import the ``ShortestPathsGenerator``::
>>> from stormpy.utility import ShortestPathsGenerator
>>> from stormpy.utility import ShortestPathsGenerator
@ -40,7 +40,7 @@ and choose a target state (by its ID) to which we want to compute the shortest p
It is also possible to specify a set of target states (as a list, e.g., ``[8, 10, 11]``) or a label in the model if applicable (e.g., ``"observe0Greater1"``).
It is also possible to specify a set of target states (as a list, e.g., ``[8, 10, 11]``) or a label in the model if applicable (e.g., ``"observe0Greater1"``).
For simplicity, we will stick to using a single state for now.
For simplicity, we will stick to using a single state for now.
We initialize a `ShortestPathsGenerator` instance::
We initialize a ``ShortestPathsGenerator`` instance::
Storm takes properties in the prism-property format.
Storm takes properties in the prism-property format.
To express that one is interested in the reachability of any state where the prism program variable s is 2, one would formulate::
To express that one is interested in the reachability of any state where the prism program variable ``s`` is 2, one would formulate::
P=? [F s=2]
P=? [F s=2]
@ -76,7 +76,7 @@ Stormpy can be used to parse this. As the variables in the property refer to a p
Notice that properties is now a list of properties containing a single element.
Notice that properties is now a list of properties containing a single element.
However, if we build the model as before, then the appropriate information that the variable s=2 in some states is not present.
However, if we build the model as before, then the appropriate information that the variable ``s=2`` in some states is not present.
In order to label the states accordingly, we should notify Storm upon building the model that we would like to preserve given properties.
In order to label the states accordingly, we should notify Storm upon building the model that we would like to preserve given properties.
Storm will then add the labels accordingly::
Storm will then add the labels accordingly::
@ -85,7 +85,7 @@ Storm will then add the labels accordingly::
Labels in the model: ['(s = 2)', 'deadlock', 'init']
Labels in the model: ['(s = 2)', 'deadlock', 'init']
Model building however now behaves slightly different: Only the properties passed are preserved, which means that model building might skip parts of the model.
Model building however now behaves slightly different: Only the properties passed are preserved, which means that model building might skip parts of the model.
In particular, to check the probability of eventually reaching a state x where s=2, successor states of x are not relevant::
In particular, to check the probability of eventually reaching a state ``x`` where ``s=2``, successor states of ``x`` are not relevant::
>>> print("Number of states: {}".format(model.nr_states))
>>> print("Number of states: {}".format(model.nr_states))
Number of states: 8
Number of states: 8
@ -94,7 +94,7 @@ If we consider another property, however, such as::
P=? [F s=7 & d=2]
P=? [F s=7 & d=2]
then Storm is only skipping exploration of successors of the particular state y where s=7 and d=2. In this model, state y has a self-loop, so effectively, the whole model is explored.
then Storm is only skipping exploration of successors of the particular state ``y`` where ``s=7`` and ``d=2``. In this model, state ``y`` has a self-loop, so effectively, the whole model is explored.
.._getting-started-checking-properties:
.._getting-started-checking-properties:
@ -180,7 +180,7 @@ Thus::
... assert len(state.actions) <= 1
... assert len(state.actions) <= 1
We can also check if a state is indeed an initial state. Notice that model.initial_states contains state ids, not states.::
We can also check if a state is indeed an initial state. Notice that ``model.initial_states`` contains state ids, not states.::