Victor Khomenko
unread,Nov 11, 2011, 5:15:29 AM11/11/11Sign in to reply to author
Sign in to forward
You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to MiniSat
Dear all,
I have the following problem: an assertion in SimpSolver::relocAll is
hit, and I'm not sure whether it's a bug in MiniSat itself or it's
because of my (rather unsavoury) use of it.
Consider the following sequence of calls:
SimpSolver::eliminate calls
Solver::simplify, which calls
Solver::removeSatisfied (which eliminates many clauses, as
the solver is used incrementally, and those clauses were deleted) and
then
Solver::checkGarbage, which decides to relocate memory and
calls (virtually)
SimpSolver::garbageCollect which calls
SimpSolver::relocAll
Now, the following assertion in SimpSolver::relocAll is hit:
assert(subsumption_queue.size() == 0);
(because some clauses were incrementally added, and
SimpSolver::addClause_ inserts things into subsumption_queue).
Note that normally this assertion is not hit as Solver::checkGarbage
might decide not to call garbageCollect.
So, is this a real bug or I'm missing something?
Thanks,
Victor.