A Two-Level Logic Approach to Reasoning About Computations

Relational descriptions have been used in formalizing diverse computational notions, including, for example, operational semantics, typing, and acceptance by non-deterministic machines. We therefore propose a (restricted) logical theory over relations as a language for specifying such notions. Our specification logic is further characterized by an ability to explicitly treat binding in object languages. Once such a logic is fixed, a natural next question is how we might prove theorems about specifications written in it. We propose to use a second logic, called a reasoning logic, for this purpose. A satisfactory reasoning logic should be able to completely encode the specification logic. Associated with the specification logic are various notions of binding: for quantifiers within formulas, for eigenvariables within sequents, and for abstractions within terms. To provide a natural treatment of these aspects, the reasoning logic must encode binding structures as well as their associated notions of scope, free and bound variables, and capture-avoiding substitution. Further, to support arguments about provability, the reasoning logic should possess strong mechanisms for constructing proofs by induction and co-induction. We provide these capabilities here by using a logic called ${\cal G}$ which represents relations over λ-terms via definitions of atomic judgments, contains inference rules for induction and co-induction, and includes a special generic quantifier. We show how provability in the specification logic can be transparently encoded in ${\cal G}$. We also describe an interactive theorem prover called Abella that implements ${\cal G}$ and this two-level logic approach and we present several examples that demonstrate the efficacy of Abella in reasoning about computations.

[1]  Iman Poernomo Yves Bertot and Pierre Casteran Interactive Theorem Proving and Program Development (Coq'Art: The Calculus of Inductive Constructions). Texts in Theoretical Computer Science. An EATCS Series. (2004). ISBN 3-540-20854-2. 469pp. Hardcover. , 2006 .

[2]  Arthur Charguéraud,et al.  Engineering formal metatheory , 2008, POPL '08.

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

[4]  Robin Milner,et al.  Functions as processes , 1990, Mathematical Structures in Computer Science.

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

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

[7]  Andrew Gacek,et al.  A Framework for Specifying, Prototyping, and Reasoning about Computational Systems , 2009, ArXiv.

[8]  John C. Reynolds,et al.  Definitional Interpreters for Higher-Order Programming Languages , 1972, ACM '72.

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

[10]  Amy P. Felty,et al.  Hybrid - A Definitional Two-Level Approach to Reasoning with Higher-Order Abstract Syntax , 2012, J. Autom. Reason..

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

[12]  Noam Zeilberger,et al.  Focusing on Binding and Computation , 2008, 2008 23rd Annual IEEE Symposium on Logic in Computer Science.

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

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

[15]  Gordon D. Plotkin,et al.  A structural approach to operational semantics , 2004, J. Log. Algebraic Methods Program..

[16]  Gilles Kahn,et al.  Natural Semantics , 1987, STACS.

[17]  Pierre Castéran,et al.  Interactive Theorem Proving and Program Development , 2004, Texts in Theoretical Computer Science An EATCS Series.

[18]  Gopalan Nadathur,et al.  An Overview of Lambda-PROLOG , 1988, ICLP/SLP.

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

[20]  Gopalan Nadathur,et al.  Nominal abstraction , 2011, Inf. Comput..

[21]  Brigitte Pientka A type-theoretic foundation for programming with higher-order abstract syntax and first-class substitutions , 2008, POPL '08.

[22]  Amy P. Felty,et al.  Higher-Order Abstract Syntax in Coq , 1995, TLCA.

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

[24]  Thierry Coquand,et al.  Inductively defined types , 1988, Conference on Computer Logic.

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

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

[27]  Carsten Schürmann,et al.  System Description: Delphin - A Functional Programming Language for Deductive Systems , 2008, LFMTP@LICS.

[28]  Amy P. Felty,et al.  Reasoning with hypothetical judgments and open terms in hybrid , 2009, PPDP '09.

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

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

[31]  Gopalan Nadathur,et al.  System Description: Teyjus - A Compiler and Abstract Machine Based Implementation of lambda-Prolog , 1999, CADE.

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

[33]  Gopalan Nadathur,et al.  System description : Teyjus : A compiler and abstract machine based implementation of λprolog , 1999 .

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

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

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

[37]  Davide Sangiorgi The Lazy Lambda Calculus in a Concurrency Scenario , 1994, Inf. Comput..

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

[39]  G.D. Plotkin,et al.  LCF Considered as a Programming Language , 1977, Theor. Comput. Sci..

[40]  Craig Smor Ynski MODAL LOGIC AND SELF·REFERENCE , 1984 .

[41]  P. J. Landin The Mechanical Evaluation of Expressions , 1964, Comput. J..

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

[43]  Christian Urban Nominal Techniques in Isabelle/HOL , 2008, Journal of Automated Reasoning.

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