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

page 1

page 2

page 3

page 4

research
08/23/2023

A Frame Stack Semantics for Sequential Core Erlang

We present a small-step, frame stack style, semantics for sequential Cor...
research
01/29/2019

Representation theorems for extended contact algebras based on equivalence relations

The aim of this paper is to give new representation theorems for extende...
research
05/24/2020

A Proof Assistant Based Formalisation of Core Erlang

Our research is part of a wider project that aims to investigate and rea...
research
03/27/2018

Proving Equivalence Between Imperative and MapReduce Implementations Using Program Transformations

Distributed programs are often formulated in popular functional framewor...
research
06/20/2022

Semantic preservation for a type directed translation scheme of Featherweight Go

Featherweight Go (FG) is a minimal core calculus that includes essential...
research
12/05/2022

Equivalence of eval-readback and eval-apply big-step evaluators by regimentation of the lambda-calculus's strategy space

We study the equivalence of eval-readback and eval-apply big-step evalua...
research
02/19/2018

Space Improvements and Equivalences in a Functional Core Language

We explore space improvements in LRP, a polymorphically typed call-by-ne...

Please sign up or login with your details

Forgot password? Click here to reset