A Formalisation of Core Erlang, a concurrent actor language

P Bereczky, D Horpácsi, S Thompson - arXiv preprint arXiv:2311.10482, 2023 - arxiv.org
arXiv preprint arXiv:2311.10482, 2023arxiv.org
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 (eg determinism, confluence). Finally, we define program equivalence based on …
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.
arxiv.org
Showing the best result for this search. See all results