Program Equivalence in an Untyped, Call-by-value Lambda Calculus with Uncurried Recursive Functions

08/30/2022
by   Dániel Horpácsi, et al.
0

We aim to reason about the correctness of behaviour-preserving transformations of Erlang programs. Behaviour preservation is characterised by semantic equivalence. Based upon our existing formal semantics for Core Erlang, we investigate potential definitions of suitable equivalence relations. In particular we adapt a number of existing approaches of expression equivalence to a simple functional programming language that carries the main features of sequential Core Erlang; we then examine the properties of the equivalence relations and formally establish connections between them. The results presented in this paper, including all theorems and their proofs, have been machine checked using the Coq proof assistant.

READ FULL TEXT

Please sign up or login with your details

Forgot password? Click here to reset