we can add to the proof of unsatisfiability the tuple
I, I
E
, s
E
, σ, µ where µ maps the clauses of E to the cor-
responding clauses in F
I
. Strictly speaking, storing µ
is not necessary to check the proof, but reduces the
complexity of the verification.
E is associated to a conflict C discovered in F
|I
E
and obtained by unwinding the usual conflict analysis
performed by a CDCL solver. If the checker does not
erase any clause, its database contains all the learnt
and original clauses used by the CDLC solver to fal-
sify C by unit propagation from I
E
, and the checker
has already proved that each learnt clause was actu-
ally implied by the formula. Therefore, to verify that
E is unsatisfiable, the checker has to find one clause
C
′
of its database that is actually falsified by I
E
and
such that the sources S(C
′
, I
E
) are equal to E. This
can be done easily by keepingd if the checker keeps
track for every learnt clause of the clauses used in
the derivation of that clause, by following the defi-
nition of the sources. Now, the checker has to ver-
ify that σ(E) ⊆ F
|I
. Since I, I
E
, s
E
, σ are recorded
in the proof, it is easy to compute E = s
E
(F
|I
E
) and
check that σ(E) is a subset of F
I
. With µ, the checker
can also recover the set O of clauses of F
I
which are
mapped to clauses of E. At this point, the checker
knows that O
|I
is unsatisfiable and, as proved in Sec-
tion 4, that F |= ¬SELECT (O, I). Therefore, it can
add ¬SELECT (O, I) to its clause database. Remem-
ber that ¬SELECT (O, I) is used as a conflict. The
clause learnt from this conflict can be checked in the
usual way.
To sum up, in order to generate and check short
proofs of unsatisfiability based on our caching sys-
tem, we have to extend the proof format with a new
declaration that records I, I
E
, s
E
, σ, µ, add a new rule
in the checker that uses this declaration to infer a new
clause ¬SELECT (O, I). This can be done in a rea-
sonable way if the solver does not delete clauses from
its database and associates to each learnt clause the
clauses used to derive that learnt clause. Implement-
ing such a checker is the subject of future work.
8 CONCLUSION
Our goal in this work was to prune as much as pos-
sible the branches of an UNSAT CDCL search tree
to reduce its size for presenting it to the end user as
an explanation of unsatisfiability. To do so, we ex-
tended the work of (Blomme et al., 2023) to include
their caching mechanism directly in a CDCL solver
and generalized it to recognize entries with assigned
literals. The experimental results show that the in-
tegrated cache provides better results than the exist-
ing post-processing approach for CDCL. The gen-
eralized caching procedure improves the results on
crafted benchmarks but does not scale on real bench-
marks. We finally discussed the relationship between
our work and the computation of small certificates of
unsatisfiability. Unfortunately, the current proof for-
mats do not support yet the features needed to benefit
from our short trees to produce short certificates, but
can be extended to support these reduced proofs.
ACKNOWLEDGEMENTS
The first author is partly funded by region “Hauts-de-
France”. This work has been supported by the project
CPER Data from the region “Hauts-de-France”.
REFERENCES
Biere, A., Heule, M., van Maaren, H., and Walsh, T., editors
(2021). Handbook of Satisfiability - Second Edition.
Blomme, A., Le Berre, D., Parrain, A., and Roussel, O.
(2023). Compressing unsat search trees with caching.
In ICAART 2023, pages 358–365. INSTICC.
Cook, S. A. (1971). The complexity of theorem-proving
procedures. In 3rd Annual ACM, pages 151–158.
Davis, M., Logemann, G., and Loveland, D. W. (1962).
A machine program for theorem-proving. Commun.
ACM, 5(7):394–397.
Davis, M. and Putnam, H. (1960). A computing procedure
for quantification theory. J. ACM, 7(3):201–215.
E
´
en, N. and S
¨
orensson, N. (2003). An extensible sat-solver.
In SAT 2003, pages 502–518.
Gocht, S. and Nordstr
¨
om, J. (2021). Certifying parity rea-
soning efficiently using pseudo-boolean proofs. In
AAAI 2021, pages 3768–3777. AAAI Press.
Haken, A. (1985). The intractability of resolution. Theor.
Comput. Sci., 39:297–308.
Ignatiev, A., Previti, A., Liffiton, M. H., and Marques-Silva,
J. (2015). Smallest MUS extraction with minimal hit-
ting set dualization. In CP 2015, pages 173–182.
Marques-Silva, J., Lynce, I., and Malik, S. (2021). Conflict-
driven clause learning SAT solvers. In Handbook of
Satisfiability - Second Edition, pages 133–182.
McCreesh, C., Prosser, P., and Trimble, J. (2020). The glas-
gow subgraph solver: Using constraint programming
to tackle hard subgraph isomorphism problem vari-
ants. In ICGT 2020, pages 316–324.
Moskewicz, M. W., Madigan, C. F., Zhao, Y., Zhang, L.,
and Malik, S. (2001). Chaff: Engineering an efficient
SAT solver. In Proc. of DAC 2001, pages 530–535.
Silva, J. P. M. and Sakallah, K. A. (1999). GRASP: A search
algorithm for propositional satisfiability. IEEE Trans.
Computers, 48(5):506–521.
Wetzler, N., Heule, M., and Jr., W. A. H. (2014). Drat-
trim: Efficient checking and trimming using expres-
sive clausal proofs. In SAT 2014, pages 422–429.
Compressing UNSAT CDCL Trees with Caching
799