Skip to main content
    • Aa
    • Aa

Structural recursion with locally scoped names

  • ANDREW M. PITTS (a1)

This paper introduces a new recursion principle for inductively defined data modulo α-equivalence of bound names that makes use of Odersky-style local names when recursing over bound names. It is formulated in simply typed λ-calculus extended with names that can be restricted to a lexical scope, tested for equality, explicitly swapped and abstracted. 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 calculus has a simple interpretation in nominal sets equipped with name-restriction operations. It is shown to adequately represent α-structural recursion while avoiding the need to verify freshness side-conditions in definitions and computations. The paper is a revised and expanded version of Pitts (Nominal System T. In Proceedings of the 37th ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages, POPL 2010 (Madrid, Spain). ACM Press, pp. 159–170, 2010).

Linked references
Hide All

This list contains references from the content that can be linked to their source. For a full set of references and notes please see the PDF or HTML where available.

L. Cardelli & A. D. Gordon (2001) Logical properties of name restriction. In Proceedings of the 5th International Conference on Typed Lambda Calculus and Applications, S. Abramsky (ed), Lecture Notes in Computer Science, vol. 2044. Berlin: Springer-Verlag, pp. 4660.

K. Crary & R. Harper (2006) Higher-order abstract syntax: Setting the record straight. ACM SIGACT News, Logic Column 37 (3), 9396.

M. P. Fiore , G. D. Plotkin & D. Turi (1999) Abstract syntax and variable binding. In Proceedings of the 14th Annual Symposium on Logic in Computer Science. Washington: IEEE Computer Society Press, pp. 193202.

H. Friedman (1975) Equality between functionals. In Logic Colloquium, R. Parikh (ed), Lecture Notes in Mathematics, vol. 453. Berlin/Heidelberg: Springer, pp. 2237.

M. J. Gabbay & S. Lengrand (December 2009) The lambda-context calculus (extended version). Inform. comput. 207, 13691400.

M. J. Gabbay & A. M. Pitts (2002) A new approach to abstract syntax with variable binding. Form. Asp. Comput. 13, 341363.

A. Gacek , D. Miller & G. Nadathur (2008) Combining generic judgments with recursive definitions. In Proceedings of the 23rd IEEE Symposium on Logic in Computer Science, LICS 2008. IEEE Computer Society Press, pp. 3344.

K. Gödel (1958) Über eine bisher noch nicht benüzte Erweiterung des finiten Standpunktes. Dialectica 12, 280287.

B. Grégoire & X. Leroy (2002) A compiled implementation of strong reduction. In Proceedings of the Seventh ACM SIGPLAN International Conference on Functional Programming (Pittsburgh, PA, USA). ACM Press, pp. 235246.

R. Harper & F. Pfenning (2005) On equivalence and canonical forms in the LF type theory. ACM Trans. Comput. Log. 6, 61101.

D. R. Licata , N. Zeilberger & R. Harper (2008) Focusing on binding and computation. In Proceedings of the Twenty-Third Annual IEEE Symposium on Logic in Computer Science, LICS 2008 (Pittsburgh, PA, USA, 24–27 June 2008). IEEE Computer Society, pp. 241252.

D. A. Miller & A. Tiu (2005) A proof theory for generic judgments. ACM Trans. Comput. Log. 6 (4), 749783.

E. Moggi (1991) Notions of computation and monads. Inf. Comput., 93 (1), 5592.

M. Norrish (2004) Recursive function definition for types with binders. In Proceedings of the 17th International Conference on Theorem Proving in Higher Order Logics, Lecture Notes in Computer Science, vol. 3223. Springer-Verlag, pp. 241256.

F. Pfenning (2001) Logical frameworks. In Handbook of Automated Reasoning, A. Robinson & A. Voronkov (eds). Elsevier Science and MIT Press, Chapter 17, pp. 10631147.

A. M. Pitts (2003) Nominal logic, a first order theory of names and binding. Inf. Comput. 186, 165193.

A. M. Pitts (2006) Alpha-structural recursion and induction. J. ACM 53, 459506.

A. M. Pitts & I. D. B. Stark (1993) Observable properties of higher order functions that dynamically create local names, or: What's new? In Proceedings of the 18th International Symposium on Mathematical Foundations of Computer Science (Gdańsk, 1993), Lecture Notes in Computer Science, vol. 711. Springer-Verlag, Berlin, pp. 122141.

F. Pottier (2007) Static name control for FreshML. In Proceedings of the 22nd Annual IEEE Symposium on Logic in Computer Science, LICS 2007. Wroclaw, Poland: IEEE Computer Society Press, pp. 356365.

C. Schürmann , J. Despeyroux & F. Pfenning (2001) Primitive recursion for higher-order abstract syntax. Theor. Comput. Sci. 266, 157.

C. Urban (2008) Nominal reasoning techniques in Isabelle/HOL. J. Autom. Reason. 40 (4), 327356.

C. Urban , J. Cheney & S. Berghofer (2011) Mechanizing the metatheory of LF. ACM Trans. Comput. Log. 12 (15), 142.

C. Urban , A. M. Pitts & M. J. Gabbay (2004) Nominal unification. Theor. Comput. Sci. 323, 473497.

E. Westbrook , A. Stump & E. Austin (2009) The calculus of nominal inductive constructions: An intensional approach to encoding name-bindings. In Proceedings of the Fourth International Workshop on Logical Frameworks and Meta-Languages: Theory and Practice, LFMTP 2009 (Montreal, Canada), ACM International Conference Proceeding Series. ACM Press, pp. 7483.

Recommend this journal

Email your librarian or administrator to recommend adding this journal to your organisation's collection.

Journal of Functional Programming
  • ISSN: 0956-7968
  • EISSN: 1469-7653
  • URL: /core/journals/journal-of-functional-programming
Please enter your name
Please enter a valid email address
Who would you like to send this to? *