MiniSail - A kernel language for the ISA specification language SAIL

Mark Wassell 📧

June 18, 2021

This is a development version of this entry. It might change over time and is not stable. Please refer to release versions for citations.


MiniSail is a kernel language for Sail, an instruction set architecture (ISA) specification language. Sail is an imperative language with a light-weight dependent type system similar to refinement type systems. From an ISA specification, the Sail compiler can generate theorem prover code and C (or OCaml) to give an executable emulator for an architecture. The idea behind MiniSail is to capture the key and novel features of Sail in terms of their syntax, typing rules and operational semantics, and to confirm that they work together by proving progress and preservation lemmas. We use the Nominal2 library to handle binding.


BSD License


Session MiniSail