Skip to main content
    • Aa
    • Aa

Call-by-name extensionality and confluence


Designing rewriting systems that respect functional extensionality for call-by-name languages with effects turns out to be surprisingly challenging. Simply interpreting extensional laws like η as reduction rules easily breaks confluence. We explore these issues in the setting of a sequent calculus. Building on an insight that appears in different aspects of the theory of call-by-name functional languages—confluent rewriting for two independent control calculi and sound continuation-passing style transformations—we give a confluent reduction system for lazy extensional functions. Finally, we consider limitations to this approach when used for strict evaluation and types beyond functions.

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.

Z. M. Ariola & S. Blom (2002) Skew confluence and the lambda calculus with letrec. Ann. Pure Appl. Log. 117 (3), 95168.

P.-L. Curien & H. Herbelin (2000) The duality of computation. In Proceedings of the Fifth ACM Sigplan International Conference on Functional Programming. New York, NY, USA: ACM, pp. 233243.

R. David & W. Py (2001) λμ-calculus and Bohm's theorem. J. Symbol. Log. 66 (1), 407413.

K.-etsu Fujita (2003) A sound and complete CPS-translation for λμ-calculus. In Typed Lambda Calculi and Applications. M. Hofmann (ed), LNCS, vol. 2701. Berlin Heidelberg: Springer, pp. 120134.

M. Hofmann & T. Streicher (2002) Completeness of continuation models for λμ-calculus. Inform. Comput. 179 (2), 332355.

J. W. Klop & R. C. de Vrijer (1989) Unique normal forms for lambda calculus with surjective pairing. Inform. Comput. 80 (2), 97113.

J.-L. Krivine (2007) A call-by-name lambda-calculus machine. Higher-Order Symbol. Comput. 20 (3), 199207.

F. Pfenning (2002) Logical frameworks–-a brief introduction. In Proof and System-Reliability. NATO Science Series II, vol. 62. Kluwer Academic Publishers, pp. 137166.

A. M. Pitts (2000) Parametric polymorphism and operational equivalence. Math. Struct. Comput. Sci. 10 (3), 321359.

G. D. Plotkin (1975) Call-by-name, call-by-value and the λ-calculus. Theor. Comput. Sci. 1 (2), 125159.

A. Sabry & M. Felleisen (1993) Reasoning about programs in continuation-passing style. Lisp Symbol. Comput. 6 (3–4), 289360.

A. Sabry & P. Wadler (1997) A reflection on call-by-value. ACM Trans. Program. Lang. Syst. 19 (6), 916941.

A. Saurin (2010) Typing streams in the λμ-calculus. ACM Trans. Comput. Log. 11 (4), 28:128:34.

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: 36 *
Loading metrics...

Abstract views

Total abstract views: 256 *
Loading metrics...

* Views captured on Cambridge Core between 27th February 2017 - 20th September 2017. This data will be updated every 24 hours.