marijnheule / drat-trim

The DRAT-trim proof checker

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Forward checking with '-S' on satisfiable formulas fails.

arminbiere opened this issue · comments

The newest version works for me again (internal regression testing with Kissat etc.) but only
for proofs. Forward checking which should be useful for debugging (and testing) of satisfiable
formulas seems to be broken. Here is a delta-debugged example.

$ cat bug.cnf
p cnf 3 3
-2 -3 0
2 -3 0
3 -1 0
$ cat bug.proof
-1 0
-3 0
$ drat-trim bug.cnf bug.proof -S
c parsing input formula with 3 variables and 3 clauses
c WARNING: 5 clauses active if proof succeeds
c [8] -1 0
c [5] -3 2 0
c [10] -3 0
c [3] -3 -2 0
c [7] -1 3 0
c finished parsing
c WARNING: RAT check on proof pivot failed : [11] -3 0
c RAT check failed on all possible pivots
c failed at proof line 5 (modulo deletion errors)

s NOT VERIFIED
c verification time: 0.055 seconds

Hello Marjin and hello Armin,

Marjin, this may be the bug I mentioned today. I'm sorry, I did not check existing issues. I mistakenly remembered our minimal example was an UNSAT example. This was wrong. We had found the following minimal example involving a pure (d)rup proof. More precisely, my college Michael Mavroskoufis found the bug. On behalf of him (and with his explicit permission) I report this here as he does not have a GitHub account, yet.

example.dimacs:

p cnf 1 1
1 0

example.proof:

1 0

Forward (d)rup-checking for SAT leads to

$ ./drat-trim example.dimacs example.proof -S -U -v
c parsing input formula with 1 variables and 1 clauses
c WARNING: 2 clauses active if proof succeeds
c [3] 1 0
c [4] 1 0
c finished parsing
c 2 active clauses
c found unit in proof 1 [5]
c 1 active clauses
c found unit in proof 1 [2]
c checking lemma (-1, 1) [2] 1 0
c 0 active clauses
c found unit in proof 1 [5]
c checking lemma (1, 1) [5] 1 0
c RUP check failed
c failed at proof line 3 (modulo deletion errors)

s NOT VERIFIED
c verification time: 0.078 seconds