0 JBC
↳1 JBC2FIG (⇐)
↳2 FIGraph
↳3 FIGtoITRSProof (⇐)
↳4 ITRS
↳5 ITRStoIDPProof (⇔)
↳6 IDP
↳7 UsableRulesProof (⇔)
↳8 IDP
↳9 IDPNonInfProof (⇐)
↳10 AND
↳11 IDP
↳12 IDependencyGraphProof (⇔)
↳13 TRUE
↳14 IDP
↳15 IDependencyGraphProof (⇔)
↳16 TRUE
/**
* Example taken from "A Term Rewriting Approach to the Automated Termination
* Analysis of Imperative Programs" (http://www.cs.unm.edu/~spf/papers/2009-02.pdf)
* and converted to Java.
*/
public class PastaA10 {
public static void main(String[] args) {
Random.args = args;
int x = Random.random();
int y = Random.random();
while (x != y) {
if (x > y) {
y++;
} else {
x++;
}
}
}
}
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 |
!= | ~ | 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
(0) -> (1), if ((i14[0] < i53[0] →* TRUE)∧(i53[0] →* i53[1])∧(i14[0] →* i14[1]))
(1) -> (0), if ((i14[1] + 1 →* i14[0])∧(i53[1] →* i53[0]))
(1) -> (2), if ((i14[1] + 1 →* i14[2])∧(i53[1] →* i53[2]))
(2) -> (3), if ((i14[2] →* i14[3])∧(i53[2] →* i53[3])∧(i14[2] > i53[2] →* TRUE))
(3) -> (0), if ((i53[3] + 1 →* i53[0])∧(i14[3] →* i14[0]))
(3) -> (2), if ((i53[3] + 1 →* i53[2])∧(i14[3] →* i14[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
(0) -> (1), if ((i14[0] < i53[0] →* TRUE)∧(i53[0] →* i53[1])∧(i14[0] →* i14[1]))
(1) -> (0), if ((i14[1] + 1 →* i14[0])∧(i53[1] →* i53[0]))
(1) -> (2), if ((i14[1] + 1 →* i14[2])∧(i53[1] →* i53[2]))
(2) -> (3), if ((i14[2] →* i14[3])∧(i53[2] →* i53[3])∧(i14[2] > i53[2] →* TRUE))
(3) -> (0), if ((i53[3] + 1 →* i53[0])∧(i14[3] →* i14[0]))
(3) -> (2), if ((i53[3] + 1 →* i53[2])∧(i14[3] →* i14[2]))
(1) (<(i14[0], i53[0])=TRUE∧i53[0]=i53[1]∧i14[0]=i14[1] ⇒ LOAD1069(i14[0], i53[0])≥NonInfC∧LOAD1069(i14[0], i53[0])≥COND_LOAD1069(<(i14[0], i53[0]), i14[0], i53[0])∧(UIncreasing(COND_LOAD1069(<(i14[0], i53[0]), i14[0], i53[0])), ≥))
(2) (<(i14[0], i53[0])=TRUE ⇒ LOAD1069(i14[0], i53[0])≥NonInfC∧LOAD1069(i14[0], i53[0])≥COND_LOAD1069(<(i14[0], i53[0]), i14[0], i53[0])∧(UIncreasing(COND_LOAD1069(<(i14[0], i53[0]), i14[0], i53[0])), ≥))
(3) (i53[0] + [-1] + [-1]i14[0] ≥ 0 ⇒ (UIncreasing(COND_LOAD1069(<(i14[0], i53[0]), i14[0], i53[0])), ≥)∧[(-1)bni_13 + (-1)Bound*bni_13] + [bni_13]max{i14[0] + [-1]i53[0], [-1]i14[0] + i53[0]} ≥ 0∧[(-1)bso_14] + max{i14[0] + [-1]i53[0], [-1]i14[0] + i53[0]} + [-1]max{i14[0] + [-1]i53[0], [-1]i14[0] + i53[0]} ≥ 0)
(4) (i53[0] + [-1] + [-1]i14[0] ≥ 0 ⇒ (UIncreasing(COND_LOAD1069(<(i14[0], i53[0]), i14[0], i53[0])), ≥)∧[(-1)bni_13 + (-1)Bound*bni_13] + [bni_13]max{i14[0] + [-1]i53[0], [-1]i14[0] + i53[0]} ≥ 0∧[(-1)bso_14] + max{i14[0] + [-1]i53[0], [-1]i14[0] + i53[0]} + [-1]max{i14[0] + [-1]i53[0], [-1]i14[0] + i53[0]} ≥ 0)
(5) (i53[0] + [-1] + [-1]i14[0] ≥ 0∧[-1] + [-2]i14[0] + [2]i53[0] ≥ 0 ⇒ (UIncreasing(COND_LOAD1069(<(i14[0], i53[0]), i14[0], i53[0])), ≥)∧[(-1)bni_13 + (-1)Bound*bni_13] + [(-1)bni_13]i14[0] + [bni_13]i53[0] ≥ 0∧[(-1)bso_14] ≥ 0)
(6) (i53[0] ≥ 0∧[1] + [2]i53[0] ≥ 0 ⇒ (UIncreasing(COND_LOAD1069(<(i14[0], i53[0]), i14[0], i53[0])), ≥)∧[(-1)Bound*bni_13] + [bni_13]i53[0] ≥ 0∧[(-1)bso_14] ≥ 0)
(7) (i53[0] ≥ 0∧[1] + [2]i53[0] ≥ 0∧i14[0] ≥ 0 ⇒ (UIncreasing(COND_LOAD1069(<(i14[0], i53[0]), i14[0], i53[0])), ≥)∧[(-1)Bound*bni_13] + [bni_13]i53[0] ≥ 0∧[(-1)bso_14] ≥ 0)
(8) (i53[0] ≥ 0∧[1] + [2]i53[0] ≥ 0∧i14[0] ≥ 0 ⇒ (UIncreasing(COND_LOAD1069(<(i14[0], i53[0]), i14[0], i53[0])), ≥)∧[(-1)Bound*bni_13] + [bni_13]i53[0] ≥ 0∧[(-1)bso_14] ≥ 0)
(9) (i53[0] ≥ 0∧i14[0] ≥ 0∧i53[0] ≥ 0 ⇒ (UIncreasing(COND_LOAD1069(<(i14[0], i53[0]), i14[0], i53[0])), ≥)∧[(-1)Bound*bni_13] + [bni_13]i53[0] ≥ 0∧[(-1)bso_14] ≥ 0)
(10) (i53[0] ≥ 0∧i14[0] ≥ 0∧i53[0] ≥ 0 ⇒ (UIncreasing(COND_LOAD1069(<(i14[0], i53[0]), i14[0], i53[0])), ≥)∧[(-1)Bound*bni_13] + [bni_13]i53[0] ≥ 0∧[(-1)bso_14] ≥ 0)
(11) (+(i14[1], 1)=i14[0]∧i53[1]=i53[0]∧<(i14[0], i53[0])=TRUE∧i53[0]=i53[1]1∧i14[0]=i14[1]1 ⇒ COND_LOAD1069(TRUE, i14[1]1, i53[1]1)≥NonInfC∧COND_LOAD1069(TRUE, i14[1]1, i53[1]1)≥LOAD1069(+(i14[1]1, 1), i53[1]1)∧(UIncreasing(LOAD1069(+(i14[1]1, 1), i53[1]1)), ≥))
(12) (<(+(i14[1], 1), i53[0])=TRUE ⇒ COND_LOAD1069(TRUE, +(i14[1], 1), i53[0])≥NonInfC∧COND_LOAD1069(TRUE, +(i14[1], 1), i53[0])≥LOAD1069(+(+(i14[1], 1), 1), i53[0])∧(UIncreasing(LOAD1069(+(i14[1]1, 1), i53[1]1)), ≥))
(13) (i53[0] + [-2] + [-1]i14[1] ≥ 0 ⇒ (UIncreasing(LOAD1069(+(i14[1]1, 1), i53[1]1)), ≥)∧[(-1)bni_15 + (-1)Bound*bni_15] + [bni_15]max{[1] + i14[1] + [-1]i53[0], [-1] + [-1]i14[1] + i53[0]} ≥ 0∧[(-1)bso_16] + max{[1] + i14[1] + [-1]i53[0], [-1] + [-1]i14[1] + i53[0]} + [-1]max{[2] + i14[1] + [-1]i53[0], [-2] + [-1]i14[1] + i53[0]} ≥ 0)
(14) (i53[0] + [-2] + [-1]i14[1] ≥ 0 ⇒ (UIncreasing(LOAD1069(+(i14[1]1, 1), i53[1]1)), ≥)∧[(-1)bni_15 + (-1)Bound*bni_15] + [bni_15]max{[1] + i14[1] + [-1]i53[0], [-1] + [-1]i14[1] + i53[0]} ≥ 0∧[(-1)bso_16] + max{[1] + i14[1] + [-1]i53[0], [-1] + [-1]i14[1] + i53[0]} + [-1]max{[2] + i14[1] + [-1]i53[0], [-2] + [-1]i14[1] + i53[0]} ≥ 0)
(15) (i53[0] + [-2] + [-1]i14[1] ≥ 0∧[-3] + [-2]i14[1] + [2]i53[0] ≥ 0∧[4] + [2]i14[1] + [-2]i53[0] ≥ 0 ⇒ (UIncreasing(LOAD1069(+(i14[1]1, 1), i53[1]1)), ≥)∧[(-2)bni_15 + (-1)Bound*bni_15] + [(-1)bni_15]i14[1] + [bni_15]i53[0] ≥ 0∧[-3 + (-1)bso_16] + [-2]i14[1] + [2]i53[0] ≥ 0)
(16) (i53[0] + [-2] + [-1]i14[1] ≥ 0∧[-3] + [-2]i14[1] + [2]i53[0] ≥ 0∧[-5] + [-2]i14[1] + [2]i53[0] ≥ 0 ⇒ (UIncreasing(LOAD1069(+(i14[1]1, 1), i53[1]1)), ≥)∧[(-2)bni_15 + (-1)Bound*bni_15] + [(-1)bni_15]i14[1] + [bni_15]i53[0] ≥ 0∧[1 + (-1)bso_16] ≥ 0)
(17) (i53[0] ≥ 0∧[1] + [2]i53[0] ≥ 0∧[-2]i53[0] ≥ 0 ⇒ (UIncreasing(LOAD1069(+(i14[1]1, 1), i53[1]1)), ≥)∧[(-1)Bound*bni_15] + [bni_15]i53[0] ≥ 0∧[1 + (-1)bso_16] + [2]i53[0] ≥ 0)
(18) (i53[0] ≥ 0∧[1] + [2]i53[0] ≥ 0∧[-1] + [2]i53[0] ≥ 0 ⇒ (UIncreasing(LOAD1069(+(i14[1]1, 1), i53[1]1)), ≥)∧[(-1)Bound*bni_15] + [bni_15]i53[0] ≥ 0∧[1 + (-1)bso_16] ≥ 0)
(19) (0 ≥ 0∧[1] ≥ 0∧0 ≥ 0 ⇒ (UIncreasing(LOAD1069(+(i14[1]1, 1), i53[1]1)), ≥)∧[(-1)Bound*bni_15] ≥ 0∧[1 + (-1)bso_16] ≥ 0)
(20) (0 ≥ 0∧[1] ≥ 0∧0 ≥ 0∧i14[1] ≥ 0 ⇒ (UIncreasing(LOAD1069(+(i14[1]1, 1), i53[1]1)), ≥)∧[(-1)Bound*bni_15] ≥ 0∧[1 + (-1)bso_16] ≥ 0)
(21) (0 ≥ 0∧[1] ≥ 0∧0 ≥ 0∧i14[1] ≥ 0 ⇒ (UIncreasing(LOAD1069(+(i14[1]1, 1), i53[1]1)), ≥)∧[(-1)Bound*bni_15] ≥ 0∧[1 + (-1)bso_16] ≥ 0)
(22) (i53[0] ≥ 0∧[1] + [2]i53[0] ≥ 0∧[-1] + [2]i53[0] ≥ 0∧i14[1] ≥ 0 ⇒ (UIncreasing(LOAD1069(+(i14[1]1, 1), i53[1]1)), ≥)∧[(-1)Bound*bni_15] + [bni_15]i53[0] ≥ 0∧[1 + (-1)bso_16] ≥ 0)
(23) (i53[0] ≥ 0∧[1] + [2]i53[0] ≥ 0∧[-1] + [2]i53[0] ≥ 0∧i14[1] ≥ 0 ⇒ (UIncreasing(LOAD1069(+(i14[1]1, 1), i53[1]1)), ≥)∧[(-1)Bound*bni_15] + [bni_15]i53[0] ≥ 0∧[1 + (-1)bso_16] ≥ 0)
(24) (i53[0] ≥ 0∧i14[1] ≥ 0∧i53[0] ≥ 0∧i53[0] ≥ 0 ⇒ (UIncreasing(LOAD1069(+(i14[1]1, 1), i53[1]1)), ≥)∧[(-1)Bound*bni_15] + [bni_15]i53[0] ≥ 0∧[1 + (-1)bso_16] ≥ 0)
(25) (i53[0] ≥ 0∧i14[1] ≥ 0∧i53[0] ≥ 0∧i53[0] ≥ 0 ⇒ (UIncreasing(LOAD1069(+(i14[1]1, 1), i53[1]1)), ≥)∧[(-1)Bound*bni_15] + [bni_15]i53[0] ≥ 0∧[1 + (-1)bso_16] ≥ 0)
(26) (+(i53[3], 1)=i53[0]∧i14[3]=i14[0]∧<(i14[0], i53[0])=TRUE∧i53[0]=i53[1]∧i14[0]=i14[1] ⇒ COND_LOAD1069(TRUE, i14[1], i53[1])≥NonInfC∧COND_LOAD1069(TRUE, i14[1], i53[1])≥LOAD1069(+(i14[1], 1), i53[1])∧(UIncreasing(LOAD1069(+(i14[1], 1), i53[1])), ≥))
(27) (<(i14[0], +(i53[3], 1))=TRUE ⇒ COND_LOAD1069(TRUE, i14[0], +(i53[3], 1))≥NonInfC∧COND_LOAD1069(TRUE, i14[0], +(i53[3], 1))≥LOAD1069(+(i14[0], 1), +(i53[3], 1))∧(UIncreasing(LOAD1069(+(i14[1], 1), i53[1])), ≥))
(28) (i53[3] + [-1]i14[0] ≥ 0 ⇒ (UIncreasing(LOAD1069(+(i14[1], 1), i53[1])), ≥)∧[(-1)bni_15 + (-1)Bound*bni_15] + [bni_15]max{[-1] + i14[0] + [-1]i53[3], [1] + [-1]i14[0] + i53[3]} ≥ 0∧[(-1)bso_16] + max{[-1] + i14[0] + [-1]i53[3], [1] + [-1]i14[0] + i53[3]} + [-1]max{i14[0] + [-1]i53[3], [-1]i14[0] + i53[3]} ≥ 0)
(29) (i53[3] + [-1]i14[0] ≥ 0 ⇒ (UIncreasing(LOAD1069(+(i14[1], 1), i53[1])), ≥)∧[(-1)bni_15 + (-1)Bound*bni_15] + [bni_15]max{[-1] + i14[0] + [-1]i53[3], [1] + [-1]i14[0] + i53[3]} ≥ 0∧[(-1)bso_16] + max{[-1] + i14[0] + [-1]i53[3], [1] + [-1]i14[0] + i53[3]} + [-1]max{i14[0] + [-1]i53[3], [-1]i14[0] + i53[3]} ≥ 0)
(30) (i53[3] + [-1]i14[0] ≥ 0∧[1] + [-2]i14[0] + [2]i53[3] ≥ 0∧[2]i14[0] + [-2]i53[3] ≥ 0 ⇒ (UIncreasing(LOAD1069(+(i14[1], 1), i53[1])), ≥)∧[(-1)Bound*bni_15] + [(-1)bni_15]i14[0] + [bni_15]i53[3] ≥ 0∧[1 + (-1)bso_16] + [-2]i14[0] + [2]i53[3] ≥ 0)
(31) (i53[3] + [-1]i14[0] ≥ 0∧[1] + [-2]i14[0] + [2]i53[3] ≥ 0∧[-1] + [-2]i14[0] + [2]i53[3] ≥ 0 ⇒ (UIncreasing(LOAD1069(+(i14[1], 1), i53[1])), ≥)∧[(-1)Bound*bni_15] + [(-1)bni_15]i14[0] + [bni_15]i53[3] ≥ 0∧[1 + (-1)bso_16] ≥ 0)
(32) (i53[3] ≥ 0∧[1] + [2]i53[3] ≥ 0∧[-2]i53[3] ≥ 0 ⇒ (UIncreasing(LOAD1069(+(i14[1], 1), i53[1])), ≥)∧[(-1)Bound*bni_15] + [bni_15]i53[3] ≥ 0∧[1 + (-1)bso_16] + [2]i53[3] ≥ 0)
(33) (i53[3] ≥ 0∧[1] + [2]i53[3] ≥ 0∧[-1] + [2]i53[3] ≥ 0 ⇒ (UIncreasing(LOAD1069(+(i14[1], 1), i53[1])), ≥)∧[(-1)Bound*bni_15] + [bni_15]i53[3] ≥ 0∧[1 + (-1)bso_16] ≥ 0)
(34) (0 ≥ 0∧[1] ≥ 0∧0 ≥ 0 ⇒ (UIncreasing(LOAD1069(+(i14[1], 1), i53[1])), ≥)∧[(-1)Bound*bni_15] ≥ 0∧[1 + (-1)bso_16] ≥ 0)
(35) (0 ≥ 0∧[1] ≥ 0∧0 ≥ 0∧i14[0] ≥ 0 ⇒ (UIncreasing(LOAD1069(+(i14[1], 1), i53[1])), ≥)∧[(-1)Bound*bni_15] ≥ 0∧[1 + (-1)bso_16] ≥ 0)
(36) (0 ≥ 0∧[1] ≥ 0∧0 ≥ 0∧i14[0] ≥ 0 ⇒ (UIncreasing(LOAD1069(+(i14[1], 1), i53[1])), ≥)∧[(-1)Bound*bni_15] ≥ 0∧[1 + (-1)bso_16] ≥ 0)
(37) (i53[3] ≥ 0∧[1] + [2]i53[3] ≥ 0∧[-1] + [2]i53[3] ≥ 0∧i14[0] ≥ 0 ⇒ (UIncreasing(LOAD1069(+(i14[1], 1), i53[1])), ≥)∧[(-1)Bound*bni_15] + [bni_15]i53[3] ≥ 0∧[1 + (-1)bso_16] ≥ 0)
(38) (i53[3] ≥ 0∧[1] + [2]i53[3] ≥ 0∧[-1] + [2]i53[3] ≥ 0∧i14[0] ≥ 0 ⇒ (UIncreasing(LOAD1069(+(i14[1], 1), i53[1])), ≥)∧[(-1)Bound*bni_15] + [bni_15]i53[3] ≥ 0∧[1 + (-1)bso_16] ≥ 0)
(39) (i53[3] ≥ 0∧i14[0] ≥ 0∧i53[3] ≥ 0∧i53[3] ≥ 0 ⇒ (UIncreasing(LOAD1069(+(i14[1], 1), i53[1])), ≥)∧[(-1)Bound*bni_15] + [bni_15]i53[3] ≥ 0∧[1 + (-1)bso_16] ≥ 0)
(40) (i53[3] ≥ 0∧i14[0] ≥ 0∧i53[3] ≥ 0∧i53[3] ≥ 0 ⇒ (UIncreasing(LOAD1069(+(i14[1], 1), i53[1])), ≥)∧[(-1)Bound*bni_15] + [bni_15]i53[3] ≥ 0∧[1 + (-1)bso_16] ≥ 0)
(41) (i14[2]=i14[3]∧i53[2]=i53[3]∧>(i14[2], i53[2])=TRUE ⇒ LOAD1069(i14[2], i53[2])≥NonInfC∧LOAD1069(i14[2], i53[2])≥COND_LOAD10691(>(i14[2], i53[2]), i14[2], i53[2])∧(UIncreasing(COND_LOAD10691(>(i14[2], i53[2]), i14[2], i53[2])), ≥))
(42) (>(i14[2], i53[2])=TRUE ⇒ LOAD1069(i14[2], i53[2])≥NonInfC∧LOAD1069(i14[2], i53[2])≥COND_LOAD10691(>(i14[2], i53[2]), i14[2], i53[2])∧(UIncreasing(COND_LOAD10691(>(i14[2], i53[2]), i14[2], i53[2])), ≥))
(43) (i14[2] + [-1] + [-1]i53[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD10691(>(i14[2], i53[2]), i14[2], i53[2])), ≥)∧[(-1)bni_17 + (-1)Bound*bni_17] + [bni_17]max{i14[2] + [-1]i53[2], [-1]i14[2] + i53[2]} ≥ 0∧[(-1)bso_18] + max{i14[2] + [-1]i53[2], [-1]i14[2] + i53[2]} + [-1]max{i14[2] + [-1]i53[2], [-1]i14[2] + i53[2]} ≥ 0)
(44) (i14[2] + [-1] + [-1]i53[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD10691(>(i14[2], i53[2]), i14[2], i53[2])), ≥)∧[(-1)bni_17 + (-1)Bound*bni_17] + [bni_17]max{i14[2] + [-1]i53[2], [-1]i14[2] + i53[2]} ≥ 0∧[(-1)bso_18] + max{i14[2] + [-1]i53[2], [-1]i14[2] + i53[2]} + [-1]max{i14[2] + [-1]i53[2], [-1]i14[2] + i53[2]} ≥ 0)
(45) (i14[2] + [-1] + [-1]i53[2] ≥ 0∧[2]i14[2] + [-2]i53[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD10691(>(i14[2], i53[2]), i14[2], i53[2])), ≥)∧[(-1)bni_17 + (-1)Bound*bni_17] + [bni_17]i14[2] + [(-1)bni_17]i53[2] ≥ 0∧[(-1)bso_18] ≥ 0)
(46) (i14[2] ≥ 0∧[2] + [2]i14[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD10691(>(i14[2], i53[2]), i14[2], i53[2])), ≥)∧[(-1)Bound*bni_17] + [bni_17]i14[2] ≥ 0∧[(-1)bso_18] ≥ 0)
(47) (i14[2] ≥ 0∧[2] + [2]i14[2] ≥ 0∧i53[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD10691(>(i14[2], i53[2]), i14[2], i53[2])), ≥)∧[(-1)Bound*bni_17] + [bni_17]i14[2] ≥ 0∧[(-1)bso_18] ≥ 0)
(48) (i14[2] ≥ 0∧[2] + [2]i14[2] ≥ 0∧i53[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD10691(>(i14[2], i53[2]), i14[2], i53[2])), ≥)∧[(-1)Bound*bni_17] + [bni_17]i14[2] ≥ 0∧[(-1)bso_18] ≥ 0)
(49) (i14[2] ≥ 0∧i53[2] ≥ 0∧[1] + i14[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD10691(>(i14[2], i53[2]), i14[2], i53[2])), ≥)∧[(-1)Bound*bni_17] + [bni_17]i14[2] ≥ 0∧[(-1)bso_18] ≥ 0)
(50) (i14[2] ≥ 0∧i53[2] ≥ 0∧[1] + i14[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD10691(>(i14[2], i53[2]), i14[2], i53[2])), ≥)∧[(-1)Bound*bni_17] + [bni_17]i14[2] ≥ 0∧[(-1)bso_18] ≥ 0)
(51) (+(i14[1], 1)=i14[2]∧i53[1]=i53[2]∧i14[2]=i14[3]∧i53[2]=i53[3]∧>(i14[2], i53[2])=TRUE ⇒ COND_LOAD10691(TRUE, i14[3], i53[3])≥NonInfC∧COND_LOAD10691(TRUE, i14[3], i53[3])≥LOAD1069(i14[3], +(i53[3], 1))∧(UIncreasing(LOAD1069(i14[3], +(i53[3], 1))), ≥))
(52) (>(+(i14[1], 1), i53[2])=TRUE ⇒ COND_LOAD10691(TRUE, +(i14[1], 1), i53[2])≥NonInfC∧COND_LOAD10691(TRUE, +(i14[1], 1), i53[2])≥LOAD1069(+(i14[1], 1), +(i53[2], 1))∧(UIncreasing(LOAD1069(i14[3], +(i53[3], 1))), ≥))
(53) (i14[1] + [-1]i53[2] ≥ 0 ⇒ (UIncreasing(LOAD1069(i14[3], +(i53[3], 1))), ≥)∧[(-1)bni_19 + (-1)Bound*bni_19] + [bni_19]max{[1] + i14[1] + [-1]i53[2], [-1] + [-1]i14[1] + i53[2]} ≥ 0∧[(-1)bso_20] + max{[1] + i14[1] + [-1]i53[2], [-1] + [-1]i14[1] + i53[2]} + [-1]max{i14[1] + [-1]i53[2], [-1]i14[1] + i53[2]} ≥ 0)
(54) (i14[1] + [-1]i53[2] ≥ 0 ⇒ (UIncreasing(LOAD1069(i14[3], +(i53[3], 1))), ≥)∧[(-1)bni_19 + (-1)Bound*bni_19] + [bni_19]max{[1] + i14[1] + [-1]i53[2], [-1] + [-1]i14[1] + i53[2]} ≥ 0∧[(-1)bso_20] + max{[1] + i14[1] + [-1]i53[2], [-1] + [-1]i14[1] + i53[2]} + [-1]max{i14[1] + [-1]i53[2], [-1]i14[1] + i53[2]} ≥ 0)
(55) (i14[1] + [-1]i53[2] ≥ 0∧[2] + [2]i14[1] + [-2]i53[2] ≥ 0∧[2]i14[1] + [-2]i53[2] ≥ 0 ⇒ (UIncreasing(LOAD1069(i14[3], +(i53[3], 1))), ≥)∧[(-1)Bound*bni_19] + [bni_19]i14[1] + [(-1)bni_19]i53[2] ≥ 0∧[1 + (-1)bso_20] ≥ 0)
(56) (i14[1] ≥ 0∧[2] + [2]i14[1] ≥ 0∧[2]i14[1] ≥ 0 ⇒ (UIncreasing(LOAD1069(i14[3], +(i53[3], 1))), ≥)∧[(-1)Bound*bni_19] + [bni_19]i14[1] ≥ 0∧[1 + (-1)bso_20] ≥ 0)
(57) (i14[1] ≥ 0∧[2] + [2]i14[1] ≥ 0∧[2]i14[1] ≥ 0∧i53[2] ≥ 0 ⇒ (UIncreasing(LOAD1069(i14[3], +(i53[3], 1))), ≥)∧[(-1)Bound*bni_19] + [bni_19]i14[1] ≥ 0∧[1 + (-1)bso_20] ≥ 0)
(58) (i14[1] ≥ 0∧[2] + [2]i14[1] ≥ 0∧[2]i14[1] ≥ 0∧i53[2] ≥ 0 ⇒ (UIncreasing(LOAD1069(i14[3], +(i53[3], 1))), ≥)∧[(-1)Bound*bni_19] + [bni_19]i14[1] ≥ 0∧[1 + (-1)bso_20] ≥ 0)
(59) (i14[1] ≥ 0∧i53[2] ≥ 0∧[1] + i14[1] ≥ 0∧i14[1] ≥ 0 ⇒ (UIncreasing(LOAD1069(i14[3], +(i53[3], 1))), ≥)∧[(-1)Bound*bni_19] + [bni_19]i14[1] ≥ 0∧[1 + (-1)bso_20] ≥ 0)
(60) (i14[1] ≥ 0∧i53[2] ≥ 0∧[1] + i14[1] ≥ 0∧i14[1] ≥ 0 ⇒ (UIncreasing(LOAD1069(i14[3], +(i53[3], 1))), ≥)∧[(-1)Bound*bni_19] + [bni_19]i14[1] ≥ 0∧[1 + (-1)bso_20] ≥ 0)
(61) (+(i53[3], 1)=i53[2]∧i14[3]=i14[2]∧i14[2]=i14[3]1∧i53[2]=i53[3]1∧>(i14[2], i53[2])=TRUE ⇒ COND_LOAD10691(TRUE, i14[3]1, i53[3]1)≥NonInfC∧COND_LOAD10691(TRUE, i14[3]1, i53[3]1)≥LOAD1069(i14[3]1, +(i53[3]1, 1))∧(UIncreasing(LOAD1069(i14[3]1, +(i53[3]1, 1))), ≥))
(62) (>(i14[2], +(i53[3], 1))=TRUE ⇒ COND_LOAD10691(TRUE, i14[2], +(i53[3], 1))≥NonInfC∧COND_LOAD10691(TRUE, i14[2], +(i53[3], 1))≥LOAD1069(i14[2], +(+(i53[3], 1), 1))∧(UIncreasing(LOAD1069(i14[3]1, +(i53[3]1, 1))), ≥))
(63) (i14[2] + [-2] + [-1]i53[3] ≥ 0 ⇒ (UIncreasing(LOAD1069(i14[3]1, +(i53[3]1, 1))), ≥)∧[(-1)bni_19 + (-1)Bound*bni_19] + [bni_19]max{[-1] + i14[2] + [-1]i53[3], [1] + [-1]i14[2] + i53[3]} ≥ 0∧[(-1)bso_20] + max{[-1] + i14[2] + [-1]i53[3], [1] + [-1]i14[2] + i53[3]} + [-1]max{[-2] + i14[2] + [-1]i53[3], [2] + [-1]i14[2] + i53[3]} ≥ 0)
(64) (i14[2] + [-2] + [-1]i53[3] ≥ 0 ⇒ (UIncreasing(LOAD1069(i14[3]1, +(i53[3]1, 1))), ≥)∧[(-1)bni_19 + (-1)Bound*bni_19] + [bni_19]max{[-1] + i14[2] + [-1]i53[3], [1] + [-1]i14[2] + i53[3]} ≥ 0∧[(-1)bso_20] + max{[-1] + i14[2] + [-1]i53[3], [1] + [-1]i14[2] + i53[3]} + [-1]max{[-2] + i14[2] + [-1]i53[3], [2] + [-1]i14[2] + i53[3]} ≥ 0)
(65) (i14[2] + [-2] + [-1]i53[3] ≥ 0∧[-2] + [2]i14[2] + [-2]i53[3] ≥ 0∧[-4] + [2]i14[2] + [-2]i53[3] ≥ 0 ⇒ (UIncreasing(LOAD1069(i14[3]1, +(i53[3]1, 1))), ≥)∧[(-2)bni_19 + (-1)Bound*bni_19] + [bni_19]i14[2] + [(-1)bni_19]i53[3] ≥ 0∧[1 + (-1)bso_20] ≥ 0)
(66) (i14[2] ≥ 0∧[2] + [2]i14[2] ≥ 0∧[2]i14[2] ≥ 0 ⇒ (UIncreasing(LOAD1069(i14[3]1, +(i53[3]1, 1))), ≥)∧[(-1)Bound*bni_19] + [bni_19]i14[2] ≥ 0∧[1 + (-1)bso_20] ≥ 0)
(67) (i14[2] ≥ 0∧[2] + [2]i14[2] ≥ 0∧[2]i14[2] ≥ 0∧i53[3] ≥ 0 ⇒ (UIncreasing(LOAD1069(i14[3]1, +(i53[3]1, 1))), ≥)∧[(-1)Bound*bni_19] + [bni_19]i14[2] ≥ 0∧[1 + (-1)bso_20] ≥ 0)
(68) (i14[2] ≥ 0∧[2] + [2]i14[2] ≥ 0∧[2]i14[2] ≥ 0∧i53[3] ≥ 0 ⇒ (UIncreasing(LOAD1069(i14[3]1, +(i53[3]1, 1))), ≥)∧[(-1)Bound*bni_19] + [bni_19]i14[2] ≥ 0∧[1 + (-1)bso_20] ≥ 0)
(69) (i14[2] ≥ 0∧i53[3] ≥ 0∧[1] + i14[2] ≥ 0∧i14[2] ≥ 0 ⇒ (UIncreasing(LOAD1069(i14[3]1, +(i53[3]1, 1))), ≥)∧[(-1)Bound*bni_19] + [bni_19]i14[2] ≥ 0∧[1 + (-1)bso_20] ≥ 0)
(70) (i14[2] ≥ 0∧i53[3] ≥ 0∧[1] + i14[2] ≥ 0∧i14[2] ≥ 0 ⇒ (UIncreasing(LOAD1069(i14[3]1, +(i53[3]1, 1))), ≥)∧[(-1)Bound*bni_19] + [bni_19]i14[2] ≥ 0∧[1 + (-1)bso_20] ≥ 0)
POL(TRUE) = 0
POL(FALSE) = 0
POL(LOAD1069(x1, x2)) = [-1] + max{x1 + [-1]x2, [-1]x1 + x2}
POL(COND_LOAD1069(x1, x2, x3)) = [-1] + max{x2 + [-1]x3, [-1]x2 + x3}
POL(<(x1, x2)) = [-1]
POL(+(x1, x2)) = x1 + x2
POL(1) = [1]
POL(COND_LOAD10691(x1, x2, x3)) = [-1] + max{x2 + [-1]x3, [-1]x2 + x3}
POL(>(x1, x2)) = [-1]
COND_LOAD1069(TRUE, i14[1], i53[1]) → LOAD1069(+(i14[1], 1), i53[1])
COND_LOAD10691(TRUE, i14[3], i53[3]) → LOAD1069(i14[3], +(i53[3], 1))
LOAD1069(i14[0], i53[0]) → COND_LOAD1069(<(i14[0], i53[0]), i14[0], i53[0])
COND_LOAD1069(TRUE, i14[1], i53[1]) → LOAD1069(+(i14[1], 1), i53[1])
LOAD1069(i14[2], i53[2]) → COND_LOAD10691(>(i14[2], i53[2]), i14[2], i53[2])
COND_LOAD10691(TRUE, i14[3], i53[3]) → LOAD1069(i14[3], +(i53[3], 1))
LOAD1069(i14[0], i53[0]) → COND_LOAD1069(<(i14[0], i53[0]), i14[0], i53[0])
LOAD1069(i14[2], i53[2]) → COND_LOAD10691(>(i14[2], i53[2]), i14[2], i53[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 |