### (0) Obligation:

JBC Problem based on JBC Program:
Manifest-Version: 1.0 Created-By: 1.6.0_16 (Sun Microsystems Inc.) Main-Class: GCD2
`public class GCD2 {  public static int mod(int a, int b) {    if (a == b) {      return 0;    }    while(a>b) {      a -= b;    }    return a;  }  public static int gcd(int a, int b) {    int tmp;    while(b != 0 && a >= 0 && b >= 0) {      tmp = b;      b = mod(a, b);      a = tmp;    }    return a;  }  public static void main(String[] args) {    Random.args = args;    int x = Random.random();    int y = Random.random();    gcd(x, y);  }}public class Random {  static String[] args;  static int index = 0;  public static int random() {    String string = args[index];    index++;    return string.length();  }}`

### (1) JBC2FIG (SOUND transformation)

Constructed FIGraph.

### (2) Obligation:

FIGraph based on JBC Program:
Graph of 541 nodes with 9 SCCs.

### (3) FIGtoITRSProof (SOUND transformation)

Transformed FIGraph to ITRS rules

### (5) Obligation:

ITRS problem:

The following function symbols are pre-defined:
 != ~ 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

The TRS R consists of the following rules:
JMP2949(i277, i1310) → Cond_JMP2949(i277 > 0 && i277 < i1310 && !(i1310 = 0), i277, i1310)
Cond_JMP2949(TRUE, i277, i1310) → JMP2949(i1310, i277)
JMP5679(i1310, i1310, i1310, i2872, i1310) → Cond_JMP5679(i1310 > 0 && i2872 <= i1310, i1310, i1310, i1310, i2872, i1310)
Cond_JMP5679(TRUE, i1310, i1310, i1310, i2872, i1310) → JMP2949(i1310, i2872)
JMP2949(i277, i1310) → Cond_JMP29491(i1310 > 0 && i277 - i1310 <= i1310 && i277 > i1310, i277, i1310)
Cond_JMP29491(TRUE, i277, i1310) → JMP2949(i1310, i277 - i1310)
JMP2949(i1310, i1310) → Cond_JMP29492(i1310 > 0, i1310, i1310)
Cond_JMP29492(TRUE, i1310, i1310) → JMP2949(i1310, 0)
JMP5679(i1310, i1310, i1310, i2872, i1310) → Cond_JMP56791(i1310 > 0 && i2872 > i1310, i1310, i1310, i1310, i2872, i1310)
Cond_JMP56791(TRUE, i1310, i1310, i1310, i2872, i1310) → JMP5679(i1310, i1310, i1310, i2872 - i1310, i1310)
JMP2949(i277, i1310) → Cond_JMP29493(i1310 > 0 && i277 - i1310 > i1310 && i277 > i1310, i277, i1310)
Cond_JMP29493(TRUE, i277, i1310) → JMP5679(i1310, i1310, i1310, i277 - i1310 - i1310, i1310)
The set Q consists of the following terms:
JMP2949(x0, x1)
Cond_JMP2949(TRUE, x0, x1)
JMP5679(x0, x0, x0, x1, x0)
Cond_JMP5679(TRUE, x0, x0, x0, x1, x0)
Cond_JMP29491(TRUE, x0, x1)
Cond_JMP29492(TRUE, x0, x0)
Cond_JMP56791(TRUE, x0, x0, x0, x1, x0)
Cond_JMP29493(TRUE, x0, x1)

### (7) Obligation:

IDP problem:
The following function symbols are pre-defined:
 != ~ 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

The following domains are used:

Boolean, Integer

The ITRS R consists of the following rules:
JMP2949(i277, i1310) → Cond_JMP2949(i277 > 0 && i277 < i1310 && !(i1310 = 0), i277, i1310)
Cond_JMP2949(TRUE, i277, i1310) → JMP2949(i1310, i277)
JMP5679(i1310, i1310, i1310, i2872, i1310) → Cond_JMP5679(i1310 > 0 && i2872 <= i1310, i1310, i1310, i1310, i2872, i1310)
Cond_JMP5679(TRUE, i1310, i1310, i1310, i2872, i1310) → JMP2949(i1310, i2872)
JMP2949(i277, i1310) → Cond_JMP29491(i1310 > 0 && i277 - i1310 <= i1310 && i277 > i1310, i277, i1310)
Cond_JMP29491(TRUE, i277, i1310) → JMP2949(i1310, i277 - i1310)
JMP2949(i1310, i1310) → Cond_JMP29492(i1310 > 0, i1310, i1310)
Cond_JMP29492(TRUE, i1310, i1310) → JMP2949(i1310, 0)
JMP5679(i1310, i1310, i1310, i2872, i1310) → Cond_JMP56791(i1310 > 0 && i2872 > i1310, i1310, i1310, i1310, i2872, i1310)
Cond_JMP56791(TRUE, i1310, i1310, i1310, i2872, i1310) → JMP5679(i1310, i1310, i1310, i2872 - i1310, i1310)
JMP2949(i277, i1310) → Cond_JMP29493(i1310 > 0 && i277 - i1310 > i1310 && i277 > i1310, i277, i1310)
Cond_JMP29493(TRUE, i277, i1310) → JMP5679(i1310, i1310, i1310, i277 - i1310 - i1310, i1310)

The integer pair graph contains the following rules and edges:
(0): JMP2949'(i277[0], i1310[0]) → COND_JMP2949(i277[0] > 0 && i277[0] < i1310[0] && !(i1310[0] = 0), i277[0], i1310[0])
(1): COND_JMP2949(TRUE, i277[1], i1310[1]) → JMP2949'(i1310[1], i277[1])
(2): JMP5679'(i1310[2], i1310[2], i1310[2], i2872[2], i1310[2]) → COND_JMP5679(i1310[2] > 0 && i2872[2] <= i1310[2], i1310[2], i1310[2], i1310[2], i2872[2], i1310[2])
(3): COND_JMP5679(TRUE, i1310[3], i1310[3], i1310[3], i2872[3], i1310[3]) → JMP2949'(i1310[3], i2872[3])
(4): JMP2949'(i277[4], i1310[4]) → COND_JMP29491(i1310[4] > 0 && i277[4] - i1310[4] <= i1310[4] && i277[4] > i1310[4], i277[4], i1310[4])
(5): COND_JMP29491(TRUE, i277[5], i1310[5]) → JMP2949'(i1310[5], i277[5] - i1310[5])
(6): JMP2949'(i1310[6], i1310[6]) → COND_JMP29492(i1310[6] > 0, i1310[6], i1310[6])
(7): COND_JMP29492(TRUE, i1310[7], i1310[7]) → JMP2949'(i1310[7], 0)
(8): JMP5679'(i1310[8], i1310[8], i1310[8], i2872[8], i1310[8]) → COND_JMP56791(i1310[8] > 0 && i2872[8] > i1310[8], i1310[8], i1310[8], i1310[8], i2872[8], i1310[8])
(9): COND_JMP56791(TRUE, i1310[9], i1310[9], i1310[9], i2872[9], i1310[9]) → JMP5679'(i1310[9], i1310[9], i1310[9], i2872[9] - i1310[9], i1310[9])
(10): JMP2949'(i277[10], i1310[10]) → COND_JMP29493(i1310[10] > 0 && i277[10] - i1310[10] > i1310[10] && i277[10] > i1310[10], i277[10], i1310[10])
(11): COND_JMP29493(TRUE, i277[11], i1310[11]) → JMP5679'(i1310[11], i1310[11], i1310[11], i277[11] - i1310[11] - i1310[11], i1310[11])

(0) -> (1), if ((i1310[0]* i1310[1])∧(i277[0]* i277[1])∧(i277[0] > 0 && i277[0] < i1310[0] && !(i1310[0] = 0) →* TRUE))

(1) -> (0), if ((i1310[1]* i277[0])∧(i277[1]* i1310[0]))

(1) -> (4), if ((i277[1]* i1310[4])∧(i1310[1]* i277[4]))

(1) -> (6), if ((i277[1]* i1310[6])∧(i1310[1]* i1310[6]))

(1) -> (10), if ((i277[1]* i1310[10])∧(i1310[1]* i277[10]))

(2) -> (3), if ((i2872[2]* i2872[3])∧(i1310[2]* i1310[3])∧(i1310[2] > 0 && i2872[2] <= i1310[2]* TRUE))

(3) -> (0), if ((i1310[3]* i277[0])∧(i2872[3]* i1310[0]))

(3) -> (4), if ((i1310[3]* i277[4])∧(i2872[3]* i1310[4]))

(3) -> (6), if ((i1310[3]* i1310[6])∧(i2872[3]* i1310[6]))

(3) -> (10), if ((i2872[3]* i1310[10])∧(i1310[3]* i277[10]))

(4) -> (5), if ((i1310[4]* i1310[5])∧(i1310[4] > 0 && i277[4] - i1310[4] <= i1310[4] && i277[4] > i1310[4]* TRUE)∧(i277[4]* i277[5]))

(5) -> (0), if ((i277[5] - i1310[5]* i1310[0])∧(i1310[5]* i277[0]))

(5) -> (4), if ((i277[5] - i1310[5]* i1310[4])∧(i1310[5]* i277[4]))

(5) -> (6), if ((i1310[5]* i1310[6])∧(i277[5] - i1310[5]* i1310[6]))

(5) -> (10), if ((i1310[5]* i277[10])∧(i277[5] - i1310[5]* i1310[10]))

(6) -> (7), if ((i1310[6] > 0* TRUE)∧(i1310[6]* i1310[7]))

(7) -> (0), if ((i1310[7]* i277[0])∧(0* i1310[0]))

(7) -> (4), if ((0* i1310[4])∧(i1310[7]* i277[4]))

(7) -> (6), if ((0* i1310[6])∧(i1310[7]* i1310[6]))

(7) -> (10), if ((0* i1310[10])∧(i1310[7]* i277[10]))

(8) -> (9), if ((i1310[8] > 0 && i2872[8] > i1310[8]* TRUE)∧(i2872[8]* i2872[9])∧(i1310[8]* i1310[9]))

(9) -> (2), if ((i2872[9] - i1310[9]* i2872[2])∧(i1310[9]* i1310[2]))

(9) -> (8), if ((i2872[9] - i1310[9]* i2872[8])∧(i1310[9]* i1310[8]))

(10) -> (11), if ((i277[10]* i277[11])∧(i1310[10]* i1310[11])∧(i1310[10] > 0 && i277[10] - i1310[10] > i1310[10] && i277[10] > i1310[10]* TRUE))

(11) -> (2), if ((i1310[11]* i1310[2])∧(i277[11] - i1310[11] - i1310[11]* i2872[2]))

(11) -> (8), if ((i277[11] - i1310[11] - i1310[11]* i2872[8])∧(i1310[11]* i1310[8]))

The set Q consists of the following terms:
JMP2949(x0, x1)
Cond_JMP2949(TRUE, x0, x1)
JMP5679(x0, x0, x0, x1, x0)
Cond_JMP5679(TRUE, x0, x0, x0, x1, x0)
Cond_JMP29491(TRUE, x0, x1)
Cond_JMP29492(TRUE, x0, x0)
Cond_JMP56791(TRUE, x0, x0, x0, x1, x0)
Cond_JMP29493(TRUE, x0, x1)

### (8) UsableRulesProof (EQUIVALENT transformation)

As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R.

### (9) Obligation:

IDP problem:
The following function symbols are pre-defined:
 != ~ 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

The following domains are used:

Boolean, Integer

R is empty.

The integer pair graph contains the following rules and edges:
(0): JMP2949'(i277[0], i1310[0]) → COND_JMP2949(i277[0] > 0 && i277[0] < i1310[0] && !(i1310[0] = 0), i277[0], i1310[0])
(1): COND_JMP2949(TRUE, i277[1], i1310[1]) → JMP2949'(i1310[1], i277[1])
(2): JMP5679'(i1310[2], i1310[2], i1310[2], i2872[2], i1310[2]) → COND_JMP5679(i1310[2] > 0 && i2872[2] <= i1310[2], i1310[2], i1310[2], i1310[2], i2872[2], i1310[2])
(3): COND_JMP5679(TRUE, i1310[3], i1310[3], i1310[3], i2872[3], i1310[3]) → JMP2949'(i1310[3], i2872[3])
(4): JMP2949'(i277[4], i1310[4]) → COND_JMP29491(i1310[4] > 0 && i277[4] - i1310[4] <= i1310[4] && i277[4] > i1310[4], i277[4], i1310[4])
(5): COND_JMP29491(TRUE, i277[5], i1310[5]) → JMP2949'(i1310[5], i277[5] - i1310[5])
(6): JMP2949'(i1310[6], i1310[6]) → COND_JMP29492(i1310[6] > 0, i1310[6], i1310[6])
(7): COND_JMP29492(TRUE, i1310[7], i1310[7]) → JMP2949'(i1310[7], 0)
(8): JMP5679'(i1310[8], i1310[8], i1310[8], i2872[8], i1310[8]) → COND_JMP56791(i1310[8] > 0 && i2872[8] > i1310[8], i1310[8], i1310[8], i1310[8], i2872[8], i1310[8])
(9): COND_JMP56791(TRUE, i1310[9], i1310[9], i1310[9], i2872[9], i1310[9]) → JMP5679'(i1310[9], i1310[9], i1310[9], i2872[9] - i1310[9], i1310[9])
(10): JMP2949'(i277[10], i1310[10]) → COND_JMP29493(i1310[10] > 0 && i277[10] - i1310[10] > i1310[10] && i277[10] > i1310[10], i277[10], i1310[10])
(11): COND_JMP29493(TRUE, i277[11], i1310[11]) → JMP5679'(i1310[11], i1310[11], i1310[11], i277[11] - i1310[11] - i1310[11], i1310[11])

(0) -> (1), if ((i1310[0]* i1310[1])∧(i277[0]* i277[1])∧(i277[0] > 0 && i277[0] < i1310[0] && !(i1310[0] = 0) →* TRUE))

(1) -> (0), if ((i1310[1]* i277[0])∧(i277[1]* i1310[0]))

(1) -> (4), if ((i277[1]* i1310[4])∧(i1310[1]* i277[4]))

(1) -> (6), if ((i277[1]* i1310[6])∧(i1310[1]* i1310[6]))

(1) -> (10), if ((i277[1]* i1310[10])∧(i1310[1]* i277[10]))

(2) -> (3), if ((i2872[2]* i2872[3])∧(i1310[2]* i1310[3])∧(i1310[2] > 0 && i2872[2] <= i1310[2]* TRUE))

(3) -> (0), if ((i1310[3]* i277[0])∧(i2872[3]* i1310[0]))

(3) -> (4), if ((i1310[3]* i277[4])∧(i2872[3]* i1310[4]))

(3) -> (6), if ((i1310[3]* i1310[6])∧(i2872[3]* i1310[6]))

(3) -> (10), if ((i2872[3]* i1310[10])∧(i1310[3]* i277[10]))

(4) -> (5), if ((i1310[4]* i1310[5])∧(i1310[4] > 0 && i277[4] - i1310[4] <= i1310[4] && i277[4] > i1310[4]* TRUE)∧(i277[4]* i277[5]))

(5) -> (0), if ((i277[5] - i1310[5]* i1310[0])∧(i1310[5]* i277[0]))

(5) -> (4), if ((i277[5] - i1310[5]* i1310[4])∧(i1310[5]* i277[4]))

(5) -> (6), if ((i1310[5]* i1310[6])∧(i277[5] - i1310[5]* i1310[6]))

(5) -> (10), if ((i1310[5]* i277[10])∧(i277[5] - i1310[5]* i1310[10]))

(6) -> (7), if ((i1310[6] > 0* TRUE)∧(i1310[6]* i1310[7]))

(7) -> (0), if ((i1310[7]* i277[0])∧(0* i1310[0]))

(7) -> (4), if ((0* i1310[4])∧(i1310[7]* i277[4]))

(7) -> (6), if ((0* i1310[6])∧(i1310[7]* i1310[6]))

(7) -> (10), if ((0* i1310[10])∧(i1310[7]* i277[10]))

(8) -> (9), if ((i1310[8] > 0 && i2872[8] > i1310[8]* TRUE)∧(i2872[8]* i2872[9])∧(i1310[8]* i1310[9]))

(9) -> (2), if ((i2872[9] - i1310[9]* i2872[2])∧(i1310[9]* i1310[2]))

(9) -> (8), if ((i2872[9] - i1310[9]* i2872[8])∧(i1310[9]* i1310[8]))

(10) -> (11), if ((i277[10]* i277[11])∧(i1310[10]* i1310[11])∧(i1310[10] > 0 && i277[10] - i1310[10] > i1310[10] && i277[10] > i1310[10]* TRUE))

(11) -> (2), if ((i1310[11]* i1310[2])∧(i277[11] - i1310[11] - i1310[11]* i2872[2]))

(11) -> (8), if ((i277[11] - i1310[11] - i1310[11]* i2872[8])∧(i1310[11]* i1310[8]))

The set Q consists of the following terms:
JMP2949(x0, x1)
Cond_JMP2949(TRUE, x0, x1)
JMP5679(x0, x0, x0, x1, x0)
Cond_JMP5679(TRUE, x0, x0, x0, x1, x0)
Cond_JMP29491(TRUE, x0, x1)
Cond_JMP29492(TRUE, x0, x0)
Cond_JMP56791(TRUE, x0, x0, x0, x1, x0)
Cond_JMP29493(TRUE, x0, x1)

### (10) IDPNonInfProof (SOUND transformation)

The constraints were generated the following way:
The DP Problem is simplified using the Induction Calculus [NONINF] with the following steps:
Note that final constraints are written in bold face.

For Pair JMP2949'(i277, i1310) → COND_JMP2949(&&(&&(>(i277, 0), <(i277, i1310)), !(=(i1310, 0))), i277, i1310) the following chains were created:
• We consider the chain JMP2949'(i277[0], i1310[0]) → COND_JMP2949(&&(&&(>(i277[0], 0), <(i277[0], i1310[0])), !(=(i1310[0], 0))), i277[0], i1310[0]), COND_JMP2949(TRUE, i277[1], i1310[1]) → JMP2949'(i1310[1], i277[1]) which results in the following constraint:

(1)    (i1310[0]=i1310[1]i277[0]=i277[1]&&(&&(>(i277[0], 0), <(i277[0], i1310[0])), !(=(i1310[0], 0)))=TRUEJMP2949'(i277[0], i1310[0])≥NonInfC∧JMP2949'(i277[0], i1310[0])≥COND_JMP2949(&&(&&(>(i277[0], 0), <(i277[0], i1310[0])), !(=(i1310[0], 0))), i277[0], i1310[0])∧(UIncreasing(COND_JMP2949(&&(&&(>(i277[0], 0), <(i277[0], i1310[0])), !(=(i1310[0], 0))), i277[0], i1310[0])), ≥))

We simplified constraint (1) using rules (IV), (IDP_BOOLEAN) which results in the following new constraints:

(2)    (>(i277[0], 0)=TRUE<(i277[0], i1310[0])=TRUE<(i1310[0], 0)=TRUEJMP2949'(i277[0], i1310[0])≥NonInfC∧JMP2949'(i277[0], i1310[0])≥COND_JMP2949(&&(&&(>(i277[0], 0), <(i277[0], i1310[0])), !(=(i1310[0], 0))), i277[0], i1310[0])∧(UIncreasing(COND_JMP2949(&&(&&(>(i277[0], 0), <(i277[0], i1310[0])), !(=(i1310[0], 0))), i277[0], i1310[0])), ≥))

(3)    (>(i277[0], 0)=TRUE<(i277[0], i1310[0])=TRUE>(i1310[0], 0)=TRUEJMP2949'(i277[0], i1310[0])≥NonInfC∧JMP2949'(i277[0], i1310[0])≥COND_JMP2949(&&(&&(>(i277[0], 0), <(i277[0], i1310[0])), !(=(i1310[0], 0))), i277[0], i1310[0])∧(UIncreasing(COND_JMP2949(&&(&&(>(i277[0], 0), <(i277[0], i1310[0])), !(=(i1310[0], 0))), i277[0], i1310[0])), ≥))

We simplified constraint (2) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

(4)    (i277[0] + [-1] ≥ 0∧i1310[0] + [-1] + [-1]i277[0] ≥ 0∧[-1] + [-1]i1310[0] ≥ 0 ⇒ (UIncreasing(COND_JMP2949(&&(&&(>(i277[0], 0), <(i277[0], i1310[0])), !(=(i1310[0], 0))), i277[0], i1310[0])), ≥)∧[(-1)bni_48 + (-1)Bound*bni_48] + [bni_48]i1310[0] + [bni_48]i277[0] ≥ 0∧[(-1)bso_49] ≥ 0)

We simplified constraint (3) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

(5)    (i277[0] + [-1] ≥ 0∧i1310[0] + [-1] + [-1]i277[0] ≥ 0∧i1310[0] + [-1] ≥ 0 ⇒ (UIncreasing(COND_JMP2949(&&(&&(>(i277[0], 0), <(i277[0], i1310[0])), !(=(i1310[0], 0))), i277[0], i1310[0])), ≥)∧[(-1)bni_48 + (-1)Bound*bni_48] + [bni_48]i1310[0] + [bni_48]i277[0] ≥ 0∧[(-1)bso_49] ≥ 0)

We simplified constraint (4) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

(6)    (i277[0] + [-1] ≥ 0∧i1310[0] + [-1] + [-1]i277[0] ≥ 0∧[-1] + [-1]i1310[0] ≥ 0 ⇒ (UIncreasing(COND_JMP2949(&&(&&(>(i277[0], 0), <(i277[0], i1310[0])), !(=(i1310[0], 0))), i277[0], i1310[0])), ≥)∧[(-1)bni_48 + (-1)Bound*bni_48] + [bni_48]i1310[0] + [bni_48]i277[0] ≥ 0∧[(-1)bso_49] ≥ 0)

We simplified constraint (5) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

(7)    (i277[0] + [-1] ≥ 0∧i1310[0] + [-1] + [-1]i277[0] ≥ 0∧i1310[0] + [-1] ≥ 0 ⇒ (UIncreasing(COND_JMP2949(&&(&&(>(i277[0], 0), <(i277[0], i1310[0])), !(=(i1310[0], 0))), i277[0], i1310[0])), ≥)∧[(-1)bni_48 + (-1)Bound*bni_48] + [bni_48]i1310[0] + [bni_48]i277[0] ≥ 0∧[(-1)bso_49] ≥ 0)

We simplified constraint (6) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

(8)    (i277[0] + [-1] ≥ 0∧i1310[0] + [-1] + [-1]i277[0] ≥ 0∧[-1] + [-1]i1310[0] ≥ 0 ⇒ (UIncreasing(COND_JMP2949(&&(&&(>(i277[0], 0), <(i277[0], i1310[0])), !(=(i1310[0], 0))), i277[0], i1310[0])), ≥)∧[(-1)bni_48 + (-1)Bound*bni_48] + [bni_48]i1310[0] + [bni_48]i277[0] ≥ 0∧[(-1)bso_49] ≥ 0)

We simplified constraint (7) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

(9)    (i277[0] + [-1] ≥ 0∧i1310[0] + [-1] + [-1]i277[0] ≥ 0∧i1310[0] + [-1] ≥ 0 ⇒ (UIncreasing(COND_JMP2949(&&(&&(>(i277[0], 0), <(i277[0], i1310[0])), !(=(i1310[0], 0))), i277[0], i1310[0])), ≥)∧[(-1)bni_48 + (-1)Bound*bni_48] + [bni_48]i1310[0] + [bni_48]i277[0] ≥ 0∧[(-1)bso_49] ≥ 0)

We solved constraint (8) using rule (IDP_SMT_SPLIT).We simplified constraint (9) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

(10)    (i277[0] ≥ 0∧i1310[0] + [-2] + [-1]i277[0] ≥ 0∧i1310[0] + [-1] ≥ 0 ⇒ (UIncreasing(COND_JMP2949(&&(&&(>(i277[0], 0), <(i277[0], i1310[0])), !(=(i1310[0], 0))), i277[0], i1310[0])), ≥)∧[(-1)Bound*bni_48] + [bni_48]i1310[0] + [bni_48]i277[0] ≥ 0∧[(-1)bso_49] ≥ 0)

We simplified constraint (10) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

(11)    (i277[0] ≥ 0∧i1310[0] ≥ 0∧[1] + i277[0] + i1310[0] ≥ 0 ⇒ (UIncreasing(COND_JMP2949(&&(&&(>(i277[0], 0), <(i277[0], i1310[0])), !(=(i1310[0], 0))), i277[0], i1310[0])), ≥)∧[(2)bni_48 + (-1)Bound*bni_48] + [(2)bni_48]i277[0] + [bni_48]i1310[0] ≥ 0∧[(-1)bso_49] ≥ 0)

For Pair COND_JMP2949(TRUE, i277, i1310) → JMP2949'(i1310, i277) the following chains were created:
• We consider the chain COND_JMP2949(TRUE, i277[1], i1310[1]) → JMP2949'(i1310[1], i277[1]), JMP2949'(i277[0], i1310[0]) → COND_JMP2949(&&(&&(>(i277[0], 0), <(i277[0], i1310[0])), !(=(i1310[0], 0))), i277[0], i1310[0]) which results in the following constraint:

(12)    (i1310[1]=i277[0]i277[1]=i1310[0]COND_JMP2949(TRUE, i277[1], i1310[1])≥NonInfC∧COND_JMP2949(TRUE, i277[1], i1310[1])≥JMP2949'(i1310[1], i277[1])∧(UIncreasing(JMP2949'(i1310[1], i277[1])), ≥))

We simplified constraint (12) using rule (IV) which results in the following new constraint:

(13)    (COND_JMP2949(TRUE, i277[1], i1310[1])≥NonInfC∧COND_JMP2949(TRUE, i277[1], i1310[1])≥JMP2949'(i1310[1], i277[1])∧(UIncreasing(JMP2949'(i1310[1], i277[1])), ≥))

We simplified constraint (13) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

(14)    ((UIncreasing(JMP2949'(i1310[1], i277[1])), ≥)∧[(-1)bso_51] ≥ 0)

We simplified constraint (14) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

(15)    ((UIncreasing(JMP2949'(i1310[1], i277[1])), ≥)∧[(-1)bso_51] ≥ 0)

We simplified constraint (15) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

(16)    ((UIncreasing(JMP2949'(i1310[1], i277[1])), ≥)∧[(-1)bso_51] ≥ 0)

We simplified constraint (16) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

(17)    ((UIncreasing(JMP2949'(i1310[1], i277[1])), ≥)∧0 = 0∧0 = 0∧[(-1)bso_51] ≥ 0)

• We consider the chain COND_JMP2949(TRUE, i277[1], i1310[1]) → JMP2949'(i1310[1], i277[1]), JMP2949'(i277[4], i1310[4]) → COND_JMP29491(&&(&&(>(i1310[4], 0), <=(-(i277[4], i1310[4]), i1310[4])), >(i277[4], i1310[4])), i277[4], i1310[4]) which results in the following constraint:

(18)    (i277[1]=i1310[4]i1310[1]=i277[4]COND_JMP2949(TRUE, i277[1], i1310[1])≥NonInfC∧COND_JMP2949(TRUE, i277[1], i1310[1])≥JMP2949'(i1310[1], i277[1])∧(UIncreasing(JMP2949'(i1310[1], i277[1])), ≥))

We simplified constraint (18) using rule (IV) which results in the following new constraint:

(19)    (COND_JMP2949(TRUE, i277[1], i1310[1])≥NonInfC∧COND_JMP2949(TRUE, i277[1], i1310[1])≥JMP2949'(i1310[1], i277[1])∧(UIncreasing(JMP2949'(i1310[1], i277[1])), ≥))

We simplified constraint (19) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

(20)    ((UIncreasing(JMP2949'(i1310[1], i277[1])), ≥)∧[(-1)bso_51] ≥ 0)

We simplified constraint (20) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

(21)    ((UIncreasing(JMP2949'(i1310[1], i277[1])), ≥)∧[(-1)bso_51] ≥ 0)

We simplified constraint (21) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

(22)    ((UIncreasing(JMP2949'(i1310[1], i277[1])), ≥)∧[(-1)bso_51] ≥ 0)

We simplified constraint (22) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

(23)    ((UIncreasing(JMP2949'(i1310[1], i277[1])), ≥)∧0 = 0∧0 = 0∧[(-1)bso_51] ≥ 0)

• We consider the chain COND_JMP2949(TRUE, i277[1], i1310[1]) → JMP2949'(i1310[1], i277[1]), JMP2949'(i1310[6], i1310[6]) → COND_JMP29492(>(i1310[6], 0), i1310[6], i1310[6]) which results in the following constraint:

(24)    (i277[1]=i1310[6]i1310[1]=i1310[6]COND_JMP2949(TRUE, i277[1], i1310[1])≥NonInfC∧COND_JMP2949(TRUE, i277[1], i1310[1])≥JMP2949'(i1310[1], i277[1])∧(UIncreasing(JMP2949'(i1310[1], i277[1])), ≥))

We simplified constraint (24) using rule (III) which results in the following new constraint:

(25)    (COND_JMP2949(TRUE, i1310[1], i1310[1])≥NonInfC∧COND_JMP2949(TRUE, i1310[1], i1310[1])≥JMP2949'(i1310[1], i1310[1])∧(UIncreasing(JMP2949'(i1310[1], i277[1])), ≥))

We simplified constraint (25) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

(26)    ((UIncreasing(JMP2949'(i1310[1], i277[1])), ≥)∧[(-1)bso_51] ≥ 0)

We simplified constraint (26) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

(27)    ((UIncreasing(JMP2949'(i1310[1], i277[1])), ≥)∧[(-1)bso_51] ≥ 0)

We simplified constraint (27) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

(28)    ((UIncreasing(JMP2949'(i1310[1], i277[1])), ≥)∧[(-1)bso_51] ≥ 0)

We simplified constraint (28) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

(29)    ((UIncreasing(JMP2949'(i1310[1], i277[1])), ≥)∧0 = 0∧[(-1)bso_51] ≥ 0)

• We consider the chain COND_JMP2949(TRUE, i277[1], i1310[1]) → JMP2949'(i1310[1], i277[1]), JMP2949'(i277[10], i1310[10]) → COND_JMP29493(&&(&&(>(i1310[10], 0), >(-(i277[10], i1310[10]), i1310[10])), >(i277[10], i1310[10])), i277[10], i1310[10]) which results in the following constraint:

(30)    (i277[1]=i1310[10]i1310[1]=i277[10]COND_JMP2949(TRUE, i277[1], i1310[1])≥NonInfC∧COND_JMP2949(TRUE, i277[1], i1310[1])≥JMP2949'(i1310[1], i277[1])∧(UIncreasing(JMP2949'(i1310[1], i277[1])), ≥))

We simplified constraint (30) using rule (IV) which results in the following new constraint:

(31)    (COND_JMP2949(TRUE, i277[1], i1310[1])≥NonInfC∧COND_JMP2949(TRUE, i277[1], i1310[1])≥JMP2949'(i1310[1], i277[1])∧(UIncreasing(JMP2949'(i1310[1], i277[1])), ≥))

We simplified constraint (31) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

(32)    ((UIncreasing(JMP2949'(i1310[1], i277[1])), ≥)∧[(-1)bso_51] ≥ 0)

We simplified constraint (32) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

(33)    ((UIncreasing(JMP2949'(i1310[1], i277[1])), ≥)∧[(-1)bso_51] ≥ 0)

We simplified constraint (33) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

(34)    ((UIncreasing(JMP2949'(i1310[1], i277[1])), ≥)∧[(-1)bso_51] ≥ 0)

We simplified constraint (34) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

(35)    ((UIncreasing(JMP2949'(i1310[1], i277[1])), ≥)∧0 = 0∧0 = 0∧[(-1)bso_51] ≥ 0)

For Pair JMP5679'(i1310, i1310, i1310, i2872, i1310) → COND_JMP5679(&&(>(i1310, 0), <=(i2872, i1310)), i1310, i1310, i1310, i2872, i1310) the following chains were created:
• We consider the chain JMP5679'(i1310[2], i1310[2], i1310[2], i2872[2], i1310[2]) → COND_JMP5679(&&(>(i1310[2], 0), <=(i2872[2], i1310[2])), i1310[2], i1310[2], i1310[2], i2872[2], i1310[2]), COND_JMP5679(TRUE, i1310[3], i1310[3], i1310[3], i2872[3], i1310[3]) → JMP2949'(i1310[3], i2872[3]) which results in the following constraint:

(36)    (i2872[2]=i2872[3]i1310[2]=i1310[3]&&(>(i1310[2], 0), <=(i2872[2], i1310[2]))=TRUEJMP5679'(i1310[2], i1310[2], i1310[2], i2872[2], i1310[2])≥NonInfC∧JMP5679'(i1310[2], i1310[2], i1310[2], i2872[2], i1310[2])≥COND_JMP5679(&&(>(i1310[2], 0), <=(i2872[2], i1310[2])), i1310[2], i1310[2], i1310[2], i2872[2], i1310[2])∧(UIncreasing(COND_JMP5679(&&(>(i1310[2], 0), <=(i2872[2], i1310[2])), i1310[2], i1310[2], i1310[2], i2872[2], i1310[2])), ≥))

We simplified constraint (36) using rules (IV), (IDP_BOOLEAN) which results in the following new constraint:

(37)    (>(i1310[2], 0)=TRUE<=(i2872[2], i1310[2])=TRUEJMP5679'(i1310[2], i1310[2], i1310[2], i2872[2], i1310[2])≥NonInfC∧JMP5679'(i1310[2], i1310[2], i1310[2], i2872[2], i1310[2])≥COND_JMP5679(&&(>(i1310[2], 0), <=(i2872[2], i1310[2])), i1310[2], i1310[2], i1310[2], i2872[2], i1310[2])∧(UIncreasing(COND_JMP5679(&&(>(i1310[2], 0), <=(i2872[2], i1310[2])), i1310[2], i1310[2], i1310[2], i2872[2], i1310[2])), ≥))

We simplified constraint (37) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

(38)    (i1310[2] + [-1] ≥ 0∧i1310[2] + [-1]i2872[2] ≥ 0 ⇒ (UIncreasing(COND_JMP5679(&&(>(i1310[2], 0), <=(i2872[2], i1310[2])), i1310[2], i1310[2], i1310[2], i2872[2], i1310[2])), ≥)∧[(-1)bni_52 + (-1)Bound*bni_52] + [bni_52]i1310[2] + [bni_52]i2872[2] ≥ 0∧[(-1)bso_53] ≥ 0)

We simplified constraint (38) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

(39)    (i1310[2] + [-1] ≥ 0∧i1310[2] + [-1]i2872[2] ≥ 0 ⇒ (UIncreasing(COND_JMP5679(&&(>(i1310[2], 0), <=(i2872[2], i1310[2])), i1310[2], i1310[2], i1310[2], i2872[2], i1310[2])), ≥)∧[(-1)bni_52 + (-1)Bound*bni_52] + [bni_52]i1310[2] + [bni_52]i2872[2] ≥ 0∧[(-1)bso_53] ≥ 0)

We simplified constraint (39) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

(40)    (i1310[2] + [-1] ≥ 0∧i1310[2] + [-1]i2872[2] ≥ 0 ⇒ (UIncreasing(COND_JMP5679(&&(>(i1310[2], 0), <=(i2872[2], i1310[2])), i1310[2], i1310[2], i1310[2], i2872[2], i1310[2])), ≥)∧[(-1)bni_52 + (-1)Bound*bni_52] + [bni_52]i1310[2] + [bni_52]i2872[2] ≥ 0∧[(-1)bso_53] ≥ 0)

We simplified constraint (40) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

(41)    (i1310[2] ≥ 0∧[1] + i1310[2] + [-1]i2872[2] ≥ 0 ⇒ (UIncreasing(COND_JMP5679(&&(>(i1310[2], 0), <=(i2872[2], i1310[2])), i1310[2], i1310[2], i1310[2], i2872[2], i1310[2])), ≥)∧[(-1)Bound*bni_52] + [bni_52]i1310[2] + [bni_52]i2872[2] ≥ 0∧[(-1)bso_53] ≥ 0)

We simplified constraint (41) using rule (IDP_SMT_SPLIT) which results in the following new constraints:

(42)    (i1310[2] ≥ 0∧[1] + i1310[2] + [-1]i2872[2] ≥ 0∧i2872[2] ≥ 0 ⇒ (UIncreasing(COND_JMP5679(&&(>(i1310[2], 0), <=(i2872[2], i1310[2])), i1310[2], i1310[2], i1310[2], i2872[2], i1310[2])), ≥)∧[(-1)Bound*bni_52] + [bni_52]i1310[2] + [bni_52]i2872[2] ≥ 0∧[(-1)bso_53] ≥ 0)

(43)    (i1310[2] ≥ 0∧[1] + i1310[2] + i2872[2] ≥ 0∧i2872[2] ≥ 0 ⇒ (UIncreasing(COND_JMP5679(&&(>(i1310[2], 0), <=(i2872[2], i1310[2])), i1310[2], i1310[2], i1310[2], i2872[2], i1310[2])), ≥)∧[(-1)Bound*bni_52] + [bni_52]i1310[2] + [(-1)bni_52]i2872[2] ≥ 0∧[(-1)bso_53] ≥ 0)

For Pair COND_JMP5679(TRUE, i1310, i1310, i1310, i2872, i1310) → JMP2949'(i1310, i2872) the following chains were created:
• We consider the chain COND_JMP5679(TRUE, i1310[3], i1310[3], i1310[3], i2872[3], i1310[3]) → JMP2949'(i1310[3], i2872[3]), JMP2949'(i277[0], i1310[0]) → COND_JMP2949(&&(&&(>(i277[0], 0), <(i277[0], i1310[0])), !(=(i1310[0], 0))), i277[0], i1310[0]) which results in the following constraint:

(44)    (i1310[3]=i277[0]i2872[3]=i1310[0]COND_JMP5679(TRUE, i1310[3], i1310[3], i1310[3], i2872[3], i1310[3])≥NonInfC∧COND_JMP5679(TRUE, i1310[3], i1310[3], i1310[3], i2872[3], i1310[3])≥JMP2949'(i1310[3], i2872[3])∧(UIncreasing(JMP2949'(i1310[3], i2872[3])), ≥))

We simplified constraint (44) using rule (IV) which results in the following new constraint:

(45)    (COND_JMP5679(TRUE, i1310[3], i1310[3], i1310[3], i2872[3], i1310[3])≥NonInfC∧COND_JMP5679(TRUE, i1310[3], i1310[3], i1310[3], i2872[3], i1310[3])≥JMP2949'(i1310[3], i2872[3])∧(UIncreasing(JMP2949'(i1310[3], i2872[3])), ≥))

We simplified constraint (45) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

(46)    ((UIncreasing(JMP2949'(i1310[3], i2872[3])), ≥)∧[(-1)bso_55] ≥ 0)

We simplified constraint (46) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

(47)    ((UIncreasing(JMP2949'(i1310[3], i2872[3])), ≥)∧[(-1)bso_55] ≥ 0)

We simplified constraint (47) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

(48)    ((UIncreasing(JMP2949'(i1310[3], i2872[3])), ≥)∧[(-1)bso_55] ≥ 0)

We simplified constraint (48) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

(49)    ((UIncreasing(JMP2949'(i1310[3], i2872[3])), ≥)∧0 = 0∧0 = 0∧[(-1)bso_55] ≥ 0)

• We consider the chain COND_JMP5679(TRUE, i1310[3], i1310[3], i1310[3], i2872[3], i1310[3]) → JMP2949'(i1310[3], i2872[3]), JMP2949'(i277[4], i1310[4]) → COND_JMP29491(&&(&&(>(i1310[4], 0), <=(-(i277[4], i1310[4]), i1310[4])), >(i277[4], i1310[4])), i277[4], i1310[4]) which results in the following constraint:

(50)    (i1310[3]=i277[4]i2872[3]=i1310[4]COND_JMP5679(TRUE, i1310[3], i1310[3], i1310[3], i2872[3], i1310[3])≥NonInfC∧COND_JMP5679(TRUE, i1310[3], i1310[3], i1310[3], i2872[3], i1310[3])≥JMP2949'(i1310[3], i2872[3])∧(UIncreasing(JMP2949'(i1310[3], i2872[3])), ≥))

We simplified constraint (50) using rule (IV) which results in the following new constraint:

(51)    (COND_JMP5679(TRUE, i1310[3], i1310[3], i1310[3], i2872[3], i1310[3])≥NonInfC∧COND_JMP5679(TRUE, i1310[3], i1310[3], i1310[3], i2872[3], i1310[3])≥JMP2949'(i1310[3], i2872[3])∧(UIncreasing(JMP2949'(i1310[3], i2872[3])), ≥))

We simplified constraint (51) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

(52)    ((UIncreasing(JMP2949'(i1310[3], i2872[3])), ≥)∧[(-1)bso_55] ≥ 0)

We simplified constraint (52) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

(53)    ((UIncreasing(JMP2949'(i1310[3], i2872[3])), ≥)∧[(-1)bso_55] ≥ 0)

We simplified constraint (53) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

(54)    ((UIncreasing(JMP2949'(i1310[3], i2872[3])), ≥)∧[(-1)bso_55] ≥ 0)

We simplified constraint (54) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

(55)    ((UIncreasing(JMP2949'(i1310[3], i2872[3])), ≥)∧0 = 0∧0 = 0∧[(-1)bso_55] ≥ 0)

• We consider the chain COND_JMP5679(TRUE, i1310[3], i1310[3], i1310[3], i2872[3], i1310[3]) → JMP2949'(i1310[3], i2872[3]), JMP2949'(i1310[6], i1310[6]) → COND_JMP29492(>(i1310[6], 0), i1310[6], i1310[6]) which results in the following constraint:

(56)    (i1310[3]=i1310[6]i2872[3]=i1310[6]COND_JMP5679(TRUE, i1310[3], i1310[3], i1310[3], i2872[3], i1310[3])≥NonInfC∧COND_JMP5679(TRUE, i1310[3], i1310[3], i1310[3], i2872[3], i1310[3])≥JMP2949'(i1310[3], i2872[3])∧(UIncreasing(JMP2949'(i1310[3], i2872[3])), ≥))

We simplified constraint (56) using rule (III) which results in the following new constraint:

(57)    (COND_JMP5679(TRUE, i2872[3], i2872[3], i2872[3], i2872[3], i2872[3])≥NonInfC∧COND_JMP5679(TRUE, i2872[3], i2872[3], i2872[3], i2872[3], i2872[3])≥JMP2949'(i2872[3], i2872[3])∧(UIncreasing(JMP2949'(i1310[3], i2872[3])), ≥))

We simplified constraint (57) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

(58)    ((UIncreasing(JMP2949'(i1310[3], i2872[3])), ≥)∧[(-1)bso_55] ≥ 0)

We simplified constraint (58) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

(59)    ((UIncreasing(JMP2949'(i1310[3], i2872[3])), ≥)∧[(-1)bso_55] ≥ 0)

We simplified constraint (59) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

(60)    ((UIncreasing(JMP2949'(i1310[3], i2872[3])), ≥)∧[(-1)bso_55] ≥ 0)

We simplified constraint (60) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

(61)    ((UIncreasing(JMP2949'(i1310[3], i2872[3])), ≥)∧0 = 0∧[(-1)bso_55] ≥ 0)

• We consider the chain COND_JMP5679(TRUE, i1310[3], i1310[3], i1310[3], i2872[3], i1310[3]) → JMP2949'(i1310[3], i2872[3]), JMP2949'(i277[10], i1310[10]) → COND_JMP29493(&&(&&(>(i1310[10], 0), >(-(i277[10], i1310[10]), i1310[10])), >(i277[10], i1310[10])), i277[10], i1310[10]) which results in the following constraint:

(62)    (i2872[3]=i1310[10]i1310[3]=i277[10]COND_JMP5679(TRUE, i1310[3], i1310[3], i1310[3], i2872[3], i1310[3])≥NonInfC∧COND_JMP5679(TRUE, i1310[3], i1310[3], i1310[3], i2872[3], i1310[3])≥JMP2949'(i1310[3], i2872[3])∧(UIncreasing(JMP2949'(i1310[3], i2872[3])), ≥))

We simplified constraint (62) using rule (IV) which results in the following new constraint:

(63)    (COND_JMP5679(TRUE, i1310[3], i1310[3], i1310[3], i2872[3], i1310[3])≥NonInfC∧COND_JMP5679(TRUE, i1310[3], i1310[3], i1310[3], i2872[3], i1310[3])≥JMP2949'(i1310[3], i2872[3])∧(UIncreasing(JMP2949'(i1310[3], i2872[3])), ≥))

We simplified constraint (63) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

(64)    ((UIncreasing(JMP2949'(i1310[3], i2872[3])), ≥)∧[(-1)bso_55] ≥ 0)

We simplified constraint (64) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

(65)    ((UIncreasing(JMP2949'(i1310[3], i2872[3])), ≥)∧[(-1)bso_55] ≥ 0)

We simplified constraint (65) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

(66)    ((UIncreasing(JMP2949'(i1310[3], i2872[3])), ≥)∧[(-1)bso_55] ≥ 0)

We simplified constraint (66) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

(67)    ((UIncreasing(JMP2949'(i1310[3], i2872[3])), ≥)∧0 = 0∧0 = 0∧[(-1)bso_55] ≥ 0)

For Pair JMP2949'(i277, i1310) → COND_JMP29491(&&(&&(>(i1310, 0), <=(-(i277, i1310), i1310)), >(i277, i1310)), i277, i1310) the following chains were created:
• We consider the chain JMP2949'(i277[4], i1310[4]) → COND_JMP29491(&&(&&(>(i1310[4], 0), <=(-(i277[4], i1310[4]), i1310[4])), >(i277[4], i1310[4])), i277[4], i1310[4]), COND_JMP29491(TRUE, i277[5], i1310[5]) → JMP2949'(i1310[5], -(i277[5], i1310[5])) which results in the following constraint:

(68)    (i1310[4]=i1310[5]&&(&&(>(i1310[4], 0), <=(-(i277[4], i1310[4]), i1310[4])), >(i277[4], i1310[4]))=TRUEi277[4]=i277[5]JMP2949'(i277[4], i1310[4])≥NonInfC∧JMP2949'(i277[4], i1310[4])≥COND_JMP29491(&&(&&(>(i1310[4], 0), <=(-(i277[4], i1310[4]), i1310[4])), >(i277[4], i1310[4])), i277[4], i1310[4])∧(UIncreasing(COND_JMP29491(&&(&&(>(i1310[4], 0), <=(-(i277[4], i1310[4]), i1310[4])), >(i277[4], i1310[4])), i277[4], i1310[4])), ≥))

We simplified constraint (68) using rules (IV), (IDP_BOOLEAN) which results in the following new constraint:

(69)    (>(i277[4], i1310[4])=TRUE>(i1310[4], 0)=TRUE<=(-(i277[4], i1310[4]), i1310[4])=TRUEJMP2949'(i277[4], i1310[4])≥NonInfC∧JMP2949'(i277[4], i1310[4])≥COND_JMP29491(&&(&&(>(i1310[4], 0), <=(-(i277[4], i1310[4]), i1310[4])), >(i277[4], i1310[4])), i277[4], i1310[4])∧(UIncreasing(COND_JMP29491(&&(&&(>(i1310[4], 0), <=(-(i277[4], i1310[4]), i1310[4])), >(i277[4], i1310[4])), i277[4], i1310[4])), ≥))

We simplified constraint (69) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

(70)    (i277[4] + [-1] + [-1]i1310[4] ≥ 0∧i1310[4] + [-1] ≥ 0∧[2]i1310[4] + [-1]i277[4] ≥ 0 ⇒ (UIncreasing(COND_JMP29491(&&(&&(>(i1310[4], 0), <=(-(i277[4], i1310[4]), i1310[4])), >(i277[4], i1310[4])), i277[4], i1310[4])), ≥)∧[(-1)bni_56 + (-1)Bound*bni_56] + [bni_56]i1310[4] + [bni_56]i277[4] ≥ 0∧[(-1)bso_57] + [-1]i1310[4] + i277[4] ≥ 0)

We simplified constraint (70) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

(71)    (i277[4] + [-1] + [-1]i1310[4] ≥ 0∧i1310[4] + [-1] ≥ 0∧[2]i1310[4] + [-1]i277[4] ≥ 0 ⇒ (UIncreasing(COND_JMP29491(&&(&&(>(i1310[4], 0), <=(-(i277[4], i1310[4]), i1310[4])), >(i277[4], i1310[4])), i277[4], i1310[4])), ≥)∧[(-1)bni_56 + (-1)Bound*bni_56] + [bni_56]i1310[4] + [bni_56]i277[4] ≥ 0∧[(-1)bso_57] + [-1]i1310[4] + i277[4] ≥ 0)

We simplified constraint (71) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

(72)    (i277[4] + [-1] + [-1]i1310[4] ≥ 0∧i1310[4] + [-1] ≥ 0∧[2]i1310[4] + [-1]i277[4] ≥ 0 ⇒ (UIncreasing(COND_JMP29491(&&(&&(>(i1310[4], 0), <=(-(i277[4], i1310[4]), i1310[4])), >(i277[4], i1310[4])), i277[4], i1310[4])), ≥)∧[(-1)bni_56 + (-1)Bound*bni_56] + [bni_56]i1310[4] + [bni_56]i277[4] ≥ 0∧[(-1)bso_57] + [-1]i1310[4] + i277[4] ≥ 0)

We simplified constraint (72) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

(73)    (i277[4] ≥ 0∧i1310[4] + [-1] ≥ 0∧i1310[4] + [-1] + [-1]i277[4] ≥ 0 ⇒ (UIncreasing(COND_JMP29491(&&(&&(>(i1310[4], 0), <=(-(i277[4], i1310[4]), i1310[4])), >(i277[4], i1310[4])), i277[4], i1310[4])), ≥)∧[(-1)Bound*bni_56] + [(2)bni_56]i1310[4] + [bni_56]i277[4] ≥ 0∧[1 + (-1)bso_57] + i277[4] ≥ 0)

We simplified constraint (73) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

(74)    (i277[4] ≥ 0∧i1310[4] ≥ 0∧i1310[4] + [-1]i277[4] ≥ 0 ⇒ (UIncreasing(COND_JMP29491(&&(&&(>(i1310[4], 0), <=(-(i277[4], i1310[4]), i1310[4])), >(i277[4], i1310[4])), i277[4], i1310[4])), ≥)∧[(-1)Bound*bni_56 + (2)bni_56] + [(2)bni_56]i1310[4] + [bni_56]i277[4] ≥ 0∧[1 + (-1)bso_57] + i277[4] ≥ 0)

We simplified constraint (74) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

(75)    (i277[4] ≥ 0∧i277[4] + i1310[4] ≥ 0∧i1310[4] ≥ 0 ⇒ (UIncreasing(COND_JMP29491(&&(&&(>(i1310[4], 0), <=(-(i277[4], i1310[4]), i1310[4])), >(i277[4], i1310[4])), i277[4], i1310[4])), ≥)∧[(-1)Bound*bni_56 + (2)bni_56] + [(3)bni_56]i277[4] + [(2)bni_56]i1310[4] ≥ 0∧[1 + (-1)bso_57] + i277[4] ≥ 0)

For Pair COND_JMP29491(TRUE, i277, i1310) → JMP2949'(i1310, -(i277, i1310)) the following chains were created:
• We consider the chain JMP2949'(i277[4], i1310[4]) → COND_JMP29491(&&(&&(>(i1310[4], 0), <=(-(i277[4], i1310[4]), i1310[4])), >(i277[4], i1310[4])), i277[4], i1310[4]), COND_JMP29491(TRUE, i277[5], i1310[5]) → JMP2949'(i1310[5], -(i277[5], i1310[5])) which results in the following constraint:

(76)    (i1310[4]=i1310[5]&&(&&(>(i1310[4], 0), <=(-(i277[4], i1310[4]), i1310[4])), >(i277[4], i1310[4]))=TRUEi277[4]=i277[5]COND_JMP29491(TRUE, i277[5], i1310[5])≥NonInfC∧COND_JMP29491(TRUE, i277[5], i1310[5])≥JMP2949'(i1310[5], -(i277[5], i1310[5]))∧(UIncreasing(JMP2949'(i1310[5], -(i277[5], i1310[5]))), ≥))

We simplified constraint (76) using rules (III), (IDP_BOOLEAN) which results in the following new constraint:

(77)    (>(i277[4], i1310[4])=TRUE>(i1310[4], 0)=TRUE<=(-(i277[4], i1310[4]), i1310[4])=TRUECOND_JMP29491(TRUE, i277[4], i1310[4])≥NonInfC∧COND_JMP29491(TRUE, i277[4], i1310[4])≥JMP2949'(i1310[4], -(i277[4], i1310[4]))∧(UIncreasing(JMP2949'(i1310[5], -(i277[5], i1310[5]))), ≥))

We simplified constraint (77) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

(78)    (i277[4] + [-1] + [-1]i1310[4] ≥ 0∧i1310[4] + [-1] ≥ 0∧[2]i1310[4] + [-1]i277[4] ≥ 0 ⇒ (UIncreasing(JMP2949'(i1310[5], -(i277[5], i1310[5]))), ≥)∧[(-1)bni_58 + (-1)Bound*bni_58] + [(2)bni_58]i1310[4] ≥ 0∧[(-1)bso_59] + [2]i1310[4] + [-1]i277[4] ≥ 0)

We simplified constraint (78) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

(79)    (i277[4] + [-1] + [-1]i1310[4] ≥ 0∧i1310[4] + [-1] ≥ 0∧[2]i1310[4] + [-1]i277[4] ≥ 0 ⇒ (UIncreasing(JMP2949'(i1310[5], -(i277[5], i1310[5]))), ≥)∧[(-1)bni_58 + (-1)Bound*bni_58] + [(2)bni_58]i1310[4] ≥ 0∧[(-1)bso_59] + [2]i1310[4] + [-1]i277[4] ≥ 0)

We simplified constraint (79) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

(80)    (i277[4] + [-1] + [-1]i1310[4] ≥ 0∧i1310[4] + [-1] ≥ 0∧[2]i1310[4] + [-1]i277[4] ≥ 0 ⇒ (UIncreasing(JMP2949'(i1310[5], -(i277[5], i1310[5]))), ≥)∧[(-1)bni_58 + (-1)Bound*bni_58] + [(2)bni_58]i1310[4] ≥ 0∧[(-1)bso_59] + [2]i1310[4] + [-1]i277[4] ≥ 0)

We simplified constraint (80) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

(81)    (i277[4] ≥ 0∧i1310[4] + [-1] ≥ 0∧i1310[4] + [-1] + [-1]i277[4] ≥ 0 ⇒ (UIncreasing(JMP2949'(i1310[5], -(i277[5], i1310[5]))), ≥)∧[(-1)bni_58 + (-1)Bound*bni_58] + [(2)bni_58]i1310[4] ≥ 0∧[-1 + (-1)bso_59] + i1310[4] + [-1]i277[4] ≥ 0)

We simplified constraint (81) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

(82)    (i277[4] ≥ 0∧i1310[4] ≥ 0∧i1310[4] + [-1]i277[4] ≥ 0 ⇒ (UIncreasing(JMP2949'(i1310[5], -(i277[5], i1310[5]))), ≥)∧[bni_58 + (-1)Bound*bni_58] + [(2)bni_58]i1310[4] ≥ 0∧[(-1)bso_59] + i1310[4] + [-1]i277[4] ≥ 0)

We simplified constraint (82) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

(83)    (i277[4] ≥ 0∧i277[4] + i1310[4] ≥ 0∧i1310[4] ≥ 0 ⇒ (UIncreasing(JMP2949'(i1310[5], -(i277[5], i1310[5]))), ≥)∧[bni_58 + (-1)Bound*bni_58] + [(2)bni_58]i277[4] + [(2)bni_58]i1310[4] ≥ 0∧[(-1)bso_59] + i1310[4] ≥ 0)

For Pair JMP2949'(i1310, i1310) → COND_JMP29492(>(i1310, 0), i1310, i1310) the following chains were created:
• We consider the chain JMP2949'(i1310[6], i1310[6]) → COND_JMP29492(>(i1310[6], 0), i1310[6], i1310[6]), COND_JMP29492(TRUE, i1310[7], i1310[7]) → JMP2949'(i1310[7], 0) which results in the following constraint:

(84)    (>(i1310[6], 0)=TRUEi1310[6]=i1310[7]JMP2949'(i1310[6], i1310[6])≥NonInfC∧JMP2949'(i1310[6], i1310[6])≥COND_JMP29492(>(i1310[6], 0), i1310[6], i1310[6])∧(UIncreasing(COND_JMP29492(>(i1310[6], 0), i1310[6], i1310[6])), ≥))

We simplified constraint (84) using rule (IV) which results in the following new constraint:

(85)    (>(i1310[6], 0)=TRUEJMP2949'(i1310[6], i1310[6])≥NonInfC∧JMP2949'(i1310[6], i1310[6])≥COND_JMP29492(>(i1310[6], 0), i1310[6], i1310[6])∧(UIncreasing(COND_JMP29492(>(i1310[6], 0), i1310[6], i1310[6])), ≥))

We simplified constraint (85) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

(86)    (i1310[6] + [-1] ≥ 0 ⇒ (UIncreasing(COND_JMP29492(>(i1310[6], 0), i1310[6], i1310[6])), ≥)∧[(-1)bni_60 + (-1)Bound*bni_60] + [(2)bni_60]i1310[6] ≥ 0∧[(-1)bso_61] ≥ 0)

We simplified constraint (86) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

(87)    (i1310[6] + [-1] ≥ 0 ⇒ (UIncreasing(COND_JMP29492(>(i1310[6], 0), i1310[6], i1310[6])), ≥)∧[(-1)bni_60 + (-1)Bound*bni_60] + [(2)bni_60]i1310[6] ≥ 0∧[(-1)bso_61] ≥ 0)

We simplified constraint (87) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

(88)    (i1310[6] + [-1] ≥ 0 ⇒ (UIncreasing(COND_JMP29492(>(i1310[6], 0), i1310[6], i1310[6])), ≥)∧[(-1)bni_60 + (-1)Bound*bni_60] + [(2)bni_60]i1310[6] ≥ 0∧[(-1)bso_61] ≥ 0)

We simplified constraint (88) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

(89)    (i1310[6] ≥ 0 ⇒ (UIncreasing(COND_JMP29492(>(i1310[6], 0), i1310[6], i1310[6])), ≥)∧[bni_60 + (-1)Bound*bni_60] + [(2)bni_60]i1310[6] ≥ 0∧[(-1)bso_61] ≥ 0)

For Pair COND_JMP29492(TRUE, i1310, i1310) → JMP2949'(i1310, 0) the following chains were created:
• We consider the chain JMP2949'(i1310[6], i1310[6]) → COND_JMP29492(>(i1310[6], 0), i1310[6], i1310[6]), COND_JMP29492(TRUE, i1310[7], i1310[7]) → JMP2949'(i1310[7], 0) which results in the following constraint:

(90)    (>(i1310[6], 0)=TRUEi1310[6]=i1310[7]COND_JMP29492(TRUE, i1310[7], i1310[7])≥NonInfC∧COND_JMP29492(TRUE, i1310[7], i1310[7])≥JMP2949'(i1310[7], 0)∧(UIncreasing(JMP2949'(i1310[7], 0)), ≥))

We simplified constraint (90) using rule (III) which results in the following new constraint:

(91)    (>(i1310[6], 0)=TRUECOND_JMP29492(TRUE, i1310[6], i1310[6])≥NonInfC∧COND_JMP29492(TRUE, i1310[6], i1310[6])≥JMP2949'(i1310[6], 0)∧(UIncreasing(JMP2949'(i1310[7], 0)), ≥))

We simplified constraint (91) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

(92)    (i1310[6] + [-1] ≥ 0 ⇒ (UIncreasing(JMP2949'(i1310[7], 0)), ≥)∧[(-1)bni_62 + (-1)Bound*bni_62] + [(2)bni_62]i1310[6] ≥ 0∧[(-1)bso_63] + i1310[6] ≥ 0)

We simplified constraint (92) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

(93)    (i1310[6] + [-1] ≥ 0 ⇒ (UIncreasing(JMP2949'(i1310[7], 0)), ≥)∧[(-1)bni_62 + (-1)Bound*bni_62] + [(2)bni_62]i1310[6] ≥ 0∧[(-1)bso_63] + i1310[6] ≥ 0)

We simplified constraint (93) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

(94)    (i1310[6] + [-1] ≥ 0 ⇒ (UIncreasing(JMP2949'(i1310[7], 0)), ≥)∧[(-1)bni_62 + (-1)Bound*bni_62] + [(2)bni_62]i1310[6] ≥ 0∧[(-1)bso_63] + i1310[6] ≥ 0)

We simplified constraint (94) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

(95)    (i1310[6] ≥ 0 ⇒ (UIncreasing(JMP2949'(i1310[7], 0)), ≥)∧[bni_62 + (-1)Bound*bni_62] + [(2)bni_62]i1310[6] ≥ 0∧[1 + (-1)bso_63] + i1310[6] ≥ 0)

For Pair JMP5679'(i1310, i1310, i1310, i2872, i1310) → COND_JMP56791(&&(>(i1310, 0), >(i2872, i1310)), i1310, i1310, i1310, i2872, i1310) the following chains were created:
• We consider the chain JMP5679'(i1310[8], i1310[8], i1310[8], i2872[8], i1310[8]) → COND_JMP56791(&&(>(i1310[8], 0), >(i2872[8], i1310[8])), i1310[8], i1310[8], i1310[8], i2872[8], i1310[8]), COND_JMP56791(TRUE, i1310[9], i1310[9], i1310[9], i2872[9], i1310[9]) → JMP5679'(i1310[9], i1310[9], i1310[9], -(i2872[9], i1310[9]), i1310[9]) which results in the following constraint:

(96)    (&&(>(i1310[8], 0), >(i2872[8], i1310[8]))=TRUEi2872[8]=i2872[9]i1310[8]=i1310[9]JMP5679'(i1310[8], i1310[8], i1310[8], i2872[8], i1310[8])≥NonInfC∧JMP5679'(i1310[8], i1310[8], i1310[8], i2872[8], i1310[8])≥COND_JMP56791(&&(>(i1310[8], 0), >(i2872[8], i1310[8])), i1310[8], i1310[8], i1310[8], i2872[8], i1310[8])∧(UIncreasing(COND_JMP56791(&&(>(i1310[8], 0), >(i2872[8], i1310[8])), i1310[8], i1310[8], i1310[8], i2872[8], i1310[8])), ≥))

We simplified constraint (96) using rules (IV), (IDP_BOOLEAN) which results in the following new constraint:

(97)    (>(i1310[8], 0)=TRUE>(i2872[8], i1310[8])=TRUEJMP5679'(i1310[8], i1310[8], i1310[8], i2872[8], i1310[8])≥NonInfC∧JMP5679'(i1310[8], i1310[8], i1310[8], i2872[8], i1310[8])≥COND_JMP56791(&&(>(i1310[8], 0), >(i2872[8], i1310[8])), i1310[8], i1310[8], i1310[8], i2872[8], i1310[8])∧(UIncreasing(COND_JMP56791(&&(>(i1310[8], 0), >(i2872[8], i1310[8])), i1310[8], i1310[8], i1310[8], i2872[8], i1310[8])), ≥))

We simplified constraint (97) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

(98)    (i1310[8] + [-1] ≥ 0∧i2872[8] + [-1] + [-1]i1310[8] ≥ 0 ⇒ (UIncreasing(COND_JMP56791(&&(>(i1310[8], 0), >(i2872[8], i1310[8])), i1310[8], i1310[8], i1310[8], i2872[8], i1310[8])), ≥)∧[(-1)bni_64 + (-1)Bound*bni_64] + [bni_64]i1310[8] + [bni_64]i2872[8] ≥ 0∧[-1 + (-1)bso_65] + i1310[8] ≥ 0)

We simplified constraint (98) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

(99)    (i1310[8] + [-1] ≥ 0∧i2872[8] + [-1] + [-1]i1310[8] ≥ 0 ⇒ (UIncreasing(COND_JMP56791(&&(>(i1310[8], 0), >(i2872[8], i1310[8])), i1310[8], i1310[8], i1310[8], i2872[8], i1310[8])), ≥)∧[(-1)bni_64 + (-1)Bound*bni_64] + [bni_64]i1310[8] + [bni_64]i2872[8] ≥ 0∧[-1 + (-1)bso_65] + i1310[8] ≥ 0)

We simplified constraint (99) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

(100)    (i1310[8] + [-1] ≥ 0∧i2872[8] + [-1] + [-1]i1310[8] ≥ 0 ⇒ (UIncreasing(COND_JMP56791(&&(>(i1310[8], 0), >(i2872[8], i1310[8])), i1310[8], i1310[8], i1310[8], i2872[8], i1310[8])), ≥)∧[(-1)bni_64 + (-1)Bound*bni_64] + [bni_64]i1310[8] + [bni_64]i2872[8] ≥ 0∧[-1 + (-1)bso_65] + i1310[8] ≥ 0)

We simplified constraint (100) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

(101)    (i1310[8] ≥ 0∧i2872[8] + [-2] + [-1]i1310[8] ≥ 0 ⇒ (UIncreasing(COND_JMP56791(&&(>(i1310[8], 0), >(i2872[8], i1310[8])), i1310[8], i1310[8], i1310[8], i2872[8], i1310[8])), ≥)∧[(-1)Bound*bni_64] + [bni_64]i1310[8] + [bni_64]i2872[8] ≥ 0∧[(-1)bso_65] + i1310[8] ≥ 0)

We simplified constraint (101) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

(102)    (i1310[8] ≥ 0∧i2872[8] ≥ 0 ⇒ (UIncreasing(COND_JMP56791(&&(>(i1310[8], 0), >(i2872[8], i1310[8])), i1310[8], i1310[8], i1310[8], i2872[8], i1310[8])), ≥)∧[(-1)Bound*bni_64 + (2)bni_64] + [(2)bni_64]i1310[8] + [bni_64]i2872[8] ≥ 0∧[(-1)bso_65] + i1310[8] ≥ 0)

For Pair COND_JMP56791(TRUE, i1310, i1310, i1310, i2872, i1310) → JMP5679'(i1310, i1310, i1310, -(i2872, i1310), i1310) the following chains were created:
• We consider the chain JMP5679'(i1310[8], i1310[8], i1310[8], i2872[8], i1310[8]) → COND_JMP56791(&&(>(i1310[8], 0), >(i2872[8], i1310[8])), i1310[8], i1310[8], i1310[8], i2872[8], i1310[8]), COND_JMP56791(TRUE, i1310[9], i1310[9], i1310[9], i2872[9], i1310[9]) → JMP5679'(i1310[9], i1310[9], i1310[9], -(i2872[9], i1310[9]), i1310[9]), JMP5679'(i1310[2], i1310[2], i1310[2], i2872[2], i1310[2]) → COND_JMP5679(&&(>(i1310[2], 0), <=(i2872[2], i1310[2])), i1310[2], i1310[2], i1310[2], i2872[2], i1310[2]) which results in the following constraint:

(103)    (&&(>(i1310[8], 0), >(i2872[8], i1310[8]))=TRUEi2872[8]=i2872[9]i1310[8]=i1310[9]-(i2872[9], i1310[9])=i2872[2]i1310[9]=i1310[2]COND_JMP56791(TRUE, i1310[9], i1310[9], i1310[9], i2872[9], i1310[9])≥NonInfC∧COND_JMP56791(TRUE, i1310[9], i1310[9], i1310[9], i2872[9], i1310[9])≥JMP5679'(i1310[9], i1310[9], i1310[9], -(i2872[9], i1310[9]), i1310[9])∧(UIncreasing(JMP5679'(i1310[9], i1310[9], i1310[9], -(i2872[9], i1310[9]), i1310[9])), ≥))

We simplified constraint (103) using rules (III), (IV), (IDP_BOOLEAN) which results in the following new constraint:

(104)    (>(i1310[8], 0)=TRUE>(i2872[8], i1310[8])=TRUECOND_JMP56791(TRUE, i1310[8], i1310[8], i1310[8], i2872[8], i1310[8])≥NonInfC∧COND_JMP56791(TRUE, i1310[8], i1310[8], i1310[8], i2872[8], i1310[8])≥JMP5679'(i1310[8], i1310[8], i1310[8], -(i2872[8], i1310[8]), i1310[8])∧(UIncreasing(JMP5679'(i1310[9], i1310[9], i1310[9], -(i2872[9], i1310[9]), i1310[9])), ≥))

We simplified constraint (104) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

(105)    (i1310[8] + [-1] ≥ 0∧i2872[8] + [-1] + [-1]i1310[8] ≥ 0 ⇒ (UIncreasing(JMP5679'(i1310[9], i1310[9], i1310[9], -(i2872[9], i1310[9]), i1310[9])), ≥)∧[(-1)Bound*bni_66] + [bni_66]i2872[8] ≥ 0∧[1 + (-1)bso_67] ≥ 0)

We simplified constraint (105) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

(106)    (i1310[8] + [-1] ≥ 0∧i2872[8] + [-1] + [-1]i1310[8] ≥ 0 ⇒ (UIncreasing(JMP5679'(i1310[9], i1310[9], i1310[9], -(i2872[9], i1310[9]), i1310[9])), ≥)∧[(-1)Bound*bni_66] + [bni_66]i2872[8] ≥ 0∧[1 + (-1)bso_67] ≥ 0)

We simplified constraint (106) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

(107)    (i1310[8] + [-1] ≥ 0∧i2872[8] + [-1] + [-1]i1310[8] ≥ 0 ⇒ (UIncreasing(JMP5679'(i1310[9], i1310[9], i1310[9], -(i2872[9], i1310[9]), i1310[9])), ≥)∧[(-1)Bound*bni_66] + [bni_66]i2872[8] ≥ 0∧[1 + (-1)bso_67] ≥ 0)

We simplified constraint (107) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

(108)    (i1310[8] ≥ 0∧i2872[8] + [-2] + [-1]i1310[8] ≥ 0 ⇒ (UIncreasing(JMP5679'(i1310[9], i1310[9], i1310[9], -(i2872[9], i1310[9]), i1310[9])), ≥)∧[(-1)Bound*bni_66] + [bni_66]i2872[8] ≥ 0∧[1 + (-1)bso_67] ≥ 0)

We simplified constraint (108) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

(109)    (i1310[8] ≥ 0∧i2872[8] ≥ 0 ⇒ (UIncreasing(JMP5679'(i1310[9], i1310[9], i1310[9], -(i2872[9], i1310[9]), i1310[9])), ≥)∧[(-1)Bound*bni_66 + (2)bni_66] + [bni_66]i1310[8] + [bni_66]i2872[8] ≥ 0∧[1 + (-1)bso_67] ≥ 0)

• We consider the chain JMP5679'(i1310[8], i1310[8], i1310[8], i2872[8], i1310[8]) → COND_JMP56791(&&(>(i1310[8], 0), >(i2872[8], i1310[8])), i1310[8], i1310[8], i1310[8], i2872[8], i1310[8]), COND_JMP56791(TRUE, i1310[9], i1310[9], i1310[9], i2872[9], i1310[9]) → JMP5679'(i1310[9], i1310[9], i1310[9], -(i2872[9], i1310[9]), i1310[9]), JMP5679'(i1310[8], i1310[8], i1310[8], i2872[8], i1310[8]) → COND_JMP56791(&&(>(i1310[8], 0), >(i2872[8], i1310[8])), i1310[8], i1310[8], i1310[8], i2872[8], i1310[8]) which results in the following constraint:

(110)    (&&(>(i1310[8], 0), >(i2872[8], i1310[8]))=TRUEi2872[8]=i2872[9]i1310[8]=i1310[9]-(i2872[9], i1310[9])=i2872[8]1i1310[9]=i1310[8]1COND_JMP56791(TRUE, i1310[9], i1310[9], i1310[9], i2872[9], i1310[9])≥NonInfC∧COND_JMP56791(TRUE, i1310[9], i1310[9], i1310[9], i2872[9], i1310[9])≥JMP5679'(i1310[9], i1310[9], i1310[9], -(i2872[9], i1310[9]), i1310[9])∧(UIncreasing(JMP5679'(i1310[9], i1310[9], i1310[9], -(i2872[9], i1310[9]), i1310[9])), ≥))

We simplified constraint (110) using rules (III), (IV), (IDP_BOOLEAN) which results in the following new constraint:

(111)    (>(i1310[8], 0)=TRUE>(i2872[8], i1310[8])=TRUECOND_JMP56791(TRUE, i1310[8], i1310[8], i1310[8], i2872[8], i1310[8])≥NonInfC∧COND_JMP56791(TRUE, i1310[8], i1310[8], i1310[8], i2872[8], i1310[8])≥JMP5679'(i1310[8], i1310[8], i1310[8], -(i2872[8], i1310[8]), i1310[8])∧(UIncreasing(JMP5679'(i1310[9], i1310[9], i1310[9], -(i2872[9], i1310[9]), i1310[9])), ≥))

We simplified constraint (111) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

(112)    (i1310[8] + [-1] ≥ 0∧i2872[8] + [-1] + [-1]i1310[8] ≥ 0 ⇒ (UIncreasing(JMP5679'(i1310[9], i1310[9], i1310[9], -(i2872[9], i1310[9]), i1310[9])), ≥)∧[(-1)Bound*bni_66] + [bni_66]i2872[8] ≥ 0∧[1 + (-1)bso_67] ≥ 0)

We simplified constraint (112) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

(113)    (i1310[8] + [-1] ≥ 0∧i2872[8] + [-1] + [-1]i1310[8] ≥ 0 ⇒ (UIncreasing(JMP5679'(i1310[9], i1310[9], i1310[9], -(i2872[9], i1310[9]), i1310[9])), ≥)∧[(-1)Bound*bni_66] + [bni_66]i2872[8] ≥ 0∧[1 + (-1)bso_67] ≥ 0)

We simplified constraint (113) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

(114)    (i1310[8] + [-1] ≥ 0∧i2872[8] + [-1] + [-1]i1310[8] ≥ 0 ⇒ (UIncreasing(JMP5679'(i1310[9], i1310[9], i1310[9], -(i2872[9], i1310[9]), i1310[9])), ≥)∧[(-1)Bound*bni_66] + [bni_66]i2872[8] ≥ 0∧[1 + (-1)bso_67] ≥ 0)

We simplified constraint (114) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

(115)    (i1310[8] ≥ 0∧i2872[8] + [-2] + [-1]i1310[8] ≥ 0 ⇒ (UIncreasing(JMP5679'(i1310[9], i1310[9], i1310[9], -(i2872[9], i1310[9]), i1310[9])), ≥)∧[(-1)Bound*bni_66] + [bni_66]i2872[8] ≥ 0∧[1 + (-1)bso_67] ≥ 0)

We simplified constraint (115) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

(116)    (i1310[8] ≥ 0∧i2872[8] ≥ 0 ⇒ (UIncreasing(JMP5679'(i1310[9], i1310[9], i1310[9], -(i2872[9], i1310[9]), i1310[9])), ≥)∧[(-1)Bound*bni_66 + (2)bni_66] + [bni_66]i1310[8] + [bni_66]i2872[8] ≥ 0∧[1 + (-1)bso_67] ≥ 0)

For Pair JMP2949'(i277, i1310) → COND_JMP29493(&&(&&(>(i1310, 0), >(-(i277, i1310), i1310)), >(i277, i1310)), i277, i1310) the following chains were created:
• We consider the chain JMP2949'(i277[10], i1310[10]) → COND_JMP29493(&&(&&(>(i1310[10], 0), >(-(i277[10], i1310[10]), i1310[10])), >(i277[10], i1310[10])), i277[10], i1310[10]), COND_JMP29493(TRUE, i277[11], i1310[11]) → JMP5679'(i1310[11], i1310[11], i1310[11], -(-(i277[11], i1310[11]), i1310[11]), i1310[11]) which results in the following constraint:

(117)    (i277[10]=i277[11]i1310[10]=i1310[11]&&(&&(>(i1310[10], 0), >(-(i277[10], i1310[10]), i1310[10])), >(i277[10], i1310[10]))=TRUEJMP2949'(i277[10], i1310[10])≥NonInfC∧JMP2949'(i277[10], i1310[10])≥COND_JMP29493(&&(&&(>(i1310[10], 0), >(-(i277[10], i1310[10]), i1310[10])), >(i277[10], i1310[10])), i277[10], i1310[10])∧(UIncreasing(COND_JMP29493(&&(&&(>(i1310[10], 0), >(-(i277[10], i1310[10]), i1310[10])), >(i277[10], i1310[10])), i277[10], i1310[10])), ≥))

We simplified constraint (117) using rules (IV), (IDP_BOOLEAN) which results in the following new constraint:

(118)    (>(i277[10], i1310[10])=TRUE>(i1310[10], 0)=TRUE>(-(i277[10], i1310[10]), i1310[10])=TRUEJMP2949'(i277[10], i1310[10])≥NonInfC∧JMP2949'(i277[10], i1310[10])≥COND_JMP29493(&&(&&(>(i1310[10], 0), >(-(i277[10], i1310[10]), i1310[10])), >(i277[10], i1310[10])), i277[10], i1310[10])∧(UIncreasing(COND_JMP29493(&&(&&(>(i1310[10], 0), >(-(i277[10], i1310[10]), i1310[10])), >(i277[10], i1310[10])), i277[10], i1310[10])), ≥))

We simplified constraint (118) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

(119)    (i277[10] + [-1] + [-1]i1310[10] ≥ 0∧i1310[10] + [-1] ≥ 0∧i277[10] + [-1] + [-2]i1310[10] ≥ 0 ⇒ (UIncreasing(COND_JMP29493(&&(&&(>(i1310[10], 0), >(-(i277[10], i1310[10]), i1310[10])), >(i277[10], i1310[10])), i277[10], i1310[10])), ≥)∧[(-1)bni_68 + (-1)Bound*bni_68] + [bni_68]i1310[10] + [bni_68]i277[10] ≥ 0∧[-2 + (-1)bso_69] + [2]i1310[10] ≥ 0)

We simplified constraint (119) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

(120)    (i277[10] + [-1] + [-1]i1310[10] ≥ 0∧i1310[10] + [-1] ≥ 0∧i277[10] + [-1] + [-2]i1310[10] ≥ 0 ⇒ (UIncreasing(COND_JMP29493(&&(&&(>(i1310[10], 0), >(-(i277[10], i1310[10]), i1310[10])), >(i277[10], i1310[10])), i277[10], i1310[10])), ≥)∧[(-1)bni_68 + (-1)Bound*bni_68] + [bni_68]i1310[10] + [bni_68]i277[10] ≥ 0∧[-2 + (-1)bso_69] + [2]i1310[10] ≥ 0)

We simplified constraint (120) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

(121)    (i277[10] + [-1] + [-1]i1310[10] ≥ 0∧i1310[10] + [-1] ≥ 0∧i277[10] + [-1] + [-2]i1310[10] ≥ 0 ⇒ (UIncreasing(COND_JMP29493(&&(&&(>(i1310[10], 0), >(-(i277[10], i1310[10]), i1310[10])), >(i277[10], i1310[10])), i277[10], i1310[10])), ≥)∧[(-1)bni_68 + (-1)Bound*bni_68] + [bni_68]i1310[10] + [bni_68]i277[10] ≥ 0∧[-2 + (-1)bso_69] + [2]i1310[10] ≥ 0)

We simplified constraint (121) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

(122)    (i277[10] ≥ 0∧i1310[10] + [-1] ≥ 0∧[-1]i1310[10] + i277[10] ≥ 0 ⇒ (UIncreasing(COND_JMP29493(&&(&&(>(i1310[10], 0), >(-(i277[10], i1310[10]), i1310[10])), >(i277[10], i1310[10])), i277[10], i1310[10])), ≥)∧[(-1)Bound*bni_68] + [(2)bni_68]i1310[10] + [bni_68]i277[10] ≥ 0∧[-2 + (-1)bso_69] + [2]i1310[10] ≥ 0)

We simplified constraint (122) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

(123)    (i277[10] ≥ 0∧i1310[10] ≥ 0∧[-1] + [-1]i1310[10] + i277[10] ≥ 0 ⇒ (UIncreasing(COND_JMP29493(&&(&&(>(i1310[10], 0), >(-(i277[10], i1310[10]), i1310[10])), >(i277[10], i1310[10])), i277[10], i1310[10])), ≥)∧[(-1)Bound*bni_68 + (2)bni_68] + [(2)bni_68]i1310[10] + [bni_68]i277[10] ≥ 0∧[(-1)bso_69] + [2]i1310[10] ≥ 0)

We simplified constraint (123) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

(124)    ([1] + i1310[10] + i277[10] ≥ 0∧i1310[10] ≥ 0∧i277[10] ≥ 0 ⇒ (UIncreasing(COND_JMP29493(&&(&&(>(i1310[10], 0), >(-(i277[10], i1310[10]), i1310[10])), >(i277[10], i1310[10])), i277[10], i1310[10])), ≥)∧[(-1)Bound*bni_68 + (3)bni_68] + [(3)bni_68]i1310[10] + [bni_68]i277[10] ≥ 0∧[(-1)bso_69] + [2]i1310[10] ≥ 0)

For Pair COND_JMP29493(TRUE, i277, i1310) → JMP5679'(i1310, i1310, i1310, -(-(i277, i1310), i1310), i1310) the following chains were created:
• We consider the chain JMP2949'(i277[10], i1310[10]) → COND_JMP29493(&&(&&(>(i1310[10], 0), >(-(i277[10], i1310[10]), i1310[10])), >(i277[10], i1310[10])), i277[10], i1310[10]), COND_JMP29493(TRUE, i277[11], i1310[11]) → JMP5679'(i1310[11], i1310[11], i1310[11], -(-(i277[11], i1310[11]), i1310[11]), i1310[11]), JMP5679'(i1310[2], i1310[2], i1310[2], i2872[2], i1310[2]) → COND_JMP5679(&&(>(i1310[2], 0), <=(i2872[2], i1310[2])), i1310[2], i1310[2], i1310[2], i2872[2], i1310[2]) which results in the following constraint:

(125)    (i277[10]=i277[11]i1310[10]=i1310[11]&&(&&(>(i1310[10], 0), >(-(i277[10], i1310[10]), i1310[10])), >(i277[10], i1310[10]))=TRUEi1310[11]=i1310[2]-(-(i277[11], i1310[11]), i1310[11])=i2872[2]COND_JMP29493(TRUE, i277[11], i1310[11])≥NonInfC∧COND_JMP29493(TRUE, i277[11], i1310[11])≥JMP5679'(i1310[11], i1310[11], i1310[11], -(-(i277[11], i1310[11]), i1310[11]), i1310[11])∧(UIncreasing(JMP5679'(i1310[11], i1310[11], i1310[11], -(-(i277[11], i1310[11]), i1310[11]), i1310[11])), ≥))

We simplified constraint (125) using rules (III), (IV), (IDP_BOOLEAN) which results in the following new constraint:

(126)    (>(i277[10], i1310[10])=TRUE>(i1310[10], 0)=TRUE>(-(i277[10], i1310[10]), i1310[10])=TRUECOND_JMP29493(TRUE, i277[10], i1310[10])≥NonInfC∧COND_JMP29493(TRUE, i277[10], i1310[10])≥JMP5679'(i1310[10], i1310[10], i1310[10], -(-(i277[10], i1310[10]), i1310[10]), i1310[10])∧(UIncreasing(JMP5679'(i1310[11], i1310[11], i1310[11], -(-(i277[11], i1310[11]), i1310[11]), i1310[11])), ≥))

We simplified constraint (126) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

(127)    (i277[10] + [-1] + [-1]i1310[10] ≥ 0∧i1310[10] + [-1] ≥ 0∧i277[10] + [-1] + [-2]i1310[10] ≥ 0 ⇒ (UIncreasing(JMP5679'(i1310[11], i1310[11], i1310[11], -(-(i277[11], i1310[11]), i1310[11]), i1310[11])), ≥)∧[bni_70 + (-1)Bound*bni_70] + [(-1)bni_70]i1310[10] + [bni_70]i277[10] ≥ 0∧[2 + (-1)bso_71] ≥ 0)

We simplified constraint (127) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

(128)    (i277[10] + [-1] + [-1]i1310[10] ≥ 0∧i1310[10] + [-1] ≥ 0∧i277[10] + [-1] + [-2]i1310[10] ≥ 0 ⇒ (UIncreasing(JMP5679'(i1310[11], i1310[11], i1310[11], -(-(i277[11], i1310[11]), i1310[11]), i1310[11])), ≥)∧[bni_70 + (-1)Bound*bni_70] + [(-1)bni_70]i1310[10] + [bni_70]i277[10] ≥ 0∧[2 + (-1)bso_71] ≥ 0)

We simplified constraint (128) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

(129)    (i277[10] + [-1] + [-1]i1310[10] ≥ 0∧i1310[10] + [-1] ≥ 0∧i277[10] + [-1] + [-2]i1310[10] ≥ 0 ⇒ (UIncreasing(JMP5679'(i1310[11], i1310[11], i1310[11], -(-(i277[11], i1310[11]), i1310[11]), i1310[11])), ≥)∧[bni_70 + (-1)Bound*bni_70] + [(-1)bni_70]i1310[10] + [bni_70]i277[10] ≥ 0∧[2 + (-1)bso_71] ≥ 0)

We simplified constraint (129) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

(130)    (i277[10] ≥ 0∧i1310[10] + [-1] ≥ 0∧[-1]i1310[10] + i277[10] ≥ 0 ⇒ (UIncreasing(JMP5679'(i1310[11], i1310[11], i1310[11], -(-(i277[11], i1310[11]), i1310[11]), i1310[11])), ≥)∧[(2)bni_70 + (-1)Bound*bni_70] + [bni_70]i277[10] ≥ 0∧[2 + (-1)bso_71] ≥ 0)

We simplified constraint (130) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

(131)    (i277[10] ≥ 0∧i1310[10] ≥ 0∧[-1] + [-1]i1310[10] + i277[10] ≥ 0 ⇒ (UIncreasing(JMP5679'(i1310[11], i1310[11], i1310[11], -(-(i277[11], i1310[11]), i1310[11]), i1310[11])), ≥)∧[(-1)Bound*bni_70 + (2)bni_70] + [bni_70]i277[10] ≥ 0∧[2 + (-1)bso_71] ≥ 0)

We simplified constraint (131) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

(132)    ([1] + i1310[10] + i277[10] ≥ 0∧i1310[10] ≥ 0∧i277[10] ≥ 0 ⇒ (UIncreasing(JMP5679'(i1310[11], i1310[11], i1310[11], -(-(i277[11], i1310[11]), i1310[11]), i1310[11])), ≥)∧[(-1)Bound*bni_70 + (3)bni_70] + [bni_70]i1310[10] + [bni_70]i277[10] ≥ 0∧[2 + (-1)bso_71] ≥ 0)

• We consider the chain JMP2949'(i277[10], i1310[10]) → COND_JMP29493(&&(&&(>(i1310[10], 0), >(-(i277[10], i1310[10]), i1310[10])), >(i277[10], i1310[10])), i277[10], i1310[10]), COND_JMP29493(TRUE, i277[11], i1310[11]) → JMP5679'(i1310[11], i1310[11], i1310[11], -(-(i277[11], i1310[11]), i1310[11]), i1310[11]), JMP5679'(i1310[8], i1310[8], i1310[8], i2872[8], i1310[8]) → COND_JMP56791(&&(>(i1310[8], 0), >(i2872[8], i1310[8])), i1310[8], i1310[8], i1310[8], i2872[8], i1310[8]) which results in the following constraint:

(133)    (i277[10]=i277[11]i1310[10]=i1310[11]&&(&&(>(i1310[10], 0), >(-(i277[10], i1310[10]), i1310[10])), >(i277[10], i1310[10]))=TRUE-(-(i277[11], i1310[11]), i1310[11])=i2872[8]i1310[11]=i1310[8]COND_JMP29493(TRUE, i277[11], i1310[11])≥NonInfC∧COND_JMP29493(TRUE, i277[11], i1310[11])≥JMP5679'(i1310[11], i1310[11], i1310[11], -(-(i277[11], i1310[11]), i1310[11]), i1310[11])∧(UIncreasing(JMP5679'(i1310[11], i1310[11], i1310[11], -(-(i277[11], i1310[11]), i1310[11]), i1310[11])), ≥))

We simplified constraint (133) using rules (III), (IV), (IDP_BOOLEAN) which results in the following new constraint:

(134)    (>(i277[10], i1310[10])=TRUE>(i1310[10], 0)=TRUE>(-(i277[10], i1310[10]), i1310[10])=TRUECOND_JMP29493(TRUE, i277[10], i1310[10])≥NonInfC∧COND_JMP29493(TRUE, i277[10], i1310[10])≥JMP5679'(i1310[10], i1310[10], i1310[10], -(-(i277[10], i1310[10]), i1310[10]), i1310[10])∧(UIncreasing(JMP5679'(i1310[11], i1310[11], i1310[11], -(-(i277[11], i1310[11]), i1310[11]), i1310[11])), ≥))

We simplified constraint (134) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

(135)    (i277[10] + [-1] + [-1]i1310[10] ≥ 0∧i1310[10] + [-1] ≥ 0∧i277[10] + [-1] + [-2]i1310[10] ≥ 0 ⇒ (UIncreasing(JMP5679'(i1310[11], i1310[11], i1310[11], -(-(i277[11], i1310[11]), i1310[11]), i1310[11])), ≥)∧[bni_70 + (-1)Bound*bni_70] + [(-1)bni_70]i1310[10] + [bni_70]i277[10] ≥ 0∧[2 + (-1)bso_71] ≥ 0)

We simplified constraint (135) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

(136)    (i277[10] + [-1] + [-1]i1310[10] ≥ 0∧i1310[10] + [-1] ≥ 0∧i277[10] + [-1] + [-2]i1310[10] ≥ 0 ⇒ (UIncreasing(JMP5679'(i1310[11], i1310[11], i1310[11], -(-(i277[11], i1310[11]), i1310[11]), i1310[11])), ≥)∧[bni_70 + (-1)Bound*bni_70] + [(-1)bni_70]i1310[10] + [bni_70]i277[10] ≥ 0∧[2 + (-1)bso_71] ≥ 0)

We simplified constraint (136) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

(137)    (i277[10] + [-1] + [-1]i1310[10] ≥ 0∧i1310[10] + [-1] ≥ 0∧i277[10] + [-1] + [-2]i1310[10] ≥ 0 ⇒ (UIncreasing(JMP5679'(i1310[11], i1310[11], i1310[11], -(-(i277[11], i1310[11]), i1310[11]), i1310[11])), ≥)∧[bni_70 + (-1)Bound*bni_70] + [(-1)bni_70]i1310[10] + [bni_70]i277[10] ≥ 0∧[2 + (-1)bso_71] ≥ 0)

We simplified constraint (137) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

(138)    (i277[10] ≥ 0∧i1310[10] + [-1] ≥ 0∧[-1]i1310[10] + i277[10] ≥ 0 ⇒ (UIncreasing(JMP5679'(i1310[11], i1310[11], i1310[11], -(-(i277[11], i1310[11]), i1310[11]), i1310[11])), ≥)∧[(2)bni_70 + (-1)Bound*bni_70] + [bni_70]i277[10] ≥ 0∧[2 + (-1)bso_71] ≥ 0)

We simplified constraint (138) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

(139)    (i277[10] ≥ 0∧i1310[10] ≥ 0∧[-1] + [-1]i1310[10] + i277[10] ≥ 0 ⇒ (UIncreasing(JMP5679'(i1310[11], i1310[11], i1310[11], -(-(i277[11], i1310[11]), i1310[11]), i1310[11])), ≥)∧[(-1)Bound*bni_70 + (2)bni_70] + [bni_70]i277[10] ≥ 0∧[2 + (-1)bso_71] ≥ 0)

We simplified constraint (139) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

(140)    ([1] + i1310[10] + i277[10] ≥ 0∧i1310[10] ≥ 0∧i277[10] ≥ 0 ⇒ (UIncreasing(JMP5679'(i1310[11], i1310[11], i1310[11], -(-(i277[11], i1310[11]), i1310[11]), i1310[11])), ≥)∧[(-1)Bound*bni_70 + (3)bni_70] + [bni_70]i1310[10] + [bni_70]i277[10] ≥ 0∧[2 + (-1)bso_71] ≥ 0)

To summarize, we get the following constraints P for the following pairs.
• JMP2949'(i277, i1310) → COND_JMP2949(&&(&&(>(i277, 0), <(i277, i1310)), !(=(i1310, 0))), i277, i1310)
• (i277[0] ≥ 0∧i1310[0] ≥ 0∧[1] + i277[0] + i1310[0] ≥ 0 ⇒ (UIncreasing(COND_JMP2949(&&(&&(>(i277[0], 0), <(i277[0], i1310[0])), !(=(i1310[0], 0))), i277[0], i1310[0])), ≥)∧[(2)bni_48 + (-1)Bound*bni_48] + [(2)bni_48]i277[0] + [bni_48]i1310[0] ≥ 0∧[(-1)bso_49] ≥ 0)

• COND_JMP2949(TRUE, i277, i1310) → JMP2949'(i1310, i277)
• ((UIncreasing(JMP2949'(i1310[1], i277[1])), ≥)∧0 = 0∧0 = 0∧[(-1)bso_51] ≥ 0)
• ((UIncreasing(JMP2949'(i1310[1], i277[1])), ≥)∧0 = 0∧0 = 0∧[(-1)bso_51] ≥ 0)
• ((UIncreasing(JMP2949'(i1310[1], i277[1])), ≥)∧0 = 0∧[(-1)bso_51] ≥ 0)
• ((UIncreasing(JMP2949'(i1310[1], i277[1])), ≥)∧0 = 0∧0 = 0∧[(-1)bso_51] ≥ 0)

• JMP5679'(i1310, i1310, i1310, i2872, i1310) → COND_JMP5679(&&(>(i1310, 0), <=(i2872, i1310)), i1310, i1310, i1310, i2872, i1310)
• (i1310[2] ≥ 0∧[1] + i1310[2] + [-1]i2872[2] ≥ 0∧i2872[2] ≥ 0 ⇒ (UIncreasing(COND_JMP5679(&&(>(i1310[2], 0), <=(i2872[2], i1310[2])), i1310[2], i1310[2], i1310[2], i2872[2], i1310[2])), ≥)∧[(-1)Bound*bni_52] + [bni_52]i1310[2] + [bni_52]i2872[2] ≥ 0∧[(-1)bso_53] ≥ 0)
• (i1310[2] ≥ 0∧[1] + i1310[2] + i2872[2] ≥ 0∧i2872[2] ≥ 0 ⇒ (UIncreasing(COND_JMP5679(&&(>(i1310[2], 0), <=(i2872[2], i1310[2])), i1310[2], i1310[2], i1310[2], i2872[2], i1310[2])), ≥)∧[(-1)Bound*bni_52] + [bni_52]i1310[2] + [(-1)bni_52]i2872[2] ≥ 0∧[(-1)bso_53] ≥ 0)

• COND_JMP5679(TRUE, i1310, i1310, i1310, i2872, i1310) → JMP2949'(i1310, i2872)
• ((UIncreasing(JMP2949'(i1310[3], i2872[3])), ≥)∧0 = 0∧0 = 0∧[(-1)bso_55] ≥ 0)
• ((UIncreasing(JMP2949'(i1310[3], i2872[3])), ≥)∧0 = 0∧0 = 0∧[(-1)bso_55] ≥ 0)
• ((UIncreasing(JMP2949'(i1310[3], i2872[3])), ≥)∧0 = 0∧[(-1)bso_55] ≥ 0)
• ((UIncreasing(JMP2949'(i1310[3], i2872[3])), ≥)∧0 = 0∧0 = 0∧[(-1)bso_55] ≥ 0)

• JMP2949'(i277, i1310) → COND_JMP29491(&&(&&(>(i1310, 0), <=(-(i277, i1310), i1310)), >(i277, i1310)), i277, i1310)
• (i277[4] ≥ 0∧i277[4] + i1310[4] ≥ 0∧i1310[4] ≥ 0 ⇒ (UIncreasing(COND_JMP29491(&&(&&(>(i1310[4], 0), <=(-(i277[4], i1310[4]), i1310[4])), >(i277[4], i1310[4])), i277[4], i1310[4])), ≥)∧[(-1)Bound*bni_56 + (2)bni_56] + [(3)bni_56]i277[4] + [(2)bni_56]i1310[4] ≥ 0∧[1 + (-1)bso_57] + i277[4] ≥ 0)

• COND_JMP29491(TRUE, i277, i1310) → JMP2949'(i1310, -(i277, i1310))
• (i277[4] ≥ 0∧i277[4] + i1310[4] ≥ 0∧i1310[4] ≥ 0 ⇒ (UIncreasing(JMP2949'(i1310[5], -(i277[5], i1310[5]))), ≥)∧[bni_58 + (-1)Bound*bni_58] + [(2)bni_58]i277[4] + [(2)bni_58]i1310[4] ≥ 0∧[(-1)bso_59] + i1310[4] ≥ 0)

• JMP2949'(i1310, i1310) → COND_JMP29492(>(i1310, 0), i1310, i1310)
• (i1310[6] ≥ 0 ⇒ (UIncreasing(COND_JMP29492(>(i1310[6], 0), i1310[6], i1310[6])), ≥)∧[bni_60 + (-1)Bound*bni_60] + [(2)bni_60]i1310[6] ≥ 0∧[(-1)bso_61] ≥ 0)

• COND_JMP29492(TRUE, i1310, i1310) → JMP2949'(i1310, 0)
• (i1310[6] ≥ 0 ⇒ (UIncreasing(JMP2949'(i1310[7], 0)), ≥)∧[bni_62 + (-1)Bound*bni_62] + [(2)bni_62]i1310[6] ≥ 0∧[1 + (-1)bso_63] + i1310[6] ≥ 0)

• JMP5679'(i1310, i1310, i1310, i2872, i1310) → COND_JMP56791(&&(>(i1310, 0), >(i2872, i1310)), i1310, i1310, i1310, i2872, i1310)
• (i1310[8] ≥ 0∧i2872[8] ≥ 0 ⇒ (UIncreasing(COND_JMP56791(&&(>(i1310[8], 0), >(i2872[8], i1310[8])), i1310[8], i1310[8], i1310[8], i2872[8], i1310[8])), ≥)∧[(-1)Bound*bni_64 + (2)bni_64] + [(2)bni_64]i1310[8] + [bni_64]i2872[8] ≥ 0∧[(-1)bso_65] + i1310[8] ≥ 0)

• COND_JMP56791(TRUE, i1310, i1310, i1310, i2872, i1310) → JMP5679'(i1310, i1310, i1310, -(i2872, i1310), i1310)
• (i1310[8] ≥ 0∧i2872[8] ≥ 0 ⇒ (UIncreasing(JMP5679'(i1310[9], i1310[9], i1310[9], -(i2872[9], i1310[9]), i1310[9])), ≥)∧[(-1)Bound*bni_66 + (2)bni_66] + [bni_66]i1310[8] + [bni_66]i2872[8] ≥ 0∧[1 + (-1)bso_67] ≥ 0)
• (i1310[8] ≥ 0∧i2872[8] ≥ 0 ⇒ (UIncreasing(JMP5679'(i1310[9], i1310[9], i1310[9], -(i2872[9], i1310[9]), i1310[9])), ≥)∧[(-1)Bound*bni_66 + (2)bni_66] + [bni_66]i1310[8] + [bni_66]i2872[8] ≥ 0∧[1 + (-1)bso_67] ≥ 0)

• JMP2949'(i277, i1310) → COND_JMP29493(&&(&&(>(i1310, 0), >(-(i277, i1310), i1310)), >(i277, i1310)), i277, i1310)
• ([1] + i1310[10] + i277[10] ≥ 0∧i1310[10] ≥ 0∧i277[10] ≥ 0 ⇒ (UIncreasing(COND_JMP29493(&&(&&(>(i1310[10], 0), >(-(i277[10], i1310[10]), i1310[10])), >(i277[10], i1310[10])), i277[10], i1310[10])), ≥)∧[(-1)Bound*bni_68 + (3)bni_68] + [(3)bni_68]i1310[10] + [bni_68]i277[10] ≥ 0∧[(-1)bso_69] + [2]i1310[10] ≥ 0)

• COND_JMP29493(TRUE, i277, i1310) → JMP5679'(i1310, i1310, i1310, -(-(i277, i1310), i1310), i1310)
• ([1] + i1310[10] + i277[10] ≥ 0∧i1310[10] ≥ 0∧i277[10] ≥ 0 ⇒ (UIncreasing(JMP5679'(i1310[11], i1310[11], i1310[11], -(-(i277[11], i1310[11]), i1310[11]), i1310[11])), ≥)∧[(-1)Bound*bni_70 + (3)bni_70] + [bni_70]i1310[10] + [bni_70]i277[10] ≥ 0∧[2 + (-1)bso_71] ≥ 0)
• ([1] + i1310[10] + i277[10] ≥ 0∧i1310[10] ≥ 0∧i277[10] ≥ 0 ⇒ (UIncreasing(JMP5679'(i1310[11], i1310[11], i1310[11], -(-(i277[11], i1310[11]), i1310[11]), i1310[11])), ≥)∧[(-1)Bound*bni_70 + (3)bni_70] + [bni_70]i1310[10] + [bni_70]i277[10] ≥ 0∧[2 + (-1)bso_71] ≥ 0)

The constraints for P> respective Pbound are constructed from P where we just replace every occurence of "t ≥ s" in P by "t > s" respective "t ≥ c". Here c stands for the fresh constant used for Pbound.
Using the following integer polynomial ordering the resulting constraints can be solved
Polynomial interpretation over integers[POLO]:

POL(TRUE) = 0
POL(FALSE) = 0
POL(JMP2949'(x1, x2)) = [-1] + x2 + x1
POL(COND_JMP2949(x1, x2, x3)) = [-1] + x3 + x2 + [2]x1
POL(&&(x1, x2)) = 0
POL(>(x1, x2)) = [-1]
POL(0) = 0
POL(<(x1, x2)) = [-1]
POL(!(x1)) = [-1]
POL(=(x1, x2)) = [-1]
POL(JMP5679'(x1, x2, x3, x4, x5)) = [-1] + x5 + x4 + [-1]x3 + x2
POL(COND_JMP5679(x1, x2, x3, x4, x5, x6)) = [-1] + [-1]x6 + x5 + [2]x4 + [-1]x3 + x2 + [2]x1
POL(<=(x1, x2)) = [-1]
POL(COND_JMP29491(x1, x2, x3)) = [-1] + [2]x3 + [-1]x1
POL(-(x1, x2)) = x1 + [-1]x2
POL(COND_JMP29492(x1, x2, x3)) = [-1] + x3 + x2
POL(COND_JMP56791(x1, x2, x3, x4, x5, x6)) = x5 + [-1]x1
POL(COND_JMP29493(x1, x2, x3)) = [1] + [-1]x3 + x2

The following pairs are in P>:

JMP2949'(i277[4], i1310[4]) → COND_JMP29491(&&(&&(>(i1310[4], 0), <=(-(i277[4], i1310[4]), i1310[4])), >(i277[4], i1310[4])), i277[4], i1310[4])
COND_JMP29492(TRUE, i1310[7], i1310[7]) → JMP2949'(i1310[7], 0)
COND_JMP56791(TRUE, i1310[9], i1310[9], i1310[9], i2872[9], i1310[9]) → JMP5679'(i1310[9], i1310[9], i1310[9], -(i2872[9], i1310[9]), i1310[9])
COND_JMP29493(TRUE, i277[11], i1310[11]) → JMP5679'(i1310[11], i1310[11], i1310[11], -(-(i277[11], i1310[11]), i1310[11]), i1310[11])

The following pairs are in Pbound:

JMP2949'(i277[0], i1310[0]) → COND_JMP2949(&&(&&(>(i277[0], 0), <(i277[0], i1310[0])), !(=(i1310[0], 0))), i277[0], i1310[0])
JMP2949'(i277[4], i1310[4]) → COND_JMP29491(&&(&&(>(i1310[4], 0), <=(-(i277[4], i1310[4]), i1310[4])), >(i277[4], i1310[4])), i277[4], i1310[4])
COND_JMP29491(TRUE, i277[5], i1310[5]) → JMP2949'(i1310[5], -(i277[5], i1310[5]))
JMP2949'(i1310[6], i1310[6]) → COND_JMP29492(>(i1310[6], 0), i1310[6], i1310[6])
COND_JMP29492(TRUE, i1310[7], i1310[7]) → JMP2949'(i1310[7], 0)
JMP5679'(i1310[8], i1310[8], i1310[8], i2872[8], i1310[8]) → COND_JMP56791(&&(>(i1310[8], 0), >(i2872[8], i1310[8])), i1310[8], i1310[8], i1310[8], i2872[8], i1310[8])
COND_JMP56791(TRUE, i1310[9], i1310[9], i1310[9], i2872[9], i1310[9]) → JMP5679'(i1310[9], i1310[9], i1310[9], -(i2872[9], i1310[9]), i1310[9])
JMP2949'(i277[10], i1310[10]) → COND_JMP29493(&&(&&(>(i1310[10], 0), >(-(i277[10], i1310[10]), i1310[10])), >(i277[10], i1310[10])), i277[10], i1310[10])
COND_JMP29493(TRUE, i277[11], i1310[11]) → JMP5679'(i1310[11], i1310[11], i1310[11], -(-(i277[11], i1310[11]), i1310[11]), i1310[11])

The following pairs are in P:

JMP2949'(i277[0], i1310[0]) → COND_JMP2949(&&(&&(>(i277[0], 0), <(i277[0], i1310[0])), !(=(i1310[0], 0))), i277[0], i1310[0])
COND_JMP2949(TRUE, i277[1], i1310[1]) → JMP2949'(i1310[1], i277[1])
JMP5679'(i1310[2], i1310[2], i1310[2], i2872[2], i1310[2]) → COND_JMP5679(&&(>(i1310[2], 0), <=(i2872[2], i1310[2])), i1310[2], i1310[2], i1310[2], i2872[2], i1310[2])
COND_JMP5679(TRUE, i1310[3], i1310[3], i1310[3], i2872[3], i1310[3]) → JMP2949'(i1310[3], i2872[3])
COND_JMP29491(TRUE, i277[5], i1310[5]) → JMP2949'(i1310[5], -(i277[5], i1310[5]))
JMP2949'(i1310[6], i1310[6]) → COND_JMP29492(>(i1310[6], 0), i1310[6], i1310[6])
JMP5679'(i1310[8], i1310[8], i1310[8], i2872[8], i1310[8]) → COND_JMP56791(&&(>(i1310[8], 0), >(i2872[8], i1310[8])), i1310[8], i1310[8], i1310[8], i2872[8], i1310[8])
JMP2949'(i277[10], i1310[10]) → COND_JMP29493(&&(&&(>(i1310[10], 0), >(-(i277[10], i1310[10]), i1310[10])), >(i277[10], i1310[10])), i277[10], i1310[10])

At least the following rules have been oriented under context sensitive arithmetic replacement:

&&(TRUE, TRUE)1TRUE1
&&(TRUE, FALSE)1FALSE1
&&(FALSE, TRUE)1FALSE1
&&(FALSE, FALSE)1FALSE1

### (12) Obligation:

IDP problem:
The following function symbols are pre-defined:
 != ~ 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

The following domains are used:

Boolean, Integer

R is empty.

The integer pair graph contains the following rules and edges:
(0): JMP2949'(i277[0], i1310[0]) → COND_JMP2949(i277[0] > 0 && i277[0] < i1310[0] && !(i1310[0] = 0), i277[0], i1310[0])
(1): COND_JMP2949(TRUE, i277[1], i1310[1]) → JMP2949'(i1310[1], i277[1])
(2): JMP5679'(i1310[2], i1310[2], i1310[2], i2872[2], i1310[2]) → COND_JMP5679(i1310[2] > 0 && i2872[2] <= i1310[2], i1310[2], i1310[2], i1310[2], i2872[2], i1310[2])
(3): COND_JMP5679(TRUE, i1310[3], i1310[3], i1310[3], i2872[3], i1310[3]) → JMP2949'(i1310[3], i2872[3])
(5): COND_JMP29491(TRUE, i277[5], i1310[5]) → JMP2949'(i1310[5], i277[5] - i1310[5])
(6): JMP2949'(i1310[6], i1310[6]) → COND_JMP29492(i1310[6] > 0, i1310[6], i1310[6])
(8): JMP5679'(i1310[8], i1310[8], i1310[8], i2872[8], i1310[8]) → COND_JMP56791(i1310[8] > 0 && i2872[8] > i1310[8], i1310[8], i1310[8], i1310[8], i2872[8], i1310[8])
(10): JMP2949'(i277[10], i1310[10]) → COND_JMP29493(i1310[10] > 0 && i277[10] - i1310[10] > i1310[10] && i277[10] > i1310[10], i277[10], i1310[10])

(1) -> (0), if ((i1310[1]* i277[0])∧(i277[1]* i1310[0]))

(3) -> (0), if ((i1310[3]* i277[0])∧(i2872[3]* i1310[0]))

(5) -> (0), if ((i277[5] - i1310[5]* i1310[0])∧(i1310[5]* i277[0]))

(0) -> (1), if ((i1310[0]* i1310[1])∧(i277[0]* i277[1])∧(i277[0] > 0 && i277[0] < i1310[0] && !(i1310[0] = 0) →* TRUE))

(2) -> (3), if ((i2872[2]* i2872[3])∧(i1310[2]* i1310[3])∧(i1310[2] > 0 && i2872[2] <= i1310[2]* TRUE))

(1) -> (6), if ((i277[1]* i1310[6])∧(i1310[1]* i1310[6]))

(3) -> (6), if ((i1310[3]* i1310[6])∧(i2872[3]* i1310[6]))

(5) -> (6), if ((i1310[5]* i1310[6])∧(i277[5] - i1310[5]* i1310[6]))

(1) -> (10), if ((i277[1]* i1310[10])∧(i1310[1]* i277[10]))

(3) -> (10), if ((i2872[3]* i1310[10])∧(i1310[3]* i277[10]))

(5) -> (10), if ((i1310[5]* i277[10])∧(i277[5] - i1310[5]* i1310[10]))

The set Q consists of the following terms:
JMP2949(x0, x1)
Cond_JMP2949(TRUE, x0, x1)
JMP5679(x0, x0, x0, x1, x0)
Cond_JMP5679(TRUE, x0, x0, x0, x1, x0)
Cond_JMP29491(TRUE, x0, x1)
Cond_JMP29492(TRUE, x0, x0)
Cond_JMP56791(TRUE, x0, x0, x0, x1, x0)
Cond_JMP29493(TRUE, x0, x1)

### (13) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 6 less nodes.

### (14) Obligation:

IDP problem:
The following function symbols are pre-defined:
 != ~ 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

The following domains are used:

Boolean, Integer

R is empty.

The integer pair graph contains the following rules and edges:
(1): COND_JMP2949(TRUE, i277[1], i1310[1]) → JMP2949'(i1310[1], i277[1])
(0): JMP2949'(i277[0], i1310[0]) → COND_JMP2949(i277[0] > 0 && i277[0] < i1310[0] && !(i1310[0] = 0), i277[0], i1310[0])

(1) -> (0), if ((i1310[1]* i277[0])∧(i277[1]* i1310[0]))

(0) -> (1), if ((i1310[0]* i1310[1])∧(i277[0]* i277[1])∧(i277[0] > 0 && i277[0] < i1310[0] && !(i1310[0] = 0) →* TRUE))

The set Q consists of the following terms:
JMP2949(x0, x1)
Cond_JMP2949(TRUE, x0, x1)
JMP5679(x0, x0, x0, x1, x0)
Cond_JMP5679(TRUE, x0, x0, x0, x1, x0)
Cond_JMP29491(TRUE, x0, x1)
Cond_JMP29492(TRUE, x0, x0)
Cond_JMP56791(TRUE, x0, x0, x0, x1, x0)
Cond_JMP29493(TRUE, x0, x1)

### (15) IDPNonInfProof (SOUND transformation)

The constraints were generated the following way:
The DP Problem is simplified using the Induction Calculus [NONINF] with the following steps:
Note that final constraints are written in bold face.

For Pair COND_JMP2949(TRUE, i277[1], i1310[1]) → JMP2949'(i1310[1], i277[1]) the following chains were created:
• We consider the chain JMP2949'(i277[0], i1310[0]) → COND_JMP2949(&&(&&(>(i277[0], 0), <(i277[0], i1310[0])), !(=(i1310[0], 0))), i277[0], i1310[0]), COND_JMP2949(TRUE, i277[1], i1310[1]) → JMP2949'(i1310[1], i277[1]), JMP2949'(i277[0], i1310[0]) → COND_JMP2949(&&(&&(>(i277[0], 0), <(i277[0], i1310[0])), !(=(i1310[0], 0))), i277[0], i1310[0]) which results in the following constraint:

(1)    (i1310[0]=i1310[1]i277[0]=i277[1]&&(&&(>(i277[0], 0), <(i277[0], i1310[0])), !(=(i1310[0], 0)))=TRUEi1310[1]=i277[0]1i277[1]=i1310[0]1COND_JMP2949(TRUE, i277[1], i1310[1])≥NonInfC∧COND_JMP2949(TRUE, i277[1], i1310[1])≥JMP2949'(i1310[1], i277[1])∧(UIncreasing(JMP2949'(i1310[1], i277[1])), ≥))

We simplified constraint (1) using rules (III), (IV), (IDP_BOOLEAN) which results in the following new constraints:

(2)    (>(i277[0], 0)=TRUE<(i277[0], i1310[0])=TRUE<(i1310[0], 0)=TRUECOND_JMP2949(TRUE, i277[0], i1310[0])≥NonInfC∧COND_JMP2949(TRUE, i277[0], i1310[0])≥JMP2949'(i1310[0], i277[0])∧(UIncreasing(JMP2949'(i1310[1], i277[1])), ≥))

(3)    (>(i277[0], 0)=TRUE<(i277[0], i1310[0])=TRUE>(i1310[0], 0)=TRUECOND_JMP2949(TRUE, i277[0], i1310[0])≥NonInfC∧COND_JMP2949(TRUE, i277[0], i1310[0])≥JMP2949'(i1310[0], i277[0])∧(UIncreasing(JMP2949'(i1310[1], i277[1])), ≥))

We simplified constraint (2) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

(4)    (i277[0] + [-1] ≥ 0∧i1310[0] + [-1] + [-1]i277[0] ≥ 0∧[-1] + [-1]i1310[0] ≥ 0 ⇒ (UIncreasing(JMP2949'(i1310[1], i277[1])), ≥)∧[(-1)bni_15 + (-1)Bound*bni_15] ≥ 0∧[-1 + (-1)bso_16] + i1310[0] + [-1]i277[0] ≥ 0)

We simplified constraint (3) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

(5)    (i277[0] + [-1] ≥ 0∧i1310[0] + [-1] + [-1]i277[0] ≥ 0∧i1310[0] + [-1] ≥ 0 ⇒ (UIncreasing(JMP2949'(i1310[1], i277[1])), ≥)∧[(-1)bni_15 + (-1)Bound*bni_15] ≥ 0∧[-1 + (-1)bso_16] + i1310[0] + [-1]i277[0] ≥ 0)

We simplified constraint (4) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

(6)    (i277[0] + [-1] ≥ 0∧i1310[0] + [-1] + [-1]i277[0] ≥ 0∧[-1] + [-1]i1310[0] ≥ 0 ⇒ (UIncreasing(JMP2949'(i1310[1], i277[1])), ≥)∧[(-1)bni_15 + (-1)Bound*bni_15] ≥ 0∧[-1 + (-1)bso_16] + i1310[0] + [-1]i277[0] ≥ 0)

We simplified constraint (5) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

(7)    (i277[0] + [-1] ≥ 0∧i1310[0] + [-1] + [-1]i277[0] ≥ 0∧i1310[0] + [-1] ≥ 0 ⇒ (UIncreasing(JMP2949'(i1310[1], i277[1])), ≥)∧[(-1)bni_15 + (-1)Bound*bni_15] ≥ 0∧[-1 + (-1)bso_16] + i1310[0] + [-1]i277[0] ≥ 0)

We simplified constraint (6) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

(8)    (i277[0] + [-1] ≥ 0∧i1310[0] + [-1] + [-1]i277[0] ≥ 0∧[-1] + [-1]i1310[0] ≥ 0 ⇒ (UIncreasing(JMP2949'(i1310[1], i277[1])), ≥)∧[(-1)bni_15 + (-1)Bound*bni_15] ≥ 0∧[-1 + (-1)bso_16] + i1310[0] + [-1]i277[0] ≥ 0)

We simplified constraint (7) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

(9)    (i277[0] + [-1] ≥ 0∧i1310[0] + [-1] + [-1]i277[0] ≥ 0∧i1310[0] + [-1] ≥ 0 ⇒ (UIncreasing(JMP2949'(i1310[1], i277[1])), ≥)∧[(-1)bni_15 + (-1)Bound*bni_15] ≥ 0∧[-1 + (-1)bso_16] + i1310[0] + [-1]i277[0] ≥ 0)

We solved constraint (8) using rule (IDP_SMT_SPLIT).We simplified constraint (9) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

(10)    (i277[0] ≥ 0∧i1310[0] + [-2] + [-1]i277[0] ≥ 0∧i1310[0] + [-1] ≥ 0 ⇒ (UIncreasing(JMP2949'(i1310[1], i277[1])), ≥)∧[(-1)bni_15 + (-1)Bound*bni_15] ≥ 0∧[-2 + (-1)bso_16] + i1310[0] + [-1]i277[0] ≥ 0)

We simplified constraint (10) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

(11)    (i277[0] ≥ 0∧i1310[0] ≥ 0∧[1] + i277[0] + i1310[0] ≥ 0 ⇒ (UIncreasing(JMP2949'(i1310[1], i277[1])), ≥)∧[(-1)bni_15 + (-1)Bound*bni_15] ≥ 0∧[(-1)bso_16] + i1310[0] ≥ 0)

For Pair JMP2949'(i277[0], i1310[0]) → COND_JMP2949(&&(&&(>(i277[0], 0), <(i277[0], i1310[0])), !(=(i1310[0], 0))), i277[0], i1310[0]) the following chains were created:
• We consider the chain COND_JMP2949(TRUE, i277[1], i1310[1]) → JMP2949'(i1310[1], i277[1]), JMP2949'(i277[0], i1310[0]) → COND_JMP2949(&&(&&(>(i277[0], 0), <(i277[0], i1310[0])), !(=(i1310[0], 0))), i277[0], i1310[0]), COND_JMP2949(TRUE, i277[1], i1310[1]) → JMP2949'(i1310[1], i277[1]) which results in the following constraint:

(12)    (i1310[1]=i277[0]i277[1]=i1310[0]i1310[0]=i1310[1]1i277[0]=i277[1]1&&(&&(>(i277[0], 0), <(i277[0], i1310[0])), !(=(i1310[0], 0)))=TRUEJMP2949'(i277[0], i1310[0])≥NonInfC∧JMP2949'(i277[0], i1310[0])≥COND_JMP2949(&&(&&(>(i277[0], 0), <(i277[0], i1310[0])), !(=(i1310[0], 0))), i277[0], i1310[0])∧(UIncreasing(COND_JMP2949(&&(&&(>(i277[0], 0), <(i277[0], i1310[0])), !(=(i1310[0], 0))), i277[0], i1310[0])), ≥))

We simplified constraint (12) using rules (III), (IV), (IDP_BOOLEAN) which results in the following new constraints:

(13)    (>(i277[0], 0)=TRUE<(i277[0], i1310[0])=TRUE<(i1310[0], 0)=TRUEJMP2949'(i277[0], i1310[0])≥NonInfC∧JMP2949'(i277[0], i1310[0])≥COND_JMP2949(&&(&&(>(i277[0], 0), <(i277[0], i1310[0])), !(=(i1310[0], 0))), i277[0], i1310[0])∧(UIncreasing(COND_JMP2949(&&(&&(>(i277[0], 0), <(i277[0], i1310[0])), !(=(i1310[0], 0))), i277[0], i1310[0])), ≥))

(14)    (>(i277[0], 0)=TRUE<(i277[0], i1310[0])=TRUE>(i1310[0], 0)=TRUEJMP2949'(i277[0], i1310[0])≥NonInfC∧JMP2949'(i277[0], i1310[0])≥COND_JMP2949(&&(&&(>(i277[0], 0), <(i277[0], i1310[0])), !(=(i1310[0], 0))), i277[0], i1310[0])∧(UIncreasing(COND_JMP2949(&&(&&(>(i277[0], 0), <(i277[0], i1310[0])), !(=(i1310[0], 0))), i277[0], i1310[0])), ≥))

We simplified constraint (13) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

(15)    (i277[0] + [-1] ≥ 0∧i1310[0] + [-1] + [-1]i277[0] ≥ 0∧[-1] + [-1]i1310[0] ≥ 0 ⇒ (UIncreasing(COND_JMP2949(&&(&&(>(i277[0], 0), <(i277[0], i1310[0])), !(=(i1310[0], 0))), i277[0], i1310[0])), ≥)∧[(-1)Bound*bni_17] + [bni_17]i1310[0] + [(-1)bni_17]i277[0] ≥ 0∧[1 + (-1)bso_18] + i1310[0] + [-1]i277[0] ≥ 0)

We simplified constraint (14) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

(16)    (i277[0] + [-1] ≥ 0∧i1310[0] + [-1] + [-1]i277[0] ≥ 0∧i1310[0] + [-1] ≥ 0 ⇒ (UIncreasing(COND_JMP2949(&&(&&(>(i277[0], 0), <(i277[0], i1310[0])), !(=(i1310[0], 0))), i277[0], i1310[0])), ≥)∧[(-1)Bound*bni_17] + [bni_17]i1310[0] + [(-1)bni_17]i277[0] ≥ 0∧[1 + (-1)bso_18] + i1310[0] + [-1]i277[0] ≥ 0)

We simplified constraint (15) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

(17)    (i277[0] + [-1] ≥ 0∧i1310[0] + [-1] + [-1]i277[0] ≥ 0∧[-1] + [-1]i1310[0] ≥ 0 ⇒ (UIncreasing(COND_JMP2949(&&(&&(>(i277[0], 0), <(i277[0], i1310[0])), !(=(i1310[0], 0))), i277[0], i1310[0])), ≥)∧[(-1)Bound*bni_17] + [bni_17]i1310[0] + [(-1)bni_17]i277[0] ≥ 0∧[1 + (-1)bso_18] + i1310[0] + [-1]i277[0] ≥ 0)

We simplified constraint (16) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

(18)    (i277[0] + [-1] ≥ 0∧i1310[0] + [-1] + [-1]i277[0] ≥ 0∧i1310[0] + [-1] ≥ 0 ⇒ (UIncreasing(COND_JMP2949(&&(&&(>(i277[0], 0), <(i277[0], i1310[0])), !(=(i1310[0], 0))), i277[0], i1310[0])), ≥)∧[(-1)Bound*bni_17] + [bni_17]i1310[0] + [(-1)bni_17]i277[0] ≥ 0∧[1 + (-1)bso_18] + i1310[0] + [-1]i277[0] ≥ 0)

We simplified constraint (17) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

(19)    (i277[0] + [-1] ≥ 0∧i1310[0] + [-1] + [-1]i277[0] ≥ 0∧[-1] + [-1]i1310[0] ≥ 0 ⇒ (UIncreasing(COND_JMP2949(&&(&&(>(i277[0], 0), <(i277[0], i1310[0])), !(=(i1310[0], 0))), i277[0], i1310[0])), ≥)∧[(-1)Bound*bni_17] + [bni_17]i1310[0] + [(-1)bni_17]i277[0] ≥ 0∧[1 + (-1)bso_18] + i1310[0] + [-1]i277[0] ≥ 0)

We simplified constraint (18) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

(20)    (i277[0] + [-1] ≥ 0∧i1310[0] + [-1] + [-1]i277[0] ≥ 0∧i1310[0] + [-1] ≥ 0 ⇒ (UIncreasing(COND_JMP2949(&&(&&(>(i277[0], 0), <(i277[0], i1310[0])), !(=(i1310[0], 0))), i277[0], i1310[0])), ≥)∧[(-1)Bound*bni_17] + [bni_17]i1310[0] + [(-1)bni_17]i277[0] ≥ 0∧[1 + (-1)bso_18] + i1310[0] + [-1]i277[0] ≥ 0)

We solved constraint (19) using rule (IDP_SMT_SPLIT).We simplified constraint (20) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

(21)    (i277[0] ≥ 0∧i1310[0] + [-2] + [-1]i277[0] ≥ 0∧i1310[0] + [-1] ≥ 0 ⇒ (UIncreasing(COND_JMP2949(&&(&&(>(i277[0], 0), <(i277[0], i1310[0])), !(=(i1310[0], 0))), i277[0], i1310[0])), ≥)∧[(-1)Bound*bni_17 + (-1)bni_17] + [bni_17]i1310[0] + [(-1)bni_17]i277[0] ≥ 0∧[(-1)bso_18] + i1310[0] + [-1]i277[0] ≥ 0)

We simplified constraint (21) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

(22)    (i277[0] ≥ 0∧i1310[0] ≥ 0∧[1] + i277[0] + i1310[0] ≥ 0 ⇒ (UIncreasing(COND_JMP2949(&&(&&(>(i277[0], 0), <(i277[0], i1310[0])), !(=(i1310[0], 0))), i277[0], i1310[0])), ≥)∧[(-1)Bound*bni_17 + bni_17] + [bni_17]i1310[0] ≥ 0∧[2 + (-1)bso_18] + i1310[0] ≥ 0)

To summarize, we get the following constraints P for the following pairs.
• COND_JMP2949(TRUE, i277[1], i1310[1]) → JMP2949'(i1310[1], i277[1])
• (i277[0] ≥ 0∧i1310[0] ≥ 0∧[1] + i277[0] + i1310[0] ≥ 0 ⇒ (UIncreasing(JMP2949'(i1310[1], i277[1])), ≥)∧[(-1)bni_15 + (-1)Bound*bni_15] ≥ 0∧[(-1)bso_16] + i1310[0] ≥ 0)

• JMP2949'(i277[0], i1310[0]) → COND_JMP2949(&&(&&(>(i277[0], 0), <(i277[0], i1310[0])), !(=(i1310[0], 0))), i277[0], i1310[0])
• (i277[0] ≥ 0∧i1310[0] ≥ 0∧[1] + i277[0] + i1310[0] ≥ 0 ⇒ (UIncreasing(COND_JMP2949(&&(&&(>(i277[0], 0), <(i277[0], i1310[0])), !(=(i1310[0], 0))), i277[0], i1310[0])), ≥)∧[(-1)Bound*bni_17 + bni_17] + [bni_17]i1310[0] ≥ 0∧[2 + (-1)bso_18] + i1310[0] ≥ 0)

The constraints for P> respective Pbound are constructed from P where we just replace every occurence of "t ≥ s" in P by "t > s" respective "t ≥ c". Here c stands for the fresh constant used for Pbound.
Using the following integer polynomial ordering the resulting constraints can be solved
Polynomial interpretation over integers[POLO]:

POL(TRUE) = [1]
POL(FALSE) = [1]
POL(COND_JMP2949(x1, x2, x3)) = [-1]x1
POL(JMP2949'(x1, x2)) = x2 + [-1]x1
POL(&&(x1, x2)) = [1]
POL(>(x1, x2)) = [-1]
POL(0) = 0
POL(<(x1, x2)) = [-1]
POL(!(x1)) = [-1]
POL(=(x1, x2)) = [-1]

The following pairs are in P>:

JMP2949'(i277[0], i1310[0]) → COND_JMP2949(&&(&&(>(i277[0], 0), <(i277[0], i1310[0])), !(=(i1310[0], 0))), i277[0], i1310[0])

The following pairs are in Pbound:

COND_JMP2949(TRUE, i277[1], i1310[1]) → JMP2949'(i1310[1], i277[1])
JMP2949'(i277[0], i1310[0]) → COND_JMP2949(&&(&&(>(i277[0], 0), <(i277[0], i1310[0])), !(=(i1310[0], 0))), i277[0], i1310[0])

The following pairs are in P:

COND_JMP2949(TRUE, i277[1], i1310[1]) → JMP2949'(i1310[1], i277[1])

At least the following rules have been oriented under context sensitive arithmetic replacement:

&&(TRUE, TRUE)1TRUE1
&&(TRUE, FALSE)1FALSE1
&&(FALSE, TRUE)1FALSE1
&&(FALSE, FALSE)1FALSE1

### (17) Obligation:

IDP problem:
The following function symbols are pre-defined:
 != ~ 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

The following domains are used:
none

R is empty.

The integer pair graph contains the following rules and edges:
(1): COND_JMP2949(TRUE, i277[1], i1310[1]) → JMP2949'(i1310[1], i277[1])

The set Q consists of the following terms:
JMP2949(x0, x1)
Cond_JMP2949(TRUE, x0, x1)
JMP5679(x0, x0, x0, x1, x0)
Cond_JMP5679(TRUE, x0, x0, x0, x1, x0)
Cond_JMP29491(TRUE, x0, x1)
Cond_JMP29492(TRUE, x0, x0)
Cond_JMP56791(TRUE, x0, x0, x0, x1, x0)
Cond_JMP29493(TRUE, x0, x1)

### (18) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 1 less node.

### (20) Obligation:

IDP problem:
The following function symbols are pre-defined:
 != ~ 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

The following domains are used:
none

R is empty.

The integer pair graph is empty.

The set Q consists of the following terms:
JMP2949(x0, x1)
Cond_JMP2949(TRUE, x0, x1)
JMP5679(x0, x0, x0, x1, x0)
Cond_JMP5679(TRUE, x0, x0, x0, x1, x0)
Cond_JMP29491(TRUE, x0, x1)
Cond_JMP29492(TRUE, x0, x0)
Cond_JMP56791(TRUE, x0, x0, x0, x1, x0)
Cond_JMP29493(TRUE, x0, x1)

### (21) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs.

### (23) Obligation:

IDP problem:
The following function symbols are pre-defined:
 != ~ 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

The following domains are used:

Boolean, Integer

R is empty.

The integer pair graph contains the following rules and edges:
(1): COND_JMP2949(TRUE, i277[1], i1310[1]) → JMP2949'(i1310[1], i277[1])
(2): JMP5679'(i1310[2], i1310[2], i1310[2], i2872[2], i1310[2]) → COND_JMP5679(i1310[2] > 0 && i2872[2] <= i1310[2], i1310[2], i1310[2], i1310[2], i2872[2], i1310[2])
(3): COND_JMP5679(TRUE, i1310[3], i1310[3], i1310[3], i2872[3], i1310[3]) → JMP2949'(i1310[3], i2872[3])

(2) -> (3), if ((i2872[2]* i2872[3])∧(i1310[2]* i1310[3])∧(i1310[2] > 0 && i2872[2] <= i1310[2]* TRUE))

The set Q consists of the following terms:
JMP2949(x0, x1)
Cond_JMP2949(TRUE, x0, x1)
JMP5679(x0, x0, x0, x1, x0)
Cond_JMP5679(TRUE, x0, x0, x0, x1, x0)
Cond_JMP29491(TRUE, x0, x1)
Cond_JMP29492(TRUE, x0, x0)
Cond_JMP56791(TRUE, x0, x0, x0, x1, x0)
Cond_JMP29493(TRUE, x0, x1)

### (24) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 3 less nodes.

### (26) Obligation:

ITRS problem:

The following function symbols are pre-defined:
 != ~ 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

The TRS R consists of the following rules:
JMP4611(i895, i895, i895, i1888, i895) → Cond_JMP4611(i895 > 0 && i1888 > i895, i895, i895, i895, i1888, i895)
Cond_JMP4611(TRUE, i895, i895, i895, i1888, i895) → JMP4611(i895, i895, i895, i1888 - i895, i895)
The set Q consists of the following terms:
JMP4611(x0, x0, x0, x1, x0)
Cond_JMP4611(TRUE, x0, x0, x0, x1, x0)

### (28) Obligation:

IDP problem:
The following function symbols are pre-defined:
 != ~ 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

The following domains are used:

Boolean, Integer

The ITRS R consists of the following rules:
JMP4611(i895, i895, i895, i1888, i895) → Cond_JMP4611(i895 > 0 && i1888 > i895, i895, i895, i895, i1888, i895)
Cond_JMP4611(TRUE, i895, i895, i895, i1888, i895) → JMP4611(i895, i895, i895, i1888 - i895, i895)

The integer pair graph contains the following rules and edges:
(0): JMP4611'(i895[0], i895[0], i895[0], i1888[0], i895[0]) → COND_JMP4611(i895[0] > 0 && i1888[0] > i895[0], i895[0], i895[0], i895[0], i1888[0], i895[0])
(1): COND_JMP4611(TRUE, i895[1], i895[1], i895[1], i1888[1], i895[1]) → JMP4611'(i895[1], i895[1], i895[1], i1888[1] - i895[1], i895[1])

(0) -> (1), if ((i895[0]* i895[1])∧(i895[0] > 0 && i1888[0] > i895[0]* TRUE)∧(i1888[0]* i1888[1]))

(1) -> (0), if ((i1888[1] - i895[1]* i1888[0])∧(i895[1]* i895[0]))

The set Q consists of the following terms:
JMP4611(x0, x0, x0, x1, x0)
Cond_JMP4611(TRUE, x0, x0, x0, x1, x0)

### (29) UsableRulesProof (EQUIVALENT transformation)

As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R.

### (30) Obligation:

IDP problem:
The following function symbols are pre-defined:
 != ~ 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

The following domains are used:

Boolean, Integer

R is empty.

The integer pair graph contains the following rules and edges:
(0): JMP4611'(i895[0], i895[0], i895[0], i1888[0], i895[0]) → COND_JMP4611(i895[0] > 0 && i1888[0] > i895[0], i895[0], i895[0], i895[0], i1888[0], i895[0])
(1): COND_JMP4611(TRUE, i895[1], i895[1], i895[1], i1888[1], i895[1]) → JMP4611'(i895[1], i895[1], i895[1], i1888[1] - i895[1], i895[1])

(0) -> (1), if ((i895[0]* i895[1])∧(i895[0] > 0 && i1888[0] > i895[0]* TRUE)∧(i1888[0]* i1888[1]))

(1) -> (0), if ((i1888[1] - i895[1]* i1888[0])∧(i895[1]* i895[0]))

The set Q consists of the following terms:
JMP4611(x0, x0, x0, x1, x0)
Cond_JMP4611(TRUE, x0, x0, x0, x1, x0)

### (31) IDPNonInfProof (SOUND transformation)

The constraints were generated the following way:
The DP Problem is simplified using the Induction Calculus [NONINF] with the following steps:
Note that final constraints are written in bold face.

For Pair JMP4611'(i895, i895, i895, i1888, i895) → COND_JMP4611(&&(>(i895, 0), >(i1888, i895)), i895, i895, i895, i1888, i895) the following chains were created:
• We consider the chain JMP4611'(i895[0], i895[0], i895[0], i1888[0], i895[0]) → COND_JMP4611(&&(>(i895[0], 0), >(i1888[0], i895[0])), i895[0], i895[0], i895[0], i1888[0], i895[0]), COND_JMP4611(TRUE, i895[1], i895[1], i895[1], i1888[1], i895[1]) → JMP4611'(i895[1], i895[1], i895[1], -(i1888[1], i895[1]), i895[1]) which results in the following constraint:

(1)    (i895[0]=i895[1]&&(>(i895[0], 0), >(i1888[0], i895[0]))=TRUEi1888[0]=i1888[1]JMP4611'(i895[0], i895[0], i895[0], i1888[0], i895[0])≥NonInfC∧JMP4611'(i895[0], i895[0], i895[0], i1888[0], i895[0])≥COND_JMP4611(&&(>(i895[0], 0), >(i1888[0], i895[0])), i895[0], i895[0], i895[0], i1888[0], i895[0])∧(UIncreasing(COND_JMP4611(&&(>(i895[0], 0), >(i1888[0], i895[0])), i895[0], i895[0], i895[0], i1888[0], i895[0])), ≥))

We simplified constraint (1) using rules (IV), (IDP_BOOLEAN) which results in the following new constraint:

(2)    (>(i895[0], 0)=TRUE>(i1888[0], i895[0])=TRUEJMP4611'(i895[0], i895[0], i895[0], i1888[0], i895[0])≥NonInfC∧JMP4611'(i895[0], i895[0], i895[0], i1888[0], i895[0])≥COND_JMP4611(&&(>(i895[0], 0), >(i1888[0], i895[0])), i895[0], i895[0], i895[0], i1888[0], i895[0])∧(UIncreasing(COND_JMP4611(&&(>(i895[0], 0), >(i1888[0], i895[0])), i895[0], i895[0], i895[0], i1888[0], i895[0])), ≥))

We simplified constraint (2) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

(3)    (i895[0] + [-1] ≥ 0∧i1888[0] + [-1] + [-1]i895[0] ≥ 0 ⇒ (UIncreasing(COND_JMP4611(&&(>(i895[0], 0), >(i1888[0], i895[0])), i895[0], i895[0], i895[0], i1888[0], i895[0])), ≥)∧[(-1)Bound*bni_18] + [(-1)bni_18]i895[0] + [(2)bni_18]i1888[0] ≥ 0∧[-1 + (-1)bso_19] + i895[0] ≥ 0)

We simplified constraint (3) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

(4)    (i895[0] + [-1] ≥ 0∧i1888[0] + [-1] + [-1]i895[0] ≥ 0 ⇒ (UIncreasing(COND_JMP4611(&&(>(i895[0], 0), >(i1888[0], i895[0])), i895[0], i895[0], i895[0], i1888[0], i895[0])), ≥)∧[(-1)Bound*bni_18] + [(-1)bni_18]i895[0] + [(2)bni_18]i1888[0] ≥ 0∧[-1 + (-1)bso_19] + i895[0] ≥ 0)

We simplified constraint (4) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

(5)    (i895[0] + [-1] ≥ 0∧i1888[0] + [-1] + [-1]i895[0] ≥ 0 ⇒ (UIncreasing(COND_JMP4611(&&(>(i895[0], 0), >(i1888[0], i895[0])), i895[0], i895[0], i895[0], i1888[0], i895[0])), ≥)∧[(-1)Bound*bni_18] + [(-1)bni_18]i895[0] + [(2)bni_18]i1888[0] ≥ 0∧[-1 + (-1)bso_19] + i895[0] ≥ 0)

We simplified constraint (5) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

(6)    (i895[0] ≥ 0∧i1888[0] + [-2] + [-1]i895[0] ≥ 0 ⇒ (UIncreasing(COND_JMP4611(&&(>(i895[0], 0), >(i1888[0], i895[0])), i895[0], i895[0], i895[0], i1888[0], i895[0])), ≥)∧[(-1)Bound*bni_18 + (-1)bni_18] + [(-1)bni_18]i895[0] + [(2)bni_18]i1888[0] ≥ 0∧[(-1)bso_19] + i895[0] ≥ 0)

We simplified constraint (6) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

(7)    (i895[0] ≥ 0∧i1888[0] ≥ 0 ⇒ (UIncreasing(COND_JMP4611(&&(>(i895[0], 0), >(i1888[0], i895[0])), i895[0], i895[0], i895[0], i1888[0], i895[0])), ≥)∧[(-1)Bound*bni_18 + (3)bni_18] + [bni_18]i895[0] + [(2)bni_18]i1888[0] ≥ 0∧[(-1)bso_19] + i895[0] ≥ 0)

For Pair COND_JMP4611(TRUE, i895, i895, i895, i1888, i895) → JMP4611'(i895, i895, i895, -(i1888, i895), i895) the following chains were created:
• We consider the chain JMP4611'(i895[0], i895[0], i895[0], i1888[0], i895[0]) → COND_JMP4611(&&(>(i895[0], 0), >(i1888[0], i895[0])), i895[0], i895[0], i895[0], i1888[0], i895[0]), COND_JMP4611(TRUE, i895[1], i895[1], i895[1], i1888[1], i895[1]) → JMP4611'(i895[1], i895[1], i895[1], -(i1888[1], i895[1]), i895[1]), JMP4611'(i895[0], i895[0], i895[0], i1888[0], i895[0]) → COND_JMP4611(&&(>(i895[0], 0), >(i1888[0], i895[0])), i895[0], i895[0], i895[0], i1888[0], i895[0]) which results in the following constraint:

(8)    (i895[0]=i895[1]&&(>(i895[0], 0), >(i1888[0], i895[0]))=TRUEi1888[0]=i1888[1]-(i1888[1], i895[1])=i1888[0]1i895[1]=i895[0]1COND_JMP4611(TRUE, i895[1], i895[1], i895[1], i1888[1], i895[1])≥NonInfC∧COND_JMP4611(TRUE, i895[1], i895[1], i895[1], i1888[1], i895[1])≥JMP4611'(i895[1], i895[1], i895[1], -(i1888[1], i895[1]), i895[1])∧(UIncreasing(JMP4611'(i895[1], i895[1], i895[1], -(i1888[1], i895[1]), i895[1])), ≥))

We simplified constraint (8) using rules (III), (IV), (IDP_BOOLEAN) which results in the following new constraint:

(9)    (>(i895[0], 0)=TRUE>(i1888[0], i895[0])=TRUECOND_JMP4611(TRUE, i895[0], i895[0], i895[0], i1888[0], i895[0])≥NonInfC∧COND_JMP4611(TRUE, i895[0], i895[0], i895[0], i1888[0], i895[0])≥JMP4611'(i895[0], i895[0], i895[0], -(i1888[0], i895[0]), i895[0])∧(UIncreasing(JMP4611'(i895[1], i895[1], i895[1], -(i1888[1], i895[1]), i895[1])), ≥))

We simplified constraint (9) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

(10)    (i895[0] + [-1] ≥ 0∧i1888[0] + [-1] + [-1]i895[0] ≥ 0 ⇒ (UIncreasing(JMP4611'(i895[1], i895[1], i895[1], -(i1888[1], i895[1]), i895[1])), ≥)∧[bni_20 + (-1)Bound*bni_20] + [(-2)bni_20]i895[0] + [(2)bni_20]i1888[0] ≥ 0∧[1 + (-1)bso_21] + i895[0] ≥ 0)

We simplified constraint (10) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

(11)    (i895[0] + [-1] ≥ 0∧i1888[0] + [-1] + [-1]i895[0] ≥ 0 ⇒ (UIncreasing(JMP4611'(i895[1], i895[1], i895[1], -(i1888[1], i895[1]), i895[1])), ≥)∧[bni_20 + (-1)Bound*bni_20] + [(-2)bni_20]i895[0] + [(2)bni_20]i1888[0] ≥ 0∧[1 + (-1)bso_21] + i895[0] ≥ 0)

We simplified constraint (11) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

(12)    (i895[0] + [-1] ≥ 0∧i1888[0] + [-1] + [-1]i895[0] ≥ 0 ⇒ (UIncreasing(JMP4611'(i895[1], i895[1], i895[1], -(i1888[1], i895[1]), i895[1])), ≥)∧[bni_20 + (-1)Bound*bni_20] + [(-2)bni_20]i895[0] + [(2)bni_20]i1888[0] ≥ 0∧[1 + (-1)bso_21] + i895[0] ≥ 0)

We simplified constraint (12) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

(13)    (i895[0] ≥ 0∧i1888[0] + [-2] + [-1]i895[0] ≥ 0 ⇒ (UIncreasing(JMP4611'(i895[1], i895[1], i895[1], -(i1888[1], i895[1]), i895[1])), ≥)∧[(-1)bni_20 + (-1)Bound*bni_20] + [(-2)bni_20]i895[0] + [(2)bni_20]i1888[0] ≥ 0∧[2 + (-1)bso_21] + i895[0] ≥ 0)

We simplified constraint (13) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

(14)    (i895[0] ≥ 0∧i1888[0] ≥ 0 ⇒ (UIncreasing(JMP4611'(i895[1], i895[1], i895[1], -(i1888[1], i895[1]), i895[1])), ≥)∧[(3)bni_20 + (-1)Bound*bni_20] + [(2)bni_20]i1888[0] ≥ 0∧[2 + (-1)bso_21] + i895[0] ≥ 0)

To summarize, we get the following constraints P for the following pairs.
• JMP4611'(i895, i895, i895, i1888, i895) → COND_JMP4611(&&(>(i895, 0), >(i1888, i895)), i895, i895, i895, i1888, i895)
• (i895[0] ≥ 0∧i1888[0] ≥ 0 ⇒ (UIncreasing(COND_JMP4611(&&(>(i895[0], 0), >(i1888[0], i895[0])), i895[0], i895[0], i895[0], i1888[0], i895[0])), ≥)∧[(-1)Bound*bni_18 + (3)bni_18] + [bni_18]i895[0] + [(2)bni_18]i1888[0] ≥ 0∧[(-1)bso_19] + i895[0] ≥ 0)

• COND_JMP4611(TRUE, i895, i895, i895, i1888, i895) → JMP4611'(i895, i895, i895, -(i1888, i895), i895)
• (i895[0] ≥ 0∧i1888[0] ≥ 0 ⇒ (UIncreasing(JMP4611'(i895[1], i895[1], i895[1], -(i1888[1], i895[1]), i895[1])), ≥)∧[(3)bni_20 + (-1)Bound*bni_20] + [(2)bni_20]i1888[0] ≥ 0∧[2 + (-1)bso_21] + i895[0] ≥ 0)

The constraints for P> respective Pbound are constructed from P where we just replace every occurence of "t ≥ s" in P by "t > s" respective "t ≥ c". Here c stands for the fresh constant used for Pbound.
Using the following integer polynomial ordering the resulting constraints can be solved
Polynomial interpretation over integers[POLO]:

POL(TRUE) = 0
POL(FALSE) = [1]
POL(JMP4611'(x1, x2, x3, x4, x5)) = [2]x5 + [2]x4 + [-1]x3 + [-1]x2 + [-1]x1
POL(COND_JMP4611(x1, x2, x3, x4, x5, x6)) = [1] + [-1]x6 + [2]x5 + [-1]x4 + [-1]x3 + x2
POL(&&(x1, x2)) = [-1]
POL(>(x1, x2)) = [-1]
POL(0) = 0
POL(-(x1, x2)) = x1 + [-1]x2

The following pairs are in P>:

COND_JMP4611(TRUE, i895[1], i895[1], i895[1], i1888[1], i895[1]) → JMP4611'(i895[1], i895[1], i895[1], -(i1888[1], i895[1]), i895[1])

The following pairs are in Pbound:

JMP4611'(i895[0], i895[0], i895[0], i1888[0], i895[0]) → COND_JMP4611(&&(>(i895[0], 0), >(i1888[0], i895[0])), i895[0], i895[0], i895[0], i1888[0], i895[0])
COND_JMP4611(TRUE, i895[1], i895[1], i895[1], i1888[1], i895[1]) → JMP4611'(i895[1], i895[1], i895[1], -(i1888[1], i895[1]), i895[1])

The following pairs are in P:

JMP4611'(i895[0], i895[0], i895[0], i1888[0], i895[0]) → COND_JMP4611(&&(>(i895[0], 0), >(i1888[0], i895[0])), i895[0], i895[0], i895[0], i1888[0], i895[0])

At least the following rules have been oriented under context sensitive arithmetic replacement:

TRUE1&&(TRUE, TRUE)1
FALSE1&&(TRUE, FALSE)1
FALSE1&&(FALSE, TRUE)1
FALSE1&&(FALSE, FALSE)1

### (33) Obligation:

IDP problem:
The following function symbols are pre-defined:
 != ~ 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

The following domains are used:

Boolean, Integer

R is empty.

The integer pair graph contains the following rules and edges:
(0): JMP4611'(i895[0], i895[0], i895[0], i1888[0], i895[0]) → COND_JMP4611(i895[0] > 0 && i1888[0] > i895[0], i895[0], i895[0], i895[0], i1888[0], i895[0])

The set Q consists of the following terms:
JMP4611(x0, x0, x0, x1, x0)
Cond_JMP4611(TRUE, x0, x0, x0, x1, x0)

### (34) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 1 less node.

### (36) Obligation:

IDP problem:
The following function symbols are pre-defined:
 != ~ 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

The following domains are used:
none

R is empty.

The integer pair graph is empty.

The set Q consists of the following terms:
JMP4611(x0, x0, x0, x1, x0)
Cond_JMP4611(TRUE, x0, x0, x0, x1, x0)

### (37) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs.

### (39) Obligation:

ITRS problem:

The following function symbols are pre-defined:
 != ~ 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

The TRS R consists of the following rules:
JMP4563(i65, i65, i65, i65, i1832, i65) → Cond_JMP4563(i65 > 0 && i1832 > i65, i65, i65, i65, i65, i1832, i65)
Cond_JMP4563(TRUE, i65, i65, i65, i65, i1832, i65) → JMP4563(i65, i65, i65, i65, i1832 - i65, i65)
The set Q consists of the following terms:
JMP4563(x0, x0, x0, x0, x1, x0)
Cond_JMP4563(TRUE, x0, x0, x0, x0, x1, x0)

### (41) Obligation:

IDP problem:
The following function symbols are pre-defined:
 != ~ 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

The following domains are used:

Boolean, Integer

The ITRS R consists of the following rules:
JMP4563(i65, i65, i65, i65, i1832, i65) → Cond_JMP4563(i65 > 0 && i1832 > i65, i65, i65, i65, i65, i1832, i65)
Cond_JMP4563(TRUE, i65, i65, i65, i65, i1832, i65) → JMP4563(i65, i65, i65, i65, i1832 - i65, i65)

The integer pair graph contains the following rules and edges:
(0): JMP4563'(i65[0], i65[0], i65[0], i65[0], i1832[0], i65[0]) → COND_JMP4563(i65[0] > 0 && i1832[0] > i65[0], i65[0], i65[0], i65[0], i65[0], i1832[0], i65[0])
(1): COND_JMP4563(TRUE, i65[1], i65[1], i65[1], i65[1], i1832[1], i65[1]) → JMP4563'(i65[1], i65[1], i65[1], i65[1], i1832[1] - i65[1], i65[1])

(0) -> (1), if ((i1832[0]* i1832[1])∧(i65[0]* i65[1])∧(i65[0] > 0 && i1832[0] > i65[0]* TRUE))

(1) -> (0), if ((i65[1]* i65[0])∧(i1832[1] - i65[1]* i1832[0]))

The set Q consists of the following terms:
JMP4563(x0, x0, x0, x0, x1, x0)
Cond_JMP4563(TRUE, x0, x0, x0, x0, x1, x0)

### (42) UsableRulesProof (EQUIVALENT transformation)

As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R.

### (43) Obligation:

IDP problem:
The following function symbols are pre-defined:
 != ~ 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

The following domains are used:

Boolean, Integer

R is empty.

The integer pair graph contains the following rules and edges:
(0): JMP4563'(i65[0], i65[0], i65[0], i65[0], i1832[0], i65[0]) → COND_JMP4563(i65[0] > 0 && i1832[0] > i65[0], i65[0], i65[0], i65[0], i65[0], i1832[0], i65[0])
(1): COND_JMP4563(TRUE, i65[1], i65[1], i65[1], i65[1], i1832[1], i65[1]) → JMP4563'(i65[1], i65[1], i65[1], i65[1], i1832[1] - i65[1], i65[1])

(0) -> (1), if ((i1832[0]* i1832[1])∧(i65[0]* i65[1])∧(i65[0] > 0 && i1832[0] > i65[0]* TRUE))

(1) -> (0), if ((i65[1]* i65[0])∧(i1832[1] - i65[1]* i1832[0]))

The set Q consists of the following terms:
JMP4563(x0, x0, x0, x0, x1, x0)
Cond_JMP4563(TRUE, x0, x0, x0, x0, x1, x0)

### (44) IDPNonInfProof (SOUND transformation)

The constraints were generated the following way:
The DP Problem is simplified using the Induction Calculus [NONINF] with the following steps:
Note that final constraints are written in bold face.

For Pair JMP4563'(i65, i65, i65, i65, i1832, i65) → COND_JMP4563(&&(>(i65, 0), >(i1832, i65)), i65, i65, i65, i65, i1832, i65) the following chains were created:
• We consider the chain JMP4563'(i65[0], i65[0], i65[0], i65[0], i1832[0], i65[0]) → COND_JMP4563(&&(>(i65[0], 0), >(i1832[0], i65[0])), i65[0], i65[0], i65[0], i65[0], i1832[0], i65[0]), COND_JMP4563(TRUE, i65[1], i65[1], i65[1], i65[1], i1832[1], i65[1]) → JMP4563'(i65[1], i65[1], i65[1], i65[1], -(i1832[1], i65[1]), i65[1]) which results in the following constraint:

(1)    (i1832[0]=i1832[1]i65[0]=i65[1]&&(>(i65[0], 0), >(i1832[0], i65[0]))=TRUEJMP4563'(i65[0], i65[0], i65[0], i65[0], i1832[0], i65[0])≥NonInfC∧JMP4563'(i65[0], i65[0], i65[0], i65[0], i1832[0], i65[0])≥COND_JMP4563(&&(>(i65[0], 0), >(i1832[0], i65[0])), i65[0], i65[0], i65[0], i65[0], i1832[0], i65[0])∧(UIncreasing(COND_JMP4563(&&(>(i65[0], 0), >(i1832[0], i65[0])), i65[0], i65[0], i65[0], i65[0], i1832[0], i65[0])), ≥))

We simplified constraint (1) using rules (IV), (IDP_BOOLEAN) which results in the following new constraint:

(2)    (>(i65[0], 0)=TRUE>(i1832[0], i65[0])=TRUEJMP4563'(i65[0], i65[0], i65[0], i65[0], i1832[0], i65[0])≥NonInfC∧JMP4563'(i65[0], i65[0], i65[0], i65[0], i1832[0], i65[0])≥COND_JMP4563(&&(>(i65[0], 0), >(i1832[0], i65[0])), i65[0], i65[0], i65[0], i65[0], i1832[0], i65[0])∧(UIncreasing(COND_JMP4563(&&(>(i65[0], 0), >(i1832[0], i65[0])), i65[0], i65[0], i65[0], i65[0], i1832[0], i65[0])), ≥))

We simplified constraint (2) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

(3)    (i65[0] + [-1] ≥ 0∧i1832[0] + [-1] + [-1]i65[0] ≥ 0 ⇒ (UIncreasing(COND_JMP4563(&&(>(i65[0], 0), >(i1832[0], i65[0])), i65[0], i65[0], i65[0], i65[0], i1832[0], i65[0])), ≥)∧[(-1)bni_20 + (-1)Bound*bni_20] + [(-2)bni_20]i65[0] + [(2)bni_20]i1832[0] ≥ 0∧[(-1)bso_21] + i65[0] ≥ 0)

We simplified constraint (3) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

(4)    (i65[0] + [-1] ≥ 0∧i1832[0] + [-1] + [-1]i65[0] ≥ 0 ⇒ (UIncreasing(COND_JMP4563(&&(>(i65[0], 0), >(i1832[0], i65[0])), i65[0], i65[0], i65[0], i65[0], i1832[0], i65[0])), ≥)∧[(-1)bni_20 + (-1)Bound*bni_20] + [(-2)bni_20]i65[0] + [(2)bni_20]i1832[0] ≥ 0∧[(-1)bso_21] + i65[0] ≥ 0)

We simplified constraint (4) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

(5)    (i65[0] + [-1] ≥ 0∧i1832[0] + [-1] + [-1]i65[0] ≥ 0 ⇒ (UIncreasing(COND_JMP4563(&&(>(i65[0], 0), >(i1832[0], i65[0])), i65[0], i65[0], i65[0], i65[0], i1832[0], i65[0])), ≥)∧[(-1)bni_20 + (-1)Bound*bni_20] + [(-2)bni_20]i65[0] + [(2)bni_20]i1832[0] ≥ 0∧[(-1)bso_21] + i65[0] ≥ 0)

We simplified constraint (5) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

(6)    (i65[0] ≥ 0∧i1832[0] + [-2] + [-1]i65[0] ≥ 0 ⇒ (UIncreasing(COND_JMP4563(&&(>(i65[0], 0), >(i1832[0], i65[0])), i65[0], i65[0], i65[0], i65[0], i1832[0], i65[0])), ≥)∧[(-3)bni_20 + (-1)Bound*bni_20] + [(-2)bni_20]i65[0] + [(2)bni_20]i1832[0] ≥ 0∧[1 + (-1)bso_21] + i65[0] ≥ 0)

We simplified constraint (6) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

(7)    (i65[0] ≥ 0∧i1832[0] ≥ 0 ⇒ (UIncreasing(COND_JMP4563(&&(>(i65[0], 0), >(i1832[0], i65[0])), i65[0], i65[0], i65[0], i65[0], i1832[0], i65[0])), ≥)∧[bni_20 + (-1)Bound*bni_20] + [(2)bni_20]i1832[0] ≥ 0∧[1 + (-1)bso_21] + i65[0] ≥ 0)

For Pair COND_JMP4563(TRUE, i65, i65, i65, i65, i1832, i65) → JMP4563'(i65, i65, i65, i65, -(i1832, i65), i65) the following chains were created:
• We consider the chain JMP4563'(i65[0], i65[0], i65[0], i65[0], i1832[0], i65[0]) → COND_JMP4563(&&(>(i65[0], 0), >(i1832[0], i65[0])), i65[0], i65[0], i65[0], i65[0], i1832[0], i65[0]), COND_JMP4563(TRUE, i65[1], i65[1], i65[1], i65[1], i1832[1], i65[1]) → JMP4563'(i65[1], i65[1], i65[1], i65[1], -(i1832[1], i65[1]), i65[1]), JMP4563'(i65[0], i65[0], i65[0], i65[0], i1832[0], i65[0]) → COND_JMP4563(&&(>(i65[0], 0), >(i1832[0], i65[0])), i65[0], i65[0], i65[0], i65[0], i1832[0], i65[0]) which results in the following constraint:

(8)    (i1832[0]=i1832[1]i65[0]=i65[1]&&(>(i65[0], 0), >(i1832[0], i65[0]))=TRUEi65[1]=i65[0]1-(i1832[1], i65[1])=i1832[0]1COND_JMP4563(TRUE, i65[1], i65[1], i65[1], i65[1], i1832[1], i65[1])≥NonInfC∧COND_JMP4563(TRUE, i65[1], i65[1], i65[1], i65[1], i1832[1], i65[1])≥JMP4563'(i65[1], i65[1], i65[1], i65[1], -(i1832[1], i65[1]), i65[1])∧(UIncreasing(JMP4563'(i65[1], i65[1], i65[1], i65[1], -(i1832[1], i65[1]), i65[1])), ≥))

We simplified constraint (8) using rules (III), (IV), (IDP_BOOLEAN) which results in the following new constraint:

(9)    (>(i65[0], 0)=TRUE>(i1832[0], i65[0])=TRUECOND_JMP4563(TRUE, i65[0], i65[0], i65[0], i65[0], i1832[0], i65[0])≥NonInfC∧COND_JMP4563(TRUE, i65[0], i65[0], i65[0], i65[0], i1832[0], i65[0])≥JMP4563'(i65[0], i65[0], i65[0], i65[0], -(i1832[0], i65[0]), i65[0])∧(UIncreasing(JMP4563'(i65[1], i65[1], i65[1], i65[1], -(i1832[1], i65[1]), i65[1])), ≥))

We simplified constraint (9) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

(10)    (i65[0] + [-1] ≥ 0∧i1832[0] + [-1] + [-1]i65[0] ≥ 0 ⇒ (UIncreasing(JMP4563'(i65[1], i65[1], i65[1], i65[1], -(i1832[1], i65[1]), i65[1])), ≥)∧[(-2)bni_22 + (-1)Bound*bni_22] + [(-3)bni_22]i65[0] + [(2)bni_22]i1832[0] ≥ 0∧[-1 + (-1)bso_23] + i65[0] ≥ 0)

We simplified constraint (10) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

(11)    (i65[0] + [-1] ≥ 0∧i1832[0] + [-1] + [-1]i65[0] ≥ 0 ⇒ (UIncreasing(JMP4563'(i65[1], i65[1], i65[1], i65[1], -(i1832[1], i65[1]), i65[1])), ≥)∧[(-2)bni_22 + (-1)Bound*bni_22] + [(-3)bni_22]i65[0] + [(2)bni_22]i1832[0] ≥ 0∧[-1 + (-1)bso_23] + i65[0] ≥ 0)

We simplified constraint (11) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

(12)    (i65[0] + [-1] ≥ 0∧i1832[0] + [-1] + [-1]i65[0] ≥ 0 ⇒ (UIncreasing(JMP4563'(i65[1], i65[1], i65[1], i65[1], -(i1832[1], i65[1]), i65[1])), ≥)∧[(-2)bni_22 + (-1)Bound*bni_22] + [(-3)bni_22]i65[0] + [(2)bni_22]i1832[0] ≥ 0∧[-1 + (-1)bso_23] + i65[0] ≥ 0)

We simplified constraint (12) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

(13)    (i65[0] ≥ 0∧i1832[0] + [-2] + [-1]i65[0] ≥ 0 ⇒ (UIncreasing(JMP4563'(i65[1], i65[1], i65[1], i65[1], -(i1832[1], i65[1]), i65[1])), ≥)∧[(-5)bni_22 + (-1)Bound*bni_22] + [(-3)bni_22]i65[0] + [(2)bni_22]i1832[0] ≥ 0∧[(-1)bso_23] + i65[0] ≥ 0)

We simplified constraint (13) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

(14)    (i65[0] ≥ 0∧i1832[0] ≥ 0 ⇒ (UIncreasing(JMP4563'(i65[1], i65[1], i65[1], i65[1], -(i1832[1], i65[1]), i65[1])), ≥)∧[(-1)bni_22 + (-1)Bound*bni_22] + [(-1)bni_22]i65[0] + [(2)bni_22]i1832[0] ≥ 0∧[(-1)bso_23] + i65[0] ≥ 0)

To summarize, we get the following constraints P for the following pairs.
• JMP4563'(i65, i65, i65, i65, i1832, i65) → COND_JMP4563(&&(>(i65, 0), >(i1832, i65)), i65, i65, i65, i65, i1832, i65)
• (i65[0] ≥ 0∧i1832[0] ≥ 0 ⇒ (UIncreasing(COND_JMP4563(&&(>(i65[0], 0), >(i1832[0], i65[0])), i65[0], i65[0], i65[0], i65[0], i1832[0], i65[0])), ≥)∧[bni_20 + (-1)Bound*bni_20] + [(2)bni_20]i1832[0] ≥ 0∧[1 + (-1)bso_21] + i65[0] ≥ 0)

• COND_JMP4563(TRUE, i65, i65, i65, i65, i1832, i65) → JMP4563'(i65, i65, i65, i65, -(i1832, i65), i65)
• (i65[0] ≥ 0∧i1832[0] ≥ 0 ⇒ (UIncreasing(JMP4563'(i65[1], i65[1], i65[1], i65[1], -(i1832[1], i65[1]), i65[1])), ≥)∧[(-1)bni_22 + (-1)Bound*bni_22] + [(-1)bni_22]i65[0] + [(2)bni_22]i1832[0] ≥ 0∧[(-1)bso_23] + i65[0] ≥ 0)

The constraints for P> respective Pbound are constructed from P where we just replace every occurence of "t ≥ s" in P by "t > s" respective "t ≥ c". Here c stands for the fresh constant used for Pbound.
Using the following integer polynomial ordering the resulting constraints can be solved
Polynomial interpretation over integers[POLO]:

POL(TRUE) = [1]
POL(FALSE) = [1]
POL(JMP4563'(x1, x2, x3, x4, x5, x6)) = [-1] + [-1]x6 + [2]x5 + [-1]x3 + x2 + [-1]x1
POL(COND_JMP4563(x1, x2, x3, x4, x5, x6, x7)) = [-1] + x7 + [2]x6 + [-1]x5 + [-1]x4 + [-1]x3 + [-1]x2 + [-1]x1
POL(&&(x1, x2)) = 0
POL(>(x1, x2)) = [-1]
POL(0) = 0
POL(-(x1, x2)) = x1 + [-1]x2

The following pairs are in P>:

JMP4563'(i65[0], i65[0], i65[0], i65[0], i1832[0], i65[0]) → COND_JMP4563(&&(>(i65[0], 0), >(i1832[0], i65[0])), i65[0], i65[0], i65[0], i65[0], i1832[0], i65[0])

The following pairs are in Pbound:

JMP4563'(i65[0], i65[0], i65[0], i65[0], i1832[0], i65[0]) → COND_JMP4563(&&(>(i65[0], 0), >(i1832[0], i65[0])), i65[0], i65[0], i65[0], i65[0], i1832[0], i65[0])

The following pairs are in P:

COND_JMP4563(TRUE, i65[1], i65[1], i65[1], i65[1], i1832[1], i65[1]) → JMP4563'(i65[1], i65[1], i65[1], i65[1], -(i1832[1], i65[1]), i65[1])

At least the following rules have been oriented under context sensitive arithmetic replacement:

TRUE1&&(TRUE, TRUE)1
FALSE1&&(TRUE, FALSE)1
FALSE1&&(FALSE, TRUE)1
FALSE1&&(FALSE, FALSE)1

### (45) Obligation:

IDP problem:
The following function symbols are pre-defined:
 != ~ 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

The following domains are used:

Integer

R is empty.

The integer pair graph contains the following rules and edges:
(1): COND_JMP4563(TRUE, i65[1], i65[1], i65[1], i65[1], i1832[1], i65[1]) → JMP4563'(i65[1], i65[1], i65[1], i65[1], i1832[1] - i65[1], i65[1])

The set Q consists of the following terms:
JMP4563(x0, x0, x0, x0, x1, x0)
Cond_JMP4563(TRUE, x0, x0, x0, x0, x1, x0)

### (46) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 1 less node.

### (48) Obligation:

ITRS problem:

The following function symbols are pre-defined:
 != ~ 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

The TRS R consists of the following rules:
JMP2376(i277, i277, i277, i652, i277) → Cond_JMP2376(i277 > 0 && i652 > i277, i277, i277, i277, i652, i277)
Cond_JMP2376(TRUE, i277, i277, i277, i652, i277) → JMP2376(i277, i277, i277, i652 - i277, i277)
The set Q consists of the following terms:
JMP2376(x0, x0, x0, x1, x0)
Cond_JMP2376(TRUE, x0, x0, x0, x1, x0)

### (50) Obligation:

IDP problem:
The following function symbols are pre-defined:
 != ~ 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

The following domains are used:

Boolean, Integer

The ITRS R consists of the following rules:
JMP2376(i277, i277, i277, i652, i277) → Cond_JMP2376(i277 > 0 && i652 > i277, i277, i277, i277, i652, i277)
Cond_JMP2376(TRUE, i277, i277, i277, i652, i277) → JMP2376(i277, i277, i277, i652 - i277, i277)

The integer pair graph contains the following rules and edges:
(0): JMP2376'(i277[0], i277[0], i277[0], i652[0], i277[0]) → COND_JMP2376(i277[0] > 0 && i652[0] > i277[0], i277[0], i277[0], i277[0], i652[0], i277[0])
(1): COND_JMP2376(TRUE, i277[1], i277[1], i277[1], i652[1], i277[1]) → JMP2376'(i277[1], i277[1], i277[1], i652[1] - i277[1], i277[1])

(0) -> (1), if ((i277[0] > 0 && i652[0] > i277[0]* TRUE)∧(i652[0]* i652[1])∧(i277[0]* i277[1]))

(1) -> (0), if ((i277[1]* i277[0])∧(i652[1] - i277[1]* i652[0]))

The set Q consists of the following terms:
JMP2376(x0, x0, x0, x1, x0)
Cond_JMP2376(TRUE, x0, x0, x0, x1, x0)

### (51) UsableRulesProof (EQUIVALENT transformation)

As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R.

### (52) Obligation:

IDP problem:
The following function symbols are pre-defined:
 != ~ 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

The following domains are used:

Boolean, Integer

R is empty.

The integer pair graph contains the following rules and edges:
(0): JMP2376'(i277[0], i277[0], i277[0], i652[0], i277[0]) → COND_JMP2376(i277[0] > 0 && i652[0] > i277[0], i277[0], i277[0], i277[0], i652[0], i277[0])
(1): COND_JMP2376(TRUE, i277[1], i277[1], i277[1], i652[1], i277[1]) → JMP2376'(i277[1], i277[1], i277[1], i652[1] - i277[1], i277[1])

(0) -> (1), if ((i277[0] > 0 && i652[0] > i277[0]* TRUE)∧(i652[0]* i652[1])∧(i277[0]* i277[1]))

(1) -> (0), if ((i277[1]* i277[0])∧(i652[1] - i277[1]* i652[0]))

The set Q consists of the following terms:
JMP2376(x0, x0, x0, x1, x0)
Cond_JMP2376(TRUE, x0, x0, x0, x1, x0)

### (53) IDPNonInfProof (SOUND transformation)

The constraints were generated the following way:
The DP Problem is simplified using the Induction Calculus [NONINF] with the following steps:
Note that final constraints are written in bold face.

For Pair JMP2376'(i277, i277, i277, i652, i277) → COND_JMP2376(&&(>(i277, 0), >(i652, i277)), i277, i277, i277, i652, i277) the following chains were created:
• We consider the chain JMP2376'(i277[0], i277[0], i277[0], i652[0], i277[0]) → COND_JMP2376(&&(>(i277[0], 0), >(i652[0], i277[0])), i277[0], i277[0], i277[0], i652[0], i277[0]), COND_JMP2376(TRUE, i277[1], i277[1], i277[1], i652[1], i277[1]) → JMP2376'(i277[1], i277[1], i277[1], -(i652[1], i277[1]), i277[1]) which results in the following constraint:

(1)    (&&(>(i277[0], 0), >(i652[0], i277[0]))=TRUEi652[0]=i652[1]i277[0]=i277[1]JMP2376'(i277[0], i277[0], i277[0], i652[0], i277[0])≥NonInfC∧JMP2376'(i277[0], i277[0], i277[0], i652[0], i277[0])≥COND_JMP2376(&&(>(i277[0], 0), >(i652[0], i277[0])), i277[0], i277[0], i277[0], i652[0], i277[0])∧(UIncreasing(COND_JMP2376(&&(>(i277[0], 0), >(i652[0], i277[0])), i277[0], i277[0], i277[0], i652[0], i277[0])), ≥))

We simplified constraint (1) using rules (IV), (IDP_BOOLEAN) which results in the following new constraint:

(2)    (>(i277[0], 0)=TRUE>(i652[0], i277[0])=TRUEJMP2376'(i277[0], i277[0], i277[0], i652[0], i277[0])≥NonInfC∧JMP2376'(i277[0], i277[0], i277[0], i652[0], i277[0])≥COND_JMP2376(&&(>(i277[0], 0), >(i652[0], i277[0])), i277[0], i277[0], i277[0], i652[0], i277[0])∧(UIncreasing(COND_JMP2376(&&(>(i277[0], 0), >(i652[0], i277[0])), i277[0], i277[0], i277[0], i652[0], i277[0])), ≥))

We simplified constraint (2) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

(3)    (i277[0] + [-1] ≥ 0∧i652[0] + [-1] + [-1]i277[0] ≥ 0 ⇒ (UIncreasing(COND_JMP2376(&&(>(i277[0], 0), >(i652[0], i277[0])), i277[0], i277[0], i277[0], i652[0], i277[0])), ≥)∧[(-1)Bound*bni_18] + [(-1)bni_18]i277[0] + [(2)bni_18]i652[0] ≥ 0∧[-1 + (-1)bso_19] + i277[0] ≥ 0)

We simplified constraint (3) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

(4)    (i277[0] + [-1] ≥ 0∧i652[0] + [-1] + [-1]i277[0] ≥ 0 ⇒ (UIncreasing(COND_JMP2376(&&(>(i277[0], 0), >(i652[0], i277[0])), i277[0], i277[0], i277[0], i652[0], i277[0])), ≥)∧[(-1)Bound*bni_18] + [(-1)bni_18]i277[0] + [(2)bni_18]i652[0] ≥ 0∧[-1 + (-1)bso_19] + i277[0] ≥ 0)

We simplified constraint (4) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

(5)    (i277[0] + [-1] ≥ 0∧i652[0] + [-1] + [-1]i277[0] ≥ 0 ⇒ (UIncreasing(COND_JMP2376(&&(>(i277[0], 0), >(i652[0], i277[0])), i277[0], i277[0], i277[0], i652[0], i277[0])), ≥)∧[(-1)Bound*bni_18] + [(-1)bni_18]i277[0] + [(2)bni_18]i652[0] ≥ 0∧[-1 + (-1)bso_19] + i277[0] ≥ 0)

We simplified constraint (5) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

(6)    (i277[0] ≥ 0∧i652[0] + [-2] + [-1]i277[0] ≥ 0 ⇒ (UIncreasing(COND_JMP2376(&&(>(i277[0], 0), >(i652[0], i277[0])), i277[0], i277[0], i277[0], i652[0], i277[0])), ≥)∧[(-1)Bound*bni_18 + (-1)bni_18] + [(-1)bni_18]i277[0] + [(2)bni_18]i652[0] ≥ 0∧[(-1)bso_19] + i277[0] ≥ 0)

We simplified constraint (6) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

(7)    (i277[0] ≥ 0∧i652[0] ≥ 0 ⇒ (UIncreasing(COND_JMP2376(&&(>(i277[0], 0), >(i652[0], i277[0])), i277[0], i277[0], i277[0], i652[0], i277[0])), ≥)∧[(-1)Bound*bni_18 + (3)bni_18] + [bni_18]i277[0] + [(2)bni_18]i652[0] ≥ 0∧[(-1)bso_19] + i277[0] ≥ 0)

For Pair COND_JMP2376(TRUE, i277, i277, i277, i652, i277) → JMP2376'(i277, i277, i277, -(i652, i277), i277) the following chains were created:
• We consider the chain JMP2376'(i277[0], i277[0], i277[0], i652[0], i277[0]) → COND_JMP2376(&&(>(i277[0], 0), >(i652[0], i277[0])), i277[0], i277[0], i277[0], i652[0], i277[0]), COND_JMP2376(TRUE, i277[1], i277[1], i277[1], i652[1], i277[1]) → JMP2376'(i277[1], i277[1], i277[1], -(i652[1], i277[1]), i277[1]), JMP2376'(i277[0], i277[0], i277[0], i652[0], i277[0]) → COND_JMP2376(&&(>(i277[0], 0), >(i652[0], i277[0])), i277[0], i277[0], i277[0], i652[0], i277[0]) which results in the following constraint:

(8)    (&&(>(i277[0], 0), >(i652[0], i277[0]))=TRUEi652[0]=i652[1]i277[0]=i277[1]i277[1]=i277[0]1-(i652[1], i277[1])=i652[0]1COND_JMP2376(TRUE, i277[1], i277[1], i277[1], i652[1], i277[1])≥NonInfC∧COND_JMP2376(TRUE, i277[1], i277[1], i277[1], i652[1], i277[1])≥JMP2376'(i277[1], i277[1], i277[1], -(i652[1], i277[1]), i277[1])∧(UIncreasing(JMP2376'(i277[1], i277[1], i277[1], -(i652[1], i277[1]), i277[1])), ≥))

We simplified constraint (8) using rules (III), (IV), (IDP_BOOLEAN) which results in the following new constraint:

(9)    (>(i277[0], 0)=TRUE>(i652[0], i277[0])=TRUECOND_JMP2376(TRUE, i277[0], i277[0], i277[0], i652[0], i277[0])≥NonInfC∧COND_JMP2376(TRUE, i277[0], i277[0], i277[0], i652[0], i277[0])≥JMP2376'(i277[0], i277[0], i277[0], -(i652[0], i277[0]), i277[0])∧(UIncreasing(JMP2376'(i277[1], i277[1], i277[1], -(i652[1], i277[1]), i277[1])), ≥))

We simplified constraint (9) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

(10)    (i277[0] + [-1] ≥ 0∧i652[0] + [-1] + [-1]i277[0] ≥ 0 ⇒ (UIncreasing(JMP2376'(i277[1], i277[1], i277[1], -(i652[1], i277[1]), i277[1])), ≥)∧[bni_20 + (-1)Bound*bni_20] + [(-2)bni_20]i277[0] + [(2)bni_20]i652[0] ≥ 0∧[1 + (-1)bso_21] + i277[0] ≥ 0)

We simplified constraint (10) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

(11)    (i277[0] + [-1] ≥ 0∧i652[0] + [-1] + [-1]i277[0] ≥ 0 ⇒ (UIncreasing(JMP2376'(i277[1], i277[1], i277[1], -(i652[1], i277[1]), i277[1])), ≥)∧[bni_20 + (-1)Bound*bni_20] + [(-2)bni_20]i277[0] + [(2)bni_20]i652[0] ≥ 0∧[1 + (-1)bso_21] + i277[0] ≥ 0)

We simplified constraint (11) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

(12)    (i277[0] + [-1] ≥ 0∧i652[0] + [-1] + [-1]i277[0] ≥ 0 ⇒ (UIncreasing(JMP2376'(i277[1], i277[1], i277[1], -(i652[1], i277[1]), i277[1])), ≥)∧[bni_20 + (-1)Bound*bni_20] + [(-2)bni_20]i277[0] + [(2)bni_20]i652[0] ≥ 0∧[1 + (-1)bso_21] + i277[0] ≥ 0)

We simplified constraint (12) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

(13)    (i277[0] ≥ 0∧i652[0] + [-2] + [-1]i277[0] ≥ 0 ⇒ (UIncreasing(JMP2376'(i277[1], i277[1], i277[1], -(i652[1], i277[1]), i277[1])), ≥)∧[(-1)bni_20 + (-1)Bound*bni_20] + [(-2)bni_20]i277[0] + [(2)bni_20]i652[0] ≥ 0∧[2 + (-1)bso_21] + i277[0] ≥ 0)

We simplified constraint (13) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

(14)    (i277[0] ≥ 0∧i652[0] ≥ 0 ⇒ (UIncreasing(JMP2376'(i277[1], i277[1], i277[1], -(i652[1], i277[1]), i277[1])), ≥)∧[(3)bni_20 + (-1)Bound*bni_20] + [(2)bni_20]i652[0] ≥ 0∧[2 + (-1)bso_21] + i277[0] ≥ 0)

To summarize, we get the following constraints P for the following pairs.
• JMP2376'(i277, i277, i277, i652, i277) → COND_JMP2376(&&(>(i277, 0), >(i652, i277)), i277, i277, i277, i652, i277)
• (i277[0] ≥ 0∧i652[0] ≥ 0 ⇒ (UIncreasing(COND_JMP2376(&&(>(i277[0], 0), >(i652[0], i277[0])), i277[0], i277[0], i277[0], i652[0], i277[0])), ≥)∧[(-1)Bound*bni_18 + (3)bni_18] + [bni_18]i277[0] + [(2)bni_18]i652[0] ≥ 0∧[(-1)bso_19] + i277[0] ≥ 0)

• COND_JMP2376(TRUE, i277, i277, i277, i652, i277) → JMP2376'(i277, i277, i277, -(i652, i277), i277)
• (i277[0] ≥ 0∧i652[0] ≥ 0 ⇒ (UIncreasing(JMP2376'(i277[1], i277[1], i277[1], -(i652[1], i277[1]), i277[1])), ≥)∧[(3)bni_20 + (-1)Bound*bni_20] + [(2)bni_20]i652[0] ≥ 0∧[2 + (-1)bso_21] + i277[0] ≥ 0)

The constraints for P> respective Pbound are constructed from P where we just replace every occurence of "t ≥ s" in P by "t > s" respective "t ≥ c". Here c stands for the fresh constant used for Pbound.
Using the following integer polynomial ordering the resulting constraints can be solved
Polynomial interpretation over integers[POLO]:

POL(TRUE) = 0
POL(FALSE) = [1]
POL(JMP2376'(x1, x2, x3, x4, x5)) = [2]x5 + [2]x4 + [-1]x3 + [-1]x2 + [-1]x1
POL(COND_JMP2376(x1, x2, x3, x4, x5, x6)) = [1] + [-1]x6 + [2]x5 + [-1]x4 + [-1]x3 + x2
POL(&&(x1, x2)) = [-1]
POL(>(x1, x2)) = [-1]
POL(0) = 0
POL(-(x1, x2)) = x1 + [-1]x2

The following pairs are in P>:

COND_JMP2376(TRUE, i277[1], i277[1], i277[1], i652[1], i277[1]) → JMP2376'(i277[1], i277[1], i277[1], -(i652[1], i277[1]), i277[1])

The following pairs are in Pbound:

JMP2376'(i277[0], i277[0], i277[0], i652[0], i277[0]) → COND_JMP2376(&&(>(i277[0], 0), >(i652[0], i277[0])), i277[0], i277[0], i277[0], i652[0], i277[0])
COND_JMP2376(TRUE, i277[1], i277[1], i277[1], i652[1], i277[1]) → JMP2376'(i277[1], i277[1], i277[1], -(i652[1], i277[1]), i277[1])

The following pairs are in P:

JMP2376'(i277[0], i277[0], i277[0], i652[0], i277[0]) → COND_JMP2376(&&(>(i277[0], 0), >(i652[0], i277[0])), i277[0], i277[0], i277[0], i652[0], i277[0])

At least the following rules have been oriented under context sensitive arithmetic replacement:

TRUE1&&(TRUE, TRUE)1
FALSE1&&(TRUE, FALSE)1
FALSE1&&(FALSE, TRUE)1
FALSE1&&(FALSE, FALSE)1

### (55) Obligation:

IDP problem:
The following function symbols are pre-defined:
 != ~ 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

The following domains are used:

Boolean, Integer

R is empty.

The integer pair graph contains the following rules and edges:
(0): JMP2376'(i277[0], i277[0], i277[0], i652[0], i277[0]) → COND_JMP2376(i277[0] > 0 && i652[0] > i277[0], i277[0], i277[0], i277[0], i652[0], i277[0])

The set Q consists of the following terms:
JMP2376(x0, x0, x0, x1, x0)
Cond_JMP2376(TRUE, x0, x0, x0, x1, x0)

### (56) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 1 less node.

### (58) Obligation:

IDP problem:
The following function symbols are pre-defined:
 != ~ 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

The following domains are used:
none

R is empty.

The integer pair graph is empty.

The set Q consists of the following terms:
JMP2376(x0, x0, x0, x1, x0)
Cond_JMP2376(TRUE, x0, x0, x0, x1, x0)

### (59) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs.

### (61) Obligation:

ITRS problem:

The following function symbols are pre-defined:
 != ~ 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

The TRS R consists of the following rules:
JMP2360(i895, i895, i895) → Cond_JMP2360(i895 > 0, i895, i895, i895)
Cond_JMP2360(TRUE, i895, i895, i895) → JMP2360(i895, i895, 0)
The set Q consists of the following terms:
JMP2360(x0, x0, x0)
Cond_JMP2360(TRUE, x0, x0, x0)

### (63) Obligation:

IDP problem:
The following function symbols are pre-defined:
 != ~ 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

The following domains are used:

Integer

The ITRS R consists of the following rules:
JMP2360(i895, i895, i895) → Cond_JMP2360(i895 > 0, i895, i895, i895)
Cond_JMP2360(TRUE, i895, i895, i895) → JMP2360(i895, i895, 0)

The integer pair graph contains the following rules and edges:
(0): JMP2360'(i895[0], i895[0], i895[0]) → COND_JMP2360(i895[0] > 0, i895[0], i895[0], i895[0])
(1): COND_JMP2360(TRUE, i895[1], i895[1], i895[1]) → JMP2360'(i895[1], i895[1], 0)

(0) -> (1), if ((i895[0] > 0* TRUE)∧(i895[0]* i895[1]))

(1) -> (0), if ((i895[1]* i895[0])∧(0* i895[0]))

The set Q consists of the following terms:
JMP2360(x0, x0, x0)
Cond_JMP2360(TRUE, x0, x0, x0)

### (64) UsableRulesProof (EQUIVALENT transformation)

As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R.

### (65) Obligation:

IDP problem:
The following function symbols are pre-defined:
 != ~ 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

The following domains are used:

Integer

R is empty.

The integer pair graph contains the following rules and edges:
(0): JMP2360'(i895[0], i895[0], i895[0]) → COND_JMP2360(i895[0] > 0, i895[0], i895[0], i895[0])
(1): COND_JMP2360(TRUE, i895[1], i895[1], i895[1]) → JMP2360'(i895[1], i895[1], 0)

(0) -> (1), if ((i895[0] > 0* TRUE)∧(i895[0]* i895[1]))

(1) -> (0), if ((i895[1]* i895[0])∧(0* i895[0]))

The set Q consists of the following terms:
JMP2360(x0, x0, x0)
Cond_JMP2360(TRUE, x0, x0, x0)

### (66) IDPNonInfProof (SOUND transformation)

The constraints were generated the following way:
The DP Problem is simplified using the Induction Calculus [NONINF] with the following steps:
Note that final constraints are written in bold face.

For Pair JMP2360'(i895, i895, i895) → COND_JMP2360(>(i895, 0), i895, i895, i895) the following chains were created:
• We consider the chain JMP2360'(i895[0], i895[0], i895[0]) → COND_JMP2360(>(i895[0], 0), i895[0], i895[0], i895[0]), COND_JMP2360(TRUE, i895[1], i895[1], i895[1]) → JMP2360'(i895[1], i895[1], 0) which results in the following constraint:

(1)    (>(i895[0], 0)=TRUEi895[0]=i895[1]JMP2360'(i895[0], i895[0], i895[0])≥COND_JMP2360(>(i895[0], 0), i895[0], i895[0], i895[0])∧(UIncreasing(COND_JMP2360(>(i895[0], 0), i895[0], i895[0], i895[0])), ≥))

We simplified constraint (1) using rule (IV) which results in the following new constraint:

(2)    (>(i895[0], 0)=TRUEJMP2360'(i895[0], i895[0], i895[0])≥COND_JMP2360(>(i895[0], 0), i895[0], i895[0], i895[0])∧(UIncreasing(COND_JMP2360(>(i895[0], 0), i895[0], i895[0], i895[0])), ≥))

We simplified constraint (2) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

(3)    (0 ≥ 0 ⇒ (UIncreasing(COND_JMP2360(>(i895[0], 0), i895[0], i895[0], i895[0])), ≥)∧[2 + (-1)bso_10] + i895[0] ≥ 0)

We simplified constraint (3) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

(4)    (0 ≥ 0 ⇒ (UIncreasing(COND_JMP2360(>(i895[0], 0), i895[0], i895[0], i895[0])), ≥)∧[2 + (-1)bso_10] + i895[0] ≥ 0)

We simplified constraint (4) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

(5)    (0 ≥ 0 ⇒ (UIncreasing(COND_JMP2360(>(i895[0], 0), i895[0], i895[0], i895[0])), ≥)∧[2 + (-1)bso_10] + i895[0] ≥ 0)

We simplified constraint (5) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

(6)    (0 ≥ 0 ⇒ (UIncreasing(COND_JMP2360(>(i895[0], 0), i895[0], i895[0], i895[0])), ≥)∧[1] ≥ 0∧[2 + (-1)bso_10] ≥ 0)

For Pair COND_JMP2360(TRUE, i895, i895, i895) → JMP2360'(i895, i895, 0) the following chains were created:
• We consider the chain JMP2360'(i895[0], i895[0], i895[0]) → COND_JMP2360(>(i895[0], 0), i895[0], i895[0], i895[0]), COND_JMP2360(TRUE, i895[1], i895[1], i895[1]) → JMP2360'(i895[1], i895[1], 0), JMP2360'(i895[0], i895[0], i895[0]) → COND_JMP2360(>(i895[0], 0), i895[0], i895[0], i895[0]) which results in the following constraint:

(7)    (>(i895[0], 0)=TRUEi895[0]=i895[1]i895[1]=i895[0]10=i895[0]1COND_JMP2360(TRUE, i895[1], i895[1], i895[1])≥JMP2360'(i895[1], i895[1], 0)∧(UIncreasing(JMP2360'(i895[1], i895[1], 0)), ≥))

We solved constraint (7) using rules (I), (II), (III), (IDP_CONSTANT_FOLD).

To summarize, we get the following constraints P for the following pairs.
• JMP2360'(i895, i895, i895) → COND_JMP2360(>(i895, 0), i895, i895, i895)
• (0 ≥ 0 ⇒ (UIncreasing(COND_JMP2360(>(i895[0], 0), i895[0], i895[0], i895[0])), ≥)∧[1] ≥ 0∧[2 + (-1)bso_10] ≥ 0)

• COND_JMP2360(TRUE, i895, i895, i895) → JMP2360'(i895, i895, 0)

The constraints for P> respective Pbound are constructed from P where we just replace every occurence of "t ≥ s" in P by "t > s" respective "t ≥ c". Here c stands for the fresh constant used for Pbound.
Using the following integer polynomial ordering the resulting constraints can be solved
Polynomial interpretation over integers with natural coefficients for all symbols [NONINF][POLO]:

POL(TRUE) = 0
POL(FALSE) = 0
POL(JMP2360'(x1, x2, x3)) = [2] + [2]x1
POL(COND_JMP2360(x1, x2, x3, x4)) = x2
POL(>(x1, x2)) = 0
POL(0) = 0

The following pairs are in P>:

JMP2360'(i895[0], i895[0], i895[0]) → COND_JMP2360(>(i895[0], 0), i895[0], i895[0], i895[0])
COND_JMP2360(TRUE, i895[1], i895[1], i895[1]) → JMP2360'(i895[1], i895[1], 0)

The following pairs are in Pbound:

JMP2360'(i895[0], i895[0], i895[0]) → COND_JMP2360(>(i895[0], 0), i895[0], i895[0], i895[0])
COND_JMP2360(TRUE, i895[1], i895[1], i895[1]) → JMP2360'(i895[1], i895[1], 0)

The following pairs are in P:
none

There are no usable rules.

### (67) Obligation:

IDP problem:
The following function symbols are pre-defined:
 != ~ 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

The following domains are used:
none

R is empty.

The integer pair graph is empty.

The set Q consists of the following terms:
JMP2360(x0, x0, x0)
Cond_JMP2360(TRUE, x0, x0, x0)

### (68) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs.

### (70) Obligation:

ITRS problem:

The following function symbols are pre-defined:
 != ~ 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

The TRS R consists of the following rules:
JMP2049(i128, i128, i128, i128, i389, i128) → Cond_JMP2049(i128 > 0 && i389 > i128, i128, i128, i128, i128, i389, i128)
Cond_JMP2049(TRUE, i128, i128, i128, i128, i389, i128) → JMP2049(i128, i128, i128, i128, i389 - i128, i128)
The set Q consists of the following terms:
JMP2049(x0, x0, x0, x0, x1, x0)
Cond_JMP2049(TRUE, x0, x0, x0, x0, x1, x0)

### (72) Obligation:

IDP problem:
The following function symbols are pre-defined:
 != ~ 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

The following domains are used:

Boolean, Integer

The ITRS R consists of the following rules:
JMP2049(i128, i128, i128, i128, i389, i128) → Cond_JMP2049(i128 > 0 && i389 > i128, i128, i128, i128, i128, i389, i128)
Cond_JMP2049(TRUE, i128, i128, i128, i128, i389, i128) → JMP2049(i128, i128, i128, i128, i389 - i128, i128)

The integer pair graph contains the following rules and edges:
(0): JMP2049'(i128[0], i128[0], i128[0], i128[0], i389[0], i128[0]) → COND_JMP2049(i128[0] > 0 && i389[0] > i128[0], i128[0], i128[0], i128[0], i128[0], i389[0], i128[0])
(1): COND_JMP2049(TRUE, i128[1], i128[1], i128[1], i128[1], i389[1], i128[1]) → JMP2049'(i128[1], i128[1], i128[1], i128[1], i389[1] - i128[1], i128[1])

(0) -> (1), if ((i128[0] > 0 && i389[0] > i128[0]* TRUE)∧(i389[0]* i389[1])∧(i128[0]* i128[1]))

(1) -> (0), if ((i128[1]* i128[0])∧(i389[1] - i128[1]* i389[0]))

The set Q consists of the following terms:
JMP2049(x0, x0, x0, x0, x1, x0)
Cond_JMP2049(TRUE, x0, x0, x0, x0, x1, x0)

### (73) UsableRulesProof (EQUIVALENT transformation)

As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R.

### (74) Obligation:

IDP problem:
The following function symbols are pre-defined:
 != ~ 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

The following domains are used:

Boolean, Integer

R is empty.

The integer pair graph contains the following rules and edges:
(0): JMP2049'(i128[0], i128[0], i128[0], i128[0], i389[0], i128[0]) → COND_JMP2049(i128[0] > 0 && i389[0] > i128[0], i128[0], i128[0], i128[0], i128[0], i389[0], i128[0])
(1): COND_JMP2049(TRUE, i128[1], i128[1], i128[1], i128[1], i389[1], i128[1]) → JMP2049'(i128[1], i128[1], i128[1], i128[1], i389[1] - i128[1], i128[1])

(0) -> (1), if ((i128[0] > 0 && i389[0] > i128[0]* TRUE)∧(i389[0]* i389[1])∧(i128[0]* i128[1]))

(1) -> (0), if ((i128[1]* i128[0])∧(i389[1] - i128[1]* i389[0]))

The set Q consists of the following terms:
JMP2049(x0, x0, x0, x0, x1, x0)
Cond_JMP2049(TRUE, x0, x0, x0, x0, x1, x0)

### (75) IDPNonInfProof (SOUND transformation)

The constraints were generated the following way:
The DP Problem is simplified using the Induction Calculus [NONINF] with the following steps:
Note that final constraints are written in bold face.

For Pair JMP2049'(i128, i128, i128, i128, i389, i128) → COND_JMP2049(&&(>(i128, 0), >(i389, i128)), i128, i128, i128, i128, i389, i128) the following chains were created:
• We consider the chain JMP2049'(i128[0], i128[0], i128[0], i128[0], i389[0], i128[0]) → COND_JMP2049(&&(>(i128[0], 0), >(i389[0], i128[0])), i128[0], i128[0], i128[0], i128[0], i389[0], i128[0]), COND_JMP2049(TRUE, i128[1], i128[1], i128[1], i128[1], i389[1], i128[1]) → JMP2049'(i128[1], i128[1], i128[1], i128[1], -(i389[1], i128[1]), i128[1]) which results in the following constraint:

(1)    (&&(>(i128[0], 0), >(i389[0], i128[0]))=TRUEi389[0]=i389[1]i128[0]=i128[1]JMP2049'(i128[0], i128[0], i128[0], i128[0], i389[0], i128[0])≥NonInfC∧JMP2049'(i128[0], i128[0], i128[0], i128[0], i389[0], i128[0])≥COND_JMP2049(&&(>(i128[0], 0), >(i389[0], i128[0])), i128[0], i128[0], i128[0], i128[0], i389[0], i128[0])∧(UIncreasing(COND_JMP2049(&&(>(i128[0], 0), >(i389[0], i128[0])), i128[0], i128[0], i128[0], i128[0], i389[0], i128[0])), ≥))

We simplified constraint (1) using rules (IV), (IDP_BOOLEAN) which results in the following new constraint:

(2)    (>(i128[0], 0)=TRUE>(i389[0], i128[0])=TRUEJMP2049'(i128[0], i128[0], i128[0], i128[0], i389[0], i128[0])≥NonInfC∧JMP2049'(i128[0], i128[0], i128[0], i128[0], i389[0], i128[0])≥COND_JMP2049(&&(>(i128[0], 0), >(i389[0], i128[0])), i128[0], i128[0], i128[0], i128[0], i389[0], i128[0])∧(UIncreasing(COND_JMP2049(&&(>(i128[0], 0), >(i389[0], i128[0])), i128[0], i128[0], i128[0], i128[0], i389[0], i128[0])), ≥))

We simplified constraint (2) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

(3)    (i128[0] + [-1] ≥ 0∧i389[0] + [-1] + [-1]i128[0] ≥ 0 ⇒ (UIncreasing(COND_JMP2049(&&(>(i128[0], 0), >(i389[0], i128[0])), i128[0], i128[0], i128[0], i128[0], i389[0], i128[0])), ≥)∧[(-1)bni_20 + (-1)Bound*bni_20] + [(-1)bni_20]i128[0] + [bni_20]i389[0] ≥ 0∧[(-1)bso_21] ≥ 0)

We simplified constraint (3) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

(4)    (i128[0] + [-1] ≥ 0∧i389[0] + [-1] + [-1]i128[0] ≥ 0 ⇒ (UIncreasing(COND_JMP2049(&&(>(i128[0], 0), >(i389[0], i128[0])), i128[0], i128[0], i128[0], i128[0], i389[0], i128[0])), ≥)∧[(-1)bni_20 + (-1)Bound*bni_20] + [(-1)bni_20]i128[0] + [bni_20]i389[0] ≥ 0∧[(-1)bso_21] ≥ 0)

We simplified constraint (4) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

(5)    (i128[0] + [-1] ≥ 0∧i389[0] + [-1] + [-1]i128[0] ≥ 0 ⇒ (UIncreasing(COND_JMP2049(&&(>(i128[0], 0), >(i389[0], i128[0])), i128[0], i128[0], i128[0], i128[0], i389[0], i128[0])), ≥)∧[(-1)bni_20 + (-1)Bound*bni_20] + [(-1)bni_20]i128[0] + [bni_20]i389[0] ≥ 0∧[(-1)bso_21] ≥ 0)

We simplified constraint (5) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

(6)    (i128[0] ≥ 0∧i389[0] + [-2] + [-1]i128[0] ≥ 0 ⇒ (UIncreasing(COND_JMP2049(&&(>(i128[0], 0), >(i389[0], i128[0])), i128[0], i128[0], i128[0], i128[0], i389[0], i128[0])), ≥)∧[(-2)bni_20 + (-1)Bound*bni_20] + [(-1)bni_20]i128[0] + [bni_20]i389[0] ≥ 0∧[(-1)bso_21] ≥ 0)

We simplified constraint (6) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

(7)    (i128[0] ≥ 0∧i389[0] ≥ 0 ⇒ (UIncreasing(COND_JMP2049(&&(>(i128[0], 0), >(i389[0], i128[0])), i128[0], i128[0], i128[0], i128[0], i389[0], i128[0])), ≥)∧[(-1)Bound*bni_20] + [bni_20]i389[0] ≥ 0∧[(-1)bso_21] ≥ 0)

For Pair COND_JMP2049(TRUE, i128, i128, i128, i128, i389, i128) → JMP2049'(i128, i128, i128, i128, -(i389, i128), i128) the following chains were created:
• We consider the chain JMP2049'(i128[0], i128[0], i128[0], i128[0], i389[0], i128[0]) → COND_JMP2049(&&(>(i128[0], 0), >(i389[0], i128[0])), i128[0], i128[0], i128[0], i128[0], i389[0], i128[0]), COND_JMP2049(TRUE, i128[1], i128[1], i128[1], i128[1], i389[1], i128[1]) → JMP2049'(i128[1], i128[1], i128[1], i128[1], -(i389[1], i128[1]), i128[1]), JMP2049'(i128[0], i128[0], i128[0], i128[0], i389[0], i128[0]) → COND_JMP2049(&&(>(i128[0], 0), >(i389[0], i128[0])), i128[0], i128[0], i128[0], i128[0], i389[0], i128[0]) which results in the following constraint:

(8)    (&&(>(i128[0], 0), >(i389[0], i128[0]))=TRUEi389[0]=i389[1]i128[0]=i128[1]i128[1]=i128[0]1-(i389[1], i128[1])=i389[0]1COND_JMP2049(TRUE, i128[1], i128[1], i128[1], i128[1], i389[1], i128[1])≥NonInfC∧COND_JMP2049(TRUE, i128[1], i128[1], i128[1], i128[1], i389[1], i128[1])≥JMP2049'(i128[1], i128[1], i128[1], i128[1], -(i389[1], i128[1]), i128[1])∧(UIncreasing(JMP2049'(i128[1], i128[1], i128[1], i128[1], -(i389[1], i128[1]), i128[1])), ≥))

We simplified constraint (8) using rules (III), (IV), (IDP_BOOLEAN) which results in the following new constraint:

(9)    (>(i128[0], 0)=TRUE>(i389[0], i128[0])=TRUECOND_JMP2049(TRUE, i128[0], i128[0], i128[0], i128[0], i389[0], i128[0])≥NonInfC∧COND_JMP2049(TRUE, i128[0], i128[0], i128[0], i128[0], i389[0], i128[0])≥JMP2049'(i128[0], i128[0], i128[0], i128[0], -(i389[0], i128[0]), i128[0])∧(UIncreasing(JMP2049'(i128[1], i128[1], i128[1], i128[1], -(i389[1], i128[1]), i128[1])), ≥))

We simplified constraint (9) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

(10)    (i128[0] + [-1] ≥ 0∧i389[0] + [-1] + [-1]i128[0] ≥ 0 ⇒ (UIncreasing(JMP2049'(i128[1], i128[1], i128[1], i128[1], -(i389[1], i128[1]), i128[1])), ≥)∧[(-1)bni_22 + (-1)Bound*bni_22] + [(-1)bni_22]i128[0] + [bni_22]i389[0] ≥ 0∧[(-1)bso_23] + i128[0] ≥ 0)

We simplified constraint (10) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

(11)    (i128[0] + [-1] ≥ 0∧i389[0] + [-1] + [-1]i128[0] ≥ 0 ⇒ (UIncreasing(JMP2049'(i128[1], i128[1], i128[1], i128[1], -(i389[1], i128[1]), i128[1])), ≥)∧[(-1)bni_22 + (-1)Bound*bni_22] + [(-1)bni_22]i128[0] + [bni_22]i389[0] ≥ 0∧[(-1)bso_23] + i128[0] ≥ 0)

We simplified constraint (11) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

(12)    (i128[0] + [-1] ≥ 0∧i389[0] + [-1] + [-1]i128[0] ≥ 0 ⇒ (UIncreasing(JMP2049'(i128[1], i128[1], i128[1], i128[1], -(i389[1], i128[1]), i128[1])), ≥)∧[(-1)bni_22 + (-1)Bound*bni_22] + [(-1)bni_22]i128[0] + [bni_22]i389[0] ≥ 0∧[(-1)bso_23] + i128[0] ≥ 0)

We simplified constraint (12) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

(13)    (i128[0] ≥ 0∧i389[0] + [-2] + [-1]i128[0] ≥ 0 ⇒ (UIncreasing(JMP2049'(i128[1], i128[1], i128[1], i128[1], -(i389[1], i128[1]), i128[1])), ≥)∧[(-2)bni_22 + (-1)Bound*bni_22] + [(-1)bni_22]i128[0] + [bni_22]i389[0] ≥ 0∧[1 + (-1)bso_23] + i128[0] ≥ 0)

We simplified constraint (13) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

(14)    (i128[0] ≥ 0∧i389[0] ≥ 0 ⇒ (UIncreasing(JMP2049'(i128[1], i128[1], i128[1], i128[1], -(i389[1], i128[1]), i128[1])), ≥)∧[(-1)Bound*bni_22] + [bni_22]i389[0] ≥ 0∧[1 + (-1)bso_23] + i128[0] ≥ 0)

To summarize, we get the following constraints P for the following pairs.
• JMP2049'(i128, i128, i128, i128, i389, i128) → COND_JMP2049(&&(>(i128, 0), >(i389, i128)), i128, i128, i128, i128, i389, i128)
• (i128[0] ≥ 0∧i389[0] ≥ 0 ⇒ (UIncreasing(COND_JMP2049(&&(>(i128[0], 0), >(i389[0], i128[0])), i128[0], i128[0], i128[0], i128[0], i389[0], i128[0])), ≥)∧[(-1)Bound*bni_20] + [bni_20]i389[0] ≥ 0∧[(-1)bso_21] ≥ 0)

• COND_JMP2049(TRUE, i128, i128, i128, i128, i389, i128) → JMP2049'(i128, i128, i128, i128, -(i389, i128), i128)
• (i128[0] ≥ 0∧i389[0] ≥ 0 ⇒ (UIncreasing(JMP2049'(i128[1], i128[1], i128[1], i128[1], -(i389[1], i128[1]), i128[1])), ≥)∧[(-1)Bound*bni_22] + [bni_22]i389[0] ≥ 0∧[1 + (-1)bso_23] + i128[0] ≥ 0)

The constraints for P> respective Pbound are constructed from P where we just replace every occurence of "t ≥ s" in P by "t > s" respective "t ≥ c". Here c stands for the fresh constant used for Pbound.
Using the following integer polynomial ordering the resulting constraints can be solved
Polynomial interpretation over integers[POLO]:

POL(TRUE) = [2]
POL(FALSE) = [3]
POL(JMP2049'(x1, x2, x3, x4, x5, x6)) = [-1] + [2]x6 + x5 + [-1]x3 + [-1]x2 + [-1]x1
POL(COND_JMP2049(x1, x2, x3, x4, x5, x6, x7)) = [-1] + x7 + x6 + x5 + [-1]x4 + [-1]x3 + [-1]x2
POL(&&(x1, x2)) = [-1]
POL(>(x1, x2)) = [-1]
POL(0) = 0
POL(-(x1, x2)) = x1 + [-1]x2

The following pairs are in P>:

COND_JMP2049(TRUE, i128[1], i128[1], i128[1], i128[1], i389[1], i128[1]) → JMP2049'(i128[1], i128[1], i128[1], i128[1], -(i389[1], i128[1]), i128[1])

The following pairs are in Pbound:

JMP2049'(i128[0], i128[0], i128[0], i128[0], i389[0], i128[0]) → COND_JMP2049(&&(>(i128[0], 0), >(i389[0], i128[0])), i128[0], i128[0], i128[0], i128[0], i389[0], i128[0])
COND_JMP2049(TRUE, i128[1], i128[1], i128[1], i128[1], i389[1], i128[1]) → JMP2049'(i128[1], i128[1], i128[1], i128[1], -(i389[1], i128[1]), i128[1])

The following pairs are in P:

JMP2049'(i128[0], i128[0], i128[0], i128[0], i389[0], i128[0]) → COND_JMP2049(&&(>(i128[0], 0), >(i389[0], i128[0])), i128[0], i128[0], i128[0], i128[0], i389[0], i128[0])

At least the following rules have been oriented under context sensitive arithmetic replacement:

TRUE1&&(TRUE, TRUE)1
FALSE1&&(TRUE, FALSE)1
FALSE1&&(FALSE, FALSE)1

### (77) Obligation:

IDP problem:
The following function symbols are pre-defined:
 != ~ 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

The following domains are used:

Boolean, Integer

R is empty.

The integer pair graph contains the following rules and edges:
(0): JMP2049'(i128[0], i128[0], i128[0], i128[0], i389[0], i128[0]) → COND_JMP2049(i128[0] > 0 && i389[0] > i128[0], i128[0], i128[0], i128[0], i128[0], i389[0], i128[0])

The set Q consists of the following terms:
JMP2049(x0, x0, x0, x0, x1, x0)
Cond_JMP2049(TRUE, x0, x0, x0, x0, x1, x0)

### (78) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 1 less node.

### (80) Obligation:

IDP problem:
The following function symbols are pre-defined:
 != ~ 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

The following domains are used:
none

R is empty.

The integer pair graph is empty.

The set Q consists of the following terms:
JMP2049(x0, x0, x0, x0, x1, x0)
Cond_JMP2049(TRUE, x0, x0, x0, x0, x1, x0)

### (81) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs.

### (83) Obligation:

ITRS problem:

The following function symbols are pre-defined:
 != ~ 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

The TRS R consists of the following rules:
NE2054(i65, i65, i65, i65, i65, i65, i65, i65, i65, i65) → Cond_NE2054(i65 > 0 && !(i65 = i65), i65, i65, i65, i65, i65, i65, i65, i65, i65, i65)
Cond_NE2054(TRUE, i65, i65, i65, i65, i65, i65, i65, i65, i65, i65) → NE2054(i65, i65, i65, i65, i65, i65, i65, i65, i65, i65)
JMP1672(i65, i65, i65) → Cond_JMP1672(i65 > 0 && !(i65 = i65), i65, i65, i65)
Cond_JMP1672(TRUE, i65, i65, i65) → NE2054(i65, i65, i65, i65, i65, i65, i65, i65, i65, i65)
NE2054(i65, i65, i277, i277, i65, i277, i65, i277, i65, i277) → Cond_NE20541(i277 < i65 && i65 <= i277 && i277 > 0, i65, i65, i277, i277, i65, i277, i65, i277, i65, i277)
Cond_NE20541(TRUE, i65, i65, i277, i277, i65, i277, i65, i277, i65, i277) → JMP1672(i65, i65, i277)
JMP1672(i65, i65, i277) → Cond_JMP16721(i277 < i65 && i65 <= i277 && i65 >= 0 && !(i277 = 0), i65, i65, i277)
Cond_JMP16721(TRUE, i65, i65, i277) → JMP1672(i65, i65, i277)
NE2054(i277, i277, i277, i277, i277, i277, i277, i277, i277, i277) → Cond_NE20542(i277 > 0, i277, i277, i277, i277, i277, i277, i277, i277, i277, i277)
Cond_NE20542(TRUE, i277, i277, i277, i277, i277, i277, i277, i277, i277, i277) → JMP1672(i277, i277, 0)
JMP1672(i277, i277, i277) → Cond_JMP16722(i277 > 0, i277, i277, i277)
Cond_JMP16722(TRUE, i277, i277, i277) → JMP1672(i277, i277, 0)
The set Q consists of the following terms:
Cond_NE2054(TRUE, x0, x0, x0, x0, x0, x0, x0, x0, x0, x0)
Cond_JMP1672(TRUE, x0, x0, x0)
NE2054(x0, x0, x1, x1, x0, x1, x0, x1, x0, x1)
Cond_NE20541(TRUE, x0, x0, x1, x1, x0, x1, x0, x1, x0, x1)
JMP1672(x0, x0, x1)
Cond_JMP16721(TRUE, x0, x0, x1)
Cond_NE20542(TRUE, x0, x0, x0, x0, x0, x0, x0, x0, x0, x0)
Cond_JMP16722(TRUE, x0, x0, x0)

### (85) Obligation:

IDP problem:
The following function symbols are pre-defined:
 != ~ 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

The following domains are used:

Boolean, Integer

The ITRS R consists of the following rules:
NE2054(i65, i65, i65, i65, i65, i65, i65, i65, i65, i65) → Cond_NE2054(i65 > 0 && !(i65 = i65), i65, i65, i65, i65, i65, i65, i65, i65, i65, i65)
Cond_NE2054(TRUE, i65, i65, i65, i65, i65, i65, i65, i65, i65, i65) → NE2054(i65, i65, i65, i65, i65, i65, i65, i65, i65, i65)
JMP1672(i65, i65, i65) → Cond_JMP1672(i65 > 0 && !(i65 = i65), i65, i65, i65)
Cond_JMP1672(TRUE, i65, i65, i65) → NE2054(i65, i65, i65, i65, i65, i65, i65, i65, i65, i65)
NE2054(i65, i65, i277, i277, i65, i277, i65, i277, i65, i277) → Cond_NE20541(i277 < i65 && i65 <= i277 && i277 > 0, i65, i65, i277, i277, i65, i277, i65, i277, i65, i277)
Cond_NE20541(TRUE, i65, i65, i277, i277, i65, i277, i65, i277, i65, i277) → JMP1672(i65, i65, i277)
JMP1672(i65, i65, i277) → Cond_JMP16721(i277 < i65 && i65 <= i277 && i65 >= 0 && !(i277 = 0), i65, i65, i277)
Cond_JMP16721(TRUE, i65, i65, i277) → JMP1672(i65, i65, i277)
NE2054(i277, i277, i277, i277, i277, i277, i277, i277, i277, i277) → Cond_NE20542(i277 > 0, i277, i277, i277, i277, i277, i277, i277, i277, i277, i277)
Cond_NE20542(TRUE, i277, i277, i277, i277, i277, i277, i277, i277, i277, i277) → JMP1672(i277, i277, 0)
JMP1672(i277, i277, i277) → Cond_JMP16722(i277 > 0, i277, i277, i277)
Cond_JMP16722(TRUE, i277, i277, i277) → JMP1672(i277, i277, 0)

The integer pair graph contains the following rules and edges:
(0): NE2054'(i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0]) → COND_NE2054(i65[0] > 0 && !(i65[0] = i65[0]), i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0])
(1): COND_NE2054(TRUE, i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1]) → NE2054'(i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1])
(2): JMP1672'(i65[2], i65[2], i65[2]) → COND_JMP1672(i65[2] > 0 && !(i65[2] = i65[2]), i65[2], i65[2], i65[2])
(3): COND_JMP1672(TRUE, i65[3], i65[3], i65[3]) → NE2054'(i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3])
(4): NE2054'(i65[4], i65[4], i277[4], i277[4], i65[4], i277[4], i65[4], i277[4], i65[4], i277[4]) → COND_NE20541(i277[4] < i65[4] && i65[4] <= i277[4] && i277[4] > 0, i65[4], i65[4], i277[4], i277[4], i65[4], i277[4], i65[4], i277[4], i65[4], i277[4])
(5): COND_NE20541(TRUE, i65[5], i65[5], i277[5], i277[5], i65[5], i277[5], i65[5], i277[5], i65[5], i277[5]) → JMP1672'(i65[5], i65[5], i277[5])
(6): JMP1672'(i65[6], i65[6], i277[6]) → COND_JMP16721(i277[6] < i65[6] && i65[6] <= i277[6] && i65[6] >= 0 && !(i277[6] = 0), i65[6], i65[6], i277[6])
(7): COND_JMP16721(TRUE, i65[7], i65[7], i277[7]) → JMP1672'(i65[7], i65[7], i277[7])
(8): NE2054'(i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8]) → COND_NE20542(i277[8] > 0, i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8])
(9): COND_NE20542(TRUE, i277[9], i277[9], i277[9], i277[9], i277[9], i277[9], i277[9], i277[9], i277[9], i277[9]) → JMP1672'(i277[9], i277[9], 0)
(10): JMP1672'(i277[10], i277[10], i277[10]) → COND_JMP16722(i277[10] > 0, i277[10], i277[10], i277[10])
(11): COND_JMP16722(TRUE, i277[11], i277[11], i277[11]) → JMP1672'(i277[11], i277[11], 0)

(0) -> (1), if ((i65[0] > 0 && !(i65[0] = i65[0]) →* TRUE)∧(i65[0]* i65[1]))

(1) -> (0), if ((i65[1]* i65[0]))

(1) -> (4), if ((i65[1]* i65[4])∧(i65[1]* i277[4]))

(1) -> (8), if ((i65[1]* i277[8]))

(2) -> (3), if ((i65[2]* i65[3])∧(i65[2] > 0 && !(i65[2] = i65[2]) →* TRUE))

(3) -> (0), if ((i65[3]* i65[0]))

(3) -> (4), if ((i65[3]* i277[4])∧(i65[3]* i65[4]))

(3) -> (8), if ((i65[3]* i277[8]))

(4) -> (5), if ((i65[4]* i65[5])∧(i277[4] < i65[4] && i65[4] <= i277[4] && i277[4] > 0* TRUE)∧(i277[4]* i277[5]))

(5) -> (2), if ((i65[5]* i65[2])∧(i277[5]* i65[2]))

(5) -> (6), if ((i277[5]* i277[6])∧(i65[5]* i65[6]))

(5) -> (10), if ((i65[5]* i277[10])∧(i277[5]* i277[10]))

(6) -> (7), if ((i277[6]* i277[7])∧(i277[6] < i65[6] && i65[6] <= i277[6] && i65[6] >= 0 && !(i277[6] = 0) →* TRUE)∧(i65[6]* i65[7]))

(7) -> (2), if ((i277[7]* i65[2])∧(i65[7]* i65[2]))

(7) -> (6), if ((i277[7]* i277[6])∧(i65[7]* i65[6]))

(7) -> (10), if ((i277[7]* i277[10])∧(i65[7]* i277[10]))

(8) -> (9), if ((i277[8]* i277[9])∧(i277[8] > 0* TRUE))

(9) -> (2), if ((0* i65[2])∧(i277[9]* i65[2]))

(9) -> (6), if ((0* i277[6])∧(i277[9]* i65[6]))

(9) -> (10), if ((0* i277[10])∧(i277[9]* i277[10]))

(10) -> (11), if ((i277[10] > 0* TRUE)∧(i277[10]* i277[11]))

(11) -> (2), if ((0* i65[2])∧(i277[11]* i65[2]))

(11) -> (6), if ((0* i277[6])∧(i277[11]* i65[6]))

(11) -> (10), if ((i277[11]* i277[10])∧(0* i277[10]))

The set Q consists of the following terms:
Cond_NE2054(TRUE, x0, x0, x0, x0, x0, x0, x0, x0, x0, x0)
Cond_JMP1672(TRUE, x0, x0, x0)
NE2054(x0, x0, x1, x1, x0, x1, x0, x1, x0, x1)
Cond_NE20541(TRUE, x0, x0, x1, x1, x0, x1, x0, x1, x0, x1)
JMP1672(x0, x0, x1)
Cond_JMP16721(TRUE, x0, x0, x1)
Cond_NE20542(TRUE, x0, x0, x0, x0, x0, x0, x0, x0, x0, x0)
Cond_JMP16722(TRUE, x0, x0, x0)

### (86) UsableRulesProof (EQUIVALENT transformation)

As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R.

### (87) Obligation:

IDP problem:
The following function symbols are pre-defined:
 != ~ 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

The following domains are used:

Boolean, Integer

R is empty.

The integer pair graph contains the following rules and edges:
(0): NE2054'(i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0]) → COND_NE2054(i65[0] > 0 && !(i65[0] = i65[0]), i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0])
(1): COND_NE2054(TRUE, i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1]) → NE2054'(i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1])
(2): JMP1672'(i65[2], i65[2], i65[2]) → COND_JMP1672(i65[2] > 0 && !(i65[2] = i65[2]), i65[2], i65[2], i65[2])
(3): COND_JMP1672(TRUE, i65[3], i65[3], i65[3]) → NE2054'(i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3])
(4): NE2054'(i65[4], i65[4], i277[4], i277[4], i65[4], i277[4], i65[4], i277[4], i65[4], i277[4]) → COND_NE20541(i277[4] < i65[4] && i65[4] <= i277[4] && i277[4] > 0, i65[4], i65[4], i277[4], i277[4], i65[4], i277[4], i65[4], i277[4], i65[4], i277[4])
(5): COND_NE20541(TRUE, i65[5], i65[5], i277[5], i277[5], i65[5], i277[5], i65[5], i277[5], i65[5], i277[5]) → JMP1672'(i65[5], i65[5], i277[5])
(6): JMP1672'(i65[6], i65[6], i277[6]) → COND_JMP16721(i277[6] < i65[6] && i65[6] <= i277[6] && i65[6] >= 0 && !(i277[6] = 0), i65[6], i65[6], i277[6])
(7): COND_JMP16721(TRUE, i65[7], i65[7], i277[7]) → JMP1672'(i65[7], i65[7], i277[7])
(8): NE2054'(i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8]) → COND_NE20542(i277[8] > 0, i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8])
(9): COND_NE20542(TRUE, i277[9], i277[9], i277[9], i277[9], i277[9], i277[9], i277[9], i277[9], i277[9], i277[9]) → JMP1672'(i277[9], i277[9], 0)
(10): JMP1672'(i277[10], i277[10], i277[10]) → COND_JMP16722(i277[10] > 0, i277[10], i277[10], i277[10])
(11): COND_JMP16722(TRUE, i277[11], i277[11], i277[11]) → JMP1672'(i277[11], i277[11], 0)

(0) -> (1), if ((i65[0] > 0 && !(i65[0] = i65[0]) →* TRUE)∧(i65[0]* i65[1]))

(1) -> (0), if ((i65[1]* i65[0]))

(1) -> (4), if ((i65[1]* i65[4])∧(i65[1]* i277[4]))

(1) -> (8), if ((i65[1]* i277[8]))

(2) -> (3), if ((i65[2]* i65[3])∧(i65[2] > 0 && !(i65[2] = i65[2]) →* TRUE))

(3) -> (0), if ((i65[3]* i65[0]))

(3) -> (4), if ((i65[3]* i277[4])∧(i65[3]* i65[4]))

(3) -> (8), if ((i65[3]* i277[8]))

(4) -> (5), if ((i65[4]* i65[5])∧(i277[4] < i65[4] && i65[4] <= i277[4] && i277[4] > 0* TRUE)∧(i277[4]* i277[5]))

(5) -> (2), if ((i65[5]* i65[2])∧(i277[5]* i65[2]))

(5) -> (6), if ((i277[5]* i277[6])∧(i65[5]* i65[6]))

(5) -> (10), if ((i65[5]* i277[10])∧(i277[5]* i277[10]))

(6) -> (7), if ((i277[6]* i277[7])∧(i277[6] < i65[6] && i65[6] <= i277[6] && i65[6] >= 0 && !(i277[6] = 0) →* TRUE)∧(i65[6]* i65[7]))

(7) -> (2), if ((i277[7]* i65[2])∧(i65[7]* i65[2]))

(7) -> (6), if ((i277[7]* i277[6])∧(i65[7]* i65[6]))

(7) -> (10), if ((i277[7]* i277[10])∧(i65[7]* i277[10]))

(8) -> (9), if ((i277[8]* i277[9])∧(i277[8] > 0* TRUE))

(9) -> (2), if ((0* i65[2])∧(i277[9]* i65[2]))

(9) -> (6), if ((0* i277[6])∧(i277[9]* i65[6]))

(9) -> (10), if ((0* i277[10])∧(i277[9]* i277[10]))

(10) -> (11), if ((i277[10] > 0* TRUE)∧(i277[10]* i277[11]))

(11) -> (2), if ((0* i65[2])∧(i277[11]* i65[2]))

(11) -> (6), if ((0* i277[6])∧(i277[11]* i65[6]))

(11) -> (10), if ((i277[11]* i277[10])∧(0* i277[10]))

The set Q consists of the following terms:
Cond_NE2054(TRUE, x0, x0, x0, x0, x0, x0, x0, x0, x0, x0)
Cond_JMP1672(TRUE, x0, x0, x0)
NE2054(x0, x0, x1, x1, x0, x1, x0, x1, x0, x1)
Cond_NE20541(TRUE, x0, x0, x1, x1, x0, x1, x0, x1, x0, x1)
JMP1672(x0, x0, x1)
Cond_JMP16721(TRUE, x0, x0, x1)
Cond_NE20542(TRUE, x0, x0, x0, x0, x0, x0, x0, x0, x0, x0)
Cond_JMP16722(TRUE, x0, x0, x0)

### (88) IDPNonInfProof (SOUND transformation)

The constraints were generated the following way:
The DP Problem is simplified using the Induction Calculus [NONINF] with the following steps:
Note that final constraints are written in bold face.

For Pair NE2054'(i65, i65, i65, i65, i65, i65, i65, i65, i65, i65) → COND_NE2054(&&(>(i65, 0), !(=(i65, i65))), i65, i65, i65, i65, i65, i65, i65, i65, i65, i65) the following chains were created:
• We consider the chain NE2054'(i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0]) → COND_NE2054(&&(>(i65[0], 0), !(=(i65[0], i65[0]))), i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0]), COND_NE2054(TRUE, i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1]) → NE2054'(i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1]) which results in the following constraint:

(1)    (&&(>(i65[0], 0), !(=(i65[0], i65[0])))=TRUEi65[0]=i65[1]NE2054'(i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0])≥NonInfC∧NE2054'(i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0])≥COND_NE2054(&&(>(i65[0], 0), !(=(i65[0], i65[0]))), i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0])∧(UIncreasing(COND_NE2054(&&(>(i65[0], 0), !(=(i65[0], i65[0]))), i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0])), ≥))

We simplified constraint (1) using rules (IV), (IDP_BOOLEAN) which results in the following new constraints:

(2)    (>(i65[0], 0)=TRUE<(i65[0], i65[0])=TRUENE2054'(i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0])≥NonInfC∧NE2054'(i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0])≥COND_NE2054(&&(>(i65[0], 0), !(=(i65[0], i65[0]))), i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0])∧(UIncreasing(COND_NE2054(&&(>(i65[0], 0), !(=(i65[0], i65[0]))), i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0])), ≥))

(3)    (>(i65[0], 0)=TRUE>(i65[0], i65[0])=TRUENE2054'(i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0])≥NonInfC∧NE2054'(i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0])≥COND_NE2054(&&(>(i65[0], 0), !(=(i65[0], i65[0]))), i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0])∧(UIncreasing(COND_NE2054(&&(>(i65[0], 0), !(=(i65[0], i65[0]))), i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0])), ≥))

We simplified constraint (2) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

(4)    (i65[0] + [-1] ≥ 0∧[-1] ≥ 0 ⇒ (UIncreasing(COND_NE2054(&&(>(i65[0], 0), !(=(i65[0], i65[0]))), i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0])), ≥)∧[(2)bni_76 + (-1)Bound*bni_76] + [(-2)bni_76]i65[0] ≥ 0∧[(-1)bso_77] ≥ 0)

We simplified constraint (3) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

(5)    (i65[0] + [-1] ≥ 0∧[-1] ≥ 0 ⇒ (UIncreasing(COND_NE2054(&&(>(i65[0], 0), !(=(i65[0], i65[0]))), i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0])), ≥)∧[(2)bni_76 + (-1)Bound*bni_76] + [(-2)bni_76]i65[0] ≥ 0∧[(-1)bso_77] ≥ 0)

We simplified constraint (4) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

(6)    (i65[0] + [-1] ≥ 0∧[-1] ≥ 0 ⇒ (UIncreasing(COND_NE2054(&&(>(i65[0], 0), !(=(i65[0], i65[0]))), i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0])), ≥)∧[(2)bni_76 + (-1)Bound*bni_76] + [(-2)bni_76]i65[0] ≥ 0∧[(-1)bso_77] ≥ 0)

We simplified constraint (5) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

(7)    (i65[0] + [-1] ≥ 0∧[-1] ≥ 0 ⇒ (UIncreasing(COND_NE2054(&&(>(i65[0], 0), !(=(i65[0], i65[0]))), i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0])), ≥)∧[(2)bni_76 + (-1)Bound*bni_76] + [(-2)bni_76]i65[0] ≥ 0∧[(-1)bso_77] ≥ 0)

We simplified constraint (6) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

(8)    (i65[0] + [-1] ≥ 0∧[-1] ≥ 0 ⇒ (UIncreasing(COND_NE2054(&&(>(i65[0], 0), !(=(i65[0], i65[0]))), i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0])), ≥)∧[(2)bni_76 + (-1)Bound*bni_76] + [(-2)bni_76]i65[0] ≥ 0∧[(-1)bso_77] ≥ 0)

We simplified constraint (7) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

(9)    (i65[0] + [-1] ≥ 0∧[-1] ≥ 0 ⇒ (UIncreasing(COND_NE2054(&&(>(i65[0], 0), !(=(i65[0], i65[0]))), i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0])), ≥)∧[(2)bni_76 + (-1)Bound*bni_76] + [(-2)bni_76]i65[0] ≥ 0∧[(-1)bso_77] ≥ 0)

We solved constraint (8) using rule (IDP_SMT_SPLIT).We solved constraint (9) using rule (IDP_SMT_SPLIT).

For Pair COND_NE2054(TRUE, i65, i65, i65, i65, i65, i65, i65, i65, i65, i65) → NE2054'(i65, i65, i65, i65, i65, i65, i65, i65, i65, i65) the following chains were created:
• We consider the chain COND_NE2054(TRUE, i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1]) → NE2054'(i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1]), NE2054'(i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0]) → COND_NE2054(&&(>(i65[0], 0), !(=(i65[0], i65[0]))), i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0]) which results in the following constraint:

(10)    (i65[1]=i65[0]COND_NE2054(TRUE, i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1])≥NonInfC∧COND_NE2054(TRUE, i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1])≥NE2054'(i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1])∧(UIncreasing(NE2054'(i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1])), ≥))

We simplified constraint (10) using rule (IV) which results in the following new constraint:

(11)    (COND_NE2054(TRUE, i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1])≥NonInfC∧COND_NE2054(TRUE, i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1])≥NE2054'(i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1])∧(UIncreasing(NE2054'(i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1])), ≥))

We simplified constraint (11) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

(12)    ((UIncreasing(NE2054'(i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1])), ≥)∧[(-1)bso_79] ≥ 0)

We simplified constraint (12) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

(13)    ((UIncreasing(NE2054'(i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1])), ≥)∧[(-1)bso_79] ≥ 0)

We simplified constraint (13) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

(14)    ((UIncreasing(NE2054'(i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1])), ≥)∧[(-1)bso_79] ≥ 0)

We simplified constraint (14) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

(15)    ((UIncreasing(NE2054'(i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1])), ≥)∧0 = 0∧[(-1)bso_79] ≥ 0)

• We consider the chain COND_NE2054(TRUE, i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1]) → NE2054'(i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1]), NE2054'(i65[4], i65[4], i277[4], i277[4], i65[4], i277[4], i65[4], i277[4], i65[4], i277[4]) → COND_NE20541(&&(&&(<(i277[4], i65[4]), <=(i65[4], i277[4])), >(i277[4], 0)), i65[4], i65[4], i277[4], i277[4], i65[4], i277[4], i65[4], i277[4], i65[4], i277[4]) which results in the following constraint:

(16)    (i65[1]=i65[4]i65[1]=i277[4]COND_NE2054(TRUE, i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1])≥NonInfC∧COND_NE2054(TRUE, i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1])≥NE2054'(i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1])∧(UIncreasing(NE2054'(i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1])), ≥))

We simplified constraint (16) using rule (IV) which results in the following new constraint:

(17)    (COND_NE2054(TRUE, i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1])≥NonInfC∧COND_NE2054(TRUE, i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1])≥NE2054'(i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1])∧(UIncreasing(NE2054'(i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1])), ≥))

We simplified constraint (17) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

(18)    ((UIncreasing(NE2054'(i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1])), ≥)∧[(-1)bso_79] ≥ 0)

We simplified constraint (18) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

(19)    ((UIncreasing(NE2054'(i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1])), ≥)∧[(-1)bso_79] ≥ 0)

We simplified constraint (19) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

(20)    ((UIncreasing(NE2054'(i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1])), ≥)∧[(-1)bso_79] ≥ 0)

We simplified constraint (20) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

(21)    ((UIncreasing(NE2054'(i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1])), ≥)∧0 = 0∧[(-1)bso_79] ≥ 0)

• We consider the chain COND_NE2054(TRUE, i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1]) → NE2054'(i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1]), NE2054'(i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8]) → COND_NE20542(>(i277[8], 0), i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8]) which results in the following constraint:

(22)    (i65[1]=i277[8]COND_NE2054(TRUE, i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1])≥NonInfC∧COND_NE2054(TRUE, i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1])≥NE2054'(i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1])∧(UIncreasing(NE2054'(i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1])), ≥))

We simplified constraint (22) using rule (IV) which results in the following new constraint:

(23)    (COND_NE2054(TRUE, i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1])≥NonInfC∧COND_NE2054(TRUE, i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1])≥NE2054'(i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1])∧(UIncreasing(NE2054'(i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1])), ≥))

We simplified constraint (23) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

(24)    ((UIncreasing(NE2054'(i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1])), ≥)∧[(-1)bso_79] ≥ 0)

We simplified constraint (24) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

(25)    ((UIncreasing(NE2054'(i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1])), ≥)∧[(-1)bso_79] ≥ 0)

We simplified constraint (25) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

(26)    ((UIncreasing(NE2054'(i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1])), ≥)∧[(-1)bso_79] ≥ 0)

We simplified constraint (26) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

(27)    ((UIncreasing(NE2054'(i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1])), ≥)∧0 = 0∧[(-1)bso_79] ≥ 0)

For Pair JMP1672'(i65, i65, i65) → COND_JMP1672(&&(>(i65, 0), !(=(i65, i65))), i65, i65, i65) the following chains were created:
• We consider the chain JMP1672'(i65[2], i65[2], i65[2]) → COND_JMP1672(&&(>(i65[2], 0), !(=(i65[2], i65[2]))), i65[2], i65[2], i65[2]), COND_JMP1672(TRUE, i65[3], i65[3], i65[3]) → NE2054'(i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3]) which results in the following constraint:

(28)    (i65[2]=i65[3]&&(>(i65[2], 0), !(=(i65[2], i65[2])))=TRUEJMP1672'(i65[2], i65[2], i65[2])≥NonInfC∧JMP1672'(i65[2], i65[2], i65[2])≥COND_JMP1672(&&(>(i65[2], 0), !(=(i65[2], i65[2]))), i65[2], i65[2], i65[2])∧(UIncreasing(COND_JMP1672(&&(>(i65[2], 0), !(=(i65[2], i65[2]))), i65[2], i65[2], i65[2])), ≥))

We simplified constraint (28) using rules (IV), (IDP_BOOLEAN) which results in the following new constraints:

(29)    (>(i65[2], 0)=TRUE<(i65[2], i65[2])=TRUEJMP1672'(i65[2], i65[2], i65[2])≥NonInfC∧JMP1672'(i65[2], i65[2], i65[2])≥COND_JMP1672(&&(>(i65[2], 0), !(=(i65[2], i65[2]))), i65[2], i65[2], i65[2])∧(UIncreasing(COND_JMP1672(&&(>(i65[2], 0), !(=(i65[2], i65[2]))), i65[2], i65[2], i65[2])), ≥))

(30)    (>(i65[2], 0)=TRUE>(i65[2], i65[2])=TRUEJMP1672'(i65[2], i65[2], i65[2])≥NonInfC∧JMP1672'(i65[2], i65[2], i65[2])≥COND_JMP1672(&&(>(i65[2], 0), !(=(i65[2], i65[2]))), i65[2], i65[2], i65[2])∧(UIncreasing(COND_JMP1672(&&(>(i65[2], 0), !(=(i65[2], i65[2]))), i65[2], i65[2], i65[2])), ≥))

We simplified constraint (29) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

(31)    (i65[2] + [-1] ≥ 0∧[-1] ≥ 0 ⇒ (UIncreasing(COND_JMP1672(&&(>(i65[2], 0), !(=(i65[2], i65[2]))), i65[2], i65[2], i65[2])), ≥)∧[(-1)bni_80 + (-1)Bound*bni_80] ≥ 0∧[-3 + (-1)bso_81] + [2]i65[2] ≥ 0)

We simplified constraint (30) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

(32)    (i65[2] + [-1] ≥ 0∧[-1] ≥ 0 ⇒ (UIncreasing(COND_JMP1672(&&(>(i65[2], 0), !(=(i65[2], i65[2]))), i65[2], i65[2], i65[2])), ≥)∧[(-1)bni_80 + (-1)Bound*bni_80] ≥ 0∧[-3 + (-1)bso_81] + [2]i65[2] ≥ 0)

We simplified constraint (31) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

(33)    (i65[2] + [-1] ≥ 0∧[-1] ≥ 0 ⇒ (UIncreasing(COND_JMP1672(&&(>(i65[2], 0), !(=(i65[2], i65[2]))), i65[2], i65[2], i65[2])), ≥)∧[(-1)bni_80 + (-1)Bound*bni_80] ≥ 0∧[-3 + (-1)bso_81] + [2]i65[2] ≥ 0)

We simplified constraint (32) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

(34)    (i65[2] + [-1] ≥ 0∧[-1] ≥ 0 ⇒ (UIncreasing(COND_JMP1672(&&(>(i65[2], 0), !(=(i65[2], i65[2]))), i65[2], i65[2], i65[2])), ≥)∧[(-1)bni_80 + (-1)Bound*bni_80] ≥ 0∧[-3 + (-1)bso_81] + [2]i65[2] ≥ 0)

We simplified constraint (33) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

(35)    (i65[2] + [-1] ≥ 0∧[-1] ≥ 0 ⇒ (UIncreasing(COND_JMP1672(&&(>(i65[2], 0), !(=(i65[2], i65[2]))), i65[2], i65[2], i65[2])), ≥)∧[(-1)bni_80 + (-1)Bound*bni_80] ≥ 0∧[-3 + (-1)bso_81] + [2]i65[2] ≥ 0)

We simplified constraint (34) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

(36)    (i65[2] + [-1] ≥ 0∧[-1] ≥ 0 ⇒ (UIncreasing(COND_JMP1672(&&(>(i65[2], 0), !(=(i65[2], i65[2]))), i65[2], i65[2], i65[2])), ≥)∧[(-1)bni_80 + (-1)Bound*bni_80] ≥ 0∧[-3 + (-1)bso_81] + [2]i65[2] ≥ 0)

We solved constraint (35) using rule (IDP_SMT_SPLIT).We solved constraint (36) using rule (IDP_SMT_SPLIT).

For Pair COND_JMP1672(TRUE, i65, i65, i65) → NE2054'(i65, i65, i65, i65, i65, i65, i65, i65, i65, i65) the following chains were created:
• We consider the chain COND_JMP1672(TRUE, i65[3], i65[3], i65[3]) → NE2054'(i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3]), NE2054'(i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0]) → COND_NE2054(&&(>(i65[0], 0), !(=(i65[0], i65[0]))), i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0]) which results in the following constraint:

(37)    (i65[3]=i65[0]COND_JMP1672(TRUE, i65[3], i65[3], i65[3])≥NonInfC∧COND_JMP1672(TRUE, i65[3], i65[3], i65[3])≥NE2054'(i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3])∧(UIncreasing(NE2054'(i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3])), ≥))

We simplified constraint (37) using rule (IV) which results in the following new constraint:

(38)    (COND_JMP1672(TRUE, i65[3], i65[3], i65[3])≥NonInfC∧COND_JMP1672(TRUE, i65[3], i65[3], i65[3])≥NE2054'(i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3])∧(UIncreasing(NE2054'(i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3])), ≥))

We simplified constraint (38) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

(39)    ((UIncreasing(NE2054'(i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3])), ≥)∧[(-1)bso_83] ≥ 0)

We simplified constraint (39) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

(40)    ((UIncreasing(NE2054'(i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3])), ≥)∧[(-1)bso_83] ≥ 0)

We simplified constraint (40) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

(41)    ((UIncreasing(NE2054'(i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3])), ≥)∧[(-1)bso_83] ≥ 0)

We simplified constraint (41) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

(42)    ((UIncreasing(NE2054'(i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3])), ≥)∧0 = 0∧[(-1)bso_83] ≥ 0)

• We consider the chain COND_JMP1672(TRUE, i65[3], i65[3], i65[3]) → NE2054'(i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3]), NE2054'(i65[4], i65[4], i277[4], i277[4], i65[4], i277[4], i65[4], i277[4], i65[4], i277[4]) → COND_NE20541(&&(&&(<(i277[4], i65[4]), <=(i65[4], i277[4])), >(i277[4], 0)), i65[4], i65[4], i277[4], i277[4], i65[4], i277[4], i65[4], i277[4], i65[4], i277[4]) which results in the following constraint:

(43)    (i65[3]=i277[4]i65[3]=i65[4]COND_JMP1672(TRUE, i65[3], i65[3], i65[3])≥NonInfC∧COND_JMP1672(TRUE, i65[3], i65[3], i65[3])≥NE2054'(i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3])∧(UIncreasing(NE2054'(i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3])), ≥))

We simplified constraint (43) using rule (IV) which results in the following new constraint:

(44)    (COND_JMP1672(TRUE, i65[3], i65[3], i65[3])≥NonInfC∧COND_JMP1672(TRUE, i65[3], i65[3], i65[3])≥NE2054'(i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3])∧(UIncreasing(NE2054'(i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3])), ≥))

We simplified constraint (44) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

(45)    ((UIncreasing(NE2054'(i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3])), ≥)∧[(-1)bso_83] ≥ 0)

We simplified constraint (45) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

(46)    ((UIncreasing(NE2054'(i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3])), ≥)∧[(-1)bso_83] ≥ 0)

We simplified constraint (46) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

(47)    ((UIncreasing(NE2054'(i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3])), ≥)∧[(-1)bso_83] ≥ 0)

We simplified constraint (47) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

(48)    ((UIncreasing(NE2054'(i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3])), ≥)∧0 = 0∧[(-1)bso_83] ≥ 0)

• We consider the chain COND_JMP1672(TRUE, i65[3], i65[3], i65[3]) → NE2054'(i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3]), NE2054'(i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8]) → COND_NE20542(>(i277[8], 0), i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8]) which results in the following constraint:

(49)    (i65[3]=i277[8]COND_JMP1672(TRUE, i65[3], i65[3], i65[3])≥NonInfC∧COND_JMP1672(TRUE, i65[3], i65[3], i65[3])≥NE2054'(i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3])∧(UIncreasing(NE2054'(i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3])), ≥))

We simplified constraint (49) using rule (IV) which results in the following new constraint:

(50)    (COND_JMP1672(TRUE, i65[3], i65[3], i65[3])≥NonInfC∧COND_JMP1672(TRUE, i65[3], i65[3], i65[3])≥NE2054'(i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3])∧(UIncreasing(NE2054'(i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3])), ≥))

We simplified constraint (50) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

(51)    ((UIncreasing(NE2054'(i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3])), ≥)∧[(-1)bso_83] ≥ 0)

We simplified constraint (51) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

(52)    ((UIncreasing(NE2054'(i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3])), ≥)∧[(-1)bso_83] ≥ 0)

We simplified constraint (52) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

(53)    ((UIncreasing(NE2054'(i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3])), ≥)∧[(-1)bso_83] ≥ 0)

We simplified constraint (53) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

(54)    ((UIncreasing(NE2054'(i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3])), ≥)∧0 = 0∧[(-1)bso_83] ≥ 0)

For Pair NE2054'(i65, i65, i277, i277, i65, i277, i65, i277, i65, i277) → COND_NE20541(&&(&&(<(i277, i65), <=(i65, i277)), >(i277, 0)), i65, i65, i277, i277, i65, i277, i65, i277, i65, i277) the following chains were created:
• We consider the chain NE2054'(i65[4], i65[4], i277[4], i277[4], i65[4], i277[4], i65[4], i277[4], i65[4], i277[4]) → COND_NE20541(&&(&&(<(i277[4], i65[4]), <=(i65[4], i277[4])), >(i277[4], 0)), i65[4], i65[4], i277[4], i277[4], i65[4], i277[4], i65[4], i277[4], i65[4], i277[4]), COND_NE20541(TRUE, i65[5], i65[5], i277[5], i277[5], i65[5], i277[5], i65[5], i277[5], i65[5], i277[5]) → JMP1672'(i65[5], i65[5], i277[5]) which results in the following constraint:

(55)    (i65[4]=i65[5]&&(&&(<(i277[4], i65[4]), <=(i65[4], i277[4])), >(i277[4], 0))=TRUEi277[4]=i277[5]NE2054'(i65[4], i65[4], i277[4], i277[4], i65[4], i277[4], i65[4], i277[4], i65[4], i277[4])≥NonInfC∧NE2054'(i65[4], i65[4], i277[4], i277[4], i65[4], i277[4], i65[4], i277[4], i65[4], i277[4])≥COND_NE20541(&&(&&(<(i277[4], i65[4]), <=(i65[4], i277[4])), >(i277[4], 0)), i65[4], i65[4], i277[4], i277[4], i65[4], i277[4], i65[4], i277[4], i65[4], i277[4])∧(UIncreasing(COND_NE20541(&&(&&(<(i277[4], i65[4]), <=(i65[4], i277[4])), >(i277[4], 0)), i65[4], i65[4], i277[4], i277[4], i65[4], i277[4], i65[4], i277[4], i65[4], i277[4])), ≥))

We simplified constraint (55) using rules (IV), (IDP_BOOLEAN) which results in the following new constraint:

(56)    (>(i277[4], 0)=TRUE<(i277[4], i65[4])=TRUE<=(i65[4], i277[4])=TRUENE2054'(i65[4], i65[4], i277[4], i277[4], i65[4], i277[4], i65[4], i277[4], i65[4], i277[4])≥NonInfC∧NE2054'(i65[4], i65[4], i277[4], i277[4], i65[4], i277[4], i65[4], i277[4], i65[4], i277[4])≥COND_NE20541(&&(&&(<(i277[4], i65[4]), <=(i65[4], i277[4])), >(i277[4], 0)), i65[4], i65[4], i277[4], i277[4], i65[4], i277[4], i65[4], i277[4], i65[4], i277[4])∧(UIncreasing(COND_NE20541(&&(&&(<(i277[4], i65[4]), <=(i65[4], i277[4])), >(i277[4], 0)), i65[4], i65[4], i277[4], i277[4], i65[4], i277[4], i65[4], i277[4], i65[4], i277[4])), ≥))

We simplified constraint (56) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

(57)    (i277[4] + [-1] ≥ 0∧i65[4] + [-1] + [-1]i277[4] ≥ 0∧i277[4] + [-1]i65[4] ≥ 0 ⇒ (UIncreasing(COND_NE20541(&&(&&(<(i277[4], i65[4]), <=(i65[4], i277[4])), >(i277[4], 0)), i65[4], i65[4], i277[4], i277[4], i65[4], i277[4], i65[4], i277[4], i65[4], i277[4])), ≥)∧[(2)bni_84 + (-1)Bound*bni_84] + [(-1)bni_84]i277[4] + [(-1)bni_84]i65[4] ≥ 0∧[1 + (-1)bso_85] + [-3]i277[4] + i65[4] ≥ 0)

We simplified constraint (57) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

(58)    (i277[4] + [-1] ≥ 0∧i65[4] + [-1] + [-1]i277[4] ≥ 0∧i277[4] + [-1]i65[4] ≥ 0 ⇒ (UIncreasing(COND_NE20541(&&(&&(<(i277[4], i65[4]), <=(i65[4], i277[4])), >(i277[4], 0)), i65[4], i65[4], i277[4], i277[4], i65[4], i277[4], i65[4], i277[4], i65[4], i277[4])), ≥)∧[(2)bni_84 + (-1)Bound*bni_84] + [(-1)bni_84]i277[4] + [(-1)bni_84]i65[4] ≥ 0∧[1 + (-1)bso_85] + [-3]i277[4] + i65[4] ≥ 0)

We simplified constraint (58) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

(59)    (i277[4] + [-1] ≥ 0∧i65[4] + [-1] + [-1]i277[4] ≥ 0∧i277[4] + [-1]i65[4] ≥ 0 ⇒ (UIncreasing(COND_NE20541(&&(&&(<(i277[4], i65[4]), <=(i65[4], i277[4])), >(i277[4], 0)), i65[4], i65[4], i277[4], i277[4], i65[4], i277[4], i65[4], i277[4], i65[4], i277[4])), ≥)∧[(2)bni_84 + (-1)Bound*bni_84] + [(-1)bni_84]i277[4] + [(-1)bni_84]i65[4] ≥ 0∧[1 + (-1)bso_85] + [-3]i277[4] + i65[4] ≥ 0)

We solved constraint (59) using rule (IDP_SMT_SPLIT).

For Pair COND_NE20541(TRUE, i65, i65, i277, i277, i65, i277, i65, i277, i65, i277) → JMP1672'(i65, i65, i277) the following chains were created:
• We consider the chain COND_NE20541(TRUE, i65[5], i65[5], i277[5], i277[5], i65[5], i277[5], i65[5], i277[5], i65[5], i277[5]) → JMP1672'(i65[5], i65[5], i277[5]), JMP1672'(i65[2], i65[2], i65[2]) → COND_JMP1672(&&(>(i65[2], 0), !(=(i65[2], i65[2]))), i65[2], i65[2], i65[2]) which results in the following constraint:

(60)    (i65[5]=i65[2]i277[5]=i65[2]COND_NE20541(TRUE, i65[5], i65[5], i277[5], i277[5], i65[5], i277[5], i65[5], i277[5], i65[5], i277[5])≥NonInfC∧COND_NE20541(TRUE, i65[5], i65[5], i277[5], i277[5], i65[5], i277[5], i65[5], i277[5], i65[5], i277[5])≥JMP1672'(i65[5], i65[5], i277[5])∧(UIncreasing(JMP1672'(i65[5], i65[5], i277[5])), ≥))

We simplified constraint (60) using rule (III) which results in the following new constraint:

(61)    (COND_NE20541(TRUE, i277[5], i277[5], i277[5], i277[5], i277[5], i277[5], i277[5], i277[5], i277[5], i277[5])≥NonInfC∧COND_NE20541(TRUE, i277[5], i277[5], i277[5], i277[5], i277[5], i277[5], i277[5], i277[5], i277[5], i277[5])≥JMP1672'(i277[5], i277[5], i277[5])∧(UIncreasing(JMP1672'(i65[5], i65[5], i277[5])), ≥))

We simplified constraint (61) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

(62)    ((UIncreasing(JMP1672'(i65[5], i65[5], i277[5])), ≥)∧[(-1)bso_87] ≥ 0)

We simplified constraint (62) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

(63)    ((UIncreasing(JMP1672'(i65[5], i65[5], i277[5])), ≥)∧[(-1)bso_87] ≥ 0)

We simplified constraint (63) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

(64)    ((UIncreasing(JMP1672'(i65[5], i65[5], i277[5])), ≥)∧[(-1)bso_87] ≥ 0)

We simplified constraint (64) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

(65)    ((UIncreasing(JMP1672'(i65[5], i65[5], i277[5])), ≥)∧0 = 0∧[(-1)bso_87] ≥ 0)

• We consider the chain COND_NE20541(TRUE, i65[5], i65[5], i277[5], i277[5], i65[5], i277[5], i65[5], i277[5], i65[5], i277[5]) → JMP1672'(i65[5], i65[5], i277[5]), JMP1672'(i65[6], i65[6], i277[6]) → COND_JMP16721(&&(&&(&&(<(i277[6], i65[6]), <=(i65[6], i277[6])), >=(i65[6], 0)), !(=(i277[6], 0))), i65[6], i65[6], i277[6]) which results in the following constraint:

(66)    (i277[5]=i277[6]i65[5]=i65[6]COND_NE20541(TRUE, i65[5], i65[5], i277[5], i277[5], i65[5], i277[5], i65[5], i277[5], i65[5], i277[5])≥NonInfC∧COND_NE20541(TRUE, i65[5], i65[5], i277[5], i277[5], i65[5], i277[5], i65[5], i277[5], i65[5], i277[5])≥JMP1672'(i65[5], i65[5], i277[5])∧(UIncreasing(JMP1672'(i65[5], i65[5], i277[5])), ≥))

We simplified constraint (66) using rule (IV) which results in the following new constraint:

(67)    (COND_NE20541(TRUE, i65[5], i65[5], i277[5], i277[5], i65[5], i277[5], i65[5], i277[5], i65[5], i277[5])≥NonInfC∧COND_NE20541(TRUE, i65[5], i65[5], i277[5], i277[5], i65[5], i277[5], i65[5], i277[5], i65[5], i277[5])≥JMP1672'(i65[5], i65[5], i277[5])∧(UIncreasing(JMP1672'(i65[5], i65[5], i277[5])), ≥))

We simplified constraint (67) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

(68)    ((UIncreasing(JMP1672'(i65[5], i65[5], i277[5])), ≥)∧[(-1)bso_87] ≥ 0)

We simplified constraint (68) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

(69)    ((UIncreasing(JMP1672'(i65[5], i65[5], i277[5])), ≥)∧[(-1)bso_87] ≥ 0)

We simplified constraint (69) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

(70)    ((UIncreasing(JMP1672'(i65[5], i65[5], i277[5])), ≥)∧[(-1)bso_87] ≥ 0)

We simplified constraint (70) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

(71)    ((UIncreasing(JMP1672'(i65[5], i65[5], i277[5])), ≥)∧0 = 0∧0 = 0∧[(-1)bso_87] ≥ 0)

• We consider the chain COND_NE20541(TRUE, i65[5], i65[5], i277[5], i277[5], i65[5], i277[5], i65[5], i277[5], i65[5], i277[5]) → JMP1672'(i65[5], i65[5], i277[5]), JMP1672'(i277[10], i277[10], i277[10]) → COND_JMP16722(>(i277[10], 0), i277[10], i277[10], i277[10]) which results in the following constraint:

(72)    (i65[5]=i277[10]i277[5]=i277[10]COND_NE20541(TRUE, i65[5], i65[5], i277[5], i277[5], i65[5], i277[5], i65[5], i277[5], i65[5], i277[5])≥NonInfC∧COND_NE20541(TRUE, i65[5], i65[5], i277[5], i277[5], i65[5], i277[5], i65[5], i277[5], i65[5], i277[5])≥JMP1672'(i65[5], i65[5], i277[5])∧(UIncreasing(JMP1672'(i65[5], i65[5], i277[5])), ≥))

We simplified constraint (72) using rule (III) which results in the following new constraint:

(73)    (COND_NE20541(TRUE, i277[5], i277[5], i277[5], i277[5], i277[5], i277[5], i277[5], i277[5], i277[5], i277[5])≥NonInfC∧COND_NE20541(TRUE, i277[5], i277[5], i277[5], i277[5], i277[5], i277[5], i277[5], i277[5], i277[5], i277[5])≥JMP1672'(i277[5], i277[5], i277[5])∧(UIncreasing(JMP1672'(i65[5], i65[5], i277[5])), ≥))

We simplified constraint (73) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

(74)    ((UIncreasing(JMP1672'(i65[5], i65[5], i277[5])), ≥)∧[(-1)bso_87] ≥ 0)

We simplified constraint (74) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

(75)    ((UIncreasing(JMP1672'(i65[5], i65[5], i277[5])), ≥)∧[(-1)bso_87] ≥ 0)

We simplified constraint (75) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

(76)    ((UIncreasing(JMP1672'(i65[5], i65[5], i277[5])), ≥)∧[(-1)bso_87] ≥ 0)

We simplified constraint (76) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

(77)    ((UIncreasing(JMP1672'(i65[5], i65[5], i277[5])), ≥)∧0 = 0∧[(-1)bso_87] ≥ 0)

For Pair JMP1672'(i65, i65, i277) → COND_JMP16721(&&(&&(&&(<(i277, i65), <=(i65, i277)), >=(i65, 0)), !(=(i277, 0))), i65, i65, i277) the following chains were created:
• We consider the chain JMP1672'(i65[6], i65[6], i277[6]) → COND_JMP16721(&&(&&(&&(<(i277[6], i65[6]), <=(i65[6], i277[6])), >=(i65[6], 0)), !(=(i277[6], 0))), i65[6], i65[6], i277[6]), COND_JMP16721(TRUE, i65[7], i65[7], i277[7]) → JMP1672'(i65[7], i65[7], i277[7]) which results in the following constraint:

(78)    (i277[6]=i277[7]&&(&&(&&(<(i277[6], i65[6]), <=(i65[6], i277[6])), >=(i65[6], 0)), !(=(i277[6], 0)))=TRUEi65[6]=i65[7]JMP1672'(i65[6], i65[6], i277[6])≥NonInfC∧JMP1672'(i65[6], i65[6], i277[6])≥COND_JMP16721(&&(&&(&&(<(i277[6], i65[6]), <=(i65[6], i277[6])), >=(i65[6], 0)), !(=(i277[6], 0))), i65[6], i65[6], i277[6])∧(UIncreasing(COND_JMP16721(&&(&&(&&(<(i277[6], i65[6]), <=(i65[6], i277[6])), >=(i65[6], 0)), !(=(i277[6], 0))), i65[6], i65[6], i277[6])), ≥))

We simplified constraint (78) using rules (IV), (IDP_BOOLEAN) which results in the following new constraints:

(79)    (>=(i65[6], 0)=TRUE<(i277[6], i65[6])=TRUE<=(i65[6], i277[6])=TRUE<(i277[6], 0)=TRUEJMP1672'(i65[6], i65[6], i277[6])≥NonInfC∧JMP1672'(i65[6], i65[6], i277[6])≥COND_JMP16721(&&(&&(&&(<(i277[6], i65[6]), <=(i65[6], i277[6])), >=(i65[6], 0)), !(=(i277[6], 0))), i65[6], i65[6], i277[6])∧(UIncreasing(COND_JMP16721(&&(&&(&&(<(i277[6], i65[6]), <=(i65[6], i277[6])), >=(i65[6], 0)), !(=(i277[6], 0))), i65[6], i65[6], i277[6])), ≥))

(80)    (>=(i65[6], 0)=TRUE<(i277[6], i65[6])=TRUE<=(i65[6], i277[6])=TRUE>(i277[6], 0)=TRUEJMP1672'(i65[6], i65[6], i277[6])≥NonInfC∧JMP1672'(i65[6], i65[6], i277[6])≥COND_JMP16721(&&(&&(&&(<(i277[6], i65[6]), <=(i65[6], i277[6])), >=(i65[6], 0)), !(=(i277[6], 0))), i65[6], i65[6], i277[6])∧(UIncreasing(COND_JMP16721(&&(&&(&&(<(i277[6], i65[6]), <=(i65[6], i277[6])), >=(i65[6], 0)), !(=(i277[6], 0))), i65[6], i65[6], i277[6])), ≥))

We simplified constraint (79) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

(81)    (i65[6] ≥ 0∧i65[6] + [-1] + [-1]i277[6] ≥ 0∧i277[6] + [-1]i65[6] ≥ 0∧[-1] + [-1]i277[6] ≥ 0 ⇒ (UIncreasing(COND_JMP16721(&&(&&(&&(<(i277[6], i65[6]), <=(i65[6], i277[6])), >=(i65[6], 0)), !(=(i277[6], 0))), i65[6], i65[6], i277[6])), ≥)∧[(-1)bni_88 + (-1)Bound*bni_88] + [(2)bni_88]i277[6] + [(-2)bni_88]i65[6] ≥ 0∧[(-1)bso_89] ≥ 0)

We simplified constraint (80) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

(82)    (i65[6] ≥ 0∧i65[6] + [-1] + [-1]i277[6] ≥ 0∧i277[6] + [-1]i65[6] ≥ 0∧i277[6] + [-1] ≥ 0 ⇒ (UIncreasing(COND_JMP16721(&&(&&(&&(<(i277[6], i65[6]), <=(i65[6], i277[6])), >=(i65[6], 0)), !(=(i277[6], 0))), i65[6], i65[6], i277[6])), ≥)∧[(-1)bni_88 + (-1)Bound*bni_88] + [(2)bni_88]i277[6] + [(-2)bni_88]i65[6] ≥ 0∧[(-1)bso_89] ≥ 0)

We simplified constraint (81) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

(83)    (i65[6] ≥ 0∧i65[6] + [-1] + [-1]i277[6] ≥ 0∧i277[6] + [-1]i65[6] ≥ 0∧[-1] + [-1]i277[6] ≥ 0 ⇒ (UIncreasing(COND_JMP16721(&&(&&(&&(<(i277[6], i65[6]), <=(i65[6], i277[6])), >=(i65[6], 0)), !(=(i277[6], 0))), i65[6], i65[6], i277[6])), ≥)∧[(-1)bni_88 + (-1)Bound*bni_88] + [(2)bni_88]i277[6] + [(-2)bni_88]i65[6] ≥ 0∧[(-1)bso_89] ≥ 0)

We simplified constraint (82) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

(84)    (i65[6] ≥ 0∧i65[6] + [-1] + [-1]i277[6] ≥ 0∧i277[6] + [-1]i65[6] ≥ 0∧i277[6] + [-1] ≥ 0 ⇒ (UIncreasing(COND_JMP16721(&&(&&(&&(<(i277[6], i65[6]), <=(i65[6], i277[6])), >=(i65[6], 0)), !(=(i277[6], 0))), i65[6], i65[6], i277[6])), ≥)∧[(-1)bni_88 + (-1)Bound*bni_88] + [(2)bni_88]i277[6] + [(-2)bni_88]i65[6] ≥ 0∧[(-1)bso_89] ≥ 0)

We simplified constraint (83) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

(85)    (i65[6] ≥ 0∧i65[6] + [-1] + [-1]i277[6] ≥ 0∧i277[6] + [-1]i65[6] ≥ 0∧[-1] + [-1]i277[6] ≥ 0 ⇒ (UIncreasing(COND_JMP16721(&&(&&(&&(<(i277[6], i65[6]), <=(i65[6], i277[6])), >=(i65[6], 0)), !(=(i277[6], 0))), i65[6], i65[6], i277[6])), ≥)∧[(-1)bni_88 + (-1)Bound*bni_88] + [(2)bni_88]i277[6] + [(-2)bni_88]i65[6] ≥ 0∧[(-1)bso_89] ≥ 0)

We simplified constraint (84) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

(86)    (i65[6] ≥ 0∧i65[6] + [-1] + [-1]i277[6] ≥ 0∧i277[6] + [-1]i65[6] ≥ 0∧i277[6] + [-1] ≥ 0 ⇒ (UIncreasing(COND_JMP16721(&&(&&(&&(<(i277[6], i65[6]), <=(i65[6], i277[6])), >=(i65[6], 0)), !(=(i277[6], 0))), i65[6], i65[6], i277[6])), ≥)∧[(-1)bni_88 + (-1)Bound*bni_88] + [(2)bni_88]i277[6] + [(-2)bni_88]i65[6] ≥ 0∧[(-1)bso_89] ≥ 0)

We solved constraint (85) using rule (IDP_SMT_SPLIT).We solved constraint (86) using rule (IDP_SMT_SPLIT).

For Pair COND_JMP16721(TRUE, i65, i65, i277) → JMP1672'(i65, i65, i277) the following chains were created:
• We consider the chain COND_JMP16721(TRUE, i65[7], i65[7], i277[7]) → JMP1672'(i65[7], i65[7], i277[7]), JMP1672'(i65[2], i65[2], i65[2]) → COND_JMP1672(&&(>(i65[2], 0), !(=(i65[2], i65[2]))), i65[2], i65[2], i65[2]) which results in the following constraint:

(87)    (i277[7]=i65[2]i65[7]=i65[2]COND_JMP16721(TRUE, i65[7], i65[7], i277[7])≥NonInfC∧COND_JMP16721(TRUE, i65[7], i65[7], i277[7])≥JMP1672'(i65[7], i65[7], i277[7])∧(UIncreasing(JMP1672'(i65[7], i65[7], i277[7])), ≥))

We simplified constraint (87) using rule (III) which results in the following new constraint:

(88)    (COND_JMP16721(TRUE, i65[7], i65[7], i65[7])≥NonInfC∧COND_JMP16721(TRUE, i65[7], i65[7], i65[7])≥JMP1672'(i65[7], i65[7], i65[7])∧(UIncreasing(JMP1672'(i65[7], i65[7], i277[7])), ≥))

We simplified constraint (88) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

(89)    ((UIncreasing(JMP1672'(i65[7], i65[7], i277[7])), ≥)∧[(-1)bso_91] ≥ 0)

We simplified constraint (89) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

(90)    ((UIncreasing(JMP1672'(i65[7], i65[7], i277[7])), ≥)∧[(-1)bso_91] ≥ 0)

We simplified constraint (90) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

(91)    ((UIncreasing(JMP1672'(i65[7], i65[7], i277[7])), ≥)∧[(-1)bso_91] ≥ 0)

We simplified constraint (91) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

(92)    ((UIncreasing(JMP1672'(i65[7], i65[7], i277[7])), ≥)∧0 = 0∧[(-1)bso_91] ≥ 0)

• We consider the chain COND_JMP16721(TRUE, i65[7], i65[7], i277[7]) → JMP1672'(i65[7], i65[7], i277[7]), JMP1672'(i65[6], i65[6], i277[6]) → COND_JMP16721(&&(&&(&&(<(i277[6], i65[6]), <=(i65[6], i277[6])), >=(i65[6], 0)), !(=(i277[6], 0))), i65[6], i65[6], i277[6]) which results in the following constraint:

(93)    (i277[7]=i277[6]i65[7]=i65[6]COND_JMP16721(TRUE, i65[7], i65[7], i277[7])≥NonInfC∧COND_JMP16721(TRUE, i65[7], i65[7], i277[7])≥JMP1672'(i65[7], i65[7], i277[7])∧(UIncreasing(JMP1672'(i65[7], i65[7], i277[7])), ≥))

We simplified constraint (93) using rule (IV) which results in the following new constraint:

(94)    (COND_JMP16721(TRUE, i65[7], i65[7], i277[7])≥NonInfC∧COND_JMP16721(TRUE, i65[7], i65[7], i277[7])≥JMP1672'(i65[7], i65[7], i277[7])∧(UIncreasing(JMP1672'(i65[7], i65[7], i277[7])), ≥))

We simplified constraint (94) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

(95)    ((UIncreasing(JMP1672'(i65[7], i65[7], i277[7])), ≥)∧[(-1)bso_91] ≥ 0)

We simplified constraint (95) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

(96)    ((UIncreasing(JMP1672'(i65[7], i65[7], i277[7])), ≥)∧[(-1)bso_91] ≥ 0)

We simplified constraint (96) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

(97)    ((UIncreasing(JMP1672'(i65[7], i65[7], i277[7])), ≥)∧[(-1)bso_91] ≥ 0)

We simplified constraint (97) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

(98)    ((UIncreasing(JMP1672'(i65[7], i65[7], i277[7])), ≥)∧0 = 0∧0 = 0∧[(-1)bso_91] ≥ 0)

• We consider the chain COND_JMP16721(TRUE, i65[7], i65[7], i277[7]) → JMP1672'(i65[7], i65[7], i277[7]), JMP1672'(i277[10], i277[10], i277[10]) → COND_JMP16722(>(i277[10], 0), i277[10], i277[10], i277[10]) which results in the following constraint:

(99)    (i277[7]=i277[10]i65[7]=i277[10]COND_JMP16721(TRUE, i65[7], i65[7], i277[7])≥NonInfC∧COND_JMP16721(TRUE, i65[7], i65[7], i277[7])≥JMP1672'(i65[7], i65[7], i277[7])∧(UIncreasing(JMP1672'(i65[7], i65[7], i277[7])), ≥))

We simplified constraint (99) using rule (III) which results in the following new constraint:

(100)    (COND_JMP16721(TRUE, i65[7], i65[7], i65[7])≥NonInfC∧COND_JMP16721(TRUE, i65[7], i65[7], i65[7])≥JMP1672'(i65[7], i65[7], i65[7])∧(UIncreasing(JMP1672'(i65[7], i65[7], i277[7])), ≥))

We simplified constraint (100) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

(101)    ((UIncreasing(JMP1672'(i65[7], i65[7], i277[7])), ≥)∧[(-1)bso_91] ≥ 0)

We simplified constraint (101) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

(102)    ((UIncreasing(JMP1672'(i65[7], i65[7], i277[7])), ≥)∧[(-1)bso_91] ≥ 0)

We simplified constraint (102) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

(103)    ((UIncreasing(JMP1672'(i65[7], i65[7], i277[7])), ≥)∧[(-1)bso_91] ≥ 0)

We simplified constraint (103) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

(104)    ((UIncreasing(JMP1672'(i65[7], i65[7], i277[7])), ≥)∧0 = 0∧[(-1)bso_91] ≥ 0)

For Pair NE2054'(i277, i277, i277, i277, i277, i277, i277, i277, i277, i277) → COND_NE20542(>(i277, 0), i277, i277, i277, i277, i277, i277, i277, i277, i277, i277) the following chains were created:
• We consider the chain NE2054'(i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8]) → COND_NE20542(>(i277[8], 0), i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8]), COND_NE20542(TRUE, i277[9], i277[9], i277[9], i277[9], i277[9], i277[9], i277[9], i277[9], i277[9], i277[9]) → JMP1672'(i277[9], i277[9], 0) which results in the following constraint:

(105)    (i277[8]=i277[9]>(i277[8], 0)=TRUENE2054'(i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8])≥NonInfC∧NE2054'(i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8])≥COND_NE20542(>(i277[8], 0), i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8])∧(UIncreasing(COND_NE20542(>(i277[8], 0), i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8])), ≥))

We simplified constraint (105) using rule (IV) which results in the following new constraint:

(106)    (>(i277[8], 0)=TRUENE2054'(i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8])≥NonInfC∧NE2054'(i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8])≥COND_NE20542(>(i277[8], 0), i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8])∧(UIncreasing(COND_NE20542(>(i277[8], 0), i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8])), ≥))

We simplified constraint (106) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

(107)    (i277[8] + [-1] ≥ 0 ⇒ (UIncreasing(COND_NE20542(>(i277[8], 0), i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8])), ≥)∧[(2)bni_92 + (-1)Bound*bni_92] + [(-2)bni_92]i277[8] ≥ 0∧[3 + (-1)bso_93] ≥ 0)

We simplified constraint (107) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

(108)    (i277[8] + [-1] ≥ 0 ⇒ (UIncreasing(COND_NE20542(>(i277[8], 0), i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8])), ≥)∧[(2)bni_92 + (-1)Bound*bni_92] + [(-2)bni_92]i277[8] ≥ 0∧[3 + (-1)bso_93] ≥ 0)

We simplified constraint (108) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

(109)    (i277[8] + [-1] ≥ 0 ⇒ (UIncreasing(COND_NE20542(>(i277[8], 0), i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8])), ≥)∧[(2)bni_92 + (-1)Bound*bni_92] + [(-2)bni_92]i277[8] ≥ 0∧[3 + (-1)bso_93] ≥ 0)

We simplified constraint (109) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

(110)    (i277[8] ≥ 0 ⇒ (UIncreasing(COND_NE20542(>(i277[8], 0), i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8])), ≥)∧[(-1)Bound*bni_92] + [(-2)bni_92]i277[8] ≥ 0∧[3 + (-1)bso_93] ≥ 0)

For Pair COND_NE20542(TRUE, i277, i277, i277, i277, i277, i277, i277, i277, i277, i277) → JMP1672'(i277, i277, 0) the following chains were created:
• We consider the chain NE2054'(i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8]) → COND_NE20542(>(i277[8], 0), i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8]), COND_NE20542(TRUE, i277[9], i277[9], i277[9], i277[9], i277[9], i277[9], i277[9], i277[9], i277[9], i277[9]) → JMP1672'(i277[9], i277[9], 0), JMP1672'(i65[2], i65[2], i65[2]) → COND_JMP1672(&&(>(i65[2], 0), !(=(i65[2], i65[2]))), i65[2], i65[2], i65[2]) which results in the following constraint:

(111)    (i277[8]=i277[9]>(i277[8], 0)=TRUE0=i65[2]i277[9]=i65[2]COND_NE20542(TRUE, i277[9], i277[9], i277[9], i277[9], i277[9], i277[9], i277[9], i277[9], i277[9], i277[9])≥NonInfC∧COND_NE20542(TRUE, i277[9], i277[9], i277[9], i277[9], i277[9], i277[9], i277[9], i277[9], i277[9], i277[9])≥JMP1672'(i277[9], i277[9], 0)∧(UIncreasing(JMP1672'(i277[9], i277[9], 0)), ≥))

We solved constraint (111) using rules (I), (II), (III), (IDP_CONSTANT_FOLD).
• We consider the chain NE2054'(i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8]) → COND_NE20542(>(i277[8], 0), i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8]), COND_NE20542(TRUE, i277[9], i277[9], i277[9], i277[9], i277[9], i277[9], i277[9], i277[9], i277[9], i277[9]) → JMP1672'(i277[9], i277[9], 0), JMP1672'(i65[6], i65[6], i277[6]) → COND_JMP16721(&&(&&(&&(<(i277[6], i65[6]), <=(i65[6], i277[6])), >=(i65[6], 0)), !(=(i277[6], 0))), i65[6], i65[6], i277[6]) which results in the following constraint:

(112)    (i277[8]=i277[9]>(i277[8], 0)=TRUE0=i277[6]i277[9]=i65[6]COND_NE20542(TRUE, i277[9], i277[9], i277[9], i277[9], i277[9], i277[9], i277[9], i277[9], i277[9], i277[9])≥NonInfC∧COND_NE20542(TRUE, i277[9], i277[9], i277[9], i277[9], i277[9], i277[9], i277[9], i277[9], i277[9], i277[9])≥JMP1672'(i277[9], i277[9], 0)∧(UIncreasing(JMP1672'(i277[9], i277[9], 0)), ≥))

We simplified constraint (112) using rules (III), (IV) which results in the following new constraint:

(113)    (>(i277[8], 0)=TRUECOND_NE20542(TRUE, i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8])≥NonInfC∧COND_NE20542(TRUE, i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8])≥JMP1672'(i277[8], i277[8], 0)∧(UIncreasing(JMP1672'(i277[9], i277[9], 0)), ≥))

We simplified constraint (113) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

(114)    (i277[8] + [-1] ≥ 0 ⇒ (UIncreasing(JMP1672'(i277[9], i277[9], 0)), ≥)∧[(-1)bni_94 + (-1)Bound*bni_94] + [(-2)bni_94]i277[8] ≥ 0∧[(-1)bso_95] ≥ 0)

We simplified constraint (114) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

(115)    (i277[8] + [-1] ≥ 0 ⇒ (UIncreasing(JMP1672'(i277[9], i277[9], 0)), ≥)∧[(-1)bni_94 + (-1)Bound*bni_94] + [(-2)bni_94]i277[8] ≥ 0∧[(-1)bso_95] ≥ 0)

We simplified constraint (115) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

(116)    (i277[8] + [-1] ≥ 0 ⇒ (UIncreasing(JMP1672'(i277[9], i277[9], 0)), ≥)∧[(-1)bni_94 + (-1)Bound*bni_94] + [(-2)bni_94]i277[8] ≥ 0∧[(-1)bso_95] ≥ 0)

We simplified constraint (116) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

(117)    (i277[8] ≥ 0 ⇒ (UIncreasing(JMP1672'(i277[9], i277[9], 0)), ≥)∧[(-3)bni_94 + (-1)Bound*bni_94] + [(-2)bni_94]i277[8] ≥ 0∧[(-1)bso_95] ≥ 0)

• We consider the chain NE2054'(i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8]) → COND_NE20542(>(i277[8], 0), i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8]), COND_NE20542(TRUE, i277[9], i277[9], i277[9], i277[9], i277[9], i277[9], i277[9], i277[9], i277[9], i277[9]) → JMP1672'(i277[9], i277[9], 0), JMP1672'(i277[10], i277[10], i277[10]) → COND_JMP16722(>(i277[10], 0), i277[10], i277[10], i277[10]) which results in the following constraint:

(118)    (i277[8]=i277[9]>(i277[8], 0)=TRUE0=i277[10]i277[9]=i277[10]COND_NE20542(TRUE, i277[9], i277[9], i277[9], i277[9], i277[9], i277[9], i277[9], i277[9], i277[9], i277[9])≥NonInfC∧COND_NE20542(TRUE, i277[9], i277[9], i277[9], i277[9], i277[9], i277[9], i277[9], i277[9], i277[9], i277[9])≥JMP1672'(i277[9], i277[9], 0)∧(UIncreasing(JMP1672'(i277[9], i277[9], 0)), ≥))

We solved constraint (118) using rules (I), (II), (III), (IDP_CONSTANT_FOLD).

For Pair JMP1672'(i277, i277, i277) → COND_JMP16722(>(i277, 0), i277, i277, i277) the following chains were created:
• We consider the chain JMP1672'(i277[10], i277[10], i277[10]) → COND_JMP16722(>(i277[10], 0), i277[10], i277[10], i277[10]), COND_JMP16722(TRUE, i277[11], i277[11], i277[11]) → JMP1672'(i277[11], i277[11], 0) which results in the following constraint:

(119)    (>(i277[10], 0)=TRUEi277[10]=i277[11]JMP1672'(i277[10], i277[10], i277[10])≥NonInfC∧JMP1672'(i277[10], i277[10], i277[10])≥COND_JMP16722(>(i277[10], 0), i277[10], i277[10], i277[10])∧(UIncreasing(COND_JMP16722(>(i277[10], 0), i277[10], i277[10], i277[10])), ≥))

We simplified constraint (119) using rule (IV) which results in the following new constraint:

(120)    (>(i277[10], 0)=TRUEJMP1672'(i277[10], i277[10], i277[10])≥NonInfC∧JMP1672'(i277[10], i277[10], i277[10])≥COND_JMP16722(>(i277[10], 0), i277[10], i277[10], i277[10])∧(UIncreasing(COND_JMP16722(>(i277[10], 0), i277[10], i277[10], i277[10])), ≥))

We simplified constraint (120) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

(121)    (i277[10] + [-1] ≥ 0 ⇒ (UIncreasing(COND_JMP16722(>(i277[10], 0), i277[10], i277[10], i277[10])), ≥)∧[(-1)bni_96 + (-1)Bound*bni_96] ≥ 0∧[(-1)bso_97] + i277[10] ≥ 0)

We simplified constraint (121) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

(122)    (i277[10] + [-1] ≥ 0 ⇒ (UIncreasing(COND_JMP16722(>(i277[10], 0), i277[10], i277[10], i277[10])), ≥)∧[(-1)bni_96 + (-1)Bound*bni_96] ≥ 0∧[(-1)bso_97] + i277[10] ≥ 0)

We simplified constraint (122) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

(123)    (i277[10] + [-1] ≥ 0 ⇒ (UIncreasing(COND_JMP16722(>(i277[10], 0), i277[10], i277[10], i277[10])), ≥)∧[(-1)bni_96 + (-1)Bound*bni_96] ≥ 0∧[(-1)bso_97] + i277[10] ≥ 0)

We simplified constraint (123) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

(124)    (i277[10] ≥ 0 ⇒ (UIncreasing(COND_JMP16722(>(i277[10], 0), i277[10], i277[10], i277[10])), ≥)∧[(-1)bni_96 + (-1)Bound*bni_96] ≥ 0∧[1 + (-1)bso_97] + i277[10] ≥ 0)

For Pair COND_JMP16722(TRUE, i277, i277, i277) → JMP1672'(i277, i277, 0) the following chains were created:
• We consider the chain JMP1672'(i277[10], i277[10], i277[10]) → COND_JMP16722(>(i277[10], 0), i277[10], i277[10], i277[10]), COND_JMP16722(TRUE, i277[11], i277[11], i277[11]) → JMP1672'(i277[11], i277[11], 0), JMP1672'(i65[2], i65[2], i65[2]) → COND_JMP1672(&&(>(i65[2], 0), !(=(i65[2], i65[2]))), i65[2], i65[2], i65[2]) which results in the following constraint:

(125)    (>(i277[10], 0)=TRUEi277[10]=i277[11]0=i65[2]i277[11]=i65[2]COND_JMP16722(TRUE, i277[11], i277[11], i277[11])≥NonInfC∧COND_JMP16722(TRUE, i277[11], i277[11], i277[11])≥JMP1672'(i277[11], i277[11], 0)∧(UIncreasing(JMP1672'(i277[11], i277[11], 0)), ≥))

We solved constraint (125) using rules (I), (II), (III), (IDP_CONSTANT_FOLD).
• We consider the chain JMP1672'(i277[10], i277[10], i277[10]) → COND_JMP16722(>(i277[10], 0), i277[10], i277[10], i277[10]), COND_JMP16722(TRUE, i277[11], i277[11], i277[11]) → JMP1672'(i277[11], i277[11], 0), JMP1672'(i65[6], i65[6], i277[6]) → COND_JMP16721(&&(&&(&&(<(i277[6], i65[6]), <=(i65[6], i277[6])), >=(i65[6], 0)), !(=(i277[6], 0))), i65[6], i65[6], i277[6]) which results in the following constraint:

(126)    (>(i277[10], 0)=TRUEi277[10]=i277[11]0=i277[6]i277[11]=i65[6]COND_JMP16722(TRUE, i277[11], i277[11], i277[11])≥NonInfC∧COND_JMP16722(TRUE, i277[11], i277[11], i277[11])≥JMP1672'(i277[11], i277[11], 0)∧(UIncreasing(JMP1672'(i277[11], i277[11], 0)), ≥))

We simplified constraint (126) using rules (III), (IV) which results in the following new constraint:

(127)    (>(i277[10], 0)=TRUECOND_JMP16722(TRUE, i277[10], i277[10], i277[10])≥NonInfC∧COND_JMP16722(TRUE, i277[10], i277[10], i277[10])≥JMP1672'(i277[10], i277[10], 0)∧(UIncreasing(JMP1672'(i277[11], i277[11], 0)), ≥))

We simplified constraint (127) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

(128)    (i277[10] + [-1] ≥ 0 ⇒ (UIncreasing(JMP1672'(i277[11], i277[11], 0)), ≥)∧[(-1)bni_98 + (-1)Bound*bni_98] + [(-1)bni_98]i277[10] ≥ 0∧[(-1)bso_99] + i277[10] ≥ 0)

We simplified constraint (128) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

(129)    (i277[10] + [-1] ≥ 0 ⇒ (UIncreasing(JMP1672'(i277[11], i277[11], 0)), ≥)∧[(-1)bni_98 + (-1)Bound*bni_98] + [(-1)bni_98]i277[10] ≥ 0∧[(-1)bso_99] + i277[10] ≥ 0)

We simplified constraint (129) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

(130)    (i277[10] + [-1] ≥ 0 ⇒ (UIncreasing(JMP1672'(i277[11], i277[11], 0)), ≥)∧[(-1)bni_98 + (-1)Bound*bni_98] + [(-1)bni_98]i277[10] ≥ 0∧[(-1)bso_99] + i277[10] ≥ 0)

We simplified constraint (130) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

(131)    (i277[10] ≥ 0 ⇒ (UIncreasing(JMP1672'(i277[11], i277[11], 0)), ≥)∧[(-2)bni_98 + (-1)Bound*bni_98] + [(-1)bni_98]i277[10] ≥ 0∧[1 + (-1)bso_99] + i277[10] ≥ 0)

• We consider the chain JMP1672'(i277[10], i277[10], i277[10]) → COND_JMP16722(>(i277[10], 0), i277[10], i277[10], i277[10]), COND_JMP16722(TRUE, i277[11], i277[11], i277[11]) → JMP1672'(i277[11], i277[11], 0), JMP1672'(i277[10], i277[10], i277[10]) → COND_JMP16722(>(i277[10], 0), i277[10], i277[10], i277[10]) which results in the following constraint:

(132)    (>(i277[10], 0)=TRUEi277[10]=i277[11]i277[11]=i277[10]10=i277[10]1COND_JMP16722(TRUE, i277[11], i277[11], i277[11])≥NonInfC∧COND_JMP16722(TRUE, i277[11], i277[11], i277[11])≥JMP1672'(i277[11], i277[11], 0)∧(UIncreasing(JMP1672'(i277[11], i277[11], 0)), ≥))

We solved constraint (132) using rules (I), (II), (III), (IDP_CONSTANT_FOLD).

To summarize, we get the following constraints P for the following pairs.
• NE2054'(i65, i65, i65, i65, i65, i65, i65, i65, i65, i65) → COND_NE2054(&&(>(i65, 0), !(=(i65, i65))), i65, i65, i65, i65, i65, i65, i65, i65, i65, i65)

• COND_NE2054(TRUE, i65, i65, i65, i65, i65, i65, i65, i65, i65, i65) → NE2054'(i65, i65, i65, i65, i65, i65, i65, i65, i65, i65)
• ((UIncreasing(NE2054'(i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1])), ≥)∧0 = 0∧[(-1)bso_79] ≥ 0)
• ((UIncreasing(NE2054'(i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1])), ≥)∧0 = 0∧[(-1)bso_79] ≥ 0)
• ((UIncreasing(NE2054'(i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1])), ≥)∧0 = 0∧[(-1)bso_79] ≥ 0)

• JMP1672'(i65, i65, i65) → COND_JMP1672(&&(>(i65, 0), !(=(i65, i65))), i65, i65, i65)

• COND_JMP1672(TRUE, i65, i65, i65) → NE2054'(i65, i65, i65, i65, i65, i65, i65, i65, i65, i65)
• ((UIncreasing(NE2054'(i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3])), ≥)∧0 = 0∧[(-1)bso_83] ≥ 0)
• ((UIncreasing(NE2054'(i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3])), ≥)∧0 = 0∧[(-1)bso_83] ≥ 0)
• ((UIncreasing(NE2054'(i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3])), ≥)∧0 = 0∧[(-1)bso_83] ≥ 0)

• NE2054'(i65, i65, i277, i277, i65, i277, i65, i277, i65, i277) → COND_NE20541(&&(&&(<(i277, i65), <=(i65, i277)), >(i277, 0)), i65, i65, i277, i277, i65, i277, i65, i277, i65, i277)

• COND_NE20541(TRUE, i65, i65, i277, i277, i65, i277, i65, i277, i65, i277) → JMP1672'(i65, i65, i277)
• ((UIncreasing(JMP1672'(i65[5], i65[5], i277[5])), ≥)∧0 = 0∧[(-1)bso_87] ≥ 0)
• ((UIncreasing(JMP1672'(i65[5], i65[5], i277[5])), ≥)∧0 = 0∧0 = 0∧[(-1)bso_87] ≥ 0)
• ((UIncreasing(JMP1672'(i65[5], i65[5], i277[5])), ≥)∧0 = 0∧[(-1)bso_87] ≥ 0)

• JMP1672'(i65, i65, i277) → COND_JMP16721(&&(&&(&&(<(i277, i65), <=(i65, i277)), >=(i65, 0)), !(=(i277, 0))), i65, i65, i277)

• COND_JMP16721(TRUE, i65, i65, i277) → JMP1672'(i65, i65, i277)
• ((UIncreasing(JMP1672'(i65[7], i65[7], i277[7])), ≥)∧0 = 0∧[(-1)bso_91] ≥ 0)
• ((UIncreasing(JMP1672'(i65[7], i65[7], i277[7])), ≥)∧0 = 0∧0 = 0∧[(-1)bso_91] ≥ 0)
• ((UIncreasing(JMP1672'(i65[7], i65[7], i277[7])), ≥)∧0 = 0∧[(-1)bso_91] ≥ 0)

• NE2054'(i277, i277, i277, i277, i277, i277, i277, i277, i277, i277) → COND_NE20542(>(i277, 0), i277, i277, i277, i277, i277, i277, i277, i277, i277, i277)
• (i277[8] ≥ 0 ⇒ (UIncreasing(COND_NE20542(>(i277[8], 0), i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8])), ≥)∧[(-1)Bound*bni_92] + [(-2)bni_92]i277[8] ≥ 0∧[3 + (-1)bso_93] ≥ 0)

• COND_NE20542(TRUE, i277, i277, i277, i277, i277, i277, i277, i277, i277, i277) → JMP1672'(i277, i277, 0)
• (i277[8] ≥ 0 ⇒ (UIncreasing(JMP1672'(i277[9], i277[9], 0)), ≥)∧[(-3)bni_94 + (-1)Bound*bni_94] + [(-2)bni_94]i277[8] ≥ 0∧[(-1)bso_95] ≥ 0)

• JMP1672'(i277, i277, i277) → COND_JMP16722(>(i277, 0), i277, i277, i277)
• (i277[10] ≥ 0 ⇒ (UIncreasing(COND_JMP16722(>(i277[10], 0), i277[10], i277[10], i277[10])), ≥)∧[(-1)bni_96 + (-1)Bound*bni_96] ≥ 0∧[1 + (-1)bso_97] + i277[10] ≥ 0)

• COND_JMP16722(TRUE, i277, i277, i277) → JMP1672'(i277, i277, 0)
• (i277[10] ≥ 0 ⇒ (UIncreasing(JMP1672'(i277[11], i277[11], 0)), ≥)∧[(-2)bni_98 + (-1)Bound*bni_98] + [(-1)bni_98]i277[10] ≥ 0∧[1 + (-1)bso_99] + i277[10] ≥ 0)

The constraints for P> respective Pbound are constructed from P where we just replace every occurence of "t ≥ s" in P by "t > s" respective "t ≥ c". Here c stands for the fresh constant used for Pbound.
Using the following integer polynomial ordering the resulting constraints can be solved
Polynomial interpretation over integers[POLO]:

POL(TRUE) = [1]
POL(FALSE) = 0
POL(NE2054'(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10)) = [2] + [-1]x10 + [-1]x9 + [-1]x8 + [-1]x7 + [-1]x6 + [-1]x5 + x4 + x3 + [2]x1
POL(COND_NE2054(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)) = [2] + [2]x11 + x10 + x8 + [-1]x7 + [-1]x6 + [-1]x5 + [-1]x4 + [-1]x3 + [-1]x2
POL(&&(x1, x2)) = [-1]
POL(>(x1, x2)) = [-1]
POL(0) = 0
POL(!(x1)) = [-1]
POL(=(x1, x2)) = [-1]
POL(JMP1672'(x1, x2, x3)) = [-1] + [2]x3 + [-1]x2 + [-1]x1
POL(COND_JMP1672(x1, x2, x3, x4)) = [2] + [-1]x3 + [-1]x2
POL(COND_NE20541(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)) = [-1]x10 + [-1]x9 + [-1]x8 + [2]x7 + [-1]x6 + [-1]x5 + [2]x4 + x2 + [-1]x1
POL(<(x1, x2)) = [-1]
POL(<=(x1, x2)) = [-1]
POL(COND_JMP16721(x1, x2, x3, x4)) = [-1] + [2]x4 + [-1]x3 + [-1]x2
POL(>=(x1, x2)) = [-1]
POL(COND_NE20542(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)) = [-1] + [-1]x11 + [-1]x10 + [-1]x9 + [-1]x8 + [2]x7 + [2]x6 + x5 + [-1]x4 + [-1]x3 + [-1]x2
POL(COND_JMP16722(x1, x2, x3, x4)) = [-1] + [-1]x4 + [-1]x3 + x2

The following pairs are in P>:

NE2054'(i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0]) → COND_NE2054(&&(>(i65[0], 0), !(=(i65[0], i65[0]))), i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0])
JMP1672'(i65[2], i65[2], i65[2]) → COND_JMP1672(&&(>(i65[2], 0), !(=(i65[2], i65[2]))), i65[2], i65[2], i65[2])
NE2054'(i65[4], i65[4], i277[4], i277[4], i65[4], i277[4], i65[4], i277[4], i65[4], i277[4]) → COND_NE20541(&&(&&(<(i277[4], i65[4]), <=(i65[4], i277[4])), >(i277[4], 0)), i65[4], i65[4], i277[4], i277[4], i65[4], i277[4], i65[4], i277[4], i65[4], i277[4])
JMP1672'(i65[6], i65[6], i277[6]) → COND_JMP16721(&&(&&(&&(<(i277[6], i65[6]), <=(i65[6], i277[6])), >=(i65[6], 0)), !(=(i277[6], 0))), i65[6], i65[6], i277[6])
NE2054'(i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8]) → COND_NE20542(>(i277[8], 0), i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8])
JMP1672'(i277[10], i277[10], i277[10]) → COND_JMP16722(>(i277[10], 0), i277[10], i277[10], i277[10])
COND_JMP16722(TRUE, i277[11], i277[11], i277[11]) → JMP1672'(i277[11], i277[11], 0)

The following pairs are in Pbound:

NE2054'(i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0]) → COND_NE2054(&&(>(i65[0], 0), !(=(i65[0], i65[0]))), i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0], i65[0])
JMP1672'(i65[2], i65[2], i65[2]) → COND_JMP1672(&&(>(i65[2], 0), !(=(i65[2], i65[2]))), i65[2], i65[2], i65[2])
NE2054'(i65[4], i65[4], i277[4], i277[4], i65[4], i277[4], i65[4], i277[4], i65[4], i277[4]) → COND_NE20541(&&(&&(<(i277[4], i65[4]), <=(i65[4], i277[4])), >(i277[4], 0)), i65[4], i65[4], i277[4], i277[4], i65[4], i277[4], i65[4], i277[4], i65[4], i277[4])
JMP1672'(i65[6], i65[6], i277[6]) → COND_JMP16721(&&(&&(&&(<(i277[6], i65[6]), <=(i65[6], i277[6])), >=(i65[6], 0)), !(=(i277[6], 0))), i65[6], i65[6], i277[6])
JMP1672'(i277[10], i277[10], i277[10]) → COND_JMP16722(>(i277[10], 0), i277[10], i277[10], i277[10])

The following pairs are in P:

COND_NE2054(TRUE, i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1]) → NE2054'(i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1])
COND_JMP1672(TRUE, i65[3], i65[3], i65[3]) → NE2054'(i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3])
COND_NE20541(TRUE, i65[5], i65[5], i277[5], i277[5], i65[5], i277[5], i65[5], i277[5], i65[5], i277[5]) → JMP1672'(i65[5], i65[5], i277[5])
COND_JMP16721(TRUE, i65[7], i65[7], i277[7]) → JMP1672'(i65[7], i65[7], i277[7])
COND_NE20542(TRUE, i277[9], i277[9], i277[9], i277[9], i277[9], i277[9], i277[9], i277[9], i277[9], i277[9]) → JMP1672'(i277[9], i277[9], 0)

There are no usable rules.

### (90) Obligation:

IDP problem:
The following function symbols are pre-defined:
 != ~ 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

The following domains are used:
none

R is empty.

The integer pair graph contains the following rules and edges:
(1): COND_NE2054(TRUE, i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1]) → NE2054'(i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1])
(3): COND_JMP1672(TRUE, i65[3], i65[3], i65[3]) → NE2054'(i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3])
(5): COND_NE20541(TRUE, i65[5], i65[5], i277[5], i277[5], i65[5], i277[5], i65[5], i277[5], i65[5], i277[5]) → JMP1672'(i65[5], i65[5], i277[5])
(7): COND_JMP16721(TRUE, i65[7], i65[7], i277[7]) → JMP1672'(i65[7], i65[7], i277[7])
(9): COND_NE20542(TRUE, i277[9], i277[9], i277[9], i277[9], i277[9], i277[9], i277[9], i277[9], i277[9], i277[9]) → JMP1672'(i277[9], i277[9], 0)

The set Q consists of the following terms:
Cond_NE2054(TRUE, x0, x0, x0, x0, x0, x0, x0, x0, x0, x0)
Cond_JMP1672(TRUE, x0, x0, x0)
NE2054(x0, x0, x1, x1, x0, x1, x0, x1, x0, x1)
Cond_NE20541(TRUE, x0, x0, x1, x1, x0, x1, x0, x1, x0, x1)
JMP1672(x0, x0, x1)
Cond_JMP16721(TRUE, x0, x0, x1)
Cond_NE20542(TRUE, x0, x0, x0, x0, x0, x0, x0, x0, x0, x0)
Cond_JMP16722(TRUE, x0, x0, x0)

### (91) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 5 less nodes.

### (93) Obligation:

IDP problem:
The following function symbols are pre-defined:
 != ~ 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

The following domains are used:

Integer

R is empty.

The integer pair graph contains the following rules and edges:
(1): COND_NE2054(TRUE, i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1]) → NE2054'(i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1], i65[1])
(3): COND_JMP1672(TRUE, i65[3], i65[3], i65[3]) → NE2054'(i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3], i65[3])
(5): COND_NE20541(TRUE, i65[5], i65[5], i277[5], i277[5], i65[5], i277[5], i65[5], i277[5], i65[5], i277[5]) → JMP1672'(i65[5], i65[5], i277[5])
(7): COND_JMP16721(TRUE, i65[7], i65[7], i277[7]) → JMP1672'(i65[7], i65[7], i277[7])
(8): NE2054'(i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8]) → COND_NE20542(i277[8] > 0, i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8], i277[8])
(9): COND_NE20542(TRUE, i277[9], i277[9], i277[9], i277[9], i277[9], i277[9], i277[9], i277[9], i277[9], i277[9]) → JMP1672'(i277[9], i277[9], 0)
(11): COND_JMP16722(TRUE, i277[11], i277[11], i277[11]) → JMP1672'(i277[11], i277[11], 0)

(1) -> (8), if ((i65[1]* i277[8]))

(3) -> (8), if ((i65[3]* i277[8]))

(8) -> (9), if ((i277[8]* i277[9])∧(i277[8] > 0* TRUE))

The set Q consists of the following terms:
Cond_NE2054(TRUE, x0, x0, x0, x0, x0, x0, x0, x0, x0, x0)
Cond_JMP1672(TRUE, x0, x0, x0)
NE2054(x0, x0, x1, x1, x0, x1, x0, x1, x0, x1)
Cond_NE20541(TRUE, x0, x0, x1, x1, x0, x1, x0, x1, x0, x1)
JMP1672(x0, x0, x1)
Cond_JMP16721(TRUE, x0, x0, x1)
Cond_NE20542(TRUE, x0, x0, x0, x0, x0, x0, x0, x0, x0, x0)
Cond_JMP16722(TRUE, x0, x0, x0)

### (94) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 7 less nodes.

### (96) Obligation:

ITRS problem:

The following function symbols are pre-defined:
 != ~ 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

The TRS R consists of the following rules:
JMP1351(i65, i65, i65, i65, i96, i65) → Cond_JMP1351(i65 > 0 && i96 > i65, i65, i65, i65, i65, i96, i65)
Cond_JMP1351(TRUE, i65, i65, i65, i65, i96, i65) → JMP1351(i65, i65, i65, i65, i96 - i65, i65)
The set Q consists of the following terms:
JMP1351(x0, x0, x0, x0, x1, x0)
Cond_JMP1351(TRUE, x0, x0, x0, x0, x1, x0)

### (98) Obligation:

IDP problem:
The following function symbols are pre-defined:
 != ~ 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

The following domains are used:

Boolean, Integer

The ITRS R consists of the following rules:
JMP1351(i65, i65, i65, i65, i96, i65) → Cond_JMP1351(i65 > 0 && i96 > i65, i65, i65, i65, i65, i96, i65)
Cond_JMP1351(TRUE, i65, i65, i65, i65, i96, i65) → JMP1351(i65, i65, i65, i65, i96 - i65, i65)

The integer pair graph contains the following rules and edges:
(0): JMP1351'(i65[0], i65[0], i65[0], i65[0], i96[0], i65[0]) → COND_JMP1351(i65[0] > 0 && i96[0] > i65[0], i65[0], i65[0], i65[0], i65[0], i96[0], i65[0])
(1): COND_JMP1351(TRUE, i65[1], i65[1], i65[1], i65[1], i96[1], i65[1]) → JMP1351'(i65[1], i65[1], i65[1], i65[1], i96[1] - i65[1], i65[1])

(0) -> (1), if ((i65[0]* i65[1])∧(i65[0] > 0 && i96[0] > i65[0]* TRUE)∧(i96[0]* i96[1]))

(1) -> (0), if ((i96[1] - i65[1]* i96[0])∧(i65[1]* i65[0]))

The set Q consists of the following terms:
JMP1351(x0, x0, x0, x0, x1, x0)
Cond_JMP1351(TRUE, x0, x0, x0, x0, x1, x0)

### (99) UsableRulesProof (EQUIVALENT transformation)

As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R.

### (100) Obligation:

IDP problem:
The following function symbols are pre-defined:
 != ~ 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

The following domains are used:

Boolean, Integer

R is empty.

The integer pair graph contains the following rules and edges:
(0): JMP1351'(i65[0], i65[0], i65[0], i65[0], i96[0], i65[0]) → COND_JMP1351(i65[0] > 0 && i96[0] > i65[0], i65[0], i65[0], i65[0], i65[0], i96[0], i65[0])
(1): COND_JMP1351(TRUE, i65[1], i65[1], i65[1], i65[1], i96[1], i65[1]) → JMP1351'(i65[1], i65[1], i65[1], i65[1], i96[1] - i65[1], i65[1])

(0) -> (1), if ((i65[0]* i65[1])∧(i65[0] > 0 && i96[0] > i65[0]* TRUE)∧(i96[0]* i96[1]))

(1) -> (0), if ((i96[1] - i65[1]* i96[0])∧(i65[1]* i65[0]))

The set Q consists of the following terms:
JMP1351(x0, x0, x0, x0, x1, x0)
Cond_JMP1351(TRUE, x0, x0, x0, x0, x1, x0)

### (101) IDPNonInfProof (SOUND transformation)

The constraints were generated the following way:
The DP Problem is simplified using the Induction Calculus [NONINF] with the following steps:
Note that final constraints are written in bold face.

For Pair JMP1351'(i65, i65, i65, i65, i96, i65) → COND_JMP1351(&&(>(i65, 0), >(i96, i65)), i65, i65, i65, i65, i96, i65) the following chains were created:
• We consider the chain JMP1351'(i65[0], i65[0], i65[0], i65[0], i96[0], i65[0]) → COND_JMP1351(&&(>(i65[0], 0), >(i96[0], i65[0])), i65[0], i65[0], i65[0], i65[0], i96[0], i65[0]), COND_JMP1351(TRUE, i65[1], i65[1], i65[1], i65[1], i96[1], i65[1]) → JMP1351'(i65[1], i65[1], i65[1], i65[1], -(i96[1], i65[1]), i65[1]) which results in the following constraint:

(1)    (i65[0]=i65[1]&&(>(i65[0], 0), >(i96[0], i65[0]))=TRUEi96[0]=i96[1]JMP1351'(i65[0], i65[0], i65[0], i65[0], i96[0], i65[0])≥NonInfC∧JMP1351'(i65[0], i65[0], i65[0], i65[0], i96[0], i65[0])≥COND_JMP1351(&&(>(i65[0], 0), >(i96[0], i65[0])), i65[0], i65[0], i65[0], i65[0], i96[0], i65[0])∧(UIncreasing(COND_JMP1351(&&(>(i65[0], 0), >(i96[0], i65[0])), i65[0], i65[0], i65[0], i65[0], i96[0], i65[0])), ≥))

We simplified constraint (1) using rules (IV), (IDP_BOOLEAN) which results in the following new constraint:

(2)    (>(i65[0], 0)=TRUE>(i96[0], i65[0])=TRUEJMP1351'(i65[0], i65[0], i65[0], i65[0], i96[0], i65[0])≥NonInfC∧JMP1351'(i65[0], i65[0], i65[0], i65[0], i96[0], i65[0])≥COND_JMP1351(&&(>(i65[0], 0), >(i96[0], i65[0])), i65[0], i65[0], i65[0], i65[0], i96[0], i65[0])∧(UIncreasing(COND_JMP1351(&&(>(i65[0], 0), >(i96[0], i65[0])), i65[0], i65[0], i65[0], i65[0], i96[0], i65[0])), ≥))

We simplified constraint (2) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

(3)    (i65[0] + [-1] ≥ 0∧i96[0] + [-1] + [-1]i65[0] ≥ 0 ⇒ (UIncreasing(COND_JMP1351(&&(>(i65[0], 0), >(i96[0], i65[0])), i65[0], i65[0], i65[0], i65[0], i96[0], i65[0])), ≥)∧[(-1)bni_20 + (-1)Bound*bni_20] + [(-1)bni_20]i65[0] + [(2)bni_20]i96[0] ≥ 0∧[-1 + (-1)bso_21] + i65[0] ≥ 0)

We simplified constraint (3) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

(4)    (i65[0] + [-1] ≥ 0∧i96[0] + [-1] + [-1]i65[0] ≥ 0 ⇒ (UIncreasing(COND_JMP1351(&&(>(i65[0], 0), >(i96[0], i65[0])), i65[0], i65[0], i65[0], i65[0], i96[0], i65[0])), ≥)∧[(-1)bni_20 + (-1)Bound*bni_20] + [(-1)bni_20]i65[0] + [(2)bni_20]i96[0] ≥ 0∧[-1 + (-1)bso_21] + i65[0] ≥ 0)

We simplified constraint (4) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

(5)    (i65[0] + [-1] ≥ 0∧i96[0] + [-1] + [-1]i65[0] ≥ 0 ⇒ (UIncreasing(COND_JMP1351(&&(>(i65[0], 0), >(i96[0], i65[0])), i65[0], i65[0], i65[0], i65[0], i96[0], i65[0])), ≥)∧[(-1)bni_20 + (-1)Bound*bni_20] + [(-1)bni_20]i65[0] + [(2)bni_20]i96[0] ≥ 0∧[-1 + (-1)bso_21] + i65[0] ≥ 0)

We simplified constraint (5) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

(6)    (i65[0] ≥ 0∧i96[0] + [-2] + [-1]i65[0] ≥ 0 ⇒ (UIncreasing(COND_JMP1351(&&(>(i65[0], 0), >(i96[0], i65[0])), i65[0], i65[0], i65[0], i65[0], i96[0], i65[0])), ≥)∧[(-2)bni_20 + (-1)Bound*bni_20] + [(-1)bni_20]i65[0] + [(2)bni_20]i96[0] ≥ 0∧[(-1)bso_21] + i65[0] ≥ 0)

We simplified constraint (6) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

(7)    (i65[0] ≥ 0∧i96[0] ≥ 0 ⇒ (UIncreasing(COND_JMP1351(&&(>(i65[0], 0), >(i96[0], i65[0])), i65[0], i65[0], i65[0], i65[0], i96[0], i65[0])), ≥)∧[(2)bni_20 + (-1)Bound*bni_20] + [bni_20]i65[0] + [(2)bni_20]i96[0] ≥ 0∧[(-1)bso_21] + i65[0] ≥ 0)

For Pair COND_JMP1351(TRUE, i65, i65, i65, i65, i96, i65) → JMP1351'(i65, i65, i65, i65, -(i96, i65), i65) the following chains were created:
• We consider the chain JMP1351'(i65[0], i65[0], i65[0], i65[0], i96[0], i65[0]) → COND_JMP1351(&&(>(i65[0], 0), >(i96[0], i65[0])), i65[0], i65[0], i65[0], i65[0], i96[0], i65[0]), COND_JMP1351(TRUE, i65[1], i65[1], i65[1], i65[1], i96[1], i65[1]) → JMP1351'(i65[1], i65[1], i65[1], i65[1], -(i96[1], i65[1]), i65[1]), JMP1351'(i65[0], i65[0], i65[0], i65[0], i96[0], i65[0]) → COND_JMP1351(&&(>(i65[0], 0), >(i96[0], i65[0])), i65[0], i65[0], i65[0], i65[0], i96[0], i65[0]) which results in the following constraint:

(8)    (i65[0]=i65[1]&&(>(i65[0], 0), >(i96[0], i65[0]))=TRUEi96[0]=i96[1]-(i96[1], i65[1])=i96[0]1i65[1]=i65[0]1COND_JMP1351(TRUE, i65[1], i65[1], i65[1], i65[1], i96[1], i65[1])≥NonInfC∧COND_JMP1351(TRUE, i65[1], i65[1], i65[1], i65[1], i96[1], i65[1])≥JMP1351'(i65[1], i65[1], i65[1], i65[1], -(i96[1], i65[1]), i65[1])∧(UIncreasing(JMP1351'(i65[1], i65[1], i65[1], i65[1], -(i96[1], i65[1]), i65[1])), ≥))

We simplified constraint (8) using rules (III), (IV), (IDP_BOOLEAN) which results in the following new constraint:

(9)    (>(i65[0], 0)=TRUE>(i96[0], i65[0])=TRUECOND_JMP1351(TRUE, i65[0], i65[0], i65[0], i65[0], i96[0], i65[0])≥NonInfC∧COND_JMP1351(TRUE, i65[0], i65[0], i65[0], i65[0], i96[0], i65[0])≥JMP1351'(i65[0], i65[0], i65[0], i65[0], -(i96[0], i65[0]), i65[0])∧(UIncreasing(JMP1351'(i65[1], i65[1], i65[1], i65[1], -(i96[1], i65[1]), i65[1])), ≥))

We simplified constraint (9) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

(10)    (i65[0] + [-1] ≥ 0∧i96[0] + [-1] + [-1]i65[0] ≥ 0 ⇒ (UIncreasing(JMP1351'(i65[1], i65[1], i65[1], i65[1], -(i96[1], i65[1]), i65[1])), ≥)∧[(-1)bni_22 + (-1)Bound*bni_22] + [(-2)bni_22]i65[0] + [(2)bni_22]i96[0] ≥ 0∧[(-1)bso_23] + i65[0] ≥ 0)

We simplified constraint (10) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

(11)    (i65[0] + [-1] ≥ 0∧i96[0] + [-1] + [-1]i65[0] ≥ 0 ⇒ (UIncreasing(JMP1351'(i65[1], i65[1], i65[1], i65[1], -(i96[1], i65[1]), i65[1])), ≥)∧[(-1)bni_22 + (-1)Bound*bni_22] + [(-2)bni_22]i65[0] + [(2)bni_22]i96[0] ≥ 0∧[(-1)bso_23] + i65[0] ≥ 0)

We simplified constraint (11) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

(12)    (i65[0] + [-1] ≥ 0∧i96[0] + [-1] + [-1]i65[0] ≥ 0 ⇒ (UIncreasing(JMP1351'(i65[1], i65[1], i65[1], i65[1], -(i96[1], i65[1]), i65[1])), ≥)∧[(-1)bni_22 + (-1)Bound*bni_22] + [(-2)bni_22]i65[0] + [(2)bni_22]i96[0] ≥ 0∧[(-1)bso_23] + i65[0] ≥ 0)

We simplified constraint (12) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

(13)    (i65[0] ≥ 0∧i96[0] + [-2] + [-1]i65[0] ≥ 0 ⇒ (UIncreasing(JMP1351'(i65[1], i65[1], i65[1], i65[1], -(i96[1], i65[1]), i65[1])), ≥)∧[(-3)bni_22 + (-1)Bound*bni_22] + [(-2)bni_22]i65[0] + [(2)bni_22]i96[0] ≥ 0∧[1 + (-1)bso_23] + i65[0] ≥ 0)

We simplified constraint (13) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

(14)    (i65[0] ≥ 0∧i96[0] ≥ 0 ⇒ (UIncreasing(JMP1351'(i65[1], i65[1], i65[1], i65[1], -(i96[1], i65[1]), i65[1])), ≥)∧[bni_22 + (-1)Bound*bni_22] + [(2)bni_22]i96[0] ≥ 0∧[1 + (-1)bso_23] + i65[0] ≥ 0)

To summarize, we get the following constraints P for the following pairs.
• JMP1351'(i65, i65, i65, i65, i96, i65) → COND_JMP1351(&&(>(i65, 0), >(i96, i65)), i65, i65, i65, i65, i96, i65)
• (i65[0] ≥ 0∧i96[0] ≥ 0 ⇒ (UIncreasing(COND_JMP1351(&&(>(i65[0], 0), >(i96[0], i65[0])), i65[0], i65[0], i65[0], i65[0], i96[0], i65[0])), ≥)∧[(2)bni_20 + (-1)Bound*bni_20] + [bni_20]i65[0] + [(2)bni_20]i96[0] ≥ 0∧[(-1)bso_21] + i65[0] ≥ 0)

• COND_JMP1351(TRUE, i65, i65, i65, i65, i96, i65) → JMP1351'(i65, i65, i65, i65, -(i96, i65), i65)
• (i65[0] ≥ 0∧i96[0] ≥ 0 ⇒ (UIncreasing(JMP1351'(i65[1], i65[1], i65[1], i65[1], -(i96[1], i65[1]), i65[1])), ≥)∧[bni_22 + (-1)Bound*bni_22] + [(2)bni_22]i96[0] ≥ 0∧[1 + (-1)bso_23] + i65[0] ≥ 0)

The constraints for P> respective Pbound are constructed from P where we just replace every occurence of "t ≥ s" in P by "t > s" respective "t ≥ c". Here c stands for the fresh constant used for Pbound.
Using the following integer polynomial ordering the resulting constraints can be solved
Polynomial interpretation over integers[POLO]:

POL(TRUE) = [1]
POL(FALSE) = [1]
POL(JMP1351'(x1, x2, x3, x4, x5, x6)) = [-1] + [-1]x6 + [2]x5 + [-1]x3 + [-1]x2 + [2]x1
POL(COND_JMP1351(x1, x2, x3, x4, x5, x6, x7)) = [2]x6 + [-1]x5 + [-1]x4 + [-1]x1
POL(&&(x1, x2)) = 0
POL(>(x1, x2)) = [-1]
POL(0) = 0
POL(-(x1, x2)) = x1 + [-1]x2

The following pairs are in P>:

COND_JMP1351(TRUE, i65[1], i65[1], i65[1], i65[1], i96[1], i65[1]) → JMP1351'(i65[1], i65[1], i65[1], i65[1], -(i96[1], i65[1]), i65[1])

The following pairs are in Pbound:

JMP1351'(i65[0], i65[0], i65[0], i65[0], i96[0], i65[0]) → COND_JMP1351(&&(>(i65[0], 0), >(i96[0], i65[0])), i65[0], i65[0], i65[0], i65[0], i96[0], i65[0])
COND_JMP1351(TRUE, i65[1], i65[1], i65[1], i65[1], i96[1], i65[1]) → JMP1351'(i65[1], i65[1], i65[1], i65[1], -(i96[1], i65[1]), i65[1])

The following pairs are in P:

JMP1351'(i65[0], i65[0], i65[0], i65[0], i96[0], i65[0]) → COND_JMP1351(&&(>(i65[0], 0), >(i96[0], i65[0])), i65[0], i65[0], i65[0], i65[0], i96[0], i65[0])

At least the following rules have been oriented under context sensitive arithmetic replacement:

TRUE1&&(TRUE, TRUE)1
FALSE1&&(TRUE, FALSE)1
FALSE1&&(FALSE, TRUE)1
FALSE1&&(FALSE, FALSE)1

### (103) Obligation:

IDP problem:
The following function symbols are pre-defined:
 != ~ 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

The following domains are used:

Boolean, Integer

R is empty.

The integer pair graph contains the following rules and edges:
(0): JMP1351'(i65[0], i65[0], i65[0], i65[0], i96[0], i65[0]) → COND_JMP1351(i65[0] > 0 && i96[0] > i65[0], i65[0], i65[0], i65[0], i65[0], i96[0], i65[0])

The set Q consists of the following terms:
JMP1351(x0, x0, x0, x0, x1, x0)
Cond_JMP1351(TRUE, x0, x0, x0, x0, x1, x0)

### (104) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 1 less node.

### (106) Obligation:

IDP problem:
The following function symbols are pre-defined:
 != ~ 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

The following domains are used:
none

R is empty.

The integer pair graph is empty.

The set Q consists of the following terms:
JMP1351(x0, x0, x0, x0, x1, x0)
Cond_JMP1351(TRUE, x0, x0, x0, x0, x1, x0)

### (107) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs.

### (109) Obligation:

ITRS problem:

The following function symbols are pre-defined:
 != ~ 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

The TRS R consists of the following rules:
NE1240(i128, i128, i128, i128, i128, i128, i128, i128, i128, i128, i128) → Cond_NE1240(i128 > 0 && !(i128 = i128), i128, i128, i128, i128, i128, i128, i128, i128, i128, i128, i128)
Cond_NE1240(TRUE, i128, i128, i128, i128, i128, i128, i128, i128, i128, i128, i128) → NE1240(i128, i128, i128, i128, i128, i128, i128, i128, i128, i128, i128)
Load889(i128, i128, i128, i128) → Cond_Load889(i128 > 0 && !(i128 = i128), i128, i128, i128, i128)
Cond_Load889(TRUE, i128, i128, i128, i128) → NE1240(i128, i128, i128, i128, i128, i128, i128, i128, i128, i128, i128)
NE1240(i128, i65, i128, i65, i65, i128, i65, i128, i65, i128, i65) → Cond_NE12401(i65 > 0 && i65 < i128 && i128 <= i65, i128, i65, i128, i65, i65, i128, i65, i128, i65, i128, i65)
Cond_NE12401(TRUE, i128, i65, i128, i65, i65, i128, i65, i128, i65, i128, i65) → Load889(i128, i65, i128, i65)
Load889(i128, i65, i128, i65) → Cond_Load8891(i65 > 0 && i65 < i128 && i128 <= i65, i128, i65, i128, i65)
Cond_Load8891(TRUE, i128, i65, i128, i65) → Load889(i128, i65, i128, i65)
The set Q consists of the following terms:
Cond_NE1240(TRUE, x0, x0, x0, x0, x0, x0, x0, x0, x0, x0, x0)
Cond_Load889(TRUE, x0, x0, x0, x0)
NE1240(x0, x1, x0, x1, x1, x0, x1, x0, x1, x0, x1)
Cond_NE12401(TRUE, x0, x1, x0, x1, x1, x0, x1, x0, x1, x0, x1)
Load889(x0, x1, x0, x1)
Cond_Load8891(TRUE, x0, x1, x0, x1)

### (111) Obligation:

IDP problem:
The following function symbols are pre-defined:
 != ~ 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

The following domains are used:

Boolean, Integer

The ITRS R consists of the following rules:
NE1240(i128, i128, i128, i128, i128, i128, i128, i128, i128, i128, i128) → Cond_NE1240(i128 > 0 && !(i128 = i128), i128, i128, i128, i128, i128, i128, i128, i128, i128, i128, i128)
Cond_NE1240(TRUE, i128, i128, i128, i128, i128, i128, i128, i128, i128, i128, i128) → NE1240(i128, i128, i128, i128, i128, i128, i128, i128, i128, i128, i128)
Load889(i128, i128, i128, i128) → Cond_Load889(i128 > 0 && !(i128 = i128), i128, i128, i128, i128)
Cond_Load889(TRUE, i128, i128, i128, i128) → NE1240(i128, i128, i128, i128, i128, i128, i128, i128, i128, i128, i128)
NE1240(i128, i65, i128, i65, i65, i128, i65, i128, i65, i128, i65) → Cond_NE12401(i65 > 0 && i65 < i128 && i128 <= i65, i128, i65, i128, i65, i65, i128, i65, i128, i65, i128, i65)
Cond_NE12401(TRUE, i128, i65, i128, i65, i65, i128, i65, i128, i65, i128, i65) → Load889(i128, i65, i128, i65)
Load889(i128, i65, i128, i65) → Cond_Load8891(i65 > 0 && i65 < i128 && i128 <= i65, i128, i65, i128, i65)
Cond_Load8891(TRUE, i128, i65, i128, i65) → Load889(i128, i65, i128, i65)

The integer pair graph contains the following rules and edges:
(0): NE1240'(i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0]) → COND_NE1240(i128[0] > 0 && !(i128[0] = i128[0]), i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0])
(1): COND_NE1240(TRUE, i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1]) → NE1240'(i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1])
(2): LOAD889(i128[2], i128[2], i128[2], i128[2]) → COND_LOAD889(i128[2] > 0 && !(i128[2] = i128[2]), i128[2], i128[2], i128[2], i128[2])
(3): COND_LOAD889(TRUE, i128[3], i128[3], i128[3], i128[3]) → NE1240'(i128[3], i128[3], i128[3], i128[3], i128[3], i128[3], i128[3], i128[3], i128[3], i128[3], i128[3])
(4): NE1240'(i128[4], i65[4], i128[4], i65[4], i65[4], i128[4], i65[4], i128[4], i65[4], i128[4], i65[4]) → COND_NE12401(i65[4] > 0 && i65[4] < i128[4] && i128[4] <= i65[4], i128[4], i65[4], i128[4], i65[4], i65[4], i128[4], i65[4], i128[4], i65[4], i128[4], i65[4])
(5): COND_NE12401(TRUE, i128[5], i65[5], i128[5], i65[5], i65[5], i128[5], i65[5], i128[5], i65[5], i128[5], i65[5]) → LOAD889(i128[5], i65[5], i128[5], i65[5])
(6): LOAD889(i128[6], i65[6], i128[6], i65[6]) → COND_LOAD8891(i65[6] > 0 && i65[6] < i128[6] && i128[6] <= i65[6], i128[6], i65[6], i128[6], i65[6])
(7): COND_LOAD8891(TRUE, i128[7], i65[7], i128[7], i65[7]) → LOAD889(i128[7], i65[7], i128[7], i65[7])

(0) -> (1), if ((i128[0]* i128[1])∧(i128[0] > 0 && !(i128[0] = i128[0]) →* TRUE))

(1) -> (0), if ((i128[1]* i128[0]))

(1) -> (4), if ((i128[1]* i128[4])∧(i128[1]* i65[4]))

(2) -> (3), if ((i128[2] > 0 && !(i128[2] = i128[2]) →* TRUE)∧(i128[2]* i128[3]))

(3) -> (0), if ((i128[3]* i128[0]))

(3) -> (4), if ((i128[3]* i65[4])∧(i128[3]* i128[4]))

(4) -> (5), if ((i65[4]* i65[5])∧(i65[4] > 0 && i65[4] < i128[4] && i128[4] <= i65[4]* TRUE)∧(i128[4]* i128[5]))

(5) -> (2), if ((i128[5]* i128[2])∧(i65[5]* i128[2]))

(5) -> (6), if ((i128[5]* i128[6])∧(i65[5]* i65[6]))

(6) -> (7), if ((i128[6]* i128[7])∧(i65[6] > 0 && i65[6] < i128[6] && i128[6] <= i65[6]* TRUE)∧(i65[6]* i65[7]))

(7) -> (2), if ((i128[7]* i128[2])∧(i65[7]* i128[2]))

(7) -> (6), if ((i65[7]* i65[6])∧(i128[7]* i128[6]))

The set Q consists of the following terms:
Cond_NE1240(TRUE, x0, x0, x0, x0, x0, x0, x0, x0, x0, x0, x0)
Cond_Load889(TRUE, x0, x0, x0, x0)
NE1240(x0, x1, x0, x1, x1, x0, x1, x0, x1, x0, x1)
Cond_NE12401(TRUE, x0, x1, x0, x1, x1, x0, x1, x0, x1, x0, x1)
Load889(x0, x1, x0, x1)
Cond_Load8891(TRUE, x0, x1, x0, x1)

### (112) UsableRulesProof (EQUIVALENT transformation)

As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R.

### (113) Obligation:

IDP problem:
The following function symbols are pre-defined:
 != ~ 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

The following domains are used:

Boolean, Integer

R is empty.

The integer pair graph contains the following rules and edges:
(0): NE1240'(i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0]) → COND_NE1240(i128[0] > 0 && !(i128[0] = i128[0]), i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0])
(1): COND_NE1240(TRUE, i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1]) → NE1240'(i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1])
(2): LOAD889(i128[2], i128[2], i128[2], i128[2]) → COND_LOAD889(i128[2] > 0 && !(i128[2] = i128[2]), i128[2], i128[2], i128[2], i128[2])
(3): COND_LOAD889(TRUE, i128[3], i128[3], i128[3], i128[3]) → NE1240'(i128[3], i128[3], i128[3], i128[3], i128[3], i128[3], i128[3], i128[3], i128[3], i128[3], i128[3])
(4): NE1240'(i128[4], i65[4], i128[4], i65[4], i65[4], i128[4], i65[4], i128[4], i65[4], i128[4], i65[4]) → COND_NE12401(i65[4] > 0 && i65[4] < i128[4] && i128[4] <= i65[4], i128[4], i65[4], i128[4], i65[4], i65[4], i128[4], i65[4], i128[4], i65[4], i128[4], i65[4])
(5): COND_NE12401(TRUE, i128[5], i65[5], i128[5], i65[5], i65[5], i128[5], i65[5], i128[5], i65[5], i128[5], i65[5]) → LOAD889(i128[5], i65[5], i128[5], i65[5])
(6): LOAD889(i128[6], i65[6], i128[6], i65[6]) → COND_LOAD8891(i65[6] > 0 && i65[6] < i128[6] && i128[6] <= i65[6], i128[6], i65[6], i128[6], i65[6])
(7): COND_LOAD8891(TRUE, i128[7], i65[7], i128[7], i65[7]) → LOAD889(i128[7], i65[7], i128[7], i65[7])

(0) -> (1), if ((i128[0]* i128[1])∧(i128[0] > 0 && !(i128[0] = i128[0]) →* TRUE))

(1) -> (0), if ((i128[1]* i128[0]))

(1) -> (4), if ((i128[1]* i128[4])∧(i128[1]* i65[4]))

(2) -> (3), if ((i128[2] > 0 && !(i128[2] = i128[2]) →* TRUE)∧(i128[2]* i128[3]))

(3) -> (0), if ((i128[3]* i128[0]))

(3) -> (4), if ((i128[3]* i65[4])∧(i128[3]* i128[4]))

(4) -> (5), if ((i65[4]* i65[5])∧(i65[4] > 0 && i65[4] < i128[4] && i128[4] <= i65[4]* TRUE)∧(i128[4]* i128[5]))

(5) -> (2), if ((i128[5]* i128[2])∧(i65[5]* i128[2]))

(5) -> (6), if ((i128[5]* i128[6])∧(i65[5]* i65[6]))

(6) -> (7), if ((i128[6]* i128[7])∧(i65[6] > 0 && i65[6] < i128[6] && i128[6] <= i65[6]* TRUE)∧(i65[6]* i65[7]))

(7) -> (2), if ((i128[7]* i128[2])∧(i65[7]* i128[2]))

(7) -> (6), if ((i65[7]* i65[6])∧(i128[7]* i128[6]))

The set Q consists of the following terms:
Cond_NE1240(TRUE, x0, x0, x0, x0, x0, x0, x0, x0, x0, x0, x0)
Cond_Load889(TRUE, x0, x0, x0, x0)
NE1240(x0, x1, x0, x1, x1, x0, x1, x0, x1, x0, x1)
Cond_NE12401(TRUE, x0, x1, x0, x1, x1, x0, x1, x0, x1, x0, x1)
Load889(x0, x1, x0, x1)
Cond_Load8891(TRUE, x0, x1, x0, x1)

### (114) IDPNonInfProof (SOUND transformation)

The constraints were generated the following way:
The DP Problem is simplified using the Induction Calculus [NONINF] with the following steps:
Note that final constraints are written in bold face.

For Pair NE1240'(i128, i128, i128, i128, i128, i128, i128, i128, i128, i128, i128) → COND_NE1240(&&(>(i128, 0), !(=(i128, i128))), i128, i128, i128, i128, i128, i128, i128, i128, i128, i128, i128) the following chains were created:
• We consider the chain COND_NE1240(TRUE, i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1]) → NE1240'(i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1]), NE1240'(i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0]) → COND_NE1240(&&(>(i128[0], 0), !(=(i128[0], i128[0]))), i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0]), COND_NE1240(TRUE, i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1]) → NE1240'(i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1]) which results in the following constraint:

(1)    (i128[1]=i128[0]i128[0]=i128[1]1&&(>(i128[0], 0), !(=(i128[0], i128[0])))=TRUENE1240'(i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0])≥NonInfC∧NE1240'(i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0])≥COND_NE1240(&&(>(i128[0], 0), !(=(i128[0], i128[0]))), i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0])∧(UIncreasing(COND_NE1240(&&(>(i128[0], 0), !(=(i128[0], i128[0]))), i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0])), ≥))

We simplified constraint (1) using rules (III), (IV), (IDP_BOOLEAN) which results in the following new constraints:

(2)    (>(i128[0], 0)=TRUE<(i128[0], i128[0])=TRUENE1240'(i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0])≥NonInfC∧NE1240'(i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0])≥COND_NE1240(&&(>(i128[0], 0), !(=(i128[0], i128[0]))), i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0])∧(UIncreasing(COND_NE1240(&&(>(i128[0], 0), !(=(i128[0], i128[0]))), i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0])), ≥))

(3)    (>(i128[0], 0)=TRUE>(i128[0], i128[0])=TRUENE1240'(i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0])≥NonInfC∧NE1240'(i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0])≥COND_NE1240(&&(>(i128[0], 0), !(=(i128[0], i128[0]))), i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0])∧(UIncreasing(COND_NE1240(&&(>(i128[0], 0), !(=(i128[0], i128[0]))), i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0])), ≥))

We simplified constraint (2) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

(4)    (i128[0] + [-1] ≥ 0∧[-1] ≥ 0 ⇒ (UIncreasing(COND_NE1240(&&(>(i128[0], 0), !(=(i128[0], i128[0]))), i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0])), ≥)∧[(-1)bni_64 + (-1)Bound*bni_64] + [(-11)bni_64]i128[0] ≥ 0∧[-1 + (-1)bso_65] ≥ 0)

We simplified constraint (3) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

(5)    (i128[0] + [-1] ≥ 0∧[-1] ≥ 0 ⇒ (UIncreasing(COND_NE1240(&&(>(i128[0], 0), !(=(i128[0], i128[0]))), i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0])), ≥)∧[(-1)bni_64 + (-1)Bound*bni_64] + [(-11)bni_64]i128[0] ≥ 0∧[-1 + (-1)bso_65] ≥ 0)

We simplified constraint (4) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

(6)    (i128[0] + [-1] ≥ 0∧[-1] ≥ 0 ⇒ (UIncreasing(COND_NE1240(&&(>(i128[0], 0), !(=(i128[0], i128[0]))), i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0])), ≥)∧[(-1)bni_64 + (-1)Bound*bni_64] + [(-11)bni_64]i128[0] ≥ 0∧[-1 + (-1)bso_65] ≥ 0)

We simplified constraint (5) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

(7)    (i128[0] + [-1] ≥ 0∧[-1] ≥ 0 ⇒ (UIncreasing(COND_NE1240(&&(>(i128[0], 0), !(=(i128[0], i128[0]))), i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0])), ≥)∧[(-1)bni_64 + (-1)Bound*bni_64] + [(-11)bni_64]i128[0] ≥ 0∧[-1 + (-1)bso_65] ≥ 0)

We simplified constraint (6) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

(8)    (i128[0] + [-1] ≥ 0∧[-1] ≥ 0 ⇒ (UIncreasing(COND_NE1240(&&(>(i128[0], 0), !(=(i128[0], i128[0]))), i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0])), ≥)∧[(-1)bni_64 + (-1)Bound*bni_64] + [(-11)bni_64]i128[0] ≥ 0∧[-1 + (-1)bso_65] ≥ 0)

We simplified constraint (7) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

(9)    (i128[0] + [-1] ≥ 0∧[-1] ≥ 0 ⇒ (UIncreasing(COND_NE1240(&&(>(i128[0], 0), !(=(i128[0], i128[0]))), i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0])), ≥)∧[(-1)bni_64 + (-1)Bound*bni_64] + [(-11)bni_64]i128[0] ≥ 0∧[-1 + (-1)bso_65] ≥ 0)

We solved constraint (8) using rule (IDP_SMT_SPLIT).We solved constraint (9) using rule (IDP_SMT_SPLIT).
• We consider the chain COND_LOAD889(TRUE, i128[3], i128[3], i128[3], i128[3]) → NE1240'(i128[3], i128[3], i128[3], i128[3], i128[3], i128[3], i128[3], i128[3], i128[3], i128[3], i128[3]), NE1240'(i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0]) → COND_NE1240(&&(>(i128[0], 0), !(=(i128[0], i128[0]))), i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0]), COND_NE1240(TRUE, i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1]) → NE1240'(i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1]) which results in the following constraint:

(10)    (i128[3]=i128[0]i128[0]=i128[1]&&(>(i128[0], 0), !(=(i128[0], i128[0])))=TRUENE1240'(i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0])≥NonInfC∧NE1240'(i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0])≥COND_NE1240(&&(>(i128[0], 0), !(=(i128[0], i128[0]))), i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0])∧(UIncreasing(COND_NE1240(&&(>(i128[0], 0), !(=(i128[0], i128[0]))), i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0])), ≥))

We simplified constraint (10) using rules (III), (IV), (IDP_BOOLEAN) which results in the following new constraints:

(11)    (>(i128[0], 0)=TRUE<(i128[0], i128[0])=TRUENE1240'(i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0])≥NonInfC∧NE1240'(i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0])≥COND_NE1240(&&(>(i128[0], 0), !(=(i128[0], i128[0]))), i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0])∧(UIncreasing(COND_NE1240(&&(>(i128[0], 0), !(=(i128[0], i128[0]))), i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0])), ≥))

(12)    (>(i128[0], 0)=TRUE>(i128[0], i128[0])=TRUENE1240'(i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0])≥NonInfC∧NE1240'(i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0])≥COND_NE1240(&&(>(i128[0], 0), !(=(i128[0], i128[0]))), i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0])∧(UIncreasing(COND_NE1240(&&(>(i128[0], 0), !(=(i128[0], i128[0]))), i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0])), ≥))

We simplified constraint (11) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

(13)    (i128[0] + [-1] ≥ 0∧[-1] ≥ 0 ⇒ (UIncreasing(COND_NE1240(&&(>(i128[0], 0), !(=(i128[0], i128[0]))), i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0])), ≥)∧[(-1)bni_64 + (-1)Bound*bni_64] + [(-11)bni_64]i128[0] ≥ 0∧[-1 + (-1)bso_65] ≥ 0)

We simplified constraint (12) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

(14)    (i128[0] + [-1] ≥ 0∧[-1] ≥ 0 ⇒ (UIncreasing(COND_NE1240(&&(>(i128[0], 0), !(=(i128[0], i128[0]))), i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0])), ≥)∧[(-1)bni_64 + (-1)Bound*bni_64] + [(-11)bni_64]i128[0] ≥ 0∧[-1 + (-1)bso_65] ≥ 0)

We simplified constraint (13) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

(15)    (i128[0] + [-1] ≥ 0∧[-1] ≥ 0 ⇒ (UIncreasing(COND_NE1240(&&(>(i128[0], 0), !(=(i128[0], i128[0]))), i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0])), ≥)∧[(-1)bni_64 + (-1)Bound*bni_64] + [(-11)bni_64]i128[0] ≥ 0∧[-1 + (-1)bso_65] ≥ 0)

We simplified constraint (14) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

(16)    (i128[0] + [-1] ≥ 0∧[-1] ≥ 0 ⇒ (UIncreasing(COND_NE1240(&&(>(i128[0], 0), !(=(i128[0], i128[0]))), i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0])), ≥)∧[(-1)bni_64 + (-1)Bound*bni_64] + [(-11)bni_64]i128[0] ≥ 0∧[-1 + (-1)bso_65] ≥ 0)

We simplified constraint (15) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

(17)    (i128[0] + [-1] ≥ 0∧[-1] ≥ 0 ⇒ (UIncreasing(COND_NE1240(&&(>(i128[0], 0), !(=(i128[0], i128[0]))), i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0])), ≥)∧[(-1)bni_64 + (-1)Bound*bni_64] + [(-11)bni_64]i128[0] ≥ 0∧[-1 + (-1)bso_65] ≥ 0)

We simplified constraint (16) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

(18)    (i128[0] + [-1] ≥ 0∧[-1] ≥ 0 ⇒ (UIncreasing(COND_NE1240(&&(>(i128[0], 0), !(=(i128[0], i128[0]))), i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0])), ≥)∧[(-1)bni_64 + (-1)Bound*bni_64] + [(-11)bni_64]i128[0] ≥ 0∧[-1 + (-1)bso_65] ≥ 0)

We solved constraint (17) using rule (IDP_SMT_SPLIT).We solved constraint (18) using rule (IDP_SMT_SPLIT).

For Pair COND_NE1240(TRUE, i128, i128, i128, i128, i128, i128, i128, i128, i128, i128, i128) → NE1240'(i128, i128, i128, i128, i128, i128, i128, i128, i128, i128, i128) the following chains were created:
• We consider the chain NE1240'(i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0]) → COND_NE1240(&&(>(i128[0], 0), !(=(i128[0], i128[0]))), i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0]), COND_NE1240(TRUE, i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1]) → NE1240'(i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1]), NE1240'(i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0]) → COND_NE1240(&&(>(i128[0], 0), !(=(i128[0], i128[0]))), i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0]) which results in the following constraint:

(19)    (i128[0]=i128[1]&&(>(i128[0], 0), !(=(i128[0], i128[0])))=TRUEi128[1]=i128[0]1COND_NE1240(TRUE, i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1])≥NonInfC∧COND_NE1240(TRUE, i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1])≥NE1240'(i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1])∧(UIncreasing(NE1240'(i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1])), ≥))

We simplified constraint (19) using rules (III), (IV), (IDP_BOOLEAN) which results in the following new constraints:

(20)    (>(i128[0], 0)=TRUE<(i128[0], i128[0])=TRUECOND_NE1240(TRUE, i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0])≥NonInfC∧COND_NE1240(TRUE, i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0])≥NE1240'(i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0])∧(UIncreasing(NE1240'(i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1])), ≥))

(21)    (>(i128[0], 0)=TRUE>(i128[0], i128[0])=TRUECOND_NE1240(TRUE, i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0])≥NonInfC∧COND_NE1240(TRUE, i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0])≥NE1240'(i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0])∧(UIncreasing(NE1240'(i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1])), ≥))

We simplified constraint (20) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

(22)    (i128[0] + [-1] ≥ 0∧[-1] ≥ 0 ⇒ (UIncreasing(NE1240'(i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1])), ≥)∧[(-1)bni_66 + (-1)Bound*bni_66] + [(-11)bni_66]i128[0] ≥ 0∧[(-1)bso_67] ≥ 0)

We simplified constraint (21) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

(23)    (i128[0] + [-1] ≥ 0∧[-1] ≥ 0 ⇒ (UIncreasing(NE1240'(i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1])), ≥)∧[(-1)bni_66 + (-1)Bound*bni_66] + [(-11)bni_66]i128[0] ≥ 0∧[(-1)bso_67] ≥ 0)

We simplified constraint (22) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

(24)    (i128[0] + [-1] ≥ 0∧[-1] ≥ 0 ⇒ (UIncreasing(NE1240'(i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1])), ≥)∧[(-1)bni_66 + (-1)Bound*bni_66] + [(-11)bni_66]i128[0] ≥ 0∧[(-1)bso_67] ≥ 0)

We simplified constraint (23) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

(25)    (i128[0] + [-1] ≥ 0∧[-1] ≥ 0 ⇒ (UIncreasing(NE1240'(i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1])), ≥)∧[(-1)bni_66 + (-1)Bound*bni_66] + [(-11)bni_66]i128[0] ≥ 0∧[(-1)bso_67] ≥ 0)

We simplified constraint (24) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

(26)    (i128[0] + [-1] ≥ 0∧[-1] ≥ 0 ⇒ (UIncreasing(NE1240'(i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1])), ≥)∧[(-1)bni_66 + (-1)Bound*bni_66] + [(-11)bni_66]i128[0] ≥ 0∧[(-1)bso_67] ≥ 0)

We simplified constraint (25) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

(27)    (i128[0] + [-1] ≥ 0∧[-1] ≥ 0 ⇒ (UIncreasing(NE1240'(i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1])), ≥)∧[(-1)bni_66 + (-1)Bound*bni_66] + [(-11)bni_66]i128[0] ≥ 0∧[(-1)bso_67] ≥ 0)

We solved constraint (26) using rule (IDP_SMT_SPLIT).We solved constraint (27) using rule (IDP_SMT_SPLIT).
• We consider the chain NE1240'(i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0]) → COND_NE1240(&&(>(i128[0], 0), !(=(i128[0], i128[0]))), i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0]), COND_NE1240(TRUE, i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1]) → NE1240'(i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1]), NE1240'(i128[4], i65[4], i128[4], i65[4], i65[4], i128[4], i65[4], i128[4], i65[4], i128[4], i65[4]) → COND_NE12401(&&(&&(>(i65[4], 0), <(i65[4], i128[4])), <=(i128[4], i65[4])), i128[4], i65[4], i128[4], i65[4], i65[4], i128[4], i65[4], i128[4], i65[4], i128[4], i65[4]) which results in the following constraint:

(28)    (i128[0]=i128[1]&&(>(i128[0], 0), !(=(i128[0], i128[0])))=TRUEi128[1]=i128[4]i128[1]=i65[4]COND_NE1240(TRUE, i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1])≥NonInfC∧COND_NE1240(TRUE, i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1])≥NE1240'(i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1])∧(UIncreasing(NE1240'(i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1])), ≥))

We simplified constraint (28) using rules (III), (IV), (IDP_BOOLEAN) which results in the following new constraints:

(29)    (>(i128[0], 0)=TRUE<(i128[0], i128[0])=TRUECOND_NE1240(TRUE, i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0])≥NonInfC∧COND_NE1240(TRUE, i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0])≥NE1240'(i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0])∧(UIncreasing(NE1240'(i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1])), ≥))

(30)    (>(i128[0], 0)=TRUE>(i128[0], i128[0])=TRUECOND_NE1240(TRUE, i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0])≥NonInfC∧COND_NE1240(TRUE, i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0])≥NE1240'(i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0], i128[0])∧(UIncreasing(NE1240'(i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1])), ≥))

We simplified constraint (29) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

(31)    (i128[0] + [-1] ≥ 0∧[-1] ≥ 0 ⇒ (UIncreasing(NE1240'(i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1])), ≥)∧[(-1)bni_66 + (-1)Bound*bni_66] + [(-11)bni_66]i128[0] ≥ 0∧[(-1)bso_67] ≥ 0)

We simplified constraint (30) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

(32)    (i128[0] + [-1] ≥ 0∧[-1] ≥ 0 ⇒ (UIncreasing(NE1240'(i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1])), ≥)∧[(-1)bni_66 + (-1)Bound*bni_66] + [(-11)bni_66]i128[0] ≥ 0∧[(-1)bso_67] ≥ 0)

We simplified constraint (31) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

(33)    (i128[0] + [-1] ≥ 0∧[-1] ≥ 0 ⇒ (UIncreasing(NE1240'(i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1])), ≥)∧[(-1)bni_66 + (-1)Bound*bni_66] + [(-11)bni_66]i128[0] ≥ 0∧[(-1)bso_67] ≥ 0)

We simplified constraint (32) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

(34)    (i128[0] + [-1] ≥ 0∧[-1] ≥ 0 ⇒ (UIncreasing(NE1240'(i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1])), ≥)∧[(-1)bni_66 + (-1)Bound*bni_66] + [(-11)bni_66]i128[0] ≥ 0∧[(-1)bso_67] ≥ 0)

We simplified constraint (33) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

(35)    (i128[0] + [-1] ≥ 0∧[-1] ≥ 0 ⇒ (UIncreasing(NE1240'(i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1])), ≥)∧[(-1)bni_66 + (-1)Bound*bni_66] + [(-11)bni_66]i128[0] ≥ 0∧[(-1)bso_67] ≥ 0)

We simplified constraint (34) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

(36)    (i128[0] + [-1] ≥ 0∧[-1] ≥ 0 ⇒ (UIncreasing(NE1240'(i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1], i128[1])), ≥)∧[(-1)bni_66 + (-1)Bound*bni_66] + [(-11)bni_66]i128[0] ≥ 0∧[(-1)bso_67] ≥ 0)

We solved constraint (35) using rule (IDP_SMT_SPLIT).We solved constraint (36) using rule (IDP_SMT_SPLIT).

For Pair LOAD889(i128, i128, i128, i128) → COND_LOAD889(&&(>(i128, 0), !(=(i128, i128))), i128, i128, i128, i128) the following chains were created:
• We consider the chain COND_NE12401(TRUE, i128[5], i65[5], i128[5], i65[5], i65[5], i128[5], i65[5], i128[5], i65[5], i128[5], i65[5]) → LOAD889(i128[5], i65[5], i128[5], i65[5]), LOAD889(i128[2], i128[2], i128[2], i128[2]) → COND_LOAD889(&&(>(i128[2], 0), !(=(i128[2], i128[2]))), i128[2], i128[2], i128[2], i128[2]), COND_LOAD889(TRUE, i128[3], i128[3], i128[3], i128[3]) → NE1240'(i128[3], i128[3], i128[3], i128[3], i128[3], i128[3], i128[3], i128[3], i128[3], i128[3], i128[3]) which results in the following constraint:

(37)    (i128[5]=i128[2]i65[5]=i128[2]&&(>(i128[2], 0), !(=(i128[2], i128[2])))=TRUEi128[2]=i128[3]LOAD889(i128[2], i128[2], i128[2], i128[2])≥NonInfC∧LOAD889(i128[2], i128[2], i128[2], i128[2])≥COND_LOAD889(&&(>(i128[2], 0), !(=(i128[2], i128[2]))), i128[2], i128[2], i128[2], i128[2])∧(UIncreasing(COND_LOAD889(&&(>(i128[2], 0), !(=(i128[2], i128[2]))), i128[2], i128[2], i128[2], i128[2])), ≥))

We simplified constraint (37) using rules (III), (IV), (IDP_BOOLEAN) which results in the following new constraints:

(38)    (>(i128[2], 0)=TRUE<(i128[2], i128[2])=TRUELOAD889(i128[2], i128[2], i128[2], i128[2])≥NonInfC∧LOAD889(i128[2], i128[2], i128[2], i128[2])≥COND_LOAD889(&&(>(i128[2], 0), !(=(i128[2], i128[2]))), i128[2], i128[2], i128[2], i128[2])∧(UIncreasing(COND_LOAD889(&&(>(i128[2], 0), !(=(i128[2], i128[2]))), i128[2], i128[2], i128[2], i128[2])), ≥))

(39)    (>(i128[2], 0)=TRUE>(i128[2], i128[2])=TRUELOAD889(i128[2], i128[2], i128[2], i128[2])≥NonInfC∧LOAD889(i128[2], i128[2], i128[2], i128[2])≥COND_LOAD889(&&(>(i128[2], 0), !(=(i128[2], i128[2]))), i128[2], i128[2], i128[2], i128[2])∧(UIncreasing(COND_LOAD889(&&(>(i128[2], 0), !(=(i128[2], i128[2]))), i128[2], i128[2], i128[2], i128[2])), ≥))

We simplified constraint (38) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

(40)    (i128[2] + [-1] ≥ 0∧[-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD889(&&(>(i128[2], 0), !(=(i128[2], i128[2]))), i128[2], i128[2], i128[2], i128[2])), ≥)∧[(-1)bni_68 + (-1)Bound*bni_68] + [(-4)bni_68]i128[2] ≥ 0∧[-1 + (-1)bso_69] ≥ 0)

We simplified constraint (39) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

(41)    (i128[2] + [-1] ≥ 0∧[-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD889(&&(>(i128[2], 0), !(=(i128[2], i128[2]))), i128[2], i128[2], i128[2], i128[2])), ≥)∧[(-1)bni_68 + (-1)Bound*bni_68] + [(-4)bni_68]i128[2] ≥ 0∧[-1 + (-1)bso_69] ≥ 0)

We simplified constraint (40) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

(42)    (i128[2] + [-1] ≥ 0∧[-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD889(&&(>(i128[2], 0), !(=(i128[2], i128[2]))), i128[2], i128[2], i128[2], i128[2])), ≥)∧[(-1)bni_68 + (-1)Bound*bni_68] + [(-4)bni_68]i128[2] ≥ 0∧[-1 + (-1)bso_69] ≥ 0)

We simplified constraint (41) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

(43)    (i128[2] + [-1] ≥ 0∧[-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD889(&&(>(i128[2], 0), !(=(i128[2], i128[2]))), i128[2], i128[2], i128[2], i128[2])), ≥)∧[(-1)bni_68 + (-1)Bound*bni_68] + [(-4)bni_68]i128[2] ≥ 0∧[-1 + (-1)bso_69] ≥ 0)

We simplified constraint (42) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

(44)    (i128[2] + [-1] ≥ 0∧[-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD889(&&(>(i128[2], 0), !(=(i128[2], i128[2]))), i128[2], i128[2], i128[2], i128[2])), ≥)∧[(-1)bni_68 + (-1)Bound*bni_68] + [(-4)bni_68]i128[2] ≥ 0∧[-1 + (-1)bso_69] ≥ 0)

We simplified constraint (43) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

(45)    (i128[2] + [-1] ≥ 0∧[-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD889(&&(>(i128[2], 0), !(=(i128[2], i128[2]))), i128[2], i128[2], i128[2], i128[2])), ≥)∧[(-1)bni_68 + (-1)Bound*bni_68] + [(-4)bni_68]i128[2] ≥ 0∧[-1 + (-1)bso_69] ≥ 0)

We solved constraint (44) using rule (IDP_SMT_SPLIT).We solved constraint (45) using rule (IDP_SMT_SPLIT).
• We consider the chain COND_LOAD8891(TRUE, i128[7], i65[7], i128[7], i65[7]) → LOAD889(i128[7], i65[7], i128[7], i65[7]), LOAD889(i128[2], i128[2], i128[2], i128[2]) → COND_LOAD889(&&(>(i128[2], 0), !(=(i128[2], i128[2]))), i128[2], i128[2], i128[2], i128[2]), COND_LOAD889(TRUE, i128[3], i128[3], i128[3], i128[3]) → NE1240'(i128[3], i128[3], i128[3], i128[3], i128[3], i128[3], i128[3], i128[3], i128[3], i128[3], i128[3]) which results in the following constraint:

(46)    (i128[7]=i128[2]i65[7]=i128[2]&&(>(i128[2], 0), !(=(i128[2], i128[2])))=TRUEi128[2]=i128[3]LOAD889(i128[2], i128[2], i128[2], i128[2])≥NonInfC∧LOAD889(i128[2], i128[2], i128[2], i128[2])≥COND_LOAD889(&&(>(i128[2], 0), !(=(i128[2], i128[2]))), i128[2], i128[2], i128[2], i128[2])∧(UIncreasing(COND_LOAD889(&&(>(i128[2], 0), !(=(i128[2], i128[2]))), i128[2], i128[2], i128[2], i128[2])), ≥))

We simplified constraint (46) using rules (III), (IV), (IDP_BOOLEAN) which results in the following new constraints:

(47)    (>(i128[2], 0)=TRUE<(i128[2], i128[2])=TRUELOAD889(i128[2], i128[2], i128[2], i128[2])≥NonInfC∧LOAD889(i128[2], i128[2], i128[2], i128[2])≥COND_LOAD889(&&(>(i128[2], 0), !(=(i128[2],