Skip to main content
Log in

Hybrid

A Definitional Two-Level Approach to Reasoning with Higher-Order Abstract Syntax

  • Published:
Journal of Automated Reasoning Aims and scope Submit manuscript

Abstract

Combining higher-order abstract syntax and (co)-induction in a logical framework is well known to be problematic. We describe the theory and the practice of a tool called Hybrid, within Isabelle/HOL and Coq, which aims to address many of these difficulties. It allows object logics to be represented using higher-order abstract syntax, and reasoned about using tactical theorem proving and principles of (co)induction. Moreover, it is definitional, which guarantees consistency within a classical type theory. The idea is to have a de Bruijn representation of λ-terms providing a definitional layer that allows the user to represent object languages using higher-order abstract syntax, while offering tools for reasoning about them at the higher level. In this paper we describe how to use Hybrid in a multi-level reasoning fashion, similar in spirit to other systems such as Twelf and Abella. By explicitly referencing provability in a middle layer called a specification logic, we solve the problem of reasoning by (co)induction in the presence of non-stratifiable hypothetical judgments, which allow very elegant and succinct specifications of object logic inference rules. We first demonstrate the method on a simple example, formally proving type soundness (subject reduction) for a fragment of a pure functional language, using a minimal intuitionistic logic as the specification logic. We then prove an analogous result for a continuation-machine presentation of the operational semantics of the same language, encoded this time in an ordered linear logic that serves as the specification layer. This example demonstrates the ease with which we can incorporate new specification logics, and also illustrates a significantly more complex object logic whose encoding is elegantly expressed using features of the new specification logic.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Abramsky, S., Ong, C.-H.L.: Full abstraction in the lazy lambda calculus. Inf. Comput. 105(2), 159–267 (1993)

    Article  MATH  MathSciNet  Google Scholar 

  2. Ambler, S.J., Crole, R.L., Momigliano, A.: A definitional approach to primitive recursion over higher order abstract syntax. In: MERλIN ’03: Proceedings of the 2003 ACM SIGPLAN Workshop on MEchanized Reasoning About Languages with Variable Binding. pp. 1–11. ACM Press, New York (2003)

    Chapter  Google Scholar 

  3. Ambler, S., Crole, R.L., Momigliano, A.: Combining higher order abstract syntax with tactical theorem proving and (co)induction. In: Carreño, V., Muñoz, C., Tashar, S. (eds.) Theorem Proving in Higher Order Logics, 15th International Conference, TPHOLs 2002, Hampton, VA, USA, 20–23 August 2002, Proceedings. Lecture Notes in Computer Science, vol. 2410, pp. 13–30. Springer (2002)

  4. Aydemir, B., Bohannon, A., Weirich, S.: Nominal reasoning techniques in Coq. Electr. Notes Theor. Comput. Sci. 174(5), 69–77 (2007)

    Article  Google Scholar 

  5. Aydemir, B., Charguéraud, A., Pierce, B.C., Pollack, R., Weirich, S.: Engineering formal metatheory. SIGPLAN Not. 43(1), 3–15 (2008)

    Article  Google Scholar 

  6. Aydemir, B.E., Bohannon, A., Fairbairn, M., Foster, J.N., Pierce, B.C., Sewell, P., Vytiniotis, D., Washburn, G., Weirich, S., Zdancewic, S.: Mechanized metatheory for the masses: the poplmark challenge. In: Hurd, J., Melham, T. (eds.) Theorem Proving in Higher Order Logics, 18th International Conference. Lecture Notes in Computer Science, pp. 50–65. Springer (2005)

  7. Baelde, D., Gacek, A., Miller, D., Nadathur, G., Tiu, A.: The Bedwyr system for model checking over syntactic expressions. In: Pfenning, F. (ed.) CADE. Lecture Notes in Computer Science, vol. 4603, pp. 391–397. Springer (2007)

  8. Ballarin, C.: Locales and locale expressions in Isabelle/Isar. In: Berardi, S., Coppo, M., Damiani, F. (eds.) Types for Proofs and Programs, International Workshop, TYPES 2003, Torino, Italy, 30 April–4 May 2003, Revised Selected Papers. Lecture Notes in Computer Science, vol. 3085, pp. 34–50. Springer (2004)

  9. Benton, N., Kennedy, A.: Monads, effects and transformations. Electr. Notes Theor. Comput. Sci. 26, 3–20 (1999)

    Article  Google Scholar 

  10. Benton, N., Kennedy, A., Russell, G.: Compiling standard ML to Java bytecodes. In: ICFP 1998, pp. 129–140 (1998)

  11. Berghofer, S., Nipkow, T.: Proof terms for simply typed higher order logic. In: Harrison, J., Aagaard, M. (eds.) Theorem Proving in Higher Order Logics. LNCS, vol. 1869, pp. 38–52. Springer (2000)

  12. Berghofer, S., Urban, C.: A head-to-head comparison of de Bruijn indices and names. Electr. Notes Theor. Comput. Sci. 174(5), 53–67 (2007)

    Article  Google Scholar 

  13. Bertot, Y., Castéran, P.: Interactive Theorem Proving and Program Development. Coq’Art: The Calculus of Inductive Constructions. Springer (2004)

  14. Bowen, K.A., Kowalski, R.A.: Amalgamating language and metalanguage in logic programming. In: Clark, K.L., Tarnlund, S.A. (eds.) Logic Programming. APIC Studies in Data Processing, vol. 16, pp. 153–172. Academic (1982)

  15. Bucalo, A., Honsell, F., Miculan, M., Scagnetto, I., Hoffman, M.: Consistency of the theory of contexts. J. Funct. Program. 16(3), 327–372 (2006)

    Article  MATH  MathSciNet  Google Scholar 

  16. Capretta, V., Felty, A.P.: Higher-order abstract syntax in type theory. In: Logic Colloquium ’06. ASL Lecture Notes in Logic, vol. 32 (2008)

  17. Capretta, V., Felty, A.P.: Combining de Bruijn indices and higher-order abstract syntax in Coq. In: Altenkirch, T., McBride, C. (eds.) TYPES. Lecture Notes in Computer Science, vol. 4502, pp. 63–77. Springer (2006)

  18. Cervesato, I., Pfenning, F.: A linear logical framework. Inf. Comput. 179(1), 19–75 (2002)

    Article  MATH  MathSciNet  Google Scholar 

  19. Cheney, J.: A simpler proof theory for nominal logic. In: Sassone, V. (ed.) FoSSaCS. Lecture Notes in Computer Science, vol. 3441, pp. 379–394. Springer (2005)

  20. Cheney, J.: A simple nominal type theory. Electr. Notes Theor. Comput. Sci. 228, 37–52 (2009)

    Article  Google Scholar 

  21. Chlipala, A.: Parametric higher-order abstract syntax for mechanized semantics. In: 13th ACM SIGPLAN International Conference on Functional Programming (2008)

  22. Church, A.: A formulation of the simple theory of types. J. Symb. Log. 5, 56–68 (1940)

    Article  MATH  MathSciNet  Google Scholar 

  23. Ciaffaglione, A., Liquori, L., Miculan, M.: Reasoning about object-based calculi in (co)inductive type theory and the theory of contexts. J. Autom. Reason. 39(1), 1–47 (2007)

    Article  MATH  MathSciNet  Google Scholar 

  24. Clement, D., Despeyroux, J., Despeyroux, T., Kahn, G.: A simple applicative language: Mini-ML. In: Proceedings of the 1986 ACM Conference on Lisp and Functional Programming, pp. 13–27. ACM (1986)

  25. Crary, K., Sarkar, S.: Foundational certified code in a metalogical framework. In: Baader, F. (ed.) CADE. Lecture Notes in Computer Science, vol. 2741, pp. 106–120. Springer (2003)

  26. Crole, R.: Hybrid adequacy. Technical Report CS-06-011, School of Mathematics and Computer Sience, University of Leicester (2006)

  27. Cui, S., Donnelly, K., Xi, H.: ATS: a language that combines programming with theorem proving. In: Gramlich, B. (ed.) FroCos. Lecture Notes in Computer Science, vol. 3717, pp. 310–320. Springer (2005)

  28. Danvy, O., Dzafic, B., Pfenning, F.: On proving syntactic properties of CPS programs. In: Gordon, A., Pitts, A. (eds.) Proceedings of HOOTS’99, Paris. Electronic Notes in Theoretical Computer Science, vol. 26 (1999)

  29. de Bruijn, N.G.: A plea for weaker frameworks. In: Huet, G., Plotkin, G. (eds.) Logical Frameworks, pp. 40–67. Cambridge University Press (1991)

  30. Despeyroux, J., Felty, A., Hirschowitz, A.: Higher-order abstract syntax in Coq. In: Second International Conference on Typed Lambda Calculi and Applications, pp. 124–138. Lecture Notes in Computer Science. Springer (1995)

  31. Despeyroux, J., Leleu, P.: Metatheoretic results for a modal λ-calculus. J. Funct. Logic Program. 2000(1) (2000)

  32. Eriksson, L.-H.: Pi: an interactive derivation editor for the calculus of partial inductive definitions. In: Bundy, A. (ed.) CADE. Lecture Notes in Computer Science, vol. 814, pp. 821–825. Springer (1994)

  33. Felty, A., Pientka, B.: Reasoning with higher-order abstract syntax and contexts: a comparison. In: Kaufmann, M., Paulson, L. (eds.) International Conference on Interactive Theorem Proving. Lecture Notes in Computer Science, vol. 6172, pp. 228–243. Springer (2010)

  34. Felty, A.P.: Two-level meta-reasoning in Coq. In: Carreño, V., Muñoz, C., Tashar, S. (eds.) Theorem Proving in Higher Order Logics, 15th International Conference, TPHOLs 2002, Hampton, VA, USA, 20–23 August 2002, Proceedings. Lecture Notes in Computer Science, vol. 2410, pp. 198–213. Springer (2002)

  35. Felty, A.P., Momigliano, A.: Reasoning with hypothetical judgments and open terms in Hybrid. In: Porto, A., López-Fraguas, F.J. (eds.) PPDP, pp. 83–92. ACM (2009)

  36. Ford, J., Mason, I.A.: Formal foundations of operational semantics. Higher-Order and Symbolic Computation 16(3), 161–202 (2003)

    Article  MATH  Google Scholar 

  37. Gabbay, M.J., Pitts, A.M.: A new approach to abstract syntax with variable binding. Form. Asp. Comput. 13, 341–363 (2001)

    Article  Google Scholar 

  38. Gabbay, M., Cheney, J.: A sequent calculus for nominal logic. In: LICS, pp. 139–148. IEEE Computer Society (2004)

  39. Gabbay, M.J.: Automating Fraenkel-Mostowski syntax. Technical Report CP-2002-211736, NASA (2002). Track B Proceedings of TPHOLs’02

  40. Gacek, A.: The Abella interactive theorem prover (system description). In: Armando, A., Baumgartner, P., Dowek, G. (eds.) IJCAR. Lecture Notes in Computer Science, vol. 5195, pp. 154–161. Springer (2008)

  41. Gacek, A., Miller, D., Nadathur, G.: Combining generic judgments with recursive definitions. In: LICS, pp. 33–44. IEEE Computer Society (2008)

  42. Gacek, A., Miller, D., Nadathur, G.: Reasoning in Abella about structural operational semantics specifications. Electr. Notes Theor. Comput. Sci. 228, 85–100 (2009)

    Article  Google Scholar 

  43. Gillard, G.: A formalization of a concurrent object calculus up to α-conversion. In: McAllester, D.A. (ed.) CADE. Lecture Notes in Computer Science, vol. 1831, pp. 417–432. Springer (2000)

  44. Gimenez, E.: A tutorial on recursive types in Coq. Technical Report RT-0221, Inria (1998)

  45. Gordon, A.: A mechanisation of name-carrying syntax up to α-conversion. In: Joyce, J.J., Seger, C.-J.H. (eds.) International Workshop on Higher Order Logic Theorem Proving and its Applications. Lecture Notes in Computer Science, vol. 780, pp. 414–427. Vancouver, Canada, August 1994. University of British Columbia, Springer (1994)

  46. Gordon, A.D., Melham, T.: Five axioms of α-conversion. In: von Wright, J., Grundy, J., Harrison, J. (eds.) Proceedings of the 9th International Conference on Theorem Proving in Higher Order Logics (TPHOLs’96), pp. 173–191, Turku, Finland, August 1996. LNCS 1125. Springer (1996)

  47. Gunter, E.L.: Why we can’t have SML-style datatype declarations in HOL. In: Claesen, L.J.M., Gordon, M.J.C. (eds) TPHOLs. IFIP Transactions, vol. A-20, pp. 561–568. Elsevier, North-Holland (1992)

    Google Scholar 

  48. Hallnas, L.: Partial inductive definitions. Theor. Comp. Sci. 87(1), 115–147 (1991)

    Article  MathSciNet  Google Scholar 

  49. Harper, R., Honsell, F., Plotkin, G.: A framework for defining logics. J. Assoc. Comput. Mach. 40(1), 143–184 (1993)

    MATH  MathSciNet  Google Scholar 

  50. Hickey, J., Nogin, A., Yu, X., Kopylov, A.: Mechanized meta-reasoning using a hybrid HOAS/de Bruijn representation and reflection. In: Reppy, J.H., Lawall, J.L. (eds.) ICFP 2006, pp. 172–183. ACM Press (2006)

  51. Hill, P.M., Gallagher, J.: Meta-programming in logic programming. In: Gabbay, D., Hogger, C.J., Robinson, J.A. (eds.) Handbook of Logic in Artificial Intelligence and Logic Programming, Volume 5: Logic Programming, pp. 421–498. Oxford University Press, Oxford (1998)

    Google Scholar 

  52. Hodas, J.S., Miller, D.: Logic programming in a fragment of intuitionistic linear logic. Inf. Comput. 110(2), 327–365 (1994)

    Article  MATH  MathSciNet  Google Scholar 

  53. Honsell, F., Miculan, M., Scagnetto, I.: An axiomatic approach to metareasoning on nominal algebras in HOAS. In: Orejas, F., Spirakis, P.G., van Leeuwen, J. (eds.) ICALP. Lecture Notes in Computer Science, vol. 2076, pp. 963–978. Springer (2001)

  54. Howe, D.J.: Proving congruence of bisimulation in functional programming languages. Inf. Comput. 124(2), 103–112 (1996)

    Article  MATH  MathSciNet  Google Scholar 

  55. Hybrid Group: Hybrid: a package for higher-order syntax in Isabelle and Coq. hybrid.dsi.unimi.it (2008). Accessed 20 May 2010

  56. Isar Group: Isar—Intelligible semi-automated reasoning. http://isabelle.in.tum.de/Isar (2000). Accessed 13 May 2010

  57. Johansson, I.: Der Minimalkalkl, ein reduzierter intuitionistischer Formalismus. Compos. Math. 4, 119–136 (1937)

    MathSciNet  Google Scholar 

  58. Lassen, S.B.: Head normal form bisimulation for pairs and the λμ-calculus. In: LICS, pp. 297–306. IEEE Computer Society (2006)

  59. Lee, D.K., Crary, K., Harper, R.: Towards a mechanized metatheory of standard ML. In: POPL ’07: Proceedings of the 34th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pp. 173–184. ACM Press, New York (2007)

  60. LEGO Group: The LEGO proof assistant. www.dcs.ed.ac.uk/home/lego/ (2001). Accessed 18 May 2010

  61. Liu, H., Moore, J.S.: Executable JVM model for analytical reasoning: a study. Sci. Comput. Program. 57(3), 253–274 (2005)

    Article  MATH  MathSciNet  Google Scholar 

  62. Martin, A.: Higher-Order Abstract Syntax in Isabelle/HOL. Ph.D. thesis, University of Ottawa (2010, forthcoming)

  63. Martin, A.J.: Case study: subject reduction for Mini-ML with references,in Isabelle/HOL + Hybrid. Workshop on Mechanizing Metatheory. www.cis.upenn.edu/~sweirich/wmm/wmm08/martin.pdf (2008). Retrieved 7 January 2010

  64. Martin-Löf, P.: On the meanings of the logical constants and the justifications of the logical laws. Nord. J. Philos. Log. 1(1), 11–60 (1996)

    MATH  Google Scholar 

  65. McCreight, A., Schürmann, C.: A meta linear logical framework. Informal Proceedings of LFM’04 (2004)

  66. McDowell, R., Miller, D.: Cut-elimination for a logic with definitions and induction. Theor. Comp. Sci. 232, 91–119 (2000)

    Article  MATH  MathSciNet  Google Scholar 

  67. McDowell, R., Miller, D.: Reasoning with higher-order abstract syntax in a logical framework. ACM Trans. Comput. Log. 3(1), 80–136 (2002)

    Article  MathSciNet  Google Scholar 

  68. McKinna, J., Pollack, R.: Some lambda calculus and type theory formalized. J. Autom. Reason. 23(3-4), 373–409 (1999)

    Article  MATH  MathSciNet  Google Scholar 

  69. Melham, T.F.: A mechanized theory of the π-calculus in HOL. Nord. J. Comput. 1(1), 50–76 (1994)

    MathSciNet  Google Scholar 

  70. Miculan, M.: On the formalization of the modal μ-calculus in the calculus of inductive constructions. Inf. Comput. 164(1), 199–231 (2001)

    Article  MATH  MathSciNet  Google Scholar 

  71. Miller, D.: Forum: a multiple-conclusion specification logic. Theor. Comput. Sci. 165(1), 201–232 (1996)

    Article  MATH  Google Scholar 

  72. Miller, D.: Overview of linear logic programming. In: Ehrhard, T., Girard, J.-Y., Ruet, P., Scott, P. (eds.) Linear Logic in Computer Science. London Mathematical Society Lecture Note, vol. 316, pp. 119–150. Cambridge University Press (2004)

  73. Miller, D., Nadathur, G., Pfenning, F., Scedrov, A.: Uniform proofs as a foundation for logic programming. Ann. Pure Appl. Logic 51, 125–157 (1991)

    Article  MATH  MathSciNet  Google Scholar 

  74. Miller, D., Tiu, A.: A proof theory for generic judgments. ACM Trans. Comput. Log. 6(4), 749–783 (2005)

    Article  MathSciNet  Google Scholar 

  75. Momigliano, A., Ambler, S.: Multi-level meta-reasoning with higher order abstract syntax. In: Gordon, A. (ed.) FOSSACS’03. LNCS, vol. 2620, pp. 375–392. Springer (2003)

  76. Momigliano, A., Ambler, S., Crole, R.: A comparison of formalisations of the meta-theory of a language with variable binding in Isabelle. In: Boulton, R.J., Jackson, P. (eds.) 14th International Conference on Theorem Proving in Higher Order Logics (TPHOLs01), Supplemental Proceedings, pp. 267–282. Informatics Research Report EDI-INF-RR-01-23 (2001)

  77. 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)

    Article  Google Scholar 

  78. Momigliano, A., Martin, A.J., Felty, A.P.: Two-level Hybrid: A system for reasoning using higher-order abstract syntax. Electr. Notes Theor. Comput. Sci. 196, 85–93 (2008)

    Article  Google Scholar 

  79. Momigliano, A., Polakow, J.: A formalization of an ordered logical framework in Hybrid with applications to continuation machines. In: MERLIN ’03: Proceedings of the 2003 ACM SIGPLAN Workshop on Mechanized Reasoning about Languages with Variable Binding, pp. 1–9. Uppsala, Sweden (2003)

  80. Momigliano, A., Tiu, A.F.: Induction and co-induction in sequent calculus. In: Berardi, S., Coppo, M., Damiani, F. (eds.) Types for Proofs and Programs, International Workshop, TYPES 2003, Torino, Italy, 30 April–4 May 2003, Revised Selected Papers. Lecture Notes in Computer Science, vol. 3085, pp. 293–308. Springer (2004)

  81. Nanevski, A., Pfenning, F., Pientka, B.: Contextual modal type theory. ACM Trans. Comput. Log. 9(3), 1–49 (2008)

    Article  MathSciNet  Google Scholar 

  82. Nipkow, T., Paulson, L.C., Wenzel, M.: Isabelle/HOL: A Proof Assistant for Higher-Order Logic, Lecture Notes in Computer Science, vol. 2283. Springer (2002)

  83. Nominal Methods Group: Nominal Isabelle. isabelle.in.tum.de/nominal (2008). Accessed 15 May 2010

  84. Norrish, M.: Recursive function definition for types with binders. In: Seventeenth International Conference on Theorem Proving in Higher Order Logics, pp. 241–256. Lecture Notes in Computer Science. Springer (2004)

  85. Owre, S., Rushby, J.M., Shankar, N.: PVS: a prototype verification system. In: Kapur, D. (ed.) Proceedings of the 11th International Conference on Automated Deduction, pp. 748–752. LNAI 607. Springer (1992)

  86. Pauli–Mohring, C.: Inductive definitions in the system Coq: rules and properties. In: Bezem, M., Groote, J.F. (eds.) Proceedings of the International Conference on Typed Lambda Calculi and Applications, pp. 328–345, Utrecht, The Netherlands. LNCS 664. Springer (1993)

  87. Paulson, L.C.: A fixedpoint approach to implementing (co)inductive definitions. In: Bundy, A. (ed.) Proceedings of the 12th International Conference on Automated Deduction, pp. 148–161, Nancy, France. LNAI 814. Springer (1994)

  88. Pfenning, F.: Logical frameworks. In: Robinson, A., Voronkov, A. (eds.) Handbook of Automated Reasoning. Elsevier Science Publishers (1999)

  89. Pfenning, F.: Computation and Deduction. Cambridge University Press. Draft from March 2001 available at www.cs.cmu.edu/~fp/courses/comp-ded/handouts/cd.pdf. Accessed 30 April 2010

  90. Pientka, B.: Verifying termination and reduction properties about higher-order logic programs. J. Autom. Reason. 34(2), 179–207 (2005)

    Article  MATH  MathSciNet  Google Scholar 

  91. Pientka, B.: Beluga: programming with dependent types, contextual data, and contexts. In: Blume, M., Kobayashi, N., Vidal, G. (eds.) FLOPS. Lecture Notes in Computer Science, vol. 6009, pp. 1–12. Springer (2010)

  92. Pitts, A.M.: Nominal logic, a first order theory of names and binding. Inf. Comput. 186(2), 165–193 (2003)

    Article  MATH  MathSciNet  Google Scholar 

  93. Pitts, A.M.: Alpha-structural recursion and induction. J. ACM 53(3), 459–506 (2006)

    Article  MathSciNet  Google Scholar 

  94. Polakow, J.: Ordered linear logic and applications. Ph.D. thesis, CMU (2001)

  95. Polakow, J.: Linearity constraints as bounded intervals in linear logic programming. J. Log. Comput. 16(1), 135–155 (2006)

    Article  MATH  MathSciNet  Google Scholar 

  96. Polakow, J., Pfenning, F.: Relating natural deduction and sequent calculus for intuitionistic non-commutative linear logic. In: Scedrov, A., Jung, A. (eds.) Proceedings of the 15th Conference on Mathematical Foundations of Programming Semantics, New Orleans, Louisiana. Electronic Notes in Theoretical Computer Science, vol. 20 (1999)

  97. Polakow, J., Pfenning, F.: Properties of terms in continuation-passing style in an ordered logical framework. In: Despeyroux, J. (ed.) 2nd Workshop on Logical Frameworks and Meta-languages (LFM’00), Santa Barbara, California. Proceedings available as INRIA Technical Report (2000)

  98. Polakow, J., Yi, K.: Proving syntactic properties of exceptions in an ordered logical framework. In: Kuchen, H., Ueda, K. (eds.) Proceedings of the 5th International Symposium on Functional and Logic Programming (FLOPS’01), pp. 61–77, Tokyo, Japan. LNCS 2024. Springer (2001)

  99. Poswolsky, A., Schürmann, C.: Practical programming with higher-order encodings and dependent types. In: Drossopoulou, S. (ed.) ESOP. Lecture Notes in Computer Science, vol. 4960, pp. 93–107. Springer (2008)

  100. Reed, J.: Hybridizing a logical framework. Electr. Notes Theor. Comput. Sci. 174(6), 135–148 (2007)

    Article  Google Scholar 

  101. Schürmann, C.: Automating the Meta-Theory of Deductive Systems. Ph.D. thesis, Carnegie-Mellon University, CMU-CS-00-146 (2000)

  102. Schürmann, C.: The Twelf proof assistant. In: Berghofer, S., Nipkow, T., Urban, C., Wenzel, M. (eds.) TPHOLs. Lecture Notes in Computer Science, vol. 5674, pp. 79–83. Springer (2009)

  103. Schürmann, C., Despeyroux, J., Pfenning, F.: Primitive recursion for higher-order abstract syntax. Theor. Comput. Sci. 266(1–2), 1–57 (2001)

    Article  MATH  Google Scholar 

  104. Schürmann, C., Pfenning, F.: A coverage checking algorithm for LF. In: Basin, D.A., Wolff, B. (eds.) TPHOLs. Lecture Notes in Computer Science, vol. 2758, pp. 120–135. Springer (2003)

  105. Schürmann, C., Poswolsky, A., Sarnat, J.: The ∇-calculus. Functional programming with higher-order encodings. In: Seventh International Conference on Typed Lambda Calculi and Applications, pp. 339–353. Lecture Notes in Computer Science. Springer (2005)

  106. Sewell, P., Nardelli, F.Z., Owens, S., Peskine, G., Ridge, T., Sarkar, S., Strnisa, R.: Ott: effective tool support for the working semanticist. In: Hinze, R., Ramsey, N. (eds.) ICFP 2007, pp. 1–12. ACM (2007)

  107. Tiu, A.: A logical framework for reasoning about logical specifications. Ph.D. thesis, Pennsylvania State University (2004)

  108. Tiu, A.: A logic for reasoning about generic judgments. Electr. Notes Theor. Comput. Sci. 174(5), 3–18 (2007)

    Article  Google Scholar 

  109. Urban, C., Berghofer, S.: A recursion combinator for nominal datatypes implemented in Isabelle/HOL. In: Furbach, U., Shankar, N. (eds.) IJCAR. Lecture Notes in Computer Science, vol. 4130, pp. 498–512. Springer (2006)

    Article  MathSciNet  Google Scholar 

  110. Urban, C., Tasson, C.: Nominal techniques in Isabelle/HOL. In: Nieuwenhuis, R. (ed.) Proceedings of the 20th International Conference on Automated Deduction (CADE). LNCS, vol. 3632, pp. 38–53. Springer (2005)

  111. Vestergaard, R., Brotherston, J.: A formalised first-order confluence proof for the λ-calculus using one-sorted variable names. Inf. Comput. 183(2), 212–244 (2003)

    Article  MATH  MathSciNet  Google Scholar 

  112. Washburn, G., Weirich, S.: Boxes go bananas: encoding higher-order abstract syntax with parametric polymorphism. J. Funct. Program. 18(1), 87–140 (2008)

    Article  MATH  MathSciNet  Google Scholar 

  113. Watkins, K., Cervesato, I., Pfenning, F., Walker, D.: A concurrent logical framework: The propositional fragment. In: Berardi, S., Coppo, M., Damiani, F. (eds.) Types for Proofs and Programs, International Workshop, TYPES 2003, Torino, Italy, 30 April–4 May 2003, Revised Selected Papers. Lecture Notes in Computer Science, vol. 3085, pp. 355–377. Springer (2004)

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Amy Felty.

Additional information

Felty was supported in part by the Natural Sciences and Engineering Research Council of Canada Discovery program. Momigliano was supported by EPSRC grant GR/M98555 and partially by the MRG project (IST-2001-33149), funded by the EC under the FET proactive initiative on Global Computing.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Felty, A., Momigliano, A. Hybrid. J Autom Reasoning 48, 43–105 (2012). https://doi.org/10.1007/s10817-010-9194-x

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10817-010-9194-x

Keywords

Navigation