Towards Verified Distributed Software Through Refinement of Formal Archetypes

This paper discusses experiments with a “model-based” approach for developing verified distributed systems in which program development is carried out by stepwise refinement: we encode, specifications and algorithm archetypes in the PVS theorem prover, carry out stepwise refinement and concomitant proofs, and obtain collections of verified algorithms encoded in PVS. Finally we transform algorithms from PVS to programs in Java. We consider a class of systems in which state spaces may be continuous and state transitions may be continuous or discrete. Coordinated multi-vehicle systems are examples of this class. Temporal properties of this class of problems are specified in terms of convergence: the system state gets arbitrarily close to a limit as time tends to infinity. Our meta-theorems for verifying convergence are extensions from control theory to a temporal logic of continuous time and state spaces.

[1]  K. Mani Chandy,et al.  Parallel program design - a foundation , 1988 .

[2]  K. Mani Chandy,et al.  Reasoning About Continuous Systems , 1990, Sci. Comput. Program..

[3]  Natarajan Shankar,et al.  PVS: A Prototype Verification System , 1992, CADE.

[4]  Jean-Raymond Abrial,et al.  The B-book - assigning programs to meanings , 1996 .

[5]  Sriram K. Rajamani,et al.  The SLAM project: debugging system software via static analysis , 2002, POPL '02.

[6]  Richard T. Vaughan,et al.  On device abstractions for portable, reusable robot code , 2003, Proceedings 2003 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS 2003) (Cat. No.03CH37453).

[7]  Michael D. Ernst,et al.  An overview of JML tools and applications , 2003, Electron. Notes Theor. Comput. Sci..

[8]  Myla Archer,et al.  TAME: Using PVS strategies for special-purpose theorem proving , 2001, Annals of Mathematics and Artificial Intelligence.

[9]  Nancy A. Lynch,et al.  Verifiable compilation of i/o automata without global synchronization , 2005 .

[10]  Koushik Sen,et al.  CUTE: a concolic unit testing engine for C , 2005, ESEC/FSE-13.

[11]  Kaisa Sere,et al.  Superposition refinement of reactive systems , 2005, Formal Aspects of Computing.

[12]  Nancy A. Lynch,et al.  Translating Timed I/O Automata Specifications for Theorem Proving in PVS , 2007 .

[13]  Viktor Kuncak,et al.  An overview of the Jahob analysis system: project goals and current status , 2006, Proceedings 20th IEEE International Parallel & Distributed Processing Symposium.

[14]  Peter W. O'Hearn,et al.  Verified Software: A Grand Challenge , 2006, Computer.

[15]  Nancy A. Lynch,et al.  The Theory of Timed I/O Automata (Synthesis Lectures in Computer Science) , 2006 .

[16]  Sayan Mitra,et al.  A verification framework for hybrid systems , 2007 .

[17]  Alex Groce,et al.  Randomized Differential Testing as a Prelude to Formal Verification , 2007, 29th International Conference on Software Engineering (ICSE'07).

[18]  Tao Xie,et al.  Evacon: a framework for integrating evolutionary and concolic testing for object-oriented programs , 2007, ASE.

[19]  Thomas A. Henzinger,et al.  The software model checker B last : Applications to software engineering , 2007 .

[20]  K. Mani Chandy,et al.  Convergence Verification: From Shared Memory to Partially Synchronous Systems , 2008, FORMATS.

[21]  K. Mani Chandy,et al.  A Formalized Theory for Verifying Stability and Convergence of Automata in PVS , 2008, TPHOLs.