ICFP 2017
Sun 3 - Sat 9 September 2017 Oxford, United Kingdom
Tue 5 Sep 2017 13:45 - 14:07 at L1 - Foundations of Higher-Order Programming Chair(s): Gabriel Scherer

We present a call-by-need strategy for computing strong normal forms of open terms (reduction is admitted inside the body of abstractions and substitutions, and the terms may contain free variables), which guarantees that arguments are only evaluated when needed and at most once. The strategy is shown to be complete with respect to $\beta$-reduction to strong normal form. The proof of completeness relies on two key tools: (1) the definition of a strong call-by-need calculus where reduction may be performed inside any context, and (2) the use of non-idempotent intersection types. More precisely, terms admitting a $\beta$-normal form in pure lambda calculus are typable, typability implies (weak) normalisation in the strong call-by-need calculus, and weak normalisation in the strong call-by-need calculus implies normalisation in the strong call-by-need strategy. Our (strong) call-by-need strategy is also shown to be conservative over the standard (weak) call-by-need.

#### Tue 5 Sep

 13:00 - 14:30: Research Papers - Foundations of Higher-Order Programming at L1 Chair(s): Gabriel Scherer 13:00 - 13:22Talk How to Prove Your Calculus Is Decidable: Practical Applications of Second-Order Algebraic Theories and ComputationMakoto Hamana DOI 13:22 - 13:45Talk A Relational Logic for Higher-Order Programs DOI 13:45 - 14:07Talk Foundations of Strong Call by Need DOI 14:07 - 14:30Talk No-Brainer CPS Conversion DOI