mirror of
https://github.com/Z3Prover/z3
synced 2025-04-29 11:55:51 +00:00
fix axiomatization for sdiv
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
0ca94b9c2f
commit
477db7d8bd
4 changed files with 39 additions and 9 deletions
|
@ -424,13 +424,22 @@ namespace polysat {
|
|||
if (q.is_zero() && p.has_unit(x)) {
|
||||
auto l = pdd2expr(x);
|
||||
auto r = pdd2expr(x - p);
|
||||
result = m.mk_eq(l, r);
|
||||
if (m.are_equal(l, r))
|
||||
result = m.mk_true();
|
||||
else if (m.are_distinct(l, r))
|
||||
result = m.mk_false();
|
||||
else
|
||||
result = m.mk_eq(l, r);
|
||||
}
|
||||
else {
|
||||
auto l = pdd2expr(p);
|
||||
auto r = pdd2expr(q);
|
||||
if (p == q)
|
||||
if (m.are_equal(l, r))
|
||||
result = m.mk_true();
|
||||
else if (m.is_value(l) && m.is_value(r)) {
|
||||
result = bv.mk_ule(l, r);
|
||||
ctx.get_rewriter()(result);
|
||||
}
|
||||
else if (q.is_zero())
|
||||
result = m.mk_eq(l, r);
|
||||
else
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue