0 JBC
↳1 JBC2FIG (⇐)
↳2 FIGraph
↳3 FIGtoITRSProof (⇐)
↳4 AND
↳5 ITRS
↳6 GroundTermsRemoverProof (⇔)
↳7 ITRS
↳8 ITRStoIDPProof (⇔)
↳9 IDP
↳10 UsableRulesProof (⇔)
↳11 IDP
↳12 IDPNonInfProof (⇐)
↳13 AND
↳14 IDP
↳15 IDependencyGraphProof (⇔)
↳16 TRUE
↳17 IDP
↳18 IDependencyGraphProof (⇔)
↳19 TRUE
↳20 ITRS
↳21 GroundTermsRemoverProof (⇔)
↳22 ITRS
↳23 ITRStoIDPProof (⇔)
↳24 IDP
↳25 UsableRulesProof (⇔)
↳26 IDP
↳27 IDPNonInfProof (⇐)
↳28 AND
↳29 IDP
↳30 IDependencyGraphProof (⇔)
↳31 TRUE
↳32 IDP
↳33 IDependencyGraphProof (⇔)
↳34 TRUE
↳35 ITRS
↳36 GroundTermsRemoverProof (⇔)
↳37 ITRS
↳38 ITRStoIDPProof (⇔)
↳39 IDP
↳40 UsableRulesProof (⇔)
↳41 IDP
↳42 IDPNonInfProof (⇐)
↳43 AND
↳44 IDP
↳45 IDependencyGraphProof (⇔)
↳46 TRUE
↳47 IDP
↳48 IDependencyGraphProof (⇔)
↳49 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 |
Load850(x1, x2, x3, x4) → Load850(x3, x4)
Cond_Load850(x1, x2, x3, x4, x5) → Cond_Load850(x1, x4, x5)
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
~ | Bwxor: (Integer, Integer) -> Integer | |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
~ | Bwxor: (Integer, Integer) -> Integer | |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |
Boolean, Integer
(0) -> (1), if ((i48[0] →* i48[1])∧(i47[0] →* i47[1])∧(i48[0] >= 0 && i48[0] <= 1000 && i48[0] + 3 > 0 →* TRUE))
(1) -> (0), if ((i48[1] + 3 →* i48[0])∧(i47[1] + i48[1] →* i47[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 ((i48[0] →* i48[1])∧(i47[0] →* i47[1])∧(i48[0] >= 0 && i48[0] <= 1000 && i48[0] + 3 > 0 →* TRUE))
(1) -> (0), if ((i48[1] + 3 →* i48[0])∧(i47[1] + i48[1] →* i47[0]))
(1) (i48[0]=i48[1]∧i47[0]=i47[1]∧&&(&&(>=(i48[0], 0), <=(i48[0], 1000)), >(+(i48[0], 3), 0))=TRUE ⇒ LOAD850(i47[0], i48[0])≥NonInfC∧LOAD850(i47[0], i48[0])≥COND_LOAD850(&&(&&(>=(i48[0], 0), <=(i48[0], 1000)), >(+(i48[0], 3), 0)), i47[0], i48[0])∧(UIncreasing(COND_LOAD850(&&(&&(>=(i48[0], 0), <=(i48[0], 1000)), >(+(i48[0], 3), 0)), i47[0], i48[0])), ≥))
(2) (>(+(i48[0], 3), 0)=TRUE∧>=(i48[0], 0)=TRUE∧<=(i48[0], 1000)=TRUE ⇒ LOAD850(i47[0], i48[0])≥NonInfC∧LOAD850(i47[0], i48[0])≥COND_LOAD850(&&(&&(>=(i48[0], 0), <=(i48[0], 1000)), >(+(i48[0], 3), 0)), i47[0], i48[0])∧(UIncreasing(COND_LOAD850(&&(&&(>=(i48[0], 0), <=(i48[0], 1000)), >(+(i48[0], 3), 0)), i47[0], i48[0])), ≥))
(3) (i48[0] + [2] ≥ 0∧i48[0] ≥ 0∧[1000] + [-1]i48[0] ≥ 0 ⇒ (UIncreasing(COND_LOAD850(&&(&&(>=(i48[0], 0), <=(i48[0], 1000)), >(+(i48[0], 3), 0)), i47[0], i48[0])), ≥)∧[(-1)bni_11 + (-1)Bound*bni_11] + [(-1)bni_11]i48[0] ≥ 0∧[(-1)bso_12] ≥ 0)
(4) (i48[0] + [2] ≥ 0∧i48[0] ≥ 0∧[1000] + [-1]i48[0] ≥ 0 ⇒ (UIncreasing(COND_LOAD850(&&(&&(>=(i48[0], 0), <=(i48[0], 1000)), >(+(i48[0], 3), 0)), i47[0], i48[0])), ≥)∧[(-1)bni_11 + (-1)Bound*bni_11] + [(-1)bni_11]i48[0] ≥ 0∧[(-1)bso_12] ≥ 0)
(5) (i48[0] + [2] ≥ 0∧i48[0] ≥ 0∧[1000] + [-1]i48[0] ≥ 0 ⇒ (UIncreasing(COND_LOAD850(&&(&&(>=(i48[0], 0), <=(i48[0], 1000)), >(+(i48[0], 3), 0)), i47[0], i48[0])), ≥)∧[(-1)bni_11 + (-1)Bound*bni_11] + [(-1)bni_11]i48[0] ≥ 0∧[(-1)bso_12] ≥ 0)
(6) (i48[0] ≥ 0∧[1000] + [-1]i48[0] ≥ 0∧[1] ≥ 0 ⇒ (UIncreasing(COND_LOAD850(&&(&&(>=(i48[0], 0), <=(i48[0], 1000)), >(+(i48[0], 3), 0)), i47[0], i48[0])), ≥)∧0 = 0∧[(-1)bni_11 + (-1)Bound*bni_11] + [(-1)bni_11]i48[0] ≥ 0∧0 = 0∧[(-1)bso_12] ≥ 0)
(7) (COND_LOAD850(TRUE, i47[1], i48[1])≥NonInfC∧COND_LOAD850(TRUE, i47[1], i48[1])≥LOAD850(+(i47[1], i48[1]), +(i48[1], 3))∧(UIncreasing(LOAD850(+(i47[1], i48[1]), +(i48[1], 3))), ≥))
(8) ((UIncreasing(LOAD850(+(i47[1], i48[1]), +(i48[1], 3))), ≥)∧[3 + (-1)bso_14] ≥ 0)
(9) ((UIncreasing(LOAD850(+(i47[1], i48[1]), +(i48[1], 3))), ≥)∧[3 + (-1)bso_14] ≥ 0)
(10) ((UIncreasing(LOAD850(+(i47[1], i48[1]), +(i48[1], 3))), ≥)∧[3 + (-1)bso_14] ≥ 0)
(11) ((UIncreasing(LOAD850(+(i47[1], i48[1]), +(i48[1], 3))), ≥)∧0 = 0∧0 = 0∧[3 + (-1)bso_14] ≥ 0)
POL(TRUE) = 0
POL(FALSE) = 0
POL(LOAD850(x1, x2)) = [-1] + [-1]x2
POL(COND_LOAD850(x1, x2, x3)) = [-1] + [-1]x3
POL(&&(x1, x2)) = [-1]
POL(>=(x1, x2)) = [-1]
POL(0) = 0
POL(<=(x1, x2)) = [-1]
POL(1000) = [1000]
POL(>(x1, x2)) = [-1]
POL(+(x1, x2)) = x1 + x2
POL(3) = [3]
COND_LOAD850(TRUE, i47[1], i48[1]) → LOAD850(+(i47[1], i48[1]), +(i48[1], 3))
LOAD850(i47[0], i48[0]) → COND_LOAD850(&&(&&(>=(i48[0], 0), <=(i48[0], 1000)), >(+(i48[0], 3), 0)), i47[0], i48[0])
LOAD850(i47[0], i48[0]) → COND_LOAD850(&&(&&(>=(i48[0], 0), <=(i48[0], 1000)), >(+(i48[0], 3), 0)), i47[0], i48[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
!= | ~ | 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 |
Load553(x1, x2, x3, x4, x5) → Load553(x4, x5)
Cond_Load553(x1, x2, x3, x4, x5, x6) → Cond_Load553(x1, x5, x6)
!= | ~ | 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 ((i21[0] →* i21[1])∧(i20[0] →* i20[1])∧(i21[0] >= 0 && i21[0] <= 1000 && i21[0] + 2 > 0 →* TRUE))
(1) -> (0), if ((i20[1] + i21[1] →* i20[0])∧(i21[1] + 2 →* i21[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 ((i21[0] →* i21[1])∧(i20[0] →* i20[1])∧(i21[0] >= 0 && i21[0] <= 1000 && i21[0] + 2 > 0 →* TRUE))
(1) -> (0), if ((i20[1] + i21[1] →* i20[0])∧(i21[1] + 2 →* i21[0]))
(1) (i21[0]=i21[1]∧i20[0]=i20[1]∧&&(&&(>=(i21[0], 0), <=(i21[0], 1000)), >(+(i21[0], 2), 0))=TRUE ⇒ LOAD553(i20[0], i21[0])≥NonInfC∧LOAD553(i20[0], i21[0])≥COND_LOAD553(&&(&&(>=(i21[0], 0), <=(i21[0], 1000)), >(+(i21[0], 2), 0)), i20[0], i21[0])∧(UIncreasing(COND_LOAD553(&&(&&(>=(i21[0], 0), <=(i21[0], 1000)), >(+(i21[0], 2), 0)), i20[0], i21[0])), ≥))
(2) (>(+(i21[0], 2), 0)=TRUE∧>=(i21[0], 0)=TRUE∧<=(i21[0], 1000)=TRUE ⇒ LOAD553(i20[0], i21[0])≥NonInfC∧LOAD553(i20[0], i21[0])≥COND_LOAD553(&&(&&(>=(i21[0], 0), <=(i21[0], 1000)), >(+(i21[0], 2), 0)), i20[0], i21[0])∧(UIncreasing(COND_LOAD553(&&(&&(>=(i21[0], 0), <=(i21[0], 1000)), >(+(i21[0], 2), 0)), i20[0], i21[0])), ≥))
(3) (i21[0] + [1] ≥ 0∧i21[0] ≥ 0∧[1000] + [-1]i21[0] ≥ 0 ⇒ (UIncreasing(COND_LOAD553(&&(&&(>=(i21[0], 0), <=(i21[0], 1000)), >(+(i21[0], 2), 0)), i20[0], i21[0])), ≥)∧[(-1)Bound*bni_11] + [(-1)bni_11]i21[0] ≥ 0∧[1 + (-1)bso_12] ≥ 0)
(4) (i21[0] + [1] ≥ 0∧i21[0] ≥ 0∧[1000] + [-1]i21[0] ≥ 0 ⇒ (UIncreasing(COND_LOAD553(&&(&&(>=(i21[0], 0), <=(i21[0], 1000)), >(+(i21[0], 2), 0)), i20[0], i21[0])), ≥)∧[(-1)Bound*bni_11] + [(-1)bni_11]i21[0] ≥ 0∧[1 + (-1)bso_12] ≥ 0)
(5) (i21[0] + [1] ≥ 0∧i21[0] ≥ 0∧[1000] + [-1]i21[0] ≥ 0 ⇒ (UIncreasing(COND_LOAD553(&&(&&(>=(i21[0], 0), <=(i21[0], 1000)), >(+(i21[0], 2), 0)), i20[0], i21[0])), ≥)∧[(-1)Bound*bni_11] + [(-1)bni_11]i21[0] ≥ 0∧[1 + (-1)bso_12] ≥ 0)
(6) (i21[0] + [1] ≥ 0∧i21[0] ≥ 0∧[1000] + [-1]i21[0] ≥ 0 ⇒ (UIncreasing(COND_LOAD553(&&(&&(>=(i21[0], 0), <=(i21[0], 1000)), >(+(i21[0], 2), 0)), i20[0], i21[0])), ≥)∧0 = 0∧[(-1)Bound*bni_11] + [(-1)bni_11]i21[0] ≥ 0∧0 = 0∧[1 + (-1)bso_12] ≥ 0)
(7) (COND_LOAD553(TRUE, i20[1], i21[1])≥NonInfC∧COND_LOAD553(TRUE, i20[1], i21[1])≥LOAD553(+(i20[1], i21[1]), +(i21[1], 2))∧(UIncreasing(LOAD553(+(i20[1], i21[1]), +(i21[1], 2))), ≥))
(8) ((UIncreasing(LOAD553(+(i20[1], i21[1]), +(i21[1], 2))), ≥)∧[1 + (-1)bso_14] ≥ 0)
(9) ((UIncreasing(LOAD553(+(i20[1], i21[1]), +(i21[1], 2))), ≥)∧[1 + (-1)bso_14] ≥ 0)
(10) ((UIncreasing(LOAD553(+(i20[1], i21[1]), +(i21[1], 2))), ≥)∧[1 + (-1)bso_14] ≥ 0)
(11) ((UIncreasing(LOAD553(+(i20[1], i21[1]), +(i21[1], 2))), ≥)∧0 = 0∧0 = 0∧[1 + (-1)bso_14] ≥ 0)
POL(TRUE) = 0
POL(FALSE) = 0
POL(LOAD553(x1, x2)) = [-1]x2
POL(COND_LOAD553(x1, x2, x3)) = [-1] + [-1]x3
POL(&&(x1, x2)) = [-1]
POL(>=(x1, x2)) = [-1]
POL(0) = 0
POL(<=(x1, x2)) = [-1]
POL(1000) = [1000]
POL(>(x1, x2)) = [-1]
POL(+(x1, x2)) = x1 + x2
POL(2) = [2]
LOAD553(i20[0], i21[0]) → COND_LOAD553(&&(&&(>=(i21[0], 0), <=(i21[0], 1000)), >(+(i21[0], 2), 0)), i20[0], i21[0])
COND_LOAD553(TRUE, i20[1], i21[1]) → LOAD553(+(i20[1], i21[1]), +(i21[1], 2))
LOAD553(i20[0], i21[0]) → COND_LOAD553(&&(&&(>=(i21[0], 0), <=(i21[0], 1000)), >(+(i21[0], 2), 0)), i20[0], i21[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 |
!= | ~ | 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 |
Load257(x1, x2, x3, x4, x5) → Load257(x4, x5)
Cond_Load257(x1, x2, x3, x4, x5, x6) → Cond_Load257(x1, x5, x6)
!= | ~ | 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 ((i6[0] >= 0 && i6[0] <= 1000 && i6[0] + 1 > 0 →* TRUE)∧(i6[0] →* i6[1])∧(i5[0] →* i5[1]))
(1) -> (0), if ((i5[1] + i6[1] →* i5[0])∧(i6[1] + 1 →* i6[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 ((i6[0] >= 0 && i6[0] <= 1000 && i6[0] + 1 > 0 →* TRUE)∧(i6[0] →* i6[1])∧(i5[0] →* i5[1]))
(1) -> (0), if ((i5[1] + i6[1] →* i5[0])∧(i6[1] + 1 →* i6[0]))
(1) (&&(&&(>=(i6[0], 0), <=(i6[0], 1000)), >(+(i6[0], 1), 0))=TRUE∧i6[0]=i6[1]∧i5[0]=i5[1] ⇒ LOAD257(i5[0], i6[0])≥NonInfC∧LOAD257(i5[0], i6[0])≥COND_LOAD257(&&(&&(>=(i6[0], 0), <=(i6[0], 1000)), >(+(i6[0], 1), 0)), i5[0], i6[0])∧(UIncreasing(COND_LOAD257(&&(&&(>=(i6[0], 0), <=(i6[0], 1000)), >(+(i6[0], 1), 0)), i5[0], i6[0])), ≥))
(2) (>(+(i6[0], 1), 0)=TRUE∧>=(i6[0], 0)=TRUE∧<=(i6[0], 1000)=TRUE ⇒ LOAD257(i5[0], i6[0])≥NonInfC∧LOAD257(i5[0], i6[0])≥COND_LOAD257(&&(&&(>=(i6[0], 0), <=(i6[0], 1000)), >(+(i6[0], 1), 0)), i5[0], i6[0])∧(UIncreasing(COND_LOAD257(&&(&&(>=(i6[0], 0), <=(i6[0], 1000)), >(+(i6[0], 1), 0)), i5[0], i6[0])), ≥))
(3) (i6[0] ≥ 0∧i6[0] ≥ 0∧[1000] + [-1]i6[0] ≥ 0 ⇒ (UIncreasing(COND_LOAD257(&&(&&(>=(i6[0], 0), <=(i6[0], 1000)), >(+(i6[0], 1), 0)), i5[0], i6[0])), ≥)∧[(-1)Bound*bni_11] + [(-1)bni_11]i6[0] ≥ 0∧[(-1)bso_12] ≥ 0)
(4) (i6[0] ≥ 0∧i6[0] ≥ 0∧[1000] + [-1]i6[0] ≥ 0 ⇒ (UIncreasing(COND_LOAD257(&&(&&(>=(i6[0], 0), <=(i6[0], 1000)), >(+(i6[0], 1), 0)), i5[0], i6[0])), ≥)∧[(-1)Bound*bni_11] + [(-1)bni_11]i6[0] ≥ 0∧[(-1)bso_12] ≥ 0)
(5) (i6[0] ≥ 0∧i6[0] ≥ 0∧[1000] + [-1]i6[0] ≥ 0 ⇒ (UIncreasing(COND_LOAD257(&&(&&(>=(i6[0], 0), <=(i6[0], 1000)), >(+(i6[0], 1), 0)), i5[0], i6[0])), ≥)∧[(-1)Bound*bni_11] + [(-1)bni_11]i6[0] ≥ 0∧[(-1)bso_12] ≥ 0)
(6) (i6[0] ≥ 0∧i6[0] ≥ 0∧[1000] + [-1]i6[0] ≥ 0 ⇒ (UIncreasing(COND_LOAD257(&&(&&(>=(i6[0], 0), <=(i6[0], 1000)), >(+(i6[0], 1), 0)), i5[0], i6[0])), ≥)∧0 = 0∧[(-1)Bound*bni_11] + [(-1)bni_11]i6[0] ≥ 0∧0 = 0∧[(-1)bso_12] ≥ 0)
(7) (COND_LOAD257(TRUE, i5[1], i6[1])≥NonInfC∧COND_LOAD257(TRUE, i5[1], i6[1])≥LOAD257(+(i5[1], i6[1]), +(i6[1], 1))∧(UIncreasing(LOAD257(+(i5[1], i6[1]), +(i6[1], 1))), ≥))
(8) ((UIncreasing(LOAD257(+(i5[1], i6[1]), +(i6[1], 1))), ≥)∧[1 + (-1)bso_14] ≥ 0)
(9) ((UIncreasing(LOAD257(+(i5[1], i6[1]), +(i6[1], 1))), ≥)∧[1 + (-1)bso_14] ≥ 0)
(10) ((UIncreasing(LOAD257(+(i5[1], i6[1]), +(i6[1], 1))), ≥)∧[1 + (-1)bso_14] ≥ 0)
(11) ((UIncreasing(LOAD257(+(i5[1], i6[1]), +(i6[1], 1))), ≥)∧0 = 0∧0 = 0∧[1 + (-1)bso_14] ≥ 0)
POL(TRUE) = 0
POL(FALSE) = 0
POL(LOAD257(x1, x2)) = [-1]x2
POL(COND_LOAD257(x1, x2, x3)) = [-1]x3
POL(&&(x1, x2)) = [-1]
POL(>=(x1, x2)) = [-1]
POL(0) = 0
POL(<=(x1, x2)) = [-1]
POL(1000) = [1000]
POL(>(x1, x2)) = [-1]
POL(+(x1, x2)) = x1 + x2
POL(1) = [1]
COND_LOAD257(TRUE, i5[1], i6[1]) → LOAD257(+(i5[1], i6[1]), +(i6[1], 1))
LOAD257(i5[0], i6[0]) → COND_LOAD257(&&(&&(>=(i6[0], 0), <=(i6[0], 1000)), >(+(i6[0], 1), 0)), i5[0], i6[0])
LOAD257(i5[0], i6[0]) → COND_LOAD257(&&(&&(>=(i6[0], 0), <=(i6[0], 1000)), >(+(i6[0], 1), 0)), i5[0], i6[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
!= | ~ | 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