Sequential Programming in Promela

Spin is a model checker – a software tool for verifying models of physical systems, in particular, computerized systems. First, a model is written that describes the behavior of the system; then, correctness properties that express requirements on the system's behavior are specified; finally, the model checker is run to check if the correctness properties hold for the model, and, if not, to provide a counterexample: a computation that does not satisfy a correctness property. Model checking is challenging and fascinating because one must write a model that describes the system in sufficient detail to represent it faithfully, and yet the model must be sufficiently simple so that the model checker can perform the verification with the available resources (time and memory).

Our goal is to learn how to perform model checking in SPIN. We start with the first stage: learning the PROMELA language that is used for writing models in SPIN. PROMELA is, in effect, a simple programming language, so we will show how to use PROMELA to write sequential programs, and then gradually introduce the constructs used for performing verification and for writing models of real systems.


Assignment Statement Counting Loop Sequential Programming Correctness Property Conditional Expression 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Copyright information

© Springer-Verlag London Limited 2008

Personalised recommendations