0 JBC
↳1 JBC2FIG (⇐)
↳2 FIGraph
↳3 FIGtoITRSProof (⇐)
↳4 AND
↳5 ITRS
↳6 DuplicateArgsRemoverProof (⇔)
↳7 ITRS
↳8 ITRStoQTRSProof (⇔)
↳9 QTRS
↳10 DependencyPairsProof (⇔)
↳11 QDP
↳12 DependencyGraphProof (⇔)
↳13 QDP
↳14 UsableRulesProof (⇔)
↳15 QDP
↳16 QReductionProof (⇔)
↳17 QDP
↳18 Instantiation (⇔)
↳19 QDP
↳20 QDPOrderProof (⇔)
↳21 QDP
↳22 QDPSizeChangeProof (⇔)
↳23 TRUE
↳24 ITRS
↳25 ITRStoIDPProof (⇔)
↳26 IDP
↳27 UsableRulesProof (⇔)
↳28 IDP
↳29 ItpfGraphProof (⇔)
↳30 IDP
↳31 IDPNonInfProof (⇐)
↳32 AND
↳33 IDP
↳34 IDependencyGraphProof (⇔)
↳35 TRUE
↳36 IDP
↳37 IDependencyGraphProof (⇔)
↳38 TRUE
No human-readable program information known.
!= | ~ | 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 |
Load1484(x1, x2, x3, x4) → Load1484(x2, x3, x4)
JMP1821(x1, x2, x3, x4) → JMP1821(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 |
Load1202(java.lang.Object(IntList(java.lang.Object(IntList(o873Field0, o873Field1)), i196))) → Load1484(java.lang.Object(IntList(o873Field0, o873Field1)), NULL, java.lang.Object(IntList(o873Field0, o873Field1)))
JMP1821(java.lang.Object(IntList(o973Field0, o973Field1)), java.lang.Object(IntList(o971, i252)), o990) → Load1484(java.lang.Object(IntList(o973Field0, o973Field1)), java.lang.Object(IntList(o971, i252)), o990)
Load1484(java.lang.Object(IntList(o973Field0, o973Field1)), o971, java.lang.Object(IntList(o990, i252))) → Load1484(java.lang.Object(IntList(o973Field0, o973Field1)), java.lang.Object(IntList(o971, i252)), o990)
Load1484(java.lang.Object(IntList(o993, i253)), o971, java.lang.Object(IntList(o993, i253))) → JMP1821(java.lang.Object(IntList(o993, i253)), java.lang.Object(IntList(o971, i253)), o993)
Load1484(java.lang.Object(IntList(o973Field0, o973Field1)), o971, NULL) → Load1202(o971)
Load1202(java.lang.Object(IntList(NULL, i196))) → Load1202(NULL)
Load1202(java.lang.Object(IntList(java.lang.Object(IntList(x0, x1)), x2)))
JMP1821(java.lang.Object(IntList(x0, x1)), java.lang.Object(IntList(x2, x3)), x4)
Load1484(java.lang.Object(IntList(x0, x1)), x2, java.lang.Object(IntList(x3, x4)))
Load1484(java.lang.Object(IntList(x0, x1)), x2, NULL)
Load1202(java.lang.Object(IntList(NULL, x0)))
LOAD1202(java.lang.Object(IntList(java.lang.Object(IntList(o873Field0, o873Field1)), i196))) → LOAD1484(java.lang.Object(IntList(o873Field0, o873Field1)), NULL, java.lang.Object(IntList(o873Field0, o873Field1)))
JMP18211(java.lang.Object(IntList(o973Field0, o973Field1)), java.lang.Object(IntList(o971, i252)), o990) → LOAD1484(java.lang.Object(IntList(o973Field0, o973Field1)), java.lang.Object(IntList(o971, i252)), o990)
LOAD1484(java.lang.Object(IntList(o973Field0, o973Field1)), o971, java.lang.Object(IntList(o990, i252))) → LOAD1484(java.lang.Object(IntList(o973Field0, o973Field1)), java.lang.Object(IntList(o971, i252)), o990)
LOAD1484(java.lang.Object(IntList(o993, i253)), o971, java.lang.Object(IntList(o993, i253))) → JMP18211(java.lang.Object(IntList(o993, i253)), java.lang.Object(IntList(o971, i253)), o993)
LOAD1484(java.lang.Object(IntList(o973Field0, o973Field1)), o971, NULL) → LOAD1202(o971)
LOAD1202(java.lang.Object(IntList(NULL, i196))) → LOAD1202(NULL)
Load1202(java.lang.Object(IntList(java.lang.Object(IntList(o873Field0, o873Field1)), i196))) → Load1484(java.lang.Object(IntList(o873Field0, o873Field1)), NULL, java.lang.Object(IntList(o873Field0, o873Field1)))
JMP1821(java.lang.Object(IntList(o973Field0, o973Field1)), java.lang.Object(IntList(o971, i252)), o990) → Load1484(java.lang.Object(IntList(o973Field0, o973Field1)), java.lang.Object(IntList(o971, i252)), o990)
Load1484(java.lang.Object(IntList(o973Field0, o973Field1)), o971, java.lang.Object(IntList(o990, i252))) → Load1484(java.lang.Object(IntList(o973Field0, o973Field1)), java.lang.Object(IntList(o971, i252)), o990)
Load1484(java.lang.Object(IntList(o993, i253)), o971, java.lang.Object(IntList(o993, i253))) → JMP1821(java.lang.Object(IntList(o993, i253)), java.lang.Object(IntList(o971, i253)), o993)
Load1484(java.lang.Object(IntList(o973Field0, o973Field1)), o971, NULL) → Load1202(o971)
Load1202(java.lang.Object(IntList(NULL, i196))) → Load1202(NULL)
Load1202(java.lang.Object(IntList(java.lang.Object(IntList(x0, x1)), x2)))
JMP1821(java.lang.Object(IntList(x0, x1)), java.lang.Object(IntList(x2, x3)), x4)
Load1484(java.lang.Object(IntList(x0, x1)), x2, java.lang.Object(IntList(x3, x4)))
Load1484(java.lang.Object(IntList(x0, x1)), x2, NULL)
Load1202(java.lang.Object(IntList(NULL, x0)))
LOAD1484(java.lang.Object(IntList(o973Field0, o973Field1)), o971, java.lang.Object(IntList(o990, i252))) → LOAD1484(java.lang.Object(IntList(o973Field0, o973Field1)), java.lang.Object(IntList(o971, i252)), o990)
LOAD1484(java.lang.Object(IntList(o993, i253)), o971, java.lang.Object(IntList(o993, i253))) → JMP18211(java.lang.Object(IntList(o993, i253)), java.lang.Object(IntList(o971, i253)), o993)
JMP18211(java.lang.Object(IntList(o973Field0, o973Field1)), java.lang.Object(IntList(o971, i252)), o990) → LOAD1484(java.lang.Object(IntList(o973Field0, o973Field1)), java.lang.Object(IntList(o971, i252)), o990)
LOAD1484(java.lang.Object(IntList(o973Field0, o973Field1)), o971, NULL) → LOAD1202(o971)
LOAD1202(java.lang.Object(IntList(java.lang.Object(IntList(o873Field0, o873Field1)), i196))) → LOAD1484(java.lang.Object(IntList(o873Field0, o873Field1)), NULL, java.lang.Object(IntList(o873Field0, o873Field1)))
Load1202(java.lang.Object(IntList(java.lang.Object(IntList(o873Field0, o873Field1)), i196))) → Load1484(java.lang.Object(IntList(o873Field0, o873Field1)), NULL, java.lang.Object(IntList(o873Field0, o873Field1)))
JMP1821(java.lang.Object(IntList(o973Field0, o973Field1)), java.lang.Object(IntList(o971, i252)), o990) → Load1484(java.lang.Object(IntList(o973Field0, o973Field1)), java.lang.Object(IntList(o971, i252)), o990)
Load1484(java.lang.Object(IntList(o973Field0, o973Field1)), o971, java.lang.Object(IntList(o990, i252))) → Load1484(java.lang.Object(IntList(o973Field0, o973Field1)), java.lang.Object(IntList(o971, i252)), o990)
Load1484(java.lang.Object(IntList(o993, i253)), o971, java.lang.Object(IntList(o993, i253))) → JMP1821(java.lang.Object(IntList(o993, i253)), java.lang.Object(IntList(o971, i253)), o993)
Load1484(java.lang.Object(IntList(o973Field0, o973Field1)), o971, NULL) → Load1202(o971)
Load1202(java.lang.Object(IntList(NULL, i196))) → Load1202(NULL)
Load1202(java.lang.Object(IntList(java.lang.Object(IntList(x0, x1)), x2)))
JMP1821(java.lang.Object(IntList(x0, x1)), java.lang.Object(IntList(x2, x3)), x4)
Load1484(java.lang.Object(IntList(x0, x1)), x2, java.lang.Object(IntList(x3, x4)))
Load1484(java.lang.Object(IntList(x0, x1)), x2, NULL)
Load1202(java.lang.Object(IntList(NULL, x0)))
LOAD1484(java.lang.Object(IntList(o973Field0, o973Field1)), o971, java.lang.Object(IntList(o990, i252))) → LOAD1484(java.lang.Object(IntList(o973Field0, o973Field1)), java.lang.Object(IntList(o971, i252)), o990)
LOAD1484(java.lang.Object(IntList(o993, i253)), o971, java.lang.Object(IntList(o993, i253))) → JMP18211(java.lang.Object(IntList(o993, i253)), java.lang.Object(IntList(o971, i253)), o993)
JMP18211(java.lang.Object(IntList(o973Field0, o973Field1)), java.lang.Object(IntList(o971, i252)), o990) → LOAD1484(java.lang.Object(IntList(o973Field0, o973Field1)), java.lang.Object(IntList(o971, i252)), o990)
LOAD1484(java.lang.Object(IntList(o973Field0, o973Field1)), o971, NULL) → LOAD1202(o971)
LOAD1202(java.lang.Object(IntList(java.lang.Object(IntList(o873Field0, o873Field1)), i196))) → LOAD1484(java.lang.Object(IntList(o873Field0, o873Field1)), NULL, java.lang.Object(IntList(o873Field0, o873Field1)))
Load1202(java.lang.Object(IntList(java.lang.Object(IntList(x0, x1)), x2)))
JMP1821(java.lang.Object(IntList(x0, x1)), java.lang.Object(IntList(x2, x3)), x4)
Load1484(java.lang.Object(IntList(x0, x1)), x2, java.lang.Object(IntList(x3, x4)))
Load1484(java.lang.Object(IntList(x0, x1)), x2, NULL)
Load1202(java.lang.Object(IntList(NULL, x0)))
Load1202(java.lang.Object(IntList(java.lang.Object(IntList(x0, x1)), x2)))
JMP1821(java.lang.Object(IntList(x0, x1)), java.lang.Object(IntList(x2, x3)), x4)
Load1484(java.lang.Object(IntList(x0, x1)), x2, java.lang.Object(IntList(x3, x4)))
Load1484(java.lang.Object(IntList(x0, x1)), x2, NULL)
Load1202(java.lang.Object(IntList(NULL, x0)))
LOAD1484(java.lang.Object(IntList(o973Field0, o973Field1)), o971, java.lang.Object(IntList(o990, i252))) → LOAD1484(java.lang.Object(IntList(o973Field0, o973Field1)), java.lang.Object(IntList(o971, i252)), o990)
LOAD1484(java.lang.Object(IntList(o993, i253)), o971, java.lang.Object(IntList(o993, i253))) → JMP18211(java.lang.Object(IntList(o993, i253)), java.lang.Object(IntList(o971, i253)), o993)
JMP18211(java.lang.Object(IntList(o973Field0, o973Field1)), java.lang.Object(IntList(o971, i252)), o990) → LOAD1484(java.lang.Object(IntList(o973Field0, o973Field1)), java.lang.Object(IntList(o971, i252)), o990)
LOAD1484(java.lang.Object(IntList(o973Field0, o973Field1)), o971, NULL) → LOAD1202(o971)
LOAD1202(java.lang.Object(IntList(java.lang.Object(IntList(o873Field0, o873Field1)), i196))) → LOAD1484(java.lang.Object(IntList(o873Field0, o873Field1)), NULL, java.lang.Object(IntList(o873Field0, o873Field1)))
JMP18211(java.lang.Object(IntList(z0, z1)), java.lang.Object(IntList(z2, z1)), z0) → LOAD1484(java.lang.Object(IntList(z0, z1)), java.lang.Object(IntList(z2, z1)), z0)
LOAD1484(java.lang.Object(IntList(o973Field0, o973Field1)), o971, java.lang.Object(IntList(o990, i252))) → LOAD1484(java.lang.Object(IntList(o973Field0, o973Field1)), java.lang.Object(IntList(o971, i252)), o990)
LOAD1484(java.lang.Object(IntList(o993, i253)), o971, java.lang.Object(IntList(o993, i253))) → JMP18211(java.lang.Object(IntList(o993, i253)), java.lang.Object(IntList(o971, i253)), o993)
LOAD1484(java.lang.Object(IntList(o973Field0, o973Field1)), o971, NULL) → LOAD1202(o971)
LOAD1202(java.lang.Object(IntList(java.lang.Object(IntList(o873Field0, o873Field1)), i196))) → LOAD1484(java.lang.Object(IntList(o873Field0, o873Field1)), NULL, java.lang.Object(IntList(o873Field0, o873Field1)))
JMP18211(java.lang.Object(IntList(z0, z1)), java.lang.Object(IntList(z2, z1)), z0) → LOAD1484(java.lang.Object(IntList(z0, z1)), java.lang.Object(IntList(z2, z1)), z0)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
LOAD1484(java.lang.Object(IntList(o973Field0, o973Field1)), o971, NULL) → LOAD1202(o971)
LOAD1202(java.lang.Object(IntList(java.lang.Object(IntList(o873Field0, o873Field1)), i196))) → LOAD1484(java.lang.Object(IntList(o873Field0, o873Field1)), NULL, java.lang.Object(IntList(o873Field0, o873Field1)))
POL(IntList(x1, x2)) = 1 + x1
POL(JMP18211(x1, x2, x3)) = 1 + x2 + x3
POL(LOAD1202(x1)) = x1
POL(LOAD1484(x1, x2, x3)) = 1 + x2 + x3
POL(NULL) = 0
POL(java.lang.Object(x1)) = 1 + x1
LOAD1484(java.lang.Object(IntList(o973Field0, o973Field1)), o971, java.lang.Object(IntList(o990, i252))) → LOAD1484(java.lang.Object(IntList(o973Field0, o973Field1)), java.lang.Object(IntList(o971, i252)), o990)
LOAD1484(java.lang.Object(IntList(o993, i253)), o971, java.lang.Object(IntList(o993, i253))) → JMP18211(java.lang.Object(IntList(o993, i253)), java.lang.Object(IntList(o971, i253)), o993)
JMP18211(java.lang.Object(IntList(z0, z1)), java.lang.Object(IntList(z2, z1)), z0) → LOAD1484(java.lang.Object(IntList(z0, z1)), java.lang.Object(IntList(z2, z1)), z0)
From the DPs we obtained the following set of size-change graphs:
!= | ~ | 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 ((java.lang.Object(java.lang.String(i91[0], i90[0], i92[0], a610[0])) →* java.lang.Object(java.lang.String(i91[1], i90[1], i92[1], a610[1])))∧(i58[0] →* i58[1])∧(i61[0] →* i61[1])∧(java.lang.Object(ARRAY(i3[0], a481data[0])) →* java.lang.Object(ARRAY(i3[1], a481data[1]))))
(1) -> (2), if ((java.lang.Object(java.lang.String(i91[1], i90[1], i92[1], a610[1])) →* java.lang.Object(java.lang.String(i91[2], i90[2], i92[2], a610[2])))∧(i61[1] →* i61[2])∧(i58[1] →* i58[2])∧(java.lang.Object(ARRAY(i3[1], a481data[1])) →* java.lang.Object(ARRAY(i3[2], a481data[2])))∧(i58[1] > 0 && i58[1] < i3[1] && i61[1] > 0 && i58[1] + 1 > 0 →* TRUE))
(2) -> (0), if ((java.lang.Object(ARRAY(i3[2], a481data[2])) →* java.lang.Object(ARRAY(i3[0], a481data[0])))∧(i61[2] + -1 →* i61[0])∧(i58[2] + 1 →* i58[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 ((java.lang.Object(java.lang.String(i91[0], i90[0], i92[0], a610[0])) →* java.lang.Object(java.lang.String(i91[1], i90[1], i92[1], a610[1])))∧(i58[0] →* i58[1])∧(i61[0] →* i61[1])∧(java.lang.Object(ARRAY(i3[0], a481data[0])) →* java.lang.Object(ARRAY(i3[1], a481data[1]))))
(1) -> (2), if ((java.lang.Object(java.lang.String(i91[1], i90[1], i92[1], a610[1])) →* java.lang.Object(java.lang.String(i91[2], i90[2], i92[2], a610[2])))∧(i61[1] →* i61[2])∧(i58[1] →* i58[2])∧(java.lang.Object(ARRAY(i3[1], a481data[1])) →* java.lang.Object(ARRAY(i3[2], a481data[2])))∧(i58[1] > 0 && i58[1] < i3[1] && i61[1] > 0 && i58[1] + 1 > 0 →* TRUE))
(2) -> (0), if ((java.lang.Object(ARRAY(i3[2], a481data[2])) →* java.lang.Object(ARRAY(i3[0], a481data[0])))∧(i61[2] + -1 →* i61[0])∧(i58[2] + 1 →* i58[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 (((i91[0] →* i91[1])∧(i90[0] →* i90[1])∧(i92[0] →* i92[1])∧(a610[0] →* a610[1]))∧(i58[0] →* i58[1])∧(i61[0] →* i61[1])∧((i3[0] →* i3[1])∧(a481data[0] →* a481data[1])))
(1) -> (2), if (((i91[1] →* i91[2])∧(i90[1] →* i90[2])∧(i92[1] →* i92[2])∧(a610[1] →* a610[2]))∧(i61[1] →* i61[2])∧(i58[1] →* i58[2])∧((i3[1] →* i3[2])∧(a481data[1] →* a481data[2]))∧(i58[1] > 0 && i58[1] < i3[1] && i61[1] > 0 && i58[1] + 1 > 0 →* TRUE))
(2) -> (0), if (((i3[2] →* i3[0])∧(a481data[2] →* a481data[0]))∧(i61[2] + -1 →* i61[0])∧(i58[2] + 1 →* i58[0]))
(1) (LOAD716(java.lang.Object(ARRAY(i3[0], a481data[0])), i58[0], i61[0])≥NonInfC∧LOAD716(java.lang.Object(ARRAY(i3[0], a481data[0])), i58[0], i61[0])≥LOAD716ARR1(java.lang.Object(ARRAY(i3[0], a481data[0])), i58[0], i61[0], java.lang.Object(java.lang.String(i91[0], i90[0], i92[0], a610[0])))∧(UIncreasing(LOAD716ARR1(java.lang.Object(ARRAY(i3[0], a481data[0])), i58[0], i61[0], java.lang.Object(java.lang.String(i91[0], i90[0], i92[0], a610[0])))), ≥))
(2) ((UIncreasing(LOAD716ARR1(java.lang.Object(ARRAY(i3[0], a481data[0])), i58[0], i61[0], java.lang.Object(java.lang.String(i91[0], i90[0], i92[0], a610[0])))), ≥)∧[(-1)bso_17] ≥ 0)
(3) ((UIncreasing(LOAD716ARR1(java.lang.Object(ARRAY(i3[0], a481data[0])), i58[0], i61[0], java.lang.Object(java.lang.String(i91[0], i90[0], i92[0], a610[0])))), ≥)∧[(-1)bso_17] ≥ 0)
(4) ((UIncreasing(LOAD716ARR1(java.lang.Object(ARRAY(i3[0], a481data[0])), i58[0], i61[0], java.lang.Object(java.lang.String(i91[0], i90[0], i92[0], a610[0])))), ≥)∧[(-1)bso_17] ≥ 0)
(5) ((UIncreasing(LOAD716ARR1(java.lang.Object(ARRAY(i3[0], a481data[0])), i58[0], i61[0], java.lang.Object(java.lang.String(i91[0], i90[0], i92[0], a610[0])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_17] ≥ 0)
(6) (i91[1]=i91[2]∧i90[1]=i90[2]∧i92[1]=i92[2]∧a610[1]=a610[2]∧i61[1]=i61[2]∧i58[1]=i58[2]∧i3[1]=i3[2]∧a481data[1]=a481data[2]∧&&(&&(&&(>(i58[1], 0), <(i58[1], i3[1])), >(i61[1], 0)), >(+(i58[1], 1), 0))=TRUE ⇒ LOAD716ARR1(java.lang.Object(ARRAY(i3[1], a481data[1])), i58[1], i61[1], java.lang.Object(java.lang.String(i91[1], i90[1], i92[1], a610[1])))≥NonInfC∧LOAD716ARR1(java.lang.Object(ARRAY(i3[1], a481data[1])), i58[1], i61[1], java.lang.Object(java.lang.String(i91[1], i90[1], i92[1], a610[1])))≥COND_LOAD716ARR1(&&(&&(&&(>(i58[1], 0), <(i58[1], i3[1])), >(i61[1], 0)), >(+(i58[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a481data[1])), i58[1], i61[1], java.lang.Object(java.lang.String(i91[1], i90[1], i92[1], a610[1])))∧(UIncreasing(COND_LOAD716ARR1(&&(&&(&&(>(i58[1], 0), <(i58[1], i3[1])), >(i61[1], 0)), >(+(i58[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a481data[1])), i58[1], i61[1], java.lang.Object(java.lang.String(i91[1], i90[1], i92[1], a610[1])))), ≥))
(7) (>(+(i58[1], 1), 0)=TRUE∧>(i61[1], 0)=TRUE∧>(i58[1], 0)=TRUE∧<(i58[1], i3[1])=TRUE ⇒ LOAD716ARR1(java.lang.Object(ARRAY(i3[1], a481data[1])), i58[1], i61[1], java.lang.Object(java.lang.String(i91[1], i90[1], i92[1], a610[1])))≥NonInfC∧LOAD716ARR1(java.lang.Object(ARRAY(i3[1], a481data[1])), i58[1], i61[1], java.lang.Object(java.lang.String(i91[1], i90[1], i92[1], a610[1])))≥COND_LOAD716ARR1(&&(&&(&&(>(i58[1], 0), <(i58[1], i3[1])), >(i61[1], 0)), >(+(i58[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a481data[1])), i58[1], i61[1], java.lang.Object(java.lang.String(i91[1], i90[1], i92[1], a610[1])))∧(UIncreasing(COND_LOAD716ARR1(&&(&&(&&(>(i58[1], 0), <(i58[1], i3[1])), >(i61[1], 0)), >(+(i58[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a481data[1])), i58[1], i61[1], java.lang.Object(java.lang.String(i91[1], i90[1], i92[1], a610[1])))), ≥))
(8) (i58[1] ≥ 0∧i61[1] + [-1] ≥ 0∧i58[1] + [-1] ≥ 0∧i3[1] + [-1] + [-1]i58[1] ≥ 0 ⇒ (UIncreasing(COND_LOAD716ARR1(&&(&&(&&(>(i58[1], 0), <(i58[1], i3[1])), >(i61[1], 0)), >(+(i58[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a481data[1])), i58[1], i61[1], java.lang.Object(java.lang.String(i91[1], i90[1], i92[1], a610[1])))), ≥)∧[(2)bni_18 + (-1)Bound*bni_18] + [bni_18]i61[1] + [(-1)bni_18]i58[1] + [bni_18]i3[1] ≥ 0∧[(-1)bso_19] ≥ 0)
(9) (i58[1] ≥ 0∧i61[1] + [-1] ≥ 0∧i58[1] + [-1] ≥ 0∧i3[1] + [-1] + [-1]i58[1] ≥ 0 ⇒ (UIncreasing(COND_LOAD716ARR1(&&(&&(&&(>(i58[1], 0), <(i58[1], i3[1])), >(i61[1], 0)), >(+(i58[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a481data[1])), i58[1], i61[1], java.lang.Object(java.lang.String(i91[1], i90[1], i92[1], a610[1])))), ≥)∧[(2)bni_18 + (-1)Bound*bni_18] + [bni_18]i61[1] + [(-1)bni_18]i58[1] + [bni_18]i3[1] ≥ 0∧[(-1)bso_19] ≥ 0)
(10) (i58[1] ≥ 0∧i61[1] + [-1] ≥ 0∧i58[1] + [-1] ≥ 0∧i3[1] + [-1] + [-1]i58[1] ≥ 0 ⇒ (UIncreasing(COND_LOAD716ARR1(&&(&&(&&(>(i58[1], 0), <(i58[1], i3[1])), >(i61[1], 0)), >(+(i58[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a481data[1])), i58[1], i61[1], java.lang.Object(java.lang.String(i91[1], i90[1], i92[1], a610[1])))), ≥)∧[(2)bni_18 + (-1)Bound*bni_18] + [bni_18]i61[1] + [(-1)bni_18]i58[1] + [bni_18]i3[1] ≥ 0∧[(-1)bso_19] ≥ 0)
(11) (i58[1] ≥ 0∧i61[1] + [-1] ≥ 0∧i58[1] + [-1] ≥ 0∧i3[1] + [-1] + [-1]i58[1] ≥ 0 ⇒ (UIncreasing(COND_LOAD716ARR1(&&(&&(&&(>(i58[1], 0), <(i58[1], i3[1])), >(i61[1], 0)), >(+(i58[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a481data[1])), i58[1], i61[1], java.lang.Object(java.lang.String(i91[1], i90[1], i92[1], a610[1])))), ≥)∧0 = 0∧[(2)bni_18 + (-1)Bound*bni_18] + [bni_18]i61[1] + [(-1)bni_18]i58[1] + [bni_18]i3[1] ≥ 0∧0 = 0∧[(-1)bso_19] ≥ 0)
(12) ([1] + i58[1] ≥ 0∧i61[1] + [-1] ≥ 0∧i58[1] ≥ 0∧i3[1] + [-2] + [-1]i58[1] ≥ 0 ⇒ (UIncreasing(COND_LOAD716ARR1(&&(&&(&&(>(i58[1], 0), <(i58[1], i3[1])), >(i61[1], 0)), >(+(i58[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a481data[1])), i58[1], i61[1], java.lang.Object(java.lang.String(i91[1], i90[1], i92[1], a610[1])))), ≥)∧0 = 0∧[bni_18 + (-1)Bound*bni_18] + [bni_18]i61[1] + [(-1)bni_18]i58[1] + [bni_18]i3[1] ≥ 0∧0 = 0∧[(-1)bso_19] ≥ 0)
(13) ([1] + i58[1] ≥ 0∧i61[1] ≥ 0∧i58[1] ≥ 0∧i3[1] + [-2] + [-1]i58[1] ≥ 0 ⇒ (UIncreasing(COND_LOAD716ARR1(&&(&&(&&(>(i58[1], 0), <(i58[1], i3[1])), >(i61[1], 0)), >(+(i58[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a481data[1])), i58[1], i61[1], java.lang.Object(java.lang.String(i91[1], i90[1], i92[1], a610[1])))), ≥)∧0 = 0∧[(2)bni_18 + (-1)Bound*bni_18] + [bni_18]i61[1] + [(-1)bni_18]i58[1] + [bni_18]i3[1] ≥ 0∧0 = 0∧[(-1)bso_19] ≥ 0)
(14) ([1] + i58[1] ≥ 0∧i61[1] ≥ 0∧i58[1] ≥ 0∧i3[1] ≥ 0 ⇒ (UIncreasing(COND_LOAD716ARR1(&&(&&(&&(>(i58[1], 0), <(i58[1], i3[1])), >(i61[1], 0)), >(+(i58[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a481data[1])), i58[1], i61[1], java.lang.Object(java.lang.String(i91[1], i90[1], i92[1], a610[1])))), ≥)∧0 = 0∧[(4)bni_18 + (-1)Bound*bni_18] + [bni_18]i61[1] + [bni_18]i3[1] ≥ 0∧0 = 0∧[(-1)bso_19] ≥ 0)
(15) (COND_LOAD716ARR1(TRUE, java.lang.Object(ARRAY(i3[2], a481data[2])), i58[2], i61[2], java.lang.Object(java.lang.String(i91[2], i90[2], i92[2], a610[2])))≥NonInfC∧COND_LOAD716ARR1(TRUE, java.lang.Object(ARRAY(i3[2], a481data[2])), i58[2], i61[2], java.lang.Object(java.lang.String(i91[2], i90[2], i92[2], a610[2])))≥LOAD716(java.lang.Object(ARRAY(i3[2], a481data[2])), +(i58[2], 1), +(i61[2], -1))∧(UIncreasing(LOAD716(java.lang.Object(ARRAY(i3[2], a481data[2])), +(i58[2], 1), +(i61[2], -1))), ≥))
(16) ((UIncreasing(LOAD716(java.lang.Object(ARRAY(i3[2], a481data[2])), +(i58[2], 1), +(i61[2], -1))), ≥)∧[2 + (-1)bso_21] ≥ 0)
(17) ((UIncreasing(LOAD716(java.lang.Object(ARRAY(i3[2], a481data[2])), +(i58[2], 1), +(i61[2], -1))), ≥)∧[2 + (-1)bso_21] ≥ 0)
(18) ((UIncreasing(LOAD716(java.lang.Object(ARRAY(i3[2], a481data[2])), +(i58[2], 1), +(i61[2], -1))), ≥)∧[2 + (-1)bso_21] ≥ 0)
(19) ((UIncreasing(LOAD716(java.lang.Object(ARRAY(i3[2], a481data[2])), +(i58[2], 1), +(i61[2], -1))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[2 + (-1)bso_21] ≥ 0)
POL(TRUE) = 0
POL(FALSE) = 0
POL(LOAD716(x1, x2, x3)) = [1] + x3 + [-1]x2 + [-1]x1
POL(java.lang.Object(x1)) = x1
POL(ARRAY(x1, x2)) = [-1] + [-1]x1
POL(LOAD716ARR1(x1, x2, x3, x4)) = [1] + x3 + [-1]x2 + [-1]x1
POL(java.lang.String(x1, x2, x3, x4)) = [-1]
POL(COND_LOAD716ARR1(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)) = x1 + x2
POL(1) = [1]
POL(-1) = [-1]
COND_LOAD716ARR1(TRUE, java.lang.Object(ARRAY(i3[2], a481data[2])), i58[2], i61[2], java.lang.Object(java.lang.String(i91[2], i90[2], i92[2], a610[2]))) → LOAD716(java.lang.Object(ARRAY(i3[2], a481data[2])), +(i58[2], 1), +(i61[2], -1))
LOAD716ARR1(java.lang.Object(ARRAY(i3[1], a481data[1])), i58[1], i61[1], java.lang.Object(java.lang.String(i91[1], i90[1], i92[1], a610[1]))) → COND_LOAD716ARR1(&&(&&(&&(>(i58[1], 0), <(i58[1], i3[1])), >(i61[1], 0)), >(+(i58[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a481data[1])), i58[1], i61[1], java.lang.Object(java.lang.String(i91[1], i90[1], i92[1], a610[1])))
LOAD716(java.lang.Object(ARRAY(i3[0], a481data[0])), i58[0], i61[0]) → LOAD716ARR1(java.lang.Object(ARRAY(i3[0], a481data[0])), i58[0], i61[0], java.lang.Object(java.lang.String(i91[0], i90[0], i92[0], a610[0])))
LOAD716ARR1(java.lang.Object(ARRAY(i3[1], a481data[1])), i58[1], i61[1], java.lang.Object(java.lang.String(i91[1], i90[1], i92[1], a610[1]))) → COND_LOAD716ARR1(&&(&&(&&(>(i58[1], 0), <(i58[1], i3[1])), >(i61[1], 0)), >(+(i58[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a481data[1])), i58[1], i61[1], java.lang.Object(java.lang.String(i91[1], i90[1], i92[1], a610[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 (((i91[0] →* i91[1])∧(i90[0] →* i90[1])∧(i92[0] →* i92[1])∧(a610[0] →* a610[1]))∧(i58[0] →* i58[1])∧(i61[0] →* i61[1])∧((i3[0] →* i3[1])∧(a481data[0] →* a481data[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 (((i3[2] →* i3[0])∧(a481data[2] →* a481data[0]))∧(i61[2] + -1 →* i61[0])∧(i58[2] + 1 →* i58[0]))