3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-29 11:55:51 +00:00

port grobner

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
This commit is contained in:
Lev Nachmanson 2019-09-06 16:59:01 -07:00
parent 36380463d7
commit d0d7813b9b
2 changed files with 76 additions and 25 deletions

View file

@ -24,15 +24,32 @@
namespace nla {
class core;
enum class var_weight {
FIXED = 0,
QUOTED_FIXED = 1,
BOUNDED = 2,
QUOTED_BOUNDED = 3,
NOT_FREE = 4,
QUOTED_NOT_FREE = 5,
FREE = 6,
QUOTED_FREE = 7,
MAX_DEFAULT_WEIGHT = 7
};
class nla_grobner : common {
lp::int_set m_rows;
lp::int_set m_active_vars;
lp::int_set m_rows;
lp::int_set m_active_vars;
svector<var_weight> m_active_vars_weights;
public:
nla_grobner(core *core);
void grobner_lemmas();
private:
void find_rows();
void find_nl_cluster();
void prepare_rows_and_active_vars();
void add_var_and_its_factors_to_q_and_collect_new_rows(lpvar j, std::queue<lpvar>& q);
void display(std::ostream&);
void set_active_vars_weights();
void init();
var_weight get_var_weight(lpvar) const;
}; // end of grobner
}