Verifying Uniqueness in a Logical Framework

We present an algorithm for verifying that some specified arguments of an inductively defined relation in a dependently typed λ-calculus are uniquely determined by some other arguments. We prove it correct and also show how to exploit this uniqueness information in coverage checking, which allows us to verify that a definition of a function or relation covers all possible cases. In combination, the two algorithms significantly extend the power of the meta-reasoning facilities of the Twelf implementation of LF.

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

[2]  M. Hofmann Extensional concepts in intensional type theory , 1995 .

[3]  Frank Pfenning,et al.  Logical Frameworks , 2001, Handbook of Automated Reasoning.

[4]  T. Coquand An algorithm for testing conversion in type theory , 1991 .

[5]  Frank Pfenning,et al.  On equivalence and canonical forms in the LF type theory , 2001, TOCL.

[6]  Frank Pfenning,et al.  Primitive recursion for higher-order abstract syntax , 1997, Theor. Comput. Sci..

[7]  Karl Crary,et al.  Toward a foundational typed assembly language , 2003, POPL '03.

[8]  Conor McBride,et al.  Dependently typed functional programs and their proofs , 2000 .

[9]  Carsten Schürmann A Type-Theoretic Approach to Induction with Higher-Order Encodings , 2001, LPAR.

[10]  Frank Pfenning,et al.  Algorithms for Equality and Unification in the Presence of Notational Definitions , 1998, Proof Search in Type-Theoretic Languages@CADE.

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

[12]  Carsten Schürmann Recursion for Higher-Order Encodings , 2001, CSL.

[13]  M. Maher Unification via Explicit Substitutions: The Case of Higher-Order Patterns , 1996 .

[14]  Frank Pfenning,et al.  A Coverage Checking Algorithm for LF , 2003, TPHOLs.

[15]  F. Pfenning,et al.  Automating the meta theory of deductive systems , 2000 .

[16]  Thierry Coquand,et al.  Pattern Matching with Dependent Types , 1992 .

[17]  Martin Hofiiiaiiii The Groupoid Model Refutes Uniqueness of Identity Proofs , 1994 .

[18]  Carsten Schürmann Twelf and Delphin: Logic and Functional Programming in a Meta-logical Framework , 2004, FLOPS.

[19]  Brigitte Pientka Termination and Reduction Checking for Higher-Order Logic Programs , 2001, IJCAR.

[20]  Joëlle Despeyroux,et al.  A Modal Lambda Calculus with Iteration and Case Constructs , 1998, TYPES.

[21]  Stephanie Weirich,et al.  Boxes go bananas: encoding higher-order abstract syntax with parametric polymorphism , 2003, ICFP '03.

[22]  Carsten Schürmann,et al.  Factoring Pure Logic Programs , 2003 .

[23]  Karl Crary,et al.  A Metalogical Approach to Foundational Certified Code , 2003 .

[24]  Frank Pfenning Structural Cut Elimination: I. Intuitionistic and Classical Logic , 2000, Inf. Comput..

[25]  Frank Pfenning,et al.  Mode and Termination Checking for Higher-Order Logic Programs , 1996, ESOP.