mirror of
https://github.com/Z3Prover/z3
synced 2025-06-23 06:13:40 +00:00
Fix try_ugt_z as well
This commit is contained in:
parent
76c18ee6e3
commit
21d315ba58
1 changed files with 6 additions and 4 deletions
|
@ -613,8 +613,10 @@ namespace polysat {
|
||||||
/**
|
/**
|
||||||
* [z] z <= y' /\ yx <= zx ==> Ω*(x,y') \/ yx <= y'x
|
* [z] z <= y' /\ yx <= zx ==> Ω*(x,y') \/ yx <= y'x
|
||||||
* [z] z <= y' /\ yx < zx ==> Ω*(x,y') \/ yx < y'x
|
* [z] z <= y' /\ yx < zx ==> Ω*(x,y') \/ yx < y'x
|
||||||
* [z] z < y' /\ yx <= zx ==> Ω*(x,y') \/ yx < y'x
|
* [z] z < y' /\ yx <= zx ==> Ω*(x,y') \/ yx <= y'x
|
||||||
* [z] z < y' /\ yx < zx ==> Ω*(x,y') \/ yx < y'x TODO: could strengthen the conclusion to yx + 1 < y'x
|
* [z] z < y' /\ yx < zx ==> Ω*(x,y') \/ yx < y'x
|
||||||
|
* [z] z < y' /\ yx < zx ==> Ω*(x,y') \/ yx+1 < y'x (TODO?)
|
||||||
|
* [z] z < y' /\ yx < zx ==> Ω*(x,y') \/ (y+1)x < y'x (TODO?)
|
||||||
*/
|
*/
|
||||||
bool saturation::try_ugt_z(pvar z, conflict& core, inequality const& yx_l_zx) {
|
bool saturation::try_ugt_z(pvar z, conflict& core, inequality const& yx_l_zx) {
|
||||||
set_rule("[z] z <= y' && yx <= zx");
|
set_rule("[z] z <= y' && yx <= zx");
|
||||||
|
@ -647,7 +649,7 @@ namespace polysat {
|
||||||
return false;
|
return false;
|
||||||
m_lemma.reset();
|
m_lemma.reset();
|
||||||
m_lemma.insert_eval(~non_ovfl);
|
m_lemma.insert_eval(~non_ovfl);
|
||||||
return add_conflict(z, core, yx_l_zx, z_l_y, ineq(z_l_y.is_strict() || yx_l_zx.is_strict(), y * x, y_prime * x));
|
return add_conflict(z, core, yx_l_zx, z_l_y, ineq(yx_l_zx.is_strict(), y * x, y_prime * x));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue