Coma (Continuation Machine) Intermediate Verification Language

Bluestein1 pts0 comments

Quickstart

Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Auto

Light

Rust

Coal

Navy

Ayu

Quickstart

Coma (which stands for Continuation Machine) is an<br>Intermediate Verification Language implemented as a plugin<br>in the Why3 platform.

Specification annotations in Coma take the form of assertions mixed with<br>the executable program code. A special programming construct representing the<br>abstraction barrier is used to separate, inside a subroutine, the “interface” part<br>of the code, which is verified at every call site, from the “implementation” part,<br>which is verified only once, at the definition site. In comparison with traditional<br>contract-based specification, this offers us an additional degree of freedom, as we<br>can provide separate specification (or none at all) for different execution paths.

Continuation-passing style allows us to devise an extremely economical abstract<br>syntax for a generic verification language.<br>This syntax is flexible enough to naturally express conditionals, loops,<br>(higher-order) function calls, and exception handling. It is type-agnostic and<br>state-agnostic, which means that we can combine it with a wide range of type<br>and effect systems.

Schiele — Four Trees

press coma continuation verification language specification

Related Articles