Automated quantitative software verification with PRISM

Lead Research Organisation: University of Oxford
Department Name: Computer Science

Abstract

Large-scale distributed systems, such as the Internet, broadband wireless at home and mobile phone networks, raise many challenges for the design and engineering of the underlying infrastructure. Such systems crucially depend on robust and efficient communication and coordination protocols that ensure that the overall system is self-organising, timely and energy-efficient, possibly in the presence of unreliable network services and malicious or uncooperative agents. New protocols for distributed coordination are being introduced to manage the limited resources. They increasingly often rely on randomisation, which plays an important role in achieving de-centralisation, and resource awareness, for example adapting to the power level. The combination of randomness and nondeterminism that arises from the scheduling of distributed components introduces complex behaviours that may be difficult to reason about. Assuring correctness, dependability and quality of service of such distributed systems is thus a non-trivial task that necessitates a rigorous approach, and methods for quantitative evaluation of such systems against properties such as ``the probability of battery level dropping below minimum within 5 seconds is guaranteed to be below 0.01 in all critical situations'', are needed. Theoretical foundations of such quantitative analysis have been proposed, with some implemented in software tools and evaluated through case studies. However, no tools and techniques can directly address real programming languages endowed with features such as random choice and timing delays.This proposal is to further develop the foundations for reasoning about probabilistic systems to enable quantitative analysis of real programming languages. The research will involve extending the successful quantitative probabilistic model checker PRISM (www.cs.bham.ac.uk/~dxp/prism/) via predicate abstraction, and develop additional enhancements to the PRISM toolkit in collaboration with the extensive user community. The resulting techniques will also be relevant for other domains in which probabilistic model checking has proved successful, e.g. performance analysis, planning and systems biology.

Publications

10 25 50

publication icon
Ciesinski F (2008) Model Checking Software

publication icon
Etessami K (2008) Multi-Objective Model Checking of Markov Decision Processes in Logical Methods in Computer Science

publication icon
Etessami K (2007) Multi-Objective Model Checking of Markov Decision Processes in Proc. 13th International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS'07)

publication icon
Feng L (2010) Compositional Verification of Probabilistic Systems using Learning in Proc. 7th International Conference on Quantitative Evaluation of SysTems (QEST'10)

publication icon
Heath J (2008) Probabilistic model checking of complex biological pathways in Theoretical Computer Science

 
Description The project has developed several novel techniques for verification of quantitative properties of software and applied them, for the first time, to real programming languages such as C. An underlying theoretical framework was defined for constructing abstractions of systems that exhibit probabilistic and timed behaviour, automatically refining these abstractions and verifying quantitative properties such as performance, reliability and resource usage [KKNP10, KH09a, KNP10b, Kat11]. Efficient algorithms to implement this framework were developed, based on predicate abstraction and convex polyhedra (zones), and built into software tools for quantitative verification [KNP09c, KKNP09, Kat11]. This includes QProver a tool for verifying a probabilistic extension to ANSI C, applied to real source code for several network utilities, and a new version of the PRISM model checker, which allows probabilistic programs to be extended with real-time behaviour. The project has also developed several other techniques for improving the efficient of verifying probabilistic systems, including compositional (assume-guarantee) model checking [EKVY08, KNPQ10], algorithmic learning [FKP10] and symmetry reduction [DMP09]. These have been applied to the analysis of numerous large case studies, ranging from communication protocols to systems biology [HKN+08, KNP09b, KNP10a].

Citations are to publications listed here:
http://qav.comlab.ox.ac.uk/projects/epsrc-swverif/publications.php
Exploitation Route The project developed methods as well as software, available from:

http://qav.comlab.ox.ac.uk/projects/epsrc-swverif/
Sectors Digital/Communication/Information Technologies (including Software)

URL http://qav.comlab.ox.ac.uk/projects/epsrc-swverif/
 
Description PRISM is a probabilistic model checker, a tool for formal modelling and analysis of systems that exhibit random or probabilistic behaviour. It has been used to analyse systems from many different application domains, including communication and multimedia protocols, randomised distributed algorithms, security protocols, biological systems and many others. See http://www.prismmodelchecker.org/
Sector Digital/Communication/Information Technologies (including Software)
 
Title PRISM case studies 
Description Variety of models of randomised distributed algorithms, communication protocols and biological case studies developed in the PRISM modelling language 
Type Of Material Computer model/algorithm 
Provided To Others? Yes  
Impact Modelling and analysis of performance of the IEEE 802.15.4 CSMA-CA Protocol (ZigBee) Predictive modelling and analysis of the FGF signalling pathway via probabilistic model checking 
URL http://www.prismmodelchecker.org/casestudies/index.php
 
Title Probabilistic model checker PRISM 
Description PRISM is a probabilistic model checker for Markov chains, Markov decision processes and probabilistic timed automata. It accepts property specifications in temporal logic. The tool was first released in 2001, and this output concerns PRISM 4.0 released in 2011. 
Type Of Technology Software 
Year Produced 2011 
Open Source License? Yes  
Impact PRISM is widely used for research and teaching, with 50,000 downloads to date and over 700 citations to the 2011 tool paper. 
URL http://www.prismmodelchecker.org/
 
Title QProver, quantitative verification for ANSI C software 
Description QProver is a tool based on the CProver and PRISM tools, which provides quantitative verification for ANSI C software 
Type Of Technology Software 
Year Produced 2011 
Impact QProver was used to verify Linux utilities 
URL http://www.prismmodelchecker.org/qprover/