Nominal system T

This paper introduces a new recursion principle for inductive data modulo α-equivalence of bound names. It makes use of Odersky-style local names when recursing over bound names. It is formulated in an extension of Gödel's System T with names that can be tested for equality, explicitly swapped in expressions and restricted to a lexical scope. The new recursion principle is motivated by the nominal sets notion of "α-structural recursion", whose use of names and associated freshness side-conditions in recursive definitions formalizes common practice with binders. The new Nominal System T presented here provides a calculus of total functions that is shown to adequately represent α-structural recursion while avoiding the need to verify freshness side-conditions in definitions and computations. Adequacy is proved via a normalization-by-evaluation argument that makes use of a new semantics of local names in Gabbay-Pitts nominal sets.

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

[2]  Andrew M. Pitts,et al.  On a monadic semantics for freshness , 2005, Theor. Comput. Sci..

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

[4]  Henk Barendregt,et al.  The Lambda Calculus: Its Syntax and Semantics , 1985 .

[5]  Thierry Coquand,et al.  A MODULAR TYPE-CHECKING ALGORITHM FOR TYPE THEORY WITH SINGLETON TYPES AND PROOF IRRELEVANCE , 2011 .

[6]  Karl Crary,et al.  Higher-order abstract syntax: setting the record straight , 2006, SIGA.

[7]  João Saraiva,et al.  Applied Semantics, International Summer School, APPSEM 2000, Caminha, Portugal, September 9-15, 2000, Advanced Lectures , 2000 .

[8]  James Cheney A Simple Nominal Type Theory , 2009, Electron. Notes Theor. Comput. Sci..

[9]  Christian Urban,et al.  Nominal unification , 2004, Theor. Comput. Sci..

[10]  François Pottier,et al.  Static Name Control for FreshML , 2007, 22nd Annual IEEE Symposium on Logic in Computer Science (LICS 2007).

[11]  Andrew M. Pitts,et al.  Observable Properties of Higher Order Functions that Dynamically Create Local Names, or What's new? , 1993, MFCS.

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

[13]  Michael Norrish Recursive Function Definition for Types with Binders , 2004, TPHOLs.

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

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

[16]  Von Kurt Gödel,et al.  ÜBER EINE BISHER NOCH NICHT BENÜTZTE ERWEITERUNG DES FINITEN STANDPUNKTES , 1958 .

[17]  Robin Milner Functions as Processes , 1990, ICALP.

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

[19]  Gordon D. Plotkin,et al.  Abstract syntax and variable binding , 1999, Proceedings. 14th Symposium on Logic in Computer Science (Cat. No. PR00158).

[20]  Robert Harper,et al.  A universe of binding and computation , 2009, ICFP.

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

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

[23]  Ulrich Berger,et al.  Term rewriting for normalization by evaluation , 2003, Inf. Comput..

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

[25]  Ulrich Berger,et al.  An inverse of the evaluation functional for typed lambda -calculus , 1991, [1991] Proceedings Sixth Annual IEEE Symposium on Logic in Computer Science.

[26]  I. Stark,et al.  Operational reasoning for functions with local state , 1999 .

[27]  Mark R. Shinwell,et al.  Fresh Objective Caml user manual , 2005 .

[28]  Andrew M. Pitts Alpha-Structural Recursion and Induction , 2005, TPHOLs.

[29]  Bengt Nordström,et al.  Programming in Martin-Löf's Type Theory , 1990 .

[30]  Martin Odersky,et al.  A functional theory of local names , 1994, POPL '94.

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

[32]  Aaron Stump,et al.  The calculus of nominal inductive constructions: an intensional approach to encoding name-bindings , 2009, LFMTP '09.

[33]  Peter Dybjer,et al.  Normalization and Partial Evaluation , 2000, APPSEM.

[34]  Christian Urban,et al.  A Recursion Combinator for Nominal Datatypes Implemented in Isabelle/HOL , 2006, IJCAR.

[35]  Andrew D. Gordon,et al.  Five Axioms of Alpha-Conversion , 1996, TPHOLs.