The λΠ-calculus Modulo as a Universal Proof Language

The -calculus forms one of the vertices in Barendregt’s -cube and has been used as the core language for a number of logical frameworks. Following earlier extensions of natural deduction [14], Cousineau and Dowek [11] generalize the denitional equality of this well studied calculus to an arbitrary congruence generated by rewrite rules, which allows for more faithful encodings of foreign logics. This paper motivates the resulting language, the -calculus modulo, as a universal proof language, capable of expressing proofs from many other systems without losing their computational properties. We further show how to very simply and eciently check proofs from this language. We have implemented this scheme in a proof checker called Dedukti.

[1]  Sam Lindley,et al.  Normalisation by evaluation in the compilation of typed functional programming languages , 2005 .

[2]  Frank Pfenning,et al.  System Description: Twelf - A Meta-Logical Framework for Deductive Systems , 1999, CADE.

[3]  Mathieu Boespflug Conversion by Evaluation , 2010, PADL.

[4]  Denis Cousineau,et al.  Embedding Pure Type Systems in the Lambda-Pi-Calculus Modulo , 2007, TLCA.

[5]  N. G. de Bruijn,et al.  A plea for weaker frameworks , 1991 .

[6]  Cody Roux,et al.  Size-based termination: Semantics and generalizations. (Terminaison à base de tailles: Sémantique et généralisations) , 2011 .

[7]  Guillaume Burel,et al.  CoqInE: Translating the Calculus of Inductive Constructions into the λΠ-calculus Modulo , 2012, PxTP.

[8]  Mathieu Boespflug,et al.  Conception d'un noyau de vérification de preuves pour le λΠ-calcul modulo , 2011 .

[9]  Ulf Norell,et al.  Dependently typed programming in Agda , 2009, TLDI '09.

[10]  Thorsten Altenkirch,et al.  A Partial Type Checking Algorithm for Type: Type , 2011, Electron. Notes Theor. Comput. Sci..

[11]  Benjamin Grégoire,et al.  Full Reduction at Full Throttle , 2011, CPP.

[12]  Olivier Danvy,et al.  Pragmatics of Type-Directed Partial Evaluation , 1996, Dagstuhl Seminar on Partial Evaluation.

[13]  Lawrence C. Paulson,et al.  Isabelle: The Next Seven Hundred Theorem Provers , 1988, CADE.

[14]  Luís Pinto,et al.  Type-based termination of recursive definitions , 2004, Mathematical Structures in Computer Science.

[15]  Thierry Coquand,et al.  An Algorithm for Type-Checking Dependent Types , 1996, Sci. Comput. Program..

[16]  Gilles Dowek,et al.  A Simple Proof That Super-Consistency Implies Cut Elimination , 2007, RTA.

[17]  Benjamin Grégoire,et al.  A compiled implementation of strong reduction , 2002, ICFP '02.

[18]  Hendrik Pieter Barendregt,et al.  Introduction to generalized type systems , 1991, Journal of Functional Programming.

[19]  Gilles Dowek,et al.  Proof Normalization for a First-Order Formulation of Higher-Order Logic , 1997, TPHOLs.

[20]  Furio Honsell,et al.  A framework for defining logics , 1993, JACM.

[21]  Morten Heine Sørensen,et al.  Domain-free pure type systems , 2000, J. Funct. Program..

[22]  Michael Zeller,et al.  Signature Compilation for the Edinburgh Logical Framework , 2008, Electron. Notes Theor. Comput. Sci..

[23]  Zhong Shao,et al.  Certified Programs and Proofs - First International Conference, CPP 2011, Kenting, Taiwan, December 7-9, 2011. Proceedings , 2011, CPP.

[24]  Andreas Abel,et al.  MiniAgda: Integrating Sized and Dependent Types , 2010, PAR@ITP.

[25]  Dale Miller A Proposal for Broad Spectrum Proof Certificates , 2011, CPP.

[26]  Andrzej Filinski,et al.  A Denotational Account of Untyped Normalization by Evaluation , 2003 .