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

add optional feature to bound search within ranges

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2020-06-14 21:34:54 -07:00
parent 180fb3abf6
commit 395a304262
5 changed files with 129 additions and 6 deletions

View file

@ -75,6 +75,7 @@ def_module_params(module_name='smt',
('arith.auto_config_simplex', BOOL, False, 'force simplex solver in auto_config'),
('arith.rep_freq', UINT, 0, 'the report frequency, in how many iterations print the cost and other info'),
('arith.min', BOOL, False, 'minimize cost'),
('arith.bounded_expansion', BOOL, False, 'box variables used in branch and bound into bound assumptions'),
('arith.print_stats', BOOL, False, 'print statistic'),
('arith.simplex_strategy', UINT, 0, 'simplex strategy for the solver'),
('arith.enable_hnf', BOOL, True, 'enable hnf (Hermite Normal Form) cuts'),

View file

@ -38,6 +38,7 @@ void theory_arith_params::updt_params(params_ref const & _p) {
m_arith_reflect = p.arith_reflect();
m_arith_eager_eq_axioms = p.arith_eager_eq_axioms();
m_arith_auto_config_simplex = p.arith_auto_config_simplex();
m_arith_bounded_expansion = p.arith_bounded_expansion();
arith_rewriter_params ap(_p);
m_arith_eq2ineq = ap.eq2ineq();
@ -78,6 +79,7 @@ void theory_arith_params::display(std::ostream & out) const {
DISPLAY_PARAM(m_arith_adaptive_gcd);
DISPLAY_PARAM(m_arith_propagation_threshold);
DISPLAY_PARAM(m_arith_pivot_strategy);
DISPLAY_PARAM(m_arith_bounded_expansion);
DISPLAY_PARAM(m_arith_add_binary_bounds);
DISPLAY_PARAM(m_arith_propagation_strategy);
DISPLAY_PARAM(m_arith_eq_bounds);

View file

@ -82,6 +82,8 @@ struct theory_arith_params {
bool m_arith_adaptive_gcd;
unsigned m_arith_propagation_threshold;
bool m_arith_bounded_expansion;
arith_pivot_strategy m_arith_pivot_strategy;
// used in diff-logic
@ -139,6 +141,7 @@ struct theory_arith_params {
m_arith_eager_gcd(false),
m_arith_adaptive_gcd(false),
m_arith_propagation_threshold(UINT_MAX),
m_arith_bounded_expansion(false),
m_arith_pivot_strategy(ARITH_PIVOT_SMALLEST),
m_arith_add_binary_bounds(false),
m_arith_propagation_strategy(ARITH_PROP_PROPORTIONAL),