Journal of Automated Reasoning

, Volume 48, Issue 1, pp 43–105 | Cite as

Hybrid

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

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.

Keywords

Logical frameworks Higher-order abstract syntax Interactive theorem proving Induction Variable binding Isabelle/HOL Coq 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Abramsky, S., Ong, C.-H.L.: Full abstraction in the lazy lambda calculus. Inf. Comput. 105(2), 159–267 (1993)MATHMathSciNetCrossRefGoogle Scholar
  2. 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)CrossRefGoogle Scholar
  3. 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)Google Scholar
  4. 4.
    Aydemir, B., Bohannon, A., Weirich, S.: Nominal reasoning techniques in Coq. Electr. Notes Theor. Comput. Sci. 174(5), 69–77 (2007)CrossRefGoogle Scholar
  5. 5.
    Aydemir, B., Charguéraud, A., Pierce, B.C., Pollack, R., Weirich, S.: Engineering formal metatheory. SIGPLAN Not. 43(1), 3–15 (2008)CrossRefGoogle Scholar
  6. 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)Google Scholar
  7. 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)Google Scholar
  8. 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)Google Scholar
  9. 9.
    Benton, N., Kennedy, A.: Monads, effects and transformations. Electr. Notes Theor. Comput. Sci. 26, 3–20 (1999)CrossRefGoogle Scholar
  10. 10.
    Benton, N., Kennedy, A., Russell, G.: Compiling standard ML to Java bytecodes. In: ICFP 1998, pp. 129–140 (1998)Google Scholar
  11. 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)Google Scholar
  12. 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)CrossRefGoogle Scholar
  13. 13.
    Bertot, Y., Castéran, P.: Interactive Theorem Proving and Program Development. Coq’Art: The Calculus of Inductive Constructions. Springer (2004)Google Scholar
  14. 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)Google Scholar
  15. 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)MATHMathSciNetCrossRefGoogle Scholar
  16. 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)Google Scholar
  17. 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)Google Scholar
  18. 18.
    Cervesato, I., Pfenning, F.: A linear logical framework. Inf. Comput. 179(1), 19–75 (2002)MATHMathSciNetCrossRefGoogle Scholar
  19. 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)Google Scholar
  20. 20.
    Cheney, J.: A simple nominal type theory. Electr. Notes Theor. Comput. Sci. 228, 37–52 (2009)CrossRefGoogle Scholar
  21. 21.
    Chlipala, A.: Parametric higher-order abstract syntax for mechanized semantics. In: 13th ACM SIGPLAN International Conference on Functional Programming (2008)Google Scholar
  22. 22.
    Church, A.: A formulation of the simple theory of types. J. Symb. Log. 5, 56–68 (1940)MATHMathSciNetCrossRefGoogle Scholar
  23. 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)MATHMathSciNetCrossRefGoogle Scholar
  24. 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)Google Scholar
  25. 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)Google Scholar
  26. 26.
    Crole, R.: Hybrid adequacy. Technical Report CS-06-011, School of Mathematics and Computer Sience, University of Leicester (2006)Google Scholar
  27. 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)Google Scholar
  28. 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)Google Scholar
  29. 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)Google Scholar
  30. 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)Google Scholar
  31. 31.
    Despeyroux, J., Leleu, P.: Metatheoretic results for a modal λ-calculus. J. Funct. Logic Program. 2000(1) (2000)Google Scholar
  32. 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)Google Scholar
  33. 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)Google Scholar
  34. 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)Google Scholar
  35. 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)Google Scholar
  36. 36.
    Ford, J., Mason, I.A.: Formal foundations of operational semantics. Higher-Order and Symbolic Computation 16(3), 161–202 (2003)MATHCrossRefGoogle Scholar
  37. 37.
    Gabbay, M.J., Pitts, A.M.: A new approach to abstract syntax with variable binding. Form. Asp. Comput. 13, 341–363 (2001)CrossRefGoogle Scholar
  38. 38.
    Gabbay, M., Cheney, J.: A sequent calculus for nominal logic. In: LICS, pp. 139–148. IEEE Computer Society (2004)Google Scholar
  39. 39.
    Gabbay, M.J.: Automating Fraenkel-Mostowski syntax. Technical Report CP-2002-211736, NASA (2002). Track B Proceedings of TPHOLs’02Google Scholar
  40. 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)Google Scholar
  41. 41.
    Gacek, A., Miller, D., Nadathur, G.: Combining generic judgments with recursive definitions. In: LICS, pp. 33–44. IEEE Computer Society (2008)Google Scholar
  42. 42.
    Gacek, A., Miller, D., Nadathur, G.: Reasoning in Abella about structural operational semantics specifications. Electr. Notes Theor. Comput. Sci. 228, 85–100 (2009)CrossRefGoogle Scholar
  43. 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)Google Scholar
  44. 44.
    Gimenez, E.: A tutorial on recursive types in Coq. Technical Report RT-0221, Inria (1998)Google Scholar
  45. 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)Google Scholar
  46. 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)Google Scholar
  47. 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. 48.
    Hallnas, L.: Partial inductive definitions. Theor. Comp. Sci. 87(1), 115–147 (1991)MathSciNetCrossRefGoogle Scholar
  49. 49.
    Harper, R., Honsell, F., Plotkin, G.: A framework for defining logics. J. Assoc. Comput. Mach. 40(1), 143–184 (1993)MATHMathSciNetGoogle Scholar
  50. 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)Google Scholar
  51. 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. 52.
    Hodas, J.S., Miller, D.: Logic programming in a fragment of intuitionistic linear logic. Inf. Comput. 110(2), 327–365 (1994)MATHMathSciNetCrossRefGoogle Scholar
  53. 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)Google Scholar
  54. 54.
    Howe, D.J.: Proving congruence of bisimulation in functional programming languages. Inf. Comput. 124(2), 103–112 (1996)MATHMathSciNetCrossRefGoogle Scholar
  55. 55.
    Hybrid Group: Hybrid: a package for higher-order syntax in Isabelle and Coq. hybrid.dsi.unimi.it (2008). Accessed 20 May 2010
  56. 56.
    Isar Group: Isar—Intelligible semi-automated reasoning. http://isabelle.in.tum.de/Isar (2000). Accessed 13 May 2010
  57. 57.
    Johansson, I.: Der Minimalkalkl, ein reduzierter intuitionistischer Formalismus. Compos. Math. 4, 119–136 (1937)MathSciNetGoogle Scholar
  58. 58.
    Lassen, S.B.: Head normal form bisimulation for pairs and the λμ-calculus. In: LICS, pp. 297–306. IEEE Computer Society (2006)Google Scholar
  59. 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)Google Scholar
  60. 60.
    LEGO Group: The LEGO proof assistant. www.dcs.ed.ac.uk/home/lego/ (2001). Accessed 18 May 2010
  61. 61.
    Liu, H., Moore, J.S.: Executable JVM model for analytical reasoning: a study. Sci. Comput. Program. 57(3), 253–274 (2005)MATHMathSciNetCrossRefGoogle Scholar
  62. 62.
    Martin, A.: Higher-Order Abstract Syntax in Isabelle/HOL. Ph.D. thesis, University of Ottawa (2010, forthcoming)Google Scholar
  63. 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. 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)MATHGoogle Scholar
  65. 65.
    McCreight, A., Schürmann, C.: A meta linear logical framework. Informal Proceedings of LFM’04 (2004)Google Scholar
  66. 66.
    McDowell, R., Miller, D.: Cut-elimination for a logic with definitions and induction. Theor. Comp. Sci. 232, 91–119 (2000)MATHMathSciNetCrossRefGoogle Scholar
  67. 67.
    McDowell, R., Miller, D.: Reasoning with higher-order abstract syntax in a logical framework. ACM Trans. Comput. Log. 3(1), 80–136 (2002)MathSciNetCrossRefGoogle Scholar
  68. 68.
    McKinna, J., Pollack, R.: Some lambda calculus and type theory formalized. J. Autom. Reason. 23(3-4), 373–409 (1999)MATHMathSciNetCrossRefGoogle Scholar
  69. 69.
    Melham, T.F.: A mechanized theory of the π-calculus in HOL. Nord. J. Comput. 1(1), 50–76 (1994)MathSciNetGoogle Scholar
  70. 70.
    Miculan, M.: On the formalization of the modal μ-calculus in the calculus of inductive constructions. Inf. Comput. 164(1), 199–231 (2001)MATHMathSciNetCrossRefGoogle Scholar
  71. 71.
    Miller, D.: Forum: a multiple-conclusion specification logic. Theor. Comput. Sci. 165(1), 201–232 (1996)MATHCrossRefGoogle Scholar
  72. 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)Google Scholar
  73. 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)MATHMathSciNetCrossRefGoogle Scholar
  74. 74.
    Miller, D., Tiu, A.: A proof theory for generic judgments. ACM Trans. Comput. Log. 6(4), 749–783 (2005)MathSciNetCrossRefGoogle Scholar
  75. 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)Google Scholar
  76. 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)Google Scholar
  77. 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)CrossRefGoogle Scholar
  78. 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)CrossRefGoogle Scholar
  79. 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)Google Scholar
  80. 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)Google Scholar
  81. 81.
    Nanevski, A., Pfenning, F., Pientka, B.: Contextual modal type theory. ACM Trans. Comput. Log. 9(3), 1–49 (2008)MathSciNetCrossRefGoogle Scholar
  82. 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)Google Scholar
  83. 83.
    Nominal Methods Group: Nominal Isabelle. isabelle.in.tum.de/nominal (2008). Accessed 15 May 2010
  84. 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)Google Scholar
  85. 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)Google Scholar
  86. 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)Google Scholar
  87. 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)Google Scholar
  88. 88.
    Pfenning, F.: Logical frameworks. In: Robinson, A., Voronkov, A. (eds.) Handbook of Automated Reasoning. Elsevier Science Publishers (1999)Google Scholar
  89. 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. 90.
    Pientka, B.: Verifying termination and reduction properties about higher-order logic programs. J. Autom. Reason. 34(2), 179–207 (2005)MATHMathSciNetCrossRefGoogle Scholar
  91. 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)Google Scholar
  92. 92.
    Pitts, A.M.: Nominal logic, a first order theory of names and binding. Inf. Comput. 186(2), 165–193 (2003)MATHMathSciNetCrossRefGoogle Scholar
  93. 93.
    Pitts, A.M.: Alpha-structural recursion and induction. J. ACM 53(3), 459–506 (2006)MathSciNetCrossRefGoogle Scholar
  94. 94.
    Polakow, J.: Ordered linear logic and applications. Ph.D. thesis, CMU (2001)Google Scholar
  95. 95.
    Polakow, J.: Linearity constraints as bounded intervals in linear logic programming. J. Log. Comput. 16(1), 135–155 (2006)MATHMathSciNetCrossRefGoogle Scholar
  96. 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)Google Scholar
  97. 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)Google Scholar
  98. 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)Google Scholar
  99. 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)Google Scholar
  100. 100.
    Reed, J.: Hybridizing a logical framework. Electr. Notes Theor. Comput. Sci. 174(6), 135–148 (2007)CrossRefGoogle Scholar
  101. 101.
    Schürmann, C.: Automating the Meta-Theory of Deductive Systems. Ph.D. thesis, Carnegie-Mellon University, CMU-CS-00-146 (2000)Google Scholar
  102. 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)Google Scholar
  103. 103.
    Schürmann, C., Despeyroux, J., Pfenning, F.: Primitive recursion for higher-order abstract syntax. Theor. Comput. Sci. 266(1–2), 1–57 (2001)MATHCrossRefGoogle Scholar
  104. 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)Google Scholar
  105. 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)Google Scholar
  106. 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)Google Scholar
  107. 107.
    Tiu, A.: A logical framework for reasoning about logical specifications. Ph.D. thesis, Pennsylvania State University (2004)Google Scholar
  108. 108.
    Tiu, A.: A logic for reasoning about generic judgments. Electr. Notes Theor. Comput. Sci. 174(5), 3–18 (2007)CrossRefGoogle Scholar
  109. 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)MathSciNetCrossRefGoogle Scholar
  110. 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)Google Scholar
  111. 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)MATHMathSciNetCrossRefGoogle Scholar
  112. 112.
    Washburn, G., Weirich, S.: Boxes go bananas: encoding higher-order abstract syntax with parametric polymorphism. J. Funct. Program. 18(1), 87–140 (2008)MATHMathSciNetCrossRefGoogle Scholar
  113. 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)Google Scholar

Copyright information

© Springer Science+Business Media B.V. 2010

Authors and Affiliations

  1. 1.School of Information Technology and EngineeringUniversity of OttawaOttawaCanada
  2. 2.Laboratory for the Foundations of Computer Science, School of InformaticsUniversity of EdinburghEdinburghScotland

Personalised recommendations