Structural Recursion over Contextual Objects

A core programming language is presented that allows structural recursion over open LF objects and contexts. The main technical tool is a coverage checking algorithm that also generates valid recursive calls. Termination of call-byvalue reduction is proven using a reducibility semantics. This establishes consistency and allows the implementation of proofs about LF specifications as well-founded recursive functions using simultaneous pattern matching.

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

[2]  M. Hoffman Semantical analysis of higher-order abstract syntax , 1999 .

[3]  Andrew M. Pitts,et al.  Structural recursion with locally scoped names , 2011, J. Funct. Program..

[4]  Joëlle Despeyroux,et al.  Recursion over objects of functional type , 2001, Math. Struct. Comput. Sci..

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

[6]  Brigitte Pientka,et al.  Programming with binders and indexed data-types , 2012, POPL '12.

[7]  Andrew M. Pitts,et al.  A First Order Theory of Names and Binding , 2001 .

[8]  Hongwei Xi,et al.  Dependent Types for Program Termination Verification , 2001, Proceedings 16th Annual IEEE Symposium on Logic in Computer Science.

[9]  Frank Pfenning,et al.  Contextual modal type theory , 2008, TOCL.

[10]  Brigitte Pientka,et al.  First-class substitutions in contextual type theory , 2013, LFMTP '13.

[11]  Gopalan Nadathur,et al.  Combining Deduction Modulo and Logics of Fixed-Point Definitions , 2012, 2012 27th Annual IEEE Symposium on Logic in Computer Science.

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

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

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

[15]  Amy P. Felty,et al.  Two-Level Hybrid: A System for Reasoning Using Higher-Order Abstract Syntax , 2008, Electron. Notes Theor. Comput. Sci..

[16]  Andrew M. Pitts,et al.  A New Approach to Abstract Syntax with Variable Binding , 2002, Formal Aspects of Computing.

[17]  Brigitte Pientka,et al.  Case Analysis of Higher-Order Data , 2009, Electron. Notes Theor. Comput. Sci..

[18]  Brigitte Pientka Verifying Termination and Reduction Properties about Higher-Order Logic Programs , 2005, Journal of Automated Reasoning.

[19]  Brigitte Pientka,et al.  Programming with proofs and explicit contexts , 2008, PPDP '08.

[20]  Carsten Schürmann,et al.  Practical Programming with Higher-Order Encodings and Dependent Types , 2008, ESOP.

[21]  Gopalan Nadathur,et al.  A Two-Level Logic Approach to Reasoning About Computations , 2011, Journal of Automated Reasoning.

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

[23]  Gopalan Nadathur,et al.  Combining Generic Judgments with Recursive Definitions , 2008, 2008 23rd Annual IEEE Symposium on Logic in Computer Science.

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

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

[26]  Carsten Schürmann,et al.  The ∇-Calculus. Functional Programming with Higher-Order Encodings , 2004 .

[27]  Andrew M. Pitts,et al.  FreshML: programming with binders made simple , 2003, ICFP '03.

[28]  Richard Statman,et al.  Higher-Order Rewriting with Dependent Types , 1999 .

[29]  Frank Pfenning,et al.  A concurrent logical framework I & II , 2003 .

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

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

[32]  Brigitte Pientka,et al.  Beluga: A Framework for Programming and Reasoning with Deductive Systems (System Description) , 2010, IJCAR.

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

[34]  Brigitte Pientka,et al.  An insider's look at LF type reconstruction: everything you (n)ever wanted to know , 2013, J. Funct. Program..