Skip to main content


A verified type system for CakeML


Yong Kiam Tan, Scott Owens and Ramana Kumar


University of Kent


University of Cambridge


CakeML is a dialect of the (strongly typed) ML family of programming languages, designed to play a central role in high-assurance software systems. To date, the main artefact supporting this is a verified compiler from CakeML source code to x86-64 machine code. The verification effort addresses each phase of compilation from parsing through to code generation and garbage collection.

In this paper, we focus on the type system: its declarative specification, type soundness theorem, and the soundness and completeness of an implementation of type inference -- all formally verified in the HOL4 proof assistant. Each of these aspects of a type system is important in any design and implementation of a typed functional programming language. They allow the programmer to soundly employ (informal) type-based reasoning, and the compiler to apply optimisations that assume type-correctness. So naturally, their verification is a critical part of a verified compiler.

BibTeX Entry

    doi              = {10.1145/2897336.2897344},
    author           = {Tan, Yong Kiam and Owens, Scott and Kumar, Ramana},
    year             = {2016},
    month            = jul,
    keywords         = {cakeml},
    title            = {A Verified Type System for {CakeML}},
    booktitle        = {Implementation and application of functional and programming languages},
    pages            = {12},
    address          = {Koblenz, Germany}


Served by Apache on Linux on seL4.
Served by Apache on Linux on seL4.