Skip to main content

A Certified Constraint Solver over Finite Domains

  • Conference paper

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 7436))

Abstract

Constraint programs such as those written in modern Constraint Programming languages and platforms aim at solving problems coming from optimization, scheduling, planning, etc. Recently CP programs have been used in business-critical or safety-critical areas as well, e.g., e-Commerce, air-traffic control applications, or software verification. This implies a more skeptical regard on the implementation of constraint solvers, especially when the result is that a constraint problem has no solution, i.e., unsatisfiability. For example, in software model checking, using an unsafe constraint solver may result in a dramatic wrong answer saying that a safety property is satisfied while there exist counter-examples. In this paper, we present a Coq formalisation of a constraint filtering algorithm — AC3 and one of its variant AC2001 — and a simple labeling procedure. The proof of their soundness and completeness has been completed using Coq. As a result, a formally certified constraint solver written in OCaml has been automatically extracted from the Coq specification of the filtering and labeling algorithms. The solver, yet not as efficient as specialized existing (unsafe) implementations, can be used to formally certify that a constraint system is unsatisfiable.

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. Armand, M., Faure, G., Grégoire, B., Keller, C., Théry, L., Werner, B.: A modular integration of sat/smt solvers to coq through proof witnesses. In: Jouannaud, Shao (eds.) [16], pp. 135–150.

    Google Scholar 

  2. Bacchus, F., Chen, X., Beek, P., Walsh, T.: Binary vs. non-binary constraints. Artificial Intelligence 140(1-2), 1–37 (2002)

    Article  MathSciNet  MATH  Google Scholar 

  3. Bardin, S., Gotlieb, A.: fdcc: A Combined Approach for Solving Constraints over Finite Domains and Arrays. In: Beldiceanu, N., Jussien, N., Pinson, É. (eds.) CPAIOR 2012. LNCS, vol. 7298, pp. 17–33. Springer, Heidelberg (2012)

    Chapter  Google Scholar 

  4. Bardin, S., Herrmann, P.: Osmose: Automatic structural testing of executables. Software Testing, Verification and Reliability (STVR) 21(1), 29–54 (2011)

    Article  Google Scholar 

  5. Bardin, S., Herrmann, P., Perroud, F.: An Alternative to SAT-Based Approaches for Bit-Vectors. In: Esparza, J., Majumdar, R. (eds.) TACAS 2010. LNCS, vol. 6015, pp. 84–98. Springer, Heidelberg (2010)

    Chapter  Google Scholar 

  6. Bessiere, C.: Constraint propagation. In: Handbook of Constraint Programming, ch. 3. Elsevier (2006)

    Google Scholar 

  7. Besson, F., Cornilleau, P.-E., Pichardie, D.: Modular smt proofs for fast reflexive checking inside coq. In: Jouannaud, Shao (eds.) [16]

    Google Scholar 

  8. Böhme, S., Fox, A., Sewell, T., Weber, T.: Reconstruction of z3’s bit-vector proofs in hol4 and isabelle/hol. In: Shao, Jouannaud (eds.) [16]

    Google Scholar 

  9. Carlier, M., Dubois, C., Gotlieb, A.: A First Step in the Design of a Formally Verified Constraint-Based Testing Tool: FocalTest. In: Brucker, A.D., Julliand, J. (eds.) TAP 2012. LNCS, vol. 7305, pp. 35–50. Springer, Heidelberg (2012)

    Chapter  Google Scholar 

  10. Bessiere, R.Y.C., Régin, J.-C., Zhang, Y.: An optimal coarse-grained arc consistency algorithm. Artificial Intelligence, pp. 165–185 (2005)

    Google Scholar 

  11. Collavizza, H., Rueher, M., Van Hentenryck, P.: Cpbpv: A constraint-programming framework for bounded program verification. Constraints Journal 15(2), 238–264 (2010)

    Article  MATH  Google Scholar 

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

    Chapter  Google Scholar 

  13. Godefroid, P., Klarlund, N.: Software Model Checking: Searching for Computations in the Abstract or the Concrete. In: Romijn, J.M.T., Smith, G.P., van de Pol, J. (eds.) IFM 2005. LNCS, vol. 3771, pp. 20–32. Springer, Heidelberg (2005)

    Chapter  Google Scholar 

  14. Van Hentenryck, P., Saraswat, V., Deville, Y.: Design, implementation, and evaluation of the constraint language cc(fd). JLP 37, 139–164 (1998)

    Article  MATH  Google Scholar 

  15. Holland, A., O’Sullivan, B.: Robust solutions for combinatorial auctions. In: Riedl, J., Kearns, M.J., Reiter, M.K. (eds.) ACM Conf. on Electronic Commerce (EC 2005), Vancouver, BC, Canada, pp. 183–192 (2005)

    Google Scholar 

  16. Jouannaud, J.-P., Shao, Z. (eds.): CPP 2011. LNCS, vol. 7086. Springer, Heidelberg (2011)

    MATH  Google Scholar 

  17. Leroy, X.: Formal verification of a realistic compiler. Communications of the ACM 52(7), 107–115 (2009)

    Article  Google Scholar 

  18. Lescuyer, S., Conchon, S.: A Reflexive Formalization of a SAT Solver in Coq. In: Emerging Trends of the 21st Int. Conf. on Theorem Proving in Higher Order Logics, TPHOLs (2008)

    Google Scholar 

  19. Mackworth, A.: Consistency in networks of relations. Art. Intel. 8(1), 99–118 (1977)

    Article  MathSciNet  MATH  Google Scholar 

  20. McLaughlin, S., Barrett, C., Ge, Y.: Cooperating theorem provers: A case study combining hol-light and cvc lite. ENTCS, vol. 144(2) (January 2006)

    Google Scholar 

  21. Necula, G.C.: Proof-carrying code. In: POPL 1997, pp. 106–119 (1997)

    Google Scholar 

  22. Necula, G.C., Lee, P.: The design and implementation of a certifying compiler. In: PLDI 1998, pp. 333–344 (1998)

    Google Scholar 

  23. Rushby, J.: Verified software: Theories, tools, experiments. In: Automated Test Generation and Verified Software, pp. 161–172. Springer (2008)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2012 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Carlier, M., Dubois, C., Gotlieb, A. (2012). A Certified Constraint Solver over Finite Domains. In: Giannakopoulou, D., Méry, D. (eds) FM 2012: Formal Methods. FM 2012. Lecture Notes in Computer Science, vol 7436. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-32759-9_12

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-32759-9_12

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-32758-2

  • Online ISBN: 978-3-642-32759-9

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics