Well-Typed Languages are Sound
Matteo Cimini, Dale Miller, and Jeremy G. Siek

TL;DR
This paper presents a formal approach and a tool to automatically verify the type soundness of programming languages by ensuring they satisfy progress and preservation theorems through a meta type system.
Contribution
It introduces a meta type system and methodology for guaranteeing language soundness from specifications, with an implementation that automates soundness proofs.
Findings
Successfully applied to languages with recursive types and polymorphism
Automates detection of design mistakes affecting soundness
Produces machine-checked proofs of type soundness
Abstract
Type soundness is an important property of modern programming languages. In this paper we explore the idea that "well-typed languages are sound": the idea that the appropriate typing discipline over language specifications guarantees that the language is type sound. We instantiate this idea for a certain class of languages defined using small step operational semantics by ensuring the progress and preservation theorems. Our first contribution is a syntactic discipline for organizing and restricting language specifications so that they automatically satisfy the progress theorem. This discipline is not novel but makes explicit the way expert language designers have been organizing a certain class of languages for long time. We give a formal account of this discipline by representing language specifications as (higher-order) logic programs and by giving a meta type system over that…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsLogic, programming, and type systems · Formal Methods in Verification · Software Engineering Research
