0 JBC
↳1 JBC2FIG (⇐)
↳2 FIGraph
↳3 FIGtoITRSProof (⇐)
↳4 AND
↳5 ITRS
↳6 ITRStoIDPProof (⇔)
↳7 IDP
↳8 UsableRulesProof (⇔)
↳9 IDP
↳10 ItpfGraphProof (⇔)
↳11 IDP
↳12 IDPNonInfProof (⇐)
↳13 AND
↳14 IDP
↳15 IDependencyGraphProof (⇔)
↳16 IDP
↳17 IDPNonInfProof (⇐)
↳18 AND
↳19 IDP
↳20 IDPNonInfProof (⇐)
↳21 AND
↳22 IDP
↳23 IDependencyGraphProof (⇔)
↳24 TRUE
↳25 IDP
↳26 IDependencyGraphProof (⇔)
↳27 TRUE
↳28 IDP
↳29 IDependencyGraphProof (⇔)
↳30 TRUE
↳31 IDP
↳32 IDependencyGraphProof (⇔)
↳33 TRUE
↳34 ITRS
↳35 ITRSFilterProcessorProof (⇐)
↳36 ITRS
↳37 ITRStoIDPProof (⇔)
↳38 IDP
↳39 UsableRulesProof (⇔)
↳40 IDP
↳41 ItpfGraphProof (⇔)
↳42 IDP
↳43 IDPNonInfProof (⇐)
↳44 AND
↳45 IDP
↳46 IDependencyGraphProof (⇔)
↳47 TRUE
↳48 IDP
↳49 IDependencyGraphProof (⇔)
↳50 TRUE
public class Convert{
// adapted from [Giesl, 95]
// converts a number to decimal notation
public static void main(String[] args) {
Random.args = args;
IntList l = IntList.createIntList();
int b = Random.random();
int res = 0;
while (l != null) {
if (l.value <= 0) {
l = l.next;
if (l != null) res = res * b;
}
else {
l.value--;
res++;
}
}
}
}
class IntList {
int value;
IntList next;
public IntList(int value, IntList next) {
this.value = value;
this.next = next;
}
public static IntList createIntList() {
int i = Random.random();
IntList l = null;
while (i > 0) {
l = new IntList(Random.random(), l);
i--;
}
return l;
}
}
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 ((i466[0] > 0 →* TRUE)∧(i463[0] →* i463[1])∧(i164[0] →* i164[1])∧(java.lang.Object(IntList(i466[0], o4023[0])) →* java.lang.Object(IntList(i466[1], o4023[1]))))
(1) -> (0), if ((i463[1] + 1 →* i463[0])∧(java.lang.Object(IntList(i466[1] - 1, o4023[1])) →* java.lang.Object(IntList(i466[0], o4023[0])))∧(i164[1] →* i164[0]))
(1) -> (2), if ((i463[1] + 1 →* i463[2])∧(i164[1] →* i164[2])∧(java.lang.Object(IntList(i466[1] - 1, o4023[1])) →* java.lang.Object(IntList(i467[2], java.lang.Object(IntList(o4048Field0[2], o4048Field1[2]))))))
(1) -> (4), if ((i463[1] + 1 →* i463[4])∧(java.lang.Object(IntList(i466[1] - 1, o4023[1])) →* java.lang.Object(IntList(i467[4], NULL)))∧(i164[1] →* i164[4]))
(2) -> (3), if ((i164[2] →* i164[3])∧(i467[2] <= 0 →* TRUE)∧(java.lang.Object(IntList(i467[2], java.lang.Object(IntList(o4048Field0[2], o4048Field1[2])))) →* java.lang.Object(IntList(i467[3], java.lang.Object(IntList(o4048Field0[3], o4048Field1[3])))))∧(i463[2] →* i463[3]))
(3) -> (0), if ((i463[3] * i164[3] →* i463[0])∧(i164[3] →* i164[0])∧(java.lang.Object(IntList(o4048Field0[3], o4048Field1[3])) →* java.lang.Object(IntList(i466[0], o4023[0]))))
(3) -> (2), if ((i463[3] * i164[3] →* i463[2])∧(java.lang.Object(IntList(o4048Field0[3], o4048Field1[3])) →* java.lang.Object(IntList(i467[2], java.lang.Object(IntList(o4048Field0[2], o4048Field1[2])))))∧(i164[3] →* i164[2]))
(3) -> (4), if ((i463[3] * i164[3] →* i463[4])∧(java.lang.Object(IntList(o4048Field0[3], o4048Field1[3])) →* java.lang.Object(IntList(i467[4], NULL)))∧(i164[3] →* i164[4]))
(4) -> (5), if ((java.lang.Object(IntList(i467[4], NULL)) →* java.lang.Object(IntList(i467[5], NULL)))∧(i467[4] <= 0 →* TRUE)∧(i164[4] →* i164[5])∧(i463[4] →* i463[5]))
(5) -> (0), if ((i164[5] →* i164[0])∧(i463[5] →* i463[0])∧(NULL →* java.lang.Object(IntList(i466[0], o4023[0]))))
(5) -> (2), if ((NULL →* java.lang.Object(IntList(i467[2], java.lang.Object(IntList(o4048Field0[2], o4048Field1[2])))))∧(i463[5] →* i463[2])∧(i164[5] →* i164[2]))
(5) -> (4), if ((i463[5] →* i463[4])∧(NULL →* java.lang.Object(IntList(i467[4], NULL)))∧(i164[5] →* i164[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
(0) -> (1), if ((i466[0] > 0 →* TRUE)∧(i463[0] →* i463[1])∧(i164[0] →* i164[1])∧(java.lang.Object(IntList(i466[0], o4023[0])) →* java.lang.Object(IntList(i466[1], o4023[1]))))
(1) -> (0), if ((i463[1] + 1 →* i463[0])∧(java.lang.Object(IntList(i466[1] - 1, o4023[1])) →* java.lang.Object(IntList(i466[0], o4023[0])))∧(i164[1] →* i164[0]))
(1) -> (2), if ((i463[1] + 1 →* i463[2])∧(i164[1] →* i164[2])∧(java.lang.Object(IntList(i466[1] - 1, o4023[1])) →* java.lang.Object(IntList(i467[2], java.lang.Object(IntList(o4048Field0[2], o4048Field1[2]))))))
(1) -> (4), if ((i463[1] + 1 →* i463[4])∧(java.lang.Object(IntList(i466[1] - 1, o4023[1])) →* java.lang.Object(IntList(i467[4], NULL)))∧(i164[1] →* i164[4]))
(2) -> (3), if ((i164[2] →* i164[3])∧(i467[2] <= 0 →* TRUE)∧(java.lang.Object(IntList(i467[2], java.lang.Object(IntList(o4048Field0[2], o4048Field1[2])))) →* java.lang.Object(IntList(i467[3], java.lang.Object(IntList(o4048Field0[3], o4048Field1[3])))))∧(i463[2] →* i463[3]))
(3) -> (0), if ((i463[3] * i164[3] →* i463[0])∧(i164[3] →* i164[0])∧(java.lang.Object(IntList(o4048Field0[3], o4048Field1[3])) →* java.lang.Object(IntList(i466[0], o4023[0]))))
(3) -> (2), if ((i463[3] * i164[3] →* i463[2])∧(java.lang.Object(IntList(o4048Field0[3], o4048Field1[3])) →* java.lang.Object(IntList(i467[2], java.lang.Object(IntList(o4048Field0[2], o4048Field1[2])))))∧(i164[3] →* i164[2]))
(3) -> (4), if ((i463[3] * i164[3] →* i463[4])∧(java.lang.Object(IntList(o4048Field0[3], o4048Field1[3])) →* java.lang.Object(IntList(i467[4], NULL)))∧(i164[3] →* i164[4]))
(4) -> (5), if ((java.lang.Object(IntList(i467[4], NULL)) →* java.lang.Object(IntList(i467[5], NULL)))∧(i467[4] <= 0 →* TRUE)∧(i164[4] →* i164[5])∧(i463[4] →* i463[5]))
(5) -> (0), if ((i164[5] →* i164[0])∧(i463[5] →* i463[0])∧(NULL →* java.lang.Object(IntList(i466[0], o4023[0]))))
(5) -> (2), if ((NULL →* java.lang.Object(IntList(i467[2], java.lang.Object(IntList(o4048Field0[2], o4048Field1[2])))))∧(i463[5] →* i463[2])∧(i164[5] →* i164[2]))
(5) -> (4), if ((i463[5] →* i463[4])∧(NULL →* java.lang.Object(IntList(i467[4], NULL)))∧(i164[5] →* i164[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
(0) -> (1), if ((i466[0] > 0 →* TRUE)∧(i463[0] →* i463[1])∧(i164[0] →* i164[1])∧((i466[0] →* i466[1])∧(o4023[0] →* o4023[1])))
(1) -> (0), if ((i463[1] + 1 →* i463[0])∧((i466[1] - 1 →* i466[0])∧(o4023[1] →* o4023[0]))∧(i164[1] →* i164[0]))
(1) -> (2), if ((i463[1] + 1 →* i463[2])∧(i164[1] →* i164[2])∧((i466[1] - 1 →* i467[2])∧(o4023[1] →* java.lang.Object(IntList(o4048Field0[2], o4048Field1[2])))))
(1) -> (4), if ((i463[1] + 1 →* i463[4])∧((i466[1] - 1 →* i467[4])∧(o4023[1] →* NULL))∧(i164[1] →* i164[4]))
(2) -> (3), if ((i164[2] →* i164[3])∧(i467[2] <= 0 →* TRUE)∧((i467[2] →* i467[3])∧(o4048Field0[2] →* o4048Field0[3])∧(o4048Field1[2] →* o4048Field1[3]))∧(i463[2] →* i463[3]))
(3) -> (0), if ((i463[3] * i164[3] →* i463[0])∧(i164[3] →* i164[0])∧((o4048Field0[3] →* i466[0])∧(o4048Field1[3] →* o4023[0])))
(3) -> (2), if ((i463[3] * i164[3] →* i463[2])∧((o4048Field0[3] →* i467[2])∧(o4048Field1[3] →* java.lang.Object(IntList(o4048Field0[2], o4048Field1[2]))))∧(i164[3] →* i164[2]))
(3) -> (4), if ((i463[3] * i164[3] →* i463[4])∧((o4048Field0[3] →* i467[4])∧(o4048Field1[3] →* NULL))∧(i164[3] →* i164[4]))
(4) -> (5), if (((i467[4] →* i467[5]))∧(i467[4] <= 0 →* TRUE)∧(i164[4] →* i164[5])∧(i463[4] →* i463[5]))
(5) -> (0), if ((i164[5] →* i164[0])∧(i463[5] →* i463[0])∧false)
(5) -> (2), if (false∧(i463[5] →* i463[2])∧(i164[5] →* i164[2]))
(5) -> (4), if ((i463[5] →* i463[4])∧false∧(i164[5] →* i164[4]))
(1) (>(i466[0], 0)=TRUE∧i463[0]=i463[1]∧i164[0]=i164[1]∧i466[0]=i466[1]∧o4023[0]=o4023[1] ⇒ LOAD2958(java.lang.Object(IntList(i466[0], o4023[0])), i164[0], i463[0])≥COND_LOAD2958(>(i466[0], 0), java.lang.Object(IntList(i466[0], o4023[0])), i164[0], i463[0])∧(UIncreasing(COND_LOAD2958(>(i466[0], 0), java.lang.Object(IntList(i466[0], o4023[0])), i164[0], i463[0])), ≥))
(2) (>(i466[0], 0)=TRUE ⇒ LOAD2958(java.lang.Object(IntList(i466[0], o4023[0])), i164[0], i463[0])≥COND_LOAD2958(>(i466[0], 0), java.lang.Object(IntList(i466[0], o4023[0])), i164[0], i463[0])∧(UIncreasing(COND_LOAD2958(>(i466[0], 0), java.lang.Object(IntList(i466[0], o4023[0])), i164[0], i463[0])), ≥))
(3) (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD2958(>(i466[0], 0), java.lang.Object(IntList(i466[0], o4023[0])), i164[0], i463[0])), ≥)∧[(-1)bso_26] ≥ 0)
(4) (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD2958(>(i466[0], 0), java.lang.Object(IntList(i466[0], o4023[0])), i164[0], i463[0])), ≥)∧[(-1)bso_26] ≥ 0)
(5) (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD2958(>(i466[0], 0), java.lang.Object(IntList(i466[0], o4023[0])), i164[0], i463[0])), ≥)∧[(-1)bso_26] ≥ 0)
(6) (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD2958(>(i466[0], 0), java.lang.Object(IntList(i466[0], o4023[0])), i164[0], i463[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_26] ≥ 0)
(7) (>(i466[0], 0)=TRUE∧i463[0]=i463[1]∧i164[0]=i164[1]∧i466[0]=i466[1]∧o4023[0]=o4023[1]∧+(i463[1], 1)=i463[0]1∧-(i466[1], 1)=i466[0]1∧o4023[1]=o4023[0]1∧i164[1]=i164[0]1 ⇒ COND_LOAD2958(TRUE, java.lang.Object(IntList(i466[1], o4023[1])), i164[1], i463[1])≥LOAD2958(java.lang.Object(IntList(-(i466[1], 1), o4023[1])), i164[1], +(i463[1], 1))∧(UIncreasing(LOAD2958(java.lang.Object(IntList(-(i466[1], 1), o4023[1])), i164[1], +(i463[1], 1))), ≥))
(8) (>(i466[0], 0)=TRUE ⇒ COND_LOAD2958(TRUE, java.lang.Object(IntList(i466[0], o4023[0])), i164[0], i463[0])≥LOAD2958(java.lang.Object(IntList(-(i466[0], 1), o4023[0])), i164[0], +(i463[0], 1))∧(UIncreasing(LOAD2958(java.lang.Object(IntList(-(i466[1], 1), o4023[1])), i164[1], +(i463[1], 1))), ≥))
(9) (0 ≥ 0 ⇒ (UIncreasing(LOAD2958(java.lang.Object(IntList(-(i466[1], 1), o4023[1])), i164[1], +(i463[1], 1))), ≥)∧[(-1)bso_27] ≥ 0)
(10) (0 ≥ 0 ⇒ (UIncreasing(LOAD2958(java.lang.Object(IntList(-(i466[1], 1), o4023[1])), i164[1], +(i463[1], 1))), ≥)∧[(-1)bso_27] ≥ 0)
(11) (0 ≥ 0 ⇒ (UIncreasing(LOAD2958(java.lang.Object(IntList(-(i466[1], 1), o4023[1])), i164[1], +(i463[1], 1))), ≥)∧[(-1)bso_27] ≥ 0)
(12) (0 ≥ 0 ⇒ (UIncreasing(LOAD2958(java.lang.Object(IntList(-(i466[1], 1), o4023[1])), i164[1], +(i463[1], 1))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_27] ≥ 0)
(13) (>(i466[0], 0)=TRUE∧i463[0]=i463[1]∧i164[0]=i164[1]∧i466[0]=i466[1]∧o4023[0]=o4023[1]∧+(i463[1], 1)=i463[2]∧i164[1]=i164[2]∧-(i466[1], 1)=i467[2]∧o4023[1]=java.lang.Object(IntList(o4048Field0[2], o4048Field1[2])) ⇒ COND_LOAD2958(TRUE, java.lang.Object(IntList(i466[1], o4023[1])), i164[1], i463[1])≥LOAD2958(java.lang.Object(IntList(-(i466[1], 1), o4023[1])), i164[1], +(i463[1], 1))∧(UIncreasing(LOAD2958(java.lang.Object(IntList(-(i466[1], 1), o4023[1])), i164[1], +(i463[1], 1))), ≥))
(14) (>(i466[0], 0)=TRUE ⇒ COND_LOAD2958(TRUE, java.lang.Object(IntList(i466[0], java.lang.Object(IntList(o4048Field0[2], o4048Field1[2])))), i164[0], i463[0])≥LOAD2958(java.lang.Object(IntList(-(i466[0], 1), java.lang.Object(IntList(o4048Field0[2], o4048Field1[2])))), i164[0], +(i463[0], 1))∧(UIncreasing(LOAD2958(java.lang.Object(IntList(-(i466[1], 1), o4023[1])), i164[1], +(i463[1], 1))), ≥))
(15) (0 ≥ 0 ⇒ (UIncreasing(LOAD2958(java.lang.Object(IntList(-(i466[1], 1), o4023[1])), i164[1], +(i463[1], 1))), ≥)∧[(-1)bso_27] ≥ 0)
(16) (0 ≥ 0 ⇒ (UIncreasing(LOAD2958(java.lang.Object(IntList(-(i466[1], 1), o4023[1])), i164[1], +(i463[1], 1))), ≥)∧[(-1)bso_27] ≥ 0)
(17) (0 ≥ 0 ⇒ (UIncreasing(LOAD2958(java.lang.Object(IntList(-(i466[1], 1), o4023[1])), i164[1], +(i463[1], 1))), ≥)∧[(-1)bso_27] ≥ 0)
(18) (0 ≥ 0 ⇒ (UIncreasing(LOAD2958(java.lang.Object(IntList(-(i466[1], 1), o4023[1])), i164[1], +(i463[1], 1))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_27] ≥ 0)
(19) (>(i466[0], 0)=TRUE∧i463[0]=i463[1]∧i164[0]=i164[1]∧i466[0]=i466[1]∧o4023[0]=o4023[1]∧+(i463[1], 1)=i463[4]∧-(i466[1], 1)=i467[4]∧o4023[1]=NULL∧i164[1]=i164[4] ⇒ COND_LOAD2958(TRUE, java.lang.Object(IntList(i466[1], o4023[1])), i164[1], i463[1])≥LOAD2958(java.lang.Object(IntList(-(i466[1], 1), o4023[1])), i164[1], +(i463[1], 1))∧(UIncreasing(LOAD2958(java.lang.Object(IntList(-(i466[1], 1), o4023[1])), i164[1], +(i463[1], 1))), ≥))
(20) (>(i466[0], 0)=TRUE ⇒ COND_LOAD2958(TRUE, java.lang.Object(IntList(i466[0], NULL)), i164[0], i463[0])≥LOAD2958(java.lang.Object(IntList(-(i466[0], 1), NULL)), i164[0], +(i463[0], 1))∧(UIncreasing(LOAD2958(java.lang.Object(IntList(-(i466[1], 1), o4023[1])), i164[1], +(i463[1], 1))), ≥))
(21) (0 ≥ 0 ⇒ (UIncreasing(LOAD2958(java.lang.Object(IntList(-(i466[1], 1), o4023[1])), i164[1], +(i463[1], 1))), ≥)∧[(-1)bso_27] ≥ 0)
(22) (0 ≥ 0 ⇒ (UIncreasing(LOAD2958(java.lang.Object(IntList(-(i466[1], 1), o4023[1])), i164[1], +(i463[1], 1))), ≥)∧[(-1)bso_27] ≥ 0)
(23) (0 ≥ 0 ⇒ (UIncreasing(LOAD2958(java.lang.Object(IntList(-(i466[1], 1), o4023[1])), i164[1], +(i463[1], 1))), ≥)∧[(-1)bso_27] ≥ 0)
(24) (0 ≥ 0 ⇒ (UIncreasing(LOAD2958(java.lang.Object(IntList(-(i466[1], 1), o4023[1])), i164[1], +(i463[1], 1))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_27] ≥ 0)
(25) (i164[2]=i164[3]∧<=(i467[2], 0)=TRUE∧i467[2]=i467[3]∧o4048Field0[2]=o4048Field0[3]∧o4048Field1[2]=o4048Field1[3]∧i463[2]=i463[3] ⇒ LOAD2958(java.lang.Object(IntList(i467[2], java.lang.Object(IntList(o4048Field0[2], o4048Field1[2])))), i164[2], i463[2])≥COND_LOAD29581(<=(i467[2], 0), java.lang.Object(IntList(i467[2], java.lang.Object(IntList(o4048Field0[2], o4048Field1[2])))), i164[2], i463[2])∧(UIncreasing(COND_LOAD29581(<=(i467[2], 0), java.lang.Object(IntList(i467[2], java.lang.Object(IntList(o4048Field0[2], o4048Field1[2])))), i164[2], i463[2])), ≥))
(26) (<=(i467[2], 0)=TRUE ⇒ LOAD2958(java.lang.Object(IntList(i467[2], java.lang.Object(IntList(o4048Field0[2], o4048Field1[2])))), i164[2], i463[2])≥COND_LOAD29581(<=(i467[2], 0), java.lang.Object(IntList(i467[2], java.lang.Object(IntList(o4048Field0[2], o4048Field1[2])))), i164[2], i463[2])∧(UIncreasing(COND_LOAD29581(<=(i467[2], 0), java.lang.Object(IntList(i467[2], java.lang.Object(IntList(o4048Field0[2], o4048Field1[2])))), i164[2], i463[2])), ≥))
(27) (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD29581(<=(i467[2], 0), java.lang.Object(IntList(i467[2], java.lang.Object(IntList(o4048Field0[2], o4048Field1[2])))), i164[2], i463[2])), ≥)∧[(-1)bso_28] ≥ 0)
(28) (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD29581(<=(i467[2], 0), java.lang.Object(IntList(i467[2], java.lang.Object(IntList(o4048Field0[2], o4048Field1[2])))), i164[2], i463[2])), ≥)∧[(-1)bso_28] ≥ 0)
(29) (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD29581(<=(i467[2], 0), java.lang.Object(IntList(i467[2], java.lang.Object(IntList(o4048Field0[2], o4048Field1[2])))), i164[2], i463[2])), ≥)∧[(-1)bso_28] ≥ 0)
(30) (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD29581(<=(i467[2], 0), java.lang.Object(IntList(i467[2], java.lang.Object(IntList(o4048Field0[2], o4048Field1[2])))), i164[2], i463[2])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_28] ≥ 0)
(31) (i164[2]=i164[3]∧<=(i467[2], 0)=TRUE∧i467[2]=i467[3]∧o4048Field0[2]=o4048Field0[3]∧o4048Field1[2]=o4048Field1[3]∧i463[2]=i463[3]∧*(i463[3], i164[3])=i463[0]∧i164[3]=i164[0]∧o4048Field0[3]=i466[0]∧o4048Field1[3]=o4023[0] ⇒ COND_LOAD29581(TRUE, java.lang.Object(IntList(i467[3], java.lang.Object(IntList(o4048Field0[3], o4048Field1[3])))), i164[3], i463[3])≥LOAD2958(java.lang.Object(IntList(o4048Field0[3], o4048Field1[3])), i164[3], *(i463[3], i164[3]))∧(UIncreasing(LOAD2958(java.lang.Object(IntList(o4048Field0[3], o4048Field1[3])), i164[3], *(i463[3], i164[3]))), ≥))
(32) (<=(i467[2], 0)=TRUE ⇒ COND_LOAD29581(TRUE, java.lang.Object(IntList(i467[2], java.lang.Object(IntList(o4048Field0[2], o4048Field1[2])))), i164[2], i463[2])≥LOAD2958(java.lang.Object(IntList(o4048Field0[2], o4048Field1[2])), i164[2], *(i463[2], i164[2]))∧(UIncreasing(LOAD2958(java.lang.Object(IntList(o4048Field0[3], o4048Field1[3])), i164[3], *(i463[3], i164[3]))), ≥))
(33) (0 ≥ 0 ⇒ (UIncreasing(LOAD2958(java.lang.Object(IntList(o4048Field0[3], o4048Field1[3])), i164[3], *(i463[3], i164[3]))), ≥)∧[(-1)bso_29] ≥ 0)
(34) (0 ≥ 0 ⇒ (UIncreasing(LOAD2958(java.lang.Object(IntList(o4048Field0[3], o4048Field1[3])), i164[3], *(i463[3], i164[3]))), ≥)∧[(-1)bso_29] ≥ 0)
(35) (0 ≥ 0 ⇒ (UIncreasing(LOAD2958(java.lang.Object(IntList(o4048Field0[3], o4048Field1[3])), i164[3], *(i463[3], i164[3]))), ≥)∧[(-1)bso_29] ≥ 0)
(36) (0 ≥ 0 ⇒ (UIncreasing(LOAD2958(java.lang.Object(IntList(o4048Field0[3], o4048Field1[3])), i164[3], *(i463[3], i164[3]))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_29] ≥ 0)
(37) (i164[2]=i164[3]∧<=(i467[2], 0)=TRUE∧i467[2]=i467[3]∧o4048Field0[2]=o4048Field0[3]∧o4048Field1[2]=o4048Field1[3]∧i463[2]=i463[3]∧*(i463[3], i164[3])=i463[2]1∧o4048Field0[3]=i467[2]1∧o4048Field1[3]=java.lang.Object(IntList(o4048Field0[2]1, o4048Field1[2]1))∧i164[3]=i164[2]1 ⇒ COND_LOAD29581(TRUE, java.lang.Object(IntList(i467[3], java.lang.Object(IntList(o4048Field0[3], o4048Field1[3])))), i164[3], i463[3])≥LOAD2958(java.lang.Object(IntList(o4048Field0[3], o4048Field1[3])), i164[3], *(i463[3], i164[3]))∧(UIncreasing(LOAD2958(java.lang.Object(IntList(o4048Field0[3], o4048Field1[3])), i164[3], *(i463[3], i164[3]))), ≥))
(38) (<=(i467[2], 0)=TRUE ⇒ COND_LOAD29581(TRUE, java.lang.Object(IntList(i467[2], java.lang.Object(IntList(o4048Field0[2], java.lang.Object(IntList(o4048Field0[2]1, o4048Field1[2]1)))))), i164[2], i463[2])≥LOAD2958(java.lang.Object(IntList(o4048Field0[2], java.lang.Object(IntList(o4048Field0[2]1, o4048Field1[2]1)))), i164[2], *(i463[2], i164[2]))∧(UIncreasing(LOAD2958(java.lang.Object(IntList(o4048Field0[3], o4048Field1[3])), i164[3], *(i463[3], i164[3]))), ≥))
(39) (0 ≥ 0 ⇒ (UIncreasing(LOAD2958(java.lang.Object(IntList(o4048Field0[3], o4048Field1[3])), i164[3], *(i463[3], i164[3]))), ≥)∧[(-1)bso_29] ≥ 0)
(40) (0 ≥ 0 ⇒ (UIncreasing(LOAD2958(java.lang.Object(IntList(o4048Field0[3], o4048Field1[3])), i164[3], *(i463[3], i164[3]))), ≥)∧[(-1)bso_29] ≥ 0)
(41) (0 ≥ 0 ⇒ (UIncreasing(LOAD2958(java.lang.Object(IntList(o4048Field0[3], o4048Field1[3])), i164[3], *(i463[3], i164[3]))), ≥)∧[(-1)bso_29] ≥ 0)
(42) (0 ≥ 0 ⇒ (UIncreasing(LOAD2958(java.lang.Object(IntList(o4048Field0[3], o4048Field1[3])), i164[3], *(i463[3], i164[3]))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_29] ≥ 0)
(43) (i164[2]=i164[3]∧<=(i467[2], 0)=TRUE∧i467[2]=i467[3]∧o4048Field0[2]=o4048Field0[3]∧o4048Field1[2]=o4048Field1[3]∧i463[2]=i463[3]∧*(i463[3], i164[3])=i463[4]∧o4048Field0[3]=i467[4]∧o4048Field1[3]=NULL∧i164[3]=i164[4] ⇒ COND_LOAD29581(TRUE, java.lang.Object(IntList(i467[3], java.lang.Object(IntList(o4048Field0[3], o4048Field1[3])))), i164[3], i463[3])≥LOAD2958(java.lang.Object(IntList(o4048Field0[3], o4048Field1[3])), i164[3], *(i463[3], i164[3]))∧(UIncreasing(LOAD2958(java.lang.Object(IntList(o4048Field0[3], o4048Field1[3])), i164[3], *(i463[3], i164[3]))), ≥))
(44) (<=(i467[2], 0)=TRUE ⇒ COND_LOAD29581(TRUE, java.lang.Object(IntList(i467[2], java.lang.Object(IntList(o4048Field0[2], NULL)))), i164[2], i463[2])≥LOAD2958(java.lang.Object(IntList(o4048Field0[2], NULL)), i164[2], *(i463[2], i164[2]))∧(UIncreasing(LOAD2958(java.lang.Object(IntList(o4048Field0[3], o4048Field1[3])), i164[3], *(i463[3], i164[3]))), ≥))
(45) (0 ≥ 0 ⇒ (UIncreasing(LOAD2958(java.lang.Object(IntList(o4048Field0[3], o4048Field1[3])), i164[3], *(i463[3], i164[3]))), ≥)∧[(-1)bso_29] ≥ 0)
(46) (0 ≥ 0 ⇒ (UIncreasing(LOAD2958(java.lang.Object(IntList(o4048Field0[3], o4048Field1[3])), i164[3], *(i463[3], i164[3]))), ≥)∧[(-1)bso_29] ≥ 0)
(47) (0 ≥ 0 ⇒ (UIncreasing(LOAD2958(java.lang.Object(IntList(o4048Field0[3], o4048Field1[3])), i164[3], *(i463[3], i164[3]))), ≥)∧[(-1)bso_29] ≥ 0)
(48) (0 ≥ 0 ⇒ (UIncreasing(LOAD2958(java.lang.Object(IntList(o4048Field0[3], o4048Field1[3])), i164[3], *(i463[3], i164[3]))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_29] ≥ 0)
(49) (i467[4]=i467[5]∧<=(i467[4], 0)=TRUE∧i164[4]=i164[5]∧i463[4]=i463[5] ⇒ LOAD2958(java.lang.Object(IntList(i467[4], NULL)), i164[4], i463[4])≥COND_LOAD29582(<=(i467[4], 0), java.lang.Object(IntList(i467[4], NULL)), i164[4], i463[4])∧(UIncreasing(COND_LOAD29582(<=(i467[4], 0), java.lang.Object(IntList(i467[4], NULL)), i164[4], i463[4])), ≥))
(50) (<=(i467[4], 0)=TRUE ⇒ LOAD2958(java.lang.Object(IntList(i467[4], NULL)), i164[4], i463[4])≥COND_LOAD29582(<=(i467[4], 0), java.lang.Object(IntList(i467[4], NULL)), i164[4], i463[4])∧(UIncreasing(COND_LOAD29582(<=(i467[4], 0), java.lang.Object(IntList(i467[4], NULL)), i164[4], i463[4])), ≥))
(51) (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD29582(<=(i467[4], 0), java.lang.Object(IntList(i467[4], NULL)), i164[4], i463[4])), ≥)∧[1 + (-1)bso_30] ≥ 0)
(52) (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD29582(<=(i467[4], 0), java.lang.Object(IntList(i467[4], NULL)), i164[4], i463[4])), ≥)∧[1 + (-1)bso_30] ≥ 0)
(53) (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD29582(<=(i467[4], 0), java.lang.Object(IntList(i467[4], NULL)), i164[4], i463[4])), ≥)∧[1 + (-1)bso_30] ≥ 0)
(54) (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD29582(<=(i467[4], 0), java.lang.Object(IntList(i467[4], NULL)), i164[4], i463[4])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_30] ≥ 0)
(55) (COND_LOAD29582(TRUE, java.lang.Object(IntList(i467[5], NULL)), i164[5], i463[5])≥LOAD2958(NULL, i164[5], i463[5])∧(UIncreasing(LOAD2958(NULL, i164[5], i463[5])), ≥))
(56) ((UIncreasing(LOAD2958(NULL, i164[5], i463[5])), ≥)∧[(-1)bso_31] ≥ 0)
(57) ((UIncreasing(LOAD2958(NULL, i164[5], i463[5])), ≥)∧[(-1)bso_31] ≥ 0)
(58) ((UIncreasing(LOAD2958(NULL, i164[5], i463[5])), ≥)∧[(-1)bso_31] ≥ 0)
(59) ((UIncreasing(LOAD2958(NULL, i164[5], i463[5])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_31] ≥ 0)
(60) (COND_LOAD29582(TRUE, java.lang.Object(IntList(i467[5], NULL)), i164[5], i463[5])≥LOAD2958(NULL, i164[5], i463[5])∧(UIncreasing(LOAD2958(NULL, i164[5], i463[5])), ≥))
(61) ((UIncreasing(LOAD2958(NULL, i164[5], i463[5])), ≥)∧[(-1)bso_31] ≥ 0)
(62) ((UIncreasing(LOAD2958(NULL, i164[5], i463[5])), ≥)∧[(-1)bso_31] ≥ 0)
(63) ((UIncreasing(LOAD2958(NULL, i164[5], i463[5])), ≥)∧[(-1)bso_31] ≥ 0)
(64) ((UIncreasing(LOAD2958(NULL, i164[5], i463[5])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_31] ≥ 0)
(65) (COND_LOAD29582(TRUE, java.lang.Object(IntList(i467[5], NULL)), i164[5], i463[5])≥LOAD2958(NULL, i164[5], i463[5])∧(UIncreasing(LOAD2958(NULL, i164[5], i463[5])), ≥))
(66) ((UIncreasing(LOAD2958(NULL, i164[5], i463[5])), ≥)∧[(-1)bso_31] ≥ 0)
(67) ((UIncreasing(LOAD2958(NULL, i164[5], i463[5])), ≥)∧[(-1)bso_31] ≥ 0)
(68) ((UIncreasing(LOAD2958(NULL, i164[5], i463[5])), ≥)∧[(-1)bso_31] ≥ 0)
(69) ((UIncreasing(LOAD2958(NULL, i164[5], i463[5])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_31] ≥ 0)
POL(TRUE) = 0
POL(FALSE) = 0
POL(LOAD2958(x1, x2, x3)) = [3]x2 + x1
POL(java.lang.Object(x1)) = [1]
POL(IntList(x1, x2)) = 0
POL(COND_LOAD2958(x1, x2, x3, x4)) = [1] + [3]x3
POL(>(x1, x2)) = 0
POL(0) = 0
POL(-(x1, x2)) = 0
POL(1) = 0
POL(+(x1, x2)) = 0
POL(COND_LOAD29581(x1, x2, x3, x4)) = [1] + [3]x3
POL(<=(x1, x2)) = 0
POL(*(x1, x2)) = 0
POL(NULL) = 0
POL(COND_LOAD29582(x1, x2, x3, x4)) = [3]x3
LOAD2958(java.lang.Object(IntList(i467[4], NULL)), i164[4], i463[4]) → COND_LOAD29582(<=(i467[4], 0), java.lang.Object(IntList(i467[4], NULL)), i164[4], i463[4])
LOAD2958(java.lang.Object(IntList(i466[0], o4023[0])), i164[0], i463[0]) → COND_LOAD2958(>(i466[0], 0), java.lang.Object(IntList(i466[0], o4023[0])), i164[0], i463[0])
COND_LOAD2958(TRUE, java.lang.Object(IntList(i466[1], o4023[1])), i164[1], i463[1]) → LOAD2958(java.lang.Object(IntList(-(i466[1], 1), o4023[1])), i164[1], +(i463[1], 1))
LOAD2958(java.lang.Object(IntList(i467[2], java.lang.Object(IntList(o4048Field0[2], o4048Field1[2])))), i164[2], i463[2]) → COND_LOAD29581(<=(i467[2], 0), java.lang.Object(IntList(i467[2], java.lang.Object(IntList(o4048Field0[2], o4048Field1[2])))), i164[2], i463[2])
COND_LOAD29581(TRUE, java.lang.Object(IntList(i467[3], java.lang.Object(IntList(o4048Field0[3], o4048Field1[3])))), i164[3], i463[3]) → LOAD2958(java.lang.Object(IntList(o4048Field0[3], o4048Field1[3])), i164[3], *(i463[3], i164[3]))
LOAD2958(java.lang.Object(IntList(i467[4], NULL)), i164[4], i463[4]) → COND_LOAD29582(<=(i467[4], 0), java.lang.Object(IntList(i467[4], NULL)), i164[4], i463[4])
COND_LOAD29582(TRUE, java.lang.Object(IntList(i467[5], NULL)), i164[5], i463[5]) → LOAD2958(NULL, i164[5], i463[5])
LOAD2958(java.lang.Object(IntList(i466[0], o4023[0])), i164[0], i463[0]) → COND_LOAD2958(>(i466[0], 0), java.lang.Object(IntList(i466[0], o4023[0])), i164[0], i463[0])
COND_LOAD2958(TRUE, java.lang.Object(IntList(i466[1], o4023[1])), i164[1], i463[1]) → LOAD2958(java.lang.Object(IntList(-(i466[1], 1), o4023[1])), i164[1], +(i463[1], 1))
LOAD2958(java.lang.Object(IntList(i467[2], java.lang.Object(IntList(o4048Field0[2], o4048Field1[2])))), i164[2], i463[2]) → COND_LOAD29581(<=(i467[2], 0), java.lang.Object(IntList(i467[2], java.lang.Object(IntList(o4048Field0[2], o4048Field1[2])))), i164[2], i463[2])
COND_LOAD29581(TRUE, java.lang.Object(IntList(i467[3], java.lang.Object(IntList(o4048Field0[3], o4048Field1[3])))), i164[3], i463[3]) → LOAD2958(java.lang.Object(IntList(o4048Field0[3], o4048Field1[3])), i164[3], *(i463[3], i164[3]))
COND_LOAD29582(TRUE, java.lang.Object(IntList(i467[5], NULL)), i164[5], i463[5]) → LOAD2958(NULL, i164[5], i463[5])
!= | ~ | 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) -> (0), if ((i463[1] + 1 →* i463[0])∧((i466[1] - 1 →* i466[0])∧(o4023[1] →* o4023[0]))∧(i164[1] →* i164[0]))
(3) -> (0), if ((i463[3] * i164[3] →* i463[0])∧(i164[3] →* i164[0])∧((o4048Field0[3] →* i466[0])∧(o4048Field1[3] →* o4023[0])))
(5) -> (0), if ((i164[5] →* i164[0])∧(i463[5] →* i463[0])∧false)
(0) -> (1), if ((i466[0] > 0 →* TRUE)∧(i463[0] →* i463[1])∧(i164[0] →* i164[1])∧((i466[0] →* i466[1])∧(o4023[0] →* o4023[1])))
(1) -> (2), if ((i463[1] + 1 →* i463[2])∧(i164[1] →* i164[2])∧((i466[1] - 1 →* i467[2])∧(o4023[1] →* java.lang.Object(IntList(o4048Field0[2], o4048Field1[2])))))
(3) -> (2), if ((i463[3] * i164[3] →* i463[2])∧((o4048Field0[3] →* i467[2])∧(o4048Field1[3] →* java.lang.Object(IntList(o4048Field0[2], o4048Field1[2]))))∧(i164[3] →* i164[2]))
(5) -> (2), if (false∧(i463[5] →* i463[2])∧(i164[5] →* i164[2]))
(2) -> (3), if ((i164[2] →* i164[3])∧(i467[2] <= 0 →* TRUE)∧((i467[2] →* i467[3])∧(o4048Field0[2] →* o4048Field0[3])∧(o4048Field1[2] →* o4048Field1[3]))∧(i463[2] →* i463[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 |
Integer
(1) -> (0), if ((i463[1] + 1 →* i463[0])∧((i466[1] - 1 →* i466[0])∧(o4023[1] →* o4023[0]))∧(i164[1] →* i164[0]))
(3) -> (0), if ((i463[3] * i164[3] →* i463[0])∧(i164[3] →* i164[0])∧((o4048Field0[3] →* i466[0])∧(o4048Field1[3] →* o4023[0])))
(0) -> (1), if ((i466[0] > 0 →* TRUE)∧(i463[0] →* i463[1])∧(i164[0] →* i164[1])∧((i466[0] →* i466[1])∧(o4023[0] →* o4023[1])))
(1) -> (2), if ((i463[1] + 1 →* i463[2])∧(i164[1] →* i164[2])∧((i466[1] - 1 →* i467[2])∧(o4023[1] →* java.lang.Object(IntList(o4048Field0[2], o4048Field1[2])))))
(3) -> (2), if ((i463[3] * i164[3] →* i463[2])∧((o4048Field0[3] →* i467[2])∧(o4048Field1[3] →* java.lang.Object(IntList(o4048Field0[2], o4048Field1[2]))))∧(i164[3] →* i164[2]))
(2) -> (3), if ((i164[2] →* i164[3])∧(i467[2] <= 0 →* TRUE)∧((i467[2] →* i467[3])∧(o4048Field0[2] →* o4048Field0[3])∧(o4048Field1[2] →* o4048Field1[3]))∧(i463[2] →* i463[3]))
(1) (i164[2]=i164[3]∧<=(i467[2], 0)=TRUE∧i467[2]=i467[3]∧o4048Field0[2]=o4048Field0[3]∧o4048Field1[2]=o4048Field1[3]∧i463[2]=i463[3]∧*(i463[3], i164[3])=i463[0]∧i164[3]=i164[0]∧o4048Field0[3]=i466[0]∧o4048Field1[3]=o4023[0] ⇒ COND_LOAD29581(TRUE, java.lang.Object(IntList(i467[3], java.lang.Object(IntList(o4048Field0[3], o4048Field1[3])))), i164[3], i463[3])≥LOAD2958(java.lang.Object(IntList(o4048Field0[3], o4048Field1[3])), i164[3], *(i463[3], i164[3]))∧(UIncreasing(LOAD2958(java.lang.Object(IntList(o4048Field0[3], o4048Field1[3])), i164[3], *(i463[3], i164[3]))), ≥))
(2) (<=(i467[2], 0)=TRUE ⇒ COND_LOAD29581(TRUE, java.lang.Object(IntList(i467[2], java.lang.Object(IntList(o4048Field0[2], o4048Field1[2])))), i164[2], i463[2])≥LOAD2958(java.lang.Object(IntList(o4048Field0[2], o4048Field1[2])), i164[2], *(i463[2], i164[2]))∧(UIncreasing(LOAD2958(java.lang.Object(IntList(o4048Field0[3], o4048Field1[3])), i164[3], *(i463[3], i164[3]))), ≥))
(3) (0 ≥ 0 ⇒ (UIncreasing(LOAD2958(java.lang.Object(IntList(o4048Field0[3], o4048Field1[3])), i164[3], *(i463[3], i164[3]))), ≥)∧[5 + (-1)bso_20] + i463[2] + [8]o4048Field1[2] ≥ 0)
(4) (0 ≥ 0 ⇒ (UIncreasing(LOAD2958(java.lang.Object(IntList(o4048Field0[3], o4048Field1[3])), i164[3], *(i463[3], i164[3]))), ≥)∧[5 + (-1)bso_20] + i463[2] + [8]o4048Field1[2] ≥ 0)
(5) (0 ≥ 0 ⇒ (UIncreasing(LOAD2958(java.lang.Object(IntList(o4048Field0[3], o4048Field1[3])), i164[3], *(i463[3], i164[3]))), ≥)∧[5 + (-1)bso_20] + i463[2] + [8]o4048Field1[2] ≥ 0)
(6) (0 ≥ 0 ⇒ (UIncreasing(LOAD2958(java.lang.Object(IntList(o4048Field0[3], o4048Field1[3])), i164[3], *(i463[3], i164[3]))), ≥)∧[1] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[5 + (-1)bso_20] ≥ 0∧[1] ≥ 0)
(7) (i164[2]=i164[3]∧<=(i467[2], 0)=TRUE∧i467[2]=i467[3]∧o4048Field0[2]=o4048Field0[3]∧o4048Field1[2]=o4048Field1[3]∧i463[2]=i463[3]∧*(i463[3], i164[3])=i463[2]1∧o4048Field0[3]=i467[2]1∧o4048Field1[3]=java.lang.Object(IntList(o4048Field0[2]1, o4048Field1[2]1))∧i164[3]=i164[2]1 ⇒ COND_LOAD29581(TRUE, java.lang.Object(IntList(i467[3], java.lang.Object(IntList(o4048Field0[3], o4048Field1[3])))), i164[3], i463[3])≥LOAD2958(java.lang.Object(IntList(o4048Field0[3], o4048Field1[3])), i164[3], *(i463[3], i164[3]))∧(UIncreasing(LOAD2958(java.lang.Object(IntList(o4048Field0[3], o4048Field1[3])), i164[3], *(i463[3], i164[3]))), ≥))
(8) (<=(i467[2], 0)=TRUE ⇒ COND_LOAD29581(TRUE, java.lang.Object(IntList(i467[2], java.lang.Object(IntList(o4048Field0[2], java.lang.Object(IntList(o4048Field0[2]1, o4048Field1[2]1)))))), i164[2], i463[2])≥LOAD2958(java.lang.Object(IntList(o4048Field0[2], java.lang.Object(IntList(o4048Field0[2]1, o4048Field1[2]1)))), i164[2], *(i463[2], i164[2]))∧(UIncreasing(LOAD2958(java.lang.Object(IntList(o4048Field0[3], o4048Field1[3])), i164[3], *(i463[3], i164[3]))), ≥))
(9) (0 ≥ 0 ⇒ (UIncreasing(LOAD2958(java.lang.Object(IntList(o4048Field0[3], o4048Field1[3])), i164[3], *(i463[3], i164[3]))), ≥)∧[13 + (-1)bso_20] + i463[2] + [32]o4048Field1[2]1 ≥ 0)
(10) (0 ≥ 0 ⇒ (UIncreasing(LOAD2958(java.lang.Object(IntList(o4048Field0[3], o4048Field1[3])), i164[3], *(i463[3], i164[3]))), ≥)∧[13 + (-1)bso_20] + i463[2] + [32]o4048Field1[2]1 ≥ 0)
(11) (0 ≥ 0 ⇒ (UIncreasing(LOAD2958(java.lang.Object(IntList(o4048Field0[3], o4048Field1[3])), i164[3], *(i463[3], i164[3]))), ≥)∧[13 + (-1)bso_20] + i463[2] + [32]o4048Field1[2]1 ≥ 0)
(12) (0 ≥ 0 ⇒ (UIncreasing(LOAD2958(java.lang.Object(IntList(o4048Field0[3], o4048Field1[3])), i164[3], *(i463[3], i164[3]))), ≥)∧[1] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[13 + (-1)bso_20] ≥ 0∧[1] ≥ 0)
(13) (i164[2]=i164[3]∧<=(i467[2], 0)=TRUE∧i467[2]=i467[3]∧o4048Field0[2]=o4048Field0[3]∧o4048Field1[2]=o4048Field1[3]∧i463[2]=i463[3] ⇒ LOAD2958(java.lang.Object(IntList(i467[2], java.lang.Object(IntList(o4048Field0[2], o4048Field1[2])))), i164[2], i463[2])≥COND_LOAD29581(<=(i467[2], 0), java.lang.Object(IntList(i467[2], java.lang.Object(IntList(o4048Field0[2], o4048Field1[2])))), i164[2], i463[2])∧(UIncreasing(COND_LOAD29581(<=(i467[2], 0), java.lang.Object(IntList(i467[2], java.lang.Object(IntList(o4048Field0[2], o4048Field1[2])))), i164[2], i463[2])), ≥))
(14) (<=(i467[2], 0)=TRUE ⇒ LOAD2958(java.lang.Object(IntList(i467[2], java.lang.Object(IntList(o4048Field0[2], o4048Field1[2])))), i164[2], i463[2])≥COND_LOAD29581(<=(i467[2], 0), java.lang.Object(IntList(i467[2], java.lang.Object(IntList(o4048Field0[2], o4048Field1[2])))), i164[2], i463[2])∧(UIncreasing(COND_LOAD29581(<=(i467[2], 0), java.lang.Object(IntList(i467[2], java.lang.Object(IntList(o4048Field0[2], o4048Field1[2])))), i164[2], i463[2])), ≥))
(15) (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD29581(<=(i467[2], 0), java.lang.Object(IntList(i467[2], java.lang.Object(IntList(o4048Field0[2], o4048Field1[2])))), i164[2], i463[2])), ≥)∧[3 + (-1)bso_21] + [16]o4048Field1[2] ≥ 0)
(16) (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD29581(<=(i467[2], 0), java.lang.Object(IntList(i467[2], java.lang.Object(IntList(o4048Field0[2], o4048Field1[2])))), i164[2], i463[2])), ≥)∧[3 + (-1)bso_21] + [16]o4048Field1[2] ≥ 0)
(17) (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD29581(<=(i467[2], 0), java.lang.Object(IntList(i467[2], java.lang.Object(IntList(o4048Field0[2], o4048Field1[2])))), i164[2], i463[2])), ≥)∧[3 + (-1)bso_21] + [16]o4048Field1[2] ≥ 0)
(18) (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD29581(<=(i467[2], 0), java.lang.Object(IntList(i467[2], java.lang.Object(IntList(o4048Field0[2], o4048Field1[2])))), i164[2], i463[2])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[3 + (-1)bso_21] ≥ 0∧[1] ≥ 0)
(19) (>(i466[0], 0)=TRUE∧i463[0]=i463[1]∧i164[0]=i164[1]∧i466[0]=i466[1]∧o4023[0]=o4023[1]∧+(i463[1], 1)=i463[0]1∧-(i466[1], 1)=i466[0]1∧o4023[1]=o4023[0]1∧i164[1]=i164[0]1 ⇒ COND_LOAD2958(TRUE, java.lang.Object(IntList(i466[1], o4023[1])), i164[1], i463[1])≥LOAD2958(java.lang.Object(IntList(-(i466[1], 1), o4023[1])), i164[1], +(i463[1], 1))∧(UIncreasing(LOAD2958(java.lang.Object(IntList(-(i466[1], 1), o4023[1])), i164[1], +(i463[1], 1))), ≥))
(20) (>(i466[0], 0)=TRUE ⇒ COND_LOAD2958(TRUE, java.lang.Object(IntList(i466[0], o4023[0])), i164[0], i463[0])≥LOAD2958(java.lang.Object(IntList(-(i466[0], 1), o4023[0])), i164[0], +(i463[0], 1))∧(UIncreasing(LOAD2958(java.lang.Object(IntList(-(i466[1], 1), o4023[1])), i164[1], +(i463[1], 1))), ≥))
(21) (0 ≥ 0 ⇒ (UIncreasing(LOAD2958(java.lang.Object(IntList(-(i466[1], 1), o4023[1])), i164[1], +(i463[1], 1))), ≥)∧[(-1)bso_22] + i463[0] ≥ 0)
(22) (0 ≥ 0 ⇒ (UIncreasing(LOAD2958(java.lang.Object(IntList(-(i466[1], 1), o4023[1])), i164[1], +(i463[1], 1))), ≥)∧[(-1)bso_22] + i463[0] ≥ 0)
(23) (0 ≥ 0 ⇒ (UIncreasing(LOAD2958(java.lang.Object(IntList(-(i466[1], 1), o4023[1])), i164[1], +(i463[1], 1))), ≥)∧[(-1)bso_22] + i463[0] ≥ 0)
(24) (0 ≥ 0 ⇒ (UIncreasing(LOAD2958(java.lang.Object(IntList(-(i466[1], 1), o4023[1])), i164[1], +(i463[1], 1))), ≥)∧[1] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_22] ≥ 0)
(25) (>(i466[0], 0)=TRUE∧i463[0]=i463[1]∧i164[0]=i164[1]∧i466[0]=i466[1]∧o4023[0]=o4023[1]∧+(i463[1], 1)=i463[2]∧i164[1]=i164[2]∧-(i466[1], 1)=i467[2]∧o4023[1]=java.lang.Object(IntList(o4048Field0[2], o4048Field1[2])) ⇒ COND_LOAD2958(TRUE, java.lang.Object(IntList(i466[1], o4023[1])), i164[1], i463[1])≥LOAD2958(java.lang.Object(IntList(-(i466[1], 1), o4023[1])), i164[1], +(i463[1], 1))∧(UIncreasing(LOAD2958(java.lang.Object(IntList(-(i466[1], 1), o4023[1])), i164[1], +(i463[1], 1))), ≥))
(26) (>(i466[0], 0)=TRUE ⇒ COND_LOAD2958(TRUE, java.lang.Object(IntList(i466[0], java.lang.Object(IntList(o4048Field0[2], o4048Field1[2])))), i164[0], i463[0])≥LOAD2958(java.lang.Object(IntList(-(i466[0], 1), java.lang.Object(IntList(o4048Field0[2], o4048Field1[2])))), i164[0], +(i463[0], 1))∧(UIncreasing(LOAD2958(java.lang.Object(IntList(-(i466[1], 1), o4023[1])), i164[1], +(i463[1], 1))), ≥))
(27) (0 ≥ 0 ⇒ (UIncreasing(LOAD2958(java.lang.Object(IntList(-(i466[1], 1), o4023[1])), i164[1], +(i463[1], 1))), ≥)∧[(-1)bso_22] + i463[0] ≥ 0)
(28) (0 ≥ 0 ⇒ (UIncreasing(LOAD2958(java.lang.Object(IntList(-(i466[1], 1), o4023[1])), i164[1], +(i463[1], 1))), ≥)∧[(-1)bso_22] + i463[0] ≥ 0)
(29) (0 ≥ 0 ⇒ (UIncreasing(LOAD2958(java.lang.Object(IntList(-(i466[1], 1), o4023[1])), i164[1], +(i463[1], 1))), ≥)∧[(-1)bso_22] + i463[0] ≥ 0)
(30) (0 ≥ 0 ⇒ (UIncreasing(LOAD2958(java.lang.Object(IntList(-(i466[1], 1), o4023[1])), i164[1], +(i463[1], 1))), ≥)∧[1] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_22] ≥ 0)
(31) (>(i466[0], 0)=TRUE∧i463[0]=i463[1]∧i164[0]=i164[1]∧i466[0]=i466[1]∧o4023[0]=o4023[1] ⇒ LOAD2958(java.lang.Object(IntList(i466[0], o4023[0])), i164[0], i463[0])≥COND_LOAD2958(>(i466[0], 0), java.lang.Object(IntList(i466[0], o4023[0])), i164[0], i463[0])∧(UIncreasing(COND_LOAD2958(>(i466[0], 0), java.lang.Object(IntList(i466[0], o4023[0])), i164[0], i463[0])), ≥))
(32) (>(i466[0], 0)=TRUE ⇒ LOAD2958(java.lang.Object(IntList(i466[0], o4023[0])), i164[0], i463[0])≥COND_LOAD2958(>(i466[0], 0), java.lang.Object(IntList(i466[0], o4023[0])), i164[0], i463[0])∧(UIncreasing(COND_LOAD2958(>(i466[0], 0), java.lang.Object(IntList(i466[0], o4023[0])), i164[0], i463[0])), ≥))
(33) (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD2958(>(i466[0], 0), java.lang.Object(IntList(i466[0], o4023[0])), i164[0], i463[0])), ≥)∧[(-1)bso_23] ≥ 0)
(34) (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD2958(>(i466[0], 0), java.lang.Object(IntList(i466[0], o4023[0])), i164[0], i463[0])), ≥)∧[(-1)bso_23] ≥ 0)
(35) (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD2958(>(i466[0], 0), java.lang.Object(IntList(i466[0], o4023[0])), i164[0], i463[0])), ≥)∧[(-1)bso_23] ≥ 0)
(36) (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD2958(>(i466[0], 0), java.lang.Object(IntList(i466[0], o4023[0])), i164[0], i463[0])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_23] ≥ 0)
POL(TRUE) = 0
POL(FALSE) = 0
POL(COND_LOAD29581(x1, x2, x3, x4)) = [2] + x4 + [2]x3 + x2
POL(java.lang.Object(x1)) = [1] + [2]x1
POL(IntList(x1, x2)) = [2]x2
POL(LOAD2958(x1, x2, x3)) = x3 + [2]x2 + [2]x1
POL(*(x1, x2)) = 0
POL(<=(x1, x2)) = 0
POL(0) = 0
POL(COND_LOAD2958(x1, x2, x3, x4)) = x4 + [2]x3 + [2]x2
POL(-(x1, x2)) = 0
POL(1) = 0
POL(+(x1, x2)) = 0
POL(>(x1, x2)) = 0
COND_LOAD29581(TRUE, java.lang.Object(IntList(i467[3], java.lang.Object(IntList(o4048Field0[3], o4048Field1[3])))), i164[3], i463[3]) → LOAD2958(java.lang.Object(IntList(o4048Field0[3], o4048Field1[3])), i164[3], *(i463[3], i164[3]))
LOAD2958(java.lang.Object(IntList(i467[2], java.lang.Object(IntList(o4048Field0[2], o4048Field1[2])))), i164[2], i463[2]) → COND_LOAD29581(<=(i467[2], 0), java.lang.Object(IntList(i467[2], java.lang.Object(IntList(o4048Field0[2], o4048Field1[2])))), i164[2], i463[2])
COND_LOAD29581(TRUE, java.lang.Object(IntList(i467[3], java.lang.Object(IntList(o4048Field0[3], o4048Field1[3])))), i164[3], i463[3]) → LOAD2958(java.lang.Object(IntList(o4048Field0[3], o4048Field1[3])), i164[3], *(i463[3], i164[3]))
LOAD2958(java.lang.Object(IntList(i467[2], java.lang.Object(IntList(o4048Field0[2], o4048Field1[2])))), i164[2], i463[2]) → COND_LOAD29581(<=(i467[2], 0), java.lang.Object(IntList(i467[2], java.lang.Object(IntList(o4048Field0[2], o4048Field1[2])))), i164[2], i463[2])
COND_LOAD2958(TRUE, java.lang.Object(IntList(i466[1], o4023[1])), i164[1], i463[1]) → LOAD2958(java.lang.Object(IntList(-(i466[1], 1), o4023[1])), i164[1], +(i463[1], 1))
LOAD2958(java.lang.Object(IntList(i466[0], o4023[0])), i164[0], i463[0]) → COND_LOAD2958(>(i466[0], 0), java.lang.Object(IntList(i466[0], o4023[0])), i164[0], i463[0])
COND_LOAD2958(TRUE, java.lang.Object(IntList(i466[1], o4023[1])), i164[1], i463[1]) → LOAD2958(java.lang.Object(IntList(-(i466[1], 1), o4023[1])), i164[1], +(i463[1], 1))
LOAD2958(java.lang.Object(IntList(i466[0], o4023[0])), i164[0], i463[0]) → COND_LOAD2958(>(i466[0], 0), java.lang.Object(IntList(i466[0], o4023[0])), i164[0], i463[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) -> (0), if ((i463[1] + 1 →* i463[0])∧((i466[1] - 1 →* i466[0])∧(o4023[1] →* o4023[0]))∧(i164[1] →* i164[0]))
(0) -> (1), if ((i466[0] > 0 →* TRUE)∧(i463[0] →* i463[1])∧(i164[0] →* i164[1])∧((i466[0] →* i466[1])∧(o4023[0] →* o4023[1])))
(1) (>(i466[0], 0)=TRUE∧i463[0]=i463[1]∧i164[0]=i164[1]∧i466[0]=i466[1]∧o4023[0]=o4023[1]∧+(i463[1], 1)=i463[0]1∧-(i466[1], 1)=i466[0]1∧o4023[1]=o4023[0]1∧i164[1]=i164[0]1 ⇒ COND_LOAD2958(TRUE, java.lang.Object(IntList(i466[1], o4023[1])), i164[1], i463[1])≥NonInfC∧COND_LOAD2958(TRUE, java.lang.Object(IntList(i466[1], o4023[1])), i164[1], i463[1])≥LOAD2958(java.lang.Object(IntList(-(i466[1], 1), o4023[1])), i164[1], +(i463[1], 1))∧(UIncreasing(LOAD2958(java.lang.Object(IntList(-(i466[1], 1), o4023[1])), i164[1], +(i463[1], 1))), ≥))
(2) (>(i466[0], 0)=TRUE ⇒ COND_LOAD2958(TRUE, java.lang.Object(IntList(i466[0], o4023[0])), i164[0], i463[0])≥NonInfC∧COND_LOAD2958(TRUE, java.lang.Object(IntList(i466[0], o4023[0])), i164[0], i463[0])≥LOAD2958(java.lang.Object(IntList(-(i466[0], 1), o4023[0])), i164[0], +(i463[0], 1))∧(UIncreasing(LOAD2958(java.lang.Object(IntList(-(i466[1], 1), o4023[1])), i164[1], +(i463[1], 1))), ≥))
(3) (i466[0] + [-1] ≥ 0 ⇒ (UIncreasing(LOAD2958(java.lang.Object(IntList(-(i466[1], 1), o4023[1])), i164[1], +(i463[1], 1))), ≥)∧[(-1)bni_18 + (-1)Bound*bni_18] + [bni_18]i466[0] ≥ 0∧[1 + (-1)bso_19] ≥ 0)
(4) (i466[0] + [-1] ≥ 0 ⇒ (UIncreasing(LOAD2958(java.lang.Object(IntList(-(i466[1], 1), o4023[1])), i164[1], +(i463[1], 1))), ≥)∧[(-1)bni_18 + (-1)Bound*bni_18] + [bni_18]i466[0] ≥ 0∧[1 + (-1)bso_19] ≥ 0)
(5) (i466[0] + [-1] ≥ 0 ⇒ (UIncreasing(LOAD2958(java.lang.Object(IntList(-(i466[1], 1), o4023[1])), i164[1], +(i463[1], 1))), ≥)∧[(-1)bni_18 + (-1)Bound*bni_18] + [bni_18]i466[0] ≥ 0∧[1 + (-1)bso_19] ≥ 0)
(6) (i466[0] + [-1] ≥ 0 ⇒ (UIncreasing(LOAD2958(java.lang.Object(IntList(-(i466[1], 1), o4023[1])), i164[1], +(i463[1], 1))), ≥)∧0 = 0∧0 = 0∧0 = 0∧[(-1)bni_18 + (-1)Bound*bni_18] + [bni_18]i466[0] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_19] ≥ 0)
(7) (i466[0] ≥ 0 ⇒ (UIncreasing(LOAD2958(java.lang.Object(IntList(-(i466[1], 1), o4023[1])), i164[1], +(i463[1], 1))), ≥)∧0 = 0∧0 = 0∧0 = 0∧[(-1)Bound*bni_18] + [bni_18]i466[0] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_19] ≥ 0)
(8) (>(i466[0], 0)=TRUE∧i463[0]=i463[1]∧i164[0]=i164[1]∧i466[0]=i466[1]∧o4023[0]=o4023[1] ⇒ LOAD2958(java.lang.Object(IntList(i466[0], o4023[0])), i164[0], i463[0])≥NonInfC∧LOAD2958(java.lang.Object(IntList(i466[0], o4023[0])), i164[0], i463[0])≥COND_LOAD2958(>(i466[0], 0), java.lang.Object(IntList(i466[0], o4023[0])), i164[0], i463[0])∧(UIncreasing(COND_LOAD2958(>(i466[0], 0), java.lang.Object(IntList(i466[0], o4023[0])), i164[0], i463[0])), ≥))
(9) (>(i466[0], 0)=TRUE ⇒ LOAD2958(java.lang.Object(IntList(i466[0], o4023[0])), i164[0], i463[0])≥NonInfC∧LOAD2958(java.lang.Object(IntList(i466[0], o4023[0])), i164[0], i463[0])≥COND_LOAD2958(>(i466[0], 0), java.lang.Object(IntList(i466[0], o4023[0])), i164[0], i463[0])∧(UIncreasing(COND_LOAD2958(>(i466[0], 0), java.lang.Object(IntList(i466[0], o4023[0])), i164[0], i463[0])), ≥))
(10) (i466[0] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD2958(>(i466[0], 0), java.lang.Object(IntList(i466[0], o4023[0])), i164[0], i463[0])), ≥)∧[(-1)bni_20 + (-1)Bound*bni_20] + [bni_20]i466[0] ≥ 0∧[(-1)bso_21] ≥ 0)
(11) (i466[0] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD2958(>(i466[0], 0), java.lang.Object(IntList(i466[0], o4023[0])), i164[0], i463[0])), ≥)∧[(-1)bni_20 + (-1)Bound*bni_20] + [bni_20]i466[0] ≥ 0∧[(-1)bso_21] ≥ 0)
(12) (i466[0] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD2958(>(i466[0], 0), java.lang.Object(IntList(i466[0], o4023[0])), i164[0], i463[0])), ≥)∧[(-1)bni_20 + (-1)Bound*bni_20] + [bni_20]i466[0] ≥ 0∧[(-1)bso_21] ≥ 0)
(13) (i466[0] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD2958(>(i466[0], 0), java.lang.Object(IntList(i466[0], o4023[0])), i164[0], i463[0])), ≥)∧0 = 0∧0 = 0∧0 = 0∧[(-1)bni_20 + (-1)Bound*bni_20] + [bni_20]i466[0] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_21] ≥ 0)
(14) (i466[0] ≥ 0 ⇒ (UIncreasing(COND_LOAD2958(>(i466[0], 0), java.lang.Object(IntList(i466[0], o4023[0])), i164[0], i463[0])), ≥)∧0 = 0∧0 = 0∧0 = 0∧[(-1)Bound*bni_20] + [bni_20]i466[0] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_21] ≥ 0)
POL(TRUE) = 0
POL(FALSE) = 0
POL(COND_LOAD2958(x1, x2, x3, x4)) = [-1] + [-1]x2
POL(java.lang.Object(x1)) = [-1] + [-1]x1
POL(IntList(x1, x2)) = [-1] + x1
POL(LOAD2958(x1, x2, x3)) = [-1] + [-1]x1
POL(-(x1, x2)) = x1 + [-1]x2
POL(1) = [1]
POL(+(x1, x2)) = x1 + x2
POL(>(x1, x2)) = 0
POL(0) = 0
COND_LOAD2958(TRUE, java.lang.Object(IntList(i466[1], o4023[1])), i164[1], i463[1]) → LOAD2958(java.lang.Object(IntList(-(i466[1], 1), o4023[1])), i164[1], +(i463[1], 1))
COND_LOAD2958(TRUE, java.lang.Object(IntList(i466[1], o4023[1])), i164[1], i463[1]) → LOAD2958(java.lang.Object(IntList(-(i466[1], 1), o4023[1])), i164[1], +(i463[1], 1))
LOAD2958(java.lang.Object(IntList(i466[0], o4023[0])), i164[0], i463[0]) → COND_LOAD2958(>(i466[0], 0), java.lang.Object(IntList(i466[0], o4023[0])), i164[0], i463[0])
LOAD2958(java.lang.Object(IntList(i466[0], o4023[0])), i164[0], i463[0]) → COND_LOAD2958(>(i466[0], 0), java.lang.Object(IntList(i466[0], o4023[0])), i164[0], i463[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
!= | ~ | 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 |
!= | ~ | 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 |
Load1720ARR1(x1, x2, x3, x4) → Load1720ARR1(x1, x2, x3)
java.lang.String(x1) → java.lang.String
Cond_Load1720ARR1(x1, x2, x3, x4, x5) → Cond_Load1720ARR1(x1, x2, x3, x4)
!= | ~ | 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 ((i83[0] →* i83[1])∧(java.lang.Object(ARRAY(i4[0], a3200data[0])) →* java.lang.Object(ARRAY(i4[1], a3200data[1])))∧(i78[0] →* i78[1]))
(1) -> (2), if ((i78[1] →* i78[2])∧(java.lang.Object(ARRAY(i4[1], a3200data[1])) →* java.lang.Object(ARRAY(i4[2], a3200data[2])))∧(i83[1] →* i83[2])∧(i78[1] > 0 && i78[1] < i4[1] && i83[1] > 0 && i78[1] + 1 > 0 →* TRUE))
(2) -> (0), if ((i83[2] + -1 →* i83[0])∧(i78[2] + 1 →* i78[0])∧(java.lang.Object(ARRAY(i4[2], a3200data[2])) →* java.lang.Object(ARRAY(i4[0], a3200data[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 ((i83[0] →* i83[1])∧(java.lang.Object(ARRAY(i4[0], a3200data[0])) →* java.lang.Object(ARRAY(i4[1], a3200data[1])))∧(i78[0] →* i78[1]))
(1) -> (2), if ((i78[1] →* i78[2])∧(java.lang.Object(ARRAY(i4[1], a3200data[1])) →* java.lang.Object(ARRAY(i4[2], a3200data[2])))∧(i83[1] →* i83[2])∧(i78[1] > 0 && i78[1] < i4[1] && i83[1] > 0 && i78[1] + 1 > 0 →* TRUE))
(2) -> (0), if ((i83[2] + -1 →* i83[0])∧(i78[2] + 1 →* i78[0])∧(java.lang.Object(ARRAY(i4[2], a3200data[2])) →* java.lang.Object(ARRAY(i4[0], a3200data[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 ((i83[0] →* i83[1])∧((i4[0] →* i4[1])∧(a3200data[0] →* a3200data[1]))∧(i78[0] →* i78[1]))
(1) -> (2), if ((i78[1] →* i78[2])∧((i4[1] →* i4[2])∧(a3200data[1] →* a3200data[2]))∧(i83[1] →* i83[2])∧(i78[1] > 0 && i78[1] < i4[1] && i83[1] > 0 && i78[1] + 1 > 0 →* TRUE))
(2) -> (0), if ((i83[2] + -1 →* i83[0])∧(i78[2] + 1 →* i78[0])∧((i4[2] →* i4[0])∧(a3200data[2] →* a3200data[0])))
(1) (i83[0]=i83[1]∧i4[0]=i4[1]∧a3200data[0]=a3200data[1]∧i78[0]=i78[1] ⇒ LOAD1720(java.lang.Object(ARRAY(i4[0], a3200data[0])), i78[0], i83[0])≥NonInfC∧LOAD1720(java.lang.Object(ARRAY(i4[0], a3200data[0])), i78[0], i83[0])≥LOAD1720ARR1(java.lang.Object(ARRAY(i4[0], a3200data[0])), i78[0], i83[0])∧(UIncreasing(LOAD1720ARR1(java.lang.Object(ARRAY(i4[0], a3200data[0])), i78[0], i83[0])), ≥))
(2) (LOAD1720(java.lang.Object(ARRAY(i4[0], a3200data[0])), i78[0], i83[0])≥NonInfC∧LOAD1720(java.lang.Object(ARRAY(i4[0], a3200data[0])), i78[0], i83[0])≥LOAD1720ARR1(java.lang.Object(ARRAY(i4[0], a3200data[0])), i78[0], i83[0])∧(UIncreasing(LOAD1720ARR1(java.lang.Object(ARRAY(i4[0], a3200data[0])), i78[0], i83[0])), ≥))
(3) ((UIncreasing(LOAD1720ARR1(java.lang.Object(ARRAY(i4[0], a3200data[0])), i78[0], i83[0])), ≥)∧[(-1)bso_16] ≥ 0)
(4) ((UIncreasing(LOAD1720ARR1(java.lang.Object(ARRAY(i4[0], a3200data[0])), i78[0], i83[0])), ≥)∧[(-1)bso_16] ≥ 0)
(5) ((UIncreasing(LOAD1720ARR1(java.lang.Object(ARRAY(i4[0], a3200data[0])), i78[0], i83[0])), ≥)∧[(-1)bso_16] ≥ 0)
(6) ((UIncreasing(LOAD1720ARR1(java.lang.Object(ARRAY(i4[0], a3200data[0])), i78[0], i83[0])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_16] ≥ 0)
(7) (i78[1]=i78[2]∧i4[1]=i4[2]∧a3200data[1]=a3200data[2]∧i83[1]=i83[2]∧&&(&&(&&(>(i78[1], 0), <(i78[1], i4[1])), >(i83[1], 0)), >(+(i78[1], 1), 0))=TRUE ⇒ LOAD1720ARR1(java.lang.Object(ARRAY(i4[1], a3200data[1])), i78[1], i83[1])≥NonInfC∧LOAD1720ARR1(java.lang.Object(ARRAY(i4[1], a3200data[1])), i78[1], i83[1])≥COND_LOAD1720ARR1(&&(&&(&&(>(i78[1], 0), <(i78[1], i4[1])), >(i83[1], 0)), >(+(i78[1], 1), 0)), java.lang.Object(ARRAY(i4[1], a3200data[1])), i78[1], i83[1])∧(UIncreasing(COND_LOAD1720ARR1(&&(&&(&&(>(i78[1], 0), <(i78[1], i4[1])), >(i83[1], 0)), >(+(i78[1], 1), 0)), java.lang.Object(ARRAY(i4[1], a3200data[1])), i78[1], i83[1])), ≥))
(8) (>(+(i78[1], 1), 0)=TRUE∧>(i83[1], 0)=TRUE∧>(i78[1], 0)=TRUE∧<(i78[1], i4[1])=TRUE ⇒ LOAD1720ARR1(java.lang.Object(ARRAY(i4[1], a3200data[1])), i78[1], i83[1])≥NonInfC∧LOAD1720ARR1(java.lang.Object(ARRAY(i4[1], a3200data[1])), i78[1], i83[1])≥COND_LOAD1720ARR1(&&(&&(&&(>(i78[1], 0), <(i78[1], i4[1])), >(i83[1], 0)), >(+(i78[1], 1), 0)), java.lang.Object(ARRAY(i4[1], a3200data[1])), i78[1], i83[1])∧(UIncreasing(COND_LOAD1720ARR1(&&(&&(&&(>(i78[1], 0), <(i78[1], i4[1])), >(i83[1], 0)), >(+(i78[1], 1), 0)), java.lang.Object(ARRAY(i4[1], a3200data[1])), i78[1], i83[1])), ≥))
(9) (i78[1] ≥ 0∧i83[1] + [-1] ≥ 0∧i78[1] + [-1] ≥ 0∧i4[1] + [-1] + [-1]i78[1] ≥ 0 ⇒ (UIncreasing(COND_LOAD1720ARR1(&&(&&(&&(>(i78[1], 0), <(i78[1], i4[1])), >(i83[1], 0)), >(+(i78[1], 1), 0)), java.lang.Object(ARRAY(i4[1], a3200data[1])), i78[1], i83[1])), ≥)∧[(2)bni_17 + (-1)Bound*bni_17] + [bni_17]i83[1] + [(-1)bni_17]i78[1] + [bni_17]i4[1] ≥ 0∧[(-1)bso_18] ≥ 0)
(10) (i78[1] ≥ 0∧i83[1] + [-1] ≥ 0∧i78[1] + [-1] ≥ 0∧i4[1] + [-1] + [-1]i78[1] ≥ 0 ⇒ (UIncreasing(COND_LOAD1720ARR1(&&(&&(&&(>(i78[1], 0), <(i78[1], i4[1])), >(i83[1], 0)), >(+(i78[1], 1), 0)), java.lang.Object(ARRAY(i4[1], a3200data[1])), i78[1], i83[1])), ≥)∧[(2)bni_17 + (-1)Bound*bni_17] + [bni_17]i83[1] + [(-1)bni_17]i78[1] + [bni_17]i4[1] ≥ 0∧[(-1)bso_18] ≥ 0)
(11) (i78[1] ≥ 0∧i83[1] + [-1] ≥ 0∧i78[1] + [-1] ≥ 0∧i4[1] + [-1] + [-1]i78[1] ≥ 0 ⇒ (UIncreasing(COND_LOAD1720ARR1(&&(&&(&&(>(i78[1], 0), <(i78[1], i4[1])), >(i83[1], 0)), >(+(i78[1], 1), 0)), java.lang.Object(ARRAY(i4[1], a3200data[1])), i78[1], i83[1])), ≥)∧[(2)bni_17 + (-1)Bound*bni_17] + [bni_17]i83[1] + [(-1)bni_17]i78[1] + [bni_17]i4[1] ≥ 0∧[(-1)bso_18] ≥ 0)
(12) (i78[1] ≥ 0∧i83[1] + [-1] ≥ 0∧i78[1] + [-1] ≥ 0∧i4[1] + [-1] + [-1]i78[1] ≥ 0 ⇒ (UIncreasing(COND_LOAD1720ARR1(&&(&&(&&(>(i78[1], 0), <(i78[1], i4[1])), >(i83[1], 0)), >(+(i78[1], 1), 0)), java.lang.Object(ARRAY(i4[1], a3200data[1])), i78[1], i83[1])), ≥)∧0 = 0∧[(2)bni_17 + (-1)Bound*bni_17] + [bni_17]i83[1] + [(-1)bni_17]i78[1] + [bni_17]i4[1] ≥ 0∧0 = 0∧[(-1)bso_18] ≥ 0)
(13) ([1] + i78[1] ≥ 0∧i83[1] + [-1] ≥ 0∧i78[1] ≥ 0∧i4[1] + [-2] + [-1]i78[1] ≥ 0 ⇒ (UIncreasing(COND_LOAD1720ARR1(&&(&&(&&(>(i78[1], 0), <(i78[1], i4[1])), >(i83[1], 0)), >(+(i78[1], 1), 0)), java.lang.Object(ARRAY(i4[1], a3200data[1])), i78[1], i83[1])), ≥)∧0 = 0∧[bni_17 + (-1)Bound*bni_17] + [bni_17]i83[1] + [(-1)bni_17]i78[1] + [bni_17]i4[1] ≥ 0∧0 = 0∧[(-1)bso_18] ≥ 0)
(14) ([1] + i78[1] ≥ 0∧i83[1] ≥ 0∧i78[1] ≥ 0∧i4[1] + [-2] + [-1]i78[1] ≥ 0 ⇒ (UIncreasing(COND_LOAD1720ARR1(&&(&&(&&(>(i78[1], 0), <(i78[1], i4[1])), >(i83[1], 0)), >(+(i78[1], 1), 0)), java.lang.Object(ARRAY(i4[1], a3200data[1])), i78[1], i83[1])), ≥)∧0 = 0∧[(2)bni_17 + (-1)Bound*bni_17] + [bni_17]i83[1] + [(-1)bni_17]i78[1] + [bni_17]i4[1] ≥ 0∧0 = 0∧[(-1)bso_18] ≥ 0)
(15) ([1] + i78[1] ≥ 0∧i83[1] ≥ 0∧i78[1] ≥ 0∧i4[1] ≥ 0 ⇒ (UIncreasing(COND_LOAD1720ARR1(&&(&&(&&(>(i78[1], 0), <(i78[1], i4[1])), >(i83[1], 0)), >(+(i78[1], 1), 0)), java.lang.Object(ARRAY(i4[1], a3200data[1])), i78[1], i83[1])), ≥)∧0 = 0∧[(4)bni_17 + (-1)Bound*bni_17] + [bni_17]i83[1] + [bni_17]i4[1] ≥ 0∧0 = 0∧[(-1)bso_18] ≥ 0)
(16) (COND_LOAD1720ARR1(TRUE, java.lang.Object(ARRAY(i4[2], a3200data[2])), i78[2], i83[2])≥NonInfC∧COND_LOAD1720ARR1(TRUE, java.lang.Object(ARRAY(i4[2], a3200data[2])), i78[2], i83[2])≥LOAD1720(java.lang.Object(ARRAY(i4[2], a3200data[2])), +(i78[2], 1), +(i83[2], -1))∧(UIncreasing(LOAD1720(java.lang.Object(ARRAY(i4[2], a3200data[2])), +(i78[2], 1), +(i83[2], -1))), ≥))
(17) ((UIncreasing(LOAD1720(java.lang.Object(ARRAY(i4[2], a3200data[2])), +(i78[2], 1), +(i83[2], -1))), ≥)∧[2 + (-1)bso_20] ≥ 0)
(18) ((UIncreasing(LOAD1720(java.lang.Object(ARRAY(i4[2], a3200data[2])), +(i78[2], 1), +(i83[2], -1))), ≥)∧[2 + (-1)bso_20] ≥ 0)
(19) ((UIncreasing(LOAD1720(java.lang.Object(ARRAY(i4[2], a3200data[2])), +(i78[2], 1), +(i83[2], -1))), ≥)∧[2 + (-1)bso_20] ≥ 0)
(20) ((UIncreasing(LOAD1720(java.lang.Object(ARRAY(i4[2], a3200data[2])), +(i78[2], 1), +(i83[2], -1))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[2 + (-1)bso_20] ≥ 0)
POL(TRUE) = 0
POL(FALSE) = 0
POL(LOAD1720(x1, x2, x3)) = [1] + x3 + [-1]x2 + [-1]x1
POL(java.lang.Object(x1)) = x1
POL(ARRAY(x1, x2)) = [-1] + [-1]x1
POL(LOAD1720ARR1(x1, x2, x3)) = [1] + x3 + [-1]x2 + [-1]x1
POL(COND_LOAD1720ARR1(x1, x2, x3, x4)) = [1] + x4 + [-1]x3 + [-1]x2
POL(&&(x1, x2)) = [-1]
POL(>(x1, x2)) = [-1]
POL(0) = 0
POL(<(x1, x2)) = [-1]
POL(+(x1, x2)) = x1 + x2
POL(1) = [1]
POL(-1) = [-1]
COND_LOAD1720ARR1(TRUE, java.lang.Object(ARRAY(i4[2], a3200data[2])), i78[2], i83[2]) → LOAD1720(java.lang.Object(ARRAY(i4[2], a3200data[2])), +(i78[2], 1), +(i83[2], -1))
LOAD1720ARR1(java.lang.Object(ARRAY(i4[1], a3200data[1])), i78[1], i83[1]) → COND_LOAD1720ARR1(&&(&&(&&(>(i78[1], 0), <(i78[1], i4[1])), >(i83[1], 0)), >(+(i78[1], 1), 0)), java.lang.Object(ARRAY(i4[1], a3200data[1])), i78[1], i83[1])
LOAD1720(java.lang.Object(ARRAY(i4[0], a3200data[0])), i78[0], i83[0]) → LOAD1720ARR1(java.lang.Object(ARRAY(i4[0], a3200data[0])), i78[0], i83[0])
LOAD1720ARR1(java.lang.Object(ARRAY(i4[1], a3200data[1])), i78[1], i83[1]) → COND_LOAD1720ARR1(&&(&&(&&(>(i78[1], 0), <(i78[1], i4[1])), >(i83[1], 0)), >(+(i78[1], 1), 0)), java.lang.Object(ARRAY(i4[1], a3200data[1])), i78[1], i83[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
(0) -> (1), if ((i83[0] →* i83[1])∧((i4[0] →* i4[1])∧(a3200data[0] →* a3200data[1]))∧(i78[0] →* i78[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 |
Integer
(2) -> (0), if ((i83[2] + -1 →* i83[0])∧(i78[2] + 1 →* i78[0])∧((i4[2] →* i4[0])∧(a3200data[2] →* a3200data[0])))