Modular type-safety proofs in Agda

  • Authors:
  • Christopher Schwaab;Jeremy G. Siek

  • Affiliations:
  • University of Colorado at Boulder, Boulder, CO, USA;University of Colorado at Boulder, Boulder, CO, USA

  • Venue:
  • PLPV '13 Proceedings of the 7th workshop on Programming languages meets program verification
  • Year:
  • 2013

Quantified Score

Hi-index 0.00

Visualization

Abstract

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.