3
0
Fork 0
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:
Jakob Rath 2022-01-20 17:46:23 +01:00
parent 0a59387d05
commit 543ad2f205

View file

@ -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);