English

A Formalisation of Core Erlang, a Concurrent Actor Language

Programming Languages 2023-11-20 v1

Abstract

In order to reason about the behaviour of programs described in a programming language, a mathematically rigorous definition of that language is needed. In this paper, we present a machine-checked formalisation of concurrent Core Erlang (a subset of Erlang) based on our previous formalisations of its sequential sublanguage. We define a modular, frame stack semantics, show how program evaluation is carried out with it, and prove a number of properties (e.g. determinism, confluence). Finally, we define program equivalence based on bisimulations and prove that side-effect-free evaluation is a bisimulation. This research is part of a wider project that aims to verify refactorings to prove that particular program code transformations preserve program behaviour.

Keywords

Cite

@article{arxiv.2311.10482,
  title  = {A Formalisation of Core Erlang, a Concurrent Actor Language},
  author = {Péter Bereczky and Dániel Horpácsi and Simon Thompson},
  journal= {arXiv preprint arXiv:2311.10482},
  year   = {2023}
}

Comments

Accepted for publication to Acta Cybernetica on 10th of May, 2023

R2 v1 2026-06-28T13:24:11.840Z