,
Adrienne Lancelot
Creative Commons Attribution 4.0 International license
Call-by-need evaluation for the λ-calculus can be seen as merging the best of call-by-name and call-by-value, namely the wise erasing behaviour of the former and the wise duplicating behaviour of the latter. To better understand how duplication and erasure can be combined, we design a degenerated calculus, dubbed call-by-silly, that is symmetric to call-by-need in that it merges the worst of call-by-name and call-by-value, namely silly duplications by-name and silly erasures by-value. We validate the design of the call-by-silly calculus via rewriting properties and multi types. In particular, we mirror the main theorem about call-by-need - that is, its operational equivalence with call-by-name - showing that call-by-silly and call-by-value induce the same contextual equivalence. This fact shows the blindness with respect to efficiency of call-by-value contextual equivalence. We also define a call-by-silly strategy and measure its length via tight multi types. Lastly, we prove that the call-by-silly strategy computes evaluation sequences of maximal length in the calculus.
@InProceedings{accattoli_et_al:LIPIcs.FSCD.2024.23,
author = {Accattoli, Beniamino and Lancelot, Adrienne},
title = {{Mirroring Call-By-Need, or Values Acting Silly}},
booktitle = {9th International Conference on Formal Structures for Computation and Deduction (FSCD 2024)},
pages = {23:1--23:24},
series = {Leibniz International Proceedings in Informatics (LIPIcs)},
ISBN = {978-3-95977-323-2},
ISSN = {1868-8969},
year = {2024},
volume = {299},
editor = {Rehof, Jakob},
publisher = {Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik},
address = {Dagstuhl, Germany},
URL = {https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.FSCD.2024.23},
URN = {urn:nbn:de:0030-drops-203527},
doi = {10.4230/LIPIcs.FSCD.2024.23},
annote = {Keywords: Lambda calculus, intersection types, call-by-value, call-by-need}
}