this update integrates inferences to smt.arith.solver=6 related to grobner basis computation and handling of div/mod axioms to reconcile performance with smt.arith.solver=2.
The default of smt.arth.nl.grobner_subs_fixed is changed to 1 to make comparison with solver=2 more direct.
The selection of cluster equalities for solver=6 was reconciled with how it is done for solver=2.
* remove the bound on total iterations in simplex
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
* remove unncesseray checks in get_freedom_interval_for_column()
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
* fix the build of test-z3
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
* Revert "remove unncesseray checks in get_freedom_interval_for_column()"
This reverts commit 6770ed85e3.
* optimize get_freedom_interval_for_column() for feasible case
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
* add function lar_solver::status_feasible
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
* rename status_is_feasible() to is_feasible()
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
* fix the linux build
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
there are some different sources for the performance regression illustrated by the example. The mitigations will be enabled separately:
- m_bv_to_propagate is too expensive
- lp_bound_propagator misses equalities in two different ways:
- it resets row checks after backtracking even though they could still propagate
- it misses equalities for fixed rows when the fixed constant value does not correspond to a fixed variable.
FYI @levnach
* avoid creating rows with all but one fixed columns
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
* pb
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
* once in a while flip bounds of boxed variables during move_nbasic_to_bounds
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
* flip rarely
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
* flip rarely
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
* flip rarely
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
* return an empty model when lar_solver is not ready
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
* randomly change bounded base var on demand only
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
* randomly change bounded base var on demand only
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
* remove inheritance from bound propagation
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
* less inheritance
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
* less inheritance
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
* fix the build
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>