mirror of
https://github.com/Z3Prover/z3
synced 2025-04-30 12:25:51 +00:00
add module for handling axioms for powers
This commit is contained in:
parent
9e2ec9d018
commit
e41dd91893
7 changed files with 343 additions and 201 deletions
|
@ -29,6 +29,7 @@ core::core(lp::lar_solver& s, reslimit & lim) :
|
|||
m_basics(this),
|
||||
m_order(this),
|
||||
m_monotone(this),
|
||||
m_powers(*this),
|
||||
m_intervals(this, lim),
|
||||
m_monomial_bounds(this),
|
||||
m_horner(this),
|
||||
|
@ -120,9 +121,8 @@ bool core::canonize_sign(const monic& m) const {
|
|||
|
||||
bool core::canonize_sign(const factorization& f) const {
|
||||
bool r = false;
|
||||
for (const factor & a : f) {
|
||||
for (const factor & a : f)
|
||||
r ^= canonize_sign(a);
|
||||
}
|
||||
return r;
|
||||
}
|
||||
|
||||
|
@ -1477,6 +1477,10 @@ void core::check_weighted(unsigned sz, std::pair<unsigned, std::function<void(vo
|
|||
}
|
||||
}
|
||||
|
||||
lbool core::check_power(lpvar r, lpvar x, lpvar y, vector<lemma>& l_vec) {
|
||||
m_lemma_vec = &l_vec;
|
||||
return m_powers.check(r, x, y, l_vec);
|
||||
}
|
||||
|
||||
lbool core::check(vector<lemma>& l_vec) {
|
||||
lp_settings().stats().m_nla_calls++;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue