Combining Generic Judgments with Recursive Definitions

Many semantical aspects of programming languages, such as their operational semantics and their type assignment calculi, are specified by describing appropriate proof systems. Recent research has identified two proof-theoretic features that allow direct, logic-based reasoning about such descriptions: the treatment of atomic judgments as fixed points (recursive definitions) and an encoding of binding constructs via generic judgments. However, the logics encompassing these two features have thus far treated them orthogonally: that is, they do not provide the ability to define object-logic properties that themselves depend on an intrinsic treatment of binding. We propose a new and simple integration of these features within an intuitionistic logic enhanced with induction over natural numbers and we show that the resulting logic is consistent. The pivotal benefit of the integration is that it allows recursive definitions to not just encode simple, traditional forms of atomic judgments but also to capture generic properties pertaining to such judgments. The usefulness of this logic is illustrated by showing how it can provide elegant treatments of object-logic contexts that appear in proofs involving typing calculi and of arbitrarily cascading substitutions that play a role in reducibility arguments.

[1]  Andrew M. Pitts,et al.  Nominal Logic: A First Order Theory of Names and Binding , 2001, TACS.

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

[3]  Dale Miller,et al.  Reasoning with higher-order abstract syntax in a logical framework , 2000, TOCL.

[4]  Dale Miller,et al.  A proof theory for generic judgments , 2005, TOCL.

[5]  Andrew Gacek The Abella Interactive Theorem Prover (System Description) , 2008, IJCAR.

[6]  Carl A. Gunter,et al.  The machine-assisted proof of programming language properties , 1996 .

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

[8]  William W. Tait,et al.  Intensional interpretations of functionals of finite type I , 1967, Journal of Symbolic Logic.

[9]  Guillermo E. Herrera Automating the meta theory of deductive systems , 2000 .

[10]  Gopalan Nadathur,et al.  Uniform Proofs as a Foundation for Logic Programming , 1991, Ann. Pure Appl. Log..

[11]  Christian Urban,et al.  Nominal Techniques in Isabelle/HOL , 2005, Journal of Automated Reasoning.

[12]  Dale Miller,et al.  A logic for reasoning with higher-order abstract syntax , 1997, Proceedings of Twelfth Annual IEEE Symposium on Logic in Computer Science.

[13]  Catuscia Palamidessi,et al.  Encoding Transition Systems in Sequent Calculus , 2003, Linear Logic Tokyo Meeting.

[14]  Dale Miller,et al.  Abstract Syntax for Variable Binders: An Overview , 2000, Computational Logic.

[15]  Daniel Hirschkoff A Full Formalisation of pi-Calculus Theory in the Calculus of Constructions , 1997, TPHOLs.

[16]  Alberto Momigliano,et al.  Induction and Co-induction in Sequent Calculus , 2003, TYPES.

[17]  Patrick Borras,et al.  Centaur: the system , 1988, Software Development Environments.

[18]  Gopalan Nadathur,et al.  The Bedwyr System for Model Checking over Syntactic Expressions , 2007, CADE.

[19]  Alonzo Church,et al.  A formulation of the simple theory of types , 1940, Journal of Symbolic Logic.

[20]  Xavier Leroy A locally nameless solution to the POPLmark challenge , 2007 .

[21]  P. Martin-Löf Hauptsatz for the Intuitionistic Theory of Iterated Inductive Definitions , 1971 .

[22]  Peter Schroeder-Heister,et al.  Rules of definitional reflection , 1993, [1993] Proceedings Eighth Annual IEEE Symposium on Logic in Computer Science.

[23]  Frank Pfenning,et al.  Automated Theorem Proving in a Simple Meta-Logic for LF , 1998, CADE.

[24]  Dale Miller,et al.  Cut-elimination for a logic with definitions and induction , 2000, Theor. Comput. Sci..

[25]  Dale Miller,et al.  Unification Under a Mixed Prefix , 1992, J. Symb. Comput..

[26]  Dale Miller,et al.  Reasoning in a logic with definitions and induction , 1997 .

[27]  J. Hannan,et al.  A logical framework for reasoning about logical specifications , 2004 .

[28]  Dale Miller,et al.  A Logic Programming Language with Lambda-Abstraction, Function Variables, and Simple Unification , 1991, J. Log. Comput..

[29]  Lawrence Charles Paulson,et al.  Isabelle/HOL: A Proof Assistant for Higher-Order Logic , 2002 .

[30]  Alwen Tiu Cut Elimination for a Logic with Generic Judgments and Induction , 2008, ArXiv.

[31]  Yves Bertot,et al.  Interactive Theorem Proving and Program Development: Coq'Art The Calculus of Inductive Constructions , 2010 .

[32]  Dale A. Miller,et al.  AN OVERVIEW OF PROLOG , 1988 .

[33]  Alwen Tiu A Logic for Reasoning about Generic Judgments , 2007, Electron. Notes Theor. Comput. Sci..

[34]  Dale Miller,et al.  A Proof Search Specification of the pi-Calculus , 2005, FGUC.

[35]  Stephanie Weirich,et al.  Nominal Reasoning Techniques in Coq: (Extended Abstract) , 2007, Electron. Notes Theor. Comput. Sci..

[36]  Benjamin C. Pierce,et al.  Mechanized Metatheory for the Masses: The PoplMark Challenge , 2005, TPHOLs.

[37]  Frank Pfenning,et al.  Higher-order abstract syntax , 1988, PLDI '88.