mirror of
https://github.com/Z3Prover/z3
synced 2025-04-12 12:08:18 +00:00
This commit is contained in:
parent
7c86134e85
commit
73118012c5
|
@ -41,11 +41,19 @@ namespace q {
|
||||||
quantifier* q = to_quantifier(e);
|
quantifier* q = to_quantifier(e);
|
||||||
|
|
||||||
auto const& exp = expand(q);
|
auto const& exp = expand(q);
|
||||||
if (exp.size() > 1) {
|
if (exp.size() > 1 && is_forall(q)) {
|
||||||
for (expr* e : exp)
|
for (expr* e : exp)
|
||||||
add_clause(~l, ctx.internalize(e, l.sign(), false, false));
|
add_clause(~l, ctx.internalize(e, l.sign(), false, false));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
if (exp.size() > 1 && is_exists(q)) {
|
||||||
|
sat::literal_vector lits;
|
||||||
|
lits.push_back(~l);
|
||||||
|
for (expr* e : exp)
|
||||||
|
lits.push_back(ctx.internalize(e, l.sign(), false, false));
|
||||||
|
add_clause(lits);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (l.sign() == is_forall(e))
|
if (l.sign() == is_forall(e))
|
||||||
add_clause(~l, skolemize(q));
|
add_clause(~l, skolemize(q));
|
||||||
|
|
Loading…
Reference in a new issue