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_Load13021(x1, x2, x3, x4, x5, x6, x7, x8) → Cond_Load13021(x1, x5, x7, x8)
Load1302(x1, x2, x3, x4, x5, x6, x7) → Load1302(x4, x6, x7)
Cond_Load1302(x1, x2, x3, x4, x5, x6, x7, x8) → Cond_Load1302(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 ((i100[0] →* i100[1])∧(i98[0] →* i98[1])∧(i100[0] > 0 && i98[0] > 0 →* TRUE))
(1) -> (2), if ((i100[1] →* i107[2])∧(i100[1] →* i100[2])∧(i98[1] →* i98[2]))
(1) -> (4), if ((i98[1] →* i98[4])∧(i100[1] →* i107[4])∧(i100[1] →* i100[4]))
(2) -> (3), if ((i98[2] →* i98[3])∧(i100[2] →* i100[3])∧(i107[2] →* i107[3])∧(i98[2] > 0 && i107[2] >= i98[2] →* TRUE))
(3) -> (2), if ((i107[3] - i98[3] →* i107[2])∧(i100[3] →* i100[2])∧(i98[3] →* i98[2]))
(3) -> (4), if ((i98[3] →* i98[4])∧(i100[3] →* i100[4])∧(i107[3] - i98[3] →* i107[4]))
(4) -> (5), if ((i100[4] →* i100[5])∧(i98[4] →* i98[5])∧(i107[4] →* i107[5])∧(i107[4] < i98[4] →* TRUE))
(5) -> (0), if ((i107[5] →* i98[0])∧(i98[5] →* i100[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 ((i100[0] →* i100[1])∧(i98[0] →* i98[1])∧(i100[0] > 0 && i98[0] > 0 →* TRUE))
(1) -> (2), if ((i100[1] →* i107[2])∧(i100[1] →* i100[2])∧(i98[1] →* i98[2]))
(1) -> (4), if ((i98[1] →* i98[4])∧(i100[1] →* i107[4])∧(i100[1] →* i100[4]))
(2) -> (3), if ((i98[2] →* i98[3])∧(i100[2] →* i100[3])∧(i107[2] →* i107[3])∧(i98[2] > 0 && i107[2] >= i98[2] →* TRUE))
(3) -> (2), if ((i107[3] - i98[3] →* i107[2])∧(i100[3] →* i100[2])∧(i98[3] →* i98[2]))
(3) -> (4), if ((i98[3] →* i98[4])∧(i100[3] →* i100[4])∧(i107[3] - i98[3] →* i107[4]))
(4) -> (5), if ((i100[4] →* i100[5])∧(i98[4] →* i98[5])∧(i107[4] →* i107[5])∧(i107[4] < i98[4] →* TRUE))
(5) -> (0), if ((i107[5] →* i98[0])∧(i98[5] →* i100[0]))
(1) (i100[0]=i100[1]∧i98[0]=i98[1]∧&&(>(i100[0], 0), >(i98[0], 0))=TRUE ⇒ LOAD1169(i100[0], i98[0])≥NonInfC∧LOAD1169(i100[0], i98[0])≥COND_LOAD1169(&&(>(i100[0], 0), >(i98[0], 0)), i100[0], i98[0])∧(UIncreasing(COND_LOAD1169(&&(>(i100[0], 0), >(i98[0], 0)), i100[0], i98[0])), ≥))
(2) (>(i100[0], 0)=TRUE∧>(i98[0], 0)=TRUE ⇒ LOAD1169(i100[0], i98[0])≥NonInfC∧LOAD1169(i100[0], i98[0])≥COND_LOAD1169(&&(>(i100[0], 0), >(i98[0], 0)), i100[0], i98[0])∧(UIncreasing(COND_LOAD1169(&&(>(i100[0], 0), >(i98[0], 0)), i100[0], i98[0])), ≥))
(3) (i100[0] + [-1] ≥ 0∧i98[0] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD1169(&&(>(i100[0], 0), >(i98[0], 0)), i100[0], i98[0])), ≥)∧[(-1)bni_28 + (-1)Bound*bni_28] + [bni_28]i98[0] ≥ 0∧[(-1)bso_29] ≥ 0)
(4) (i100[0] + [-1] ≥ 0∧i98[0] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD1169(&&(>(i100[0], 0), >(i98[0], 0)), i100[0], i98[0])), ≥)∧[(-1)bni_28 + (-1)Bound*bni_28] + [bni_28]i98[0] ≥ 0∧[(-1)bso_29] ≥ 0)
(5) (i100[0] + [-1] ≥ 0∧i98[0] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD1169(&&(>(i100[0], 0), >(i98[0], 0)), i100[0], i98[0])), ≥)∧[(-1)bni_28 + (-1)Bound*bni_28] + [bni_28]i98[0] ≥ 0∧[(-1)bso_29] ≥ 0)
(6) (i100[0] ≥ 0∧i98[0] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD1169(&&(>(i100[0], 0), >(i98[0], 0)), i100[0], i98[0])), ≥)∧[(-1)bni_28 + (-1)Bound*bni_28] + [bni_28]i98[0] ≥ 0∧[(-1)bso_29] ≥ 0)
(7) (i100[0] ≥ 0∧i98[0] ≥ 0 ⇒ (UIncreasing(COND_LOAD1169(&&(>(i100[0], 0), >(i98[0], 0)), i100[0], i98[0])), ≥)∧[(-1)Bound*bni_28] + [bni_28]i98[0] ≥ 0∧[(-1)bso_29] ≥ 0)
(8) (i100[1]=i107[2]∧i100[1]=i100[2]∧i98[1]=i98[2] ⇒ COND_LOAD1169(TRUE, i100[1], i98[1])≥NonInfC∧COND_LOAD1169(TRUE, i100[1], i98[1])≥LOAD1302(i100[1], i100[1], i98[1])∧(UIncreasing(LOAD1302(i100[1], i100[1], i98[1])), ≥))
(9) (COND_LOAD1169(TRUE, i100[1], i98[1])≥NonInfC∧COND_LOAD1169(TRUE, i100[1], i98[1])≥LOAD1302(i100[1], i100[1], i98[1])∧(UIncreasing(LOAD1302(i100[1], i100[1], i98[1])), ≥))
(10) ((UIncreasing(LOAD1302(i100[1], i100[1], i98[1])), ≥)∧[(-1)bso_31] ≥ 0)
(11) ((UIncreasing(LOAD1302(i100[1], i100[1], i98[1])), ≥)∧[(-1)bso_31] ≥ 0)
(12) ((UIncreasing(LOAD1302(i100[1], i100[1], i98[1])), ≥)∧[(-1)bso_31] ≥ 0)
(13) ((UIncreasing(LOAD1302(i100[1], i100[1], i98[1])), ≥)∧0 = 0∧0 = 0∧[(-1)bso_31] ≥ 0)
(14) (i98[1]=i98[4]∧i100[1]=i107[4]∧i100[1]=i100[4] ⇒ COND_LOAD1169(TRUE, i100[1], i98[1])≥NonInfC∧COND_LOAD1169(TRUE, i100[1], i98[1])≥LOAD1302(i100[1], i100[1], i98[1])∧(UIncreasing(LOAD1302(i100[1], i100[1], i98[1])), ≥))
(15) (COND_LOAD1169(TRUE, i100[1], i98[1])≥NonInfC∧COND_LOAD1169(TRUE, i100[1], i98[1])≥LOAD1302(i100[1], i100[1], i98[1])∧(UIncreasing(LOAD1302(i100[1], i100[1], i98[1])), ≥))
(16) ((UIncreasing(LOAD1302(i100[1], i100[1], i98[1])), ≥)∧[(-1)bso_31] ≥ 0)
(17) ((UIncreasing(LOAD1302(i100[1], i100[1], i98[1])), ≥)∧[(-1)bso_31] ≥ 0)
(18) ((UIncreasing(LOAD1302(i100[1], i100[1], i98[1])), ≥)∧[(-1)bso_31] ≥ 0)
(19) ((UIncreasing(LOAD1302(i100[1], i100[1], i98[1])), ≥)∧0 = 0∧0 = 0∧[(-1)bso_31] ≥ 0)
(20) (i98[2]=i98[3]∧i100[2]=i100[3]∧i107[2]=i107[3]∧&&(>(i98[2], 0), >=(i107[2], i98[2]))=TRUE ⇒ LOAD1302(i100[2], i107[2], i98[2])≥NonInfC∧LOAD1302(i100[2], i107[2], i98[2])≥COND_LOAD1302(&&(>(i98[2], 0), >=(i107[2], i98[2])), i100[2], i107[2], i98[2])∧(UIncreasing(COND_LOAD1302(&&(>(i98[2], 0), >=(i107[2], i98[2])), i100[2], i107[2], i98[2])), ≥))
(21) (>(i98[2], 0)=TRUE∧>=(i107[2], i98[2])=TRUE ⇒ LOAD1302(i100[2], i107[2], i98[2])≥NonInfC∧LOAD1302(i100[2], i107[2], i98[2])≥COND_LOAD1302(&&(>(i98[2], 0), >=(i107[2], i98[2])), i100[2], i107[2], i98[2])∧(UIncreasing(COND_LOAD1302(&&(>(i98[2], 0), >=(i107[2], i98[2])), i100[2], i107[2], i98[2])), ≥))
(22) (i98[2] + [-1] ≥ 0∧i107[2] + [-1]i98[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD1302(&&(>(i98[2], 0), >=(i107[2], i98[2])), i100[2], i107[2], i98[2])), ≥)∧[(-1)bni_32 + (-1)Bound*bni_32] + [bni_32]i98[2] ≥ 0∧[(-1)bso_33] ≥ 0)
(23) (i98[2] + [-1] ≥ 0∧i107[2] + [-1]i98[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD1302(&&(>(i98[2], 0), >=(i107[2], i98[2])), i100[2], i107[2], i98[2])), ≥)∧[(-1)bni_32 + (-1)Bound*bni_32] + [bni_32]i98[2] ≥ 0∧[(-1)bso_33] ≥ 0)
(24) (i98[2] + [-1] ≥ 0∧i107[2] + [-1]i98[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD1302(&&(>(i98[2], 0), >=(i107[2], i98[2])), i100[2], i107[2], i98[2])), ≥)∧[(-1)bni_32 + (-1)Bound*bni_32] + [bni_32]i98[2] ≥ 0∧[(-1)bso_33] ≥ 0)
(25) (i98[2] + [-1] ≥ 0∧i107[2] + [-1]i98[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD1302(&&(>(i98[2], 0), >=(i107[2], i98[2])), i100[2], i107[2], i98[2])), ≥)∧0 = 0∧[(-1)bni_32 + (-1)Bound*bni_32] + [bni_32]i98[2] ≥ 0∧0 = 0∧[(-1)bso_33] ≥ 0)
(26) (i98[2] ≥ 0∧i107[2] + [-1] + [-1]i98[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD1302(&&(>(i98[2], 0), >=(i107[2], i98[2])), i100[2], i107[2], i98[2])), ≥)∧0 = 0∧[(-1)Bound*bni_32] + [bni_32]i98[2] ≥ 0∧0 = 0∧[(-1)bso_33] ≥ 0)
(27) (i98[2] ≥ 0∧i107[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD1302(&&(>(i98[2], 0), >=(i107[2], i98[2])), i100[2], i107[2], i98[2])), ≥)∧0 = 0∧[(-1)Bound*bni_32] + [bni_32]i98[2] ≥ 0∧0 = 0∧[(-1)bso_33] ≥ 0)
(28) (i98[2]=i98[3]∧i100[2]=i100[3]∧i107[2]=i107[3]∧&&(>(i98[2], 0), >=(i107[2], i98[2]))=TRUE∧-(i107[3], i98[3])=i107[2]1∧i100[3]=i100[2]1∧i98[3]=i98[2]1 ⇒ COND_LOAD1302(TRUE, i100[3], i107[3], i98[3])≥NonInfC∧COND_LOAD1302(TRUE, i100[3], i107[3], i98[3])≥LOAD1302(i100[3], -(i107[3], i98[3]), i98[3])∧(UIncreasing(LOAD1302(i100[3], -(i107[3], i98[3]), i98[3])), ≥))
(29) (>(i98[2], 0)=TRUE∧>=(i107[2], i98[2])=TRUE ⇒ COND_LOAD1302(TRUE, i100[2], i107[2], i98[2])≥NonInfC∧COND_LOAD1302(TRUE, i100[2], i107[2], i98[2])≥LOAD1302(i100[2], -(i107[2], i98[2]), i98[2])∧(UIncreasing(LOAD1302(i100[3], -(i107[3], i98[3]), i98[3])), ≥))
(30) (i98[2] + [-1] ≥ 0∧i107[2] + [-1]i98[2] ≥ 0 ⇒ (UIncreasing(LOAD1302(i100[3], -(i107[3], i98[3]), i98[3])), ≥)∧[(-1)bni_34 + (-1)Bound*bni_34] + [bni_34]i98[2] ≥ 0∧[(-1)bso_35] ≥ 0)
(31) (i98[2] + [-1] ≥ 0∧i107[2] + [-1]i98[2] ≥ 0 ⇒ (UIncreasing(LOAD1302(i100[3], -(i107[3], i98[3]), i98[3])), ≥)∧[(-1)bni_34 + (-1)Bound*bni_34] + [bni_34]i98[2] ≥ 0∧[(-1)bso_35] ≥ 0)
(32) (i98[2] + [-1] ≥ 0∧i107[2] + [-1]i98[2] ≥ 0 ⇒ (UIncreasing(LOAD1302(i100[3], -(i107[3], i98[3]), i98[3])), ≥)∧[(-1)bni_34 + (-1)Bound*bni_34] + [bni_34]i98[2] ≥ 0∧[(-1)bso_35] ≥ 0)
(33) (i98[2] + [-1] ≥ 0∧i107[2] + [-1]i98[2] ≥ 0 ⇒ (UIncreasing(LOAD1302(i100[3], -(i107[3], i98[3]), i98[3])), ≥)∧0 = 0∧[(-1)bni_34 + (-1)Bound*bni_34] + [bni_34]i98[2] ≥ 0∧0 = 0∧[(-1)bso_35] ≥ 0)
(34) (i98[2] ≥ 0∧i107[2] + [-1] + [-1]i98[2] ≥ 0 ⇒ (UIncreasing(LOAD1302(i100[3], -(i107[3], i98[3]), i98[3])), ≥)∧0 = 0∧[(-1)Bound*bni_34] + [bni_34]i98[2] ≥ 0∧0 = 0∧[(-1)bso_35] ≥ 0)
(35) (i98[2] ≥ 0∧i107[2] ≥ 0 ⇒ (UIncreasing(LOAD1302(i100[3], -(i107[3], i98[3]), i98[3])), ≥)∧0 = 0∧[(-1)Bound*bni_34] + [bni_34]i98[2] ≥ 0∧0 = 0∧[(-1)bso_35] ≥ 0)
(36) (i98[2]=i98[3]∧i100[2]=i100[3]∧i107[2]=i107[3]∧&&(>(i98[2], 0), >=(i107[2], i98[2]))=TRUE∧i98[3]=i98[4]∧i100[3]=i100[4]∧-(i107[3], i98[3])=i107[4] ⇒ COND_LOAD1302(TRUE, i100[3], i107[3], i98[3])≥NonInfC∧COND_LOAD1302(TRUE, i100[3], i107[3], i98[3])≥LOAD1302(i100[3], -(i107[3], i98[3]), i98[3])∧(UIncreasing(LOAD1302(i100[3], -(i107[3], i98[3]), i98[3])), ≥))
(37) (>(i98[2], 0)=TRUE∧>=(i107[2], i98[2])=TRUE ⇒ COND_LOAD1302(TRUE, i100[2], i107[2], i98[2])≥NonInfC∧COND_LOAD1302(TRUE, i100[2], i107[2], i98[2])≥LOAD1302(i100[2], -(i107[2], i98[2]), i98[2])∧(UIncreasing(LOAD1302(i100[3], -(i107[3], i98[3]), i98[3])), ≥))
(38) (i98[2] + [-1] ≥ 0∧i107[2] + [-1]i98[2] ≥ 0 ⇒ (UIncreasing(LOAD1302(i100[3], -(i107[3], i98[3]), i98[3])), ≥)∧[(-1)bni_34 + (-1)Bound*bni_34] + [bni_34]i98[2] ≥ 0∧[(-1)bso_35] ≥ 0)
(39) (i98[2] + [-1] ≥ 0∧i107[2] + [-1]i98[2] ≥ 0 ⇒ (UIncreasing(LOAD1302(i100[3], -(i107[3], i98[3]), i98[3])), ≥)∧[(-1)bni_34 + (-1)Bound*bni_34] + [bni_34]i98[2] ≥ 0∧[(-1)bso_35] ≥ 0)
(40) (i98[2] + [-1] ≥ 0∧i107[2] + [-1]i98[2] ≥ 0 ⇒ (UIncreasing(LOAD1302(i100[3], -(i107[3], i98[3]), i98[3])), ≥)∧[(-1)bni_34 + (-1)Bound*bni_34] + [bni_34]i98[2] ≥ 0∧[(-1)bso_35] ≥ 0)
(41) (i98[2] + [-1] ≥ 0∧i107[2] + [-1]i98[2] ≥ 0 ⇒ (UIncreasing(LOAD1302(i100[3], -(i107[3], i98[3]), i98[3])), ≥)∧0 = 0∧[(-1)bni_34 + (-1)Bound*bni_34] + [bni_34]i98[2] ≥ 0∧0 = 0∧[(-1)bso_35] ≥ 0)
(42) (i98[2] ≥ 0∧i107[2] + [-1] + [-1]i98[2] ≥ 0 ⇒ (UIncreasing(LOAD1302(i100[3], -(i107[3], i98[3]), i98[3])), ≥)∧0 = 0∧[(-1)Bound*bni_34] + [bni_34]i98[2] ≥ 0∧0 = 0∧[(-1)bso_35] ≥ 0)
(43) (i98[2] ≥ 0∧i107[2] ≥ 0 ⇒ (UIncreasing(LOAD1302(i100[3], -(i107[3], i98[3]), i98[3])), ≥)∧0 = 0∧[(-1)Bound*bni_34] + [bni_34]i98[2] ≥ 0∧0 = 0∧[(-1)bso_35] ≥ 0)
(44) (i100[4]=i100[5]∧i98[4]=i98[5]∧i107[4]=i107[5]∧<(i107[4], i98[4])=TRUE ⇒ LOAD1302(i100[4], i107[4], i98[4])≥NonInfC∧LOAD1302(i100[4], i107[4], i98[4])≥COND_LOAD13021(<(i107[4], i98[4]), i100[4], i107[4], i98[4])∧(UIncreasing(COND_LOAD13021(<(i107[4], i98[4]), i100[4], i107[4], i98[4])), ≥))
(45) (<(i107[4], i98[4])=TRUE ⇒ LOAD1302(i100[4], i107[4], i98[4])≥NonInfC∧LOAD1302(i100[4], i107[4], i98[4])≥COND_LOAD13021(<(i107[4], i98[4]), i100[4], i107[4], i98[4])∧(UIncreasing(COND_LOAD13021(<(i107[4], i98[4]), i100[4], i107[4], i98[4])), ≥))
(46) (i98[4] + [-1] + [-1]i107[4] ≥ 0 ⇒ (UIncreasing(COND_LOAD13021(<(i107[4], i98[4]), i100[4], i107[4], i98[4])), ≥)∧[(-1)bni_36 + (-1)Bound*bni_36] + [bni_36]i98[4] ≥ 0∧[-1 + (-1)bso_37] + i98[4] + [-1]i107[4] ≥ 0)
(47) (i98[4] + [-1] + [-1]i107[4] ≥ 0 ⇒ (UIncreasing(COND_LOAD13021(<(i107[4], i98[4]), i100[4], i107[4], i98[4])), ≥)∧[(-1)bni_36 + (-1)Bound*bni_36] + [bni_36]i98[4] ≥ 0∧[-1 + (-1)bso_37] + i98[4] + [-1]i107[4] ≥ 0)
(48) (i98[4] + [-1] + [-1]i107[4] ≥ 0 ⇒ (UIncreasing(COND_LOAD13021(<(i107[4], i98[4]), i100[4], i107[4], i98[4])), ≥)∧[(-1)bni_36 + (-1)Bound*bni_36] + [bni_36]i98[4] ≥ 0∧[-1 + (-1)bso_37] + i98[4] + [-1]i107[4] ≥ 0)
(49) (i98[4] + [-1] + [-1]i107[4] ≥ 0 ⇒ (UIncreasing(COND_LOAD13021(<(i107[4], i98[4]), i100[4], i107[4], i98[4])), ≥)∧0 = 0∧[(-1)bni_36 + (-1)Bound*bni_36] + [bni_36]i98[4] ≥ 0∧0 = 0∧[-1 + (-1)bso_37] + i98[4] + [-1]i107[4] ≥ 0)
(50) (i98[4] ≥ 0 ⇒ (UIncreasing(COND_LOAD13021(<(i107[4], i98[4]), i100[4], i107[4], i98[4])), ≥)∧0 = 0∧[(-1)Bound*bni_36] + [bni_36]i107[4] + [bni_36]i98[4] ≥ 0∧0 = 0∧[(-1)bso_37] + i98[4] ≥ 0)
(51) (i98[4] ≥ 0∧i107[4] ≥ 0 ⇒ (UIncreasing(COND_LOAD13021(<(i107[4], i98[4]), i100[4], i107[4], i98[4])), ≥)∧0 = 0∧[(-1)Bound*bni_36] + [(-1)bni_36]i107[4] + [bni_36]i98[4] ≥ 0∧0 = 0∧[(-1)bso_37] + i98[4] ≥ 0)
(52) (i98[4] ≥ 0∧i107[4] ≥ 0 ⇒ (UIncreasing(COND_LOAD13021(<(i107[4], i98[4]), i100[4], i107[4], i98[4])), ≥)∧0 = 0∧[(-1)Bound*bni_36] + [bni_36]i107[4] + [bni_36]i98[4] ≥ 0∧0 = 0∧[(-1)bso_37] + i98[4] ≥ 0)
(53) (i107[5]=i98[0]∧i98[5]=i100[0] ⇒ COND_LOAD13021(TRUE, i100[5], i107[5], i98[5])≥NonInfC∧COND_LOAD13021(TRUE, i100[5], i107[5], i98[5])≥LOAD1169(i98[5], i107[5])∧(UIncreasing(LOAD1169(i98[5], i107[5])), ≥))
(54) (COND_LOAD13021(TRUE, i100[5], i107[5], i98[5])≥NonInfC∧COND_LOAD13021(TRUE, i100[5], i107[5], i98[5])≥LOAD1169(i98[5], i107[5])∧(UIncreasing(LOAD1169(i98[5], i107[5])), ≥))
(55) ((UIncreasing(LOAD1169(i98[5], i107[5])), ≥)∧[1 + (-1)bso_39] ≥ 0)
(56) ((UIncreasing(LOAD1169(i98[5], i107[5])), ≥)∧[1 + (-1)bso_39] ≥ 0)
(57) ((UIncreasing(LOAD1169(i98[5], i107[5])), ≥)∧[1 + (-1)bso_39] ≥ 0)
(58) ((UIncreasing(LOAD1169(i98[5], i107[5])), ≥)∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_39] ≥ 0)
POL(TRUE) = 0
POL(FALSE) = 0
POL(LOAD1169(x1, x2)) = [-1] + x2
POL(COND_LOAD1169(x1, x2, x3)) = [-1] + x3
POL(&&(x1, x2)) = [-1]
POL(>(x1, x2)) = [-1]
POL(0) = 0
POL(LOAD1302(x1, x2, x3)) = [-1] + x3
POL(COND_LOAD1302(x1, x2, x3, x4)) = [-1] + x4
POL(>=(x1, x2)) = [-1]
POL(-(x1, x2)) = x1 + [-1]x2
POL(COND_LOAD13021(x1, x2, x3, x4)) = x3
POL(<(x1, x2)) = [1]
COND_LOAD13021(TRUE, i100[5], i107[5], i98[5]) → LOAD1169(i98[5], i107[5])
LOAD1169(i100[0], i98[0]) → COND_LOAD1169(&&(>(i100[0], 0), >(i98[0], 0)), i100[0], i98[0])
LOAD1302(i100[2], i107[2], i98[2]) → COND_LOAD1302(&&(>(i98[2], 0), >=(i107[2], i98[2])), i100[2], i107[2], i98[2])
COND_LOAD1302(TRUE, i100[3], i107[3], i98[3]) → LOAD1302(i100[3], -(i107[3], i98[3]), i98[3])
LOAD1169(i100[0], i98[0]) → COND_LOAD1169(&&(>(i100[0], 0), >(i98[0], 0)), i100[0], i98[0])
COND_LOAD1169(TRUE, i100[1], i98[1]) → LOAD1302(i100[1], i100[1], i98[1])
LOAD1302(i100[2], i107[2], i98[2]) → COND_LOAD1302(&&(>(i98[2], 0), >=(i107[2], i98[2])), i100[2], i107[2], i98[2])
COND_LOAD1302(TRUE, i100[3], i107[3], i98[3]) → LOAD1302(i100[3], -(i107[3], i98[3]), i98[3])
LOAD1302(i100[4], i107[4], i98[4]) → COND_LOAD13021(<(i107[4], i98[4]), i100[4], i107[4], i98[4])
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
(0) -> (1), if ((i100[0] →* i100[1])∧(i98[0] →* i98[1])∧(i100[0] > 0 && i98[0] > 0 →* TRUE))
(1) -> (2), if ((i100[1] →* i107[2])∧(i100[1] →* i100[2])∧(i98[1] →* i98[2]))
(3) -> (2), if ((i107[3] - i98[3] →* i107[2])∧(i100[3] →* i100[2])∧(i98[3] →* i98[2]))
(2) -> (3), if ((i98[2] →* i98[3])∧(i100[2] →* i100[3])∧(i107[2] →* i107[3])∧(i98[2] > 0 && i107[2] >= i98[2] →* TRUE))
(1) -> (4), if ((i98[1] →* i98[4])∧(i100[1] →* i107[4])∧(i100[1] →* i100[4]))
(3) -> (4), if ((i98[3] →* i98[4])∧(i100[3] →* i100[4])∧(i107[3] - i98[3] →* i107[4]))
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
~ | Bwxor: (Integer, Integer) -> Integer | |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |
Integer, Boolean
(3) -> (2), if ((i107[3] - i98[3] →* i107[2])∧(i100[3] →* i100[2])∧(i98[3] →* i98[2]))
(2) -> (3), if ((i98[2] →* i98[3])∧(i100[2] →* i100[3])∧(i107[2] →* i107[3])∧(i98[2] > 0 && i107[2] >= i98[2] →* TRUE))
(1) (i98[2]=i98[3]∧i100[2]=i100[3]∧i107[2]=i107[3]∧&&(>(i98[2], 0), >=(i107[2], i98[2]))=TRUE∧-(i107[3], i98[3])=i107[2]1∧i100[3]=i100[2]1∧i98[3]=i98[2]1 ⇒ COND_LOAD1302(TRUE, i100[3], i107[3], i98[3])≥NonInfC∧COND_LOAD1302(TRUE, i100[3], i107[3], i98[3])≥LOAD1302(i100[3], -(i107[3], i98[3]), i98[3])∧(UIncreasing(LOAD1302(i100[3], -(i107[3], i98[3]), i98[3])), ≥))
(2) (>(i98[2], 0)=TRUE∧>=(i107[2], i98[2])=TRUE ⇒ COND_LOAD1302(TRUE, i100[2], i107[2], i98[2])≥NonInfC∧COND_LOAD1302(TRUE, i100[2], i107[2], i98[2])≥LOAD1302(i100[2], -(i107[2], i98[2]), i98[2])∧(UIncreasing(LOAD1302(i100[3], -(i107[3], i98[3]), i98[3])), ≥))
(3) (i98[2] + [-1] ≥ 0∧i107[2] + [-1]i98[2] ≥ 0 ⇒ (UIncreasing(LOAD1302(i100[3], -(i107[3], i98[3]), i98[3])), ≥)∧[(-2)bni_15 + (-1)Bound*bni_15] + [(-1)bni_15]i98[2] + [(2)bni_15]i107[2] ≥ 0∧[-1 + (-1)bso_16] + [2]i98[2] ≥ 0)
(4) (i98[2] + [-1] ≥ 0∧i107[2] + [-1]i98[2] ≥ 0 ⇒ (UIncreasing(LOAD1302(i100[3], -(i107[3], i98[3]), i98[3])), ≥)∧[(-2)bni_15 + (-1)Bound*bni_15] + [(-1)bni_15]i98[2] + [(2)bni_15]i107[2] ≥ 0∧[-1 + (-1)bso_16] + [2]i98[2] ≥ 0)
(5) (i98[2] + [-1] ≥ 0∧i107[2] + [-1]i98[2] ≥ 0 ⇒ (UIncreasing(LOAD1302(i100[3], -(i107[3], i98[3]), i98[3])), ≥)∧[(-2)bni_15 + (-1)Bound*bni_15] + [(-1)bni_15]i98[2] + [(2)bni_15]i107[2] ≥ 0∧[-1 + (-1)bso_16] + [2]i98[2] ≥ 0)
(6) (i98[2] + [-1] ≥ 0∧i107[2] + [-1]i98[2] ≥ 0 ⇒ (UIncreasing(LOAD1302(i100[3], -(i107[3], i98[3]), i98[3])), ≥)∧0 = 0∧[(-2)bni_15 + (-1)Bound*bni_15] + [(-1)bni_15]i98[2] + [(2)bni_15]i107[2] ≥ 0∧0 = 0∧[-1 + (-1)bso_16] + [2]i98[2] ≥ 0)
(7) (i98[2] ≥ 0∧i107[2] + [-1] + [-1]i98[2] ≥ 0 ⇒ (UIncreasing(LOAD1302(i100[3], -(i107[3], i98[3]), i98[3])), ≥)∧0 = 0∧[(-3)bni_15 + (-1)Bound*bni_15] + [(-1)bni_15]i98[2] + [(2)bni_15]i107[2] ≥ 0∧0 = 0∧[1 + (-1)bso_16] + [2]i98[2] ≥ 0)
(8) (i98[2] ≥ 0∧i107[2] ≥ 0 ⇒ (UIncreasing(LOAD1302(i100[3], -(i107[3], i98[3]), i98[3])), ≥)∧0 = 0∧[(-1)bni_15 + (-1)Bound*bni_15] + [bni_15]i98[2] + [(2)bni_15]i107[2] ≥ 0∧0 = 0∧[1 + (-1)bso_16] + [2]i98[2] ≥ 0)
(9) (i98[2]=i98[3]∧i100[2]=i100[3]∧i107[2]=i107[3]∧&&(>(i98[2], 0), >=(i107[2], i98[2]))=TRUE ⇒ LOAD1302(i100[2], i107[2], i98[2])≥NonInfC∧LOAD1302(i100[2], i107[2], i98[2])≥COND_LOAD1302(&&(>(i98[2], 0), >=(i107[2], i98[2])), i100[2], i107[2], i98[2])∧(UIncreasing(COND_LOAD1302(&&(>(i98[2], 0), >=(i107[2], i98[2])), i100[2], i107[2], i98[2])), ≥))
(10) (>(i98[2], 0)=TRUE∧>=(i107[2], i98[2])=TRUE ⇒ LOAD1302(i100[2], i107[2], i98[2])≥NonInfC∧LOAD1302(i100[2], i107[2], i98[2])≥COND_LOAD1302(&&(>(i98[2], 0), >=(i107[2], i98[2])), i100[2], i107[2], i98[2])∧(UIncreasing(COND_LOAD1302(&&(>(i98[2], 0), >=(i107[2], i98[2])), i100[2], i107[2], i98[2])), ≥))
(11) (i98[2] + [-1] ≥ 0∧i107[2] + [-1]i98[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD1302(&&(>(i98[2], 0), >=(i107[2], i98[2])), i100[2], i107[2], i98[2])), ≥)∧[(-1)bni_17 + (-1)Bound*bni_17] + [(-1)bni_17]i98[2] + [(2)bni_17]i107[2] ≥ 0∧[(-1)bso_18] ≥ 0)
(12) (i98[2] + [-1] ≥ 0∧i107[2] + [-1]i98[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD1302(&&(>(i98[2], 0), >=(i107[2], i98[2])), i100[2], i107[2], i98[2])), ≥)∧[(-1)bni_17 + (-1)Bound*bni_17] + [(-1)bni_17]i98[2] + [(2)bni_17]i107[2] ≥ 0∧[(-1)bso_18] ≥ 0)
(13) (i98[2] + [-1] ≥ 0∧i107[2] + [-1]i98[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD1302(&&(>(i98[2], 0), >=(i107[2], i98[2])), i100[2], i107[2], i98[2])), ≥)∧[(-1)bni_17 + (-1)Bound*bni_17] + [(-1)bni_17]i98[2] + [(2)bni_17]i107[2] ≥ 0∧[(-1)bso_18] ≥ 0)
(14) (i98[2] + [-1] ≥ 0∧i107[2] + [-1]i98[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD1302(&&(>(i98[2], 0), >=(i107[2], i98[2])), i100[2], i107[2], i98[2])), ≥)∧0 = 0∧[(-1)bni_17 + (-1)Bound*bni_17] + [(-1)bni_17]i98[2] + [(2)bni_17]i107[2] ≥ 0∧0 = 0∧[(-1)bso_18] ≥ 0)
(15) (i98[2] ≥ 0∧i107[2] + [-1] + [-1]i98[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD1302(&&(>(i98[2], 0), >=(i107[2], i98[2])), i100[2], i107[2], i98[2])), ≥)∧0 = 0∧[(-2)bni_17 + (-1)Bound*bni_17] + [(-1)bni_17]i98[2] + [(2)bni_17]i107[2] ≥ 0∧0 = 0∧[(-1)bso_18] ≥ 0)
(16) (i98[2] ≥ 0∧i107[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD1302(&&(>(i98[2], 0), >=(i107[2], i98[2])), i100[2], i107[2], i98[2])), ≥)∧0 = 0∧[(-1)Bound*bni_17] + [bni_17]i98[2] + [(2)bni_17]i107[2] ≥ 0∧0 = 0∧[(-1)bso_18] ≥ 0)
POL(TRUE) = [1]
POL(FALSE) = [2]
POL(COND_LOAD1302(x1, x2, x3, x4)) = [-1] + [-1]x4 + [2]x3 + [-1]x1
POL(LOAD1302(x1, x2, x3)) = [-1] + [-1]x3 + [2]x2
POL(-(x1, x2)) = x1 + [-1]x2
POL(&&(x1, x2)) = 0
POL(>(x1, x2)) = [-1]
POL(0) = 0
POL(>=(x1, x2)) = [-1]
COND_LOAD1302(TRUE, i100[3], i107[3], i98[3]) → LOAD1302(i100[3], -(i107[3], i98[3]), i98[3])
COND_LOAD1302(TRUE, i100[3], i107[3], i98[3]) → LOAD1302(i100[3], -(i107[3], i98[3]), i98[3])
LOAD1302(i100[2], i107[2], i98[2]) → COND_LOAD1302(&&(>(i98[2], 0), >=(i107[2], i98[2])), i100[2], i107[2], i98[2])
LOAD1302(i100[2], i107[2], i98[2]) → COND_LOAD1302(&&(>(i98[2], 0), >=(i107[2], i98[2])), i100[2], i107[2], i98[2])
TRUE1 → &&(TRUE, TRUE)1
FALSE1 → &&(TRUE, FALSE)1
FALSE1 → &&(FALSE, TRUE)1
FALSE1 → &&(FALSE, FALSE)1
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
~ | Bwxor: (Integer, Integer) -> Integer | |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |
Boolean, Integer
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
~ | Bwxor: (Integer, Integer) -> Integer | |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |
!= | ~ | 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 ((i98[1] →* i98[4])∧(i100[1] →* i107[4])∧(i100[1] →* i100[4]))
(4) -> (5), if ((i100[4] →* i100[5])∧(i98[4] →* i98[5])∧(i107[4] →* i107[5])∧(i107[4] < i98[4] →* TRUE))