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.
Access provided by Autonomous University of Puebla. Download to read the full chapter text
Chapter PDF
Similar content being viewed by others
Keywords
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.
References
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.
Bacchus, F., Chen, X., Beek, P., Walsh, T.: Binary vs. non-binary constraints. Artificial Intelligence 140(1-2), 1–37 (2002)
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)
Bardin, S., Herrmann, P.: Osmose: Automatic structural testing of executables. Software Testing, Verification and Reliability (STVR) 21(1), 29–54 (2011)
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)
Bessiere, C.: Constraint propagation. In: Handbook of Constraint Programming, ch. 3. Elsevier (2006)
Besson, F., Cornilleau, P.-E., Pichardie, D.: Modular smt proofs for fast reflexive checking inside coq. In: Jouannaud, Shao (eds.) [16]
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]
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)
Bessiere, R.Y.C., Régin, J.-C., Zhang, Y.: An optimal coarse-grained arc consistency algorithm. Artificial Intelligence, pp. 165–185 (2005)
Collavizza, H., Rueher, M., Van Hentenryck, P.: Cpbpv: A constraint-programming framework for bounded program verification. Constraints Journal 15(2), 238–264 (2010)
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)
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)
Van Hentenryck, P., Saraswat, V., Deville, Y.: Design, implementation, and evaluation of the constraint language cc(fd). JLP 37, 139–164 (1998)
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)
Jouannaud, J.-P., Shao, Z. (eds.): CPP 2011. LNCS, vol. 7086. Springer, Heidelberg (2011)
Leroy, X.: Formal verification of a realistic compiler. Communications of the ACM 52(7), 107–115 (2009)
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)
Mackworth, A.: Consistency in networks of relations. Art. Intel. 8(1), 99–118 (1977)
McLaughlin, S., Barrett, C., Ge, Y.: Cooperating theorem provers: A case study combining hol-light and cvc lite. ENTCS, vol. 144(2) (January 2006)
Necula, G.C.: Proof-carrying code. In: POPL 1997, pp. 106–119 (1997)
Necula, G.C., Lee, P.: The design and implementation of a certifying compiler. In: PLDI 1998, pp. 333–344 (1998)
Rushby, J.: Verified software: Theories, tools, experiments. In: Automated Test Generation and Verified Software, pp. 161–172. Springer (2008)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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)