Modular Type-Safety Proofs using Dependant Types
Christopher Schwaab, Jeremy G. Siek

TL;DR
This paper presents a novel approach to proof abstraction and reuse using dependent types, enabling modular and mechanical proof composition for type safety in programming languages.
Contribution
It introduces a language framework with composable components and demonstrates how proof techniques can be modularly applied to ensure type preservation.
Findings
Proof composition can be systematically achieved with dependent types.
Modular proofs facilitate easier reasoning about complex language features.
The approach supports mechanical proof construction for type safety.
Abstract
While methods of code abstraction and reuse are widespread and well researched, methods of proof abstraction and reuse are still emerging. We consider the use of dependent types for this purpose, introducing a completely mechanical approach to proof composition. We show that common techniques for abstracting algorithms over data structures naturally translate to abstractions over proofs. We first introduce a language composed of a series of smaller language components tied together by standard techniques from Malcom (1990). We proceed by giving proofs of type preservation for each language component and show that the basic ideas used in composing the syntactic data structures can be applied to their semantics as well.
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
TopicsFormal Methods in Verification · Logic, programming, and type systems · Software Reliability and Analysis Research
