3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-25 01:55:32 +00:00

Merge branch 'master' into polysat

This commit is contained in:
Jakob Rath 2023-02-01 16:28:57 +01:00
commit 20b5455d08
669 changed files with 26145 additions and 20652 deletions

View file

@ -16,6 +16,7 @@ z3_add_component(params
rewriter_params.pyg
seq_rewriter_params.pyg
solver_params.pyg
tactic_params.pyg
EXTRA_REGISTER_MODULE_HEADERS
context_params.h
)

View file

@ -33,8 +33,8 @@ struct bit_blaster_params {
#endif
void display(std::ostream & out) const {
out << "m_bb_ext_gates=" << m_bb_ext_gates << std::endl;
out << "m_bb_quantifiers=" << m_bb_quantifiers << std::endl;
out << "m_bb_ext_gates=" << m_bb_ext_gates << '\n';
out << "m_bb_quantifiers=" << m_bb_quantifiers << '\n';
}
};

View file

@ -1,8 +1,9 @@
def_module_params(module_name='rewriter',
class_name='bool_rewriter_params',
export=True,
params=(("ite_extra_rules", BOOL, False, "extra ite simplifications, these additional simplifications may reduce size locally but increase globally"),
("flat", BOOL, True, "create nary applications for and,or,+,*,bvadd,bvmul,bvand,bvor,bvxor"),
params=(("ite_extra_rules", BOOL, True, "extra ite simplifications, these additional simplifications may reduce size locally but increase globally"),
("flat", BOOL, True, "create nary applications for +,*,bvadd,bvmul,bvand,bvor,bvxor"),
("flat_and_or", BOOL, True, "create nary applications for and,or"),
("elim_and", BOOL, False, "conjunctions are rewritten using negation and disjunctions"),
('elim_ite', BOOL, True, "eliminate ite in favor of and/or"),
("local_ctx", BOOL, False, "perform local (i.e., cheap) context simplifications"),

View file

@ -109,6 +109,7 @@ void context_params::set(char const * param, char const * value) {
else if (p == "encoding") {
if (strcmp(value, "unicode") == 0 || strcmp(value, "bmp") == 0 || strcmp(value, "ascii") == 0) {
m_encoding = value;
gparams::set("encoding", value);
}
else {
std::stringstream strm;

View file

@ -31,7 +31,7 @@ void pattern_inference_params::updt_params(params_ref const & _p) {
m_pi_warnings = p.warnings();
}
#define DISPLAY_PARAM(X) out << #X"=" << X << std::endl;
#define DISPLAY_PARAM(X) out << #X"=" << X << '\n';
void pattern_inference_params::display(std::ostream & out) const {
DISPLAY_PARAM(m_pi_max_multi_patterns);

View file

@ -8,5 +8,9 @@ def_module_params('solver',
('lemmas2console', BOOL, False, 'print lemmas during search'),
('instantiations2console', BOOL, False, 'print quantifier instantiations to the console'),
('axioms2files', BOOL, False, 'print negated theory axioms to separate files during search'),
('proof.log', SYMBOL, '', 'log clause proof trail into a file'),
('proof.check', BOOL, True, 'check proof logs'),
('proof.save', BOOL, False, 'save proof log into a proof object that can be extracted using (get-proof)'),
('proof.trim', BOOL, False, 'trim and save proof into a proof object that an be extracted using (get-proof)'),
))

View file

@ -0,0 +1,22 @@
def_module_params('tactic',
description='tactic parameters',
export=True,
params=(('solve_eqs.context_solve', BOOL, True, "solve equalities within disjunctions."),
('solve_eqs.theory_solver', BOOL, True, "use theory solvers."),
('solve_eqs.ite_solver', BOOL, True, "use if-then-else solvers."),
('solve_eqs.max_occs', UINT, UINT_MAX, "maximum number of occurrences for considering a variable for gaussian eliminations."),
('blast_term_ite.max_inflation', UINT, UINT_MAX, "multiplicative factor of initial term size."),
('blast_term_ite.max_steps', UINT, UINT_MAX, "maximal number of steps allowed for tactic."),
('propagate_values.max_rounds', UINT, 4, "maximal number of rounds to propagate values."),
('default_tactic', SYMBOL, 'smt', "overwrite default tactic in strategic solver"),
# ('aig.per_assertion', BOOL, True, "process one assertion at a time"),
# ('add_bounds.lower, INT, -2, "lower bound to be added to unbounded variables."),
# ('add_bounds.upper, INT, 2, "upper bound to be added to unbounded variables."),
# ('fm.real_only', BOOL, True, "consider only real variables for FM"),
# ('fm.occ', BOOL, False, "consider inequalities occurring in clauses for FM."),
# ('fm.limit', UINT, 5000000, "maximal number of constraints, monomials, clauses visited during FM."),
# etc: lia2card, factor, nla2bv, normalize_bounds, pb2bv, purify_arith, bit_blaster, bv_bounds
))