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.

T. Coquand (1991) An algorithm for testing conversion in type theory., In Logical Frameworks, G. Huet & G. D. Plotkin (eds). New York, NY, USA: Cambridge University Press, pp. 255–228.

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

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.

A. D. Gordon & T. Melham (1996) Five axioms of alpha-conversion. In Proceedings of the 9th International Conference on Theorem Proving in Higher Order Logics, Lecture Notes in Computer Science, vol. 1125. Springer-Verlag, pp. 173191.

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.

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.

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 & 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.

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? *


Full text views

Total number of HTML views: 0
Total number of PDF views: 6 *
Loading metrics...

Abstract views

Total abstract views: 51 *
Loading metrics...

* Views captured on Cambridge Core between September 2016 - 26th June 2017. This data will be updated every 24 hours.