arXiv · 1806.03205
Formal Small-step Verification of a Call-by-value Lambda Calculus Machine
Abstract
We formally verify an abstract machine for a call-by-value lambda-calculus with de Bruijn terms, simple substitution, and small-step semantics. We follow a stepwise refinement approach starting with a naive stack machine with substitution. We then refine to a machine with closures, and finally to a machine with a heap providing structure sharing for closures. We prove the correctness of the three refinement steps with compositional small-step bottom-up simulations. There is an accompanying Coq development verifying all results.
Explore related subjects
Keep this discovery
Explore connections, maps & timelines
Fabian Kunze, Gert Smolka, Yannick Forster. 2019-01-02. Formal Small-step Verification of a Call-by-value Lambda Calculus Machine. https://doi.org/10.1007/978-3-030-02768-1_15
Cite the original work for its findings. Save a collection to share your selection of sources.