0 JBC
↳1 JBC2FIG (⇐)
↳2 FIGraph
↳3 FIGtoITRSProof (⇐)
↳4 ITRS
↳5 DuplicateArgsRemoverProof (⇔)
↳6 ITRS
↳7 ITRStoIDPProof (⇔)
↳8 IDP
↳9 UsableRulesProof (⇔)
↳10 IDP
↳11 IDPNonInfProof (⇐)
↳12 AND
↳13 IDP
↳14 IDependencyGraphProof (⇔)
↳15 IDP
↳16 IDPNonInfProof (⇐)
↳17 AND
↳18 IDP
↳19 IDependencyGraphProof (⇔)
↳20 TRUE
↳21 IDP
↳22 IDependencyGraphProof (⇔)
↳23 TRUE
↳24 IDP
↳25 IDependencyGraphProof (⇔)
↳26 IDP
↳27 IDPNonInfProof (⇐)
↳28 AND
↳29 IDP
↳30 IDependencyGraphProof (⇔)
↳31 TRUE
↳32 IDP
↳33 IDependencyGraphProof (⇔)
↳34 TRUE
public class DivMinus2 {
public static int div(int x, int y) {
int res = 0;
while (x >= y && y > 0) {
x = minus(x,y);
res = res + 1;
}
return res;
}
public static int minus(int x, int y) {
while (y != 0) {
if (y > 0) {
y--;
x--;
} else {
y++;
x++;
}
}
return x;
}
public static void main(String[] args) {
Random.args = args;
int x = Random.random();
int y = Random.random();
div(x, y);
}
}
public class Random {
static String[] args;
static int index = 0;
public static int random() {
String string = args[index];
index++;
return string.length();
}
}
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
~ | Bwxor: (Integer, Integer) -> Integer | |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |
Load1381(x1, x2, x3, x4) → Load1381(x2, x3, x4)
Load1471(x1, x2, x3, x4, x5, x6) → Load1471(x3, x4, x5, x6)
Cond_Load1471(x1, x2, x3, x4, x5, x6, x7) → Cond_Load1471(x1, x4, x5, x6, x7)
Cond_Load1381(x1, x2, x3, x4, x5) → Cond_Load1381(x1, x3, x4, x5)
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
~ | Bwxor: (Integer, Integer) -> Integer | |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
~ | Bwxor: (Integer, Integer) -> Integer | |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |
Boolean, Integer
(0) -> (1), if ((i669[0] > 0 && i614[0] >= i669[0] →* TRUE)∧(i616[0] →* i616[1])∧(i614[0] →* i614[1])∧(i669[0] →* i669[1]))
(1) -> (2), if ((i614[1] →* i730[2])∧(i669[1] →* i743[2])∧(i669[1] →* i669[2])∧(i616[1] →* i616[2]))
(1) -> (4), if ((i614[1] →* i730[4])∧(i669[1] →* i669[4])∧(i616[1] →* i616[4])∧(i669[1] →* 0))
(2) -> (3), if ((i669[2] →* i669[3])∧(i743[2] > 0 →* TRUE)∧(i743[2] →* i743[3])∧(i730[2] →* i730[3])∧(i616[2] →* i616[3]))
(3) -> (2), if ((i669[3] →* i669[2])∧(i743[3] + -1 →* i743[2])∧(i616[3] →* i616[2])∧(i730[3] + -1 →* i730[2]))
(3) -> (4), if ((i669[3] →* i669[4])∧(i730[3] + -1 →* i730[4])∧(i616[3] →* i616[4])∧(i743[3] + -1 →* 0))
(4) -> (0), if ((i669[4] →* i669[0])∧(i616[4] + 1 →* i616[0])∧(i730[4] →* i614[0]))
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
~ | Bwxor: (Integer, Integer) -> Integer | |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |
Boolean, Integer
(0) -> (1), if ((i669[0] > 0 && i614[0] >= i669[0] →* TRUE)∧(i616[0] →* i616[1])∧(i614[0] →* i614[1])∧(i669[0] →* i669[1]))
(1) -> (2), if ((i614[1] →* i730[2])∧(i669[1] →* i743[2])∧(i669[1] →* i669[2])∧(i616[1] →* i616[2]))
(1) -> (4), if ((i614[1] →* i730[4])∧(i669[1] →* i669[4])∧(i616[1] →* i616[4])∧(i669[1] →* 0))
(2) -> (3), if ((i669[2] →* i669[3])∧(i743[2] > 0 →* TRUE)∧(i743[2] →* i743[3])∧(i730[2] →* i730[3])∧(i616[2] →* i616[3]))
(3) -> (2), if ((i669[3] →* i669[2])∧(i743[3] + -1 →* i743[2])∧(i616[3] →* i616[2])∧(i730[3] + -1 →* i730[2]))
(3) -> (4), if ((i669[3] →* i669[4])∧(i730[3] + -1 →* i730[4])∧(i616[3] →* i616[4])∧(i743[3] + -1 →* 0))
(4) -> (0), if ((i669[4] →* i669[0])∧(i616[4] + 1 →* i616[0])∧(i730[4] →* i614[0]))
(1) (&&(>(i669[0], 0), >=(i614[0], i669[0]))=TRUE∧i616[0]=i616[1]∧i614[0]=i614[1]∧i669[0]=i669[1] ⇒ LOAD1381(i614[0], i669[0], i616[0])≥NonInfC∧LOAD1381(i614[0], i669[0], i616[0])≥COND_LOAD1381(&&(>(i669[0], 0), >=(i614[0], i669[0])), i614[0], i669[0], i616[0])∧(UIncreasing(COND_LOAD1381(&&(>(i669[0], 0), >=(i614[0], i669[0])), i614[0], i669[0], i616[0])), ≥))
(2) (>(i669[0], 0)=TRUE∧>=(i614[0], i669[0])=TRUE ⇒ LOAD1381(i614[0], i669[0], i616[0])≥NonInfC∧LOAD1381(i614[0], i669[0], i616[0])≥COND_LOAD1381(&&(>(i669[0], 0), >=(i614[0], i669[0])), i614[0], i669[0], i616[0])∧(UIncreasing(COND_LOAD1381(&&(>(i669[0], 0), >=(i614[0], i669[0])), i614[0], i669[0], i616[0])), ≥))
(3) (i669[0] + [-1] ≥ 0∧i614[0] + [-1]i669[0] ≥ 0 ⇒ (UIncreasing(COND_LOAD1381(&&(>(i669[0], 0), >=(i614[0], i669[0])), i614[0], i669[0], i616[0])), ≥)∧[(-1)Bound*bni_26] + [(-1)bni_26]i669[0] + [bni_26]i614[0] ≥ 0∧[(-1)bso_27] ≥ 0)
(4) (i669[0] + [-1] ≥ 0∧i614[0] + [-1]i669[0] ≥ 0 ⇒ (UIncreasing(COND_LOAD1381(&&(>(i669[0], 0), >=(i614[0], i669[0])), i614[0], i669[0], i616[0])), ≥)∧[(-1)Bound*bni_26] + [(-1)bni_26]i669[0] + [bni_26]i614[0] ≥ 0∧[(-1)bso_27] ≥ 0)
(5) (i669[0] + [-1] ≥ 0∧i614[0] + [-1]i669[0] ≥ 0 ⇒ (UIncreasing(COND_LOAD1381(&&(>(i669[0], 0), >=(i614[0], i669[0])), i614[0], i669[0], i616[0])), ≥)∧[(-1)Bound*bni_26] + [(-1)bni_26]i669[0] + [bni_26]i614[0] ≥ 0∧[(-1)bso_27] ≥ 0)
(6) (i669[0] + [-1] ≥ 0∧i614[0] + [-1]i669[0] ≥ 0 ⇒ (UIncreasing(COND_LOAD1381(&&(>(i669[0], 0), >=(i614[0], i669[0])), i614[0], i669[0], i616[0])), ≥)∧0 = 0∧[(-1)Bound*bni_26] + [(-1)bni_26]i669[0] + [bni_26]i614[0] ≥ 0∧0 = 0∧[(-1)bso_27] ≥ 0)
(7) (i669[0] ≥ 0∧i614[0] + [-1] + [-1]i669[0] ≥ 0 ⇒ (UIncreasing(COND_LOAD1381(&&(>(i669[0], 0), >=(i614[0], i669[0])), i614[0], i669[0], i616[0])), ≥)∧0 = 0∧[(-1)Bound*bni_26 + (-1)bni_26] + [(-1)bni_26]i669[0] + [bni_26]i614[0] ≥ 0∧0 = 0∧[(-1)bso_27] ≥ 0)
(8) (i669[0] ≥ 0∧i614[0] ≥ 0 ⇒ (UIncreasing(COND_LOAD1381(&&(>(i669[0], 0), >=(i614[0], i669[0])), i614[0], i669[0], i616[0])), ≥)∧0 = 0∧[(-1)Bound*bni_26] + [bni_26]i614[0] ≥ 0∧0 = 0∧[(-1)bso_27] ≥ 0)
(9) (i614[1]=i730[2]∧i669[1]=i743[2]∧i669[1]=i669[2]∧i616[1]=i616[2] ⇒ COND_LOAD1381(TRUE, i614[1], i669[1], i616[1])≥NonInfC∧COND_LOAD1381(TRUE, i614[1], i669[1], i616[1])≥LOAD1471(i616[1], i669[1], i614[1], i669[1])∧(UIncreasing(LOAD1471(i616[1], i669[1], i614[1], i669[1])), ≥))
(10) (COND_LOAD1381(TRUE, i614[1], i669[1], i616[1])≥NonInfC∧COND_LOAD1381(TRUE, i614[1], i669[1], i616[1])≥LOAD1471(i616[1], i669[1], i614[1], i669[1])∧(UIncreasing(LOAD1471(i616[1], i669[1], i614[1], i669[1])), ≥))
(11) ((UIncreasing(LOAD1471(i616[1], i669[1], i614[1], i669[1])), ≥)∧[(-1)bso_29] ≥ 0)
(12) ((UIncreasing(LOAD1471(i616[1], i669[1], i614[1], i669[1])), ≥)∧[(-1)bso_29] ≥ 0)
(13) ((UIncreasing(LOAD1471(i616[1], i669[1], i614[1], i669[1])), ≥)∧[(-1)bso_29] ≥ 0)
(14) ((UIncreasing(LOAD1471(i616[1], i669[1], i614[1], i669[1])), ≥)∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_29] ≥ 0)
(15) (i614[1]=i730[4]∧i669[1]=i669[4]∧i616[1]=i616[4]∧i669[1]=0 ⇒ COND_LOAD1381(TRUE, i614[1], i669[1], i616[1])≥NonInfC∧COND_LOAD1381(TRUE, i614[1], i669[1], i616[1])≥LOAD1471(i616[1], i669[1], i614[1], i669[1])∧(UIncreasing(LOAD1471(i616[1], i669[1], i614[1], i669[1])), ≥))
(16) (COND_LOAD1381(TRUE, i614[1], 0, i616[1])≥NonInfC∧COND_LOAD1381(TRUE, i614[1], 0, i616[1])≥LOAD1471(i616[1], 0, i614[1], 0)∧(UIncreasing(LOAD1471(i616[1], i669[1], i614[1], i669[1])), ≥))
(17) ((UIncreasing(LOAD1471(i616[1], i669[1], i614[1], i669[1])), ≥)∧[(-1)bso_29] ≥ 0)
(18) ((UIncreasing(LOAD1471(i616[1], i669[1], i614[1], i669[1])), ≥)∧[(-1)bso_29] ≥ 0)
(19) ((UIncreasing(LOAD1471(i616[1], i669[1], i614[1], i669[1])), ≥)∧[(-1)bso_29] ≥ 0)
(20) ((UIncreasing(LOAD1471(i616[1], i669[1], i614[1], i669[1])), ≥)∧0 = 0∧0 = 0∧[(-1)bso_29] ≥ 0)
(21) (i669[2]=i669[3]∧>(i743[2], 0)=TRUE∧i743[2]=i743[3]∧i730[2]=i730[3]∧i616[2]=i616[3] ⇒ LOAD1471(i616[2], i669[2], i730[2], i743[2])≥NonInfC∧LOAD1471(i616[2], i669[2], i730[2], i743[2])≥COND_LOAD1471(>(i743[2], 0), i616[2], i669[2], i730[2], i743[2])∧(UIncreasing(COND_LOAD1471(>(i743[2], 0), i616[2], i669[2], i730[2], i743[2])), ≥))
(22) (>(i743[2], 0)=TRUE ⇒ LOAD1471(i616[2], i669[2], i730[2], i743[2])≥NonInfC∧LOAD1471(i616[2], i669[2], i730[2], i743[2])≥COND_LOAD1471(>(i743[2], 0), i616[2], i669[2], i730[2], i743[2])∧(UIncreasing(COND_LOAD1471(>(i743[2], 0), i616[2], i669[2], i730[2], i743[2])), ≥))
(23) (i743[2] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD1471(>(i743[2], 0), i616[2], i669[2], i730[2], i743[2])), ≥)∧[(-1)Bound*bni_30] + [bni_30]i730[2] + [(-1)bni_30]i669[2] ≥ 0∧[1 + (-1)bso_31] ≥ 0)
(24) (i743[2] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD1471(>(i743[2], 0), i616[2], i669[2], i730[2], i743[2])), ≥)∧[(-1)Bound*bni_30] + [bni_30]i730[2] + [(-1)bni_30]i669[2] ≥ 0∧[1 + (-1)bso_31] ≥ 0)
(25) (i743[2] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD1471(>(i743[2], 0), i616[2], i669[2], i730[2], i743[2])), ≥)∧[(-1)Bound*bni_30] + [bni_30]i730[2] + [(-1)bni_30]i669[2] ≥ 0∧[1 + (-1)bso_31] ≥ 0)
(26) (i743[2] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD1471(>(i743[2], 0), i616[2], i669[2], i730[2], i743[2])), ≥)∧[bni_30] = 0∧[(-1)bni_30] = 0∧0 = 0∧[(-1)Bound*bni_30] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_31] ≥ 0)
(27) (i743[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD1471(>(i743[2], 0), i616[2], i669[2], i730[2], i743[2])), ≥)∧[bni_30] = 0∧[(-1)bni_30] = 0∧0 = 0∧[(-1)Bound*bni_30] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_31] ≥ 0)
(28) (i669[2]=i669[3]∧>(i743[2], 0)=TRUE∧i743[2]=i743[3]∧i730[2]=i730[3]∧i616[2]=i616[3]∧i669[3]=i669[2]1∧+(i743[3], -1)=i743[2]1∧i616[3]=i616[2]1∧+(i730[3], -1)=i730[2]1 ⇒ COND_LOAD1471(TRUE, i616[3], i669[3], i730[3], i743[3])≥NonInfC∧COND_LOAD1471(TRUE, i616[3], i669[3], i730[3], i743[3])≥LOAD1471(i616[3], i669[3], +(i730[3], -1), +(i743[3], -1))∧(UIncreasing(LOAD1471(i616[3], i669[3], +(i730[3], -1), +(i743[3], -1))), ≥))
(29) (>(i743[2], 0)=TRUE ⇒ COND_LOAD1471(TRUE, i616[2], i669[2], i730[2], i743[2])≥NonInfC∧COND_LOAD1471(TRUE, i616[2], i669[2], i730[2], i743[2])≥LOAD1471(i616[2], i669[2], +(i730[2], -1), +(i743[2], -1))∧(UIncreasing(LOAD1471(i616[3], i669[3], +(i730[3], -1), +(i743[3], -1))), ≥))
(30) (i743[2] + [-1] ≥ 0 ⇒ (UIncreasing(LOAD1471(i616[3], i669[3], +(i730[3], -1), +(i743[3], -1))), ≥)∧[(-1)bni_32 + (-1)Bound*bni_32] + [bni_32]i730[2] + [(-1)bni_32]i669[2] ≥ 0∧[(-1)bso_33] ≥ 0)
(31) (i743[2] + [-1] ≥ 0 ⇒ (UIncreasing(LOAD1471(i616[3], i669[3], +(i730[3], -1), +(i743[3], -1))), ≥)∧[(-1)bni_32 + (-1)Bound*bni_32] + [bni_32]i730[2] + [(-1)bni_32]i669[2] ≥ 0∧[(-1)bso_33] ≥ 0)
(32) (i743[2] + [-1] ≥ 0 ⇒ (UIncreasing(LOAD1471(i616[3], i669[3], +(i730[3], -1), +(i743[3], -1))), ≥)∧[(-1)bni_32 + (-1)Bound*bni_32] + [bni_32]i730[2] + [(-1)bni_32]i669[2] ≥ 0∧[(-1)bso_33] ≥ 0)
(33) (i743[2] + [-1] ≥ 0 ⇒ (UIncreasing(LOAD1471(i616[3], i669[3], +(i730[3], -1), +(i743[3], -1))), ≥)∧[bni_32] = 0∧[(-1)bni_32] = 0∧0 = 0∧[(-1)bni_32 + (-1)Bound*bni_32] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_33] ≥ 0)
(34) (i743[2] ≥ 0 ⇒ (UIncreasing(LOAD1471(i616[3], i669[3], +(i730[3], -1), +(i743[3], -1))), ≥)∧[bni_32] = 0∧[(-1)bni_32] = 0∧0 = 0∧[(-1)bni_32 + (-1)Bound*bni_32] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_33] ≥ 0)
(35) (i669[2]=i669[3]∧>(i743[2], 0)=TRUE∧i743[2]=i743[3]∧i730[2]=i730[3]∧i616[2]=i616[3]∧i669[3]=i669[4]∧+(i730[3], -1)=i730[4]∧i616[3]=i616[4]∧+(i743[3], -1)=0 ⇒ COND_LOAD1471(TRUE, i616[3], i669[3], i730[3], i743[3])≥NonInfC∧COND_LOAD1471(TRUE, i616[3], i669[3], i730[3], i743[3])≥LOAD1471(i616[3], i669[3], +(i730[3], -1), +(i743[3], -1))∧(UIncreasing(LOAD1471(i616[3], i669[3], +(i730[3], -1), +(i743[3], -1))), ≥))
(36) (>(i743[2], 0)=TRUE∧+(i743[2], -1)=0 ⇒ COND_LOAD1471(TRUE, i616[2], i669[2], i730[2], i743[2])≥NonInfC∧COND_LOAD1471(TRUE, i616[2], i669[2], i730[2], i743[2])≥LOAD1471(i616[2], i669[2], +(i730[2], -1), +(i743[2], -1))∧(UIncreasing(LOAD1471(i616[3], i669[3], +(i730[3], -1), +(i743[3], -1))), ≥))
(37) (i743[2] + [-1] ≥ 0∧i743[2] + [-1] ≥ 0 ⇒ (UIncreasing(LOAD1471(i616[3], i669[3], +(i730[3], -1), +(i743[3], -1))), ≥)∧[(-1)bni_32 + (-1)Bound*bni_32] + [bni_32]i730[2] + [(-1)bni_32]i669[2] ≥ 0∧[(-1)bso_33] ≥ 0)
(38) (i743[2] + [-1] ≥ 0∧i743[2] + [-1] ≥ 0 ⇒ (UIncreasing(LOAD1471(i616[3], i669[3], +(i730[3], -1), +(i743[3], -1))), ≥)∧[(-1)bni_32 + (-1)Bound*bni_32] + [bni_32]i730[2] + [(-1)bni_32]i669[2] ≥ 0∧[(-1)bso_33] ≥ 0)
(39) (i743[2] + [-1] ≥ 0∧i743[2] + [-1] ≥ 0 ⇒ (UIncreasing(LOAD1471(i616[3], i669[3], +(i730[3], -1), +(i743[3], -1))), ≥)∧[(-1)bni_32 + (-1)Bound*bni_32] + [bni_32]i730[2] + [(-1)bni_32]i669[2] ≥ 0∧[(-1)bso_33] ≥ 0)
(40) (i743[2] + [-1] ≥ 0∧i743[2] + [-1] ≥ 0 ⇒ (UIncreasing(LOAD1471(i616[3], i669[3], +(i730[3], -1), +(i743[3], -1))), ≥)∧[bni_32] = 0∧[(-1)bni_32] = 0∧0 = 0∧[(-1)bni_32 + (-1)Bound*bni_32] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_33] ≥ 0)
(41) (i743[2] ≥ 0∧i743[2] ≥ 0 ⇒ (UIncreasing(LOAD1471(i616[3], i669[3], +(i730[3], -1), +(i743[3], -1))), ≥)∧[bni_32] = 0∧[(-1)bni_32] = 0∧0 = 0∧[(-1)bni_32 + (-1)Bound*bni_32] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_33] ≥ 0)
(42) (i614[1]=i730[4]∧i669[1]=i669[4]∧i616[1]=i616[4]∧i669[1]=0∧i669[4]=i669[0]∧+(i616[4], 1)=i616[0]∧i730[4]=i614[0] ⇒ LOAD1471(i616[4], i669[4], i730[4], 0)≥NonInfC∧LOAD1471(i616[4], i669[4], i730[4], 0)≥LOAD1381(i730[4], i669[4], +(i616[4], 1))∧(UIncreasing(LOAD1381(i730[4], i669[4], +(i616[4], 1))), ≥))
(43) (LOAD1471(i616[1], 0, i614[1], 0)≥NonInfC∧LOAD1471(i616[1], 0, i614[1], 0)≥LOAD1381(i614[1], 0, +(i616[1], 1))∧(UIncreasing(LOAD1381(i730[4], i669[4], +(i616[4], 1))), ≥))
(44) ((UIncreasing(LOAD1381(i730[4], i669[4], +(i616[4], 1))), ≥)∧[(-1)bso_35] ≥ 0)
(45) ((UIncreasing(LOAD1381(i730[4], i669[4], +(i616[4], 1))), ≥)∧[(-1)bso_35] ≥ 0)
(46) ((UIncreasing(LOAD1381(i730[4], i669[4], +(i616[4], 1))), ≥)∧[(-1)bso_35] ≥ 0)
(47) ((UIncreasing(LOAD1381(i730[4], i669[4], +(i616[4], 1))), ≥)∧0 = 0∧0 = 0∧[(-1)bso_35] ≥ 0)
(48) (i669[3]=i669[4]∧+(i730[3], -1)=i730[4]∧i616[3]=i616[4]∧+(i743[3], -1)=0∧i669[4]=i669[0]∧+(i616[4], 1)=i616[0]∧i730[4]=i614[0] ⇒ LOAD1471(i616[4], i669[4], i730[4], 0)≥NonInfC∧LOAD1471(i616[4], i669[4], i730[4], 0)≥LOAD1381(i730[4], i669[4], +(i616[4], 1))∧(UIncreasing(LOAD1381(i730[4], i669[4], +(i616[4], 1))), ≥))
(49) (+(i743[3], -1)=0 ⇒ LOAD1471(i616[3], i669[3], +(i730[3], -1), 0)≥NonInfC∧LOAD1471(i616[3], i669[3], +(i730[3], -1), 0)≥LOAD1381(+(i730[3], -1), i669[3], +(i616[3], 1))∧(UIncreasing(LOAD1381(i730[4], i669[4], +(i616[4], 1))), ≥))
(50) (i743[3] + [-1] ≥ 0 ⇒ (UIncreasing(LOAD1381(i730[4], i669[4], +(i616[4], 1))), ≥)∧0 ≥ 0∧[(-1)bso_35] ≥ 0)
(51) (i743[3] + [-1] ≥ 0 ⇒ (UIncreasing(LOAD1381(i730[4], i669[4], +(i616[4], 1))), ≥)∧0 ≥ 0∧[(-1)bso_35] ≥ 0)
(52) (i743[3] + [-1] ≥ 0 ⇒ (UIncreasing(LOAD1381(i730[4], i669[4], +(i616[4], 1))), ≥)∧0 ≥ 0∧[(-1)bso_35] ≥ 0)
(53) (i743[3] + [-1] ≥ 0 ⇒ (UIncreasing(LOAD1381(i730[4], i669[4], +(i616[4], 1))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 ≥ 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_35] ≥ 0)
POL(TRUE) = 0
POL(FALSE) = 0
POL(LOAD1381(x1, x2, x3)) = [-1]x2 + x1
POL(COND_LOAD1381(x1, x2, x3, x4)) = [-1]x3 + x2 + [-1]x1
POL(&&(x1, x2)) = 0
POL(>(x1, x2)) = [-1]
POL(0) = 0
POL(>=(x1, x2)) = [-1]
POL(LOAD1471(x1, x2, x3, x4)) = x3 + [-1]x2
POL(COND_LOAD1471(x1, x2, x3, x4, x5)) = [-1] + x4 + [-1]x3
POL(+(x1, x2)) = x1 + x2
POL(-1) = [-1]
POL(1) = [1]
LOAD1471(i616[2], i669[2], i730[2], i743[2]) → COND_LOAD1471(>(i743[2], 0), i616[2], i669[2], i730[2], i743[2])
LOAD1381(i614[0], i669[0], i616[0]) → COND_LOAD1381(&&(>(i669[0], 0), >=(i614[0], i669[0])), i614[0], i669[0], i616[0])
LOAD1381(i614[0], i669[0], i616[0]) → COND_LOAD1381(&&(>(i669[0], 0), >=(i614[0], i669[0])), i614[0], i669[0], i616[0])
COND_LOAD1381(TRUE, i614[1], i669[1], i616[1]) → LOAD1471(i616[1], i669[1], i614[1], i669[1])
COND_LOAD1471(TRUE, i616[3], i669[3], i730[3], i743[3]) → LOAD1471(i616[3], i669[3], +(i730[3], -1), +(i743[3], -1))
LOAD1471(i616[4], i669[4], i730[4], 0) → LOAD1381(i730[4], i669[4], +(i616[4], 1))
&&(TRUE, TRUE)1 ↔ TRUE1
&&(TRUE, FALSE)1 ↔ FALSE1
&&(FALSE, TRUE)1 ↔ FALSE1
&&(FALSE, FALSE)1 ↔ FALSE1
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
~ | Bwxor: (Integer, Integer) -> Integer | |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |
Boolean, Integer
(4) -> (0), if ((i669[4] →* i669[0])∧(i616[4] + 1 →* i616[0])∧(i730[4] →* i614[0]))
(0) -> (1), if ((i669[0] > 0 && i614[0] >= i669[0] →* TRUE)∧(i616[0] →* i616[1])∧(i614[0] →* i614[1])∧(i669[0] →* i669[1]))
(1) -> (4), if ((i614[1] →* i730[4])∧(i669[1] →* i669[4])∧(i616[1] →* i616[4])∧(i669[1] →* 0))
(3) -> (4), if ((i669[3] →* i669[4])∧(i730[3] + -1 →* i730[4])∧(i616[3] →* i616[4])∧(i743[3] + -1 →* 0))
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
~ | Bwxor: (Integer, Integer) -> Integer | |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |
Integer, Boolean
(4) -> (0), if ((i669[4] →* i669[0])∧(i616[4] + 1 →* i616[0])∧(i730[4] →* i614[0]))
(0) -> (1), if ((i669[0] > 0 && i614[0] >= i669[0] →* TRUE)∧(i616[0] →* i616[1])∧(i614[0] →* i614[1])∧(i669[0] →* i669[1]))
(1) -> (4), if ((i614[1] →* i730[4])∧(i669[1] →* i669[4])∧(i616[1] →* i616[4])∧(i669[1] →* 0))
(1) (i614[1]=i730[4]∧i669[1]=i669[4]∧i616[1]=i616[4]∧i669[1]=0∧i669[4]=i669[0]∧+(i616[4], 1)=i616[0]∧i730[4]=i614[0] ⇒ LOAD1471(i616[4], i669[4], i730[4], 0)≥NonInfC∧LOAD1471(i616[4], i669[4], i730[4], 0)≥LOAD1381(i730[4], i669[4], +(i616[4], 1))∧(UIncreasing(LOAD1381(i730[4], i669[4], +(i616[4], 1))), ≥))
(2) (LOAD1471(i616[1], 0, i614[1], 0)≥NonInfC∧LOAD1471(i616[1], 0, i614[1], 0)≥LOAD1381(i614[1], 0, +(i616[1], 1))∧(UIncreasing(LOAD1381(i730[4], i669[4], +(i616[4], 1))), ≥))
(3) ((UIncreasing(LOAD1381(i730[4], i669[4], +(i616[4], 1))), ≥)∧[1 + (-1)bso_21] ≥ 0)
(4) ((UIncreasing(LOAD1381(i730[4], i669[4], +(i616[4], 1))), ≥)∧[1 + (-1)bso_21] ≥ 0)
(5) ((UIncreasing(LOAD1381(i730[4], i669[4], +(i616[4], 1))), ≥)∧[1 + (-1)bso_21] ≥ 0)
(6) ((UIncreasing(LOAD1381(i730[4], i669[4], +(i616[4], 1))), ≥)∧0 = 0∧0 = 0∧[1 + (-1)bso_21] ≥ 0)
(7) (i614[1]=i730[4]∧i669[1]=i669[4]∧i616[1]=i616[4]∧i669[1]=0 ⇒ COND_LOAD1381(TRUE, i614[1], i669[1], i616[1])≥NonInfC∧COND_LOAD1381(TRUE, i614[1], i669[1], i616[1])≥LOAD1471(i616[1], i669[1], i614[1], i669[1])∧(UIncreasing(LOAD1471(i616[1], i669[1], i614[1], i669[1])), ≥))
(8) (COND_LOAD1381(TRUE, i614[1], 0, i616[1])≥NonInfC∧COND_LOAD1381(TRUE, i614[1], 0, i616[1])≥LOAD1471(i616[1], 0, i614[1], 0)∧(UIncreasing(LOAD1471(i616[1], i669[1], i614[1], i669[1])), ≥))
(9) ((UIncreasing(LOAD1471(i616[1], i669[1], i614[1], i669[1])), ≥)∧[(-1)bso_23] ≥ 0)
(10) ((UIncreasing(LOAD1471(i616[1], i669[1], i614[1], i669[1])), ≥)∧[(-1)bso_23] ≥ 0)
(11) ((UIncreasing(LOAD1471(i616[1], i669[1], i614[1], i669[1])), ≥)∧[(-1)bso_23] ≥ 0)
(12) ((UIncreasing(LOAD1471(i616[1], i669[1], i614[1], i669[1])), ≥)∧0 = 0∧0 = 0∧[(-1)bso_23] ≥ 0)
(13) (&&(>(i669[0], 0), >=(i614[0], i669[0]))=TRUE∧i616[0]=i616[1]∧i614[0]=i614[1]∧i669[0]=i669[1] ⇒ LOAD1381(i614[0], i669[0], i616[0])≥NonInfC∧LOAD1381(i614[0], i669[0], i616[0])≥COND_LOAD1381(&&(>(i669[0], 0), >=(i614[0], i669[0])), i614[0], i669[0], i616[0])∧(UIncreasing(COND_LOAD1381(&&(>(i669[0], 0), >=(i614[0], i669[0])), i614[0], i669[0], i616[0])), ≥))
(14) (>(i669[0], 0)=TRUE∧>=(i614[0], i669[0])=TRUE ⇒ LOAD1381(i614[0], i669[0], i616[0])≥NonInfC∧LOAD1381(i614[0], i669[0], i616[0])≥COND_LOAD1381(&&(>(i669[0], 0), >=(i614[0], i669[0])), i614[0], i669[0], i616[0])∧(UIncreasing(COND_LOAD1381(&&(>(i669[0], 0), >=(i614[0], i669[0])), i614[0], i669[0], i616[0])), ≥))
(15) (i669[0] + [-1] ≥ 0∧i614[0] + [-1]i669[0] ≥ 0 ⇒ (UIncreasing(COND_LOAD1381(&&(>(i669[0], 0), >=(i614[0], i669[0])), i614[0], i669[0], i616[0])), ≥)∧[(-1)bni_24 + (-1)Bound*bni_24] + [(2)bni_24]i669[0] ≥ 0∧[-2 + (-1)bso_25] + [3]i669[0] ≥ 0)
(16) (i669[0] + [-1] ≥ 0∧i614[0] + [-1]i669[0] ≥ 0 ⇒ (UIncreasing(COND_LOAD1381(&&(>(i669[0], 0), >=(i614[0], i669[0])), i614[0], i669[0], i616[0])), ≥)∧[(-1)bni_24 + (-1)Bound*bni_24] + [(2)bni_24]i669[0] ≥ 0∧[-2 + (-1)bso_25] + [3]i669[0] ≥ 0)
(17) (i669[0] + [-1] ≥ 0∧i614[0] + [-1]i669[0] ≥ 0 ⇒ (UIncreasing(COND_LOAD1381(&&(>(i669[0], 0), >=(i614[0], i669[0])), i614[0], i669[0], i616[0])), ≥)∧[(-1)bni_24 + (-1)Bound*bni_24] + [(2)bni_24]i669[0] ≥ 0∧[-2 + (-1)bso_25] + [3]i669[0] ≥ 0)
(18) (i669[0] + [-1] ≥ 0∧i614[0] + [-1]i669[0] ≥ 0 ⇒ (UIncreasing(COND_LOAD1381(&&(>(i669[0], 0), >=(i614[0], i669[0])), i614[0], i669[0], i616[0])), ≥)∧0 = 0∧[(-1)bni_24 + (-1)Bound*bni_24] + [(2)bni_24]i669[0] ≥ 0∧0 = 0∧[-2 + (-1)bso_25] + [3]i669[0] ≥ 0)
(19) (i669[0] ≥ 0∧i614[0] + [-1] + [-1]i669[0] ≥ 0 ⇒ (UIncreasing(COND_LOAD1381(&&(>(i669[0], 0), >=(i614[0], i669[0])), i614[0], i669[0], i616[0])), ≥)∧0 = 0∧[bni_24 + (-1)Bound*bni_24] + [(2)bni_24]i669[0] ≥ 0∧0 = 0∧[1 + (-1)bso_25] + [3]i669[0] ≥ 0)
(20) (i669[0] ≥ 0∧i614[0] ≥ 0 ⇒ (UIncreasing(COND_LOAD1381(&&(>(i669[0], 0), >=(i614[0], i669[0])), i614[0], i669[0], i616[0])), ≥)∧0 = 0∧[bni_24 + (-1)Bound*bni_24] + [(2)bni_24]i669[0] ≥ 0∧0 = 0∧[1 + (-1)bso_25] + [3]i669[0] ≥ 0)
POL(TRUE) = [1]
POL(FALSE) = [1]
POL(LOAD1471(x1, x2, x3, x4)) = [-1]x4 + [-1]x2
POL(0) = 0
POL(LOAD1381(x1, x2, x3)) = [-1] + [2]x2
POL(+(x1, x2)) = x1 + x2
POL(1) = [1]
POL(COND_LOAD1381(x1, x2, x3, x4)) = [1] + [-1]x3 + [-1]x1
POL(&&(x1, x2)) = 0
POL(>(x1, x2)) = [-1]
POL(>=(x1, x2)) = [-1]
LOAD1471(i616[4], i669[4], i730[4], 0) → LOAD1381(i730[4], i669[4], +(i616[4], 1))
LOAD1381(i614[0], i669[0], i616[0]) → COND_LOAD1381(&&(>(i669[0], 0), >=(i614[0], i669[0])), i614[0], i669[0], i616[0])
LOAD1381(i614[0], i669[0], i616[0]) → COND_LOAD1381(&&(>(i669[0], 0), >=(i614[0], i669[0])), i614[0], i669[0], i616[0])
COND_LOAD1381(TRUE, i614[1], i669[1], i616[1]) → LOAD1471(i616[1], i669[1], i614[1], i669[1])
TRUE1 → &&(TRUE, TRUE)1
FALSE1 → &&(TRUE, FALSE)1
FALSE1 → &&(FALSE, TRUE)1
FALSE1 → &&(FALSE, FALSE)1
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
~ | Bwxor: (Integer, Integer) -> Integer | |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
~ | Bwxor: (Integer, Integer) -> Integer | |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |
Integer
(1) -> (4), if ((i614[1] →* i730[4])∧(i669[1] →* i669[4])∧(i616[1] →* i616[4])∧(i669[1] →* 0))
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
~ | Bwxor: (Integer, Integer) -> Integer | |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |
Integer
(1) -> (2), if ((i614[1] →* i730[2])∧(i669[1] →* i743[2])∧(i669[1] →* i669[2])∧(i616[1] →* i616[2]))
(3) -> (2), if ((i669[3] →* i669[2])∧(i743[3] + -1 →* i743[2])∧(i616[3] →* i616[2])∧(i730[3] + -1 →* i730[2]))
(2) -> (3), if ((i669[2] →* i669[3])∧(i743[2] > 0 →* TRUE)∧(i743[2] →* i743[3])∧(i730[2] →* i730[3])∧(i616[2] →* i616[3]))
(1) -> (4), if ((i614[1] →* i730[4])∧(i669[1] →* i669[4])∧(i616[1] →* i616[4])∧(i669[1] →* 0))
(3) -> (4), if ((i669[3] →* i669[4])∧(i730[3] + -1 →* i730[4])∧(i616[3] →* i616[4])∧(i743[3] + -1 →* 0))
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
~ | Bwxor: (Integer, Integer) -> Integer | |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |
Integer
(3) -> (2), if ((i669[3] →* i669[2])∧(i743[3] + -1 →* i743[2])∧(i616[3] →* i616[2])∧(i730[3] + -1 →* i730[2]))
(2) -> (3), if ((i669[2] →* i669[3])∧(i743[2] > 0 →* TRUE)∧(i743[2] →* i743[3])∧(i730[2] →* i730[3])∧(i616[2] →* i616[3]))
(1) (i669[2]=i669[3]∧>(i743[2], 0)=TRUE∧i743[2]=i743[3]∧i730[2]=i730[3]∧i616[2]=i616[3]∧i669[3]=i669[2]1∧+(i743[3], -1)=i743[2]1∧i616[3]=i616[2]1∧+(i730[3], -1)=i730[2]1 ⇒ COND_LOAD1471(TRUE, i616[3], i669[3], i730[3], i743[3])≥NonInfC∧COND_LOAD1471(TRUE, i616[3], i669[3], i730[3], i743[3])≥LOAD1471(i616[3], i669[3], +(i730[3], -1), +(i743[3], -1))∧(UIncreasing(LOAD1471(i616[3], i669[3], +(i730[3], -1), +(i743[3], -1))), ≥))
(2) (>(i743[2], 0)=TRUE ⇒ COND_LOAD1471(TRUE, i616[2], i669[2], i730[2], i743[2])≥NonInfC∧COND_LOAD1471(TRUE, i616[2], i669[2], i730[2], i743[2])≥LOAD1471(i616[2], i669[2], +(i730[2], -1), +(i743[2], -1))∧(UIncreasing(LOAD1471(i616[3], i669[3], +(i730[3], -1), +(i743[3], -1))), ≥))
(3) (i743[2] + [-1] ≥ 0 ⇒ (UIncreasing(LOAD1471(i616[3], i669[3], +(i730[3], -1), +(i743[3], -1))), ≥)∧[(2)bni_15 + (-1)Bound*bni_15] + [bni_15]i743[2] ≥ 0∧[1 + (-1)bso_16] ≥ 0)
(4) (i743[2] + [-1] ≥ 0 ⇒ (UIncreasing(LOAD1471(i616[3], i669[3], +(i730[3], -1), +(i743[3], -1))), ≥)∧[(2)bni_15 + (-1)Bound*bni_15] + [bni_15]i743[2] ≥ 0∧[1 + (-1)bso_16] ≥ 0)
(5) (i743[2] + [-1] ≥ 0 ⇒ (UIncreasing(LOAD1471(i616[3], i669[3], +(i730[3], -1), +(i743[3], -1))), ≥)∧[(2)bni_15 + (-1)Bound*bni_15] + [bni_15]i743[2] ≥ 0∧[1 + (-1)bso_16] ≥ 0)
(6) (i743[2] + [-1] ≥ 0 ⇒ (UIncreasing(LOAD1471(i616[3], i669[3], +(i730[3], -1), +(i743[3], -1))), ≥)∧0 = 0∧0 = 0∧0 = 0∧[(2)bni_15 + (-1)Bound*bni_15] + [bni_15]i743[2] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_16] ≥ 0)
(7) (i743[2] ≥ 0 ⇒ (UIncreasing(LOAD1471(i616[3], i669[3], +(i730[3], -1), +(i743[3], -1))), ≥)∧0 = 0∧0 = 0∧0 = 0∧[(3)bni_15 + (-1)Bound*bni_15] + [bni_15]i743[2] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_16] ≥ 0)
(8) (i669[2]=i669[3]∧>(i743[2], 0)=TRUE∧i743[2]=i743[3]∧i730[2]=i730[3]∧i616[2]=i616[3] ⇒ LOAD1471(i616[2], i669[2], i730[2], i743[2])≥NonInfC∧LOAD1471(i616[2], i669[2], i730[2], i743[2])≥COND_LOAD1471(>(i743[2], 0), i616[2], i669[2], i730[2], i743[2])∧(UIncreasing(COND_LOAD1471(>(i743[2], 0), i616[2], i669[2], i730[2], i743[2])), ≥))
(9) (>(i743[2], 0)=TRUE ⇒ LOAD1471(i616[2], i669[2], i730[2], i743[2])≥NonInfC∧LOAD1471(i616[2], i669[2], i730[2], i743[2])≥COND_LOAD1471(>(i743[2], 0), i616[2], i669[2], i730[2], i743[2])∧(UIncreasing(COND_LOAD1471(>(i743[2], 0), i616[2], i669[2], i730[2], i743[2])), ≥))
(10) (i743[2] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD1471(>(i743[2], 0), i616[2], i669[2], i730[2], i743[2])), ≥)∧[(2)bni_17 + (-1)Bound*bni_17] + [bni_17]i743[2] ≥ 0∧[(-1)bso_18] ≥ 0)
(11) (i743[2] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD1471(>(i743[2], 0), i616[2], i669[2], i730[2], i743[2])), ≥)∧[(2)bni_17 + (-1)Bound*bni_17] + [bni_17]i743[2] ≥ 0∧[(-1)bso_18] ≥ 0)
(12) (i743[2] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD1471(>(i743[2], 0), i616[2], i669[2], i730[2], i743[2])), ≥)∧[(2)bni_17 + (-1)Bound*bni_17] + [bni_17]i743[2] ≥ 0∧[(-1)bso_18] ≥ 0)
(13) (i743[2] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD1471(>(i743[2], 0), i616[2], i669[2], i730[2], i743[2])), ≥)∧0 = 0∧0 = 0∧0 = 0∧[(2)bni_17 + (-1)Bound*bni_17] + [bni_17]i743[2] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_18] ≥ 0)
(14) (i743[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD1471(>(i743[2], 0), i616[2], i669[2], i730[2], i743[2])), ≥)∧0 = 0∧0 = 0∧0 = 0∧[(3)bni_17 + (-1)Bound*bni_17] + [bni_17]i743[2] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_18] ≥ 0)
POL(TRUE) = [2]
POL(FALSE) = 0
POL(COND_LOAD1471(x1, x2, x3, x4, x5)) = [2] + x5
POL(LOAD1471(x1, x2, x3, x4)) = [2] + x4
POL(+(x1, x2)) = x1 + x2
POL(-1) = [-1]
POL(>(x1, x2)) = [-1]
POL(0) = 0
COND_LOAD1471(TRUE, i616[3], i669[3], i730[3], i743[3]) → LOAD1471(i616[3], i669[3], +(i730[3], -1), +(i743[3], -1))
COND_LOAD1471(TRUE, i616[3], i669[3], i730[3], i743[3]) → LOAD1471(i616[3], i669[3], +(i730[3], -1), +(i743[3], -1))
LOAD1471(i616[2], i669[2], i730[2], i743[2]) → COND_LOAD1471(>(i743[2], 0), i616[2], i669[2], i730[2], i743[2])
LOAD1471(i616[2], i669[2], i730[2], i743[2]) → COND_LOAD1471(>(i743[2], 0), i616[2], i669[2], i730[2], i743[2])
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
~ | Bwxor: (Integer, Integer) -> Integer | |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |
Integer
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
~ | Bwxor: (Integer, Integer) -> Integer | |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |