mirror of
https://github.com/Z3Prover/z3
synced 2025-04-28 19:35:50 +00:00
rename monomial to monic
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
This commit is contained in:
parent
cc5a12c5c7
commit
a0bdb8135d
30 changed files with 481 additions and 479 deletions
|
@ -79,7 +79,7 @@ public:
|
|||
|
||||
class core {
|
||||
public:
|
||||
var_eqs<emonomials> m_evars;
|
||||
var_eqs<emonics> m_evars;
|
||||
lp::lar_solver& m_lar_solver;
|
||||
vector<lemma> * m_lemma_vec;
|
||||
lp::int_set m_to_refine;
|
||||
|
@ -91,7 +91,7 @@ public:
|
|||
nla_settings m_nla_settings;
|
||||
nla_grobner m_grobner;
|
||||
private:
|
||||
emonomials m_emons;
|
||||
emonics m_emons;
|
||||
svector<lpvar> m_add_buffer;
|
||||
mutable lp::int_set m_row_var_set;
|
||||
public:
|
||||
|
@ -113,8 +113,8 @@ public:
|
|||
}
|
||||
|
||||
reslimit & reslim() { return m_reslim; }
|
||||
emonomials& emons() { return m_emons; }
|
||||
const emonomials& emons() const { return m_emons; }
|
||||
emonics& emons() { return m_emons; }
|
||||
const emonics& emons() const { return m_emons; }
|
||||
// constructor
|
||||
core(lp::lar_solver& s, reslimit &);
|
||||
|
||||
|
@ -125,16 +125,16 @@ public:
|
|||
lp::lar_term subs_terms_to_columns(const lp::lar_term& t) const;
|
||||
bool ineq_holds(const ineq& n) const;
|
||||
bool lemma_holds(const lemma& l) const;
|
||||
bool is_monomial_var(lpvar j) const { return m_emons.is_monomial_var(j); }
|
||||
bool is_monic_var(lpvar j) const { return m_emons.is_monic_var(j); }
|
||||
rational val(lpvar j) const { return m_lar_solver.get_column_value_rational(j); }
|
||||
|
||||
rational val(const monomial& m) const { return m_lar_solver.get_column_value_rational(m.var()); }
|
||||
rational val(const monic& m) const { return m_lar_solver.get_column_value_rational(m.var()); }
|
||||
|
||||
bool canonize_sign_is_correct(const monomial& m) const;
|
||||
bool canonize_sign_is_correct(const monic& m) const;
|
||||
|
||||
lpvar var(monomial const& sv) const { return sv.var(); }
|
||||
lpvar var(monic const& sv) const { return sv.var(); }
|
||||
|
||||
rational val_rooted(const monomial& m) const { return m.rsign()*val(m.var()); }
|
||||
rational val_rooted(const monic& m) const { return m.rsign()*val(m.var()); }
|
||||
|
||||
rational val(const factor& f) const { return f.rat_sign() * (f.is_var()? val(f.var()) : val(m_emons[f.var()])); }
|
||||
|
||||
|
@ -161,24 +161,24 @@ public:
|
|||
|
||||
// the value of the rooted monomias is equal to the value of the m.var() variable multiplied
|
||||
// by the canonize_sign
|
||||
bool canonize_sign(const monomial& m) const;
|
||||
bool canonize_sign(const monic& m) const;
|
||||
|
||||
|
||||
void deregister_monomial_from_monomialomials (const monomial & m, unsigned i);
|
||||
void deregister_monic_from_monicomials (const monic & m, unsigned i);
|
||||
|
||||
void deregister_monomial_from_tables(const monomial & m, unsigned i);
|
||||
void deregister_monic_from_tables(const monic & m, unsigned i);
|
||||
|
||||
void add_monomial(lpvar v, unsigned sz, lpvar const* vs);
|
||||
void add_monic(lpvar v, unsigned sz, lpvar const* vs);
|
||||
void push();
|
||||
void pop(unsigned n);
|
||||
|
||||
rational mon_value_by_vars(unsigned i) const;
|
||||
rational product_value(const unsigned_vector & m) const;
|
||||
|
||||
// return true iff the monomial value is equal to the product of the values of the factors
|
||||
bool check_monomial(const monomial& m) const;
|
||||
// return true iff the monic value is equal to the product of the values of the factors
|
||||
bool check_monic(const monic& m) const;
|
||||
|
||||
void explain(const monomial& m, lp::explanation& exp) const;
|
||||
void explain(const monic& m, lp::explanation& exp) const;
|
||||
void explain(const factor& f, lp::explanation& exp) const;
|
||||
void explain(lpvar j, lp::explanation& exp) const;
|
||||
void explain_existing_lower_bound(lpvar j);
|
||||
|
@ -189,7 +189,7 @@ public:
|
|||
|
||||
std::ostream & print_ineq(const ineq & in, std::ostream & out) const;
|
||||
std::ostream & print_var(lpvar j, std::ostream & out) const;
|
||||
std::ostream & print_monomials(std::ostream & out) const;
|
||||
std::ostream & print_monics(std::ostream & out) const;
|
||||
std::ostream & print_ineqs(const lemma& l, std::ostream & out) const;
|
||||
std::ostream & print_factorization(const factorization& f, std::ostream& out) const;
|
||||
template <typename T>
|
||||
|
@ -200,27 +200,27 @@ public:
|
|||
|
||||
std::ostream & print_factor(const factor& f, std::ostream& out) const;
|
||||
std::ostream & print_factor_with_vars(const factor& f, std::ostream& out) const;
|
||||
std::ostream& print_monomial(const monomial& m, std::ostream& out) const;
|
||||
std::ostream& print_monic(const monic& m, std::ostream& out) const;
|
||||
std::ostream& print_bfc(const factorization& m, std::ostream& out) const;
|
||||
std::ostream& print_monomial_with_vars(unsigned i, std::ostream& out) const;
|
||||
std::ostream& print_monic_with_vars(unsigned i, std::ostream& out) const;
|
||||
template <typename T>
|
||||
std::ostream& print_product_with_vars(const T& m, std::ostream& out) const;
|
||||
std::ostream& print_monomial_with_vars(const monomial& m, std::ostream& out) const;
|
||||
std::ostream& print_monic_with_vars(const monic& m, std::ostream& out) const;
|
||||
std::ostream& print_explanation(const lp::explanation& exp, std::ostream& out) const;
|
||||
template <typename T>
|
||||
void trace_print_rms(const T& p, std::ostream& out);
|
||||
void trace_print_monomial_and_factorization(const monomial& rm, const factorization& f, std::ostream& out) const;
|
||||
void print_monomial_stats(const monomial& m, std::ostream& out);
|
||||
void trace_print_monic_and_factorization(const monic& rm, const factorization& f, std::ostream& out) const;
|
||||
void print_monic_stats(const monic& m, std::ostream& out);
|
||||
void print_stats(std::ostream& out);
|
||||
std::ostream& print_lemma(std::ostream& out) const;
|
||||
|
||||
void print_specific_lemma(const lemma& l, std::ostream& out) const;
|
||||
|
||||
|
||||
void trace_print_ol(const monomial& ac,
|
||||
void trace_print_ol(const monic& ac,
|
||||
const factor& a,
|
||||
const factor& c,
|
||||
const monomial& bc,
|
||||
const monic& bc,
|
||||
const factor& b,
|
||||
std::ostream& out);
|
||||
|
||||
|
@ -251,11 +251,11 @@ public:
|
|||
|
||||
llc apply_minus(llc cmp);
|
||||
|
||||
void fill_explanation_and_lemma_sign(const monomial& a, const monomial & b, rational const& sign);
|
||||
void fill_explanation_and_lemma_sign(const monic& a, const monic & b, rational const& sign);
|
||||
|
||||
svector<lpvar> reduce_monomial_to_rooted(const svector<lpvar> & vars, rational & sign) const;
|
||||
svector<lpvar> reduce_monic_to_rooted(const svector<lpvar> & vars, rational & sign) const;
|
||||
|
||||
monomial_coeff canonize_monomial(monomial const& m) const;
|
||||
monic_coeff canonize_monic(monic const& m) const;
|
||||
|
||||
lemma& current_lemma();
|
||||
const lemma& current_lemma() const;
|
||||
|
@ -274,18 +274,18 @@ public:
|
|||
|
||||
bool zero_is_an_inner_point_of_bounds(lpvar j) const;
|
||||
|
||||
int rat_sign(const monomial& m) const;
|
||||
int rat_sign(const monic& m) const;
|
||||
inline int rat_sign(lpvar j) const { return nla::rat_sign(val(j)); }
|
||||
|
||||
bool sign_contradiction(const monomial& m) const;
|
||||
bool sign_contradiction(const monic& m) const;
|
||||
|
||||
bool var_is_fixed_to_zero(lpvar j) const;
|
||||
bool var_is_fixed_to_val(lpvar j, const rational& v) const;
|
||||
|
||||
bool var_is_fixed(lpvar j) const;
|
||||
|
||||
bool find_canonical_monomial_of_vars(const svector<lpvar>& vars, lpvar & i) const;
|
||||
bool is_canonical_monomial(lpvar) const;
|
||||
bool find_canonical_monic_of_vars(const svector<lpvar>& vars, lpvar & i) const;
|
||||
bool is_canonical_monic(lpvar) const;
|
||||
bool elists_are_consistent(bool check_in_model) const;
|
||||
bool elist_is_consistent(const std::unordered_set<lpvar>&) const;
|
||||
bool var_has_positive_lower_bound(lpvar j) const;
|
||||
|
@ -337,9 +337,9 @@ public:
|
|||
template <typename T>
|
||||
bool vars_are_roots(const T& v) const;
|
||||
|
||||
void register_monomial_in_tables(unsigned i_mon);
|
||||
void register_monic_in_tables(unsigned i_mon);
|
||||
|
||||
void register_monomials_in_tables();
|
||||
void register_monics_in_tables();
|
||||
|
||||
void clear();
|
||||
|
||||
|
@ -347,7 +347,7 @@ public:
|
|||
|
||||
void init_to_refine();
|
||||
|
||||
bool divide(const monomial& bc, const factor& c, factor & b) const;
|
||||
bool divide(const monic& bc, const factor& c, factor & b) const;
|
||||
|
||||
void negate_factor_equality(const factor& c, const factor& d);
|
||||
|
||||
|
@ -355,15 +355,15 @@ public:
|
|||
|
||||
std::unordered_set<lpvar> collect_vars(const lemma& l) const;
|
||||
|
||||
bool rm_check(const monomial&) const;
|
||||
bool rm_check(const monic&) const;
|
||||
std::unordered_map<unsigned, unsigned_vector> get_rm_by_arity();
|
||||
|
||||
void add_abs_bound(lpvar v, llc cmp);
|
||||
void add_abs_bound(lpvar v, llc cmp, rational const& bound);
|
||||
|
||||
bool find_bfc_to_refine_on_monomial(const monomial&, factorization & bf);
|
||||
bool find_bfc_to_refine_on_monic(const monic&, factorization & bf);
|
||||
|
||||
bool find_bfc_to_refine(const monomial* & m, factorization& bf);
|
||||
bool find_bfc_to_refine(const monic* & m, factorization& bf);
|
||||
|
||||
void negate_relation(unsigned j, const rational& a);
|
||||
bool conflict_found() const;
|
||||
|
@ -381,18 +381,18 @@ public:
|
|||
|
||||
struct pp_mon {
|
||||
core const& c;
|
||||
monomial const& m;
|
||||
pp_mon(core const& c, monomial const& m): c(c), m(m) {}
|
||||
monic const& m;
|
||||
pp_mon(core const& c, monic const& m): c(c), m(m) {}
|
||||
pp_mon(core const& c, lpvar v): c(c), m(c.emons()[v]) {}
|
||||
};
|
||||
struct pp_mon_with_vars {
|
||||
core const& c;
|
||||
monomial const& m;
|
||||
pp_mon_with_vars(core const& c, monomial const& m): c(c), m(m) {}
|
||||
monic const& m;
|
||||
pp_mon_with_vars(core const& c, monic const& m): c(c), m(m) {}
|
||||
pp_mon_with_vars(core const& c, lpvar v): c(c), m(c.emons()[v]) {}
|
||||
};
|
||||
inline std::ostream& operator<<(std::ostream& out, pp_mon const& p) { return p.c.print_monomial(p.m, out); }
|
||||
inline std::ostream& operator<<(std::ostream& out, pp_mon_with_vars const& p) { return p.c.print_monomial_with_vars(p.m, out); }
|
||||
inline std::ostream& operator<<(std::ostream& out, pp_mon const& p) { return p.c.print_monic(p.m, out); }
|
||||
inline std::ostream& operator<<(std::ostream& out, pp_mon_with_vars const& p) { return p.c.print_monic_with_vars(p.m, out); }
|
||||
|
||||
struct pp_fac {
|
||||
core const& c;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue