DeepAI AI Chat
Log In Sign Up

Mechanization of LAGC Semantics in Isabelle

by   Niklas Heidler, et al.

Formal programming language semantics are imperative when trying to verify properties of programs in an automated manner. Using a new approach, Din et al. strengthen the ability of reasoning about concurrent programs by proposing a modular trace semantics, which can flexibly adapt to the most prominent imperative programming language paradigms. These semantics decouple the evaluation in the local environments from the evaluation in the global environment by generating abstract, symbolic traces for the individual, local systems. The traces are then composed and concretized, resulting in global traces for the global system. Hence, these semantics are called Locally Abstract, Globally Concrete (LAGC). In this work, we present a formalization of the LAGC semantics in the popular theorem proving environment Isabelle/HOL. The given model is based on the prior work on the theory of LAGC semantics by Din et al. and includes formalizations of the basic theorems, the LAGC semantics for the While Language (WL), as well as the LAGC semantics for an extended version of the While Language (WLEXT). We furthermore use our Isabelle model in order to provide formal proofs for several advanced properties of the LAGC semantics, which have not been analyzed in the original paper. Whilst the main goal of the work was to formalize the LAGC semantics in a mathematically rigorous manner, we also achieve a high level of proof automatization and manage to contribute an efficient code-generation for the computation of program traces. As the formalization of the semantics is highly modular, the given theories could in the future be extended with even more sophisticated programming language paradigms.


page 1

page 2

page 3

page 4


LAGC Semantics of Concurrent Programming Languages

Formal, mathematically rigorous programming language semantics are the e...

Formal Semantics of a Classical-Quantum Language

We investigate the formal semantics of a simple imperative language that...

Budge: a programming language and a theorem prover

We present a simple programming language based on Gödel numbering and pr...

Parametric Denotational Semantics for Extensible Language Definition and Program Analysis

We present a novel approach to construction of a formal semantics for a ...

Denotational Semantics and a Fast Interpreter for jq

jq is a widely used tool that provides a programming language to manipul...

A Proof Assistant Based Formalisation of Core Erlang

Our research is part of a wider project that aims to investigate and rea...

A Formal Theory of Choreographic Programming

Choreographic programming is a paradigm for writing coordination plans f...