3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-28 19:35:50 +00:00

Nikolaj implemented lm_lt on dd::pdd

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
This commit is contained in:
Lev Nachmanson 2020-01-09 09:57:19 -08:00
parent d1e9998332
commit d6a246777a
5 changed files with 224 additions and 92 deletions

View file

@ -290,7 +290,12 @@ namespace dd {
// create an spoly r if leading monomials of a and b overlap
bool try_spoly(pdd const& a, pdd const& b, pdd& r);
bool lt(pdd const& a, pdd const& b);
// simple lexicographic comparison
bool lex_lt(pdd const& a, pdd const& b);
// more elaborate comparison based on leading monomials
bool lm_lt(pdd const& a, pdd const& b);
bool different_leading_term(pdd const& a, pdd const& b);
double tree_size(pdd const& p);
unsigned num_vars() const { return m_var2pdd.size(); }
@ -352,9 +357,6 @@ namespace dd {
std::ostream& display(std::ostream& out) const { return m.display(out, *this); }
bool operator==(pdd const& other) const { return root == other.root; }
bool operator!=(pdd const& other) const { return root != other.root; }
bool operator<(pdd const& other) const { return m.lt(*this, other); }
unsigned dag_size() const { return m.dag_size(*this); }
double tree_size() const { return m.tree_size(*this); }