DeepAI AI Chat
Log In Sign Up

A Proof Assistant Based Formalisation of Core Erlang

by   Péter Bereczky, et al.
Eötvös Loránd University
University of Kent

Our research is part of a wider project that aims to investigate and reason about the correctness of scheme-based source code transformations of Erlang programs. In order to formally reason about the definition of a programming language and the software built using it, we need a mathematically rigorous description of that language. In this paper, we present our proof-assistant-based formalisation of a subset of Erlang, intended to serve as a base for proving refactorings correct. After discussing how we reused concepts from related work, we show the syntax and semantics of our formal description, including the abstractions involved (e.g. closures). We also present essential properties of the formalisation (e.g. determinism) along with their machine-checked proofs. Finally, we prove the correctness of some simple refactoring strategies.


page 1

page 2

page 3

page 4


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

We aim to reason about the correctness of behaviour-preserving transform...

A Term-Rewriting Semantics for Imperative Style Programming

Term rewriting systems have a simple syntax and semantics and facilitate...

A Formalization of Operads in Coq

What provides the highest level of assurance for correctness of executio...

An approach to translating Haskell programs to Agda and reasoning about them

We are using the Agda programming language and proof assistant to formal...

Mechanization of LAGC Semantics in Isabelle

Formal programming language semantics are imperative when trying to veri...

Creating Interactive Visualizations of TopHat Programs

Many companies and institutions have automated their business process in...

Trustworthy Refactoring via Decomposition and Schemes: A Complex Case Study

Widely used complex code refactoring tools lack a solid reasoning about ...