The three principal operators of the PRISM property specification language, namely P
, S
and R
, can be combined into any valid, well-typed PRISM expression. This mean that any of the following operators can be used:
-
(unary minus)
*
, /
(multiplication, division)
+
, -
(addition, subtraction)
<
, <=
, >=
, >
(relational operators)
=
, !=
(equality operators)
!
(negation)
&
(conjunction)
|
(disjunction)
=>
(implication)
?
(condition evaluation: condition ? a : b
means "if condition
is true then a
else b
")
Logical operators can be used, for example, to specify any property expressible in logics such as PCTL and CSL, e.g.:
Other operators can also be used to derive various arithmetic expressions such as:
"the probability that the system is not operational at any point during the second hour of operation"
"the expected fraction of time that the system is available (i.e. the expected interval availability) in the time interval [0, t]"
"the (conditional) probability that component A eventually fails, given that at least one component fails"
We omit a formal presentation of the semantics of the PRISM property language. The semantics of the probabilistic temporal logics that the language incorporates can be found from a variety of sources. See for example the pointers given in the About and Documentation sections of the PRISM website.
It is worth, however, clarifying a few points specific to PRISM. A property is evaluated with respect to a particular state of a model. Depending on the type of the property, this value may either be a Boolean, an integer or a double. When analysing a property of a model, though, PRISM actually determines the value for all states of the model. Furthermore, the final value that PRISM returns as the result of model checking depends on the model type.
For Boolean properties, such as those conforming to the classical syntax of PCTL, CSL, etc., PRISM returns a value of true
if the property is true for all states of the model. To check if a property is satisfied in some subset of states, for example just the initial states, properties can be prefixed with an implication, e.g.:
For numeric properties, typically a single value (for a single state) is required. The default behaviour of PRISM is to return the value for the initial state of the model. This issue was discussed in more depth in the the Quantitative Properties section.