Observational equivalence and program extraction in the Coq proof assistant

  • Authors:
  • Nicolas Oury

  • Affiliations:
  • Laboratoire de Recherche en Informatique, CNRS UMR, Université Paris-Sud, Orsay Cedex, France

  • Venue:
  • TLCA'03 Proceedings of the 6th international conference on Typed lambda calculi and applications
  • Year:
  • 2003

Quantified Score

Hi-index 0.00

Visualization

Abstract

The Coq proof assistant allows one to specify and certify programs. Then, code can be extracted from proofs to different programming languages. The goal of this article is to substitute, at extraction time, some complex and fast data structures for the structures used for specification and proof. This is made under two principal constraints: (1) this substitution must be correct: the optimized data structures in the extracted program must have the same properties as the original ones, (2) on the proof side, the structure must keep a computable nature. If the framework described here is general, we focus on the case of functional arrays. This work leads us to formalize the notion of observational equivalence in the Coq system. We conclude with benchmarks.