Toward a general theory of names: binding and scope

High-level formalisms for reasoning about names and binding such as de Bruijn indices, various flavors of higher-order abstract syntax, the Theory of Contexts, and nominal abstract syntax address only one relatively restrictive form of scoping: namely, unary lexical scoping, in which the scope of a (single) bound name is a subtree of the abstract syntax tree (possibly with other subtrees removed due to shadowing). Many languages exhibit binding or renaming structure that does not fit this mold. Examples include binding transitions in the π-calculus; unique identifiers in contexts, memory heaps, and XML documents; declaration scoping in modules and namespaces; anonymous identifiers in automata, type schemes, and Horn clauses; and pattern matching and mutual recursion constructs in functional languages. In these cases, it appears necessary to either rearrange the abstract syntax so that lexical scoping can be used, or revert to first-order techniques.The purpose of this paper is to catalogue these "exotic" binding, renaming, and structural congruence situations; to argue that lexical scoping-based syntax techniques are sometimes either inappropriate or incapable of assisting in such situations; and to outline techniques for formalizing and proving properties of languages with more general forms of renaming and other structural congruences.

[1]  Joe B. Wells,et al.  Equational Reasoning for Linking with First-Class Primitive Modules , 2000, ESOP.

[2]  de Ng Dick Bruijn,et al.  Lambda calculus notation with nameless dummies, a tool for automatic formula manipulation, with application to the Church-Rosser theorem , 1972 .

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

[4]  William F. Clocksin,et al.  Programming in Prolog , 1981, Springer Berlin Heidelberg.

[5]  Christian Urban,et al.  alpha-Prolog: A Logic Programming Language with Names, Binding and a-Equivalence , 2004, ICLP.

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

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

[8]  Alan Bundy,et al.  Constructing Induction Rules for Deductive Synthesis Proofs , 2006, CLASE.

[9]  François Pottier An Overview of Calphaml , 2006, Electron. Notes Theor. Comput. Sci..

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

[11]  Ulrich Schöpp,et al.  A Dependent Type Theory with Names and Binding , 2004, CSL.

[12]  Dale Miller Encoding Generic Judgments: Preliminary results , 2001, Electron. Notes Theor. Comput. Sci..

[13]  John C. Reynolds,et al.  Separation logic: a logic for shared mutable data structures , 2002, Proceedings 17th Annual IEEE Symposium on Logic in Computer Science.

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

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

[16]  Furio Honsell,et al.  The Theory of Contexts for First Order and Higher Order Abstract Syntax , 2002, TOSCA.

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

[18]  Robin Milner,et al.  Definition of standard ML , 1990 .

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

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

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

[22]  C. M. Sperberg-McQueen,et al.  Extensible Markup Language (XML) , 1997, World Wide Web J..

[23]  Dale Miller The pi-Calculus as a Theory in Linear Logic: Preliminary Results , 1992, ELP.

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

[25]  Luigi Liquori,et al.  Rewriting Calculus with Fixpoints: Untyped and First-Order Systems , 2003, TYPES.

[26]  J. Cheney,et al.  A sequent calculus for nominal logic , 2004, LICS 2004.

[27]  Jeffrey D. Ullman,et al.  Introduction to Automata Theory, Languages and Computation , 1979 .

[28]  C. M. Sperberg-McQueen,et al.  eXtensible Markup Language (XML) 1.0 (Second Edition) , 2000 .

[29]  Peter W. O'Hearn,et al.  The Logic of Bunched Implications , 1999, Bulletin of Symbolic Logic.

[30]  James Cheney A Simpler Proof Theory for Nominal Logic , 2005, FoSSaCS.

[31]  Alberto Momigliano,et al.  Multi-level Meta-reasoning with Higher-Order Abstract Syntax , 2003, FoSSaCS.

[32]  James Cheney Scrap your nameplate: (functional pearl) , 2005, ICFP '05.