DeepAI AI Chat
Log In Sign Up

A meta-theory for big-step semantics

by   Francesco Dagnino, et al.

It is well-known that big-step semantics is not able to distinguish stuck and non-terminating computations. This is a strong limitation as it makes very difficult to reason about properties involving infinite computations, such as type soundness, which cannot even be expressed. To face this problem, we develop a systematic study of big-step semantics: we introduce an abstract definition of what a big-step semantics is, we formalise the evaluation algorithm implicitly associated with any big-step semantics and we identify computations with executions of such an algorithm, thus recovering the distinction between stuckness an non-termination. Then, we define constructions yielding an extended version of a given arbitrary big-step semantics, where such a difference is made explicit. Building on such constructions, we describe a general proof technique to show that a predicate is sound, that is, prevents stuck computation, with respect to a big-step semantics. The extended semantics are exploited in the meta-theory, notably they are necessary to show that the proof technique works. However, they remain transparent when using the proof technique, since it consists in checking three conditions on the original rules only. We illustrate the technique by several examples, showing that it is applicable also in cases where subject reduction does not hold, hence the standard technique for small-step semantics cannot be used.


page 1

page 2

page 3

page 4


Soundness conditions for big-step semantics

We propose a general proof technique to show that a predicate is sound, ...

Revisiting Semiring Provenance for Datalog

Data provenance consists in bookkeeping meta information during query ev...

A Comparison of Big-step Semantics Definition Styles

Formal semantics provides rigorous, mathematically precise definitions o...

From Big-Step to Small-Step Semantics and Back with Interpreter Specialisation

We investigate representations of imperative programs as constrained Hor...

On Abstract Machine Semantics for Proto-Quipper-M

Quipper is a domain-specific programming language for the description of...

Formalisation of a frame stack semantics for a Java-like language

We present a Coq formalisation of the small-step operational semantics o...

A General Framework for Relational Parametricity

Reynolds' original theory of relational parametricity was intended to ca...