0 JBC
↳1 JBC2FIG (⇐)
↳2 FIGraph
↳3 FIGtoITRSProof (⇐)
↳4 ITRS
↳5 ITRSFilterProcessorProof (⇐)
↳6 ITRS
↳7 ITRStoIDPProof (⇔)
↳8 IDP
↳9 UsableRulesProof (⇔)
↳10 IDP
↳11 ItpfGraphProof (⇔)
↳12 IDP
↳13 IDPNonInfProof (⇐)
↳14 AND
↳15 IDP
↳16 IDependencyGraphProof (⇔)
↳17 IDP
↳18 IDPNonInfProof (⇐)
↳19 AND
↳20 IDP
↳21 IDependencyGraphProof (⇔)
↳22 TRUE
↳23 IDP
↳24 IDependencyGraphProof (⇔)
↳25 TRUE
↳26 IDP
↳27 IDependencyGraphProof (⇔)
↳28 IDP
↳29 IDPNonInfProof (⇐)
↳30 AND
↳31 IDP
↳32 IDependencyGraphProof (⇔)
↳33 TRUE
↳34 IDP
↳35 IDependencyGraphProof (⇔)
↳36 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 PastaC11 {
public static void main(String[] args) {
Random.args = args;
int x = Random.random();
int y = Random.random();
while (true) {
if (x >= 0) {
x--;
y = Random.random();
} else if (y >= 0) {
y--;
} else {
break;
}
}
}
}
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 |
Load1423ARR1(x1, x2, x3, x4, x5) → Load1423ARR1(x1, x2, x3, x4)
java.lang.String(x1) → java.lang.String
Cond_Load1423ARR1(x1, x2, x3, x4, x5, x6) → Cond_Load1423ARR1(x1, x2, 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 ((i164[0] →* i164[1])∧(java.lang.Object(ARRAY(i6[0], a2251data[0])) →* java.lang.Object(ARRAY(i6[1], a2251data[1])))∧(i165[0] →* i165[1])∧(i162[0] →* i162[1]))
(1) -> (2), if ((i165[1] →* i165[2])∧(i162[1] →* i162[2])∧(java.lang.Object(ARRAY(i6[1], a2251data[1])) →* java.lang.Object(ARRAY(i6[2], a2251data[2])))∧(i162[1] > 0 && i162[1] < i6[1] && i165[1] >= 0 && i162[1] + 1 > 0 →* TRUE)∧(i164[1] →* i164[2]))
(2) -> (0), if ((i165[2] + -1 →* i165[0])∧(java.lang.Object(ARRAY(i6[2], a2251data[2])) →* java.lang.Object(ARRAY(i6[0], a2251data[0])))∧(i162[2] + 1 →* i162[0])∧(i260[2] →* i164[0]))
(2) -> (3), if ((i260[2] →* i175[3])∧(java.lang.Object(ARRAY(i6[2], a2251data[2])) →* java.lang.Object(ARRAY(i6[3], a2251data[3])))∧(i165[2] + -1 →* i166[3])∧(i162[2] + 1 →* i162[3]))
(3) -> (4), if ((i166[3] →* i166[4])∧(i175[3] >= 0 && i166[3] < 0 →* TRUE)∧(i162[3] →* i162[4])∧(java.lang.Object(ARRAY(i6[3], a2251data[3])) →* java.lang.Object(ARRAY(i6[4], a2251data[4])))∧(i175[3] →* i175[4]))
(4) -> (0), if ((i166[4] →* i165[0])∧(i162[4] →* i162[0])∧(i175[4] + -1 →* i164[0])∧(java.lang.Object(ARRAY(i6[4], a2251data[4])) →* java.lang.Object(ARRAY(i6[0], a2251data[0]))))
(4) -> (3), if ((i175[4] + -1 →* i175[3])∧(i162[4] →* i162[3])∧(java.lang.Object(ARRAY(i6[4], a2251data[4])) →* java.lang.Object(ARRAY(i6[3], a2251data[3])))∧(i166[4] →* i166[3]))
!= | ~ | 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 ((i164[0] →* i164[1])∧(java.lang.Object(ARRAY(i6[0], a2251data[0])) →* java.lang.Object(ARRAY(i6[1], a2251data[1])))∧(i165[0] →* i165[1])∧(i162[0] →* i162[1]))
(1) -> (2), if ((i165[1] →* i165[2])∧(i162[1] →* i162[2])∧(java.lang.Object(ARRAY(i6[1], a2251data[1])) →* java.lang.Object(ARRAY(i6[2], a2251data[2])))∧(i162[1] > 0 && i162[1] < i6[1] && i165[1] >= 0 && i162[1] + 1 > 0 →* TRUE)∧(i164[1] →* i164[2]))
(2) -> (0), if ((i165[2] + -1 →* i165[0])∧(java.lang.Object(ARRAY(i6[2], a2251data[2])) →* java.lang.Object(ARRAY(i6[0], a2251data[0])))∧(i162[2] + 1 →* i162[0])∧(i260[2] →* i164[0]))
(2) -> (3), if ((i260[2] →* i175[3])∧(java.lang.Object(ARRAY(i6[2], a2251data[2])) →* java.lang.Object(ARRAY(i6[3], a2251data[3])))∧(i165[2] + -1 →* i166[3])∧(i162[2] + 1 →* i162[3]))
(3) -> (4), if ((i166[3] →* i166[4])∧(i175[3] >= 0 && i166[3] < 0 →* TRUE)∧(i162[3] →* i162[4])∧(java.lang.Object(ARRAY(i6[3], a2251data[3])) →* java.lang.Object(ARRAY(i6[4], a2251data[4])))∧(i175[3] →* i175[4]))
(4) -> (0), if ((i166[4] →* i165[0])∧(i162[4] →* i162[0])∧(i175[4] + -1 →* i164[0])∧(java.lang.Object(ARRAY(i6[4], a2251data[4])) →* java.lang.Object(ARRAY(i6[0], a2251data[0]))))
(4) -> (3), if ((i175[4] + -1 →* i175[3])∧(i162[4] →* i162[3])∧(java.lang.Object(ARRAY(i6[4], a2251data[4])) →* java.lang.Object(ARRAY(i6[3], a2251data[3])))∧(i166[4] →* i166[3]))
!= | ~ | 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 ((i164[0] →* i164[1])∧((i6[0] →* i6[1])∧(a2251data[0] →* a2251data[1]))∧(i165[0] →* i165[1])∧(i162[0] →* i162[1]))
(1) -> (2), if ((i165[1] →* i165[2])∧(i162[1] →* i162[2])∧((i6[1] →* i6[2])∧(a2251data[1] →* a2251data[2]))∧(i162[1] > 0 && i162[1] < i6[1] && i165[1] >= 0 && i162[1] + 1 > 0 →* TRUE)∧(i164[1] →* i164[2]))
(2) -> (0), if ((i165[2] + -1 →* i165[0])∧((i6[2] →* i6[0])∧(a2251data[2] →* a2251data[0]))∧(i162[2] + 1 →* i162[0])∧(i260[2] →* i164[0]))
(2) -> (3), if ((i260[2] →* i175[3])∧((i6[2] →* i6[3])∧(a2251data[2] →* a2251data[3]))∧(i165[2] + -1 →* i166[3])∧(i162[2] + 1 →* i162[3]))
(3) -> (4), if ((i166[3] →* i166[4])∧(i175[3] >= 0 && i166[3] < 0 →* TRUE)∧(i162[3] →* i162[4])∧((i6[3] →* i6[4])∧(a2251data[3] →* a2251data[4]))∧(i175[3] →* i175[4]))
(4) -> (0), if ((i166[4] →* i165[0])∧(i162[4] →* i162[0])∧(i175[4] + -1 →* i164[0])∧((i6[4] →* i6[0])∧(a2251data[4] →* a2251data[0])))
(4) -> (3), if ((i175[4] + -1 →* i175[3])∧(i162[4] →* i162[3])∧((i6[4] →* i6[3])∧(a2251data[4] →* a2251data[3]))∧(i166[4] →* i166[3]))
(1) (i164[0]=i164[1]∧i6[0]=i6[1]∧a2251data[0]=a2251data[1]∧i165[0]=i165[1]∧i162[0]=i162[1] ⇒ LOAD1423(java.lang.Object(ARRAY(i6[0], a2251data[0])), i162[0], i165[0], i164[0])≥NonInfC∧LOAD1423(java.lang.Object(ARRAY(i6[0], a2251data[0])), i162[0], i165[0], i164[0])≥LOAD1423ARR1(java.lang.Object(ARRAY(i6[0], a2251data[0])), i162[0], i165[0], i164[0])∧(UIncreasing(LOAD1423ARR1(java.lang.Object(ARRAY(i6[0], a2251data[0])), i162[0], i165[0], i164[0])), ≥))
(2) (LOAD1423(java.lang.Object(ARRAY(i6[0], a2251data[0])), i162[0], i165[0], i164[0])≥NonInfC∧LOAD1423(java.lang.Object(ARRAY(i6[0], a2251data[0])), i162[0], i165[0], i164[0])≥LOAD1423ARR1(java.lang.Object(ARRAY(i6[0], a2251data[0])), i162[0], i165[0], i164[0])∧(UIncreasing(LOAD1423ARR1(java.lang.Object(ARRAY(i6[0], a2251data[0])), i162[0], i165[0], i164[0])), ≥))
(3) ((UIncreasing(LOAD1423ARR1(java.lang.Object(ARRAY(i6[0], a2251data[0])), i162[0], i165[0], i164[0])), ≥)∧[(-1)bso_35] ≥ 0)
(4) ((UIncreasing(LOAD1423ARR1(java.lang.Object(ARRAY(i6[0], a2251data[0])), i162[0], i165[0], i164[0])), ≥)∧[(-1)bso_35] ≥ 0)
(5) ((UIncreasing(LOAD1423ARR1(java.lang.Object(ARRAY(i6[0], a2251data[0])), i162[0], i165[0], i164[0])), ≥)∧[(-1)bso_35] ≥ 0)
(6) ((UIncreasing(LOAD1423ARR1(java.lang.Object(ARRAY(i6[0], a2251data[0])), i162[0], i165[0], i164[0])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_35] ≥ 0)
(7) (i165[1]=i165[2]∧i162[1]=i162[2]∧i6[1]=i6[2]∧a2251data[1]=a2251data[2]∧&&(&&(&&(>(i162[1], 0), <(i162[1], i6[1])), >=(i165[1], 0)), >(+(i162[1], 1), 0))=TRUE∧i164[1]=i164[2] ⇒ LOAD1423ARR1(java.lang.Object(ARRAY(i6[1], a2251data[1])), i162[1], i165[1], i164[1])≥NonInfC∧LOAD1423ARR1(java.lang.Object(ARRAY(i6[1], a2251data[1])), i162[1], i165[1], i164[1])≥COND_LOAD1423ARR1(&&(&&(&&(>(i162[1], 0), <(i162[1], i6[1])), >=(i165[1], 0)), >(+(i162[1], 1), 0)), java.lang.Object(ARRAY(i6[1], a2251data[1])), i162[1], i165[1], i164[1])∧(UIncreasing(COND_LOAD1423ARR1(&&(&&(&&(>(i162[1], 0), <(i162[1], i6[1])), >=(i165[1], 0)), >(+(i162[1], 1), 0)), java.lang.Object(ARRAY(i6[1], a2251data[1])), i162[1], i165[1], i164[1])), ≥))
(8) (>(+(i162[1], 1), 0)=TRUE∧>=(i165[1], 0)=TRUE∧>(i162[1], 0)=TRUE∧<(i162[1], i6[1])=TRUE ⇒ LOAD1423ARR1(java.lang.Object(ARRAY(i6[1], a2251data[1])), i162[1], i165[1], i164[1])≥NonInfC∧LOAD1423ARR1(java.lang.Object(ARRAY(i6[1], a2251data[1])), i162[1], i165[1], i164[1])≥COND_LOAD1423ARR1(&&(&&(&&(>(i162[1], 0), <(i162[1], i6[1])), >=(i165[1], 0)), >(+(i162[1], 1), 0)), java.lang.Object(ARRAY(i6[1], a2251data[1])), i162[1], i165[1], i164[1])∧(UIncreasing(COND_LOAD1423ARR1(&&(&&(&&(>(i162[1], 0), <(i162[1], i6[1])), >=(i165[1], 0)), >(+(i162[1], 1), 0)), java.lang.Object(ARRAY(i6[1], a2251data[1])), i162[1], i165[1], i164[1])), ≥))
(9) (i162[1] ≥ 0∧i165[1] ≥ 0∧i162[1] + [-1] ≥ 0∧i6[1] + [-1] + [-1]i162[1] ≥ 0 ⇒ (UIncreasing(COND_LOAD1423ARR1(&&(&&(&&(>(i162[1], 0), <(i162[1], i6[1])), >=(i165[1], 0)), >(+(i162[1], 1), 0)), java.lang.Object(ARRAY(i6[1], a2251data[1])), i162[1], i165[1], i164[1])), ≥)∧[(-1)bni_36 + (-1)Bound*bni_36] + [bni_36]i165[1] + [(-1)bni_36]i162[1] + [bni_36]i6[1] ≥ 0∧[(-1)bso_37] ≥ 0)
(10) (i162[1] ≥ 0∧i165[1] ≥ 0∧i162[1] + [-1] ≥ 0∧i6[1] + [-1] + [-1]i162[1] ≥ 0 ⇒ (UIncreasing(COND_LOAD1423ARR1(&&(&&(&&(>(i162[1], 0), <(i162[1], i6[1])), >=(i165[1], 0)), >(+(i162[1], 1), 0)), java.lang.Object(ARRAY(i6[1], a2251data[1])), i162[1], i165[1], i164[1])), ≥)∧[(-1)bni_36 + (-1)Bound*bni_36] + [bni_36]i165[1] + [(-1)bni_36]i162[1] + [bni_36]i6[1] ≥ 0∧[(-1)bso_37] ≥ 0)
(11) (i162[1] ≥ 0∧i165[1] ≥ 0∧i162[1] + [-1] ≥ 0∧i6[1] + [-1] + [-1]i162[1] ≥ 0 ⇒ (UIncreasing(COND_LOAD1423ARR1(&&(&&(&&(>(i162[1], 0), <(i162[1], i6[1])), >=(i165[1], 0)), >(+(i162[1], 1), 0)), java.lang.Object(ARRAY(i6[1], a2251data[1])), i162[1], i165[1], i164[1])), ≥)∧[(-1)bni_36 + (-1)Bound*bni_36] + [bni_36]i165[1] + [(-1)bni_36]i162[1] + [bni_36]i6[1] ≥ 0∧[(-1)bso_37] ≥ 0)
(12) (i162[1] ≥ 0∧i165[1] ≥ 0∧i162[1] + [-1] ≥ 0∧i6[1] + [-1] + [-1]i162[1] ≥ 0 ⇒ (UIncreasing(COND_LOAD1423ARR1(&&(&&(&&(>(i162[1], 0), <(i162[1], i6[1])), >=(i165[1], 0)), >(+(i162[1], 1), 0)), java.lang.Object(ARRAY(i6[1], a2251data[1])), i162[1], i165[1], i164[1])), ≥)∧0 = 0∧0 = 0∧[(-1)bni_36 + (-1)Bound*bni_36] + [bni_36]i165[1] + [(-1)bni_36]i162[1] + [bni_36]i6[1] ≥ 0∧0 = 0∧0 = 0∧[(-1)bso_37] ≥ 0)
(13) ([1] + i162[1] ≥ 0∧i165[1] ≥ 0∧i162[1] ≥ 0∧i6[1] + [-2] + [-1]i162[1] ≥ 0 ⇒ (UIncreasing(COND_LOAD1423ARR1(&&(&&(&&(>(i162[1], 0), <(i162[1], i6[1])), >=(i165[1], 0)), >(+(i162[1], 1), 0)), java.lang.Object(ARRAY(i6[1], a2251data[1])), i162[1], i165[1], i164[1])), ≥)∧0 = 0∧0 = 0∧[(-2)bni_36 + (-1)Bound*bni_36] + [bni_36]i165[1] + [(-1)bni_36]i162[1] + [bni_36]i6[1] ≥ 0∧0 = 0∧0 = 0∧[(-1)bso_37] ≥ 0)
(14) ([1] + i162[1] ≥ 0∧i165[1] ≥ 0∧i162[1] ≥ 0∧i6[1] ≥ 0 ⇒ (UIncreasing(COND_LOAD1423ARR1(&&(&&(&&(>(i162[1], 0), <(i162[1], i6[1])), >=(i165[1], 0)), >(+(i162[1], 1), 0)), java.lang.Object(ARRAY(i6[1], a2251data[1])), i162[1], i165[1], i164[1])), ≥)∧0 = 0∧0 = 0∧[(-1)Bound*bni_36] + [bni_36]i165[1] + [bni_36]i6[1] ≥ 0∧0 = 0∧0 = 0∧[(-1)bso_37] ≥ 0)
(15) (i165[1]=i165[2]∧i162[1]=i162[2]∧i6[1]=i6[2]∧a2251data[1]=a2251data[2]∧&&(&&(&&(>(i162[1], 0), <(i162[1], i6[1])), >=(i165[1], 0)), >(+(i162[1], 1), 0))=TRUE∧i164[1]=i164[2]∧+(i165[2], -1)=i165[0]∧i6[2]=i6[0]∧a2251data[2]=a2251data[0]∧+(i162[2], 1)=i162[0]∧i260[2]=i164[0] ⇒ COND_LOAD1423ARR1(TRUE, java.lang.Object(ARRAY(i6[2], a2251data[2])), i162[2], i165[2], i164[2])≥NonInfC∧COND_LOAD1423ARR1(TRUE, java.lang.Object(ARRAY(i6[2], a2251data[2])), i162[2], i165[2], i164[2])≥LOAD1423(java.lang.Object(ARRAY(i6[2], a2251data[2])), +(i162[2], 1), +(i165[2], -1), i260[2])∧(UIncreasing(LOAD1423(java.lang.Object(ARRAY(i6[2], a2251data[2])), +(i162[2], 1), +(i165[2], -1), i260[2])), ≥))
(16) (>(+(i162[1], 1), 0)=TRUE∧>=(i165[1], 0)=TRUE∧>(i162[1], 0)=TRUE∧<(i162[1], i6[1])=TRUE ⇒ COND_LOAD1423ARR1(TRUE, java.lang.Object(ARRAY(i6[1], a2251data[1])), i162[1], i165[1], i164[1])≥NonInfC∧COND_LOAD1423ARR1(TRUE, java.lang.Object(ARRAY(i6[1], a2251data[1])), i162[1], i165[1], i164[1])≥LOAD1423(java.lang.Object(ARRAY(i6[1], a2251data[1])), +(i162[1], 1), +(i165[1], -1), i260[2])∧(UIncreasing(LOAD1423(java.lang.Object(ARRAY(i6[2], a2251data[2])), +(i162[2], 1), +(i165[2], -1), i260[2])), ≥))
(17) (i162[1] ≥ 0∧i165[1] ≥ 0∧i162[1] + [-1] ≥ 0∧i6[1] + [-1] + [-1]i162[1] ≥ 0 ⇒ (UIncreasing(LOAD1423(java.lang.Object(ARRAY(i6[2], a2251data[2])), +(i162[2], 1), +(i165[2], -1), i260[2])), ≥)∧[(-1)bni_38 + (-1)Bound*bni_38] + [bni_38]i165[1] + [(-1)bni_38]i162[1] + [bni_38]i6[1] ≥ 0∧[2 + (-1)bso_39] ≥ 0)
(18) (i162[1] ≥ 0∧i165[1] ≥ 0∧i162[1] + [-1] ≥ 0∧i6[1] + [-1] + [-1]i162[1] ≥ 0 ⇒ (UIncreasing(LOAD1423(java.lang.Object(ARRAY(i6[2], a2251data[2])), +(i162[2], 1), +(i165[2], -1), i260[2])), ≥)∧[(-1)bni_38 + (-1)Bound*bni_38] + [bni_38]i165[1] + [(-1)bni_38]i162[1] + [bni_38]i6[1] ≥ 0∧[2 + (-1)bso_39] ≥ 0)
(19) (i162[1] ≥ 0∧i165[1] ≥ 0∧i162[1] + [-1] ≥ 0∧i6[1] + [-1] + [-1]i162[1] ≥ 0 ⇒ (UIncreasing(LOAD1423(java.lang.Object(ARRAY(i6[2], a2251data[2])), +(i162[2], 1), +(i165[2], -1), i260[2])), ≥)∧[(-1)bni_38 + (-1)Bound*bni_38] + [bni_38]i165[1] + [(-1)bni_38]i162[1] + [bni_38]i6[1] ≥ 0∧[2 + (-1)bso_39] ≥ 0)
(20) (i162[1] ≥ 0∧i165[1] ≥ 0∧i162[1] + [-1] ≥ 0∧i6[1] + [-1] + [-1]i162[1] ≥ 0 ⇒ (UIncreasing(LOAD1423(java.lang.Object(ARRAY(i6[2], a2251data[2])), +(i162[2], 1), +(i165[2], -1), i260[2])), ≥)∧0 = 0∧0 = 0∧[(-1)bni_38 + (-1)Bound*bni_38] + [bni_38]i165[1] + [(-1)bni_38]i162[1] + [bni_38]i6[1] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧[2 + (-1)bso_39] ≥ 0)
(21) ([1] + i162[1] ≥ 0∧i165[1] ≥ 0∧i162[1] ≥ 0∧i6[1] + [-2] + [-1]i162[1] ≥ 0 ⇒ (UIncreasing(LOAD1423(java.lang.Object(ARRAY(i6[2], a2251data[2])), +(i162[2], 1), +(i165[2], -1), i260[2])), ≥)∧0 = 0∧0 = 0∧[(-2)bni_38 + (-1)Bound*bni_38] + [bni_38]i165[1] + [(-1)bni_38]i162[1] + [bni_38]i6[1] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧[2 + (-1)bso_39] ≥ 0)
(22) ([1] + i162[1] ≥ 0∧i165[1] ≥ 0∧i162[1] ≥ 0∧i6[1] ≥ 0 ⇒ (UIncreasing(LOAD1423(java.lang.Object(ARRAY(i6[2], a2251data[2])), +(i162[2], 1), +(i165[2], -1), i260[2])), ≥)∧0 = 0∧0 = 0∧[(-1)Bound*bni_38] + [bni_38]i165[1] + [bni_38]i6[1] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧[2 + (-1)bso_39] ≥ 0)
(23) (i165[1]=i165[2]∧i162[1]=i162[2]∧i6[1]=i6[2]∧a2251data[1]=a2251data[2]∧&&(&&(&&(>(i162[1], 0), <(i162[1], i6[1])), >=(i165[1], 0)), >(+(i162[1], 1), 0))=TRUE∧i164[1]=i164[2]∧i260[2]=i175[3]∧i6[2]=i6[3]∧a2251data[2]=a2251data[3]∧+(i165[2], -1)=i166[3]∧+(i162[2], 1)=i162[3] ⇒ COND_LOAD1423ARR1(TRUE, java.lang.Object(ARRAY(i6[2], a2251data[2])), i162[2], i165[2], i164[2])≥NonInfC∧COND_LOAD1423ARR1(TRUE, java.lang.Object(ARRAY(i6[2], a2251data[2])), i162[2], i165[2], i164[2])≥LOAD1423(java.lang.Object(ARRAY(i6[2], a2251data[2])), +(i162[2], 1), +(i165[2], -1), i260[2])∧(UIncreasing(LOAD1423(java.lang.Object(ARRAY(i6[2], a2251data[2])), +(i162[2], 1), +(i165[2], -1), i260[2])), ≥))
(24) (>(+(i162[1], 1), 0)=TRUE∧>=(i165[1], 0)=TRUE∧>(i162[1], 0)=TRUE∧<(i162[1], i6[1])=TRUE ⇒ COND_LOAD1423ARR1(TRUE, java.lang.Object(ARRAY(i6[1], a2251data[1])), i162[1], i165[1], i164[1])≥NonInfC∧COND_LOAD1423ARR1(TRUE, java.lang.Object(ARRAY(i6[1], a2251data[1])), i162[1], i165[1], i164[1])≥LOAD1423(java.lang.Object(ARRAY(i6[1], a2251data[1])), +(i162[1], 1), +(i165[1], -1), i260[2])∧(UIncreasing(LOAD1423(java.lang.Object(ARRAY(i6[2], a2251data[2])), +(i162[2], 1), +(i165[2], -1), i260[2])), ≥))
(25) (i162[1] ≥ 0∧i165[1] ≥ 0∧i162[1] + [-1] ≥ 0∧i6[1] + [-1] + [-1]i162[1] ≥ 0 ⇒ (UIncreasing(LOAD1423(java.lang.Object(ARRAY(i6[2], a2251data[2])), +(i162[2], 1), +(i165[2], -1), i260[2])), ≥)∧[(-1)bni_38 + (-1)Bound*bni_38] + [bni_38]i165[1] + [(-1)bni_38]i162[1] + [bni_38]i6[1] ≥ 0∧[2 + (-1)bso_39] ≥ 0)
(26) (i162[1] ≥ 0∧i165[1] ≥ 0∧i162[1] + [-1] ≥ 0∧i6[1] + [-1] + [-1]i162[1] ≥ 0 ⇒ (UIncreasing(LOAD1423(java.lang.Object(ARRAY(i6[2], a2251data[2])), +(i162[2], 1), +(i165[2], -1), i260[2])), ≥)∧[(-1)bni_38 + (-1)Bound*bni_38] + [bni_38]i165[1] + [(-1)bni_38]i162[1] + [bni_38]i6[1] ≥ 0∧[2 + (-1)bso_39] ≥ 0)
(27) (i162[1] ≥ 0∧i165[1] ≥ 0∧i162[1] + [-1] ≥ 0∧i6[1] + [-1] + [-1]i162[1] ≥ 0 ⇒ (UIncreasing(LOAD1423(java.lang.Object(ARRAY(i6[2], a2251data[2])), +(i162[2], 1), +(i165[2], -1), i260[2])), ≥)∧[(-1)bni_38 + (-1)Bound*bni_38] + [bni_38]i165[1] + [(-1)bni_38]i162[1] + [bni_38]i6[1] ≥ 0∧[2 + (-1)bso_39] ≥ 0)
(28) (i162[1] ≥ 0∧i165[1] ≥ 0∧i162[1] + [-1] ≥ 0∧i6[1] + [-1] + [-1]i162[1] ≥ 0 ⇒ (UIncreasing(LOAD1423(java.lang.Object(ARRAY(i6[2], a2251data[2])), +(i162[2], 1), +(i165[2], -1), i260[2])), ≥)∧0 = 0∧0 = 0∧[(-1)bni_38 + (-1)Bound*bni_38] + [bni_38]i165[1] + [(-1)bni_38]i162[1] + [bni_38]i6[1] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧[2 + (-1)bso_39] ≥ 0)
(29) ([1] + i162[1] ≥ 0∧i165[1] ≥ 0∧i162[1] ≥ 0∧i6[1] + [-2] + [-1]i162[1] ≥ 0 ⇒ (UIncreasing(LOAD1423(java.lang.Object(ARRAY(i6[2], a2251data[2])), +(i162[2], 1), +(i165[2], -1), i260[2])), ≥)∧0 = 0∧0 = 0∧[(-2)bni_38 + (-1)Bound*bni_38] + [bni_38]i165[1] + [(-1)bni_38]i162[1] + [bni_38]i6[1] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧[2 + (-1)bso_39] ≥ 0)
(30) ([1] + i162[1] ≥ 0∧i165[1] ≥ 0∧i162[1] ≥ 0∧i6[1] ≥ 0 ⇒ (UIncreasing(LOAD1423(java.lang.Object(ARRAY(i6[2], a2251data[2])), +(i162[2], 1), +(i165[2], -1), i260[2])), ≥)∧0 = 0∧0 = 0∧[(-1)Bound*bni_38] + [bni_38]i165[1] + [bni_38]i6[1] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧[2 + (-1)bso_39] ≥ 0)
(31) (i166[3]=i166[4]∧&&(>=(i175[3], 0), <(i166[3], 0))=TRUE∧i162[3]=i162[4]∧i6[3]=i6[4]∧a2251data[3]=a2251data[4]∧i175[3]=i175[4] ⇒ LOAD1423(java.lang.Object(ARRAY(i6[3], a2251data[3])), i162[3], i166[3], i175[3])≥NonInfC∧LOAD1423(java.lang.Object(ARRAY(i6[3], a2251data[3])), i162[3], i166[3], i175[3])≥COND_LOAD1423(&&(>=(i175[3], 0), <(i166[3], 0)), java.lang.Object(ARRAY(i6[3], a2251data[3])), i162[3], i166[3], i175[3])∧(UIncreasing(COND_LOAD1423(&&(>=(i175[3], 0), <(i166[3], 0)), java.lang.Object(ARRAY(i6[3], a2251data[3])), i162[3], i166[3], i175[3])), ≥))
(32) (>=(i175[3], 0)=TRUE∧<(i166[3], 0)=TRUE ⇒ LOAD1423(java.lang.Object(ARRAY(i6[3], a2251data[3])), i162[3], i166[3], i175[3])≥NonInfC∧LOAD1423(java.lang.Object(ARRAY(i6[3], a2251data[3])), i162[3], i166[3], i175[3])≥COND_LOAD1423(&&(>=(i175[3], 0), <(i166[3], 0)), java.lang.Object(ARRAY(i6[3], a2251data[3])), i162[3], i166[3], i175[3])∧(UIncreasing(COND_LOAD1423(&&(>=(i175[3], 0), <(i166[3], 0)), java.lang.Object(ARRAY(i6[3], a2251data[3])), i162[3], i166[3], i175[3])), ≥))
(33) (i175[3] ≥ 0∧[-1] + [-1]i166[3] ≥ 0 ⇒ (UIncreasing(COND_LOAD1423(&&(>=(i175[3], 0), <(i166[3], 0)), java.lang.Object(ARRAY(i6[3], a2251data[3])), i162[3], i166[3], i175[3])), ≥)∧[(-1)bni_40 + (-1)Bound*bni_40] + [bni_40]i166[3] + [(-1)bni_40]i162[3] + [bni_40]i6[3] ≥ 0∧[(-1)bso_41] ≥ 0)
(34) (i175[3] ≥ 0∧[-1] + [-1]i166[3] ≥ 0 ⇒ (UIncreasing(COND_LOAD1423(&&(>=(i175[3], 0), <(i166[3], 0)), java.lang.Object(ARRAY(i6[3], a2251data[3])), i162[3], i166[3], i175[3])), ≥)∧[(-1)bni_40 + (-1)Bound*bni_40] + [bni_40]i166[3] + [(-1)bni_40]i162[3] + [bni_40]i6[3] ≥ 0∧[(-1)bso_41] ≥ 0)
(35) (i175[3] ≥ 0∧[-1] + [-1]i166[3] ≥ 0 ⇒ (UIncreasing(COND_LOAD1423(&&(>=(i175[3], 0), <(i166[3], 0)), java.lang.Object(ARRAY(i6[3], a2251data[3])), i162[3], i166[3], i175[3])), ≥)∧[(-1)bni_40 + (-1)Bound*bni_40] + [bni_40]i166[3] + [(-1)bni_40]i162[3] + [bni_40]i6[3] ≥ 0∧[(-1)bso_41] ≥ 0)
(36) (i175[3] ≥ 0∧[-1] + [-1]i166[3] ≥ 0 ⇒ (UIncreasing(COND_LOAD1423(&&(>=(i175[3], 0), <(i166[3], 0)), java.lang.Object(ARRAY(i6[3], a2251data[3])), i162[3], i166[3], i175[3])), ≥)∧[(-1)bni_40] = 0∧0 = 0∧[bni_40] = 0∧[(-1)bni_40 + (-1)Bound*bni_40] + [bni_40]i166[3] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_41] ≥ 0)
(37) (i175[3] ≥ 0∧i166[3] ≥ 0 ⇒ (UIncreasing(COND_LOAD1423(&&(>=(i175[3], 0), <(i166[3], 0)), java.lang.Object(ARRAY(i6[3], a2251data[3])), i162[3], i166[3], i175[3])), ≥)∧[(-1)bni_40] = 0∧0 = 0∧[bni_40] = 0∧[(-2)bni_40 + (-1)Bound*bni_40] + [(-1)bni_40]i166[3] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_41] ≥ 0)
(38) (i166[3]=i166[4]∧&&(>=(i175[3], 0), <(i166[3], 0))=TRUE∧i162[3]=i162[4]∧i6[3]=i6[4]∧a2251data[3]=a2251data[4]∧i175[3]=i175[4]∧i166[4]=i165[0]∧i162[4]=i162[0]∧+(i175[4], -1)=i164[0]∧i6[4]=i6[0]∧a2251data[4]=a2251data[0] ⇒ COND_LOAD1423(TRUE, java.lang.Object(ARRAY(i6[4], a2251data[4])), i162[4], i166[4], i175[4])≥NonInfC∧COND_LOAD1423(TRUE, java.lang.Object(ARRAY(i6[4], a2251data[4])), i162[4], i166[4], i175[4])≥LOAD1423(java.lang.Object(ARRAY(i6[4], a2251data[4])), i162[4], i166[4], +(i175[4], -1))∧(UIncreasing(LOAD1423(java.lang.Object(ARRAY(i6[4], a2251data[4])), i162[4], i166[4], +(i175[4], -1))), ≥))
(39) (>=(i175[3], 0)=TRUE∧<(i166[3], 0)=TRUE ⇒ COND_LOAD1423(TRUE, java.lang.Object(ARRAY(i6[3], a2251data[3])), i162[3], i166[3], i175[3])≥NonInfC∧COND_LOAD1423(TRUE, java.lang.Object(ARRAY(i6[3], a2251data[3])), i162[3], i166[3], i175[3])≥LOAD1423(java.lang.Object(ARRAY(i6[3], a2251data[3])), i162[3], i166[3], +(i175[3], -1))∧(UIncreasing(LOAD1423(java.lang.Object(ARRAY(i6[4], a2251data[4])), i162[4], i166[4], +(i175[4], -1))), ≥))
(40) (i175[3] ≥ 0∧[-1] + [-1]i166[3] ≥ 0 ⇒ (UIncreasing(LOAD1423(java.lang.Object(ARRAY(i6[4], a2251data[4])), i162[4], i166[4], +(i175[4], -1))), ≥)∧[(-1)bni_42 + (-1)Bound*bni_42] + [bni_42]i166[3] + [(-1)bni_42]i162[3] + [bni_42]i6[3] ≥ 0∧[(-1)bso_43] ≥ 0)
(41) (i175[3] ≥ 0∧[-1] + [-1]i166[3] ≥ 0 ⇒ (UIncreasing(LOAD1423(java.lang.Object(ARRAY(i6[4], a2251data[4])), i162[4], i166[4], +(i175[4], -1))), ≥)∧[(-1)bni_42 + (-1)Bound*bni_42] + [bni_42]i166[3] + [(-1)bni_42]i162[3] + [bni_42]i6[3] ≥ 0∧[(-1)bso_43] ≥ 0)
(42) (i175[3] ≥ 0∧[-1] + [-1]i166[3] ≥ 0 ⇒ (UIncreasing(LOAD1423(java.lang.Object(ARRAY(i6[4], a2251data[4])), i162[4], i166[4], +(i175[4], -1))), ≥)∧[(-1)bni_42 + (-1)Bound*bni_42] + [bni_42]i166[3] + [(-1)bni_42]i162[3] + [bni_42]i6[3] ≥ 0∧[(-1)bso_43] ≥ 0)
(43) (i175[3] ≥ 0∧[-1] + [-1]i166[3] ≥ 0 ⇒ (UIncreasing(LOAD1423(java.lang.Object(ARRAY(i6[4], a2251data[4])), i162[4], i166[4], +(i175[4], -1))), ≥)∧[(-1)bni_42] = 0∧0 = 0∧[bni_42] = 0∧[(-1)bni_42 + (-1)Bound*bni_42] + [bni_42]i166[3] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_43] ≥ 0)
(44) (i175[3] ≥ 0∧i166[3] ≥ 0 ⇒ (UIncreasing(LOAD1423(java.lang.Object(ARRAY(i6[4], a2251data[4])), i162[4], i166[4], +(i175[4], -1))), ≥)∧[(-1)bni_42] = 0∧0 = 0∧[bni_42] = 0∧[(-2)bni_42 + (-1)Bound*bni_42] + [(-1)bni_42]i166[3] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_43] ≥ 0)
(45) (i166[3]=i166[4]∧&&(>=(i175[3], 0), <(i166[3], 0))=TRUE∧i162[3]=i162[4]∧i6[3]=i6[4]∧a2251data[3]=a2251data[4]∧i175[3]=i175[4]∧+(i175[4], -1)=i175[3]1∧i162[4]=i162[3]1∧i6[4]=i6[3]1∧a2251data[4]=a2251data[3]1∧i166[4]=i166[3]1 ⇒ COND_LOAD1423(TRUE, java.lang.Object(ARRAY(i6[4], a2251data[4])), i162[4], i166[4], i175[4])≥NonInfC∧COND_LOAD1423(TRUE, java.lang.Object(ARRAY(i6[4], a2251data[4])), i162[4], i166[4], i175[4])≥LOAD1423(java.lang.Object(ARRAY(i6[4], a2251data[4])), i162[4], i166[4], +(i175[4], -1))∧(UIncreasing(LOAD1423(java.lang.Object(ARRAY(i6[4], a2251data[4])), i162[4], i166[4], +(i175[4], -1))), ≥))
(46) (>=(i175[3], 0)=TRUE∧<(i166[3], 0)=TRUE ⇒ COND_LOAD1423(TRUE, java.lang.Object(ARRAY(i6[3], a2251data[3])), i162[3], i166[3], i175[3])≥NonInfC∧COND_LOAD1423(TRUE, java.lang.Object(ARRAY(i6[3], a2251data[3])), i162[3], i166[3], i175[3])≥LOAD1423(java.lang.Object(ARRAY(i6[3], a2251data[3])), i162[3], i166[3], +(i175[3], -1))∧(UIncreasing(LOAD1423(java.lang.Object(ARRAY(i6[4], a2251data[4])), i162[4], i166[4], +(i175[4], -1))), ≥))
(47) (i175[3] ≥ 0∧[-1] + [-1]i166[3] ≥ 0 ⇒ (UIncreasing(LOAD1423(java.lang.Object(ARRAY(i6[4], a2251data[4])), i162[4], i166[4], +(i175[4], -1))), ≥)∧[(-1)bni_42 + (-1)Bound*bni_42] + [bni_42]i166[3] + [(-1)bni_42]i162[3] + [bni_42]i6[3] ≥ 0∧[(-1)bso_43] ≥ 0)
(48) (i175[3] ≥ 0∧[-1] + [-1]i166[3] ≥ 0 ⇒ (UIncreasing(LOAD1423(java.lang.Object(ARRAY(i6[4], a2251data[4])), i162[4], i166[4], +(i175[4], -1))), ≥)∧[(-1)bni_42 + (-1)Bound*bni_42] + [bni_42]i166[3] + [(-1)bni_42]i162[3] + [bni_42]i6[3] ≥ 0∧[(-1)bso_43] ≥ 0)
(49) (i175[3] ≥ 0∧[-1] + [-1]i166[3] ≥ 0 ⇒ (UIncreasing(LOAD1423(java.lang.Object(ARRAY(i6[4], a2251data[4])), i162[4], i166[4], +(i175[4], -1))), ≥)∧[(-1)bni_42 + (-1)Bound*bni_42] + [bni_42]i166[3] + [(-1)bni_42]i162[3] + [bni_42]i6[3] ≥ 0∧[(-1)bso_43] ≥ 0)
(50) (i175[3] ≥ 0∧[-1] + [-1]i166[3] ≥ 0 ⇒ (UIncreasing(LOAD1423(java.lang.Object(ARRAY(i6[4], a2251data[4])), i162[4], i166[4], +(i175[4], -1))), ≥)∧[(-1)bni_42] = 0∧0 = 0∧[bni_42] = 0∧[(-1)bni_42 + (-1)Bound*bni_42] + [bni_42]i166[3] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_43] ≥ 0)
(51) (i175[3] ≥ 0∧i166[3] ≥ 0 ⇒ (UIncreasing(LOAD1423(java.lang.Object(ARRAY(i6[4], a2251data[4])), i162[4], i166[4], +(i175[4], -1))), ≥)∧[(-1)bni_42] = 0∧0 = 0∧[bni_42] = 0∧[(-2)bni_42 + (-1)Bound*bni_42] + [(-1)bni_42]i166[3] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_43] ≥ 0)
POL(TRUE) = 0
POL(FALSE) = 0
POL(LOAD1423(x1, x2, x3, x4)) = [-1] + x3 + [-1]x2 + [-1]x1
POL(java.lang.Object(x1)) = [-1] + [-1]x1
POL(ARRAY(x1, x2)) = [-1] + x1
POL(LOAD1423ARR1(x1, x2, x3, x4)) = [-1] + x3 + [-1]x2 + [-1]x1
POL(COND_LOAD1423ARR1(x1, x2, x3, x4, x5)) = [-1] + x4 + [-1]x3 + [-1]x2
POL(&&(x1, x2)) = [-1]
POL(>(x1, x2)) = [-1]
POL(0) = 0
POL(<(x1, x2)) = [-1]
POL(>=(x1, x2)) = [-1]
POL(+(x1, x2)) = x1 + x2
POL(1) = [1]
POL(-1) = [-1]
POL(COND_LOAD1423(x1, x2, x3, x4, x5)) = [-1] + x4 + [-1]x3 + [-1]x2
COND_LOAD1423ARR1(TRUE, java.lang.Object(ARRAY(i6[2], a2251data[2])), i162[2], i165[2], i164[2]) → LOAD1423(java.lang.Object(ARRAY(i6[2], a2251data[2])), +(i162[2], 1), +(i165[2], -1), i260[2])
LOAD1423ARR1(java.lang.Object(ARRAY(i6[1], a2251data[1])), i162[1], i165[1], i164[1]) → COND_LOAD1423ARR1(&&(&&(&&(>(i162[1], 0), <(i162[1], i6[1])), >=(i165[1], 0)), >(+(i162[1], 1), 0)), java.lang.Object(ARRAY(i6[1], a2251data[1])), i162[1], i165[1], i164[1])
COND_LOAD1423ARR1(TRUE, java.lang.Object(ARRAY(i6[2], a2251data[2])), i162[2], i165[2], i164[2]) → LOAD1423(java.lang.Object(ARRAY(i6[2], a2251data[2])), +(i162[2], 1), +(i165[2], -1), i260[2])
LOAD1423(java.lang.Object(ARRAY(i6[0], a2251data[0])), i162[0], i165[0], i164[0]) → LOAD1423ARR1(java.lang.Object(ARRAY(i6[0], a2251data[0])), i162[0], i165[0], i164[0])
LOAD1423ARR1(java.lang.Object(ARRAY(i6[1], a2251data[1])), i162[1], i165[1], i164[1]) → COND_LOAD1423ARR1(&&(&&(&&(>(i162[1], 0), <(i162[1], i6[1])), >=(i165[1], 0)), >(+(i162[1], 1), 0)), java.lang.Object(ARRAY(i6[1], a2251data[1])), i162[1], i165[1], i164[1])
LOAD1423(java.lang.Object(ARRAY(i6[3], a2251data[3])), i162[3], i166[3], i175[3]) → COND_LOAD1423(&&(>=(i175[3], 0), <(i166[3], 0)), java.lang.Object(ARRAY(i6[3], a2251data[3])), i162[3], i166[3], i175[3])
COND_LOAD1423(TRUE, java.lang.Object(ARRAY(i6[4], a2251data[4])), i162[4], i166[4], i175[4]) → LOAD1423(java.lang.Object(ARRAY(i6[4], a2251data[4])), i162[4], i166[4], +(i175[4], -1))
FALSE1 → &&(FALSE, TRUE)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 |
Boolean, Integer
(4) -> (0), if ((i166[4] →* i165[0])∧(i162[4] →* i162[0])∧(i175[4] + -1 →* i164[0])∧((i6[4] →* i6[0])∧(a2251data[4] →* a2251data[0])))
(0) -> (1), if ((i164[0] →* i164[1])∧((i6[0] →* i6[1])∧(a2251data[0] →* a2251data[1]))∧(i165[0] →* i165[1])∧(i162[0] →* i162[1]))
(4) -> (3), if ((i175[4] + -1 →* i175[3])∧(i162[4] →* i162[3])∧((i6[4] →* i6[3])∧(a2251data[4] →* a2251data[3]))∧(i166[4] →* i166[3]))
(3) -> (4), if ((i166[3] →* i166[4])∧(i175[3] >= 0 && i166[3] < 0 →* TRUE)∧(i162[3] →* i162[4])∧((i6[3] →* i6[4])∧(a2251data[3] →* a2251data[4]))∧(i175[3] →* i175[4]))
!= | ~ | 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) -> (3), if ((i175[4] + -1 →* i175[3])∧(i162[4] →* i162[3])∧((i6[4] →* i6[3])∧(a2251data[4] →* a2251data[3]))∧(i166[4] →* i166[3]))
(3) -> (4), if ((i166[3] →* i166[4])∧(i175[3] >= 0 && i166[3] < 0 →* TRUE)∧(i162[3] →* i162[4])∧((i6[3] →* i6[4])∧(a2251data[3] →* a2251data[4]))∧(i175[3] →* i175[4]))
(1) (i166[3]=i166[4]∧&&(>=(i175[3], 0), <(i166[3], 0))=TRUE∧i162[3]=i162[4]∧i6[3]=i6[4]∧a2251data[3]=a2251data[4]∧i175[3]=i175[4]∧+(i175[4], -1)=i175[3]1∧i162[4]=i162[3]1∧i6[4]=i6[3]1∧a2251data[4]=a2251data[3]1∧i166[4]=i166[3]1 ⇒ COND_LOAD1423(TRUE, java.lang.Object(ARRAY(i6[4], a2251data[4])), i162[4], i166[4], i175[4])≥NonInfC∧COND_LOAD1423(TRUE, java.lang.Object(ARRAY(i6[4], a2251data[4])), i162[4], i166[4], i175[4])≥LOAD1423(java.lang.Object(ARRAY(i6[4], a2251data[4])), i162[4], i166[4], +(i175[4], -1))∧(UIncreasing(LOAD1423(java.lang.Object(ARRAY(i6[4], a2251data[4])), i162[4], i166[4], +(i175[4], -1))), ≥))
(2) (>=(i175[3], 0)=TRUE∧<(i166[3], 0)=TRUE ⇒ COND_LOAD1423(TRUE, java.lang.Object(ARRAY(i6[3], a2251data[3])), i162[3], i166[3], i175[3])≥NonInfC∧COND_LOAD1423(TRUE, java.lang.Object(ARRAY(i6[3], a2251data[3])), i162[3], i166[3], i175[3])≥LOAD1423(java.lang.Object(ARRAY(i6[3], a2251data[3])), i162[3], i166[3], +(i175[3], -1))∧(UIncreasing(LOAD1423(java.lang.Object(ARRAY(i6[4], a2251data[4])), i162[4], i166[4], +(i175[4], -1))), ≥))
(3) (i175[3] ≥ 0∧[-1] + [-1]i166[3] ≥ 0 ⇒ (UIncreasing(LOAD1423(java.lang.Object(ARRAY(i6[4], a2251data[4])), i162[4], i166[4], +(i175[4], -1))), ≥)∧[(-1)Bound*bni_22] + [bni_22]i175[3] + [(-1)bni_22]i166[3] ≥ 0∧[(-1)bso_23] ≥ 0)
(4) (i175[3] ≥ 0∧[-1] + [-1]i166[3] ≥ 0 ⇒ (UIncreasing(LOAD1423(java.lang.Object(ARRAY(i6[4], a2251data[4])), i162[4], i166[4], +(i175[4], -1))), ≥)∧[(-1)Bound*bni_22] + [bni_22]i175[3] + [(-1)bni_22]i166[3] ≥ 0∧[(-1)bso_23] ≥ 0)
(5) (i175[3] ≥ 0∧[-1] + [-1]i166[3] ≥ 0 ⇒ (UIncreasing(LOAD1423(java.lang.Object(ARRAY(i6[4], a2251data[4])), i162[4], i166[4], +(i175[4], -1))), ≥)∧[(-1)Bound*bni_22] + [bni_22]i175[3] + [(-1)bni_22]i166[3] ≥ 0∧[(-1)bso_23] ≥ 0)
(6) (i175[3] ≥ 0∧[-1] + [-1]i166[3] ≥ 0 ⇒ (UIncreasing(LOAD1423(java.lang.Object(ARRAY(i6[4], a2251data[4])), i162[4], i166[4], +(i175[4], -1))), ≥)∧0 = 0∧0 = 0∧0 = 0∧[(-1)Bound*bni_22] + [bni_22]i175[3] + [(-1)bni_22]i166[3] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_23] ≥ 0)
(7) (i175[3] ≥ 0∧i166[3] ≥ 0 ⇒ (UIncreasing(LOAD1423(java.lang.Object(ARRAY(i6[4], a2251data[4])), i162[4], i166[4], +(i175[4], -1))), ≥)∧0 = 0∧0 = 0∧0 = 0∧[(-1)Bound*bni_22 + bni_22] + [bni_22]i175[3] + [bni_22]i166[3] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_23] ≥ 0)
(8) (i166[3]=i166[4]∧&&(>=(i175[3], 0), <(i166[3], 0))=TRUE∧i162[3]=i162[4]∧i6[3]=i6[4]∧a2251data[3]=a2251data[4]∧i175[3]=i175[4] ⇒ LOAD1423(java.lang.Object(ARRAY(i6[3], a2251data[3])), i162[3], i166[3], i175[3])≥NonInfC∧LOAD1423(java.lang.Object(ARRAY(i6[3], a2251data[3])), i162[3], i166[3], i175[3])≥COND_LOAD1423(&&(>=(i175[3], 0), <(i166[3], 0)), java.lang.Object(ARRAY(i6[3], a2251data[3])), i162[3], i166[3], i175[3])∧(UIncreasing(COND_LOAD1423(&&(>=(i175[3], 0), <(i166[3], 0)), java.lang.Object(ARRAY(i6[3], a2251data[3])), i162[3], i166[3], i175[3])), ≥))
(9) (>=(i175[3], 0)=TRUE∧<(i166[3], 0)=TRUE ⇒ LOAD1423(java.lang.Object(ARRAY(i6[3], a2251data[3])), i162[3], i166[3], i175[3])≥NonInfC∧LOAD1423(java.lang.Object(ARRAY(i6[3], a2251data[3])), i162[3], i166[3], i175[3])≥COND_LOAD1423(&&(>=(i175[3], 0), <(i166[3], 0)), java.lang.Object(ARRAY(i6[3], a2251data[3])), i162[3], i166[3], i175[3])∧(UIncreasing(COND_LOAD1423(&&(>=(i175[3], 0), <(i166[3], 0)), java.lang.Object(ARRAY(i6[3], a2251data[3])), i162[3], i166[3], i175[3])), ≥))
(10) (i175[3] ≥ 0∧[-1] + [-1]i166[3] ≥ 0 ⇒ (UIncreasing(COND_LOAD1423(&&(>=(i175[3], 0), <(i166[3], 0)), java.lang.Object(ARRAY(i6[3], a2251data[3])), i162[3], i166[3], i175[3])), ≥)∧[bni_24 + (-1)Bound*bni_24] + [bni_24]i175[3] + [(-1)bni_24]i166[3] ≥ 0∧[1 + (-1)bso_25] ≥ 0)
(11) (i175[3] ≥ 0∧[-1] + [-1]i166[3] ≥ 0 ⇒ (UIncreasing(COND_LOAD1423(&&(>=(i175[3], 0), <(i166[3], 0)), java.lang.Object(ARRAY(i6[3], a2251data[3])), i162[3], i166[3], i175[3])), ≥)∧[bni_24 + (-1)Bound*bni_24] + [bni_24]i175[3] + [(-1)bni_24]i166[3] ≥ 0∧[1 + (-1)bso_25] ≥ 0)
(12) (i175[3] ≥ 0∧[-1] + [-1]i166[3] ≥ 0 ⇒ (UIncreasing(COND_LOAD1423(&&(>=(i175[3], 0), <(i166[3], 0)), java.lang.Object(ARRAY(i6[3], a2251data[3])), i162[3], i166[3], i175[3])), ≥)∧[bni_24 + (-1)Bound*bni_24] + [bni_24]i175[3] + [(-1)bni_24]i166[3] ≥ 0∧[1 + (-1)bso_25] ≥ 0)
(13) (i175[3] ≥ 0∧[-1] + [-1]i166[3] ≥ 0 ⇒ (UIncreasing(COND_LOAD1423(&&(>=(i175[3], 0), <(i166[3], 0)), java.lang.Object(ARRAY(i6[3], a2251data[3])), i162[3], i166[3], i175[3])), ≥)∧0 = 0∧0 = 0∧0 = 0∧[bni_24 + (-1)Bound*bni_24] + [bni_24]i175[3] + [(-1)bni_24]i166[3] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_25] ≥ 0)
(14) (i175[3] ≥ 0∧i166[3] ≥ 0 ⇒ (UIncreasing(COND_LOAD1423(&&(>=(i175[3], 0), <(i166[3], 0)), java.lang.Object(ARRAY(i6[3], a2251data[3])), i162[3], i166[3], i175[3])), ≥)∧0 = 0∧0 = 0∧0 = 0∧[(2)bni_24 + (-1)Bound*bni_24] + [bni_24]i175[3] + [bni_24]i166[3] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_25] ≥ 0)
POL(TRUE) = 0
POL(FALSE) = 0
POL(COND_LOAD1423(x1, x2, x3, x4, x5)) = x5 + [-1]x4 + [-1]x2 + [-1]x1
POL(java.lang.Object(x1)) = [-1] + [-1]x1
POL(ARRAY(x1, x2)) = [-1]
POL(LOAD1423(x1, x2, x3, x4)) = [1] + x4 + [-1]x3 + [-1]x1
POL(+(x1, x2)) = x1 + x2
POL(-1) = [-1]
POL(&&(x1, x2)) = 0
POL(>=(x1, x2)) = [-1]
POL(0) = 0
POL(<(x1, x2)) = [-1]
LOAD1423(java.lang.Object(ARRAY(i6[3], a2251data[3])), i162[3], i166[3], i175[3]) → COND_LOAD1423(&&(>=(i175[3], 0), <(i166[3], 0)), java.lang.Object(ARRAY(i6[3], a2251data[3])), i162[3], i166[3], i175[3])
COND_LOAD1423(TRUE, java.lang.Object(ARRAY(i6[4], a2251data[4])), i162[4], i166[4], i175[4]) → LOAD1423(java.lang.Object(ARRAY(i6[4], a2251data[4])), i162[4], i166[4], +(i175[4], -1))
LOAD1423(java.lang.Object(ARRAY(i6[3], a2251data[3])), i162[3], i166[3], i175[3]) → COND_LOAD1423(&&(>=(i175[3], 0), <(i166[3], 0)), java.lang.Object(ARRAY(i6[3], a2251data[3])), i162[3], i166[3], i175[3])
COND_LOAD1423(TRUE, java.lang.Object(ARRAY(i6[4], a2251data[4])), i162[4], i166[4], i175[4]) → LOAD1423(java.lang.Object(ARRAY(i6[4], a2251data[4])), i162[4], i166[4], +(i175[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 |
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 |
!= | ~ | 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 ((i166[4] →* i165[0])∧(i162[4] →* i162[0])∧(i175[4] + -1 →* i164[0])∧((i6[4] →* i6[0])∧(a2251data[4] →* a2251data[0])))
(4) -> (3), if ((i175[4] + -1 →* i175[3])∧(i162[4] →* i162[3])∧((i6[4] →* i6[3])∧(a2251data[4] →* a2251data[3]))∧(i166[4] →* i166[3]))
(3) -> (4), if ((i166[3] →* i166[4])∧(i175[3] >= 0 && i166[3] < 0 →* TRUE)∧(i162[3] →* i162[4])∧((i6[3] →* i6[4])∧(a2251data[3] →* a2251data[4]))∧(i175[3] →* i175[4]))
!= | ~ | 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) -> (3), if ((i175[4] + -1 →* i175[3])∧(i162[4] →* i162[3])∧((i6[4] →* i6[3])∧(a2251data[4] →* a2251data[3]))∧(i166[4] →* i166[3]))
(3) -> (4), if ((i166[3] →* i166[4])∧(i175[3] >= 0 && i166[3] < 0 →* TRUE)∧(i162[3] →* i162[4])∧((i6[3] →* i6[4])∧(a2251data[3] →* a2251data[4]))∧(i175[3] →* i175[4]))
(1) (i166[3]=i166[4]∧&&(>=(i175[3], 0), <(i166[3], 0))=TRUE∧i162[3]=i162[4]∧i6[3]=i6[4]∧a2251data[3]=a2251data[4]∧i175[3]=i175[4]∧+(i175[4], -1)=i175[3]1∧i162[4]=i162[3]1∧i6[4]=i6[3]1∧a2251data[4]=a2251data[3]1∧i166[4]=i166[3]1 ⇒ COND_LOAD1423(TRUE, java.lang.Object(ARRAY(i6[4], a2251data[4])), i162[4], i166[4], i175[4])≥NonInfC∧COND_LOAD1423(TRUE, java.lang.Object(ARRAY(i6[4], a2251data[4])), i162[4], i166[4], i175[4])≥LOAD1423(java.lang.Object(ARRAY(i6[4], a2251data[4])), i162[4], i166[4], +(i175[4], -1))∧(UIncreasing(LOAD1423(java.lang.Object(ARRAY(i6[4], a2251data[4])), i162[4], i166[4], +(i175[4], -1))), ≥))
(2) (>=(i175[3], 0)=TRUE∧<(i166[3], 0)=TRUE ⇒ COND_LOAD1423(TRUE, java.lang.Object(ARRAY(i6[3], a2251data[3])), i162[3], i166[3], i175[3])≥NonInfC∧COND_LOAD1423(TRUE, java.lang.Object(ARRAY(i6[3], a2251data[3])), i162[3], i166[3], i175[3])≥LOAD1423(java.lang.Object(ARRAY(i6[3], a2251data[3])), i162[3], i166[3], +(i175[3], -1))∧(UIncreasing(LOAD1423(java.lang.Object(ARRAY(i6[4], a2251data[4])), i162[4], i166[4], +(i175[4], -1))), ≥))
(3) (i175[3] ≥ 0∧[-1] + [-1]i166[3] ≥ 0 ⇒ (UIncreasing(LOAD1423(java.lang.Object(ARRAY(i6[4], a2251data[4])), i162[4], i166[4], +(i175[4], -1))), ≥)∧[(-1)bni_22 + (-1)Bound*bni_22] + [bni_22]i175[3] + [(-1)bni_22]i166[3] ≥ 0∧[1 + (-1)bso_23] ≥ 0)
(4) (i175[3] ≥ 0∧[-1] + [-1]i166[3] ≥ 0 ⇒ (UIncreasing(LOAD1423(java.lang.Object(ARRAY(i6[4], a2251data[4])), i162[4], i166[4], +(i175[4], -1))), ≥)∧[(-1)bni_22 + (-1)Bound*bni_22] + [bni_22]i175[3] + [(-1)bni_22]i166[3] ≥ 0∧[1 + (-1)bso_23] ≥ 0)
(5) (i175[3] ≥ 0∧[-1] + [-1]i166[3] ≥ 0 ⇒ (UIncreasing(LOAD1423(java.lang.Object(ARRAY(i6[4], a2251data[4])), i162[4], i166[4], +(i175[4], -1))), ≥)∧[(-1)bni_22 + (-1)Bound*bni_22] + [bni_22]i175[3] + [(-1)bni_22]i166[3] ≥ 0∧[1 + (-1)bso_23] ≥ 0)
(6) (i175[3] ≥ 0∧[-1] + [-1]i166[3] ≥ 0 ⇒ (UIncreasing(LOAD1423(java.lang.Object(ARRAY(i6[4], a2251data[4])), i162[4], i166[4], +(i175[4], -1))), ≥)∧0 = 0∧0 = 0∧0 = 0∧[(-1)bni_22 + (-1)Bound*bni_22] + [bni_22]i175[3] + [(-1)bni_22]i166[3] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_23] ≥ 0)
(7) (i175[3] ≥ 0∧i166[3] ≥ 0 ⇒ (UIncreasing(LOAD1423(java.lang.Object(ARRAY(i6[4], a2251data[4])), i162[4], i166[4], +(i175[4], -1))), ≥)∧0 = 0∧0 = 0∧0 = 0∧[(-1)Bound*bni_22] + [bni_22]i175[3] + [bni_22]i166[3] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_23] ≥ 0)
(8) (i166[3]=i166[4]∧&&(>=(i175[3], 0), <(i166[3], 0))=TRUE∧i162[3]=i162[4]∧i6[3]=i6[4]∧a2251data[3]=a2251data[4]∧i175[3]=i175[4] ⇒ LOAD1423(java.lang.Object(ARRAY(i6[3], a2251data[3])), i162[3], i166[3], i175[3])≥NonInfC∧LOAD1423(java.lang.Object(ARRAY(i6[3], a2251data[3])), i162[3], i166[3], i175[3])≥COND_LOAD1423(&&(>=(i175[3], 0), <(i166[3], 0)), java.lang.Object(ARRAY(i6[3], a2251data[3])), i162[3], i166[3], i175[3])∧(UIncreasing(COND_LOAD1423(&&(>=(i175[3], 0), <(i166[3], 0)), java.lang.Object(ARRAY(i6[3], a2251data[3])), i162[3], i166[3], i175[3])), ≥))
(9) (>=(i175[3], 0)=TRUE∧<(i166[3], 0)=TRUE ⇒ LOAD1423(java.lang.Object(ARRAY(i6[3], a2251data[3])), i162[3], i166[3], i175[3])≥NonInfC∧LOAD1423(java.lang.Object(ARRAY(i6[3], a2251data[3])), i162[3], i166[3], i175[3])≥COND_LOAD1423(&&(>=(i175[3], 0), <(i166[3], 0)), java.lang.Object(ARRAY(i6[3], a2251data[3])), i162[3], i166[3], i175[3])∧(UIncreasing(COND_LOAD1423(&&(>=(i175[3], 0), <(i166[3], 0)), java.lang.Object(ARRAY(i6[3], a2251data[3])), i162[3], i166[3], i175[3])), ≥))
(10) (i175[3] ≥ 0∧[-1] + [-1]i166[3] ≥ 0 ⇒ (UIncreasing(COND_LOAD1423(&&(>=(i175[3], 0), <(i166[3], 0)), java.lang.Object(ARRAY(i6[3], a2251data[3])), i162[3], i166[3], i175[3])), ≥)∧[(-1)bni_24 + (-1)Bound*bni_24] + [bni_24]i175[3] + [(-1)bni_24]i166[3] ≥ 0∧[(-1)bso_25] ≥ 0)
(11) (i175[3] ≥ 0∧[-1] + [-1]i166[3] ≥ 0 ⇒ (UIncreasing(COND_LOAD1423(&&(>=(i175[3], 0), <(i166[3], 0)), java.lang.Object(ARRAY(i6[3], a2251data[3])), i162[3], i166[3], i175[3])), ≥)∧[(-1)bni_24 + (-1)Bound*bni_24] + [bni_24]i175[3] + [(-1)bni_24]i166[3] ≥ 0∧[(-1)bso_25] ≥ 0)
(12) (i175[3] ≥ 0∧[-1] + [-1]i166[3] ≥ 0 ⇒ (UIncreasing(COND_LOAD1423(&&(>=(i175[3], 0), <(i166[3], 0)), java.lang.Object(ARRAY(i6[3], a2251data[3])), i162[3], i166[3], i175[3])), ≥)∧[(-1)bni_24 + (-1)Bound*bni_24] + [bni_24]i175[3] + [(-1)bni_24]i166[3] ≥ 0∧[(-1)bso_25] ≥ 0)
(13) (i175[3] ≥ 0∧[-1] + [-1]i166[3] ≥ 0 ⇒ (UIncreasing(COND_LOAD1423(&&(>=(i175[3], 0), <(i166[3], 0)), java.lang.Object(ARRAY(i6[3], a2251data[3])), i162[3], i166[3], i175[3])), ≥)∧0 = 0∧0 = 0∧0 = 0∧[(-1)bni_24 + (-1)Bound*bni_24] + [bni_24]i175[3] + [(-1)bni_24]i166[3] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_25] ≥ 0)
(14) (i175[3] ≥ 0∧i166[3] ≥ 0 ⇒ (UIncreasing(COND_LOAD1423(&&(>=(i175[3], 0), <(i166[3], 0)), java.lang.Object(ARRAY(i6[3], a2251data[3])), i162[3], i166[3], i175[3])), ≥)∧0 = 0∧0 = 0∧0 = 0∧[(-1)Bound*bni_24] + [bni_24]i175[3] + [bni_24]i166[3] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_25] ≥ 0)
POL(TRUE) = 0
POL(FALSE) = [1]
POL(COND_LOAD1423(x1, x2, x3, x4, x5)) = [-1] + x5 + [-1]x4 + [-1]x2 + [-1]x1
POL(java.lang.Object(x1)) = [-1] + [-1]x1
POL(ARRAY(x1, x2)) = [-1]
POL(LOAD1423(x1, x2, x3, x4)) = [-1] + x4 + [-1]x3 + [-1]x1
POL(+(x1, x2)) = x1 + x2
POL(-1) = [-1]
POL(&&(x1, x2)) = 0
POL(>=(x1, x2)) = [-1]
POL(0) = 0
POL(<(x1, x2)) = [-1]
COND_LOAD1423(TRUE, java.lang.Object(ARRAY(i6[4], a2251data[4])), i162[4], i166[4], i175[4]) → LOAD1423(java.lang.Object(ARRAY(i6[4], a2251data[4])), i162[4], i166[4], +(i175[4], -1))
COND_LOAD1423(TRUE, java.lang.Object(ARRAY(i6[4], a2251data[4])), i162[4], i166[4], i175[4]) → LOAD1423(java.lang.Object(ARRAY(i6[4], a2251data[4])), i162[4], i166[4], +(i175[4], -1))
LOAD1423(java.lang.Object(ARRAY(i6[3], a2251data[3])), i162[3], i166[3], i175[3]) → COND_LOAD1423(&&(>=(i175[3], 0), <(i166[3], 0)), java.lang.Object(ARRAY(i6[3], a2251data[3])), i162[3], i166[3], i175[3])
LOAD1423(java.lang.Object(ARRAY(i6[3], a2251data[3])), i162[3], i166[3], i175[3]) → COND_LOAD1423(&&(>=(i175[3], 0), <(i166[3], 0)), java.lang.Object(ARRAY(i6[3], a2251data[3])), i162[3], i166[3], i175[3])
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 |
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 |