mirror of
https://github.com/Z3Prover/z3
synced 2025-09-29 20:59:01 +00:00
t
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
This commit is contained in:
parent
7907e0ecaa
commit
7e45f25364
1 changed files with 36 additions and 32 deletions
|
@ -574,26 +574,30 @@ namespace nlsat {
|
|||
m_Q.erase(it);
|
||||
}
|
||||
|
||||
void apply_pre_an_del(const property& p) {
|
||||
// Extracted helper: check preconditions for an_del property; returns true if ok, false otherwise.
|
||||
bool precondition_on_an_del(const property& p) {
|
||||
if (!p.poly) {
|
||||
TRACE(levelwise, tout << "apply_pre: an_del with null poly -> fail" << std::endl;);
|
||||
|
||||
m_fail = true;
|
||||
return;
|
||||
return false;
|
||||
}
|
||||
if (p.level == static_cast<unsigned>(-1)) {
|
||||
TRACE(levelwise, tout << "apply_pre: an_del with unspecified level -> skip" << std::endl;);
|
||||
NOT_IMPLEMENTED_YET();
|
||||
return;
|
||||
return false;
|
||||
}
|
||||
|
||||
// If p is nullified on the sample for its level we must abort (Rule 4.1)
|
||||
if (coeffs_are_zeroes_on_sample(p.poly, m_pm, sample(), m_am)) {
|
||||
TRACE(levelwise, tout << "Rule 4.1: polynomial nullified at sample -> failing" << std::endl;);
|
||||
m_fail = true;
|
||||
NOT_IMPLEMENTED_YET();
|
||||
return;
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
void apply_pre_an_del(const property& p) {
|
||||
if (!precondition_on_an_del(p)) return;
|
||||
|
||||
// Pre-conditions for an_del(p) per Rule 4.1
|
||||
unsigned i = (p.level > 0) ? p.level - 1 : 0;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue