Skip to main content

Observational Equivalence and Program Extraction in the Coq Proof Assistant

  • Conference paper
  • First Online:
Typed Lambda Calculi and Applications (TLCA 2003)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 2701))

Included in the following conference series:

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. The Coq proof assistant. http://coq.inria.fr.

  2. T. Coquand and G. Huet. The Calculus of Constructions. Information and Computation, 76(2/3):95–120, 1988.

    Article  MathSciNet  MATH  Google Scholar 

  3. Eduardo Giménez. A tutorial on recursive types in Coq. Technical Report 0221, INRIA, Mai 1998.

    Google Scholar 

  4. Haskell, a Purely Functional Language. http://www.haskell.org.

  5. The Objective Caml language. http://pauillac.inria.fr/ocaml/.

  6. Chris Okasaki. Purely Functional Data Structures. Cambridge University Press, 1998.

    Google Scholar 

  7. C. Paulin-Mohring. Inductive Definitions in the System Coq-Rules and Properties. In M. Bezem and J.-F. Groote, editors, Proceedings of the conference Typed Lambda Calculi and Applications, volume 664 of Lecture Notes in Computer Science. Springer-Verlag, 1993. Also LIP research report 92-49.

    Google Scholar 

  8. The Coq Development Team. The Coq proof assistant reference manual-chapter 4. Technical Report 0255, INRIA, Février 2002.

    Google Scholar 

  9. The Coq Development Team. The Coq proof assistant reference manual version 7.2. Technical Report 0255, INRIA, Février 2002.

    Google Scholar 

  10. The Coq Development Team. The Coq proof assistant tutorial version 7.2. Technical Report 0256, INRIA, Février 2002.

    Google Scholar 

  11. Philip Wadler. Views: A way for pattern matching to cohabit with data abstraction. In 14th ACM Symposium on Principles of Programming Languages, Munich, January 1987.

    Google Scholar 

  12. Why: a software certification tool. http://why.lri.fr.

  13. Glynn Winskel. The Formal Semantics of Programming Languages — An Introduction. The MIT Press, 1993.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2003 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Oury, N. (2003). Observational Equivalence and Program Extraction in the Coq Proof Assistant. In: Hofmann, M. (eds) Typed Lambda Calculi and Applications. TLCA 2003. Lecture Notes in Computer Science, vol 2701. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-44904-3_19

Download citation

  • DOI: https://doi.org/10.1007/3-540-44904-3_19

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-40332-6

  • Online ISBN: 978-3-540-44904-1

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics