mirror of
https://github.com/Z3Prover/z3
synced 2025-04-29 03:45:51 +00:00
arrays (#4684)
* arrays Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * arrays Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * na Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * arrays Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * na Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * fill Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * update drat and fix euf bugs Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * na Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * na Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * na Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * const qualifiers Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * na Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * reorg ba Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * reorg Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * build warnings Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
d56dd1db7b
commit
796e2fd9eb
79 changed files with 2571 additions and 1850 deletions
|
@ -32,7 +32,7 @@ void dyn_ack_params::updt_params(params_ref const & _p) {
|
|||
#define DISPLAY_PARAM(X) out << #X"=" << X << std::endl;
|
||||
|
||||
void dyn_ack_params::display(std::ostream & out) const {
|
||||
DISPLAY_PARAM(m_dack);
|
||||
DISPLAY_PARAM((unsigned)m_dack);
|
||||
DISPLAY_PARAM(m_dack_eq);
|
||||
DISPLAY_PARAM(m_dack_factor);
|
||||
DISPLAY_PARAM(m_dack_threshold);
|
||||
|
|
|
@ -20,7 +20,7 @@ Revision History:
|
|||
|
||||
#include "util/params.h"
|
||||
|
||||
enum dyn_ack_strategy {
|
||||
enum class dyn_ack_strategy {
|
||||
DACK_DISABLED,
|
||||
DACK_ROOT, // congruence is the root of the conflict
|
||||
DACK_CR // congruence used during conflict resolution
|
||||
|
@ -36,7 +36,7 @@ struct dyn_ack_params {
|
|||
|
||||
public:
|
||||
dyn_ack_params(params_ref const & p = params_ref()) :
|
||||
m_dack(DACK_ROOT),
|
||||
m_dack(dyn_ack_strategy::DACK_ROOT),
|
||||
m_dack_eq(false),
|
||||
m_dack_factor(0.1),
|
||||
m_dack_threshold(10),
|
||||
|
|
|
@ -250,8 +250,8 @@ struct smt_params : public preprocessor_params,
|
|||
m_random_var_freq(0.01),
|
||||
m_inv_decay(1.052),
|
||||
m_clause_decay(1),
|
||||
m_random_initial_activity(IA_RANDOM_WHEN_SEARCHING),
|
||||
m_phase_selection(PS_CACHING_CONSERVATIVE),
|
||||
m_random_initial_activity(initial_activity::IA_RANDOM_WHEN_SEARCHING),
|
||||
m_phase_selection(phase_selection::PS_CACHING_CONSERVATIVE),
|
||||
m_phase_caching_on(700),
|
||||
m_phase_caching_off(100),
|
||||
m_minimize_lemmas(true),
|
||||
|
@ -267,7 +267,7 @@ struct smt_params : public preprocessor_params,
|
|||
m_ematching(true),
|
||||
m_induction(false),
|
||||
m_clause_proof(false),
|
||||
m_case_split_strategy(CS_ACTIVITY_DELAY_NEW),
|
||||
m_case_split_strategy(case_split_strategy::CS_ACTIVITY_DELAY_NEW),
|
||||
m_rel_case_split_order(0),
|
||||
m_lookahead_diseq(false),
|
||||
m_theory_case_split(false),
|
||||
|
@ -275,13 +275,13 @@ struct smt_params : public preprocessor_params,
|
|||
m_delay_units(false),
|
||||
m_delay_units_threshold(32),
|
||||
m_theory_resolve(false),
|
||||
m_restart_strategy(RS_IN_OUT_GEOMETRIC),
|
||||
m_restart_strategy(restart_strategy::RS_IN_OUT_GEOMETRIC),
|
||||
m_restart_initial(100),
|
||||
m_restart_factor(1.1),
|
||||
m_restart_adaptive(true),
|
||||
m_agility_factor(0.9999),
|
||||
m_restart_agility_threshold(0.18),
|
||||
m_lemma_gc_strategy(LGC_FIXED),
|
||||
m_lemma_gc_strategy(lemma_gc_strategy::LGC_FIXED),
|
||||
m_lemma_gc_half(false),
|
||||
m_recent_lemmas_size(100),
|
||||
m_lemma_gc_initial(5000),
|
||||
|
|
|
@ -50,11 +50,11 @@ void theory_arith_params::updt_params(params_ref const & _p) {
|
|||
void theory_arith_params::display(std::ostream & out) const {
|
||||
DISPLAY_PARAM(m_arith_eq2ineq);
|
||||
DISPLAY_PARAM(m_arith_process_all_eqs);
|
||||
DISPLAY_PARAM(m_arith_mode);
|
||||
DISPLAY_PARAM((unsigned)m_arith_mode);
|
||||
DISPLAY_PARAM(m_arith_auto_config_simplex); //!< force simplex solver in auto_config
|
||||
DISPLAY_PARAM(m_arith_blands_rule_threshold);
|
||||
DISPLAY_PARAM(m_arith_propagate_eqs);
|
||||
DISPLAY_PARAM(m_arith_bound_prop);
|
||||
DISPLAY_PARAM((unsigned)m_arith_bound_prop);
|
||||
DISPLAY_PARAM(m_arith_stronger_lemmas);
|
||||
DISPLAY_PARAM(m_arith_skip_rows_with_big_coeffs);
|
||||
DISPLAY_PARAM(m_arith_max_lemma_size);
|
||||
|
@ -81,7 +81,7 @@ void theory_arith_params::display(std::ostream & out) const {
|
|||
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((unsigned)m_arith_propagation_strategy);
|
||||
DISPLAY_PARAM(m_arith_eq_bounds);
|
||||
DISPLAY_PARAM(m_arith_lazy_adapter);
|
||||
DISPLAY_PARAM(m_arith_fixnum);
|
||||
|
|
|
@ -21,7 +21,7 @@ Revision History:
|
|||
#include<climits>
|
||||
#include "util/params.h"
|
||||
|
||||
enum arith_solver_id {
|
||||
enum class arith_solver_id {
|
||||
AS_NO_ARITH, // 0
|
||||
AS_DIFF_LOGIC, // 1
|
||||
AS_OLD_ARITH, // 2
|
||||
|
@ -31,13 +31,13 @@ enum arith_solver_id {
|
|||
AS_NEW_ARITH // 6
|
||||
};
|
||||
|
||||
enum bound_prop_mode {
|
||||
enum class bound_prop_mode {
|
||||
BP_NONE,
|
||||
BP_SIMPLE, // only used for implying literals
|
||||
BP_REFINE // adds new literals, but only refines finite bounds
|
||||
};
|
||||
|
||||
enum arith_prop_strategy {
|
||||
enum class arith_prop_strategy {
|
||||
ARITH_PROP_AGILITY,
|
||||
ARITH_PROP_PROPORTIONAL
|
||||
};
|
||||
|
@ -114,11 +114,11 @@ struct theory_arith_params {
|
|||
theory_arith_params(params_ref const & p = params_ref()):
|
||||
m_arith_eq2ineq(false),
|
||||
m_arith_process_all_eqs(false),
|
||||
m_arith_mode(AS_NEW_ARITH),
|
||||
m_arith_mode(arith_solver_id::AS_NEW_ARITH),
|
||||
m_arith_auto_config_simplex(false),
|
||||
m_arith_blands_rule_threshold(1000),
|
||||
m_arith_propagate_eqs(true),
|
||||
m_arith_bound_prop(BP_REFINE),
|
||||
m_arith_bound_prop(bound_prop_mode::BP_REFINE),
|
||||
m_arith_stronger_lemmas(true),
|
||||
m_arith_skip_rows_with_big_coeffs(true),
|
||||
m_arith_max_lemma_size(128),
|
||||
|
@ -145,7 +145,7 @@ struct theory_arith_params {
|
|||
m_arith_bounded_expansion(false),
|
||||
m_arith_pivot_strategy(arith_pivot_strategy::ARITH_PIVOT_SMALLEST),
|
||||
m_arith_add_binary_bounds(false),
|
||||
m_arith_propagation_strategy(ARITH_PROP_PROPORTIONAL),
|
||||
m_arith_propagation_strategy(arith_prop_strategy::ARITH_PROP_PROPORTIONAL),
|
||||
m_arith_eq_bounds(false),
|
||||
m_arith_lazy_adapter(false),
|
||||
m_arith_fixnum(false),
|
||||
|
|
|
@ -44,7 +44,7 @@ struct theory_array_params {
|
|||
theory_array_params():
|
||||
m_array_canonize_simplify(false),
|
||||
m_array_simplify(true),
|
||||
m_array_mode(AR_FULL),
|
||||
m_array_mode(array_solver_id::AR_FULL),
|
||||
m_array_weak(false),
|
||||
m_array_extensional(true),
|
||||
m_array_laziness(1),
|
||||
|
|
|
@ -36,7 +36,7 @@ struct theory_bv_params {
|
|||
bool m_bv_enable_int2bv2int;
|
||||
bool m_bv_watch_diseq;
|
||||
theory_bv_params(params_ref const & p = params_ref()):
|
||||
m_bv_mode(BS_BLASTER),
|
||||
m_bv_mode(bv_solver_id::BS_BLASTER),
|
||||
m_hi_div0(false),
|
||||
m_bv_reflect(true),
|
||||
m_bv_lazy_le(false),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue