mirror of
https://github.com/Z3Prover/z3
synced 2025-12-09 21:33:23 +00:00
outline for adding monomials
This commit is contained in:
parent
a6ea667776
commit
6adb234673
14 changed files with 242 additions and 140 deletions
|
|
@ -9,8 +9,16 @@ namespace nla {
|
|||
class core;
|
||||
class lar_solver;
|
||||
class mul_saturate : common {
|
||||
lp::lar_solver& lra;
|
||||
void multiply_constraint(lp::lar_base_constraint const& c, monic const& m, lpvar x);
|
||||
// source of multiplication constraint
|
||||
u_map<lp::constraint_index> m_new_mul_constraints;
|
||||
svector<std::pair<lpvar, bool>> m_var_signs;
|
||||
tracked_uint_set m_seen_vars;
|
||||
scoped_ptr<lp::lar_solver> local_solver;
|
||||
void init_solver();
|
||||
void add_multiply_constraints();
|
||||
void add_multiply_constraint(lp::constraint_index con_id, lp::lpvar mi, lpvar x);
|
||||
lbool solve(lp::explanation& ex);
|
||||
void add_lemma(lp::explanation const& ex1);
|
||||
public:
|
||||
mul_saturate(core* core);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue