Extending Coq with Imperative Features and Its Application to SAT Verification

  • Michaël Armand
  • Benjamin Grégoire
  • Arnaud Spiwack
  • Laurent Théry
Part of the Lecture Notes in Computer Science book series (LNCS, volume 6172)


Coq has within its logic a programming language that can be used to replace many deduction steps into a single computation, this is the so-called reflection. In this paper, we present two extensions of the evaluation mechanism that preserve its correctness and make it possible to deal with cpu-intensive tasks such as proof checking of SAT traces.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Baker, H.G.: Shallow Binding Makes Functional Arrays Fast. ACM SIGPLAN notices 26, 145–147 (1991)Google Scholar
  2. 2.
    Barras, B., Grégoire, B.: On the Role of Type Decorations in the Calculus of Inductive Constructions. In: Ong, L. (ed.) CSL 2005. LNCS, vol. 3634, pp. 151–166. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  3. 3.
    Bertot, Y., Castéran, P.: Interactive Theorem Proving and Program Development. Coq’Art: The Calculus of Inductive Constructions. Texts in Theoretical Computer Science. Springer, Heidelberg (2004)MATHGoogle Scholar
  4. 4.
    Boyer, R.S., Moore, J.S.: Single-Threaded Objects in ACL2. In: Krishnamurthi, S., Ramakrishnan, C.R. (eds.) PADL 2002. LNCS, vol. 2257, pp. 9–27. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  5. 5.
    Bulwahn, L., Krauss, A., Haftmann, F., Erkök, L., Matthews, J.: Imperative Functional Programming with Isabelle/HOL. In: Mohamed, O.A., Muñoz, C., Tahar, S. (eds.) TPHOLs 2008. LNCS, vol. 5170, pp. 134–149. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  6. 6.
    Conchon, S., Filliâtre, J.-C.: A persistent union-find data structure. In: ACM Workshop on ML, pp. 37–46 (2007)Google Scholar
  7. 7.
    Darbari, A., Fischer, B., Marques-Silva, J.: Formalizing a SAT Proof Checker in Coq. First Coq Workshop, published as technical report tum-i0919 of the Technical University of Munich (2009)Google Scholar
  8. 8.
    Gonthier, G.: Formal Proof – The Four-Color Theorem. Notices of the AMS 55(11) (2008)Google Scholar
  9. 9.
    Grégoire, B., Leroy, X.: A compiled implementation of strong reduction. In: ICFP, pp. 235–246 (2002)Google Scholar
  10. 10.
    Kroening, D., Strichman, O.: Decision Procedures, An Algorithmic Point of View. Texts in Theoretical Computer Science. Springer, Heidelberg (2008)MATHGoogle Scholar
  11. 11.
    Leroy, X.: The ZINC experiment: an economical implementation of the ML language. Technical report 117, INRIA (1990)Google Scholar
  12. 12.
    Leroy, X.: Objective Caml (1997), http://ocaml.inria.fr/
  13. 13.
    Okasaki, C.: Purely Functional Data Structures. Cambridge University Press, Cambridge (1998)CrossRefGoogle Scholar
  14. 14.
    Shankar, N.: Static Analysis for Safe Destructive Updates in a Functional Language. In: Pettorossi, A. (ed.) LOPSTR 2001. LNCS, vol. 2372, pp. 1–24. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  15. 15.
    Swierstra, W.: A Hoare Logic for the State Monad. In: Urban, C. (ed.) TPHOLs 2009. LNCS, vol. 5674, pp. 440–451. Springer, Heidelberg (2009)Google Scholar
  16. 16.
    Théry, L.: Proof Pearl: Revisiting the Mini-Rubik in Coq. In: Mohamed, O.A., Muñoz, C., Tahar, S. (eds.) TPHOLs 2008. LNCS, vol. 5170, pp. 310–319. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  17. 17.
    Princeton University. zChaff, http://www.princeton.edu/~chaff/zchaff.html
  18. 18.
    Wadler, P.: Monads for Functional Programming. In: Jeuring, J., Meijer, E. (eds.) AFP 1995. LNCS, vol. 925, pp. 24–52. Springer, Heidelberg (1995)Google Scholar
  19. 19.
    Weber, T., Amjad, H.: Efficiently checking propositional refutations in HOL theorem provers. J. Applied Logic 7(1), 26–40 (2009)MATHCrossRefMathSciNetGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2010

Authors and Affiliations

  • Michaël Armand
    • 1
  • Benjamin Grégoire
    • 1
  • Arnaud Spiwack
    • 2
  • Laurent Théry
    • 1
  1. 1.INRIA Sophia Antipolis - MéditerranéeFrance
  2. 2.LIX, École PolytechniqueFrance

Personalised recommendations