|
Spin is a popular open-source software tool, used by thousands of people worldwide, that can be used for the formal verification of distributed software systems. The tool was developed at Bell Labs in the original Unix group of the Computing Sciences Research Center, starting in 1980. The software has been available freely since 1991, and continues to evolve to keep pace with new developments in the field. In April 2002 the tool was awarded the prestigious System Software Award for 2001 by the ACM. |
Quick Links |
|
![]() |
![]() |
|
![]() |
![]() |
![]() |
Some recommended books on general programming techniques:
Recommended rules for safety critical coding:
| Flood Control Three examples of inspiring applications of Spin in the last few years include the verification of the control algorithms for the new flood control barrier built in the late nineties near Rotterdam in the Netherlands. The verification work was carried out by the Dutch firm CMG (Computer Management Group) in collaboration with the Formal Methods group at the University of Twente. |
|
|
| Call Processing Logic verification of the call processing software for a commercial data and phone switch, the PathStar switch that was designed and built at Lucent Technologies. The application was based on model extraction from the full and unmodified ANSI-C code of the implementation, which was checked for compliance with a group of roughly 20 class-5 features formalized in linear temporal logic (e.g., call waiting, conference calling, etc.). A cluster of 16 CPUs was used to perform the verifications overnight, every day for a period of several months before the switch was marketed. Perhaps the largest application of software model checking to date. |
|
|
| Mission Critical Software Selected algorithms for a number of space missions were verified with the Spin model checker. The missions include Deep Space 1, Cassini, the Mars Exploration Rovers, Deep Impact, etc. For Cassini, we verified the correct working of the handoff algorithms for the dual control CPUs (pdf). For Deep Space 1, researchers at Ames Research Center verified some key algorithms and reported their findings in a technical report (pdf1 which appeared in IEEE Transactions on Software Engineering, Volume 27, Number 8, August 2001, and the post-mortem analysis in pdf2 which appeared at the Fifth NASA Langley Formal Methods Workshop, Virginia, June 2000). Later, at JPL a separate verification of the software used on this mission was also done (pdf). For the Mars Exploration Rovers we verified the correct working of the resource arbiter that manages the use of all motors on the rovers (pdf). More recently, for Deep Impact we verified aspects of the flash file system module that had shown problems before the encounter with the comet took place. The picture to the right shows the Cassini spacecraft. A rapidly expanding domain of application. |
|
Some of the features that set Spin apart from related verification systems are:
Spin can be used in four main modes:
All Spin software is written in ANSI standard C, and is portable across all versions of Unix, Linux, cygwin, Plan9, Inferno, Solaris, Mac, and Windows.
If you have installed both Spin and Xspin, and
want to learn how to use Xspin, then read
GettingStarted
If you want to learn how to use Spin directly from the command-line, then read
Roadmap and Exercises
For more detailed information, read also
Manual and then WhatsNew.html
A Japanese translation of the Manual is also available.
The translation tool allows you to convert extended Promela specifications into pure Promela. The extensions currently supported include:
The link to the conversion server, with a number of example extended Promela models that can be converted online, is:
The source code for the extension itself will soon also be available for downloading from the same webpage.
The Spin Model Checker: Primer and Reference Manual Addison-Wesley, ISBN 0-321-22862-6, 608 pgs, cloth-bound.The book contains a complete set of manual pages for every language construct in Promela, and explain every Spin verification option.
Design and Validation of Computer Protocols, Prentice Hall, New Jersey, 1991, ISBN 0-13-539925-4. A paperback edition of the book is still available from www.amazon.com. There is also a Japanese translation of the book.
The Model Checker Spin, IEEE Trans. on Software Engineering, Vol. 23, No. 5, May 1997, pp. 279-295. (PDF)
An automata-theoretic approach to automatic program verification, by Moshe Y. Vardi, and Pierre Wolper, Proc. First IEEE Symp. on Logic in Computer Science, 1986, pp. 322-331. (PDF)
An analysis of bitstate hashing, by G.J. Holzmann, Formal Methods in Systems Design, Nov. 1998 (PDF)
An Improvement in Formal Verification, by G.J. Holzmann and D. Peled, Proc. FORTE 1994 Conference, Bern, Switzerland. (PDF)
On nested depth-first search, by G.J. Holzmann, D. Peled, and M. Yannakakis, in The Spin Verification System, pp. 23-32, American Mathematical Society, 1996. (Proc. of the 2nd Spin Workshop.) (PDF)
Reliable hashing without collision detection, by Pierre Wolper and Dennis Leroy, Proc. 5th Int. Conference on Computer Aided Verification, 1993, Elounda, Greece, pp. 59-70. (PDF)
Simple on-the-fly automatic verification of linear temporal logic, by Rob Gerth, Doron Peled, Moshe Vardi, and Pierre Wolper, Proc. PSTV 1995 Conference, Warsaw, Poland. (PDF)For a broader overview of conversion algorithms, see: http://spot.lip6.fr/wiki/LtlTranslationAlgorithms
A Minimized automaton representation of reachable states, by A. Puri and G.J. Holzmann, Software Tools for Technology Transfer, Vol. 3, No. 1, Springer Verlag. (PDF)
Logic Verification of ANSI-C Code with Spin, by G.J. Holzmann, Proc. SPIN2000, Springer Verlag, LNCS 1885, pp. 131-147. (PDF) and the abstraction method it supports is described in Model-Driven Software Verification, by G.J. Holzmann and R. Joshi, Proc. SPIN2004, Springer Verlag, LNCS 2989, pp. 77-92. (PDF)
The Design of a multi-core extension of the Spin Model Checker , by G.J. Holzmann and D. Bosnacki, IEEE Trans. on Software Engineering, Vol. 33, No. 10, pp. 659-674. (PDF)
In the last few years, with the increased amount of spam email that
we all receive, the newsletters are discontinued
and we rely more on these online pages for announcements.
You can always send requests for changes and extensions of the Spin software,
questions on usage, and general observations to:
| Spin Homepage | (Page Updated: 20 January 2009) |