DeepAI
Log In Sign Up

Formal Small-step Verification of a Call-by-value Lambda Calculus Machine

06/08/2018
by   Fabian Kunze, et al.
0

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.

READ FULL TEXT
08/10/2018

Proof Nets and the Linear Substitution Calculus

Since the very beginning of the theory of linear logic it is known how t...
06/20/2016

Introducing a Calculus of Effects and Handlers for Natural Language Semantics

In compositional model-theoretic semantics, researchers assemble truth-c...
12/31/2020

Verifying a Cruise Control System using Simulink and SpaceEx

This article aims to provide a simple step-by-step guide highlighting th...
08/05/2022

Covariant-Contravariant Refinement Modal μ-calculus

The notion of covariant-contravariant refinement (CC-refinement, for sho...
09/15/2020

An Abstract Machine for Strong Call by Value

We present an abstract machine that implements a full-reducing (a.k.a. s...
06/24/2019

Automatic verification of heap-manipulating programs

Theoretical foundations of compositional reasoning about heaps in impera...
07/12/2017

Revisiting Elementary Denotational Semantics

Operational semantics have been enormously successful, in large part due...