Skip to main content

Improving Coq Propositional Reasoning Using a Lazy CNF Conversion Scheme

  • Conference paper

Part of the book series: Lecture Notes in Computer Science ((LNAI,volume 5749))

Abstract

In an attempt to improve automation capabilities in the Coq proof assistant, we develop a tactic for the propositional fragment based on the DPLL procedure. Although formulas naturally arising in interactive proofs do not require a state-of-the-art SAT solver, the conversion to clausal form required by DPLL strongly damages the performance of the procedure. In this paper, we present a reflexive DPLL algorithm formalized in Coq which outperforms the existing tactics. It is tightly coupled with a lazy CNF conversion scheme which, unlike Tseitin-style approaches, does not disrupt the procedure. This conversion relies on a lazy mechanism which requires slight adaptations of the original DPLL. As far as we know, this is the first formal proof of this mechanism and its Coq implementation raises interesting challenges.

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

Buying options

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

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Bezem, M., Hendriks, D., de Nivelle, H.: Automated proof construction in type theory using resolution. JAR 29(3), 253–275 (2002)

    Article  MathSciNet  MATH  Google Scholar 

  2. Bonichon, R., Delahaye, D., Doligez, D.: Zenon: An extensible automated theorem prover producing checkable proofs. In: Dershowitz, N., Voronkov, A. (eds.) LPAR 2007. LNCS, vol. 4790, pp. 151–165. Springer, Heidelberg (2007)

    Chapter  Google Scholar 

  3. Boutin, S.: Using reflection to build efficient and certified decision procedures. In: Abadi, M., Ito, T. (eds.) TACS 1997. LNCS, vol. 1281, pp. 515–529. Springer, Heidelberg (1997)

    Chapter  Google Scholar 

  4. Chrząszcz, J.: Implementation of modules in the Coq system. In: Basin, D., Wolff, B. (eds.) TPHOLs 2003. LNCS, vol. 2758, pp. 270–286. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  5. Conchon, S., Contejean, E.: The Alt-Ergo Prover, http://alt-ergo.lri.fr/

  6. 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)

    Chapter  Google Scholar 

  7. Contejean, E., Courtieu, P., Forest, J., Pons, O., Urbain, X.: Certification of automated termination proofs. In: Konev, B., Wolter, F. (eds.) FroCos 2007. LNCS (LNAI), vol. 4720, pp. 148–162. Springer, Heidelberg (2007)

    Chapter  Google Scholar 

  8. The Coq Proof Assistant, http://coq.inria.fr/

  9. Corbineau, P.: Deciding equality in the constructor theory. In: Altenkirch, T., McBride, C. (eds.) TYPES 2006. LNCS, vol. 4502, pp. 78–92. Springer, Heidelberg (2007)

    Chapter  Google Scholar 

  10. Davis, M., Logemann, G., Loveland, D.: A machine program for theorem-proving. Communication of the ACM 5(7), 394–397 (1962)

    Article  MathSciNet  MATH  Google Scholar 

  11. Davis, M., Putnam, H.: A computing procedure for quantification theory. J. ACM 7(3), 201–215 (1960)

    Article  MathSciNet  MATH  Google Scholar 

  12. de la Tour, T.B.: Minimizing the number of clauses by renaming. In: Stickel, M.E. (ed.) CADE-10 1990. LNCS (LNAI), vol. 449, pp. 558–572. Springer, Heidelberg (1990)

    Google Scholar 

  13. de Moura, L.M., Bjørner, N.: Efficient E-matching for SMT solvers. In: Pfenning, F. (ed.) CADE 2007. LNCS, vol. 4603, pp. 183–198. Springer, Heidelberg (2007)

    Chapter  Google Scholar 

  14. Delahaye, D., Mayero, M.: Field: une procédure de décision pour les nombres réels en Coq. In: JFLA, Pontarlier (France), INRIA, Janvier (2001)

    Google Scholar 

  15. Detlefs, D., Nelson, G., Saxe, J.B.: Simplify: a theorem prover for program checking. J. ACM 52(3), 365–473 (2005)

    Article  MathSciNet  MATH  Google Scholar 

  16. Dyckhoff, R.: Contraction-free sequent calculi for intuitionistic logic. J. Symb. Log. 57(3), 795–807 (1992)

    Article  MathSciNet  MATH  Google Scholar 

  17. Dyckhoff, R.: Some benchmark formulae for intuitionistic propositional logic (1997)

    Google Scholar 

  18. 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)

    Chapter  Google Scholar 

  19. Filliâtre, J.-C., Conchon, S.: Type-safe modular hash-consing. In: Kennedy, A., Pottier, F. (eds.) ML, pp. 12–19. ACM, New York (2006)

    Chapter  Google Scholar 

  20. 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)

    Chapter  Google Scholar 

  21. Lescuyer, S., Conchon, S.: A Reflexive Formalization of a SAT Solver in Coq. In: TPHOLS 2008 Emerging Trends (2008)

    Google Scholar 

  22. Meng, J., Quigley, C., Paulson, L.C.: Automation for interactive proof: first prototype. Inf. Comput. 204(10), 1575–1596 (2006)

    Article  MathSciNet  MATH  Google Scholar 

  23. Moskewicz, M.W., Madigan, C.F., Zhao, Y., Zhang, L., Malik, S.: Chaff: engineering an efficient sat solver. In: DAC 2001, pp. 530–535. ACM Press, New York (2001)

    Google Scholar 

  24. Nonnengart, A., Rock, G., Weidenbach, C.: On generating small clause normal forms. In: Kirchner, C., Kirchner, H. (eds.) CADE 1998. LNCS, vol. 1421, pp. 397–411. Springer, Heidelberg (1998)

    Chapter  Google Scholar 

  25. Plaisted, D.A., Greenbaum, S.: A structure-preserving clause form translation. J. Symb. Comput. 2(3), 293–304 (1986)

    Article  MathSciNet  MATH  Google Scholar 

  26. Pugh, W.: The omega test: a fast and practical integer programming algorithm for dependence analysis. Communications of the ACM 8, 4–13 (1992)

    Google Scholar 

  27. Tseitin, G.S.: On the complexity of derivations in the propositional calculus, Part II. Studies in Mathematics and Mathematical Logic, pp. 115–125 (1968)

    Google Scholar 

  28. Weber, T., Amjad, H.: Efficiently Checking Propositional Refutations in HOL Theorem Provers. Journal of Applied Logic 7, 26–40 (2009)

    Article  MathSciNet  MATH  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2009 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Lescuyer, S., Conchon, S. (2009). Improving Coq Propositional Reasoning Using a Lazy CNF Conversion Scheme. In: Ghilardi, S., Sebastiani, R. (eds) Frontiers of Combining Systems. FroCoS 2009. Lecture Notes in Computer Science(), vol 5749. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-04222-5_18

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-04222-5_18

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-04221-8

  • Online ISBN: 978-3-642-04222-5

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics