Modular type-safety proofs in Agda
Proceedings of the 7th workshop on Programming languages meets program …, 2013•dl.acm.org
Methods for reusing code are widespread and well researched, but methods for reusing
proofs are still emerging. We consider the use of dependent types for this purpose,
introducing a modular approach for composing mechanized proofs. We show that common
techniques for abstracting algorithms over data structures naturally translate to abstractions
over proofs. We introduce a language composed of a series of smaller language
components, each defined as functors, and tie them together by taking the fixed point of their …
proofs are still emerging. We consider the use of dependent types for this purpose,
introducing a modular approach for composing mechanized proofs. We show that common
techniques for abstracting algorithms over data structures naturally translate to abstractions
over proofs. We introduce a language composed of a series of smaller language
components, each defined as functors, and tie them together by taking the fixed point of their …
Methods for reusing code are widespread and well researched, but methods for reusing proofs are still emerging. We consider the use of dependent types for this purpose, introducing a modular approach for composing mechanized proofs. We show that common techniques for abstracting algorithms over data structures naturally translate to abstractions over proofs. We introduce a language composed of a series of smaller language components, each defined as functors, and tie them together by taking the fixed point of their sum [Malcom, 1990]. We then give proofs of type preservation for each language component and show how to compose these proofs into a proof for the entire language, again by taking the fixed point of a sum of functors.
ACM Digital Library