Commit f0d44a4a by Alan Mishchenko

Proof-logging in the updated solver.

parent 09d3e1ff
...@@ -1460,6 +1460,9 @@ int sat_solver_solve(sat_solver* s, lit* begin, lit* end, ABC_INT64_T nConfLimit ...@@ -1460,6 +1460,9 @@ int sat_solver_solve(sat_solver* s, lit* begin, lit* end, ABC_INT64_T nConfLimit
{ {
veci_resize(&s->conf_final,0); veci_resize(&s->conf_final,0);
veci_push(&s->conf_final, lit_neg(p)); veci_push(&s->conf_final, lit_neg(p));
// the two lines below are a bug fix by Siert Wieringa
if (s->levels[lit_var(p)] > 0)
veci_push(&s->conf_final, p);
} }
sat_solver_canceluntil(s, 0); sat_solver_canceluntil(s, 0);
return l_False; return l_False;
......
...@@ -93,8 +93,7 @@ struct sat_solver2_t ...@@ -93,8 +93,7 @@ struct sat_solver2_t
// clauses // clauses
veci clauses; // clause memory veci clauses; // clause memory
veci* wlists; // watcher lists (for each literal) veci* wlists; // watcher lists (for each literal)
int iLearnt; // the first learnt clause int iFirstLearnt; // the first learnt clause
int iLast; // the last learnt clause
// activities // activities
#ifdef USE_FLOAT_ACTIVITY #ifdef USE_FLOAT_ACTIVITY
...@@ -113,9 +112,10 @@ struct sat_solver2_t ...@@ -113,9 +112,10 @@ struct sat_solver2_t
// internal state // internal state
varinfo * vi; // variable information varinfo * vi; // variable information
cla* reasons; lit* trail; // sequence of assignment and implications
lit* trail;
int* orderpos; // Index in variable order. int* orderpos; // Index in variable order.
cla* reasons; // reason clauses
cla* units; // unit clauses
veci tagged; // (contains: var) veci tagged; // (contains: var)
veci stack; // (contains: var) veci stack; // (contains: var)
...@@ -132,7 +132,8 @@ struct sat_solver2_t ...@@ -132,7 +132,8 @@ struct sat_solver2_t
// proof logging // proof logging
veci proof_clas; // sequence of proof clauses veci proof_clas; // sequence of proof clauses
veci proof_vars; // sequence of proof variables veci proof_vars; // sequence of proof variables
int iStartChain; // beginning of the chain int iStartChain; // temporary variable to remember beginning of the current chain in proof logging
int fLastConfId; // in proof-logging mode, the ID of the final conflict clause (conf_final)
// statistics // statistics
stats_t stats; stats_t stats;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment