Advertisement

Formal Metatheory Using Implicit Syntax, and an Application to Data Abstraction for Asynchronous Systems

  • Amy P. Felty
  • Douglas J. Howe
  • Abhik Roychoudhury
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1632)

Abstract

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.

Keywords

Model Check Linear Time Temporal Logic Abstract Syntax Tree Abstract Program Semantic Reasoning 
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.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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. 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
  3. 3.
    R. L. Constable. A note on complexity measures for inductive classes in constructive type theory. Information and Computation, 143(2):137–153, 1998.zbMATHCrossRefMathSciNetGoogle Scholar
  4. 4.
    R. L. Constable, et al. Implementing Mathematics with the Nuprl Proof Development System. Prentice-Hall, Englewood Cliffs, New Jersey, 1986.Google Scholar
  5. 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
  6. 6.
    A. P. Felty, D. J. Howe, and F. A. Stomp. Protocol verification in Nuprl. In Tenth International Conference on Computer Aided Verification, pages 428–439. Springer-Verlag Lecture Notes in Computer Science, June 1998.CrossRefGoogle Scholar
  7. 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
  8. 8.
    D. J. Howe. Semantics foundations for embedding HOL in Nuprl. In Algebraic Methodology and Software Technology, pages 85–101. Springer-Verlag Lecture Notes in Computer Science, 1996.CrossRefGoogle Scholar
  9. 9.
    Z. Manna and A. Pnueli. The Temporal Logic of Reactive and Concurrent Systems. Springer Verlag, 1991.Google Scholar
  10. 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. 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
  12. 12.
    C. Sprenger. A verified model checker for the modal μ-calculus in Coq. In International Conference on Tools and Algorithms for the Construction and Analysis of Systems, pages 167–182. Springer-Verlag Lecture Notes in Computer Science, 1998.CrossRefGoogle Scholar
  13. 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

Copyright information

© Springer-Verlag Berlin Heidelberg 1999

Authors and Affiliations

  • Amy P. Felty
    • 1
  • Douglas J. Howe
    • 1
  • Abhik Roychoudhury
    • 2
  1. 1.Bell LabsUSA
  2. 2.Dept. of Computer ScienceSUNY at Stony BrookUSA

Personalised recommendations