Modular SMT Proofs for Fast Reflexive Checking Inside Coq

  • Frédéric Besson
  • Pierre-Emmanuel Cornilleau
  • David Pichardie
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7086)

Abstract

We present a new methodology for exchanging unsatisfiability proofs between an untrusted SMT solver and a sceptical proof assistant with computation capabilities like Coq. We advocate modular SMT proofs that separate boolean reasoning and theory reasoning; and structure the communication between theories using Nelson-Oppen combination scheme. We present the design and implementation of a Coq reflexive verifier that is modular and allows for fine-tuned theory-specific verifiers. The current verifier is able to verify proofs for quantifier-free formulae mixing linear arithmetic and uninterpreted functions. Our proof generation scheme benefits from the efficiency of state-of-the-art SMT solvers while being independent from a specific SMT solver proof format. Our only requirement for the SMT solver is the ability to extract unsat cores and generate boolean models. In practice, unsat cores are relatively small and their proof is obtained with a modest overhead by our proof-producing prover. We present experiments assessing the feasibility of the approach for benchmarks obtained from the SMT competition.

Keywords

Decision Procedure Proof System Boolean Model Proof Assistant Proof Rule 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Armand, M., Faure, G., Gregoire, B., Keller, C., Théry, L., Werner, B.: A Modular Integration of SAT/SMT Solvers to Coq Through Proof Witnesses. In: Jouannaud, J.-P., Shao, Z. (eds.) CPP 2011. LNCS, vol. 7086, pp. 135–150. Springer, Heidelberg (2011)Google Scholar
  2. 2.
    Armand, M., Grégoire, B., Spiwack, A., Théry, L.: Extending Coq with Imperative Features and its Application to SAT Verification. In: Kaufmann, M., Paulson, L.C. (eds.) ITP 2010. LNCS, vol. 6172, pp. 83–98. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  3. 3.
    Barret, C., Stump, A., Tinelli, C.: The SMT-LIB standard: Version 2.0 (2010)Google Scholar
  4. 4.
    Barrett, C.W., Tinelli, C.: CVC3. In: Damm, W., Hermanns, H. (eds.) CAV 2007. LNCS, vol. 4590, pp. 298–302. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  5. 5.
    Besson, F.: Fast Reflexive Arithmetic Tactics the Linear Case and Beyond. In: Altenkirch, T., McBride, C. (eds.) TYPES 2006. LNCS, vol. 4502, pp. 48–62. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  6. 6.
    Böhme, S., Weber, T.: Fast LCF-Style Proof Reconstruction for Z3. In: Kaufmann, M., Paulson, L.C. (eds.) ITP 2010. LNCS, vol. 6172, pp. 179–194. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  7. 7.
    Boulton, R.J.: Efficiency in a Fully-Expansive Theorem Prover. PhD thesis, University of Cambridge Computer Laboratory, Technical Report 337 (1994)Google Scholar
  8. 8.
    Bouton, T., de Oliveira, D.C.B., Déharbe, D., Fontaine, P.: veriT: An Open, Trustable and Efficient SMT-Solver. In: Schmidt, R.A. (ed.) CADE-22. LNCS, vol. 5663, pp. 151–156. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  9. 9.
    Contejean, E., Corbineau, P.: Reflecting Proofs in First-Order Logic with Equality. In: Nieuwenhuis, R. (ed.) CADE 2005. LNCS (LNAI), vol. 3632, pp. 7–22. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  10. 10.
    de Moura, L.M., Bjørner, N.: Proofs and Refutations, and Z3. In: LPAR 2008 Workshops: KEAPPA. CEUR-WS.org, vol. 418 (2008)Google Scholar
  11. 11.
    de Moura, L., Bjørner, N.S.: Z3: An Efficient SMT Solver. In: Ramakrishnan, C.R., Rehof, J. (eds.) TACAS 2008. LNCS, vol. 4963, pp. 337–340. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  12. 12.
    de Moura, L.M., Rueß, H., Shankar, N.: Justifying equality. ENTCS 125(3), 69–85 (2005)MATHGoogle Scholar
  13. 13.
    de Moura, L., Rueß, H., Sorea, M.: Lazy Theorem Proving for Bounded Model Checking Over Infinite Domains. In: Voronkov, A. (ed.) CADE 2002. LNCS (LNAI), vol. 2392, pp. 438–455. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  14. 14.
    Detlefs, D., Nelson, G., Saxe, J.B.: Simplify: a theorem prover for program checking. J. ACM 52(3), 365–473 (2005)MathSciNetCrossRefMATHGoogle Scholar
  15. 15.
    Fontaine, P., Marion, J.-Y., Merz, S., Nieto, L.P., Tiu, A.F.: Expressiveness + Automation + Soundness: Towards Combining SMT Solvers and Interactive Proof Assistants. In: Hermanns, H. (ed.) TACAS 2006. LNCS, vol. 3920, pp. 167–181. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  16. 16.
    Grégoire, B., Leroy, X.: A compiled implementation of strong reduction. In: ICFP 2002, pp. 235–246. ACM (2002)Google Scholar
  17. 17.
    Grégoire, B., Mahboubi, A.: Proving Equalities in a Commutative Ring Done Right in Coq. In: Hurd, J., Melham, T. (eds.) TPHOLs 2005. LNCS, vol. 3603, pp. 98–113. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  18. 18.
    Hurd, J.: Integrating Gandalf and HOL. In: Bertot, Y., Dowek, G., Hirschowitz, A., Paulin, C., Théry, L. (eds.) TPHOLs 1999. LNCS, vol. 1690, pp. 311–322. Springer, Heidelberg (1999)CrossRefGoogle Scholar
  19. 19.
    Leroy, X.: Formal certification of a compiler back-end or: programming a compiler with a proof assistant. In: POPL 2006, pp. 42–54. ACM (2006)Google Scholar
  20. 20.
    McLaughlin, S., Barrett, C., Ge, Y.: Cooperating theorem provers: A case study combining HOL-Light and CVC Lite. ENTCS 144(2), 43–51 (2006)MATHGoogle Scholar
  21. 21.
    Necula, G.C.: Compiling with Proofs. PhD thesis, CMU (1998)Google Scholar
  22. 22.
    Necula, G.C., Lee, P.: Proof Generation in the Touchstone Theorem Prover. In: McAllester, D. (ed.) CADE 2000. LNCS, vol. 1831, pp. 25–44. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  23. 23.
    Nelson, G., Oppen, D.C.: Simplification by cooperating decision procedures. ACM Trans. Program. Lang. Syst. 1, 245–257 (1979)CrossRefMATHGoogle Scholar
  24. 24.
    Nieuwenhuis, R., Oliveras, A.: Proof-Producing Congruence Closure. In: Giesl, J. (ed.) RTA 2005. LNCS, vol. 3467, pp. 453–468. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  25. 25.
    Paulson, L.C., Susanto, K.W.: Source-Level Proof Reconstruction for Interactive Theorem Proving. In: Schneider, K., Brandt, J. (eds.) TPHOLs 2007. LNCS, vol. 4732, pp. 232–245. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  26. 26.
    Pugh, W.: The omega test: a fast and practical integer programming algorithm for dependence analysis. In: SC, pp. 4–13 (1991)Google Scholar
  27. 27.
    Schrijver, A.: Theory of Linear and Integer Programming. Wiley (1998)Google Scholar
  28. 28.
    Stengle, G.: A nullstellensatz and a positivstellensatz in semialgebraic geometry. Mathematische Annalen 207(2), 87–97 (1973)MathSciNetCrossRefMATHGoogle Scholar
  29. 29.
    Weber, T., Amjad, H.: Efficiently checking propositional refutations in HOL theorem provers. J. Applied Logic 7(1), 26–40 (2009)MathSciNetCrossRefMATHGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2011

Authors and Affiliations

  • Frédéric Besson
    • 1
  • Pierre-Emmanuel Cornilleau
    • 1
  • David Pichardie
    • 1
  1. 1.INRIA Rennes – Bretagne AtlantiqueFrance

Personalised recommendations