Verifying parameterized refinement

Parameterized refinement is a refinement technique for preserving specific linear time temporal logic properties during formal program development. In this paper, we describe a proof method for verifying that one program is a parameterized refinement of another program. Our method combines transduction, due to Jonsson, Pnueli, and Rump, for showing that one system simulates another system, with techniques used in implementations of model checkers. The method is argued to be attractive in a development environment, where tools such as model checkers are applied. It enables rigorous verification that one system is a parameterized refinement of another system.

[1]  Ralph-Johan Back,et al.  Refinement Calculus, Part II: Parallel and Reactive Programs , 1989, REX Workshop.

[2]  S. Sieber On a decision method in restricted second-order arithmetic , 1960 .

[3]  Shinichi Honiden,et al.  EVA: a flexible programming method for evolving systems , 1997, IEEE Transactions on Software Engineering.

[4]  Willem-Paul de Roever,et al.  Data Refinement by Willem-Paul de Roever , 1998 .

[5]  Frank A. Stomp Preserving specific properties in program development , 1992 .

[6]  Amir Pnueli,et al.  Proving refinement using transduction , 1999, Distributed Computing.

[7]  Yehuda Afek,et al.  Lazy caching , 1993, TOPL.

[8]  Martin Peschke,et al.  Design and Validation of Computer Protocols , 2003 .

[9]  Willem-Paul de Roever,et al.  Data Refinement: Theory , 1998 .

[10]  Anish Arora,et al.  Detectors and correctors: a theory of fault-tolerance components , 1998, Proceedings. 18th International Conference on Distributed Computing Systems (Cat. No.98CB36183).

[11]  Martín Abadi,et al.  The existence of refinement mappings , 1988, [1988] Proceedings. Third Annual Information Symposium on Logic in Computer Science.

[12]  Tommi Mikkonen,et al.  Managing software evolution with a formalized abstraction hierarchy , 2002, Eighth IEEE International Conference on Engineering of Complex Computer Systems, 2002. Proceedings..

[13]  Zohar Manna,et al.  The Temporal Logic of Reactive and Concurrent Systems , 1991, Springer New York.

[14]  Pierre Wolper,et al.  Reasoning about infinite computation paths , 1983, 24th Annual Symposium on Foundations of Computer Science (sfcs 1983).

[15]  Nancy A. Lynch,et al.  Hierarchical correctness proofs for distributed algorithms , 1987, PODC '87.

[16]  S. Finn Resynch Procedures and a Fail-Safe Network Protocol , 1979, IEEE Trans. Commun..

[17]  Timothy C. Winkler,et al.  Approximate Reasoning About the Semantic Effects of Program Changes , 1990, IEEE Trans. Software Eng..

[18]  Richard Banach,et al.  Requirements validation by lifting retrenchments in B , 2004, Proceedings. Ninth IEEE International Conference on Engineering of Complex Computer Systems.