3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-14 12:58:44 +00:00

cast, updated nlexplain

This commit is contained in:
Nikolaj Bjorner 2024-03-19 12:29:55 -07:00
parent 730f9ad9b7
commit 70d2263a85

View file

@ -277,6 +277,7 @@ namespace nlsat {
} }
}; };
void add_zero_assumption(polynomial_ref& p) { void add_zero_assumption(polynomial_ref& p) {
// If p is of the form p1^n1 * ... * pk^nk, // If p is of the form p1^n1 * ... * pk^nk,
// then only the factors that are zero in the current interpretation needed to be considered. // then only the factors that are zero in the current interpretation needed to be considered.
@ -312,6 +313,7 @@ namespace nlsat {
int s = m_am.compare(x_val, roots[i]); int s = m_am.compare(x_val, roots[i]);
if (s != 0) if (s != 0)
continue; continue;
TRACE("nlsat_explain", tout << "adding (zero assumption) root " << "\n");
add_root_literal(atom::ROOT_EQ, x, i + 1, p); add_root_literal(atom::ROOT_EQ, x, i + 1, p);
return; return;
} }
@ -326,7 +328,6 @@ namespace nlsat {
l.neg(); l.neg();
TRACE("nlsat_explain", tout << "adding (zero assumption) literal:\n"; display(tout, l); tout << "\n";); TRACE("nlsat_explain", tout << "adding (zero assumption) literal:\n"; display(tout, l); tout << "\n";);
add_literal(l); add_literal(l);
} }
void add_simple_assumption(atom::kind k, poly * p, bool sign = false) { void add_simple_assumption(atom::kind k, poly * p, bool sign = false) {