3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-06-02 12:21:21 +00:00

reduce-args: fixed unsoundness introduced in my previous commit

skip an UF arg if it's quantified
e.g. forall a . f(a, b) -> f(b) (but not f)
This commit is contained in:
Nuno Lopes 2016-03-17 13:14:43 +00:00
parent c8af48d7ef
commit aed4619066

View file

@ -96,10 +96,10 @@ struct reduce_args_tactic::imp {
expr *lhs, *rhs; expr *lhs, *rhs;
if (bv.is_bv_add(e, lhs, rhs) && bv.is_numeral(lhs)) { if (bv.is_bv_add(e, lhs, rhs) && bv.is_numeral(lhs)) {
base = rhs; base = rhs;
} else { return true;
base = e;
} }
return true; base = e;
return !is_var(e);
} }
static bool may_be_unique(ast_manager& m, bv_util& bv, expr* e, expr*& base) { static bool may_be_unique(ast_manager& m, bv_util& bv, expr* e, expr*& base) {