3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-09-09 11:11:25 +00:00

First draft of elim_term_ite xform. Not working.

This commit is contained in:
Arie Gurfinkel 2018-06-29 17:04:44 -04:00
parent 7acea2791d
commit 6d75c31468
9 changed files with 171 additions and 5 deletions

View file

@ -307,6 +307,7 @@ namespace datalog {
bool context::instantiate_quantifiers() const { return m_params->xform_instantiate_quantifiers(); }
bool context::array_blast() const { return m_params->xform_array_blast(); }
bool context::array_blast_full() const { return m_params->xform_array_blast_full(); }
bool context::elim_term_ite() const {return m_params->xform_elim_term_ite();}
void context::register_finite_sort(sort * s, sort_kind k) {

View file

@ -280,6 +280,7 @@ namespace datalog {
bool xform_coi() const;
bool array_blast() const;
bool array_blast_full() const;
bool elim_term_ite() const;
void register_finite_sort(sort * s, sort_kind k);

View file

@ -132,10 +132,11 @@ def_module_params('fp',
('spacer.use_derivations', BOOL, True, 'SPACER: using derivation mechanism to cache intermediate results for non-linear rules'),
('xform.array_blast', BOOL, False, "try to eliminate local array terms using Ackermannization -- some array terms may remain"),
('xform.array_blast_full', BOOL, False, "eliminate all local array variables by QE"),
('xform.elim_term_ite', BOOL, False, "Eliminate term-ite expressions"),
('spacer.propagate', BOOL, True, 'Enable propagate/pushing phase'),
('spacer.max_level', UINT, UINT_MAX, "Maximum level to explore"),
('spacer.elim_aux', BOOL, True, "Eliminate auxiliary variables in reachability facts"),
('spacer.blast_term_ite', BOOL, True, "Expand non-Boolean ite-terms"),
('spacer.blast_term_ite_inflation', UINT, 3, 'Maximum inflation for non-Boolean ite-terms expansion: 0 (none), k (multiplicative)'),
('spacer.reach_dnf', BOOL, True, "Restrict reachability facts to DNF"),
('bmc.linear_unrolling_depth', UINT, UINT_MAX, "Maximal level to explore"),
('spacer.iuc.split_farkas_literals', BOOL, False, "Split Farkas literals"),