mirror of
https://github.com/Z3Prover/z3
synced 2025-04-22 00:26:38 +00:00
skip unassigned variables when computing level
This commit is contained in:
parent
0a59387d05
commit
543ad2f205
1 changed files with 3 additions and 1 deletions
|
@ -750,8 +750,10 @@ namespace polysat {
|
|||
|
||||
void solver::assign_eval(sat::literal lit) {
|
||||
unsigned level = 0;
|
||||
// NOTE: constraint may be evaluated even if some variables are still unassigned (e.g., 0*x doesn't depend on x).
|
||||
for (auto v : lit2cnstr(lit)->vars())
|
||||
level = std::max(get_level(v), level);
|
||||
if (is_assigned(v))
|
||||
level = std::max(get_level(v), level);
|
||||
m_bvars.eval(lit, level);
|
||||
m_trail.push_back(trail_instr_t::assign_bool_i);
|
||||
m_search.push_boolean(lit);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue