PRISM is a probabilistic model checker, a tool for formal modelling and analysis of systems which exhibit random or probabilistic behaviour. It supports three types of probabilistic models: discrete-time Markov chains (DTMCs), continuous-time Markov chains (CTMCs) and Markov decision processes (MDPs), plus extensions of these models with costs and rewards.
PRISM has been used to analyse systems from a
wide range
of application domains, including
communication and multimedia protocols, randomised distributed algorithms, security protocols,
biological systems and many others.
Models are described using the PRISM language, a simple, state-based language. PRISM provides support for automated analysis of a wide range of quantitative properties of these models, e.g. "what is the probability of a failure causing the system to shut down within 4 hours?", "what is the worst-case probability of the protocol terminating in error, over all possible initial configurations?", "what is the expected size of the message queue after 30 minutes?", or "what is the worst-case expected time taken for the algorithm to terminate?". The property specification language incorporates the temporal logics PCTL and CSL, as well as extensions for quantitative specifications and costs/rewards.
PRISM incorporates state-of-the art symbolic data structures and algorithms, based on BDDs (Binary Decision Diagrams) and MTBDDs (Multi-Terminal Binary Decision Diagrams). See e.g. [KNP04b, Par02] for more information. It also features discrete-event simulation functionality for generating approximate results to quantitative analysis.
PRISM is free and open source, released under the GNU General Public License (GPL).