Expressiveness + Automation + Soundness: Towards Combining SMT Solvers and Interactive Proof Assistants

  • Pascal Fontaine
  • Jean-Yves Marion
  • Stephan Merz
  • Leonor Prensa Nieto
  • Alwen Tiu
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3920)


Formal system development needs expressive specification languages, but also calls for highly automated tools. These two goals are not easy to reconcile, especially if one also aims at high assurances for correctness. In this paper, we describe a combination of Isabelle/HOL with a proof-producing SMT (Satisfiability Modulo Theories) solver that contains a SAT engine and a decision procedure for quantifier-free first-order logic with equality. As a result, a user benefits from the expressiveness of Isabelle/HOL when modeling a system, but obtains much better automation for those fragments of the proofs that fall within the scope of the (automatic) SMT solver. Soundness is not compromised because all proofs are submitted to the trusted kernel of Isabelle for certification. This architecture is straightforward to extend for other interactive proof assistants and proof-producing reasoners.


Decision Procedure Conjunctive Normal Form Clock Synchronization Propositional Formula Satisfiability Modulo Theory 
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.


  1. 1.
    Baaz, M., Egly, U., Leitsch, A.: Normal form transformations. In: Robinson, J.A., Voronkov, A. (eds.) Handbook of Automated Reasoning, ch. 5, vol. I, pp. 273–333. Elsevier Science B.V, Amsterdam (2001)CrossRefGoogle Scholar
  2. 2.
    Barrett, C., Berezin, S.: CVC Lite: A new implementation of the cooperating validity checker. In: Alur, R., Peled, D.A. (eds.) CAV 2004. LNCS, vol. 3114, pp. 515–518. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  3. 3.
    Barsotti, D., Prensa-Nieto, L., Tiu, A.: Verification of clock synchronization algorithms: Experiments on a combination of deductive tools. In: Proc. of the Fifth Workshop on Automated Verification of Critical Systems (AVOCS), ENTCS (to appear) (2005)Google Scholar
  4. 4.
    Bezem, M., Hendriks, D., de Nivelle, H.: Automated proof construction in type theory using resolution. J. Autom. Reasoning 29(3-4), 253–275 (2002)MathSciNetCrossRefMATHGoogle Scholar
  5. 5.
    Bozzano, M., Bruttomesso, R., Cimatti, A., Junttila, T., van Rossum, P., Schulz, S., Sebastiani, R.: The MathSAT 3 System. In: Nieuwenhuis, R. (ed.) CADE 2005. LNCS (LNAI), vol. 3632, pp. 315–321. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  6. 6.
    Davis, M., Logemann, G., Loveland, D.: A machine program for theorem-proving. Comm. of the ACM 5(7), 394–397 (1962)MathSciNetCrossRefMATHGoogle Scholar
  7. 7.
    Déharbe, D., Ranise, S.: Light-weight theorem proving for debugging and verifying units of code. In: Software Engineering and Formal Methods (SEFM), pp. 220–228. IEEE Comp. Soc, Los Alamitos (2003)Google Scholar
  8. 8.
    Downey, P.J., Sethi, R., Tarjan, R.E.: Variations on the common subexpressions problem. Journal of the ACM 27(4), 758–771 (1980)MathSciNetCrossRefMATHGoogle Scholar
  9. 9.
    Eén, N., Sörensson, N.: An extensible SAT-solver. In: Giunchiglia, E., Tacchella, A. (eds.) SAT 2003. LNCS, vol. 2919, pp. 502–518. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  10. 10.
    Filliâtre, J.-C., Owre, S., Rueß, H., Shankar, N.: ICS: Integrated canonizer and solver. In: Berry, G., Comon, H., Finkel, A. (eds.) CAV 2001. LNCS, vol. 2102, pp. 246–249. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  11. 11.
    Fontaine, P.: Techniques for verification of concurrent systems with invariants. PhD thesis, Institut Montefiore, Université de Liége, Belgium (September 2004)Google Scholar
  12. 12.
    Fontaine, P., Gribomont, E.P.: Using BDDs with combinations of theories. In: Baaz, M., Voronkov, A. (eds.) LPAR 2002. LNCS (LNAI), vol. 2514, pp. 190–201. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  13. 13.
    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
  14. 14.
    Mahboubi, A.: Programming and certifying the CAD algorithm inside the coq system. In: Coquand, T., Lombardi, H., Roy, M.-F. (eds.) Mathematics, Algorithms, Proofs, Schloss Dagstuhl, Germany. Dagstuhl Seminar Proceedings, vol. 05021 (2005)Google Scholar
  15. 15.
    Meier, A.: TRAMP: Transformation of machine-found proofs into ND-proofs at the assertion level. In: McAllester, D. (ed.) CADE 2000. LNCS, vol. 1831, pp. 460–464. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  16. 16.
    Meng, J., Quigley, C., Paulson, L.C.: Automation for interactive proof: First prototype. Information and Computation (to appear)Google Scholar
  17. 17.
    Mitchell, D.G.: A SAT solver primer. EATCS Bulletin 85, 112–133 (2005)MathSciNetMATHGoogle Scholar
  18. 18.
    Necula, G., Lee, P.: Efficient representation and validation of logical proofs. In: Logics in Computer Science (LICS 1998), pp. 93–104. IEEE Computer Society Press, Los Alamitos (1998)Google Scholar
  19. 19.
    Necula, G.C.: Compiling with Proofs. PhD thesis, Carnegie Mellon University, Available as Technical Report CMU-CS-98-154 (October 1998)Google Scholar
  20. 20.
    Nelson, G., Oppen, D.C.: Fast decision procedures based on congruence closure. Journal of the ACM 27(2), 356–364 (1980)MathSciNetCrossRefMATHGoogle Scholar
  21. 21.
    Nguyen, Q.H., Kirchner, C., Kirchner, H.: External rewriting for skeptical proof assistants. J. Autom. Reason. 29(3-4), 309–336 (2002)MathSciNetCrossRefMATHGoogle Scholar
  22. 22.
    Nieuwenhuis, R., Oliveras, A.: Union-find and congruence closure algorithms that produce proofs. In: Tinelli, C., Ranise, S. (eds.) PDPAR (2004)Google Scholar
  23. 23.
    Nipkow, T., Paulson, L.C., Wenzel, M.T.: Isabelle/HOL. LNCS, vol. 2283. Springer, Heidelberg (2002)MATHGoogle Scholar
  24. 24.
    Ranise, S., Tinelli, C.: The SMT-LIB standard: Version 1.1 (March 2005)Google Scholar
  25. 25.
    Siekmann, J.H., et al.: Proof development with ΩMEGA. In: Voronkov, A. (ed.) CADE 2002. LNCS (LNAI), vol. 2392, pp. 144–149. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  26. 26.
    Tiu, A.: Formalization of a generalized protocol for clock synchronization in Isabelle/HOL. Archive of Formal Proofs (2005),
  27. 27.
    Tseitin, G.S.: On the complexity of derivation in propositional calculus. In: Slisenko, A.O. (ed.) Studies in Constructive Mathematics and Mathematical Logic, vol. II, pp. 115–125 (1970)Google Scholar
  28. 28.
    Weber, T.: Using a SAT solver as a fast decision procedure for propositional logic in an LCF-style theorem prover. In: Hurd, J., Smith, E., Darbari, A. (eds.) TPHOLs 2005. Emerging Trends, pp. 180–189. Oxford Univ. Comp. Lab., Prog. Res. Group (2005)Google Scholar
  29. 29.
    Zhang, L., Malik, S.: The quest for efficient Boolean satisfiability solvers. In: Voronkov, A. (ed.) CADE 2002. LNCS (LNAI), vol. 2392, pp. 295–313. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  30. 30.
    Zhang, L., Malik, S.: Validating SAT solvers using an independent resolution-based checker. In: Design, Automation and Test in Europe (DATE 2003), pp. 10880–10885. IEEE Comp. Soc., Los Alamitos (2003)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Pascal Fontaine
    • 1
  • Jean-Yves Marion
    • 1
  • Stephan Merz
    • 1
  • Leonor Prensa Nieto
    • 1
  • Alwen Tiu
    • 1
  1. 1.LORIA – INRIA LorraineUniversité de NancyFrance

Personalised recommendations