www.prismmodelchecker.org
HomeAboutDownloadsDocumentationManualPublicationsCase StudiesSupport

Property Specification /

Basic Syntax

The basic syntax of the language for expressing a PRISM property prop is given by the following grammar:

prop ::= true | false |
         expr |
         !prop |
         prop & prop |
         prop | prop |
         prop => prop |
         P bound [ pathprop ] |
         S bound [ prop ]

bound ::= >=p | >p | <=p | <p

pathprop ::= X prop |
             prop U prop |
             prop U time prop |
             F prop |
             F time prop |
             G prop |
             G time prop

time ::= >=t | <=t | [t,t]

where:

  • expr is a PRISM language expression which evaluates to a Boolean (as described in the previous section),
  • p is a PRISM language expression evaluating to a double in the range [0,1],
  • t is a PRISM language expression evaluating to a non-negative double or integer.

A property is evaluated with respect to a single state of a model. For the syntax given above, all properties evaluate to Boolean values, i.e. for any state $s$ of a model, a property is either "true" or "false" in that state. Equivalently, we also say that a property is "satisfied" or "not satisfied" in a state. For the basic operators of the logic (i.e. true, false, expr, !, &, | and =>) the semantics are as for classical propositional logic:

  • true is true in all states,
  • false is not true in any state,
  • expr is true if the PRISM expression expr evaluates to true,
  • !prop is true if prop is not true,
  • prop1 & prop2 is true if both prop1 and prop2 are true,
  • prop1 | prop2 is true if either prop1 or prop2 is true,
  • prop1 => prop2 is true if prop1 implies prop2.

PRISM Manual

Property Specification

[ View all ]