A verified type system for CakeML
Authors
ASTAR\ University of Kent\ Data61
CSIRO\ University of Cambridge
Abstract
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
@inproceedings{Tan_OK_16,
address = {Koblenz, Germany},
author = {Tan, Yong Kiam and Owens, Scott and Kumar, Ramana},
booktitle = {Implementation and application of functional and programming languages},
doi = {10.1145/2897336.2897344},
keywords = {cakeml},
month = jul,
pages = {12},
paperurl = {https://trustworthy.systems/publications/nicta_full_text/8976.pdf},
title = {A Verified Type System for {CakeML}},
year = {2016}
}
Full text
BibTeX