summaryrefslogtreecommitdiff
path: root/src/prop
diff options
context:
space:
mode:
authorHaniel Barbosa <hanielbbarbosa@gmail.com>2021-07-13 15:38:23 -0300
committerGitHub <noreply@github.com>2021-07-13 13:38:23 -0500
commit912be5c60f194c3b0d52c1d06a1339fb6cb13a9c (patch)
treed82fa967ecf45342133369c8641aac02ca633016 /src/prop
parent36d01a7fd74c6dff52bf9dcba490ff7ded29ad5d (diff)
[rewriter] Add rewrite to order IFF (equality for Booleans) (#6872)
Not doing this rewrite for Booleans is probably an artifact of the old IFF kind being removed. This rewrite is important to simplify the generation of proofs for the SAT solver, as clarified in the new comment in the SAT proof manager.
Diffstat (limited to 'src/prop')
-rw-r--r--src/prop/sat_proof_manager.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/prop/sat_proof_manager.cpp b/src/prop/sat_proof_manager.cpp
index 5bec41e2b..0f8ad8e69 100644
--- a/src/prop/sat_proof_manager.cpp
+++ b/src/prop/sat_proof_manager.cpp
@@ -336,6 +336,10 @@ void SatProofManager::explainLit(SatLiteral lit,
Trace("sat-proof") << push << "SatProofManager::explainLit: Lit: " << lit;
Node litNode = getClauseNode(lit);
Trace("sat-proof") << " [" << litNode << "]\n";
+ // Note that if we had two literals for (= a b) and (= b a) and we had already
+ // a proof for (= a b) this test would return true for (= b a), which could
+ // lead to open proof. However we should never have two literals like this in
+ // the SAT solver since they'd be rewritten to the same one
if (d_resChainPg.hasProofFor(litNode))
{
Trace("sat-proof") << "SatProofManager::explainLit: already justified "
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback