[proof-new] Fixing resolution proof checker (#5262)
authorHaniel Barbosa <hanielbbarbosa@gmail.com>
Mon, 19 Oct 2020 18:46:11 +0000 (15:46 -0300)
committerGitHub <noreply@github.com>
Mon, 19 Oct 2020 18:46:11 +0000 (15:46 -0300)
commit17460f0a16b68092d976fc7a8e145db6ee0c244b
tree3b5b3b735af806f8a3314146323ddd43e8c8d50c
parent3bfdead7da2143fd801fa632165a986b2631ad3d
[proof-new] Fixing resolution proof checker (#5262)

Previously the binary resolution checker was:

- Checking applications in which for a pivot (not l) the literal (not l) would be eliminated from the first clause and l from the second because double negation was handled implicitly. Now whether the binary resolution is such that the pivot is removed as is from the first clause and negated from the second, or the other way around, is marked via an argument.
- Not producing false the remaining set of literals after resolution was empty.

This commit also updates the informal description of the rule accordingly, as well as to clarify the behavior when the pivot does not occur properly in the clauses (in which case the rule application corresponds to weakening).

Co-authored-by: Gereon Kremer <gereon.kremer@cs.rwth-aachen.de>
src/expr/proof_rule.h
src/prop/proof_cnf_stream.cpp
src/theory/booleans/proof_checker.cpp