3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-10-09 09:21:56 +00:00

remove erase_from_Q

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
This commit is contained in:
Lev Nachmanson 2025-09-06 10:07:10 -10:00
parent 9f72a95e9e
commit 1e42f3f5a0

View file

@ -363,10 +363,6 @@ namespace nlsat {
m_Q[pr.level].push(pr); m_Q[pr.level].push(pr);
} }
void erase_from_Q(const property& p) {
// should be nop
}
// construct_interval: compute representation for level i and apply post rules. // construct_interval: compute representation for level i and apply post rules.
// Returns true on failure. // Returns true on failure.
// works on m_level // works on m_level
@ -455,7 +451,6 @@ namespace nlsat {
add_ord_inv_discriminant_for(p); add_ord_inv_discriminant_for(p);
if (m_fail) return; if (m_fail) return;
add_sgn_inv_leading_coeff_for(p); add_sgn_inv_leading_coeff_for(p);
erase_from_Q(p);
} }
// Pre-processing for connected(i) (Rule 4.11) // Pre-processing for connected(i) (Rule 4.11)
@ -465,7 +460,6 @@ namespace nlsat {
// further; just remove the property from Q and return. // further; just remove the property from Q and return.
if (p.level == 0) { if (p.level == 0) {
TRACE(levelwise, tout << "apply_pre_connected: level 0 -> erasing connected property and returning" << std::endl;); TRACE(levelwise, tout << "apply_pre_connected: level 0 -> erasing connected property and returning" << std::endl;);
erase_from_Q(p);
return; return;
} }
@ -476,13 +470,11 @@ namespace nlsat {
add_to_Q_if_new(property(prop_enum::connected, m_pm, /*level*/ p.level - 1)); add_to_Q_if_new(property(prop_enum::connected, m_pm, /*level*/ p.level - 1));
add_to_Q_if_new(property(prop_enum::repr, m_pm, /*level*/ p.level - 1)); add_to_Q_if_new(property(prop_enum::repr, m_pm, /*level*/ p.level - 1));
if (!has_repr) { if (!has_repr) {
erase_from_Q(p);
return; // no change since the cell representation is not available return; // no change since the cell representation is not available
} }
NOT_IMPLEMENTED_YET(); NOT_IMPLEMENTED_YET();
// todo!!!! add missing preconditions // todo!!!! add missing preconditions
// connected property has been processed // connected property has been processed
erase_from_Q(p);
} }
void apply_pre_non_null(const property& p) { void apply_pre_non_null(const property& p) {
@ -513,7 +505,6 @@ namespace nlsat {
bool try_non_null_via_coeffs(const property& p) { bool try_non_null_via_coeffs(const property& p) {
if (have_non_zero_const(p.poly, p.level)) { if (have_non_zero_const(p.poly, p.level)) {
TRACE(levelwise, tout << "have a non-zero const coefficient\n";); TRACE(levelwise, tout << "have a non-zero const coefficient\n";);
erase_from_Q(p);
return true; return true;
} }
@ -538,7 +529,6 @@ namespace nlsat {
f = factors[i]; f = factors[i];
add_to_Q_if_new(property(prop_enum::sgn_inv_reducible, f, m_pm)); add_to_Q_if_new(property(prop_enum::sgn_inv_reducible, f, m_pm));
} }
erase_from_Q(p);
return true; return true;
} }
return false; return false;
@ -584,7 +574,6 @@ namespace nlsat {
} }
// non_null is established by the discriminant being non-zero at the sample // non_null is established by the discriminant being non-zero at the sample
erase_from_Q(p);
} }
// an_sub(R) iff R is an analitcal manifold // an_sub(R) iff R is an analitcal manifold
@ -595,7 +584,6 @@ namespace nlsat {
add_to_Q_if_new(property(prop_enum::an_sub, m_pm, p.level -1)) ; add_to_Q_if_new(property(prop_enum::an_sub, m_pm, p.level -1)) ;
} }
// if p.level == 0 then an_sub holds - bcs an empty set is an analytical submanifold // if p.level == 0 then an_sub holds - bcs an empty set is an analytical submanifold
erase_from_Q(p);
} }
/* /*
@ -622,7 +610,6 @@ or
NOT_IMPLEMENTED_YET(); NOT_IMPLEMENTED_YET();
} }
} }
erase_from_Q(p);
} }
void apply_pre(const property& p, bool has_repr) { void apply_pre(const property& p, bool has_repr) {