3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-11-01 20:17:52 +00:00

Initial commit of QGen

Controlled by fixedpoint.spacer.use_quanti_generalizer

measure cumulative time, number of invocations, and number of failed
SMT calls

Relaxing equality in a pattern: if a variable equals a numeral, relax with GE

pob::get_skolems() returns all skolems that might appear in the pob.
New skolems must be added above the largest index in that map,
even if they are not used in the pob itself.

pattern generalization should be done before the pattern is skolemized and
added into the new cube.
This commit is contained in:
Yakir Vizel 2017-12-18 13:52:53 -05:00 committed by Arie Gurfinkel
parent a1efb88318
commit 23a8e59493
10 changed files with 583 additions and 16 deletions

View file

@ -339,8 +339,12 @@ public:
};
app* mk_zk_const (ast_manager &m, unsigned idx, sort *s);
void find_zk_const(expr* e, app_ref_vector &out);
int find_zk_const(expr* e, app_ref_vector &out);
inline int find_zk_const(expr_ref_vector const &v, app_ref_vector &out) {
return find_zk_const (mk_and(v), out);
}
bool has_zk_const(expr* e);
bool is_zk_const (const app *a, int &n);
struct sk_lt_proc {
bool operator()(const app* a1, const app* a2);