A strong call-by-need calculus
Thibaut Balabonski, Antoine Lanco, Guillaume Melquiond

TL;DR
This paper introduces a novel call-by-need lambda calculus that supports strong reduction, ensuring arguments are evaluated only when necessary and at most once, with formal proofs of normalization and minimal reduction sequences.
Contribution
It presents a new strong call-by-need calculus with explicit substitutions, enabling more reduction sequences and shorter ones while preserving neededness, and formalizes part of it using the Abella proof assistant.
Findings
The calculus guarantees normalization to normal forms.
A restriction with the diamond property performs minimal-length reductions.
Formalization in Abella influenced the calculus design.
Abstract
We present a call-by-need -calculus that enables strong reduction (that is, reduction inside the body of abstractions) and guarantees that arguments are only evaluated if needed and at most once. This calculus uses explicit substitutions and subsumes the existing strong-call-by-need strategy, but allows for more reduction sequences, and often shorter ones, while preserving the neededness. The calculus is shown to be normalizing in a strong sense: Whenever a -term t admits a normal form n in the -calculus, then any reduction sequence from t in the calculus eventually reaches a representative of the normal form n. We also exhibit a restriction of this calculus that has the diamond property and that only performs reduction sequences of minimal length, which makes it systematically better than the existing strategy. We have used the Abella proof assistant to…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsLogic, programming, and type systems · Formal Methods in Verification · Logic, Reasoning, and Knowledge
