summaryrefslogtreecommitdiff
path: root/src/proof/cnf_proof.h
diff options
context:
space:
mode:
authorAndres Noetzli <andres.noetzli@gmail.com>2019-01-14 17:02:53 -0800
committerAndres Noetzli <andres.noetzli@gmail.com>2019-01-14 17:02:53 -0800
commitc8664731adc61ab3967b74fe90ad44fb464dc556 (patch)
tree495766d37af08f4f587ed18ac224deaae5402b1b /src/proof/cnf_proof.h
parent2771dce1fe1933537f80d68966642ecf3bf95f77 (diff)
parent8d9c190ccf806460bfc336daee33ed56f151e563 (diff)
Merge remote-tracking branch 'fork/loopProcessOpts' into cav2019strings
Diffstat (limited to 'src/proof/cnf_proof.h')
-rw-r--r--src/proof/cnf_proof.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/proof/cnf_proof.h b/src/proof/cnf_proof.h
index 32833d9a1..78ddeebd0 100644
--- a/src/proof/cnf_proof.h
+++ b/src/proof/cnf_proof.h
@@ -78,6 +78,11 @@ protected:
ClauseIdSet d_explanations;
+ // The clause ID of the unit clause defining the true SAT literal.
+ ClauseId d_trueUnitClause;
+ // The clause ID of the unit clause defining the false SAT literal.
+ ClauseId d_falseUnitClause;
+
bool isDefinition(Node node);
Node getDefinitionForClause(ClauseId clause);
@@ -110,6 +115,14 @@ public:
// already in CNF
void registerConvertedClause(ClauseId clause, bool explanation=false);
+ // The CNF proof has a special relationship to true and false.
+ // In particular, it need to know the identity of clauses defining
+ // canonical true and false literals in the underlying SAT solver.
+ void registerTrueUnitClause(ClauseId clauseId);
+ void registerFalseUnitClause(ClauseId clauseId);
+ inline ClauseId getTrueUnitClause() { return d_trueUnitClause; };
+ inline ClauseId getFalseUnitClause() { return d_falseUnitClause; };
+
/** Clause is one of the clauses defining the node expression*/
void setClauseDefinition(ClauseId clause, Node node);
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback