mirror of
https://github.com/Z3Prover/z3
synced 2025-04-30 04:15:51 +00:00
add case for abs (normally simplified, but not with default_tactic=smt).
This commit is contained in:
parent
671d071e54
commit
f1bf660adc
4 changed files with 15 additions and 3 deletions
|
@ -49,6 +49,14 @@ namespace arith {
|
|||
}
|
||||
}
|
||||
|
||||
void solver::mk_abs_axiom(app* n) {
|
||||
expr* x = nullptr;
|
||||
VERIFY(a.is_abs(n, x));
|
||||
literal is_nonneg = mk_literal(a.mk_ge(x, a.mk_numeral(rational::zero(), n->get_sort())));
|
||||
add_clause(~is_nonneg, eq_internalize(n, x));
|
||||
add_clause(is_nonneg, eq_internalize(n, a.mk_uminus(x)));
|
||||
}
|
||||
|
||||
// t = n^0
|
||||
void solver::mk_power0_axioms(app* t, app* n) {
|
||||
expr_ref p0(a.mk_power0(n, t->get_arg(1)), m);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue