Formal Metatheory Using Implicit Syntax, and an Application to Data Abstraction for Asynchronous Systems
Abstraction is a useful tool in verification, often allowing the proof of correctness of a large and complex system to be reduced to showing the correctness of a much smaller simpler system. We use the Nuprl theorem prover to verify the correctness of a simple but commonly occurring abstraction. From the formal proof, we extract a program that succeeds when the abstraction method is applicable to the concrete input specification and in this case, computes the abstracted system specification. One of the main novelties of our work is our “implicit syntax” approach to formal metatheory of programming languages. Our proof relies entirely on semantic reasoning, and thus avoids the complications that often arise when formally reasoning about syntax. The semantic reasoning contains an implicit construction of the result using inductive predicates over semantic domains that express representability in a particular protocol language. This implicit construction is what allows the synthesis of a program that transforms a concrete specification to an abstract one via recursion on syntax.
KeywordsModel Check Linear Time Temporal Logic Abstract Syntax Tree Abstract Program Semantic Reasoning
Unable to display preview. Download preview PDF.
- 1.R. Boulton, A. Gordon, M. Gordon, J. Harrison, J. Herbert, and J. Van Tassel. Experience with embedding hardware description languages in HOL. In International Conference on Theorem Provers in Circuit Design, pages 129–156. North-Holland, 1992.Google Scholar
- 2.E. M. Clarke, O. Grumberg, and D. E. Long. Model checking and abstraction. In Proc. 19th Ann. ACM Symp. on Principles of Prog. Lang., Jan. 1992.Google Scholar
- 4.R. L. Constable, et al. Implementing Mathematics with the Nuprl Proof Development System. Prentice-Hall, Englewood Cliffs, New Jersey, 1986.Google Scholar
- 5.J. Dingel and T. Filkorn. Model checking for infinite state systems using data abstraction, assumption-commitment style reasoning and theorem proving. In Seventh International Conference on Computer Aided Verification, pages 54–69. Springer-Verlag Lecture Notes in Computer Science, 1995.Google Scholar
- 7.K. Havelund and N. Shankar. Experiments in theorem proving and model checking for protocol verification. In Formal Methods Europe, pages 662–681. Springer-Verlag Lecture Notes in Computer Science, 1996.Google Scholar
- 9.Z. Manna and A. Pnueli. The Temporal Logic of Reactive and Concurrent Systems. Springer Verlag, 1991.Google Scholar
- 10.O. Müller. A Verification Environment for I/O Automata Based on Formalized Meta-Theory. PhD thesis, Technische Universität München, 1998.Google Scholar
- 11.S. Rajan, N. Shankar, and M. K. Srivas. An integration of model checking with automated proof checking. In Seventh International Conference on Computer Aided Verification, pages 84–97. Springer-Verlag Lecture Notes in Computer Science, 1995.Google Scholar
- 13.P. Wolper. Expressing interesting properties of programs in propositional temporal logic. In Proc. 13th Ann. ACM Symp. on Principles of Prog. Lang., Jan. 1986.Google Scholar