A Multi-Stage Proof Logging Framework to Certify the Correctness of CP Solvers

Conference Paper (2024)
Author(s)

M.L. Flippo (TU Delft - Algorithmics)

K. Sidorov (TU Delft - Algorithmics)

I.C.W.M. Marijnissen (TU Delft - Algorithmics)

J. Smits (TU Delft - Web Information Systems)

Emir Demirovic (TU Delft - Algorithmics)

Research Group
Algorithmics
DOI related publication
https://doi.org/10.4230/LIPIcs.CP.2024.11
More Info
expand_more
Publication Year
2024
Language
English
Research Group
Algorithmics
ISBN (electronic)
9783959773362
Reuse Rights

Other than for strictly personal use, it is not permitted to download, forward or distribute the text or part of it, without the consent of the author(s) and/or copyright holder(s), unless the work is under an open content license such as Creative Commons.

Abstract

Proof logging is used to increase trust in the optimality and unsatisfiability claims of solvers. However, to this date, no constraint programming solver can practically produce proofs without significantly impacting performance, which hinders mainstream adoption. We address this issue by introducing a novel proof generation framework, together with a CP proof format and proof checker. Our approach is to divide the proof generation into three steps. At runtime, we require the CP solver to only produce a proof sketch, which we call a scaffold. After the solving is done, our proof processor trims and expands the scaffold into a full CP proof, which is subsequently verified. Our framework is agnostic to the solver and the verification approach. Through MiniZinc benchmarks, we demonstrate that with our framework, the overhead of logging during solving is often less than 10%, significantly lower than other approaches, and that our proof processing step can reduce the overall size of the proof by orders of magnitude and by extension the proof checking time. Our results demonstrate that proof logging has the potential to become an integral part of the CP community.