3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-10-08 17:01:55 +00:00

Transformation to eliminate term-ite expressions from DL rules

This commit is contained in:
Arie Gurfinkel 2018-06-30 14:33:04 -04:00
parent 6d75c31468
commit 5d1149adb2
6 changed files with 107 additions and 13 deletions

View file

@ -308,6 +308,9 @@ namespace datalog {
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();}
unsigned context::blast_term_ite_inflation() const {
return m_params->xform_elim_term_ite_inflation();
}
void context::register_finite_sort(sort * s, sort_kind k) {

View file

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

View file

@ -132,7 +132,8 @@ 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"),
('xform.elim_term_ite', BOOL, False, 'Eliminate term-ite expressions'),
('xform.elim_term_ite.inflation', UINT, 3, 'Maximum inflation for non-Boolean ite-terms blasting: 0 (none), k (multiplicative)'),
('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"),