Multi-level Meta-reasoning with Higher-Order Abstract Syntax

  • Alberto Momigliano
  • Simon J. Ambler
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2620)

Abstract

Combining Higher Order Abstract Syntax (HOAS) and (co)- induction is well known to be problematic. In previous work [1] we have described the implementation of a tool called Hybrid, within Isabelle HOL, which allows object logics to be represented using HOAS, and reasoned about using tactical theorem proving and principles of (co)induction. Moreover, it is definitional, which guarantees consistency within a classical type theory. In this paper we describe how to use it in a multi-level reasoning fashion, similar in spirit to other meta-logics such FOλ△IN and Twelf. By explicitly referencing provability, we solve the problem of reasoning by (co)induction in presence of non-stratifiable hypothetical judgments, which allow very elegant and succinct specifications. We demonstrate the method by formally verifying the correctness of a compiler for (a fragment) of Mini-ML, following [10]. To further exhibit the flexibility of our system, we modify the target language with a notion of non-well-founded closure, inspired by Milner & Tofte [16] and formally verify via co-induction a subject reduction theorem for this modified language.

References

  1. [1]
    S. Ambler, R. Crole, and A. Momigliano. Combining higher order abstract syntax with tactical theorem proving and (co)induction. In V. A. Carreño, editor, Proceedings of the 15th International Conference on Theorem Proving in Higher Order Logics, volume 2342 of LNCS. Springer Verlag, 2002.Google Scholar
  2. [2]
    S. Boutin. Proving correctness of the translation from mini-ML to the CAM with the Coq proof development system. Technical Report RR-2536, Inria, Institut National de Recherche en Informatique et en Automatique, 1995.Google Scholar
  3. [3]
    B. Ciesielski and M. Wand. Using the theorem prover Isabelle-91 to verify a simple proof of compiler correctness. Technical Report NU-CCS-91-20, College of Computer Science, Northeastern University, Dec. 1991.Google Scholar
  4. [4]
    J. Despeyroux. Proof of translation in natural semantics. In Proceedings of LICS’86, pages 193–205, Cambridge, MA, 1986. IEEE Computer Society Press.Google Scholar
  5. [5]
    J. Despeyroux, A. Felty, and A. Hirschowitz. Higher-order abstract syntax in Coq. InM. Dezani-Ciancaglini and G. Plotkin, editors, Proceedings of the International Conference on Typed Lambda Calculi and Applications, pages 124–138, Edinburgh, Scotland, Apr. 1995. Springer-Verlag LNCS 902.Google Scholar
  6. [6]
    A. Felty. Two-level meta-reasoning in Coq. In V. A. Carreño, editor, Proceedings of the 15th International Conference on Theorem Proving in Higher Order Logics, volume 2342 of LNCS. Springer Verlag, 2002.Google Scholar
  7. [7]
    M. Gabbay and A. Pitts. A new approach to abstract syntax involving binders. In G. Longo, editor, Proceedings of the 14th Annual Symposium on Logic in Computer Science (LICS’99), pages 214–224, 1999. IEEE Computer Society Press.Google Scholar
  8. [8]
    L. Hallnas. Partial inductive definitions. TCS, 87(1):115–147, July 1991.MathSciNetCrossRefGoogle Scholar
  9. [9]
    J. Hannan and D. Miller. From operational semantics to abstract machines. Mathematical Structures in Computer Science, 2(4):415–459, 1992.MATHMathSciNetCrossRefGoogle Scholar
  10. [10]
    J. Hannan and F. Pfenning. Compiler verification in LF. In A. Scedrov, editor, Seventh Annual IEEE Symposium on Logic in Computer Science, pages 407–418, Santa Cruz, California, June 1992.Google Scholar
  11. [11]
    P. H. Hartel and L. Moreau. Formalizing the safety of Java,the Java Virtual Machine, and Java Card. ACMCS, 33(4):517–558, Dec. 2001.Google Scholar
  12. [12]
    F. Honsell, M. Miculan, and I. Scagnetto.An axiomatic approach to metareasoning on systems in higher-order abstract syntax. In Proc. ICALP’01, number 2076in LNCS, pages 963–978. Springer-Verlag, 2001.Google Scholar
  13. [13]
    D. Lester and S. Mintchev. Towards machine-checked compiler correctness for higher-order pure functional languages. In L. Pacholski and J. Tiuryn, editors, Computer Science Logic, pages 369–381. Springer-Verlag LNCS 933, 1995.CrossRefGoogle Scholar
  14. [14]
    R. McDowell and D. Miller. Reasoning with higher-order abstract syntax in a logical framework. ACM Transactions on Computational Logic, 3(1):80–136, 2002.CrossRefMathSciNetGoogle Scholar
  15. [15]
    D. Miller, G. Nadathur, F. Pfenning, and A. Scedrov. Uniform proofs as a foundation for logic programming. Annals of Pure and Applied Logic, 51:125–157, 1991.CrossRefMathSciNetMATHGoogle Scholar
  16. [16]
    R. Milner and M. Tofte. Co-induction in relational semantics. Theoretical Computer Science, 87:209–220, 1991.MATHCrossRefMathSciNetGoogle Scholar
  17. [17]
    A. Momigliano, S. Ambler, and R. Crole. A Hybrid encoding of Howe’s method for establishing congruence of bisimilarity. ENTCS, 70(2), 2002.Google Scholar
  18. [18]
    F. Pfenning. Computation and Deduction. Cambridge University Press, 2000. In preparation. Draft from April 1997 available electronically.Google Scholar
  19. [19]
    F. Pfenning and E. Rohwedder. Implementing the meta-theory of deductive systems. In D. Kapur, editor, Proceedings of the 11th International Conference on Automated Deduction, pages 537–551. Springer-Verlag LNAI 607.Google Scholar
  20. [20]
    F. Pfenning and C. Schürmann. System description: Twelf — a meta-logical framework for deductive systems. In H. Ganzinger, editor, Proceedings of CADE 16, pages 202–206. Springer LNAI 1632.Google Scholar
  21. [21]
    C. Schürmann. Automating the Meta-Theory of Deductive Systems. PhD thesis, Carnegie-Mellon University, 2000. CMU-CS-00-146.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2003

Authors and Affiliations

  • Alberto Momigliano
    • 1
  • Simon J. Ambler
    • 1
  1. 1.Department of Mathematics and Computer ScienceUniversity of LeicesterLeicesterUK

Personalised recommendations