0 JBC
↳1 JBC2FIG (⇐)
↳2 FIGraph
↳3 FIGtoITRSProof (⇐)
↳4 ITRS
↳5 DuplicateArgsRemoverProof (⇔)
↳6 ITRS
↳7 ITRStoIDPProof (⇔)
↳8 IDP
↳9 UsableRulesProof (⇔)
↳10 IDP
↳11 IDPNonInfProof (⇐)
↳12 AND
↳13 IDP
↳14 IDependencyGraphProof (⇔)
↳15 IDP
↳16 IDPNonInfProof (⇐)
↳17 AND
↳18 IDP
↳19 IDependencyGraphProof (⇔)
↳20 TRUE
↳21 IDP
↳22 IDependencyGraphProof (⇔)
↳23 TRUE
↳24 IDP
↳25 IDependencyGraphProof (⇔)
↳26 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 |
Cond_Load9591(x1, x2, x3, x4, x5, x6, x7, x8) → Cond_Load9591(x1, x5, x7, x8)
Load959(x1, x2, x3, x4, x5, x6, x7) → Load959(x4, x6, x7)
Cond_Load959(x1, x2, x3, x4, x5, x6, x7, x8) → Cond_Load959(x1, x5, x7, x8)
!= | ~ | 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 ((i76[0] > 0 && i72[0] > 0 →* TRUE)∧(i72[0] →* i72[1])∧(i76[0] →* i76[1]))
(1) -> (2), if ((i72[1] →* i72[2])∧(i76[1] →* i82[2])∧(i76[1] →* i76[2]))
(1) -> (4), if ((i76[1] →* i82[4])∧(i76[1] →* i76[4])∧(i72[1] →* i72[4]))
(2) -> (3), if ((i72[2] →* i72[3])∧(i72[2] > 0 && i82[2] >= i72[2] →* TRUE)∧(i82[2] →* i82[3])∧(i76[2] →* i76[3]))
(3) -> (2), if ((i72[3] →* i72[2])∧(i82[3] - i72[3] →* i82[2])∧(i76[3] →* i76[2]))
(3) -> (4), if ((i76[3] →* i76[4])∧(i72[3] →* i72[4])∧(i82[3] - i72[3] →* i82[4]))
(4) -> (5), if ((i76[4] →* i76[5])∧(i72[4] →* i72[5])∧(i82[4] < i72[4] →* TRUE)∧(i82[4] →* i82[5]))
(5) -> (0), if ((i72[5] →* i76[0])∧(i82[5] →* i72[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 ((i76[0] > 0 && i72[0] > 0 →* TRUE)∧(i72[0] →* i72[1])∧(i76[0] →* i76[1]))
(1) -> (2), if ((i72[1] →* i72[2])∧(i76[1] →* i82[2])∧(i76[1] →* i76[2]))
(1) -> (4), if ((i76[1] →* i82[4])∧(i76[1] →* i76[4])∧(i72[1] →* i72[4]))
(2) -> (3), if ((i72[2] →* i72[3])∧(i72[2] > 0 && i82[2] >= i72[2] →* TRUE)∧(i82[2] →* i82[3])∧(i76[2] →* i76[3]))
(3) -> (2), if ((i72[3] →* i72[2])∧(i82[3] - i72[3] →* i82[2])∧(i76[3] →* i76[2]))
(3) -> (4), if ((i76[3] →* i76[4])∧(i72[3] →* i72[4])∧(i82[3] - i72[3] →* i82[4]))
(4) -> (5), if ((i76[4] →* i76[5])∧(i72[4] →* i72[5])∧(i82[4] < i72[4] →* TRUE)∧(i82[4] →* i82[5]))
(5) -> (0), if ((i72[5] →* i76[0])∧(i82[5] →* i72[0]))
(1) (&&(>(i76[0], 0), >(i72[0], 0))=TRUE∧i72[0]=i72[1]∧i76[0]=i76[1] ⇒ LOAD839(i76[0], i72[0])≥NonInfC∧LOAD839(i76[0], i72[0])≥COND_LOAD839(&&(>(i76[0], 0), >(i72[0], 0)), i76[0], i72[0])∧(UIncreasing(COND_LOAD839(&&(>(i76[0], 0), >(i72[0], 0)), i76[0], i72[0])), ≥))
(2) (>(i76[0], 0)=TRUE∧>(i72[0], 0)=TRUE ⇒ LOAD839(i76[0], i72[0])≥NonInfC∧LOAD839(i76[0], i72[0])≥COND_LOAD839(&&(>(i76[0], 0), >(i72[0], 0)), i76[0], i72[0])∧(UIncreasing(COND_LOAD839(&&(>(i76[0], 0), >(i72[0], 0)), i76[0], i72[0])), ≥))
(3) (i76[0] + [-1] ≥ 0∧i72[0] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD839(&&(>(i76[0], 0), >(i72[0], 0)), i76[0], i72[0])), ≥)∧[(-1)Bound*bni_28] + [bni_28]i72[0] ≥ 0∧[(-1)bso_29] ≥ 0)
(4) (i76[0] + [-1] ≥ 0∧i72[0] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD839(&&(>(i76[0], 0), >(i72[0], 0)), i76[0], i72[0])), ≥)∧[(-1)Bound*bni_28] + [bni_28]i72[0] ≥ 0∧[(-1)bso_29] ≥ 0)
(5) (i76[0] + [-1] ≥ 0∧i72[0] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD839(&&(>(i76[0], 0), >(i72[0], 0)), i76[0], i72[0])), ≥)∧[(-1)Bound*bni_28] + [bni_28]i72[0] ≥ 0∧[(-1)bso_29] ≥ 0)
(6) (i76[0] ≥ 0∧i72[0] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD839(&&(>(i76[0], 0), >(i72[0], 0)), i76[0], i72[0])), ≥)∧[(-1)Bound*bni_28] + [bni_28]i72[0] ≥ 0∧[(-1)bso_29] ≥ 0)
(7) (i76[0] ≥ 0∧i72[0] ≥ 0 ⇒ (UIncreasing(COND_LOAD839(&&(>(i76[0], 0), >(i72[0], 0)), i76[0], i72[0])), ≥)∧[(-1)Bound*bni_28 + bni_28] + [bni_28]i72[0] ≥ 0∧[(-1)bso_29] ≥ 0)
(8) (i72[1]=i72[2]∧i76[1]=i82[2]∧i76[1]=i76[2] ⇒ COND_LOAD839(TRUE, i76[1], i72[1])≥NonInfC∧COND_LOAD839(TRUE, i76[1], i72[1])≥LOAD959(i76[1], i76[1], i72[1])∧(UIncreasing(LOAD959(i76[1], i76[1], i72[1])), ≥))
(9) (COND_LOAD839(TRUE, i76[1], i72[1])≥NonInfC∧COND_LOAD839(TRUE, i76[1], i72[1])≥LOAD959(i76[1], i76[1], i72[1])∧(UIncreasing(LOAD959(i76[1], i76[1], i72[1])), ≥))
(10) ((UIncreasing(LOAD959(i76[1], i76[1], i72[1])), ≥)∧[(-1)bso_31] ≥ 0)
(11) ((UIncreasing(LOAD959(i76[1], i76[1], i72[1])), ≥)∧[(-1)bso_31] ≥ 0)
(12) ((UIncreasing(LOAD959(i76[1], i76[1], i72[1])), ≥)∧[(-1)bso_31] ≥ 0)
(13) ((UIncreasing(LOAD959(i76[1], i76[1], i72[1])), ≥)∧0 = 0∧0 = 0∧[(-1)bso_31] ≥ 0)
(14) (i76[1]=i82[4]∧i76[1]=i76[4]∧i72[1]=i72[4] ⇒ COND_LOAD839(TRUE, i76[1], i72[1])≥NonInfC∧COND_LOAD839(TRUE, i76[1], i72[1])≥LOAD959(i76[1], i76[1], i72[1])∧(UIncreasing(LOAD959(i76[1], i76[1], i72[1])), ≥))
(15) (COND_LOAD839(TRUE, i76[1], i72[1])≥NonInfC∧COND_LOAD839(TRUE, i76[1], i72[1])≥LOAD959(i76[1], i76[1], i72[1])∧(UIncreasing(LOAD959(i76[1], i76[1], i72[1])), ≥))
(16) ((UIncreasing(LOAD959(i76[1], i76[1], i72[1])), ≥)∧[(-1)bso_31] ≥ 0)
(17) ((UIncreasing(LOAD959(i76[1], i76[1], i72[1])), ≥)∧[(-1)bso_31] ≥ 0)
(18) ((UIncreasing(LOAD959(i76[1], i76[1], i72[1])), ≥)∧[(-1)bso_31] ≥ 0)
(19) ((UIncreasing(LOAD959(i76[1], i76[1], i72[1])), ≥)∧0 = 0∧0 = 0∧[(-1)bso_31] ≥ 0)
(20) (i72[2]=i72[3]∧&&(>(i72[2], 0), >=(i82[2], i72[2]))=TRUE∧i82[2]=i82[3]∧i76[2]=i76[3] ⇒ LOAD959(i76[2], i82[2], i72[2])≥NonInfC∧LOAD959(i76[2], i82[2], i72[2])≥COND_LOAD959(&&(>(i72[2], 0), >=(i82[2], i72[2])), i76[2], i82[2], i72[2])∧(UIncreasing(COND_LOAD959(&&(>(i72[2], 0), >=(i82[2], i72[2])), i76[2], i82[2], i72[2])), ≥))
(21) (>(i72[2], 0)=TRUE∧>=(i82[2], i72[2])=TRUE ⇒ LOAD959(i76[2], i82[2], i72[2])≥NonInfC∧LOAD959(i76[2], i82[2], i72[2])≥COND_LOAD959(&&(>(i72[2], 0), >=(i82[2], i72[2])), i76[2], i82[2], i72[2])∧(UIncreasing(COND_LOAD959(&&(>(i72[2], 0), >=(i82[2], i72[2])), i76[2], i82[2], i72[2])), ≥))
(22) (i72[2] + [-1] ≥ 0∧i82[2] + [-1]i72[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD959(&&(>(i72[2], 0), >=(i82[2], i72[2])), i76[2], i82[2], i72[2])), ≥)∧[(-1)Bound*bni_32] + [bni_32]i72[2] ≥ 0∧[(-1)bso_33] ≥ 0)
(23) (i72[2] + [-1] ≥ 0∧i82[2] + [-1]i72[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD959(&&(>(i72[2], 0), >=(i82[2], i72[2])), i76[2], i82[2], i72[2])), ≥)∧[(-1)Bound*bni_32] + [bni_32]i72[2] ≥ 0∧[(-1)bso_33] ≥ 0)
(24) (i72[2] + [-1] ≥ 0∧i82[2] + [-1]i72[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD959(&&(>(i72[2], 0), >=(i82[2], i72[2])), i76[2], i82[2], i72[2])), ≥)∧[(-1)Bound*bni_32] + [bni_32]i72[2] ≥ 0∧[(-1)bso_33] ≥ 0)
(25) (i72[2] + [-1] ≥ 0∧i82[2] + [-1]i72[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD959(&&(>(i72[2], 0), >=(i82[2], i72[2])), i76[2], i82[2], i72[2])), ≥)∧0 = 0∧[(-1)Bound*bni_32] + [bni_32]i72[2] ≥ 0∧0 = 0∧[(-1)bso_33] ≥ 0)
(26) (i72[2] ≥ 0∧i82[2] + [-1] + [-1]i72[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD959(&&(>(i72[2], 0), >=(i82[2], i72[2])), i76[2], i82[2], i72[2])), ≥)∧0 = 0∧[(-1)Bound*bni_32 + bni_32] + [bni_32]i72[2] ≥ 0∧0 = 0∧[(-1)bso_33] ≥ 0)
(27) (i72[2] ≥ 0∧i82[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD959(&&(>(i72[2], 0), >=(i82[2], i72[2])), i76[2], i82[2], i72[2])), ≥)∧0 = 0∧[(-1)Bound*bni_32 + bni_32] + [bni_32]i72[2] ≥ 0∧0 = 0∧[(-1)bso_33] ≥ 0)
(28) (i72[2]=i72[3]∧&&(>(i72[2], 0), >=(i82[2], i72[2]))=TRUE∧i82[2]=i82[3]∧i76[2]=i76[3]∧i72[3]=i72[2]1∧-(i82[3], i72[3])=i82[2]1∧i76[3]=i76[2]1 ⇒ COND_LOAD959(TRUE, i76[3], i82[3], i72[3])≥NonInfC∧COND_LOAD959(TRUE, i76[3], i82[3], i72[3])≥LOAD959(i76[3], -(i82[3], i72[3]), i72[3])∧(UIncreasing(LOAD959(i76[3], -(i82[3], i72[3]), i72[3])), ≥))
(29) (>(i72[2], 0)=TRUE∧>=(i82[2], i72[2])=TRUE ⇒ COND_LOAD959(TRUE, i76[2], i82[2], i72[2])≥NonInfC∧COND_LOAD959(TRUE, i76[2], i82[2], i72[2])≥LOAD959(i76[2], -(i82[2], i72[2]), i72[2])∧(UIncreasing(LOAD959(i76[3], -(i82[3], i72[3]), i72[3])), ≥))
(30) (i72[2] + [-1] ≥ 0∧i82[2] + [-1]i72[2] ≥ 0 ⇒ (UIncreasing(LOAD959(i76[3], -(i82[3], i72[3]), i72[3])), ≥)∧[(-1)Bound*bni_34] + [bni_34]i72[2] ≥ 0∧[(-1)bso_35] ≥ 0)
(31) (i72[2] + [-1] ≥ 0∧i82[2] + [-1]i72[2] ≥ 0 ⇒ (UIncreasing(LOAD959(i76[3], -(i82[3], i72[3]), i72[3])), ≥)∧[(-1)Bound*bni_34] + [bni_34]i72[2] ≥ 0∧[(-1)bso_35] ≥ 0)
(32) (i72[2] + [-1] ≥ 0∧i82[2] + [-1]i72[2] ≥ 0 ⇒ (UIncreasing(LOAD959(i76[3], -(i82[3], i72[3]), i72[3])), ≥)∧[(-1)Bound*bni_34] + [bni_34]i72[2] ≥ 0∧[(-1)bso_35] ≥ 0)
(33) (i72[2] + [-1] ≥ 0∧i82[2] + [-1]i72[2] ≥ 0 ⇒ (UIncreasing(LOAD959(i76[3], -(i82[3], i72[3]), i72[3])), ≥)∧0 = 0∧[(-1)Bound*bni_34] + [bni_34]i72[2] ≥ 0∧0 = 0∧[(-1)bso_35] ≥ 0)
(34) (i72[2] ≥ 0∧i82[2] + [-1] + [-1]i72[2] ≥ 0 ⇒ (UIncreasing(LOAD959(i76[3], -(i82[3], i72[3]), i72[3])), ≥)∧0 = 0∧[(-1)Bound*bni_34 + bni_34] + [bni_34]i72[2] ≥ 0∧0 = 0∧[(-1)bso_35] ≥ 0)
(35) (i72[2] ≥ 0∧i82[2] ≥ 0 ⇒ (UIncreasing(LOAD959(i76[3], -(i82[3], i72[3]), i72[3])), ≥)∧0 = 0∧[(-1)Bound*bni_34 + bni_34] + [bni_34]i72[2] ≥ 0∧0 = 0∧[(-1)bso_35] ≥ 0)
(36) (i72[2]=i72[3]∧&&(>(i72[2], 0), >=(i82[2], i72[2]))=TRUE∧i82[2]=i82[3]∧i76[2]=i76[3]∧i76[3]=i76[4]∧i72[3]=i72[4]∧-(i82[3], i72[3])=i82[4] ⇒ COND_LOAD959(TRUE, i76[3], i82[3], i72[3])≥NonInfC∧COND_LOAD959(TRUE, i76[3], i82[3], i72[3])≥LOAD959(i76[3], -(i82[3], i72[3]), i72[3])∧(UIncreasing(LOAD959(i76[3], -(i82[3], i72[3]), i72[3])), ≥))
(37) (>(i72[2], 0)=TRUE∧>=(i82[2], i72[2])=TRUE ⇒ COND_LOAD959(TRUE, i76[2], i82[2], i72[2])≥NonInfC∧COND_LOAD959(TRUE, i76[2], i82[2], i72[2])≥LOAD959(i76[2], -(i82[2], i72[2]), i72[2])∧(UIncreasing(LOAD959(i76[3], -(i82[3], i72[3]), i72[3])), ≥))
(38) (i72[2] + [-1] ≥ 0∧i82[2] + [-1]i72[2] ≥ 0 ⇒ (UIncreasing(LOAD959(i76[3], -(i82[3], i72[3]), i72[3])), ≥)∧[(-1)Bound*bni_34] + [bni_34]i72[2] ≥ 0∧[(-1)bso_35] ≥ 0)
(39) (i72[2] + [-1] ≥ 0∧i82[2] + [-1]i72[2] ≥ 0 ⇒ (UIncreasing(LOAD959(i76[3], -(i82[3], i72[3]), i72[3])), ≥)∧[(-1)Bound*bni_34] + [bni_34]i72[2] ≥ 0∧[(-1)bso_35] ≥ 0)
(40) (i72[2] + [-1] ≥ 0∧i82[2] + [-1]i72[2] ≥ 0 ⇒ (UIncreasing(LOAD959(i76[3], -(i82[3], i72[3]), i72[3])), ≥)∧[(-1)Bound*bni_34] + [bni_34]i72[2] ≥ 0∧[(-1)bso_35] ≥ 0)
(41) (i72[2] + [-1] ≥ 0∧i82[2] + [-1]i72[2] ≥ 0 ⇒ (UIncreasing(LOAD959(i76[3], -(i82[3], i72[3]), i72[3])), ≥)∧0 = 0∧[(-1)Bound*bni_34] + [bni_34]i72[2] ≥ 0∧0 = 0∧[(-1)bso_35] ≥ 0)
(42) (i72[2] ≥ 0∧i82[2] + [-1] + [-1]i72[2] ≥ 0 ⇒ (UIncreasing(LOAD959(i76[3], -(i82[3], i72[3]), i72[3])), ≥)∧0 = 0∧[(-1)Bound*bni_34 + bni_34] + [bni_34]i72[2] ≥ 0∧0 = 0∧[(-1)bso_35] ≥ 0)
(43) (i72[2] ≥ 0∧i82[2] ≥ 0 ⇒ (UIncreasing(LOAD959(i76[3], -(i82[3], i72[3]), i72[3])), ≥)∧0 = 0∧[(-1)Bound*bni_34 + bni_34] + [bni_34]i72[2] ≥ 0∧0 = 0∧[(-1)bso_35] ≥ 0)
(44) (i76[4]=i76[5]∧i72[4]=i72[5]∧<(i82[4], i72[4])=TRUE∧i82[4]=i82[5] ⇒ LOAD959(i76[4], i82[4], i72[4])≥NonInfC∧LOAD959(i76[4], i82[4], i72[4])≥COND_LOAD9591(<(i82[4], i72[4]), i76[4], i82[4], i72[4])∧(UIncreasing(COND_LOAD9591(<(i82[4], i72[4]), i76[4], i82[4], i72[4])), ≥))
(45) (<(i82[4], i72[4])=TRUE ⇒ LOAD959(i76[4], i82[4], i72[4])≥NonInfC∧LOAD959(i76[4], i82[4], i72[4])≥COND_LOAD9591(<(i82[4], i72[4]), i76[4], i82[4], i72[4])∧(UIncreasing(COND_LOAD9591(<(i82[4], i72[4]), i76[4], i82[4], i72[4])), ≥))
(46) (i72[4] + [-1] + [-1]i82[4] ≥ 0 ⇒ (UIncreasing(COND_LOAD9591(<(i82[4], i72[4]), i76[4], i82[4], i72[4])), ≥)∧[(-1)Bound*bni_36] + [bni_36]i72[4] ≥ 0∧[(-1)bso_37] + i72[4] + [-1]i82[4] ≥ 0)
(47) (i72[4] + [-1] + [-1]i82[4] ≥ 0 ⇒ (UIncreasing(COND_LOAD9591(<(i82[4], i72[4]), i76[4], i82[4], i72[4])), ≥)∧[(-1)Bound*bni_36] + [bni_36]i72[4] ≥ 0∧[(-1)bso_37] + i72[4] + [-1]i82[4] ≥ 0)
(48) (i72[4] + [-1] + [-1]i82[4] ≥ 0 ⇒ (UIncreasing(COND_LOAD9591(<(i82[4], i72[4]), i76[4], i82[4], i72[4])), ≥)∧[(-1)Bound*bni_36] + [bni_36]i72[4] ≥ 0∧[(-1)bso_37] + i72[4] + [-1]i82[4] ≥ 0)
(49) (i72[4] + [-1] + [-1]i82[4] ≥ 0 ⇒ (UIncreasing(COND_LOAD9591(<(i82[4], i72[4]), i76[4], i82[4], i72[4])), ≥)∧0 = 0∧[(-1)Bound*bni_36] + [bni_36]i72[4] ≥ 0∧0 = 0∧[(-1)bso_37] + i72[4] + [-1]i82[4] ≥ 0)
(50) (i72[4] ≥ 0 ⇒ (UIncreasing(COND_LOAD9591(<(i82[4], i72[4]), i76[4], i82[4], i72[4])), ≥)∧0 = 0∧[(-1)Bound*bni_36 + bni_36] + [bni_36]i82[4] + [bni_36]i72[4] ≥ 0∧0 = 0∧[1 + (-1)bso_37] + i72[4] ≥ 0)
(51) (i72[4] ≥ 0∧i82[4] ≥ 0 ⇒ (UIncreasing(COND_LOAD9591(<(i82[4], i72[4]), i76[4], i82[4], i72[4])), ≥)∧0 = 0∧[(-1)Bound*bni_36 + bni_36] + [(-1)bni_36]i82[4] + [bni_36]i72[4] ≥ 0∧0 = 0∧[1 + (-1)bso_37] + i72[4] ≥ 0)
(52) (i72[4] ≥ 0∧i82[4] ≥ 0 ⇒ (UIncreasing(COND_LOAD9591(<(i82[4], i72[4]), i76[4], i82[4], i72[4])), ≥)∧0 = 0∧[(-1)Bound*bni_36 + bni_36] + [bni_36]i82[4] + [bni_36]i72[4] ≥ 0∧0 = 0∧[1 + (-1)bso_37] + i72[4] ≥ 0)
(53) (i72[5]=i76[0]∧i82[5]=i72[0] ⇒ COND_LOAD9591(TRUE, i76[5], i82[5], i72[5])≥NonInfC∧COND_LOAD9591(TRUE, i76[5], i82[5], i72[5])≥LOAD839(i72[5], i82[5])∧(UIncreasing(LOAD839(i72[5], i82[5])), ≥))
(54) (COND_LOAD9591(TRUE, i76[5], i82[5], i72[5])≥NonInfC∧COND_LOAD9591(TRUE, i76[5], i82[5], i72[5])≥LOAD839(i72[5], i82[5])∧(UIncreasing(LOAD839(i72[5], i82[5])), ≥))
(55) ((UIncreasing(LOAD839(i72[5], i82[5])), ≥)∧[(-1)bso_39] ≥ 0)
(56) ((UIncreasing(LOAD839(i72[5], i82[5])), ≥)∧[(-1)bso_39] ≥ 0)
(57) ((UIncreasing(LOAD839(i72[5], i82[5])), ≥)∧[(-1)bso_39] ≥ 0)
(58) ((UIncreasing(LOAD839(i72[5], i82[5])), ≥)∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_39] ≥ 0)
POL(TRUE) = [1]
POL(FALSE) = [3]
POL(LOAD839(x1, x2)) = x2
POL(COND_LOAD839(x1, x2, x3)) = [1] + x3 + [-1]x1
POL(&&(x1, x2)) = [1]
POL(>(x1, x2)) = [-1]
POL(0) = 0
POL(LOAD959(x1, x2, x3)) = x3
POL(COND_LOAD959(x1, x2, x3, x4)) = x4
POL(>=(x1, x2)) = [-1]
POL(-(x1, x2)) = x1 + [-1]x2
POL(COND_LOAD9591(x1, x2, x3, x4)) = x3
POL(<(x1, x2)) = [-1]
LOAD959(i76[4], i82[4], i72[4]) → COND_LOAD9591(<(i82[4], i72[4]), i76[4], i82[4], i72[4])
LOAD839(i76[0], i72[0]) → COND_LOAD839(&&(>(i76[0], 0), >(i72[0], 0)), i76[0], i72[0])
LOAD959(i76[2], i82[2], i72[2]) → COND_LOAD959(&&(>(i72[2], 0), >=(i82[2], i72[2])), i76[2], i82[2], i72[2])
COND_LOAD959(TRUE, i76[3], i82[3], i72[3]) → LOAD959(i76[3], -(i82[3], i72[3]), i72[3])
LOAD839(i76[0], i72[0]) → COND_LOAD839(&&(>(i76[0], 0), >(i72[0], 0)), i76[0], i72[0])
COND_LOAD839(TRUE, i76[1], i72[1]) → LOAD959(i76[1], i76[1], i72[1])
LOAD959(i76[2], i82[2], i72[2]) → COND_LOAD959(&&(>(i72[2], 0), >=(i82[2], i72[2])), i76[2], i82[2], i72[2])
COND_LOAD959(TRUE, i76[3], i82[3], i72[3]) → LOAD959(i76[3], -(i82[3], i72[3]), i72[3])
COND_LOAD9591(TRUE, i76[5], i82[5], i72[5]) → LOAD839(i72[5], i82[5])
TRUE1 → &&(TRUE, TRUE)1
FALSE1 → &&(TRUE, FALSE)1
FALSE1 → &&(FALSE, TRUE)1
FALSE1 → &&(FALSE, FALSE)1
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
~ | Bwxor: (Integer, Integer) -> Integer | |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |
Boolean, Integer
(5) -> (0), if ((i72[5] →* i76[0])∧(i82[5] →* i72[0]))
(0) -> (1), if ((i76[0] > 0 && i72[0] > 0 →* TRUE)∧(i72[0] →* i72[1])∧(i76[0] →* i76[1]))
(1) -> (2), if ((i72[1] →* i72[2])∧(i76[1] →* i82[2])∧(i76[1] →* i76[2]))
(3) -> (2), if ((i72[3] →* i72[2])∧(i82[3] - i72[3] →* i82[2])∧(i76[3] →* i76[2]))
(2) -> (3), if ((i72[2] →* i72[3])∧(i72[2] > 0 && i82[2] >= i72[2] →* TRUE)∧(i82[2] →* i82[3])∧(i76[2] →* i76[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, Boolean
(3) -> (2), if ((i72[3] →* i72[2])∧(i82[3] - i72[3] →* i82[2])∧(i76[3] →* i76[2]))
(2) -> (3), if ((i72[2] →* i72[3])∧(i72[2] > 0 && i82[2] >= i72[2] →* TRUE)∧(i82[2] →* i82[3])∧(i76[2] →* i76[3]))
(1) (i72[2]=i72[3]∧&&(>(i72[2], 0), >=(i82[2], i72[2]))=TRUE∧i82[2]=i82[3]∧i76[2]=i76[3]∧i72[3]=i72[2]1∧-(i82[3], i72[3])=i82[2]1∧i76[3]=i76[2]1 ⇒ COND_LOAD959(TRUE, i76[3], i82[3], i72[3])≥NonInfC∧COND_LOAD959(TRUE, i76[3], i82[3], i72[3])≥LOAD959(i76[3], -(i82[3], i72[3]), i72[3])∧(UIncreasing(LOAD959(i76[3], -(i82[3], i72[3]), i72[3])), ≥))
(2) (>(i72[2], 0)=TRUE∧>=(i82[2], i72[2])=TRUE ⇒ COND_LOAD959(TRUE, i76[2], i82[2], i72[2])≥NonInfC∧COND_LOAD959(TRUE, i76[2], i82[2], i72[2])≥LOAD959(i76[2], -(i82[2], i72[2]), i72[2])∧(UIncreasing(LOAD959(i76[3], -(i82[3], i72[3]), i72[3])), ≥))
(3) (i72[2] + [-1] ≥ 0∧i82[2] + [-1]i72[2] ≥ 0 ⇒ (UIncreasing(LOAD959(i76[3], -(i82[3], i72[3]), i72[3])), ≥)∧[(-1)bni_15 + (-1)Bound*bni_15] + [(-1)bni_15]i72[2] + [bni_15]i82[2] ≥ 0∧[(-1)bso_16] + i72[2] ≥ 0)
(4) (i72[2] + [-1] ≥ 0∧i82[2] + [-1]i72[2] ≥ 0 ⇒ (UIncreasing(LOAD959(i76[3], -(i82[3], i72[3]), i72[3])), ≥)∧[(-1)bni_15 + (-1)Bound*bni_15] + [(-1)bni_15]i72[2] + [bni_15]i82[2] ≥ 0∧[(-1)bso_16] + i72[2] ≥ 0)
(5) (i72[2] + [-1] ≥ 0∧i82[2] + [-1]i72[2] ≥ 0 ⇒ (UIncreasing(LOAD959(i76[3], -(i82[3], i72[3]), i72[3])), ≥)∧[(-1)bni_15 + (-1)Bound*bni_15] + [(-1)bni_15]i72[2] + [bni_15]i82[2] ≥ 0∧[(-1)bso_16] + i72[2] ≥ 0)
(6) (i72[2] + [-1] ≥ 0∧i82[2] + [-1]i72[2] ≥ 0 ⇒ (UIncreasing(LOAD959(i76[3], -(i82[3], i72[3]), i72[3])), ≥)∧0 = 0∧[(-1)bni_15 + (-1)Bound*bni_15] + [(-1)bni_15]i72[2] + [bni_15]i82[2] ≥ 0∧0 = 0∧[(-1)bso_16] + i72[2] ≥ 0)
(7) (i72[2] ≥ 0∧i82[2] + [-1] + [-1]i72[2] ≥ 0 ⇒ (UIncreasing(LOAD959(i76[3], -(i82[3], i72[3]), i72[3])), ≥)∧0 = 0∧[(-2)bni_15 + (-1)Bound*bni_15] + [(-1)bni_15]i72[2] + [bni_15]i82[2] ≥ 0∧0 = 0∧[1 + (-1)bso_16] + i72[2] ≥ 0)
(8) (i72[2] ≥ 0∧i82[2] ≥ 0 ⇒ (UIncreasing(LOAD959(i76[3], -(i82[3], i72[3]), i72[3])), ≥)∧0 = 0∧[(-1)bni_15 + (-1)Bound*bni_15] + [bni_15]i82[2] ≥ 0∧0 = 0∧[1 + (-1)bso_16] + i72[2] ≥ 0)
(9) (i72[2]=i72[3]∧&&(>(i72[2], 0), >=(i82[2], i72[2]))=TRUE∧i82[2]=i82[3]∧i76[2]=i76[3] ⇒ LOAD959(i76[2], i82[2], i72[2])≥NonInfC∧LOAD959(i76[2], i82[2], i72[2])≥COND_LOAD959(&&(>(i72[2], 0), >=(i82[2], i72[2])), i76[2], i82[2], i72[2])∧(UIncreasing(COND_LOAD959(&&(>(i72[2], 0), >=(i82[2], i72[2])), i76[2], i82[2], i72[2])), ≥))
(10) (>(i72[2], 0)=TRUE∧>=(i82[2], i72[2])=TRUE ⇒ LOAD959(i76[2], i82[2], i72[2])≥NonInfC∧LOAD959(i76[2], i82[2], i72[2])≥COND_LOAD959(&&(>(i72[2], 0), >=(i82[2], i72[2])), i76[2], i82[2], i72[2])∧(UIncreasing(COND_LOAD959(&&(>(i72[2], 0), >=(i82[2], i72[2])), i76[2], i82[2], i72[2])), ≥))
(11) (i72[2] + [-1] ≥ 0∧i82[2] + [-1]i72[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD959(&&(>(i72[2], 0), >=(i82[2], i72[2])), i76[2], i82[2], i72[2])), ≥)∧[(-1)bni_17 + (-1)Bound*bni_17] + [(-1)bni_17]i72[2] + [bni_17]i82[2] ≥ 0∧[(-1)bso_18] ≥ 0)
(12) (i72[2] + [-1] ≥ 0∧i82[2] + [-1]i72[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD959(&&(>(i72[2], 0), >=(i82[2], i72[2])), i76[2], i82[2], i72[2])), ≥)∧[(-1)bni_17 + (-1)Bound*bni_17] + [(-1)bni_17]i72[2] + [bni_17]i82[2] ≥ 0∧[(-1)bso_18] ≥ 0)
(13) (i72[2] + [-1] ≥ 0∧i82[2] + [-1]i72[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD959(&&(>(i72[2], 0), >=(i82[2], i72[2])), i76[2], i82[2], i72[2])), ≥)∧[(-1)bni_17 + (-1)Bound*bni_17] + [(-1)bni_17]i72[2] + [bni_17]i82[2] ≥ 0∧[(-1)bso_18] ≥ 0)
(14) (i72[2] + [-1] ≥ 0∧i82[2] + [-1]i72[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD959(&&(>(i72[2], 0), >=(i82[2], i72[2])), i76[2], i82[2], i72[2])), ≥)∧0 = 0∧[(-1)bni_17 + (-1)Bound*bni_17] + [(-1)bni_17]i72[2] + [bni_17]i82[2] ≥ 0∧0 = 0∧[(-1)bso_18] ≥ 0)
(15) (i72[2] ≥ 0∧i82[2] + [-1] + [-1]i72[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD959(&&(>(i72[2], 0), >=(i82[2], i72[2])), i76[2], i82[2], i72[2])), ≥)∧0 = 0∧[(-2)bni_17 + (-1)Bound*bni_17] + [(-1)bni_17]i72[2] + [bni_17]i82[2] ≥ 0∧0 = 0∧[(-1)bso_18] ≥ 0)
(16) (i72[2] ≥ 0∧i82[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD959(&&(>(i72[2], 0), >=(i82[2], i72[2])), i76[2], i82[2], i72[2])), ≥)∧0 = 0∧[(-1)bni_17 + (-1)Bound*bni_17] + [bni_17]i82[2] ≥ 0∧0 = 0∧[(-1)bso_18] ≥ 0)
POL(TRUE) = 0
POL(FALSE) = 0
POL(COND_LOAD959(x1, x2, x3, x4)) = [-1] + [-1]x4 + x3 + [-1]x1
POL(LOAD959(x1, x2, x3)) = [-1] + [-1]x3 + x2
POL(-(x1, x2)) = x1 + [-1]x2
POL(&&(x1, x2)) = 0
POL(>(x1, x2)) = [-1]
POL(0) = 0
POL(>=(x1, x2)) = [-1]
COND_LOAD959(TRUE, i76[3], i82[3], i72[3]) → LOAD959(i76[3], -(i82[3], i72[3]), i72[3])
COND_LOAD959(TRUE, i76[3], i82[3], i72[3]) → LOAD959(i76[3], -(i82[3], i72[3]), i72[3])
LOAD959(i76[2], i82[2], i72[2]) → COND_LOAD959(&&(>(i72[2], 0), >=(i82[2], i72[2])), i76[2], i82[2], i72[2])
LOAD959(i76[2], i82[2], i72[2]) → COND_LOAD959(&&(>(i72[2], 0), >=(i82[2], i72[2])), i76[2], i82[2], i72[2])
&&(TRUE, TRUE)1 ↔ TRUE1
&&(TRUE, FALSE)1 ↔ FALSE1
&&(FALSE, TRUE)1 ↔ FALSE1
&&(FALSE, FALSE)1 ↔ FALSE1
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
~ | Bwxor: (Integer, Integer) -> Integer | |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |
Boolean, Integer
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
~ | Bwxor: (Integer, Integer) -> Integer | |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
~ | Bwxor: (Integer, Integer) -> Integer | |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |
Integer
(1) -> (4), if ((i76[1] →* i82[4])∧(i76[1] →* i76[4])∧(i72[1] →* i72[4]))
(4) -> (5), if ((i76[4] →* i76[5])∧(i72[4] →* i72[5])∧(i82[4] < i72[4] →* TRUE)∧(i82[4] →* i82[5]))