A call-by-value lambda-calculus with lists and control
Robbert Krebbers (Radboud University Nijmegen)

TL;DR
This paper introduces a simply typed call-by-value lambda calculus that incorporates control operators, list data types, and primitive recursion, with formal proofs of key properties ensuring its theoretical soundness.
Contribution
It extends existing calculi by integrating data types and control operators into a call-by-value setting with formal correctness proofs.
Findings
System satisfies subject reduction and progress
System is confluent for untyped terms
Well-typed terms are strongly normalizing
Abstract
Calculi with control operators have been studied to reason about control in programming languages and to interpret the computational content of classical proofs. To make these calculi into a real programming language, one should also include data types. As a step into that direction, this paper defines a simply typed call-by-value lambda calculus with the control operators catch and throw, a data type of lists, and an operator for primitive recursion (a la Goedel's T). We prove that our system satisfies subject reduction, progress, confluence for untyped terms, and strong normalization for well-typed terms.
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.
