mirror of
https://github.com/Z3Prover/z3
synced 2026-03-02 11:46:55 +00:00
resolution is still wrong
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
0eb0306ae2
commit
60248d0981
4 changed files with 30 additions and 26 deletions
|
|
@ -554,14 +554,14 @@ namespace polysat {
|
|||
sat::bool_var const var = lit.var();
|
||||
if (!m_conflict.is_bmarked(var))
|
||||
continue;
|
||||
if (m_bvars.level(var) <= base_level())
|
||||
continue;
|
||||
LOG("Conflict: " << m_conflict);
|
||||
if (m_bvars.is_decision(var)) {
|
||||
if (m_bvars.is_assumption(var))
|
||||
continue;
|
||||
else if (m_bvars.is_decision(var)) {
|
||||
revert_bool_decision(lit);
|
||||
return;
|
||||
}
|
||||
if (m_bvars.is_bool_propagation(var))
|
||||
else if (m_bvars.is_bool_propagation(var))
|
||||
m_conflict.resolve(lit, *m_bvars.reason(lit));
|
||||
else
|
||||
m_conflict.resolve_with_assignment(lit, m_bvars.level(lit));
|
||||
|
|
@ -600,19 +600,6 @@ namespace polysat {
|
|||
}
|
||||
m_activity_inc >>= 14;
|
||||
}
|
||||
|
||||
|
||||
#if 0
|
||||
/** Conflict resolution case where boolean literal 'lit' is on top of the stack
|
||||
* NOTE: boolean resolution should work normally even in bailout mode.
|
||||
*/
|
||||
void solver::resolve_bool(sat::literal lit) {
|
||||
SASSERT(m_bvars.is_bool_propagation(lit));
|
||||
clause const& other = *m_bvars.reason(lit);
|
||||
LOG_H3("resolve_bool: " << lit << " " << show_deref(&other));
|
||||
m_conflict.resolve(lit, *other);
|
||||
}
|
||||
#endif
|
||||
|
||||
void solver::report_unsat() {
|
||||
backjump(base_level());
|
||||
|
|
@ -782,7 +769,7 @@ namespace polysat {
|
|||
}
|
||||
|
||||
unsigned solver::level(sat::literal lit0, clause const& cl) {
|
||||
unsigned lvl = base_level();
|
||||
unsigned lvl = 0;
|
||||
for (auto lit : cl) {
|
||||
if (lit == lit0)
|
||||
continue;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue