Journal of Automated Reasoning

, Volume 55, Issue 4, pp 307–372

The Next 700 Challenge Problems for Reasoning with Higher-Order Abstract Syntax Representations

Part 2—A Survey
  • Amy P. Felty
  • Alberto Momigliano
  • Brigitte Pientka
Article

Abstract

Over the past three decades, a variety of meta-reasoning systems which support reasoning about higher-order abstract specifications have been designed and developed. In this paper, we survey and compare four meta-reasoning systems, Twelf, Beluga, Abella and Hybrid, using several benchmarks from the open repository ORBI that describes challenge problems for reasoning with higher-order abstract syntax representations. In particular, we investigate how these systems mechanize and support reasoning using a context of assumptions. This highlights commonalities and differences in these systems and is a first step towards translating between them.

Keywords

Logical frameworks Higher-order abstract syntax Proof assistants Benchmarks Context reasoning 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Accattoli, B.: Proof pearl: Abella formalization of λ-calculus cube property. In: Second International Conference on Certified Programs and Proofs, Springer, LNCS, vol. 7679, pp. 173–187 (2012)Google Scholar
  2. 2.
    Ambler, S.J., Crole, R.L., Momigliano, A.: A definitional approach to primitive recursion over higher order abstract syntax. In: ACM Workshop on MEchanized Reasoning about Languages with varIable biNding, ACM Press, pp. 1–11 (2003)Google Scholar
  3. 3.
    Appel, A.W.: Verified software toolchain. In: Programming Languages and Systems, Springer, LNCS, vol. 6602, pp. 1–17 (2011)Google Scholar
  4. 4.
    Baelde, D.: On the expressivity of minimal generic quantification. In: Third International Workshop on Logical Frameworks and Meta-Languages: Theory and Practice, LFMTP 2008, Elsevier, ENTCS, vol. 228, pp. 3–19 (2009)Google Scholar
  5. 5.
    Bélanger, O.S., Chaudhuri, K.: Automatically deriving schematic theorems for dynamic contexts. In: Ninth International Workshop on Logical Frameworks and Meta-languages: Theory and Practice, ACM Press, International Conference Proceedings Series, pp. 9:1–9:8 (2014)Google Scholar
  6. 6.
    de Bruijn, N.G.: A plea for weaker frameworks. In: Huet, G., Plotkin, G. (eds.), pp. 40–67. Cambridge University Press, Logical Frameworks (1991)Google Scholar
  7. 7.
    Capretta, V., Felty, A.P.: Combining de Bruijn indices and higher-order abstract syntax in Coq. In: Types for Proofs and Programs, International Workshop, TYPES 2006, Springer, LNCS, vol. 4502, pp. 63–77 (2007)Google Scholar
  8. 8.
    Cave, A., Pientka, B.: Programming with binders and indexed data-types. In: Thirty-Ninth Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, ACM Press, pp. 413–424 (2012)Google Scholar
  9. 9.
    Cave, A., Pientka, B.: First-class substitutions in contextual type theory. In: Eighth ACM SIGPLAN International Workshop on Logical Frameworks and Meta-Languages: Theory and Practice, ACM Press, pp. 15–24 (2013)Google Scholar
  10. 10.
    Cave, A., Pientka, B.: Mechanizing logical relation proofs using contextual types theory. Tech. rep., School of Computer Science, McGill University (2014)Google Scholar
  11. 11.
    Crary, K.: Explicit contexts in LF (extended abstract). In: Third International Workshop on Logical Frameworks and Meta-Languages: Theory and Practice, LFMTP 2008, Elsevier, ENTCS, vol. 228, pp. 53–68 (2009)Google Scholar
  12. 12.
    Dunfield, J., Pientka, B.: Case analysis of higher-order data. In: Third International Workshop on Logical Frameworks and Meta-Languages: Theory and Practice, LFMTP 2008, Elsevier, ENTCS, vol. 228, pp. 69–84 (2009)Google Scholar
  13. 13.
    Felty, A., Pientka, B.: Reasoning with higher-order abstract syntax and contexts: A comparison. In: First International Conference on Interactive Theorem Proving, Springer, LNCS, vol. 6172, pp. 227–242 (2010)Google Scholar
  14. 14.
    Felty, A.P.: Two-level meta-reasoning in Coq. In: Fifteenth International Conference on Theorem Proving in Higher-Order Logics, Springer, LNCS, vol. 2410, pp. 198–213 (2002)Google Scholar
  15. 15.
    Felty, A.P., Momigliano, A.: Reasoning with hypothetical judgments and open terms in Hybrid. In: Eleventh ACM SIGPLAN International Symposium on Principles and Practice of Declarative Programming, ACM Press, pp. 83–92 (2009)Google Scholar
  16. 16.
    Felty, A.P., Momigliano, A.: Hybrid: A definitional two-level approach to reasoning with higher-order abstract syntax. J. Autom. Reason. 48(1), 43–105 (2012)MATHMathSciNetCrossRefGoogle Scholar
  17. 17.
    Felty, A.P., Momigliano, A., Pientka, B.: The next 700 challenge problems for reasoning with higher-order abstract syntax representations: Part 1—a common infrastructure for benchmarks. CoRR (2015). arXiv:1503.06095
  18. 18.
    Ferreira, F., Monnier, S., Pientka, B.: Compiling contextual objects: Bringing higher-order abstract syntax to programmers. In: Seventh ACM SIGPLAN Workshop on Programming Languages Meets Program Verification, ACM Press, pp. 13–24 (2013)Google Scholar
  19. 19.
    Gacek, A.: The Abella interactive theorem prover (system description), vol. 5195, pp. 154–161 (2008)Google Scholar
  20. 20.
    Gacek, A.: A framework for specifying, prototyping, and reasoning about computational systems. PhD thesis, University of Minnesota (2009)Google Scholar
  21. 21.
    Gacek, A., Miller, D., Nadathur, G.: Nominal abstraction. Inf. Comput. 209(1), 48–73 (2011)MATHMathSciNetCrossRefGoogle Scholar
  22. 22.
    Gacek, A., Miller, D., Nadathur, G.: A two-level logic approach to reasoning about computations. J. Autom. Reason. 49(2), 241–273 (2012)MATHMathSciNetCrossRefGoogle Scholar
  23. 23.
    Habli, N., Felty, A.P.: Translating higher-order specifications to Coq libraries supporting Hybrid proofs. In: Third International Workshop on Proof Exchange for Theorem Proving, EasyChair Proceedings in Computing, vol. 14, pp. 67–76 (2013)Google Scholar
  24. 24.
    Harper, R., Licata, D.R.: Mechanizing metatheory in a logical framework. J. Funct. Program. 17(4-5), 613–673 (2007)MATHMathSciNetCrossRefGoogle Scholar
  25. 25.
    Harper, R., Honsell, F., Plotkin, G.: A framework for defining logics. J. Assoc. Comput. Mach. 40(1), 143–184 (1993)MATHMathSciNetCrossRefGoogle Scholar
  26. 26.
    Leroy, X.: Formal verification of a realistic compiler. Commun. ACM 52(7), 107–115 (2009)CrossRefGoogle Scholar
  27. 27.
    McDowell, R.C., Miller, D.A.: Reasoning with higher-order abstract syntax in a logical framework. ACM Trans. Comput. Log. 3(1), 80–136 (2002)MathSciNetCrossRefGoogle Scholar
  28. 28.
    Miller, D., Nadathur, G.: Programming with Higher-Order Logic. Cambridge University Press (2012)Google Scholar
  29. 29.
    Momigliano, A.: A supposedly fun thing I may have to do again: A HOAS encoding of Howe’s method. In: Seventh ACM SIGPLAN International Workshop on Logical Frameworks and Meta-Languages, Theory and Practice, ACM Press, pp. 33–42 (2012)Google Scholar
  30. 30.
    Momigliano, A., Ambler, S.J.: Multi-level meta-reasoning with higher order abstract syntax. In: Sixth International Conference on Foundations of Software Science and Computational Structures, Springer, LNCS, vol. 2620, pp. 375–391 (2003)Google Scholar
  31. 31.
    Momigliano, A., Ambler, S., Crole, R.L.: A Hybrid encoding of Howe’s method for establishing congruence of bisimilarity. Electr. Notes Theor. Comput. Sci. 70(2), 60–75 (2002)CrossRefGoogle Scholar
  32. 32.
    Momigliano, A., Martin, A.J., Felty, A.P.: Two-level Hybrid: A system for reasoning using higher-order abstract syntax. In: Second International Workshop on Logical Frameworks and Meta-Languages: Theory and Practice, LFMTP 2007, Elsevier, ENTCS, vol. 196, pp. 85–93 (2008)Google Scholar
  33. 33.
    Nanevski, A., Pfenning, F., Pientka, B.: Contextual modal type theory. ACM Trans. Comput. Log. 9(3), 1–49 (2008)MathSciNetCrossRefGoogle Scholar
  34. 34.
    Pfenning, F.: Computation and deduction, http://www.cs.cmu.edu/~fp/courses/comp-ded/handouts/cd.pdf, accessed 14 October 2014 (2001)
  35. 35.
    Pientka, B.: Verifying termination and reduction properties about higher-order logic programs. J. Autom. Reason. 34(2), 179–207 (2005)MATHMathSciNetCrossRefGoogle Scholar
  36. 36.
    Pientka, B.: A type-theoretic foundation for programming with higher-order abstract syntax and first-class substitutions. In: Thirty-Fifth Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, ACM Press, pp. 371–382 (2008)Google Scholar
  37. 37.
    Pientka, B.: Programming inductive proofs: A new approach based on contextual types. In: Verification, Induction, Termination Analysis: Festschrift for Christoph Walther, Springer, LNCS, vol. 6463, pp. 1–16 (2010)Google Scholar
  38. 38.
    Pientka, B., Abel, A.: Structural recursion over contextual objects. In: Thirteenth International Conference on Typed Lambda Calculi and Applications, Leibniz International Proceedings in Informatics (LIPIcs) of Schloss Dagstuhl (forthcoming) (2015)Google Scholar
  39. 39.
    Pientka, B., Dunfield, J.: Programming with proofs and explicit contexts. In: Tenth ACM SIGPLAN International Conference on Principles and Practice of Declarative Programming, ACM Press, pp. 163–173 (2008)Google Scholar
  40. 40.
    Pientka, B., Dunfield, J.: Beluga: A framework for programming and reasoning with deductive systems (system description). In: Fifth International Joint Conference on Automated Reasoning, Springer, LNCS, vol. 6173, pp. 15–21 (2010)Google Scholar
  41. 41.
    Rohwedder, E., Pfenning, F.: Mode and termination checking for higher-order logic programs. In: Programming Languages and Systems: Sixth European Symposium on Programming, Springer, LNCS, vol. 1058, pp. 296–310 (1996)Google Scholar
  42. 42.
    Schürmann, C.: The Twelf proof assistant. In: Twenty-Second International Conference on Theorem Proving in Higher Order Logics, Springer, LNCS, vol. 5674, pp. 79–83 (2009)Google Scholar
  43. 43.
    Schürmann, C., Pfenning, F.: Automated theorem proving in a simple meta-logic for LF. In: Fifteenth International Conference on Automated Deduction, Springer, LNCS, vol. 1421, pp. 286–300 (1998)Google Scholar
  44. 44.
    Schürmann, C., Pfenning, F.: A coverage checking algorithm for LF. In: Sixteenth International Conference on Theorem Proving in Higher Order Logics, Springer, LNCS, vol. 2758, pp. 120–135 (2003)Google Scholar
  45. 45.
    Tiu, A., Momigliano, A.: Cut elimination for a logic with induction and co-induction. J. Appl. Log. 10(4), 330–367 (2012)MATHMathSciNetCrossRefGoogle Scholar
  46. 46.
    Wang, Y., Nadathur, G.: Towards extracting explicit proofs from totality checking in Twelf. In: Eighth ACM SIGPLAN International Workshop on Logical Frameworks and Meta-Languages: Theory and Practice, ACM Press, pp. 55–66 (2013)Google Scholar
  47. 47.
    Wang, Y., Chaudhuri, K., Gacek, A., Nadathur, G.: Reasoning about higher-order relational specifications. In: Fifteenth International ACM SIGPLAN Symposium on Principles and Practice of Declarative Programming, ACM Press, pp. 157–168 (2013)Google Scholar
  48. 48.
    Zhao, J., Nagarakatte, S., Martin, M.M.K., Zdancewic, S.: Formalizing the LLVM intermediate representation for verified program transformations. In: Thirty-Ninth Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, ACM Press, pp. 427–440 (2012)Google Scholar

Copyright information

© Springer Science+Business Media Dordrecht 2015

Authors and Affiliations

  • Amy P. Felty
    • 1
  • Alberto Momigliano
    • 2
  • Brigitte Pientka
    • 3
  1. 1.School of Electrical Engineering and Computer ScienceUniversity of OttawaOttawaCanada
  2. 2.Dipartimento di InformaticaUniversità degli Studi di MilanoMilanItaly
  3. 3.School of Computer ScienceMcGill UniversityMontrealCanada

Personalised recommendations