### (0) Obligation:

JBC Problem based on JBC Program:
Manifest-Version: 1.0 Created-By: 1.6.0_16 (Sun Microsystems Inc.) Main-Class: GCD
`public class GCD {  public static int mod(int a, int b) {    if(a <= 0 || b <= 0)      return 0;    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) {      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 572 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:
JMP2522(i322, i1739) → Cond_JMP2522(i322 > 0 && i322 < i1739 && !(i1739 = 0), i322, i1739)
Cond_JMP2522(TRUE, i322, i1739) → JMP2522(i1739, i322)
JMP4637(i1739, i1739, i1739, i2851, i1739) → Cond_JMP4637(i1739 > 0 && i2851 <= i1739, i1739, i1739, i1739, i2851, i1739)
Cond_JMP4637(TRUE, i1739, i1739, i1739, i2851, i1739) → JMP2522(i1739, i2851)
JMP2522(i322, i1739) → Cond_JMP25221(i1739 > 0 && i322 - i1739 <= i1739 && i322 > i1739, i322, i1739)
Cond_JMP25221(TRUE, i322, i1739) → JMP2522(i1739, i322 - i1739)
JMP2522(i1739, i1739) → Cond_JMP25222(i1739 > 0, i1739, i1739)
Cond_JMP25222(TRUE, i1739, i1739) → JMP2522(i1739, 0)
JMP4637(i1739, i1739, i1739, i2851, i1739) → Cond_JMP46371(i1739 > 0 && i2851 > i1739, i1739, i1739, i1739, i2851, i1739)
Cond_JMP46371(TRUE, i1739, i1739, i1739, i2851, i1739) → JMP4637(i1739, i1739, i1739, i2851 - i1739, i1739)
JMP2522(i322, i1739) → Cond_JMP25223(i1739 > 0 && i322 - i1739 > i1739 && i322 > i1739, i322, i1739)
Cond_JMP25223(TRUE, i322, i1739) → JMP4637(i1739, i1739, i1739, i322 - i1739 - i1739, i1739)
The set Q consists of the following terms:
JMP2522(x0, x1)
Cond_JMP2522(TRUE, x0, x1)
JMP4637(x0, x0, x0, x1, x0)
Cond_JMP4637(TRUE, x0, x0, x0, x1, x0)
Cond_JMP25221(TRUE, x0, x1)
Cond_JMP25222(TRUE, x0, x0)
Cond_JMP46371(TRUE, x0, x0, x0, x1, x0)
Cond_JMP25223(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:
JMP2522(i322, i1739) → Cond_JMP2522(i322 > 0 && i322 < i1739 && !(i1739 = 0), i322, i1739)
Cond_JMP2522(TRUE, i322, i1739) → JMP2522(i1739, i322)
JMP4637(i1739, i1739, i1739, i2851, i1739) → Cond_JMP4637(i1739 > 0 && i2851 <= i1739, i1739, i1739, i1739, i2851, i1739)
Cond_JMP4637(TRUE, i1739, i1739, i1739, i2851, i1739) → JMP2522(i1739, i2851)
JMP2522(i322, i1739) → Cond_JMP25221(i1739 > 0 && i322 - i1739 <= i1739 && i322 > i1739, i322, i1739)
Cond_JMP25221(TRUE, i322, i1739) → JMP2522(i1739, i322 - i1739)
JMP2522(i1739, i1739) → Cond_JMP25222(i1739 > 0, i1739, i1739)
Cond_JMP25222(TRUE, i1739, i1739) → JMP2522(i1739, 0)
JMP4637(i1739, i1739, i1739, i2851, i1739) → Cond_JMP46371(i1739 > 0 && i2851 > i1739, i1739, i1739, i1739, i2851, i1739)
Cond_JMP46371(TRUE, i1739, i1739, i1739, i2851, i1739) → JMP4637(i1739, i1739, i1739, i2851 - i1739, i1739)
JMP2522(i322, i1739) → Cond_JMP25223(i1739 > 0 && i322 - i1739 > i1739 && i322 > i1739, i322, i1739)
Cond_JMP25223(TRUE, i322, i1739) → JMP4637(i1739, i1739, i1739, i322 - i1739 - i1739, i1739)

The integer pair graph contains the following rules and edges:
(0): JMP2522'(i322[0], i1739[0]) → COND_JMP2522(i322[0] > 0 && i322[0] < i1739[0] && !(i1739[0] = 0), i322[0], i1739[0])
(1): COND_JMP2522(TRUE, i322[1], i1739[1]) → JMP2522'(i1739[1], i322[1])
(2): JMP4637'(i1739[2], i1739[2], i1739[2], i2851[2], i1739[2]) → COND_JMP4637(i1739[2] > 0 && i2851[2] <= i1739[2], i1739[2], i1739[2], i1739[2], i2851[2], i1739[2])
(3): COND_JMP4637(TRUE, i1739[3], i1739[3], i1739[3], i2851[3], i1739[3]) → JMP2522'(i1739[3], i2851[3])
(4): JMP2522'(i322[4], i1739[4]) → COND_JMP25221(i1739[4] > 0 && i322[4] - i1739[4] <= i1739[4] && i322[4] > i1739[4], i322[4], i1739[4])
(5): COND_JMP25221(TRUE, i322[5], i1739[5]) → JMP2522'(i1739[5], i322[5] - i1739[5])
(6): JMP2522'(i1739[6], i1739[6]) → COND_JMP25222(i1739[6] > 0, i1739[6], i1739[6])
(7): COND_JMP25222(TRUE, i1739[7], i1739[7]) → JMP2522'(i1739[7], 0)
(8): JMP4637'(i1739[8], i1739[8], i1739[8], i2851[8], i1739[8]) → COND_JMP46371(i1739[8] > 0 && i2851[8] > i1739[8], i1739[8], i1739[8], i1739[8], i2851[8], i1739[8])
(9): COND_JMP46371(TRUE, i1739[9], i1739[9], i1739[9], i2851[9], i1739[9]) → JMP4637'(i1739[9], i1739[9], i1739[9], i2851[9] - i1739[9], i1739[9])
(10): JMP2522'(i322[10], i1739[10]) → COND_JMP25223(i1739[10] > 0 && i322[10] - i1739[10] > i1739[10] && i322[10] > i1739[10], i322[10], i1739[10])
(11): COND_JMP25223(TRUE, i322[11], i1739[11]) → JMP4637'(i1739[11], i1739[11], i1739[11], i322[11] - i1739[11] - i1739[11], i1739[11])

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

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

(1) -> (4), if ((i322[1]* i1739[4])∧(i1739[1]* i322[4]))

(1) -> (6), if ((i322[1]* i1739[6])∧(i1739[1]* i1739[6]))

(1) -> (10), if ((i322[1]* i1739[10])∧(i1739[1]* i322[10]))

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

(3) -> (0), if ((i2851[3]* i1739[0])∧(i1739[3]* i322[0]))

(3) -> (4), if ((i2851[3]* i1739[4])∧(i1739[3]* i322[4]))

(3) -> (6), if ((i2851[3]* i1739[6])∧(i1739[3]* i1739[6]))

(3) -> (10), if ((i2851[3]* i1739[10])∧(i1739[3]* i322[10]))

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

(5) -> (0), if ((i322[5] - i1739[5]* i1739[0])∧(i1739[5]* i322[0]))

(5) -> (4), if ((i1739[5]* i322[4])∧(i322[5] - i1739[5]* i1739[4]))

(5) -> (6), if ((i1739[5]* i1739[6])∧(i322[5] - i1739[5]* i1739[6]))

(5) -> (10), if ((i1739[5]* i322[10])∧(i322[5] - i1739[5]* i1739[10]))

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

(7) -> (0), if ((i1739[7]* i322[0])∧(0* i1739[0]))

(7) -> (4), if ((0* i1739[4])∧(i1739[7]* i322[4]))

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

(7) -> (10), if ((i1739[7]* i322[10])∧(0* i1739[10]))

(8) -> (9), if ((i1739[8] > 0 && i2851[8] > i1739[8]* TRUE)∧(i2851[8]* i2851[9])∧(i1739[8]* i1739[9]))

(9) -> (2), if ((i2851[9] - i1739[9]* i2851[2])∧(i1739[9]* i1739[2]))

(9) -> (8), if ((i2851[9] - i1739[9]* i2851[8])∧(i1739[9]* i1739[8]))

(10) -> (11), if ((i322[10]* i322[11])∧(i1739[10]* i1739[11])∧(i1739[10] > 0 && i322[10] - i1739[10] > i1739[10] && i322[10] > i1739[10]* TRUE))

(11) -> (2), if ((i322[11] - i1739[11] - i1739[11]* i2851[2])∧(i1739[11]* i1739[2]))

(11) -> (8), if ((i1739[11]* i1739[8])∧(i322[11] - i1739[11] - i1739[11]* i2851[8]))

The set Q consists of the following terms:
JMP2522(x0, x1)
Cond_JMP2522(TRUE, x0, x1)
JMP4637(x0, x0, x0, x1, x0)
Cond_JMP4637(TRUE, x0, x0, x0, x1, x0)
Cond_JMP25221(TRUE, x0, x1)
Cond_JMP25222(TRUE, x0, x0)
Cond_JMP46371(TRUE, x0, x0, x0, x1, x0)
Cond_JMP25223(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): JMP2522'(i322[0], i1739[0]) → COND_JMP2522(i322[0] > 0 && i322[0] < i1739[0] && !(i1739[0] = 0), i322[0], i1739[0])
(1): COND_JMP2522(TRUE, i322[1], i1739[1]) → JMP2522'(i1739[1], i322[1])
(2): JMP4637'(i1739[2], i1739[2], i1739[2], i2851[2], i1739[2]) → COND_JMP4637(i1739[2] > 0 && i2851[2] <= i1739[2], i1739[2], i1739[2], i1739[2], i2851[2], i1739[2])
(3): COND_JMP4637(TRUE, i1739[3], i1739[3], i1739[3], i2851[3], i1739[3]) → JMP2522'(i1739[3], i2851[3])
(4): JMP2522'(i322[4], i1739[4]) → COND_JMP25221(i1739[4] > 0 && i322[4] - i1739[4] <= i1739[4] && i322[4] > i1739[4], i322[4], i1739[4])
(5): COND_JMP25221(TRUE, i322[5], i1739[5]) → JMP2522'(i1739[5], i322[5] - i1739[5])
(6): JMP2522'(i1739[6], i1739[6]) → COND_JMP25222(i1739[6] > 0, i1739[6], i1739[6])
(7): COND_JMP25222(TRUE, i1739[7], i1739[7]) → JMP2522'(i1739[7], 0)
(8): JMP4637'(i1739[8], i1739[8], i1739[8], i2851[8], i1739[8]) → COND_JMP46371(i1739[8] > 0 && i2851[8] > i1739[8], i1739[8], i1739[8], i1739[8], i2851[8], i1739[8])
(9): COND_JMP46371(TRUE, i1739[9], i1739[9], i1739[9], i2851[9], i1739[9]) → JMP4637'(i1739[9], i1739[9], i1739[9], i2851[9] - i1739[9], i1739[9])
(10): JMP2522'(i322[10], i1739[10]) → COND_JMP25223(i1739[10] > 0 && i322[10] - i1739[10] > i1739[10] && i322[10] > i1739[10], i322[10], i1739[10])
(11): COND_JMP25223(TRUE, i322[11], i1739[11]) → JMP4637'(i1739[11], i1739[11], i1739[11], i322[11] - i1739[11] - i1739[11], i1739[11])

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

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

(1) -> (4), if ((i322[1]* i1739[4])∧(i1739[1]* i322[4]))

(1) -> (6), if ((i322[1]* i1739[6])∧(i1739[1]* i1739[6]))

(1) -> (10), if ((i322[1]* i1739[10])∧(i1739[1]* i322[10]))

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

(3) -> (0), if ((i2851[3]* i1739[0])∧(i1739[3]* i322[0]))

(3) -> (4), if ((i2851[3]* i1739[4])∧(i1739[3]* i322[4]))

(3) -> (6), if ((i2851[3]* i1739[6])∧(i1739[3]* i1739[6]))

(3) -> (10), if ((i2851[3]* i1739[10])∧(i1739[3]* i322[10]))

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

(5) -> (0), if ((i322[5] - i1739[5]* i1739[0])∧(i1739[5]* i322[0]))

(5) -> (4), if ((i1739[5]* i322[4])∧(i322[5] - i1739[5]* i1739[4]))

(5) -> (6), if ((i1739[5]* i1739[6])∧(i322[5] - i1739[5]* i1739[6]))

(5) -> (10), if ((i1739[5]* i322[10])∧(i322[5] - i1739[5]* i1739[10]))

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

(7) -> (0), if ((i1739[7]* i322[0])∧(0* i1739[0]))

(7) -> (4), if ((0* i1739[4])∧(i1739[7]* i322[4]))

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

(7) -> (10), if ((i1739[7]* i322[10])∧(0* i1739[10]))

(8) -> (9), if ((i1739[8] > 0 && i2851[8] > i1739[8]* TRUE)∧(i2851[8]* i2851[9])∧(i1739[8]* i1739[9]))

(9) -> (2), if ((i2851[9] - i1739[9]* i2851[2])∧(i1739[9]* i1739[2]))

(9) -> (8), if ((i2851[9] - i1739[9]* i2851[8])∧(i1739[9]* i1739[8]))

(10) -> (11), if ((i322[10]* i322[11])∧(i1739[10]* i1739[11])∧(i1739[10] > 0 && i322[10] - i1739[10] > i1739[10] && i322[10] > i1739[10]* TRUE))

(11) -> (2), if ((i322[11] - i1739[11] - i1739[11]* i2851[2])∧(i1739[11]* i1739[2]))

(11) -> (8), if ((i1739[11]* i1739[8])∧(i322[11] - i1739[11] - i1739[11]* i2851[8]))

The set Q consists of the following terms:
JMP2522(x0, x1)
Cond_JMP2522(TRUE, x0, x1)
JMP4637(x0, x0, x0, x1, x0)
Cond_JMP4637(TRUE, x0, x0, x0, x1, x0)
Cond_JMP25221(TRUE, x0, x1)
Cond_JMP25222(TRUE, x0, x0)
Cond_JMP46371(TRUE, x0, x0, x0, x1, x0)
Cond_JMP25223(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 JMP2522'(i322, i1739) → COND_JMP2522(&&(&&(>(i322, 0), <(i322, i1739)), !(=(i1739, 0))), i322, i1739) the following chains were created:
• We consider the chain JMP2522'(i322[0], i1739[0]) → COND_JMP2522(&&(&&(>(i322[0], 0), <(i322[0], i1739[0])), !(=(i1739[0], 0))), i322[0], i1739[0]), COND_JMP2522(TRUE, i322[1], i1739[1]) → JMP2522'(i1739[1], i322[1]) which results in the following constraint:

(1)    (&&(&&(>(i322[0], 0), <(i322[0], i1739[0])), !(=(i1739[0], 0)))=TRUEi1739[0]=i1739[1]i322[0]=i322[1]JMP2522'(i322[0], i1739[0])≥NonInfC∧JMP2522'(i322[0], i1739[0])≥COND_JMP2522(&&(&&(>(i322[0], 0), <(i322[0], i1739[0])), !(=(i1739[0], 0))), i322[0], i1739[0])∧(UIncreasing(COND_JMP2522(&&(&&(>(i322[0], 0), <(i322[0], i1739[0])), !(=(i1739[0], 0))), i322[0], i1739[0])), ≥))

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

(2)    (>(i322[0], 0)=TRUE<(i322[0], i1739[0])=TRUE<(i1739[0], 0)=TRUEJMP2522'(i322[0], i1739[0])≥NonInfC∧JMP2522'(i322[0], i1739[0])≥COND_JMP2522(&&(&&(>(i322[0], 0), <(i322[0], i1739[0])), !(=(i1739[0], 0))), i322[0], i1739[0])∧(UIncreasing(COND_JMP2522(&&(&&(>(i322[0], 0), <(i322[0], i1739[0])), !(=(i1739[0], 0))), i322[0], i1739[0])), ≥))

(3)    (>(i322[0], 0)=TRUE<(i322[0], i1739[0])=TRUE>(i1739[0], 0)=TRUEJMP2522'(i322[0], i1739[0])≥NonInfC∧JMP2522'(i322[0], i1739[0])≥COND_JMP2522(&&(&&(>(i322[0], 0), <(i322[0], i1739[0])), !(=(i1739[0], 0))), i322[0], i1739[0])∧(UIncreasing(COND_JMP2522(&&(&&(>(i322[0], 0), <(i322[0], i1739[0])), !(=(i1739[0], 0))), i322[0], i1739[0])), ≥))

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

(4)    (i322[0] + [-1] ≥ 0∧i1739[0] + [-1] + [-1]i322[0] ≥ 0∧[-1] + [-1]i1739[0] ≥ 0 ⇒ (UIncreasing(COND_JMP2522(&&(&&(>(i322[0], 0), <(i322[0], i1739[0])), !(=(i1739[0], 0))), i322[0], i1739[0])), ≥)∧[(-1)Bound*bni_48] + [bni_48]i1739[0] + [bni_48]i322[0] ≥ 0∧[(-1)bso_49] ≥ 0)

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

(5)    (i322[0] + [-1] ≥ 0∧i1739[0] + [-1] + [-1]i322[0] ≥ 0∧i1739[0] + [-1] ≥ 0 ⇒ (UIncreasing(COND_JMP2522(&&(&&(>(i322[0], 0), <(i322[0], i1739[0])), !(=(i1739[0], 0))), i322[0], i1739[0])), ≥)∧[(-1)Bound*bni_48] + [bni_48]i1739[0] + [bni_48]i322[0] ≥ 0∧[(-1)bso_49] ≥ 0)

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

(6)    (i322[0] + [-1] ≥ 0∧i1739[0] + [-1] + [-1]i322[0] ≥ 0∧[-1] + [-1]i1739[0] ≥ 0 ⇒ (UIncreasing(COND_JMP2522(&&(&&(>(i322[0], 0), <(i322[0], i1739[0])), !(=(i1739[0], 0))), i322[0], i1739[0])), ≥)∧[(-1)Bound*bni_48] + [bni_48]i1739[0] + [bni_48]i322[0] ≥ 0∧[(-1)bso_49] ≥ 0)

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

(7)    (i322[0] + [-1] ≥ 0∧i1739[0] + [-1] + [-1]i322[0] ≥ 0∧i1739[0] + [-1] ≥ 0 ⇒ (UIncreasing(COND_JMP2522(&&(&&(>(i322[0], 0), <(i322[0], i1739[0])), !(=(i1739[0], 0))), i322[0], i1739[0])), ≥)∧[(-1)Bound*bni_48] + [bni_48]i1739[0] + [bni_48]i322[0] ≥ 0∧[(-1)bso_49] ≥ 0)

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

(8)    (i322[0] + [-1] ≥ 0∧i1739[0] + [-1] + [-1]i322[0] ≥ 0∧[-1] + [-1]i1739[0] ≥ 0 ⇒ (UIncreasing(COND_JMP2522(&&(&&(>(i322[0], 0), <(i322[0], i1739[0])), !(=(i1739[0], 0))), i322[0], i1739[0])), ≥)∧[(-1)Bound*bni_48] + [bni_48]i1739[0] + [bni_48]i322[0] ≥ 0∧[(-1)bso_49] ≥ 0)

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

(9)    (i322[0] + [-1] ≥ 0∧i1739[0] + [-1] + [-1]i322[0] ≥ 0∧i1739[0] + [-1] ≥ 0 ⇒ (UIncreasing(COND_JMP2522(&&(&&(>(i322[0], 0), <(i322[0], i1739[0])), !(=(i1739[0], 0))), i322[0], i1739[0])), ≥)∧[(-1)Bound*bni_48] + [bni_48]i1739[0] + [bni_48]i322[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)    (i322[0] ≥ 0∧i1739[0] + [-2] + [-1]i322[0] ≥ 0∧i1739[0] + [-1] ≥ 0 ⇒ (UIncreasing(COND_JMP2522(&&(&&(>(i322[0], 0), <(i322[0], i1739[0])), !(=(i1739[0], 0))), i322[0], i1739[0])), ≥)∧[(-1)Bound*bni_48 + bni_48] + [bni_48]i1739[0] + [bni_48]i322[0] ≥ 0∧[(-1)bso_49] ≥ 0)

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

(11)    (i322[0] ≥ 0∧i1739[0] ≥ 0∧[1] + i322[0] + i1739[0] ≥ 0 ⇒ (UIncreasing(COND_JMP2522(&&(&&(>(i322[0], 0), <(i322[0], i1739[0])), !(=(i1739[0], 0))), i322[0], i1739[0])), ≥)∧[(-1)Bound*bni_48 + (3)bni_48] + [(2)bni_48]i322[0] + [bni_48]i1739[0] ≥ 0∧[(-1)bso_49] ≥ 0)

For Pair COND_JMP2522(TRUE, i322, i1739) → JMP2522'(i1739, i322) the following chains were created:
• We consider the chain COND_JMP2522(TRUE, i322[1], i1739[1]) → JMP2522'(i1739[1], i322[1]), JMP2522'(i322[0], i1739[0]) → COND_JMP2522(&&(&&(>(i322[0], 0), <(i322[0], i1739[0])), !(=(i1739[0], 0))), i322[0], i1739[0]) which results in the following constraint:

(12)    (i322[1]=i1739[0]i1739[1]=i322[0]COND_JMP2522(TRUE, i322[1], i1739[1])≥NonInfC∧COND_JMP2522(TRUE, i322[1], i1739[1])≥JMP2522'(i1739[1], i322[1])∧(UIncreasing(JMP2522'(i1739[1], i322[1])), ≥))

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

(13)    (COND_JMP2522(TRUE, i322[1], i1739[1])≥NonInfC∧COND_JMP2522(TRUE, i322[1], i1739[1])≥JMP2522'(i1739[1], i322[1])∧(UIncreasing(JMP2522'(i1739[1], i322[1])), ≥))

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

(14)    ((UIncreasing(JMP2522'(i1739[1], i322[1])), ≥)∧[(-1)bso_51] ≥ 0)

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

(15)    ((UIncreasing(JMP2522'(i1739[1], i322[1])), ≥)∧[(-1)bso_51] ≥ 0)

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

(16)    ((UIncreasing(JMP2522'(i1739[1], i322[1])), ≥)∧[(-1)bso_51] ≥ 0)

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

(17)    ((UIncreasing(JMP2522'(i1739[1], i322[1])), ≥)∧0 = 0∧0 = 0∧[(-1)bso_51] ≥ 0)

• We consider the chain COND_JMP2522(TRUE, i322[1], i1739[1]) → JMP2522'(i1739[1], i322[1]), JMP2522'(i322[4], i1739[4]) → COND_JMP25221(&&(&&(>(i1739[4], 0), <=(-(i322[4], i1739[4]), i1739[4])), >(i322[4], i1739[4])), i322[4], i1739[4]) which results in the following constraint:

(18)    (i322[1]=i1739[4]i1739[1]=i322[4]COND_JMP2522(TRUE, i322[1], i1739[1])≥NonInfC∧COND_JMP2522(TRUE, i322[1], i1739[1])≥JMP2522'(i1739[1], i322[1])∧(UIncreasing(JMP2522'(i1739[1], i322[1])), ≥))

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

(19)    (COND_JMP2522(TRUE, i322[1], i1739[1])≥NonInfC∧COND_JMP2522(TRUE, i322[1], i1739[1])≥JMP2522'(i1739[1], i322[1])∧(UIncreasing(JMP2522'(i1739[1], i322[1])), ≥))

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

(20)    ((UIncreasing(JMP2522'(i1739[1], i322[1])), ≥)∧[(-1)bso_51] ≥ 0)

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

(21)    ((UIncreasing(JMP2522'(i1739[1], i322[1])), ≥)∧[(-1)bso_51] ≥ 0)

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

(22)    ((UIncreasing(JMP2522'(i1739[1], i322[1])), ≥)∧[(-1)bso_51] ≥ 0)

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

(23)    ((UIncreasing(JMP2522'(i1739[1], i322[1])), ≥)∧0 = 0∧0 = 0∧[(-1)bso_51] ≥ 0)

• We consider the chain COND_JMP2522(TRUE, i322[1], i1739[1]) → JMP2522'(i1739[1], i322[1]), JMP2522'(i1739[6], i1739[6]) → COND_JMP25222(>(i1739[6], 0), i1739[6], i1739[6]) which results in the following constraint:

(24)    (i322[1]=i1739[6]i1739[1]=i1739[6]COND_JMP2522(TRUE, i322[1], i1739[1])≥NonInfC∧COND_JMP2522(TRUE, i322[1], i1739[1])≥JMP2522'(i1739[1], i322[1])∧(UIncreasing(JMP2522'(i1739[1], i322[1])), ≥))

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

(25)    (COND_JMP2522(TRUE, i1739[1], i1739[1])≥NonInfC∧COND_JMP2522(TRUE, i1739[1], i1739[1])≥JMP2522'(i1739[1], i1739[1])∧(UIncreasing(JMP2522'(i1739[1], i322[1])), ≥))

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

(26)    ((UIncreasing(JMP2522'(i1739[1], i322[1])), ≥)∧[(-1)bso_51] ≥ 0)

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

(27)    ((UIncreasing(JMP2522'(i1739[1], i322[1])), ≥)∧[(-1)bso_51] ≥ 0)

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

(28)    ((UIncreasing(JMP2522'(i1739[1], i322[1])), ≥)∧[(-1)bso_51] ≥ 0)

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

(29)    ((UIncreasing(JMP2522'(i1739[1], i322[1])), ≥)∧0 = 0∧[(-1)bso_51] ≥ 0)

• We consider the chain COND_JMP2522(TRUE, i322[1], i1739[1]) → JMP2522'(i1739[1], i322[1]), JMP2522'(i322[10], i1739[10]) → COND_JMP25223(&&(&&(>(i1739[10], 0), >(-(i322[10], i1739[10]), i1739[10])), >(i322[10], i1739[10])), i322[10], i1739[10]) which results in the following constraint:

(30)    (i322[1]=i1739[10]i1739[1]=i322[10]COND_JMP2522(TRUE, i322[1], i1739[1])≥NonInfC∧COND_JMP2522(TRUE, i322[1], i1739[1])≥JMP2522'(i1739[1], i322[1])∧(UIncreasing(JMP2522'(i1739[1], i322[1])), ≥))

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

(31)    (COND_JMP2522(TRUE, i322[1], i1739[1])≥NonInfC∧COND_JMP2522(TRUE, i322[1], i1739[1])≥JMP2522'(i1739[1], i322[1])∧(UIncreasing(JMP2522'(i1739[1], i322[1])), ≥))

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

(32)    ((UIncreasing(JMP2522'(i1739[1], i322[1])), ≥)∧[(-1)bso_51] ≥ 0)

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

(33)    ((UIncreasing(JMP2522'(i1739[1], i322[1])), ≥)∧[(-1)bso_51] ≥ 0)

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

(34)    ((UIncreasing(JMP2522'(i1739[1], i322[1])), ≥)∧[(-1)bso_51] ≥ 0)

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

(35)    ((UIncreasing(JMP2522'(i1739[1], i322[1])), ≥)∧0 = 0∧0 = 0∧[(-1)bso_51] ≥ 0)

For Pair JMP4637'(i1739, i1739, i1739, i2851, i1739) → COND_JMP4637(&&(>(i1739, 0), <=(i2851, i1739)), i1739, i1739, i1739, i2851, i1739) the following chains were created:
• We consider the chain JMP4637'(i1739[2], i1739[2], i1739[2], i2851[2], i1739[2]) → COND_JMP4637(&&(>(i1739[2], 0), <=(i2851[2], i1739[2])), i1739[2], i1739[2], i1739[2], i2851[2], i1739[2]), COND_JMP4637(TRUE, i1739[3], i1739[3], i1739[3], i2851[3], i1739[3]) → JMP2522'(i1739[3], i2851[3]) which results in the following constraint:

(36)    (&&(>(i1739[2], 0), <=(i2851[2], i1739[2]))=TRUEi1739[2]=i1739[3]i2851[2]=i2851[3]JMP4637'(i1739[2], i1739[2], i1739[2], i2851[2], i1739[2])≥NonInfC∧JMP4637'(i1739[2], i1739[2], i1739[2], i2851[2], i1739[2])≥COND_JMP4637(&&(>(i1739[2], 0), <=(i2851[2], i1739[2])), i1739[2], i1739[2], i1739[2], i2851[2], i1739[2])∧(UIncreasing(COND_JMP4637(&&(>(i1739[2], 0), <=(i2851[2], i1739[2])), i1739[2], i1739[2], i1739[2], i2851[2], i1739[2])), ≥))

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

(37)    (>(i1739[2], 0)=TRUE<=(i2851[2], i1739[2])=TRUEJMP4637'(i1739[2], i1739[2], i1739[2], i2851[2], i1739[2])≥NonInfC∧JMP4637'(i1739[2], i1739[2], i1739[2], i2851[2], i1739[2])≥COND_JMP4637(&&(>(i1739[2], 0), <=(i2851[2], i1739[2])), i1739[2], i1739[2], i1739[2], i2851[2], i1739[2])∧(UIncreasing(COND_JMP4637(&&(>(i1739[2], 0), <=(i2851[2], i1739[2])), i1739[2], i1739[2], i1739[2], i2851[2], i1739[2])), ≥))

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

(38)    (i1739[2] + [-1] ≥ 0∧i1739[2] + [-1]i2851[2] ≥ 0 ⇒ (UIncreasing(COND_JMP4637(&&(>(i1739[2], 0), <=(i2851[2], i1739[2])), i1739[2], i1739[2], i1739[2], i2851[2], i1739[2])), ≥)∧[(-1)Bound*bni_52] + [bni_52]i1739[2] + [bni_52]i2851[2] ≥ 0∧[(-1)bso_53] ≥ 0)

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

(39)    (i1739[2] + [-1] ≥ 0∧i1739[2] + [-1]i2851[2] ≥ 0 ⇒ (UIncreasing(COND_JMP4637(&&(>(i1739[2], 0), <=(i2851[2], i1739[2])), i1739[2], i1739[2], i1739[2], i2851[2], i1739[2])), ≥)∧[(-1)Bound*bni_52] + [bni_52]i1739[2] + [bni_52]i2851[2] ≥ 0∧[(-1)bso_53] ≥ 0)

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

(40)    (i1739[2] + [-1] ≥ 0∧i1739[2] + [-1]i2851[2] ≥ 0 ⇒ (UIncreasing(COND_JMP4637(&&(>(i1739[2], 0), <=(i2851[2], i1739[2])), i1739[2], i1739[2], i1739[2], i2851[2], i1739[2])), ≥)∧[(-1)Bound*bni_52] + [bni_52]i1739[2] + [bni_52]i2851[2] ≥ 0∧[(-1)bso_53] ≥ 0)

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

(41)    (i1739[2] ≥ 0∧[1] + i1739[2] + [-1]i2851[2] ≥ 0 ⇒ (UIncreasing(COND_JMP4637(&&(>(i1739[2], 0), <=(i2851[2], i1739[2])), i1739[2], i1739[2], i1739[2], i2851[2], i1739[2])), ≥)∧[(-1)Bound*bni_52 + bni_52] + [bni_52]i1739[2] + [bni_52]i2851[2] ≥ 0∧[(-1)bso_53] ≥ 0)

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

(42)    (i1739[2] ≥ 0∧[1] + i1739[2] + [-1]i2851[2] ≥ 0∧i2851[2] ≥ 0 ⇒ (UIncreasing(COND_JMP4637(&&(>(i1739[2], 0), <=(i2851[2], i1739[2])), i1739[2], i1739[2], i1739[2], i2851[2], i1739[2])), ≥)∧[(-1)Bound*bni_52 + bni_52] + [bni_52]i1739[2] + [bni_52]i2851[2] ≥ 0∧[(-1)bso_53] ≥ 0)

(43)    (i1739[2] ≥ 0∧[1] + i1739[2] + i2851[2] ≥ 0∧i2851[2] ≥ 0 ⇒ (UIncreasing(COND_JMP4637(&&(>(i1739[2], 0), <=(i2851[2], i1739[2])), i1739[2], i1739[2], i1739[2], i2851[2], i1739[2])), ≥)∧[(-1)Bound*bni_52 + bni_52] + [bni_52]i1739[2] + [(-1)bni_52]i2851[2] ≥ 0∧[(-1)bso_53] ≥ 0)

For Pair COND_JMP4637(TRUE, i1739, i1739, i1739, i2851, i1739) → JMP2522'(i1739, i2851) the following chains were created:
• We consider the chain COND_JMP4637(TRUE, i1739[3], i1739[3], i1739[3], i2851[3], i1739[3]) → JMP2522'(i1739[3], i2851[3]), JMP2522'(i322[0], i1739[0]) → COND_JMP2522(&&(&&(>(i322[0], 0), <(i322[0], i1739[0])), !(=(i1739[0], 0))), i322[0], i1739[0]) which results in the following constraint:

(44)    (i2851[3]=i1739[0]i1739[3]=i322[0]COND_JMP4637(TRUE, i1739[3], i1739[3], i1739[3], i2851[3], i1739[3])≥NonInfC∧COND_JMP4637(TRUE, i1739[3], i1739[3], i1739[3], i2851[3], i1739[3])≥JMP2522'(i1739[3], i2851[3])∧(UIncreasing(JMP2522'(i1739[3], i2851[3])), ≥))

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

(45)    (COND_JMP4637(TRUE, i1739[3], i1739[3], i1739[3], i2851[3], i1739[3])≥NonInfC∧COND_JMP4637(TRUE, i1739[3], i1739[3], i1739[3], i2851[3], i1739[3])≥JMP2522'(i1739[3], i2851[3])∧(UIncreasing(JMP2522'(i1739[3], i2851[3])), ≥))

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

(46)    ((UIncreasing(JMP2522'(i1739[3], i2851[3])), ≥)∧[(-1)bso_55] ≥ 0)

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

(47)    ((UIncreasing(JMP2522'(i1739[3], i2851[3])), ≥)∧[(-1)bso_55] ≥ 0)

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

(48)    ((UIncreasing(JMP2522'(i1739[3], i2851[3])), ≥)∧[(-1)bso_55] ≥ 0)

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

(49)    ((UIncreasing(JMP2522'(i1739[3], i2851[3])), ≥)∧0 = 0∧0 = 0∧[(-1)bso_55] ≥ 0)

• We consider the chain COND_JMP4637(TRUE, i1739[3], i1739[3], i1739[3], i2851[3], i1739[3]) → JMP2522'(i1739[3], i2851[3]), JMP2522'(i322[4], i1739[4]) → COND_JMP25221(&&(&&(>(i1739[4], 0), <=(-(i322[4], i1739[4]), i1739[4])), >(i322[4], i1739[4])), i322[4], i1739[4]) which results in the following constraint:

(50)    (i2851[3]=i1739[4]i1739[3]=i322[4]COND_JMP4637(TRUE, i1739[3], i1739[3], i1739[3], i2851[3], i1739[3])≥NonInfC∧COND_JMP4637(TRUE, i1739[3], i1739[3], i1739[3], i2851[3], i1739[3])≥JMP2522'(i1739[3], i2851[3])∧(UIncreasing(JMP2522'(i1739[3], i2851[3])), ≥))

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

(51)    (COND_JMP4637(TRUE, i1739[3], i1739[3], i1739[3], i2851[3], i1739[3])≥NonInfC∧COND_JMP4637(TRUE, i1739[3], i1739[3], i1739[3], i2851[3], i1739[3])≥JMP2522'(i1739[3], i2851[3])∧(UIncreasing(JMP2522'(i1739[3], i2851[3])), ≥))

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

(52)    ((UIncreasing(JMP2522'(i1739[3], i2851[3])), ≥)∧[(-1)bso_55] ≥ 0)

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

(53)    ((UIncreasing(JMP2522'(i1739[3], i2851[3])), ≥)∧[(-1)bso_55] ≥ 0)

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

(54)    ((UIncreasing(JMP2522'(i1739[3], i2851[3])), ≥)∧[(-1)bso_55] ≥ 0)

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

(55)    ((UIncreasing(JMP2522'(i1739[3], i2851[3])), ≥)∧0 = 0∧0 = 0∧[(-1)bso_55] ≥ 0)

• We consider the chain COND_JMP4637(TRUE, i1739[3], i1739[3], i1739[3], i2851[3], i1739[3]) → JMP2522'(i1739[3], i2851[3]), JMP2522'(i1739[6], i1739[6]) → COND_JMP25222(>(i1739[6], 0), i1739[6], i1739[6]) which results in the following constraint:

(56)    (i2851[3]=i1739[6]i1739[3]=i1739[6]COND_JMP4637(TRUE, i1739[3], i1739[3], i1739[3], i2851[3], i1739[3])≥NonInfC∧COND_JMP4637(TRUE, i1739[3], i1739[3], i1739[3], i2851[3], i1739[3])≥JMP2522'(i1739[3], i2851[3])∧(UIncreasing(JMP2522'(i1739[3], i2851[3])), ≥))

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

(57)    (COND_JMP4637(TRUE, i1739[3], i1739[3], i1739[3], i1739[3], i1739[3])≥NonInfC∧COND_JMP4637(TRUE, i1739[3], i1739[3], i1739[3], i1739[3], i1739[3])≥JMP2522'(i1739[3], i1739[3])∧(UIncreasing(JMP2522'(i1739[3], i2851[3])), ≥))

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

(58)    ((UIncreasing(JMP2522'(i1739[3], i2851[3])), ≥)∧[(-1)bso_55] ≥ 0)

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

(59)    ((UIncreasing(JMP2522'(i1739[3], i2851[3])), ≥)∧[(-1)bso_55] ≥ 0)

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

(60)    ((UIncreasing(JMP2522'(i1739[3], i2851[3])), ≥)∧[(-1)bso_55] ≥ 0)

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

(61)    ((UIncreasing(JMP2522'(i1739[3], i2851[3])), ≥)∧0 = 0∧[(-1)bso_55] ≥ 0)

• We consider the chain COND_JMP4637(TRUE, i1739[3], i1739[3], i1739[3], i2851[3], i1739[3]) → JMP2522'(i1739[3], i2851[3]), JMP2522'(i322[10], i1739[10]) → COND_JMP25223(&&(&&(>(i1739[10], 0), >(-(i322[10], i1739[10]), i1739[10])), >(i322[10], i1739[10])), i322[10], i1739[10]) which results in the following constraint:

(62)    (i2851[3]=i1739[10]i1739[3]=i322[10]COND_JMP4637(TRUE, i1739[3], i1739[3], i1739[3], i2851[3], i1739[3])≥NonInfC∧COND_JMP4637(TRUE, i1739[3], i1739[3], i1739[3], i2851[3], i1739[3])≥JMP2522'(i1739[3], i2851[3])∧(UIncreasing(JMP2522'(i1739[3], i2851[3])), ≥))

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

(63)    (COND_JMP4637(TRUE, i1739[3], i1739[3], i1739[3], i2851[3], i1739[3])≥NonInfC∧COND_JMP4637(TRUE, i1739[3], i1739[3], i1739[3], i2851[3], i1739[3])≥JMP2522'(i1739[3], i2851[3])∧(UIncreasing(JMP2522'(i1739[3], i2851[3])), ≥))

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

(64)    ((UIncreasing(JMP2522'(i1739[3], i2851[3])), ≥)∧[(-1)bso_55] ≥ 0)

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

(65)    ((UIncreasing(JMP2522'(i1739[3], i2851[3])), ≥)∧[(-1)bso_55] ≥ 0)

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

(66)    ((UIncreasing(JMP2522'(i1739[3], i2851[3])), ≥)∧[(-1)bso_55] ≥ 0)

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

(67)    ((UIncreasing(JMP2522'(i1739[3], i2851[3])), ≥)∧0 = 0∧0 = 0∧[(-1)bso_55] ≥ 0)

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

(68)    (i1739[4]=i1739[5]i322[4]=i322[5]&&(&&(>(i1739[4], 0), <=(-(i322[4], i1739[4]), i1739[4])), >(i322[4], i1739[4]))=TRUEJMP2522'(i322[4], i1739[4])≥NonInfC∧JMP2522'(i322[4], i1739[4])≥COND_JMP25221(&&(&&(>(i1739[4], 0), <=(-(i322[4], i1739[4]), i1739[4])), >(i322[4], i1739[4])), i322[4], i1739[4])∧(UIncreasing(COND_JMP25221(&&(&&(>(i1739[4], 0), <=(-(i322[4], i1739[4]), i1739[4])), >(i322[4], i1739[4])), i322[4], i1739[4])), ≥))

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

(69)    (>(i322[4], i1739[4])=TRUE>(i1739[4], 0)=TRUE<=(-(i322[4], i1739[4]), i1739[4])=TRUEJMP2522'(i322[4], i1739[4])≥NonInfC∧JMP2522'(i322[4], i1739[4])≥COND_JMP25221(&&(&&(>(i1739[4], 0), <=(-(i322[4], i1739[4]), i1739[4])), >(i322[4], i1739[4])), i322[4], i1739[4])∧(UIncreasing(COND_JMP25221(&&(&&(>(i1739[4], 0), <=(-(i322[4], i1739[4]), i1739[4])), >(i322[4], i1739[4])), i322[4], i1739[4])), ≥))

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

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

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

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

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

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

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

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

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

(74)    (i322[4] ≥ 0∧i1739[4] ≥ 0∧i1739[4] + [-1]i322[4] ≥ 0 ⇒ (UIncreasing(COND_JMP25221(&&(&&(>(i1739[4], 0), <=(-(i322[4], i1739[4]), i1739[4])), >(i322[4], i1739[4])), i322[4], i1739[4])), ≥)∧[(-1)Bound*bni_56 + (3)bni_56] + [(2)bni_56]i1739[4] + [bni_56]i322[4] ≥ 0∧[1 + (-1)bso_57] + i322[4] ≥ 0)

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

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

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

(76)    (i1739[4]=i1739[5]i322[4]=i322[5]&&(&&(>(i1739[4], 0), <=(-(i322[4], i1739[4]), i1739[4])), >(i322[4], i1739[4]))=TRUECOND_JMP25221(TRUE, i322[5], i1739[5])≥NonInfC∧COND_JMP25221(TRUE, i322[5], i1739[5])≥JMP2522'(i1739[5], -(i322[5], i1739[5]))∧(UIncreasing(JMP2522'(i1739[5], -(i322[5], i1739[5]))), ≥))

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

(77)    (>(i322[4], i1739[4])=TRUE>(i1739[4], 0)=TRUE<=(-(i322[4], i1739[4]), i1739[4])=TRUECOND_JMP25221(TRUE, i322[4], i1739[4])≥NonInfC∧COND_JMP25221(TRUE, i322[4], i1739[4])≥JMP2522'(i1739[4], -(i322[4], i1739[4]))∧(UIncreasing(JMP2522'(i1739[5], -(i322[5], i1739[5]))), ≥))

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

(78)    (i322[4] + [-1] + [-1]i1739[4] ≥ 0∧i1739[4] + [-1] ≥ 0∧[2]i1739[4] + [-1]i322[4] ≥ 0 ⇒ (UIncreasing(JMP2522'(i1739[5], -(i322[5], i1739[5]))), ≥)∧[(-1)Bound*bni_58] + [(2)bni_58]i1739[4] ≥ 0∧[(-1)bso_59] + [2]i1739[4] + [-1]i322[4] ≥ 0)

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

(79)    (i322[4] + [-1] + [-1]i1739[4] ≥ 0∧i1739[4] + [-1] ≥ 0∧[2]i1739[4] + [-1]i322[4] ≥ 0 ⇒ (UIncreasing(JMP2522'(i1739[5], -(i322[5], i1739[5]))), ≥)∧[(-1)Bound*bni_58] + [(2)bni_58]i1739[4] ≥ 0∧[(-1)bso_59] + [2]i1739[4] + [-1]i322[4] ≥ 0)

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

(80)    (i322[4] + [-1] + [-1]i1739[4] ≥ 0∧i1739[4] + [-1] ≥ 0∧[2]i1739[4] + [-1]i322[4] ≥ 0 ⇒ (UIncreasing(JMP2522'(i1739[5], -(i322[5], i1739[5]))), ≥)∧[(-1)Bound*bni_58] + [(2)bni_58]i1739[4] ≥ 0∧[(-1)bso_59] + [2]i1739[4] + [-1]i322[4] ≥ 0)

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

(81)    (i322[4] ≥ 0∧i1739[4] + [-1] ≥ 0∧i1739[4] + [-1] + [-1]i322[4] ≥ 0 ⇒ (UIncreasing(JMP2522'(i1739[5], -(i322[5], i1739[5]))), ≥)∧[(-1)Bound*bni_58] + [(2)bni_58]i1739[4] ≥ 0∧[-1 + (-1)bso_59] + i1739[4] + [-1]i322[4] ≥ 0)

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

(82)    (i322[4] ≥ 0∧i1739[4] ≥ 0∧i1739[4] + [-1]i322[4] ≥ 0 ⇒ (UIncreasing(JMP2522'(i1739[5], -(i322[5], i1739[5]))), ≥)∧[(-1)Bound*bni_58 + (2)bni_58] + [(2)bni_58]i1739[4] ≥ 0∧[(-1)bso_59] + i1739[4] + [-1]i322[4] ≥ 0)

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

(83)    (i322[4] ≥ 0∧i322[4] + i1739[4] ≥ 0∧i1739[4] ≥ 0 ⇒ (UIncreasing(JMP2522'(i1739[5], -(i322[5], i1739[5]))), ≥)∧[(-1)Bound*bni_58 + (2)bni_58] + [(2)bni_58]i322[4] + [(2)bni_58]i1739[4] ≥ 0∧[(-1)bso_59] + i1739[4] ≥ 0)

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

(84)    (i1739[6]=i1739[7]>(i1739[6], 0)=TRUEJMP2522'(i1739[6], i1739[6])≥NonInfC∧JMP2522'(i1739[6], i1739[6])≥COND_JMP25222(>(i1739[6], 0), i1739[6], i1739[6])∧(UIncreasing(COND_JMP25222(>(i1739[6], 0), i1739[6], i1739[6])), ≥))

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

(85)    (>(i1739[6], 0)=TRUEJMP2522'(i1739[6], i1739[6])≥NonInfC∧JMP2522'(i1739[6], i1739[6])≥COND_JMP25222(>(i1739[6], 0), i1739[6], i1739[6])∧(UIncreasing(COND_JMP25222(>(i1739[6], 0), i1739[6], i1739[6])), ≥))

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

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

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

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

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

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

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

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

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

(90)    (i1739[6]=i1739[7]>(i1739[6], 0)=TRUECOND_JMP25222(TRUE, i1739[7], i1739[7])≥NonInfC∧COND_JMP25222(TRUE, i1739[7], i1739[7])≥JMP2522'(i1739[7], 0)∧(UIncreasing(JMP2522'(i1739[7], 0)), ≥))

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

(91)    (>(i1739[6], 0)=TRUECOND_JMP25222(TRUE, i1739[6], i1739[6])≥NonInfC∧COND_JMP25222(TRUE, i1739[6], i1739[6])≥JMP2522'(i1739[6], 0)∧(UIncreasing(JMP2522'(i1739[7], 0)), ≥))

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

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

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

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

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

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

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

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

For Pair JMP4637'(i1739, i1739, i1739, i2851, i1739) → COND_JMP46371(&&(>(i1739, 0), >(i2851, i1739)), i1739, i1739, i1739, i2851, i1739) the following chains were created:
• We consider the chain JMP4637'(i1739[8], i1739[8], i1739[8], i2851[8], i1739[8]) → COND_JMP46371(&&(>(i1739[8], 0), >(i2851[8], i1739[8])), i1739[8], i1739[8], i1739[8], i2851[8], i1739[8]), COND_JMP46371(TRUE, i1739[9], i1739[9], i1739[9], i2851[9], i1739[9]) → JMP4637'(i1739[9], i1739[9], i1739[9], -(i2851[9], i1739[9]), i1739[9]) which results in the following constraint:

(96)    (&&(>(i1739[8], 0), >(i2851[8], i1739[8]))=TRUEi2851[8]=i2851[9]i1739[8]=i1739[9]JMP4637'(i1739[8], i1739[8], i1739[8], i2851[8], i1739[8])≥NonInfC∧JMP4637'(i1739[8], i1739[8], i1739[8], i2851[8], i1739[8])≥COND_JMP46371(&&(>(i1739[8], 0), >(i2851[8], i1739[8])), i1739[8], i1739[8], i1739[8], i2851[8], i1739[8])∧(UIncreasing(COND_JMP46371(&&(>(i1739[8], 0), >(i2851[8], i1739[8])), i1739[8], i1739[8], i1739[8], i2851[8], i1739[8])), ≥))

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

(97)    (>(i1739[8], 0)=TRUE>(i2851[8], i1739[8])=TRUEJMP4637'(i1739[8], i1739[8], i1739[8], i2851[8], i1739[8])≥NonInfC∧JMP4637'(i1739[8], i1739[8], i1739[8], i2851[8], i1739[8])≥COND_JMP46371(&&(>(i1739[8], 0), >(i2851[8], i1739[8])), i1739[8], i1739[8], i1739[8], i2851[8], i1739[8])∧(UIncreasing(COND_JMP46371(&&(>(i1739[8], 0), >(i2851[8], i1739[8])), i1739[8], i1739[8], i1739[8], i2851[8], i1739[8])), ≥))

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

(98)    (i1739[8] + [-1] ≥ 0∧i2851[8] + [-1] + [-1]i1739[8] ≥ 0 ⇒ (UIncreasing(COND_JMP46371(&&(>(i1739[8], 0), >(i2851[8], i1739[8])), i1739[8], i1739[8], i1739[8], i2851[8], i1739[8])), ≥)∧[(-1)Bound*bni_64] + [bni_64]i1739[8] + [bni_64]i2851[8] ≥ 0∧[-1 + (-1)bso_65] + i1739[8] ≥ 0)

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

(99)    (i1739[8] + [-1] ≥ 0∧i2851[8] + [-1] + [-1]i1739[8] ≥ 0 ⇒ (UIncreasing(COND_JMP46371(&&(>(i1739[8], 0), >(i2851[8], i1739[8])), i1739[8], i1739[8], i1739[8], i2851[8], i1739[8])), ≥)∧[(-1)Bound*bni_64] + [bni_64]i1739[8] + [bni_64]i2851[8] ≥ 0∧[-1 + (-1)bso_65] + i1739[8] ≥ 0)

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

(100)    (i1739[8] + [-1] ≥ 0∧i2851[8] + [-1] + [-1]i1739[8] ≥ 0 ⇒ (UIncreasing(COND_JMP46371(&&(>(i1739[8], 0), >(i2851[8], i1739[8])), i1739[8], i1739[8], i1739[8], i2851[8], i1739[8])), ≥)∧[(-1)Bound*bni_64] + [bni_64]i1739[8] + [bni_64]i2851[8] ≥ 0∧[-1 + (-1)bso_65] + i1739[8] ≥ 0)

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

(101)    (i1739[8] ≥ 0∧i2851[8] + [-2] + [-1]i1739[8] ≥ 0 ⇒ (UIncreasing(COND_JMP46371(&&(>(i1739[8], 0), >(i2851[8], i1739[8])), i1739[8], i1739[8], i1739[8], i2851[8], i1739[8])), ≥)∧[(-1)Bound*bni_64 + bni_64] + [bni_64]i1739[8] + [bni_64]i2851[8] ≥ 0∧[(-1)bso_65] + i1739[8] ≥ 0)

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

(102)    (i1739[8] ≥ 0∧i2851[8] ≥ 0 ⇒ (UIncreasing(COND_JMP46371(&&(>(i1739[8], 0), >(i2851[8], i1739[8])), i1739[8], i1739[8], i1739[8], i2851[8], i1739[8])), ≥)∧[(-1)Bound*bni_64 + (3)bni_64] + [(2)bni_64]i1739[8] + [bni_64]i2851[8] ≥ 0∧[(-1)bso_65] + i1739[8] ≥ 0)

For Pair COND_JMP46371(TRUE, i1739, i1739, i1739, i2851, i1739) → JMP4637'(i1739, i1739, i1739, -(i2851, i1739), i1739) the following chains were created:
• We consider the chain JMP4637'(i1739[8], i1739[8], i1739[8], i2851[8], i1739[8]) → COND_JMP46371(&&(>(i1739[8], 0), >(i2851[8], i1739[8])), i1739[8], i1739[8], i1739[8], i2851[8], i1739[8]), COND_JMP46371(TRUE, i1739[9], i1739[9], i1739[9], i2851[9], i1739[9]) → JMP4637'(i1739[9], i1739[9], i1739[9], -(i2851[9], i1739[9]), i1739[9]), JMP4637'(i1739[2], i1739[2], i1739[2], i2851[2], i1739[2]) → COND_JMP4637(&&(>(i1739[2], 0), <=(i2851[2], i1739[2])), i1739[2], i1739[2], i1739[2], i2851[2], i1739[2]) which results in the following constraint:

(103)    (&&(>(i1739[8], 0), >(i2851[8], i1739[8]))=TRUEi2851[8]=i2851[9]i1739[8]=i1739[9]-(i2851[9], i1739[9])=i2851[2]i1739[9]=i1739[2]COND_JMP46371(TRUE, i1739[9], i1739[9], i1739[9], i2851[9], i1739[9])≥NonInfC∧COND_JMP46371(TRUE, i1739[9], i1739[9], i1739[9], i2851[9], i1739[9])≥JMP4637'(i1739[9], i1739[9], i1739[9], -(i2851[9], i1739[9]), i1739[9])∧(UIncreasing(JMP4637'(i1739[9], i1739[9], i1739[9], -(i2851[9], i1739[9]), i1739[9])), ≥))

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

(104)    (>(i1739[8], 0)=TRUE>(i2851[8], i1739[8])=TRUECOND_JMP46371(TRUE, i1739[8], i1739[8], i1739[8], i2851[8], i1739[8])≥NonInfC∧COND_JMP46371(TRUE, i1739[8], i1739[8], i1739[8], i2851[8], i1739[8])≥JMP4637'(i1739[8], i1739[8], i1739[8], -(i2851[8], i1739[8]), i1739[8])∧(UIncreasing(JMP4637'(i1739[9], i1739[9], i1739[9], -(i2851[9], i1739[9]), i1739[9])), ≥))

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

(105)    (i1739[8] + [-1] ≥ 0∧i2851[8] + [-1] + [-1]i1739[8] ≥ 0 ⇒ (UIncreasing(JMP4637'(i1739[9], i1739[9], i1739[9], -(i2851[9], i1739[9]), i1739[9])), ≥)∧[bni_66 + (-1)Bound*bni_66] + [bni_66]i2851[8] ≥ 0∧[1 + (-1)bso_67] ≥ 0)

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

(106)    (i1739[8] + [-1] ≥ 0∧i2851[8] + [-1] + [-1]i1739[8] ≥ 0 ⇒ (UIncreasing(JMP4637'(i1739[9], i1739[9], i1739[9], -(i2851[9], i1739[9]), i1739[9])), ≥)∧[bni_66 + (-1)Bound*bni_66] + [bni_66]i2851[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)    (i1739[8] + [-1] ≥ 0∧i2851[8] + [-1] + [-1]i1739[8] ≥ 0 ⇒ (UIncreasing(JMP4637'(i1739[9], i1739[9], i1739[9], -(i2851[9], i1739[9]), i1739[9])), ≥)∧[bni_66 + (-1)Bound*bni_66] + [bni_66]i2851[8] ≥ 0∧[1 + (-1)bso_67] ≥ 0)

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

(108)    (i1739[8] ≥ 0∧i2851[8] + [-2] + [-1]i1739[8] ≥ 0 ⇒ (UIncreasing(JMP4637'(i1739[9], i1739[9], i1739[9], -(i2851[9], i1739[9]), i1739[9])), ≥)∧[bni_66 + (-1)Bound*bni_66] + [bni_66]i2851[8] ≥ 0∧[1 + (-1)bso_67] ≥ 0)

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

(109)    (i1739[8] ≥ 0∧i2851[8] ≥ 0 ⇒ (UIncreasing(JMP4637'(i1739[9], i1739[9], i1739[9], -(i2851[9], i1739[9]), i1739[9])), ≥)∧[(3)bni_66 + (-1)Bound*bni_66] + [bni_66]i1739[8] + [bni_66]i2851[8] ≥ 0∧[1 + (-1)bso_67] ≥ 0)

• We consider the chain JMP4637'(i1739[8], i1739[8], i1739[8], i2851[8], i1739[8]) → COND_JMP46371(&&(>(i1739[8], 0), >(i2851[8], i1739[8])), i1739[8], i1739[8], i1739[8], i2851[8], i1739[8]), COND_JMP46371(TRUE, i1739[9], i1739[9], i1739[9], i2851[9], i1739[9]) → JMP4637'(i1739[9], i1739[9], i1739[9], -(i2851[9], i1739[9]), i1739[9]), JMP4637'(i1739[8], i1739[8], i1739[8], i2851[8], i1739[8]) → COND_JMP46371(&&(>(i1739[8], 0), >(i2851[8], i1739[8])), i1739[8], i1739[8], i1739[8], i2851[8], i1739[8]) which results in the following constraint:

(110)    (&&(>(i1739[8], 0), >(i2851[8], i1739[8]))=TRUEi2851[8]=i2851[9]i1739[8]=i1739[9]-(i2851[9], i1739[9])=i2851[8]1i1739[9]=i1739[8]1COND_JMP46371(TRUE, i1739[9], i1739[9], i1739[9], i2851[9], i1739[9])≥NonInfC∧COND_JMP46371(TRUE, i1739[9], i1739[9], i1739[9], i2851[9], i1739[9])≥JMP4637'(i1739[9], i1739[9], i1739[9], -(i2851[9], i1739[9]), i1739[9])∧(UIncreasing(JMP4637'(i1739[9], i1739[9], i1739[9], -(i2851[9], i1739[9]), i1739[9])), ≥))

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

(111)    (>(i1739[8], 0)=TRUE>(i2851[8], i1739[8])=TRUECOND_JMP46371(TRUE, i1739[8], i1739[8], i1739[8], i2851[8], i1739[8])≥NonInfC∧COND_JMP46371(TRUE, i1739[8], i1739[8], i1739[8], i2851[8], i1739[8])≥JMP4637'(i1739[8], i1739[8], i1739[8], -(i2851[8], i1739[8]), i1739[8])∧(UIncreasing(JMP4637'(i1739[9], i1739[9], i1739[9], -(i2851[9], i1739[9]), i1739[9])), ≥))

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

(112)    (i1739[8] + [-1] ≥ 0∧i2851[8] + [-1] + [-1]i1739[8] ≥ 0 ⇒ (UIncreasing(JMP4637'(i1739[9], i1739[9], i1739[9], -(i2851[9], i1739[9]), i1739[9])), ≥)∧[bni_66 + (-1)Bound*bni_66] + [bni_66]i2851[8] ≥ 0∧[1 + (-1)bso_67] ≥ 0)

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

(113)    (i1739[8] + [-1] ≥ 0∧i2851[8] + [-1] + [-1]i1739[8] ≥ 0 ⇒ (UIncreasing(JMP4637'(i1739[9], i1739[9], i1739[9], -(i2851[9], i1739[9]), i1739[9])), ≥)∧[bni_66 + (-1)Bound*bni_66] + [bni_66]i2851[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)    (i1739[8] + [-1] ≥ 0∧i2851[8] + [-1] + [-1]i1739[8] ≥ 0 ⇒ (UIncreasing(JMP4637'(i1739[9], i1739[9], i1739[9], -(i2851[9], i1739[9]), i1739[9])), ≥)∧[bni_66 + (-1)Bound*bni_66] + [bni_66]i2851[8] ≥ 0∧[1 + (-1)bso_67] ≥ 0)

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

(115)    (i1739[8] ≥ 0∧i2851[8] + [-2] + [-1]i1739[8] ≥ 0 ⇒ (UIncreasing(JMP4637'(i1739[9], i1739[9], i1739[9], -(i2851[9], i1739[9]), i1739[9])), ≥)∧[bni_66 + (-1)Bound*bni_66] + [bni_66]i2851[8] ≥ 0∧[1 + (-1)bso_67] ≥ 0)

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

(116)    (i1739[8] ≥ 0∧i2851[8] ≥ 0 ⇒ (UIncreasing(JMP4637'(i1739[9], i1739[9], i1739[9], -(i2851[9], i1739[9]), i1739[9])), ≥)∧[(3)bni_66 + (-1)Bound*bni_66] + [bni_66]i1739[8] + [bni_66]i2851[8] ≥ 0∧[1 + (-1)bso_67] ≥ 0)

For Pair JMP2522'(i322, i1739) → COND_JMP25223(&&(&&(>(i1739, 0), >(-(i322, i1739), i1739)), >(i322, i1739)), i322, i1739) the following chains were created:
• We consider the chain JMP2522'(i322[10], i1739[10]) → COND_JMP25223(&&(&&(>(i1739[10], 0), >(-(i322[10], i1739[10]), i1739[10])), >(i322[10], i1739[10])), i322[10], i1739[10]), COND_JMP25223(TRUE, i322[11], i1739[11]) → JMP4637'(i1739[11], i1739[11], i1739[11], -(-(i322[11], i1739[11]), i1739[11]), i1739[11]) which results in the following constraint:

(117)    (i322[10]=i322[11]i1739[10]=i1739[11]&&(&&(>(i1739[10], 0), >(-(i322[10], i1739[10]), i1739[10])), >(i322[10], i1739[10]))=TRUEJMP2522'(i322[10], i1739[10])≥NonInfC∧JMP2522'(i322[10], i1739[10])≥COND_JMP25223(&&(&&(>(i1739[10], 0), >(-(i322[10], i1739[10]), i1739[10])), >(i322[10], i1739[10])), i322[10], i1739[10])∧(UIncreasing(COND_JMP25223(&&(&&(>(i1739[10], 0), >(-(i322[10], i1739[10]), i1739[10])), >(i322[10], i1739[10])), i322[10], i1739[10])), ≥))

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

(118)    (>(i322[10], i1739[10])=TRUE>(i1739[10], 0)=TRUE>(-(i322[10], i1739[10]), i1739[10])=TRUEJMP2522'(i322[10], i1739[10])≥NonInfC∧JMP2522'(i322[10], i1739[10])≥COND_JMP25223(&&(&&(>(i1739[10], 0), >(-(i322[10], i1739[10]), i1739[10])), >(i322[10], i1739[10])), i322[10], i1739[10])∧(UIncreasing(COND_JMP25223(&&(&&(>(i1739[10], 0), >(-(i322[10], i1739[10]), i1739[10])), >(i322[10], i1739[10])), i322[10], i1739[10])), ≥))

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

(119)    (i322[10] + [-1] + [-1]i1739[10] ≥ 0∧i1739[10] + [-1] ≥ 0∧i322[10] + [-1] + [-2]i1739[10] ≥ 0 ⇒ (UIncreasing(COND_JMP25223(&&(&&(>(i1739[10], 0), >(-(i322[10], i1739[10]), i1739[10])), >(i322[10], i1739[10])), i322[10], i1739[10])), ≥)∧[(-1)Bound*bni_68] + [bni_68]i1739[10] + [bni_68]i322[10] ≥ 0∧[(-1)bso_69] + [2]i1739[10] ≥ 0)

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

(120)    (i322[10] + [-1] + [-1]i1739[10] ≥ 0∧i1739[10] + [-1] ≥ 0∧i322[10] + [-1] + [-2]i1739[10] ≥ 0 ⇒ (UIncreasing(COND_JMP25223(&&(&&(>(i1739[10], 0), >(-(i322[10], i1739[10]), i1739[10])), >(i322[10], i1739[10])), i322[10], i1739[10])), ≥)∧[(-1)Bound*bni_68] + [bni_68]i1739[10] + [bni_68]i322[10] ≥ 0∧[(-1)bso_69] + [2]i1739[10] ≥ 0)

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

(121)    (i322[10] + [-1] + [-1]i1739[10] ≥ 0∧i1739[10] + [-1] ≥ 0∧i322[10] + [-1] + [-2]i1739[10] ≥ 0 ⇒ (UIncreasing(COND_JMP25223(&&(&&(>(i1739[10], 0), >(-(i322[10], i1739[10]), i1739[10])), >(i322[10], i1739[10])), i322[10], i1739[10])), ≥)∧[(-1)Bound*bni_68] + [bni_68]i1739[10] + [bni_68]i322[10] ≥ 0∧[(-1)bso_69] + [2]i1739[10] ≥ 0)

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

(122)    (i322[10] ≥ 0∧i1739[10] + [-1] ≥ 0∧[-1]i1739[10] + i322[10] ≥ 0 ⇒ (UIncreasing(COND_JMP25223(&&(&&(>(i1739[10], 0), >(-(i322[10], i1739[10]), i1739[10])), >(i322[10], i1739[10])), i322[10], i1739[10])), ≥)∧[(-1)Bound*bni_68 + bni_68] + [(2)bni_68]i1739[10] + [bni_68]i322[10] ≥ 0∧[(-1)bso_69] + [2]i1739[10] ≥ 0)

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

(123)    (i322[10] ≥ 0∧i1739[10] ≥ 0∧[-1] + [-1]i1739[10] + i322[10] ≥ 0 ⇒ (UIncreasing(COND_JMP25223(&&(&&(>(i1739[10], 0), >(-(i322[10], i1739[10]), i1739[10])), >(i322[10], i1739[10])), i322[10], i1739[10])), ≥)∧[(-1)Bound*bni_68 + (3)bni_68] + [(2)bni_68]i1739[10] + [bni_68]i322[10] ≥ 0∧[2 + (-1)bso_69] + [2]i1739[10] ≥ 0)

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

(124)    ([1] + i1739[10] + i322[10] ≥ 0∧i1739[10] ≥ 0∧i322[10] ≥ 0 ⇒ (UIncreasing(COND_JMP25223(&&(&&(>(i1739[10], 0), >(-(i322[10], i1739[10]), i1739[10])), >(i322[10], i1739[10])), i322[10], i1739[10])), ≥)∧[(-1)Bound*bni_68 + (4)bni_68] + [(3)bni_68]i1739[10] + [bni_68]i322[10] ≥ 0∧[2 + (-1)bso_69] + [2]i1739[10] ≥ 0)

For Pair COND_JMP25223(TRUE, i322, i1739) → JMP4637'(i1739, i1739, i1739, -(-(i322, i1739), i1739), i1739) the following chains were created:
• We consider the chain JMP2522'(i322[10], i1739[10]) → COND_JMP25223(&&(&&(>(i1739[10], 0), >(-(i322[10], i1739[10]), i1739[10])), >(i322[10], i1739[10])), i322[10], i1739[10]), COND_JMP25223(TRUE, i322[11], i1739[11]) → JMP4637'(i1739[11], i1739[11], i1739[11], -(-(i322[11], i1739[11]), i1739[11]), i1739[11]), JMP4637'(i1739[2], i1739[2], i1739[2], i2851[2], i1739[2]) → COND_JMP4637(&&(>(i1739[2], 0), <=(i2851[2], i1739[2])), i1739[2], i1739[2], i1739[2], i2851[2], i1739[2]) which results in the following constraint:

(125)    (i322[10]=i322[11]i1739[10]=i1739[11]&&(&&(>(i1739[10], 0), >(-(i322[10], i1739[10]), i1739[10])), >(i322[10], i1739[10]))=TRUE-(-(i322[11], i1739[11]), i1739[11])=i2851[2]i1739[11]=i1739[2]COND_JMP25223(TRUE, i322[11], i1739[11])≥NonInfC∧COND_JMP25223(TRUE, i322[11], i1739[11])≥JMP4637'(i1739[11], i1739[11], i1739[11], -(-(i322[11], i1739[11]), i1739[11]), i1739[11])∧(UIncreasing(JMP4637'(i1739[11], i1739[11], i1739[11], -(-(i322[11], i1739[11]), i1739[11]), i1739[11])), ≥))

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

(126)    (>(i322[10], i1739[10])=TRUE>(i1739[10], 0)=TRUE>(-(i322[10], i1739[10]), i1739[10])=TRUECOND_JMP25223(TRUE, i322[10], i1739[10])≥NonInfC∧COND_JMP25223(TRUE, i322[10], i1739[10])≥JMP4637'(i1739[10], i1739[10], i1739[10], -(-(i322[10], i1739[10]), i1739[10]), i1739[10])∧(UIncreasing(JMP4637'(i1739[11], i1739[11], i1739[11], -(-(i322[11], i1739[11]), i1739[11]), i1739[11])), ≥))

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

(127)    (i322[10] + [-1] + [-1]i1739[10] ≥ 0∧i1739[10] + [-1] ≥ 0∧i322[10] + [-1] + [-2]i1739[10] ≥ 0 ⇒ (UIncreasing(JMP4637'(i1739[11], i1739[11], i1739[11], -(-(i322[11], i1739[11]), i1739[11]), i1739[11])), ≥)∧[(-1)Bound*bni_70] + [(-1)bni_70]i1739[10] + [bni_70]i322[10] ≥ 0∧[(-1)bso_71] ≥ 0)

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

(128)    (i322[10] + [-1] + [-1]i1739[10] ≥ 0∧i1739[10] + [-1] ≥ 0∧i322[10] + [-1] + [-2]i1739[10] ≥ 0 ⇒ (UIncreasing(JMP4637'(i1739[11], i1739[11], i1739[11], -(-(i322[11], i1739[11]), i1739[11]), i1739[11])), ≥)∧[(-1)Bound*bni_70] + [(-1)bni_70]i1739[10] + [bni_70]i322[10] ≥ 0∧[(-1)bso_71] ≥ 0)

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

(129)    (i322[10] + [-1] + [-1]i1739[10] ≥ 0∧i1739[10] + [-1] ≥ 0∧i322[10] + [-1] + [-2]i1739[10] ≥ 0 ⇒ (UIncreasing(JMP4637'(i1739[11], i1739[11], i1739[11], -(-(i322[11], i1739[11]), i1739[11]), i1739[11])), ≥)∧[(-1)Bound*bni_70] + [(-1)bni_70]i1739[10] + [bni_70]i322[10] ≥ 0∧[(-1)bso_71] ≥ 0)

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

(130)    (i322[10] ≥ 0∧i1739[10] + [-1] ≥ 0∧[-1]i1739[10] + i322[10] ≥ 0 ⇒ (UIncreasing(JMP4637'(i1739[11], i1739[11], i1739[11], -(-(i322[11], i1739[11]), i1739[11]), i1739[11])), ≥)∧[(-1)Bound*bni_70 + bni_70] + [bni_70]i322[10] ≥ 0∧[(-1)bso_71] ≥ 0)

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

(131)    (i322[10] ≥ 0∧i1739[10] ≥ 0∧[-1] + [-1]i1739[10] + i322[10] ≥ 0 ⇒ (UIncreasing(JMP4637'(i1739[11], i1739[11], i1739[11], -(-(i322[11], i1739[11]), i1739[11]), i1739[11])), ≥)∧[(-1)Bound*bni_70 + bni_70] + [bni_70]i322[10] ≥ 0∧[(-1)bso_71] ≥ 0)

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

(132)    ([1] + i1739[10] + i322[10] ≥ 0∧i1739[10] ≥ 0∧i322[10] ≥ 0 ⇒ (UIncreasing(JMP4637'(i1739[11], i1739[11], i1739[11], -(-(i322[11], i1739[11]), i1739[11]), i1739[11])), ≥)∧[(-1)Bound*bni_70 + (2)bni_70] + [bni_70]i1739[10] + [bni_70]i322[10] ≥ 0∧[(-1)bso_71] ≥ 0)

• We consider the chain JMP2522'(i322[10], i1739[10]) → COND_JMP25223(&&(&&(>(i1739[10], 0), >(-(i322[10], i1739[10]), i1739[10])), >(i322[10], i1739[10])), i322[10], i1739[10]), COND_JMP25223(TRUE, i322[11], i1739[11]) → JMP4637'(i1739[11], i1739[11], i1739[11], -(-(i322[11], i1739[11]), i1739[11]), i1739[11]), JMP4637'(i1739[8], i1739[8], i1739[8], i2851[8], i1739[8]) → COND_JMP46371(&&(>(i1739[8], 0), >(i2851[8], i1739[8])), i1739[8], i1739[8], i1739[8], i2851[8], i1739[8]) which results in the following constraint:

(133)    (i322[10]=i322[11]i1739[10]=i1739[11]&&(&&(>(i1739[10], 0), >(-(i322[10], i1739[10]), i1739[10])), >(i322[10], i1739[10]))=TRUEi1739[11]=i1739[8]-(-(i322[11], i1739[11]), i1739[11])=i2851[8]COND_JMP25223(TRUE, i322[11], i1739[11])≥NonInfC∧COND_JMP25223(TRUE, i322[11], i1739[11])≥JMP4637'(i1739[11], i1739[11], i1739[11], -(-(i322[11], i1739[11]), i1739[11]), i1739[11])∧(UIncreasing(JMP4637'(i1739[11], i1739[11], i1739[11], -(-(i322[11], i1739[11]), i1739[11]), i1739[11])), ≥))

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

(134)    (>(i322[10], i1739[10])=TRUE>(i1739[10], 0)=TRUE>(-(i322[10], i1739[10]), i1739[10])=TRUECOND_JMP25223(TRUE, i322[10], i1739[10])≥NonInfC∧COND_JMP25223(TRUE, i322[10], i1739[10])≥JMP4637'(i1739[10], i1739[10], i1739[10], -(-(i322[10], i1739[10]), i1739[10]), i1739[10])∧(UIncreasing(JMP4637'(i1739[11], i1739[11], i1739[11], -(-(i322[11], i1739[11]), i1739[11]), i1739[11])), ≥))

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

(135)    (i322[10] + [-1] + [-1]i1739[10] ≥ 0∧i1739[10] + [-1] ≥ 0∧i322[10] + [-1] + [-2]i1739[10] ≥ 0 ⇒ (UIncreasing(JMP4637'(i1739[11], i1739[11], i1739[11], -(-(i322[11], i1739[11]), i1739[11]), i1739[11])), ≥)∧[(-1)Bound*bni_70] + [(-1)bni_70]i1739[10] + [bni_70]i322[10] ≥ 0∧[(-1)bso_71] ≥ 0)

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

(136)    (i322[10] + [-1] + [-1]i1739[10] ≥ 0∧i1739[10] + [-1] ≥ 0∧i322[10] + [-1] + [-2]i1739[10] ≥ 0 ⇒ (UIncreasing(JMP4637'(i1739[11], i1739[11], i1739[11], -(-(i322[11], i1739[11]), i1739[11]), i1739[11])), ≥)∧[(-1)Bound*bni_70] + [(-1)bni_70]i1739[10] + [bni_70]i322[10] ≥ 0∧[(-1)bso_71] ≥ 0)

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

(137)    (i322[10] + [-1] + [-1]i1739[10] ≥ 0∧i1739[10] + [-1] ≥ 0∧i322[10] + [-1] + [-2]i1739[10] ≥ 0 ⇒ (UIncreasing(JMP4637'(i1739[11], i1739[11], i1739[11], -(-(i322[11], i1739[11]), i1739[11]), i1739[11])), ≥)∧[(-1)Bound*bni_70] + [(-1)bni_70]i1739[10] + [bni_70]i322[10] ≥ 0∧[(-1)bso_71] ≥ 0)

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

(138)    (i322[10] ≥ 0∧i1739[10] + [-1] ≥ 0∧[-1]i1739[10] + i322[10] ≥ 0 ⇒ (UIncreasing(JMP4637'(i1739[11], i1739[11], i1739[11], -(-(i322[11], i1739[11]), i1739[11]), i1739[11])), ≥)∧[(-1)Bound*bni_70 + bni_70] + [bni_70]i322[10] ≥ 0∧[(-1)bso_71] ≥ 0)

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

(139)    (i322[10] ≥ 0∧i1739[10] ≥ 0∧[-1] + [-1]i1739[10] + i322[10] ≥ 0 ⇒ (UIncreasing(JMP4637'(i1739[11], i1739[11], i1739[11], -(-(i322[11], i1739[11]), i1739[11]), i1739[11])), ≥)∧[(-1)Bound*bni_70 + bni_70] + [bni_70]i322[10] ≥ 0∧[(-1)bso_71] ≥ 0)

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

(140)    ([1] + i1739[10] + i322[10] ≥ 0∧i1739[10] ≥ 0∧i322[10] ≥ 0 ⇒ (UIncreasing(JMP4637'(i1739[11], i1739[11], i1739[11], -(-(i322[11], i1739[11]), i1739[11]), i1739[11])), ≥)∧[(-1)Bound*bni_70 + (2)bni_70] + [bni_70]i1739[10] + [bni_70]i322[10] ≥ 0∧[(-1)bso_71] ≥ 0)

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

• COND_JMP2522(TRUE, i322, i1739) → JMP2522'(i1739, i322)
• ((UIncreasing(JMP2522'(i1739[1], i322[1])), ≥)∧0 = 0∧0 = 0∧[(-1)bso_51] ≥ 0)
• ((UIncreasing(JMP2522'(i1739[1], i322[1])), ≥)∧0 = 0∧0 = 0∧[(-1)bso_51] ≥ 0)
• ((UIncreasing(JMP2522'(i1739[1], i322[1])), ≥)∧0 = 0∧[(-1)bso_51] ≥ 0)
• ((UIncreasing(JMP2522'(i1739[1], i322[1])), ≥)∧0 = 0∧0 = 0∧[(-1)bso_51] ≥ 0)

• JMP4637'(i1739, i1739, i1739, i2851, i1739) → COND_JMP4637(&&(>(i1739, 0), <=(i2851, i1739)), i1739, i1739, i1739, i2851, i1739)
• (i1739[2] ≥ 0∧[1] + i1739[2] + [-1]i2851[2] ≥ 0∧i2851[2] ≥ 0 ⇒ (UIncreasing(COND_JMP4637(&&(>(i1739[2], 0), <=(i2851[2], i1739[2])), i1739[2], i1739[2], i1739[2], i2851[2], i1739[2])), ≥)∧[(-1)Bound*bni_52 + bni_52] + [bni_52]i1739[2] + [bni_52]i2851[2] ≥ 0∧[(-1)bso_53] ≥ 0)
• (i1739[2] ≥ 0∧[1] + i1739[2] + i2851[2] ≥ 0∧i2851[2] ≥ 0 ⇒ (UIncreasing(COND_JMP4637(&&(>(i1739[2], 0), <=(i2851[2], i1739[2])), i1739[2], i1739[2], i1739[2], i2851[2], i1739[2])), ≥)∧[(-1)Bound*bni_52 + bni_52] + [bni_52]i1739[2] + [(-1)bni_52]i2851[2] ≥ 0∧[(-1)bso_53] ≥ 0)

• COND_JMP4637(TRUE, i1739, i1739, i1739, i2851, i1739) → JMP2522'(i1739, i2851)
• ((UIncreasing(JMP2522'(i1739[3], i2851[3])), ≥)∧0 = 0∧0 = 0∧[(-1)bso_55] ≥ 0)
• ((UIncreasing(JMP2522'(i1739[3], i2851[3])), ≥)∧0 = 0∧0 = 0∧[(-1)bso_55] ≥ 0)
• ((UIncreasing(JMP2522'(i1739[3], i2851[3])), ≥)∧0 = 0∧[(-1)bso_55] ≥ 0)
• ((UIncreasing(JMP2522'(i1739[3], i2851[3])), ≥)∧0 = 0∧0 = 0∧[(-1)bso_55] ≥ 0)

• JMP2522'(i322, i1739) → COND_JMP25221(&&(&&(>(i1739, 0), <=(-(i322, i1739), i1739)), >(i322, i1739)), i322, i1739)
• (i322[4] ≥ 0∧i322[4] + i1739[4] ≥ 0∧i1739[4] ≥ 0 ⇒ (UIncreasing(COND_JMP25221(&&(&&(>(i1739[4], 0), <=(-(i322[4], i1739[4]), i1739[4])), >(i322[4], i1739[4])), i322[4], i1739[4])), ≥)∧[(-1)Bound*bni_56 + (3)bni_56] + [(3)bni_56]i322[4] + [(2)bni_56]i1739[4] ≥ 0∧[1 + (-1)bso_57] + i322[4] ≥ 0)

• COND_JMP25221(TRUE, i322, i1739) → JMP2522'(i1739, -(i322, i1739))
• (i322[4] ≥ 0∧i322[4] + i1739[4] ≥ 0∧i1739[4] ≥ 0 ⇒ (UIncreasing(JMP2522'(i1739[5], -(i322[5], i1739[5]))), ≥)∧[(-1)Bound*bni_58 + (2)bni_58] + [(2)bni_58]i322[4] + [(2)bni_58]i1739[4] ≥ 0∧[(-1)bso_59] + i1739[4] ≥ 0)

• JMP2522'(i1739, i1739) → COND_JMP25222(>(i1739, 0), i1739, i1739)
• (i1739[6] ≥ 0 ⇒ (UIncreasing(COND_JMP25222(>(i1739[6], 0), i1739[6], i1739[6])), ≥)∧[(-1)Bound*bni_60 + (2)bni_60] + [(2)bni_60]i1739[6] ≥ 0∧[1 + (-1)bso_61] ≥ 0)

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

• JMP4637'(i1739, i1739, i1739, i2851, i1739) → COND_JMP46371(&&(>(i1739, 0), >(i2851, i1739)), i1739, i1739, i1739, i2851, i1739)
• (i1739[8] ≥ 0∧i2851[8] ≥ 0 ⇒ (UIncreasing(COND_JMP46371(&&(>(i1739[8], 0), >(i2851[8], i1739[8])), i1739[8], i1739[8], i1739[8], i2851[8], i1739[8])), ≥)∧[(-1)Bound*bni_64 + (3)bni_64] + [(2)bni_64]i1739[8] + [bni_64]i2851[8] ≥ 0∧[(-1)bso_65] + i1739[8] ≥ 0)

• COND_JMP46371(TRUE, i1739, i1739, i1739, i2851, i1739) → JMP4637'(i1739, i1739, i1739, -(i2851, i1739), i1739)
• (i1739[8] ≥ 0∧i2851[8] ≥ 0 ⇒ (UIncreasing(JMP4637'(i1739[9], i1739[9], i1739[9], -(i2851[9], i1739[9]), i1739[9])), ≥)∧[(3)bni_66 + (-1)Bound*bni_66] + [bni_66]i1739[8] + [bni_66]i2851[8] ≥ 0∧[1 + (-1)bso_67] ≥ 0)
• (i1739[8] ≥ 0∧i2851[8] ≥ 0 ⇒ (UIncreasing(JMP4637'(i1739[9], i1739[9], i1739[9], -(i2851[9], i1739[9]), i1739[9])), ≥)∧[(3)bni_66 + (-1)Bound*bni_66] + [bni_66]i1739[8] + [bni_66]i2851[8] ≥ 0∧[1 + (-1)bso_67] ≥ 0)

• JMP2522'(i322, i1739) → COND_JMP25223(&&(&&(>(i1739, 0), >(-(i322, i1739), i1739)), >(i322, i1739)), i322, i1739)
• ([1] + i1739[10] + i322[10] ≥ 0∧i1739[10] ≥ 0∧i322[10] ≥ 0 ⇒ (UIncreasing(COND_JMP25223(&&(&&(>(i1739[10], 0), >(-(i322[10], i1739[10]), i1739[10])), >(i322[10], i1739[10])), i322[10], i1739[10])), ≥)∧[(-1)Bound*bni_68 + (4)bni_68] + [(3)bni_68]i1739[10] + [bni_68]i322[10] ≥ 0∧[2 + (-1)bso_69] + [2]i1739[10] ≥ 0)

• COND_JMP25223(TRUE, i322, i1739) → JMP4637'(i1739, i1739, i1739, -(-(i322, i1739), i1739), i1739)
• ([1] + i1739[10] + i322[10] ≥ 0∧i1739[10] ≥ 0∧i322[10] ≥ 0 ⇒ (UIncreasing(JMP4637'(i1739[11], i1739[11], i1739[11], -(-(i322[11], i1739[11]), i1739[11]), i1739[11])), ≥)∧[(-1)Bound*bni_70 + (2)bni_70] + [bni_70]i1739[10] + [bni_70]i322[10] ≥ 0∧[(-1)bso_71] ≥ 0)
• ([1] + i1739[10] + i322[10] ≥ 0∧i1739[10] ≥ 0∧i322[10] ≥ 0 ⇒ (UIncreasing(JMP4637'(i1739[11], i1739[11], i1739[11], -(-(i322[11], i1739[11]), i1739[11]), i1739[11])), ≥)∧[(-1)Bound*bni_70 + (2)bni_70] + [bni_70]i1739[10] + [bni_70]i322[10] ≥ 0∧[(-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(JMP2522'(x1, x2)) = x2 + x1
POL(COND_JMP2522(x1, x2, x3)) = x3 + x2
POL(&&(x1, x2)) = [-1]
POL(>(x1, x2)) = [2]
POL(0) = 0
POL(<(x1, x2)) = [-1]
POL(!(x1)) = [-1]
POL(=(x1, x2)) = [-1]
POL(JMP4637'(x1, x2, x3, x4, x5)) = [2]x5 + x4 + [-1]x2
POL(COND_JMP4637(x1, x2, x3, x4, x5, x6)) = x6 + x5 + [2]x4 + [-1]x3 + [-1]x2
POL(<=(x1, x2)) = [-1]
POL(COND_JMP25221(x1, x2, x3)) = [2]x3
POL(-(x1, x2)) = x1 + [-1]x2
POL(COND_JMP25222(x1, x2, x3)) = [-1] + [2]x2
POL(COND_JMP46371(x1, x2, x3, x4, x5, x6)) = [1] + x6 + x5 + [-1]x3
POL(COND_JMP25223(x1, x2, x3)) = [-1]x3 + x2

The following pairs are in P>:

JMP2522'(i322[4], i1739[4]) → COND_JMP25221(&&(&&(>(i1739[4], 0), <=(-(i322[4], i1739[4]), i1739[4])), >(i322[4], i1739[4])), i322[4], i1739[4])
JMP2522'(i1739[6], i1739[6]) → COND_JMP25222(>(i1739[6], 0), i1739[6], i1739[6])
COND_JMP46371(TRUE, i1739[9], i1739[9], i1739[9], i2851[9], i1739[9]) → JMP4637'(i1739[9], i1739[9], i1739[9], -(i2851[9], i1739[9]), i1739[9])
JMP2522'(i322[10], i1739[10]) → COND_JMP25223(&&(&&(>(i1739[10], 0), >(-(i322[10], i1739[10]), i1739[10])), >(i322[10], i1739[10])), i322[10], i1739[10])

The following pairs are in Pbound:

JMP2522'(i322[0], i1739[0]) → COND_JMP2522(&&(&&(>(i322[0], 0), <(i322[0], i1739[0])), !(=(i1739[0], 0))), i322[0], i1739[0])
JMP2522'(i322[4], i1739[4]) → COND_JMP25221(&&(&&(>(i1739[4], 0), <=(-(i322[4], i1739[4]), i1739[4])), >(i322[4], i1739[4])), i322[4], i1739[4])
COND_JMP25221(TRUE, i322[5], i1739[5]) → JMP2522'(i1739[5], -(i322[5], i1739[5]))
JMP2522'(i1739[6], i1739[6]) → COND_JMP25222(>(i1739[6], 0), i1739[6], i1739[6])
COND_JMP25222(TRUE, i1739[7], i1739[7]) → JMP2522'(i1739[7], 0)
JMP4637'(i1739[8], i1739[8], i1739[8], i2851[8], i1739[8]) → COND_JMP46371(&&(>(i1739[8], 0), >(i2851[8], i1739[8])), i1739[8], i1739[8], i1739[8], i2851[8], i1739[8])
COND_JMP46371(TRUE, i1739[9], i1739[9], i1739[9], i2851[9], i1739[9]) → JMP4637'(i1739[9], i1739[9], i1739[9], -(i2851[9], i1739[9]), i1739[9])
JMP2522'(i322[10], i1739[10]) → COND_JMP25223(&&(&&(>(i1739[10], 0), >(-(i322[10], i1739[10]), i1739[10])), >(i322[10], i1739[10])), i322[10], i1739[10])
COND_JMP25223(TRUE, i322[11], i1739[11]) → JMP4637'(i1739[11], i1739[11], i1739[11], -(-(i322[11], i1739[11]), i1739[11]), i1739[11])

The following pairs are in P:

JMP2522'(i322[0], i1739[0]) → COND_JMP2522(&&(&&(>(i322[0], 0), <(i322[0], i1739[0])), !(=(i1739[0], 0))), i322[0], i1739[0])
COND_JMP2522(TRUE, i322[1], i1739[1]) → JMP2522'(i1739[1], i322[1])
JMP4637'(i1739[2], i1739[2], i1739[2], i2851[2], i1739[2]) → COND_JMP4637(&&(>(i1739[2], 0), <=(i2851[2], i1739[2])), i1739[2], i1739[2], i1739[2], i2851[2], i1739[2])
COND_JMP4637(TRUE, i1739[3], i1739[3], i1739[3], i2851[3], i1739[3]) → JMP2522'(i1739[3], i2851[3])
COND_JMP25221(TRUE, i322[5], i1739[5]) → JMP2522'(i1739[5], -(i322[5], i1739[5]))
COND_JMP25222(TRUE, i1739[7], i1739[7]) → JMP2522'(i1739[7], 0)
JMP4637'(i1739[8], i1739[8], i1739[8], i2851[8], i1739[8]) → COND_JMP46371(&&(>(i1739[8], 0), >(i2851[8], i1739[8])), i1739[8], i1739[8], i1739[8], i2851[8], i1739[8])
COND_JMP25223(TRUE, i322[11], i1739[11]) → JMP4637'(i1739[11], i1739[11], i1739[11], -(-(i322[11], i1739[11]), i1739[11]), i1739[11])

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

### (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): JMP2522'(i322[0], i1739[0]) → COND_JMP2522(i322[0] > 0 && i322[0] < i1739[0] && !(i1739[0] = 0), i322[0], i1739[0])
(1): COND_JMP2522(TRUE, i322[1], i1739[1]) → JMP2522'(i1739[1], i322[1])
(2): JMP4637'(i1739[2], i1739[2], i1739[2], i2851[2], i1739[2]) → COND_JMP4637(i1739[2] > 0 && i2851[2] <= i1739[2], i1739[2], i1739[2], i1739[2], i2851[2], i1739[2])
(3): COND_JMP4637(TRUE, i1739[3], i1739[3], i1739[3], i2851[3], i1739[3]) → JMP2522'(i1739[3], i2851[3])
(5): COND_JMP25221(TRUE, i322[5], i1739[5]) → JMP2522'(i1739[5], i322[5] - i1739[5])
(7): COND_JMP25222(TRUE, i1739[7], i1739[7]) → JMP2522'(i1739[7], 0)
(8): JMP4637'(i1739[8], i1739[8], i1739[8], i2851[8], i1739[8]) → COND_JMP46371(i1739[8] > 0 && i2851[8] > i1739[8], i1739[8], i1739[8], i1739[8], i2851[8], i1739[8])
(11): COND_JMP25223(TRUE, i322[11], i1739[11]) → JMP4637'(i1739[11], i1739[11], i1739[11], i322[11] - i1739[11] - i1739[11], i1739[11])

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

(3) -> (0), if ((i2851[3]* i1739[0])∧(i1739[3]* i322[0]))

(5) -> (0), if ((i322[5] - i1739[5]* i1739[0])∧(i1739[5]* i322[0]))

(7) -> (0), if ((i1739[7]* i322[0])∧(0* i1739[0]))

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

(11) -> (2), if ((i322[11] - i1739[11] - i1739[11]* i2851[2])∧(i1739[11]* i1739[2]))

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

(11) -> (8), if ((i1739[11]* i1739[8])∧(i322[11] - i1739[11] - i1739[11]* i2851[8]))

The set Q consists of the following terms:
JMP2522(x0, x1)
Cond_JMP2522(TRUE, x0, x1)
JMP4637(x0, x0, x0, x1, x0)
Cond_JMP4637(TRUE, x0, x0, x0, x1, x0)
Cond_JMP25221(TRUE, x0, x1)
Cond_JMP25222(TRUE, x0, x0)
Cond_JMP46371(TRUE, x0, x0, x0, x1, x0)
Cond_JMP25223(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_JMP2522(TRUE, i322[1], i1739[1]) → JMP2522'(i1739[1], i322[1])
(0): JMP2522'(i322[0], i1739[0]) → COND_JMP2522(i322[0] > 0 && i322[0] < i1739[0] && !(i1739[0] = 0), i322[0], i1739[0])

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

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

The set Q consists of the following terms:
JMP2522(x0, x1)
Cond_JMP2522(TRUE, x0, x1)
JMP4637(x0, x0, x0, x1, x0)
Cond_JMP4637(TRUE, x0, x0, x0, x1, x0)
Cond_JMP25221(TRUE, x0, x1)
Cond_JMP25222(TRUE, x0, x0)
Cond_JMP46371(TRUE, x0, x0, x0, x1, x0)
Cond_JMP25223(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_JMP2522(TRUE, i322[1], i1739[1]) → JMP2522'(i1739[1], i322[1]) the following chains were created:
• We consider the chain JMP2522'(i322[0], i1739[0]) → COND_JMP2522(&&(&&(>(i322[0], 0), <(i322[0], i1739[0])), !(=(i1739[0], 0))), i322[0], i1739[0]), COND_JMP2522(TRUE, i322[1], i1739[1]) → JMP2522'(i1739[1], i322[1]), JMP2522'(i322[0], i1739[0]) → COND_JMP2522(&&(&&(>(i322[0], 0), <(i322[0], i1739[0])), !(=(i1739[0], 0))), i322[0], i1739[0]) which results in the following constraint:

(1)    (&&(&&(>(i322[0], 0), <(i322[0], i1739[0])), !(=(i1739[0], 0)))=TRUEi1739[0]=i1739[1]i322[0]=i322[1]i322[1]=i1739[0]1i1739[1]=i322[0]1COND_JMP2522(TRUE, i322[1], i1739[1])≥NonInfC∧COND_JMP2522(TRUE, i322[1], i1739[1])≥JMP2522'(i1739[1], i322[1])∧(UIncreasing(JMP2522'(i1739[1], i322[1])), ≥))

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

(2)    (>(i322[0], 0)=TRUE<(i322[0], i1739[0])=TRUE<(i1739[0], 0)=TRUECOND_JMP2522(TRUE, i322[0], i1739[0])≥NonInfC∧COND_JMP2522(TRUE, i322[0], i1739[0])≥JMP2522'(i1739[0], i322[0])∧(UIncreasing(JMP2522'(i1739[1], i322[1])), ≥))

(3)    (>(i322[0], 0)=TRUE<(i322[0], i1739[0])=TRUE>(i1739[0], 0)=TRUECOND_JMP2522(TRUE, i322[0], i1739[0])≥NonInfC∧COND_JMP2522(TRUE, i322[0], i1739[0])≥JMP2522'(i1739[0], i322[0])∧(UIncreasing(JMP2522'(i1739[1], i322[1])), ≥))

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

(4)    (i322[0] + [-1] ≥ 0∧i1739[0] + [-1] + [-1]i322[0] ≥ 0∧[-1] + [-1]i1739[0] ≥ 0 ⇒ (UIncreasing(JMP2522'(i1739[1], i322[1])), ≥)∧[(-3)bni_15 + (-1)Bound*bni_15] + [bni_15]i1739[0] ≥ 0∧[-2 + (-1)bso_16] + [2]i1739[0] + [-2]i322[0] ≥ 0)

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

(5)    (i322[0] + [-1] ≥ 0∧i1739[0] + [-1] + [-1]i322[0] ≥ 0∧i1739[0] + [-1] ≥ 0 ⇒ (UIncreasing(JMP2522'(i1739[1], i322[1])), ≥)∧[(-3)bni_15 + (-1)Bound*bni_15] + [bni_15]i1739[0] ≥ 0∧[-2 + (-1)bso_16] + [2]i1739[0] + [-2]i322[0] ≥ 0)

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

(6)    (i322[0] + [-1] ≥ 0∧i1739[0] + [-1] + [-1]i322[0] ≥ 0∧[-1] + [-1]i1739[0] ≥ 0 ⇒ (UIncreasing(JMP2522'(i1739[1], i322[1])), ≥)∧[(-3)bni_15 + (-1)Bound*bni_15] + [bni_15]i1739[0] ≥ 0∧[-2 + (-1)bso_16] + [2]i1739[0] + [-2]i322[0] ≥ 0)

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

(7)    (i322[0] + [-1] ≥ 0∧i1739[0] + [-1] + [-1]i322[0] ≥ 0∧i1739[0] + [-1] ≥ 0 ⇒ (UIncreasing(JMP2522'(i1739[1], i322[1])), ≥)∧[(-3)bni_15 + (-1)Bound*bni_15] + [bni_15]i1739[0] ≥ 0∧[-2 + (-1)bso_16] + [2]i1739[0] + [-2]i322[0] ≥ 0)

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

(8)    (i322[0] + [-1] ≥ 0∧i1739[0] + [-1] + [-1]i322[0] ≥ 0∧[-1] + [-1]i1739[0] ≥ 0 ⇒ (UIncreasing(JMP2522'(i1739[1], i322[1])), ≥)∧[(-3)bni_15 + (-1)Bound*bni_15] + [bni_15]i1739[0] ≥ 0∧[-2 + (-1)bso_16] + [2]i1739[0] + [-2]i322[0] ≥ 0)

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

(9)    (i322[0] + [-1] ≥ 0∧i1739[0] + [-1] + [-1]i322[0] ≥ 0∧i1739[0] + [-1] ≥ 0 ⇒ (UIncreasing(JMP2522'(i1739[1], i322[1])), ≥)∧[(-3)bni_15 + (-1)Bound*bni_15] + [bni_15]i1739[0] ≥ 0∧[-2 + (-1)bso_16] + [2]i1739[0] + [-2]i322[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)    (i322[0] ≥ 0∧i1739[0] + [-2] + [-1]i322[0] ≥ 0∧i1739[0] + [-1] ≥ 0 ⇒ (UIncreasing(JMP2522'(i1739[1], i322[1])), ≥)∧[(-3)bni_15 + (-1)Bound*bni_15] + [bni_15]i1739[0] ≥ 0∧[-4 + (-1)bso_16] + [2]i1739[0] + [-2]i322[0] ≥ 0)

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

(11)    (i322[0] ≥ 0∧i1739[0] ≥ 0∧[1] + i322[0] + i1739[0] ≥ 0 ⇒ (UIncreasing(JMP2522'(i1739[1], i322[1])), ≥)∧[(-1)bni_15 + (-1)Bound*bni_15] + [bni_15]i322[0] + [bni_15]i1739[0] ≥ 0∧[(-1)bso_16] + [2]i1739[0] ≥ 0)

For Pair JMP2522'(i322[0], i1739[0]) → COND_JMP2522(&&(&&(>(i322[0], 0), <(i322[0], i1739[0])), !(=(i1739[0], 0))), i322[0], i1739[0]) the following chains were created:
• We consider the chain COND_JMP2522(TRUE, i322[1], i1739[1]) → JMP2522'(i1739[1], i322[1]), JMP2522'(i322[0], i1739[0]) → COND_JMP2522(&&(&&(>(i322[0], 0), <(i322[0], i1739[0])), !(=(i1739[0], 0))), i322[0], i1739[0]), COND_JMP2522(TRUE, i322[1], i1739[1]) → JMP2522'(i1739[1], i322[1]) which results in the following constraint:

(12)    (i322[1]=i1739[0]i1739[1]=i322[0]&&(&&(>(i322[0], 0), <(i322[0], i1739[0])), !(=(i1739[0], 0)))=TRUEi1739[0]=i1739[1]1i322[0]=i322[1]1JMP2522'(i322[0], i1739[0])≥NonInfC∧JMP2522'(i322[0], i1739[0])≥COND_JMP2522(&&(&&(>(i322[0], 0), <(i322[0], i1739[0])), !(=(i1739[0], 0))), i322[0], i1739[0])∧(UIncreasing(COND_JMP2522(&&(&&(>(i322[0], 0), <(i322[0], i1739[0])), !(=(i1739[0], 0))), i322[0], i1739[0])), ≥))

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

(13)    (>(i322[0], 0)=TRUE<(i322[0], i1739[0])=TRUE<(i1739[0], 0)=TRUEJMP2522'(i322[0], i1739[0])≥NonInfC∧JMP2522'(i322[0], i1739[0])≥COND_JMP2522(&&(&&(>(i322[0], 0), <(i322[0], i1739[0])), !(=(i1739[0], 0))), i322[0], i1739[0])∧(UIncreasing(COND_JMP2522(&&(&&(>(i322[0], 0), <(i322[0], i1739[0])), !(=(i1739[0], 0))), i322[0], i1739[0])), ≥))

(14)    (>(i322[0], 0)=TRUE<(i322[0], i1739[0])=TRUE>(i1739[0], 0)=TRUEJMP2522'(i322[0], i1739[0])≥NonInfC∧JMP2522'(i322[0], i1739[0])≥COND_JMP2522(&&(&&(>(i322[0], 0), <(i322[0], i1739[0])), !(=(i1739[0], 0))), i322[0], i1739[0])∧(UIncreasing(COND_JMP2522(&&(&&(>(i322[0], 0), <(i322[0], i1739[0])), !(=(i1739[0], 0))), i322[0], i1739[0])), ≥))

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

(15)    (i322[0] + [-1] ≥ 0∧i1739[0] + [-1] + [-1]i322[0] ≥ 0∧[-1] + [-1]i1739[0] ≥ 0 ⇒ (UIncreasing(COND_JMP2522(&&(&&(>(i322[0], 0), <(i322[0], i1739[0])), !(=(i1739[0], 0))), i322[0], i1739[0])), ≥)∧[(-1)bni_17 + (-1)Bound*bni_17] + [(2)bni_17]i1739[0] + [(-1)bni_17]i322[0] ≥ 0∧[(-1)bso_18] + i1739[0] + [-1]i322[0] ≥ 0)

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

(16)    (i322[0] + [-1] ≥ 0∧i1739[0] + [-1] + [-1]i322[0] ≥ 0∧i1739[0] + [-1] ≥ 0 ⇒ (UIncreasing(COND_JMP2522(&&(&&(>(i322[0], 0), <(i322[0], i1739[0])), !(=(i1739[0], 0))), i322[0], i1739[0])), ≥)∧[(-1)bni_17 + (-1)Bound*bni_17] + [(2)bni_17]i1739[0] + [(-1)bni_17]i322[0] ≥ 0∧[(-1)bso_18] + i1739[0] + [-1]i322[0] ≥ 0)

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

(17)    (i322[0] + [-1] ≥ 0∧i1739[0] + [-1] + [-1]i322[0] ≥ 0∧[-1] + [-1]i1739[0] ≥ 0 ⇒ (UIncreasing(COND_JMP2522(&&(&&(>(i322[0], 0), <(i322[0], i1739[0])), !(=(i1739[0], 0))), i322[0], i1739[0])), ≥)∧[(-1)bni_17 + (-1)Bound*bni_17] + [(2)bni_17]i1739[0] + [(-1)bni_17]i322[0] ≥ 0∧[(-1)bso_18] + i1739[0] + [-1]i322[0] ≥ 0)

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

(18)    (i322[0] + [-1] ≥ 0∧i1739[0] + [-1] + [-1]i322[0] ≥ 0∧i1739[0] + [-1] ≥ 0 ⇒ (UIncreasing(COND_JMP2522(&&(&&(>(i322[0], 0), <(i322[0], i1739[0])), !(=(i1739[0], 0))), i322[0], i1739[0])), ≥)∧[(-1)bni_17 + (-1)Bound*bni_17] + [(2)bni_17]i1739[0] + [(-1)bni_17]i322[0] ≥ 0∧[(-1)bso_18] + i1739[0] + [-1]i322[0] ≥ 0)

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

(19)    (i322[0] + [-1] ≥ 0∧i1739[0] + [-1] + [-1]i322[0] ≥ 0∧[-1] + [-1]i1739[0] ≥ 0 ⇒ (UIncreasing(COND_JMP2522(&&(&&(>(i322[0], 0), <(i322[0], i1739[0])), !(=(i1739[0], 0))), i322[0], i1739[0])), ≥)∧[(-1)bni_17 + (-1)Bound*bni_17] + [(2)bni_17]i1739[0] + [(-1)bni_17]i322[0] ≥ 0∧[(-1)bso_18] + i1739[0] + [-1]i322[0] ≥ 0)

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

(20)    (i322[0] + [-1] ≥ 0∧i1739[0] + [-1] + [-1]i322[0] ≥ 0∧i1739[0] + [-1] ≥ 0 ⇒ (UIncreasing(COND_JMP2522(&&(&&(>(i322[0], 0), <(i322[0], i1739[0])), !(=(i1739[0], 0))), i322[0], i1739[0])), ≥)∧[(-1)bni_17 + (-1)Bound*bni_17] + [(2)bni_17]i1739[0] + [(-1)bni_17]i322[0] ≥ 0∧[(-1)bso_18] + i1739[0] + [-1]i322[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)    (i322[0] ≥ 0∧i1739[0] + [-2] + [-1]i322[0] ≥ 0∧i1739[0] + [-1] ≥ 0 ⇒ (UIncreasing(COND_JMP2522(&&(&&(>(i322[0], 0), <(i322[0], i1739[0])), !(=(i1739[0], 0))), i322[0], i1739[0])), ≥)∧[(-2)bni_17 + (-1)Bound*bni_17] + [(2)bni_17]i1739[0] + [(-1)bni_17]i322[0] ≥ 0∧[-1 + (-1)bso_18] + i1739[0] + [-1]i322[0] ≥ 0)

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

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

To summarize, we get the following constraints P for the following pairs.
• COND_JMP2522(TRUE, i322[1], i1739[1]) → JMP2522'(i1739[1], i322[1])
• (i322[0] ≥ 0∧i1739[0] ≥ 0∧[1] + i322[0] + i1739[0] ≥ 0 ⇒ (UIncreasing(JMP2522'(i1739[1], i322[1])), ≥)∧[(-1)bni_15 + (-1)Bound*bni_15] + [bni_15]i322[0] + [bni_15]i1739[0] ≥ 0∧[(-1)bso_16] + [2]i1739[0] ≥ 0)

• JMP2522'(i322[0], i1739[0]) → COND_JMP2522(&&(&&(>(i322[0], 0), <(i322[0], i1739[0])), !(=(i1739[0], 0))), i322[0], i1739[0])
• (i322[0] ≥ 0∧i1739[0] ≥ 0∧[1] + i322[0] + i1739[0] ≥ 0 ⇒ (UIncreasing(COND_JMP2522(&&(&&(>(i322[0], 0), <(i322[0], i1739[0])), !(=(i1739[0], 0))), i322[0], i1739[0])), ≥)∧[(2)bni_17 + (-1)Bound*bni_17] + [bni_17]i322[0] + [(2)bni_17]i1739[0] ≥ 0∧[1 + (-1)bso_18] + i1739[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) = 0
POL(COND_JMP2522(x1, x2, x3)) = [-1] + x3 + [-1]x1
POL(JMP2522'(x1, x2)) = [-1] + [2]x2 + [-1]x1
POL(&&(x1, x2)) = 0
POL(>(x1, x2)) = [-1]
POL(0) = 0
POL(<(x1, x2)) = [-1]
POL(!(x1)) = [-1]
POL(=(x1, x2)) = [-1]

The following pairs are in P>:

JMP2522'(i322[0], i1739[0]) → COND_JMP2522(&&(&&(>(i322[0], 0), <(i322[0], i1739[0])), !(=(i1739[0], 0))), i322[0], i1739[0])

The following pairs are in Pbound:

COND_JMP2522(TRUE, i322[1], i1739[1]) → JMP2522'(i1739[1], i322[1])
JMP2522'(i322[0], i1739[0]) → COND_JMP2522(&&(&&(>(i322[0], 0), <(i322[0], i1739[0])), !(=(i1739[0], 0))), i322[0], i1739[0])

The following pairs are in P:

COND_JMP2522(TRUE, i322[1], i1739[1]) → JMP2522'(i1739[1], i322[1])

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

TRUE1&&(TRUE, TRUE)1
&&(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_JMP2522(TRUE, i322[1], i1739[1]) → JMP2522'(i1739[1], i322[1])

The set Q consists of the following terms:
JMP2522(x0, x1)
Cond_JMP2522(TRUE, x0, x1)
JMP4637(x0, x0, x0, x1, x0)
Cond_JMP4637(TRUE, x0, x0, x0, x1, x0)
Cond_JMP25221(TRUE, x0, x1)
Cond_JMP25222(TRUE, x0, x0)
Cond_JMP46371(TRUE, x0, x0, x0, x1, x0)
Cond_JMP25223(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:
JMP2522(x0, x1)
Cond_JMP2522(TRUE, x0, x1)
JMP4637(x0, x0, x0, x1, x0)
Cond_JMP4637(TRUE, x0, x0, x0, x1, x0)
Cond_JMP25221(TRUE, x0, x1)
Cond_JMP25222(TRUE, x0, x0)
Cond_JMP46371(TRUE, x0, x0, x0, x1, x0)
Cond_JMP25223(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_JMP2522(TRUE, i322[1], i1739[1]) → JMP2522'(i1739[1], i322[1])
(2): JMP4637'(i1739[2], i1739[2], i1739[2], i2851[2], i1739[2]) → COND_JMP4637(i1739[2] > 0 && i2851[2] <= i1739[2], i1739[2], i1739[2], i1739[2], i2851[2], i1739[2])
(3): COND_JMP4637(TRUE, i1739[3], i1739[3], i1739[3], i2851[3], i1739[3]) → JMP2522'(i1739[3], i2851[3])

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

The set Q consists of the following terms:
JMP2522(x0, x1)
Cond_JMP2522(TRUE, x0, x1)
JMP4637(x0, x0, x0, x1, x0)
Cond_JMP4637(TRUE, x0, x0, x0, x1, x0)
Cond_JMP25221(TRUE, x0, x1)
Cond_JMP25222(TRUE, x0, x0)
Cond_JMP46371(TRUE, x0, x0, x0, x1, x0)
Cond_JMP25223(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:
JMP3853(i42, i42, i42, i42, i1819, i42) → Cond_JMP3853(i42 > 0 && i1819 > i42, i42, i42, i42, i42, i1819, i42)
Cond_JMP3853(TRUE, i42, i42, i42, i42, i1819, i42) → JMP3853(i42, i42, i42, i42, i1819 - i42, i42)
The set Q consists of the following terms:
JMP3853(x0, x0, x0, x0, x1, x0)
Cond_JMP3853(TRUE, x0, 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:
JMP3853(i42, i42, i42, i42, i1819, i42) → Cond_JMP3853(i42 > 0 && i1819 > i42, i42, i42, i42, i42, i1819, i42)
Cond_JMP3853(TRUE, i42, i42, i42, i42, i1819, i42) → JMP3853(i42, i42, i42, i42, i1819 - i42, i42)

The integer pair graph contains the following rules and edges:
(0): JMP3853'(i42[0], i42[0], i42[0], i42[0], i1819[0], i42[0]) → COND_JMP3853(i42[0] > 0 && i1819[0] > i42[0], i42[0], i42[0], i42[0], i42[0], i1819[0], i42[0])
(1): COND_JMP3853(TRUE, i42[1], i42[1], i42[1], i42[1], i1819[1], i42[1]) → JMP3853'(i42[1], i42[1], i42[1], i42[1], i1819[1] - i42[1], i42[1])

(0) -> (1), if ((i1819[0]* i1819[1])∧(i42[0]* i42[1])∧(i42[0] > 0 && i1819[0] > i42[0]* TRUE))

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

The set Q consists of the following terms:
JMP3853(x0, x0, x0, x0, x1, x0)
Cond_JMP3853(TRUE, x0, 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): JMP3853'(i42[0], i42[0], i42[0], i42[0], i1819[0], i42[0]) → COND_JMP3853(i42[0] > 0 && i1819[0] > i42[0], i42[0], i42[0], i42[0], i42[0], i1819[0], i42[0])
(1): COND_JMP3853(TRUE, i42[1], i42[1], i42[1], i42[1], i1819[1], i42[1]) → JMP3853'(i42[1], i42[1], i42[1], i42[1], i1819[1] - i42[1], i42[1])

(0) -> (1), if ((i1819[0]* i1819[1])∧(i42[0]* i42[1])∧(i42[0] > 0 && i1819[0] > i42[0]* TRUE))

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

The set Q consists of the following terms:
JMP3853(x0, x0, x0, x0, x1, x0)
Cond_JMP3853(TRUE, x0, 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 JMP3853'(i42, i42, i42, i42, i1819, i42) → COND_JMP3853(&&(>(i42, 0), >(i1819, i42)), i42, i42, i42, i42, i1819, i42) the following chains were created:
• We consider the chain JMP3853'(i42[0], i42[0], i42[0], i42[0], i1819[0], i42[0]) → COND_JMP3853(&&(>(i42[0], 0), >(i1819[0], i42[0])), i42[0], i42[0], i42[0], i42[0], i1819[0], i42[0]), COND_JMP3853(TRUE, i42[1], i42[1], i42[1], i42[1], i1819[1], i42[1]) → JMP3853'(i42[1], i42[1], i42[1], i42[1], -(i1819[1], i42[1]), i42[1]) which results in the following constraint:

(1)    (i1819[0]=i1819[1]i42[0]=i42[1]&&(>(i42[0], 0), >(i1819[0], i42[0]))=TRUEJMP3853'(i42[0], i42[0], i42[0], i42[0], i1819[0], i42[0])≥NonInfC∧JMP3853'(i42[0], i42[0], i42[0], i42[0], i1819[0], i42[0])≥COND_JMP3853(&&(>(i42[0], 0), >(i1819[0], i42[0])), i42[0], i42[0], i42[0], i42[0], i1819[0], i42[0])∧(UIncreasing(COND_JMP3853(&&(>(i42[0], 0), >(i1819[0], i42[0])), i42[0], i42[0], i42[0], i42[0], i1819[0], i42[0])), ≥))

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

(2)    (>(i42[0], 0)=TRUE>(i1819[0], i42[0])=TRUEJMP3853'(i42[0], i42[0], i42[0], i42[0], i1819[0], i42[0])≥NonInfC∧JMP3853'(i42[0], i42[0], i42[0], i42[0], i1819[0], i42[0])≥COND_JMP3853(&&(>(i42[0], 0), >(i1819[0], i42[0])), i42[0], i42[0], i42[0], i42[0], i1819[0], i42[0])∧(UIncreasing(COND_JMP3853(&&(>(i42[0], 0), >(i1819[0], i42[0])), i42[0], i42[0], i42[0], i42[0], i1819[0], i42[0])), ≥))

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

(3)    (i42[0] + [-1] ≥ 0∧i1819[0] + [-1] + [-1]i42[0] ≥ 0 ⇒ (UIncreasing(COND_JMP3853(&&(>(i42[0], 0), >(i1819[0], i42[0])), i42[0], i42[0], i42[0], i42[0], i1819[0], i42[0])), ≥)∧[(-1)bni_20 + (-1)Bound*bni_20] + [(-1)bni_20]i42[0] + [bni_20]i1819[0] ≥ 0∧[-1 + (-1)bso_21] + i42[0] ≥ 0)

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

(4)    (i42[0] + [-1] ≥ 0∧i1819[0] + [-1] + [-1]i42[0] ≥ 0 ⇒ (UIncreasing(COND_JMP3853(&&(>(i42[0], 0), >(i1819[0], i42[0])), i42[0], i42[0], i42[0], i42[0], i1819[0], i42[0])), ≥)∧[(-1)bni_20 + (-1)Bound*bni_20] + [(-1)bni_20]i42[0] + [bni_20]i1819[0] ≥ 0∧[-1 + (-1)bso_21] + i42[0] ≥ 0)

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

(5)    (i42[0] + [-1] ≥ 0∧i1819[0] + [-1] + [-1]i42[0] ≥ 0 ⇒ (UIncreasing(COND_JMP3853(&&(>(i42[0], 0), >(i1819[0], i42[0])), i42[0], i42[0], i42[0], i42[0], i1819[0], i42[0])), ≥)∧[(-1)bni_20 + (-1)Bound*bni_20] + [(-1)bni_20]i42[0] + [bni_20]i1819[0] ≥ 0∧[-1 + (-1)bso_21] + i42[0] ≥ 0)

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

(6)    (i42[0] ≥ 0∧i1819[0] + [-2] + [-1]i42[0] ≥ 0 ⇒ (UIncreasing(COND_JMP3853(&&(>(i42[0], 0), >(i1819[0], i42[0])), i42[0], i42[0], i42[0], i42[0], i1819[0], i42[0])), ≥)∧[(-2)bni_20 + (-1)Bound*bni_20] + [(-1)bni_20]i42[0] + [bni_20]i1819[0] ≥ 0∧[(-1)bso_21] + i42[0] ≥ 0)

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

(7)    (i42[0] ≥ 0∧i1819[0] ≥ 0 ⇒ (UIncreasing(COND_JMP3853(&&(>(i42[0], 0), >(i1819[0], i42[0])), i42[0], i42[0], i42[0], i42[0], i1819[0], i42[0])), ≥)∧[(-1)Bound*bni_20] + [bni_20]i1819[0] ≥ 0∧[(-1)bso_21] + i42[0] ≥ 0)

For Pair COND_JMP3853(TRUE, i42, i42, i42, i42, i1819, i42) → JMP3853'(i42, i42, i42, i42, -(i1819, i42), i42) the following chains were created:
• We consider the chain JMP3853'(i42[0], i42[0], i42[0], i42[0], i1819[0], i42[0]) → COND_JMP3853(&&(>(i42[0], 0), >(i1819[0], i42[0])), i42[0], i42[0], i42[0], i42[0], i1819[0], i42[0]), COND_JMP3853(TRUE, i42[1], i42[1], i42[1], i42[1], i1819[1], i42[1]) → JMP3853'(i42[1], i42[1], i42[1], i42[1], -(i1819[1], i42[1]), i42[1]), JMP3853'(i42[0], i42[0], i42[0], i42[0], i1819[0], i42[0]) → COND_JMP3853(&&(>(i42[0], 0), >(i1819[0], i42[0])), i42[0], i42[0], i42[0], i42[0], i1819[0], i42[0]) which results in the following constraint:

(8)    (i1819[0]=i1819[1]i42[0]=i42[1]&&(>(i42[0], 0), >(i1819[0], i42[0]))=TRUE-(i1819[1], i42[1])=i1819[0]1i42[1]=i42[0]1COND_JMP3853(TRUE, i42[1], i42[1], i42[1], i42[1], i1819[1], i42[1])≥NonInfC∧COND_JMP3853(TRUE, i42[1], i42[1], i42[1], i42[1], i1819[1], i42[1])≥JMP3853'(i42[1], i42[1], i42[1], i42[1], -(i1819[1], i42[1]), i42[1])∧(UIncreasing(JMP3853'(i42[1], i42[1], i42[1], i42[1], -(i1819[1], i42[1]), i42[1])), ≥))

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

(9)    (>(i42[0], 0)=TRUE>(i1819[0], i42[0])=TRUECOND_JMP3853(TRUE, i42[0], i42[0], i42[0], i42[0], i1819[0], i42[0])≥NonInfC∧COND_JMP3853(TRUE, i42[0], i42[0], i42[0], i42[0], i1819[0], i42[0])≥JMP3853'(i42[0], i42[0], i42[0], i42[0], -(i1819[0], i42[0]), i42[0])∧(UIncreasing(JMP3853'(i42[1], i42[1], i42[1], i42[1], -(i1819[1], i42[1]), i42[1])), ≥))

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

(10)    (i42[0] + [-1] ≥ 0∧i1819[0] + [-1] + [-1]i42[0] ≥ 0 ⇒ (UIncreasing(JMP3853'(i42[1], i42[1], i42[1], i42[1], -(i1819[1], i42[1]), i42[1])), ≥)∧[(-1)Bound*bni_22] + [(-2)bni_22]i42[0] + [bni_22]i1819[0] ≥ 0∧[1 + (-1)bso_23] ≥ 0)

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

(11)    (i42[0] + [-1] ≥ 0∧i1819[0] + [-1] + [-1]i42[0] ≥ 0 ⇒ (UIncreasing(JMP3853'(i42[1], i42[1], i42[1], i42[1], -(i1819[1], i42[1]), i42[1])), ≥)∧[(-1)Bound*bni_22] + [(-2)bni_22]i42[0] + [bni_22]i1819[0] ≥ 0∧[1 + (-1)bso_23] ≥ 0)

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

(12)    (i42[0] + [-1] ≥ 0∧i1819[0] + [-1] + [-1]i42[0] ≥ 0 ⇒ (UIncreasing(JMP3853'(i42[1], i42[1], i42[1], i42[1], -(i1819[1], i42[1]), i42[1])), ≥)∧[(-1)Bound*bni_22] + [(-2)bni_22]i42[0] + [bni_22]i1819[0] ≥ 0∧[1 + (-1)bso_23] ≥ 0)

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

(13)    (i42[0] ≥ 0∧i1819[0] + [-2] + [-1]i42[0] ≥ 0 ⇒ (UIncreasing(JMP3853'(i42[1], i42[1], i42[1], i42[1], -(i1819[1], i42[1]), i42[1])), ≥)∧[(-1)Bound*bni_22 + (-2)bni_22] + [(-2)bni_22]i42[0] + [bni_22]i1819[0] ≥ 0∧[1 + (-1)bso_23] ≥ 0)

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

(14)    (i42[0] ≥ 0∧i1819[0] ≥ 0 ⇒ (UIncreasing(JMP3853'(i42[1], i42[1], i42[1], i42[1], -(i1819[1], i42[1]), i42[1])), ≥)∧[(-1)Bound*bni_22] + [(-1)bni_22]i42[0] + [bni_22]i1819[0] ≥ 0∧[1 + (-1)bso_23] ≥ 0)

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

• COND_JMP3853(TRUE, i42, i42, i42, i42, i1819, i42) → JMP3853'(i42, i42, i42, i42, -(i1819, i42), i42)
• (i42[0] ≥ 0∧i1819[0] ≥ 0 ⇒ (UIncreasing(JMP3853'(i42[1], i42[1], i42[1], i42[1], -(i1819[1], i42[1]), i42[1])), ≥)∧[(-1)Bound*bni_22] + [(-1)bni_22]i42[0] + [bni_22]i1819[0] ≥ 0∧[1 + (-1)bso_23] ≥ 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) = [2]
POL(JMP3853'(x1, x2, x3, x4, x5, x6)) = [-1] + x6 + x5 + [-1]x4 + [-1]x3
POL(COND_JMP3853(x1, x2, x3, x4, x5, x6, x7)) = [1] + [2]x7 + x6 + [-1]x5 + [-1]x4 + [-1]x3 + [-1]x2 + [-1]x1
POL(&&(x1, x2)) = [1]
POL(>(x1, x2)) = [-1]
POL(0) = 0
POL(-(x1, x2)) = x1 + [-1]x2

The following pairs are in P>:

COND_JMP3853(TRUE, i42[1], i42[1], i42[1], i42[1], i1819[1], i42[1]) → JMP3853'(i42[1], i42[1], i42[1], i42[1], -(i1819[1], i42[1]), i42[1])

The following pairs are in Pbound:

JMP3853'(i42[0], i42[0], i42[0], i42[0], i1819[0], i42[0]) → COND_JMP3853(&&(>(i42[0], 0), >(i1819[0], i42[0])), i42[0], i42[0], i42[0], i42[0], i1819[0], i42[0])

The following pairs are in P:

JMP3853'(i42[0], i42[0], i42[0], i42[0], i1819[0], i42[0]) → COND_JMP3853(&&(>(i42[0], 0), >(i1819[0], i42[0])), i42[0], i42[0], i42[0], i42[0], i1819[0], i42[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): JMP3853'(i42[0], i42[0], i42[0], i42[0], i1819[0], i42[0]) → COND_JMP3853(i42[0] > 0 && i1819[0] > i42[0], i42[0], i42[0], i42[0], i42[0], i1819[0], i42[0])

The set Q consists of the following terms:
JMP3853(x0, x0, x0, x0, x1, x0)
Cond_JMP3853(TRUE, x0, 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:

Integer

R is empty.

The integer pair graph contains the following rules and edges:
(1): COND_JMP3853(TRUE, i42[1], i42[1], i42[1], i42[1], i1819[1], i42[1]) → JMP3853'(i42[1], i42[1], i42[1], i42[1], i1819[1] - i42[1], i42[1])

The set Q consists of the following terms:
JMP3853(x0, x0, x0, x0, x1, x0)
Cond_JMP3853(TRUE, x0, x0, x0, x0, x1, x0)

### (37) IDependencyGraphProof (EQUIVALENT transformation)

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

### (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:
JMP3835(i1023, i1023, i1023, i1779, i1023) → Cond_JMP3835(i1023 > 0 && i1779 > i1023, i1023, i1023, i1023, i1779, i1023)
Cond_JMP3835(TRUE, i1023, i1023, i1023, i1779, i1023) → JMP3835(i1023, i1023, i1023, i1779 - i1023, i1023)
The set Q consists of the following terms:
JMP3835(x0, x0, x0, x1, x0)
Cond_JMP3835(TRUE, 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:
JMP3835(i1023, i1023, i1023, i1779, i1023) → Cond_JMP3835(i1023 > 0 && i1779 > i1023, i1023, i1023, i1023, i1779, i1023)
Cond_JMP3835(TRUE, i1023, i1023, i1023, i1779, i1023) → JMP3835(i1023, i1023, i1023, i1779 - i1023, i1023)

The integer pair graph contains the following rules and edges:
(0): JMP3835'(i1023[0], i1023[0], i1023[0], i1779[0], i1023[0]) → COND_JMP3835(i1023[0] > 0 && i1779[0] > i1023[0], i1023[0], i1023[0], i1023[0], i1779[0], i1023[0])
(1): COND_JMP3835(TRUE, i1023[1], i1023[1], i1023[1], i1779[1], i1023[1]) → JMP3835'(i1023[1], i1023[1], i1023[1], i1779[1] - i1023[1], i1023[1])

(0) -> (1), if ((i1779[0]* i1779[1])∧(i1023[0]* i1023[1])∧(i1023[0] > 0 && i1779[0] > i1023[0]* TRUE))

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

The set Q consists of the following terms:
JMP3835(x0, x0, x0, x1, x0)
Cond_JMP3835(TRUE, 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): JMP3835'(i1023[0], i1023[0], i1023[0], i1779[0], i1023[0]) → COND_JMP3835(i1023[0] > 0 && i1779[0] > i1023[0], i1023[0], i1023[0], i1023[0], i1779[0], i1023[0])
(1): COND_JMP3835(TRUE, i1023[1], i1023[1], i1023[1], i1779[1], i1023[1]) → JMP3835'(i1023[1], i1023[1], i1023[1], i1779[1] - i1023[1], i1023[1])

(0) -> (1), if ((i1779[0]* i1779[1])∧(i1023[0]* i1023[1])∧(i1023[0] > 0 && i1779[0] > i1023[0]* TRUE))

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

The set Q consists of the following terms:
JMP3835(x0, x0, x0, x1, x0)
Cond_JMP3835(TRUE, 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 JMP3835'(i1023, i1023, i1023, i1779, i1023) → COND_JMP3835(&&(>(i1023, 0), >(i1779, i1023)), i1023, i1023, i1023, i1779, i1023) the following chains were created:
• We consider the chain JMP3835'(i1023[0], i1023[0], i1023[0], i1779[0], i1023[0]) → COND_JMP3835(&&(>(i1023[0], 0), >(i1779[0], i1023[0])), i1023[0], i1023[0], i1023[0], i1779[0], i1023[0]), COND_JMP3835(TRUE, i1023[1], i1023[1], i1023[1], i1779[1], i1023[1]) → JMP3835'(i1023[1], i1023[1], i1023[1], -(i1779[1], i1023[1]), i1023[1]) which results in the following constraint:

(1)    (i1779[0]=i1779[1]i1023[0]=i1023[1]&&(>(i1023[0], 0), >(i1779[0], i1023[0]))=TRUEJMP3835'(i1023[0], i1023[0], i1023[0], i1779[0], i1023[0])≥NonInfC∧JMP3835'(i1023[0], i1023[0], i1023[0], i1779[0], i1023[0])≥COND_JMP3835(&&(>(i1023[0], 0), >(i1779[0], i1023[0])), i1023[0], i1023[0], i1023[0], i1779[0], i1023[0])∧(UIncreasing(COND_JMP3835(&&(>(i1023[0], 0), >(i1779[0], i1023[0])), i1023[0], i1023[0], i1023[0], i1779[0], i1023[0])), ≥))

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

(2)    (>(i1023[0], 0)=TRUE>(i1779[0], i1023[0])=TRUEJMP3835'(i1023[0], i1023[0], i1023[0], i1779[0], i1023[0])≥NonInfC∧JMP3835'(i1023[0], i1023[0], i1023[0], i1779[0], i1023[0])≥COND_JMP3835(&&(>(i1023[0], 0), >(i1779[0], i1023[0])), i1023[0], i1023[0], i1023[0], i1779[0], i1023[0])∧(UIncreasing(COND_JMP3835(&&(>(i1023[0], 0), >(i1779[0], i1023[0])), i1023[0], i1023[0], i1023[0], i1779[0], i1023[0])), ≥))

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

(3)    (i1023[0] + [-1] ≥ 0∧i1779[0] + [-1] + [-1]i1023[0] ≥ 0 ⇒ (UIncreasing(COND_JMP3835(&&(>(i1023[0], 0), >(i1779[0], i1023[0])), i1023[0], i1023[0], i1023[0], i1779[0], i1023[0])), ≥)∧[bni_18 + (-1)Bound*bni_18] + [(-1)bni_18]i1023[0] + [(2)bni_18]i1779[0] ≥ 0∧[-1 + (-1)bso_19] + i1023[0] ≥ 0)

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

(4)    (i1023[0] + [-1] ≥ 0∧i1779[0] + [-1] + [-1]i1023[0] ≥ 0 ⇒ (UIncreasing(COND_JMP3835(&&(>(i1023[0], 0), >(i1779[0], i1023[0])), i1023[0], i1023[0], i1023[0], i1779[0], i1023[0])), ≥)∧[bni_18 + (-1)Bound*bni_18] + [(-1)bni_18]i1023[0] + [(2)bni_18]i1779[0] ≥ 0∧[-1 + (-1)bso_19] + i1023[0] ≥ 0)

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

(5)    (i1023[0] + [-1] ≥ 0∧i1779[0] + [-1] + [-1]i1023[0] ≥ 0 ⇒ (UIncreasing(COND_JMP3835(&&(>(i1023[0], 0), >(i1779[0], i1023[0])), i1023[0], i1023[0], i1023[0], i1779[0], i1023[0])), ≥)∧[bni_18 + (-1)Bound*bni_18] + [(-1)bni_18]i1023[0] + [(2)bni_18]i1779[0] ≥ 0∧[-1 + (-1)bso_19] + i1023[0] ≥ 0)

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

(6)    (i1023[0] ≥ 0∧i1779[0] + [-2] + [-1]i1023[0] ≥ 0 ⇒ (UIncreasing(COND_JMP3835(&&(>(i1023[0], 0), >(i1779[0], i1023[0])), i1023[0], i1023[0], i1023[0], i1779[0], i1023[0])), ≥)∧[(-1)Bound*bni_18] + [(-1)bni_18]i1023[0] + [(2)bni_18]i1779[0] ≥ 0∧[(-1)bso_19] + i1023[0] ≥ 0)

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

(7)    (i1023[0] ≥ 0∧i1779[0] ≥ 0 ⇒ (UIncreasing(COND_JMP3835(&&(>(i1023[0], 0), >(i1779[0], i1023[0])), i1023[0], i1023[0], i1023[0], i1779[0], i1023[0])), ≥)∧[(-1)Bound*bni_18 + (4)bni_18] + [bni_18]i1023[0] + [(2)bni_18]i1779[0] ≥ 0∧[(-1)bso_19] + i1023[0] ≥ 0)

For Pair COND_JMP3835(TRUE, i1023, i1023, i1023, i1779, i1023) → JMP3835'(i1023, i1023, i1023, -(i1779, i1023), i1023) the following chains were created:
• We consider the chain JMP3835'(i1023[0], i1023[0], i1023[0], i1779[0], i1023[0]) → COND_JMP3835(&&(>(i1023[0], 0), >(i1779[0], i1023[0])), i1023[0], i1023[0], i1023[0], i1779[0], i1023[0]), COND_JMP3835(TRUE, i1023[1], i1023[1], i1023[1], i1779[1], i1023[1]) → JMP3835'(i1023[1], i1023[1], i1023[1], -(i1779[1], i1023[1]), i1023[1]), JMP3835'(i1023[0], i1023[0], i1023[0], i1779[0], i1023[0]) → COND_JMP3835(&&(>(i1023[0], 0), >(i1779[0], i1023[0])), i1023[0], i1023[0], i1023[0], i1779[0], i1023[0]) which results in the following constraint:

(8)    (i1779[0]=i1779[1]i1023[0]=i1023[1]&&(>(i1023[0], 0), >(i1779[0], i1023[0]))=TRUE-(i1779[1], i1023[1])=i1779[0]1i1023[1]=i1023[0]1COND_JMP3835(TRUE, i1023[1], i1023[1], i1023[1], i1779[1], i1023[1])≥NonInfC∧COND_JMP3835(TRUE, i1023[1], i1023[1], i1023[1], i1779[1], i1023[1])≥JMP3835'(i1023[1], i1023[1], i1023[1], -(i1779[1], i1023[1]), i1023[1])∧(UIncreasing(JMP3835'(i1023[1], i1023[1], i1023[1], -(i1779[1], i1023[1]), i1023[1])), ≥))

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

(9)    (>(i1023[0], 0)=TRUE>(i1779[0], i1023[0])=TRUECOND_JMP3835(TRUE, i1023[0], i1023[0], i1023[0], i1779[0], i1023[0])≥NonInfC∧COND_JMP3835(TRUE, i1023[0], i1023[0], i1023[0], i1779[0], i1023[0])≥JMP3835'(i1023[0], i1023[0], i1023[0], -(i1779[0], i1023[0]), i1023[0])∧(UIncreasing(JMP3835'(i1023[1], i1023[1], i1023[1], -(i1779[1], i1023[1]), i1023[1])), ≥))

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

(10)    (i1023[0] + [-1] ≥ 0∧i1779[0] + [-1] + [-1]i1023[0] ≥ 0 ⇒ (UIncreasing(JMP3835'(i1023[1], i1023[1], i1023[1], -(i1779[1], i1023[1]), i1023[1])), ≥)∧[bni_20 + (-1)Bound*bni_20] + [(-2)bni_20]i1023[0] + [(2)bni_20]i1779[0] ≥ 0∧[(-1)bso_21] + i1023[0] ≥ 0)

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

(11)    (i1023[0] + [-1] ≥ 0∧i1779[0] + [-1] + [-1]i1023[0] ≥ 0 ⇒ (UIncreasing(JMP3835'(i1023[1], i1023[1], i1023[1], -(i1779[1], i1023[1]), i1023[1])), ≥)∧[bni_20 + (-1)Bound*bni_20] + [(-2)bni_20]i1023[0] + [(2)bni_20]i1779[0] ≥ 0∧[(-1)bso_21] + i1023[0] ≥ 0)

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

(12)    (i1023[0] + [-1] ≥ 0∧i1779[0] + [-1] + [-1]i1023[0] ≥ 0 ⇒ (UIncreasing(JMP3835'(i1023[1], i1023[1], i1023[1], -(i1779[1], i1023[1]), i1023[1])), ≥)∧[bni_20 + (-1)Bound*bni_20] + [(-2)bni_20]i1023[0] + [(2)bni_20]i1779[0] ≥ 0∧[(-1)bso_21] + i1023[0] ≥ 0)

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

(13)    (i1023[0] ≥ 0∧i1779[0] + [-2] + [-1]i1023[0] ≥ 0 ⇒ (UIncreasing(JMP3835'(i1023[1], i1023[1], i1023[1], -(i1779[1], i1023[1]), i1023[1])), ≥)∧[(-1)bni_20 + (-1)Bound*bni_20] + [(-2)bni_20]i1023[0] + [(2)bni_20]i1779[0] ≥ 0∧[1 + (-1)bso_21] + i1023[0] ≥ 0)

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

(14)    (i1023[0] ≥ 0∧i1779[0] ≥ 0 ⇒ (UIncreasing(JMP3835'(i1023[1], i1023[1], i1023[1], -(i1779[1], i1023[1]), i1023[1])), ≥)∧[(3)bni_20 + (-1)Bound*bni_20] + [(2)bni_20]i1779[0] ≥ 0∧[1 + (-1)bso_21] + i1023[0] ≥ 0)

To summarize, we get the following constraints P for the following pairs.
• JMP3835'(i1023, i1023, i1023, i1779, i1023) → COND_JMP3835(&&(>(i1023, 0), >(i1779, i1023)), i1023, i1023, i1023, i1779, i1023)
• (i1023[0] ≥ 0∧i1779[0] ≥ 0 ⇒ (UIncreasing(COND_JMP3835(&&(>(i1023[0], 0), >(i1779[0], i1023[0])), i1023[0], i1023[0], i1023[0], i1779[0], i1023[0])), ≥)∧[(-1)Bound*bni_18 + (4)bni_18] + [bni_18]i1023[0] + [(2)bni_18]i1779[0] ≥ 0∧[(-1)bso_19] + i1023[0] ≥ 0)

• COND_JMP3835(TRUE, i1023, i1023, i1023, i1779, i1023) → JMP3835'(i1023, i1023, i1023, -(i1779, i1023), i1023)
• (i1023[0] ≥ 0∧i1779[0] ≥ 0 ⇒ (UIncreasing(JMP3835'(i1023[1], i1023[1], i1023[1], -(i1779[1], i1023[1]), i1023[1])), ≥)∧[(3)bni_20 + (-1)Bound*bni_20] + [(2)bni_20]i1779[0] ≥ 0∧[1 + (-1)bso_21] + i1023[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(JMP3835'(x1, x2, x3, x4, x5)) = [1] + [2]x5 + [2]x4 + [-1]x3 + [-1]x2 + [-1]x1
POL(COND_JMP3835(x1, x2, x3, x4, x5, x6)) = [1] + [-1]x6 + [2]x5 + [-1]x4 + [-1]x3 + x2 + [-1]x1
POL(&&(x1, x2)) = [-1]
POL(>(x1, x2)) = [-1]
POL(0) = 0
POL(-(x1, x2)) = x1 + [-1]x2

The following pairs are in P>:

COND_JMP3835(TRUE, i1023[1], i1023[1], i1023[1], i1779[1], i1023[1]) → JMP3835'(i1023[1], i1023[1], i1023[1], -(i1779[1], i1023[1]), i1023[1])

The following pairs are in Pbound:

JMP3835'(i1023[0], i1023[0], i1023[0], i1779[0], i1023[0]) → COND_JMP3835(&&(>(i1023[0], 0), >(i1779[0], i1023[0])), i1023[0], i1023[0], i1023[0], i1779[0], i1023[0])
COND_JMP3835(TRUE, i1023[1], i1023[1], i1023[1], i1779[1], i1023[1]) → JMP3835'(i1023[1], i1023[1], i1023[1], -(i1779[1], i1023[1]), i1023[1])

The following pairs are in P:

JMP3835'(i1023[0], i1023[0], i1023[0], i1779[0], i1023[0]) → COND_JMP3835(&&(>(i1023[0], 0), >(i1779[0], i1023[0])), i1023[0], i1023[0], i1023[0], i1779[0], i1023[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

### (46) 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): JMP3835'(i1023[0], i1023[0], i1023[0], i1779[0], i1023[0]) → COND_JMP3835(i1023[0] > 0 && i1779[0] > i1023[0], i1023[0], i1023[0], i1023[0], i1779[0], i1023[0])

The set Q consists of the following terms:
JMP3835(x0, x0, x0, x1, x0)
Cond_JMP3835(TRUE, x0, x0, x0, x1, x0)

### (47) IDependencyGraphProof (EQUIVALENT transformation)

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

### (49) 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:
JMP3835(x0, x0, x0, x1, x0)
Cond_JMP3835(TRUE, x0, x0, x0, x1, x0)

### (50) IDependencyGraphProof (EQUIVALENT transformation)

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

### (52) 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:
JMP1981(i322, i322, i322, i654, i322) → Cond_JMP1981(i322 > 0 && i654 > i322, i322, i322, i322, i654, i322)
Cond_JMP1981(TRUE, i322, i322, i322, i654, i322) → JMP1981(i322, i322, i322, i654 - i322, i322)
The set Q consists of the following terms:
JMP1981(x0, x0, x0, x1, x0)
Cond_JMP1981(TRUE, x0, x0, x0, x1, x0)

### (54) 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:
JMP1981(i322, i322, i322, i654, i322) → Cond_JMP1981(i322 > 0 && i654 > i322, i322, i322, i322, i654, i322)
Cond_JMP1981(TRUE, i322, i322, i322, i654, i322) → JMP1981(i322, i322, i322, i654 - i322, i322)

The integer pair graph contains the following rules and edges:
(0): JMP1981'(i322[0], i322[0], i322[0], i654[0], i322[0]) → COND_JMP1981(i322[0] > 0 && i654[0] > i322[0], i322[0], i322[0], i322[0], i654[0], i322[0])
(1): COND_JMP1981(TRUE, i322[1], i322[1], i322[1], i654[1], i322[1]) → JMP1981'(i322[1], i322[1], i322[1], i654[1] - i322[1], i322[1])

(0) -> (1), if ((i654[0]* i654[1])∧(i322[0] > 0 && i654[0] > i322[0]* TRUE)∧(i322[0]* i322[1]))

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

The set Q consists of the following terms:
JMP1981(x0, x0, x0, x1, x0)
Cond_JMP1981(TRUE, x0, x0, x0, x1, x0)

### (55) 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.

### (56) 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): JMP1981'(i322[0], i322[0], i322[0], i654[0], i322[0]) → COND_JMP1981(i322[0] > 0 && i654[0] > i322[0], i322[0], i322[0], i322[0], i654[0], i322[0])
(1): COND_JMP1981(TRUE, i322[1], i322[1], i322[1], i654[1], i322[1]) → JMP1981'(i322[1], i322[1], i322[1], i654[1] - i322[1], i322[1])

(0) -> (1), if ((i654[0]* i654[1])∧(i322[0] > 0 && i654[0] > i322[0]* TRUE)∧(i322[0]* i322[1]))

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

The set Q consists of the following terms:
JMP1981(x0, x0, x0, x1, x0)
Cond_JMP1981(TRUE, x0, x0, x0, x1, x0)

### (57) 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 JMP1981'(i322, i322, i322, i654, i322) → COND_JMP1981(&&(>(i322, 0), >(i654, i322)), i322, i322, i322, i654, i322) the following chains were created:
• We consider the chain JMP1981'(i322[0], i322[0], i322[0], i654[0], i322[0]) → COND_JMP1981(&&(>(i322[0], 0), >(i654[0], i322[0])), i322[0], i322[0], i322[0], i654[0], i322[0]), COND_JMP1981(TRUE, i322[1], i322[1], i322[1], i654[1], i322[1]) → JMP1981'(i322[1], i322[1], i322[1], -(i654[1], i322[1]), i322[1]) which results in the following constraint:

(1)    (i654[0]=i654[1]&&(>(i322[0], 0), >(i654[0], i322[0]))=TRUEi322[0]=i322[1]JMP1981'(i322[0], i322[0], i322[0], i654[0], i322[0])≥NonInfC∧JMP1981'(i322[0], i322[0], i322[0], i654[0], i322[0])≥COND_JMP1981(&&(>(i322[0], 0), >(i654[0], i322[0])), i322[0], i322[0], i322[0], i654[0], i322[0])∧(UIncreasing(COND_JMP1981(&&(>(i322[0], 0), >(i654[0], i322[0])), i322[0], i322[0], i322[0], i654[0], i322[0])), ≥))

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

(2)    (>(i322[0], 0)=TRUE>(i654[0], i322[0])=TRUEJMP1981'(i322[0], i322[0], i322[0], i654[0], i322[0])≥NonInfC∧JMP1981'(i322[0], i322[0], i322[0], i654[0], i322[0])≥COND_JMP1981(&&(>(i322[0], 0), >(i654[0], i322[0])), i322[0], i322[0], i322[0], i654[0], i322[0])∧(UIncreasing(COND_JMP1981(&&(>(i322[0], 0), >(i654[0], i322[0])), i322[0], i322[0], i322[0], i654[0], i322[0])), ≥))

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

(3)    (i322[0] + [-1] ≥ 0∧i654[0] + [-1] + [-1]i322[0] ≥ 0 ⇒ (UIncreasing(COND_JMP1981(&&(>(i322[0], 0), >(i654[0], i322[0])), i322[0], i322[0], i322[0], i654[0], i322[0])), ≥)∧[(-1)Bound*bni_18] + [(-2)bni_18]i322[0] + [(2)bni_18]i654[0] ≥ 0∧[-1 + (-1)bso_19] + [2]i322[0] ≥ 0)

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

(4)    (i322[0] + [-1] ≥ 0∧i654[0] + [-1] + [-1]i322[0] ≥ 0 ⇒ (UIncreasing(COND_JMP1981(&&(>(i322[0], 0), >(i654[0], i322[0])), i322[0], i322[0], i322[0], i654[0], i322[0])), ≥)∧[(-1)Bound*bni_18] + [(-2)bni_18]i322[0] + [(2)bni_18]i654[0] ≥ 0∧[-1 + (-1)bso_19] + [2]i322[0] ≥ 0)

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

(5)    (i322[0] + [-1] ≥ 0∧i654[0] + [-1] + [-1]i322[0] ≥ 0 ⇒ (UIncreasing(COND_JMP1981(&&(>(i322[0], 0), >(i654[0], i322[0])), i322[0], i322[0], i322[0], i654[0], i322[0])), ≥)∧[(-1)Bound*bni_18] + [(-2)bni_18]i322[0] + [(2)bni_18]i654[0] ≥ 0∧[-1 + (-1)bso_19] + [2]i322[0] ≥ 0)

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

(6)    (i322[0] ≥ 0∧i654[0] + [-2] + [-1]i322[0] ≥ 0 ⇒ (UIncreasing(COND_JMP1981(&&(>(i322[0], 0), >(i654[0], i322[0])), i322[0], i322[0], i322[0], i654[0], i322[0])), ≥)∧[(-1)Bound*bni_18 + (-2)bni_18] + [(-2)bni_18]i322[0] + [(2)bni_18]i654[0] ≥ 0∧[1 + (-1)bso_19] + [2]i322[0] ≥ 0)

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

(7)    (i322[0] ≥ 0∧i654[0] ≥ 0 ⇒ (UIncreasing(COND_JMP1981(&&(>(i322[0], 0), >(i654[0], i322[0])), i322[0], i322[0], i322[0], i654[0], i322[0])), ≥)∧[(-1)Bound*bni_18 + (2)bni_18] + [(2)bni_18]i654[0] ≥ 0∧[1 + (-1)bso_19] + [2]i322[0] ≥ 0)

For Pair COND_JMP1981(TRUE, i322, i322, i322, i654, i322) → JMP1981'(i322, i322, i322, -(i654, i322), i322) the following chains were created:
• We consider the chain JMP1981'(i322[0], i322[0], i322[0], i654[0], i322[0]) → COND_JMP1981(&&(>(i322[0], 0), >(i654[0], i322[0])), i322[0], i322[0], i322[0], i654[0], i322[0]), COND_JMP1981(TRUE, i322[1], i322[1], i322[1], i654[1], i322[1]) → JMP1981'(i322[1], i322[1], i322[1], -(i654[1], i322[1]), i322[1]), JMP1981'(i322[0], i322[0], i322[0], i654[0], i322[0]) → COND_JMP1981(&&(>(i322[0], 0), >(i654[0], i322[0])), i322[0], i322[0], i322[0], i654[0], i322[0]) which results in the following constraint:

(8)    (i654[0]=i654[1]&&(>(i322[0], 0), >(i654[0], i322[0]))=TRUEi322[0]=i322[1]-(i654[1], i322[1])=i654[0]1i322[1]=i322[0]1COND_JMP1981(TRUE, i322[1], i322[1], i322[1], i654[1], i322[1])≥NonInfC∧COND_JMP1981(TRUE, i322[1], i322[1], i322[1], i654[1], i322[1])≥JMP1981'(i322[1], i322[1], i322[1], -(i654[1], i322[1]), i322[1])∧(UIncreasing(JMP1981'(i322[1], i322[1], i322[1], -(i654[1], i322[1]), i322[1])), ≥))

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

(9)    (>(i322[0], 0)=TRUE>(i654[0], i322[0])=TRUECOND_JMP1981(TRUE, i322[0], i322[0], i322[0], i654[0], i322[0])≥NonInfC∧COND_JMP1981(TRUE, i322[0], i322[0], i322[0], i654[0], i322[0])≥JMP1981'(i322[0], i322[0], i322[0], -(i654[0], i322[0]), i322[0])∧(UIncreasing(JMP1981'(i322[1], i322[1], i322[1], -(i654[1], i322[1]), i322[1])), ≥))

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

(10)    (i322[0] + [-1] ≥ 0∧i654[0] + [-1] + [-1]i322[0] ≥ 0 ⇒ (UIncreasing(JMP1981'(i322[1], i322[1], i322[1], -(i654[1], i322[1]), i322[1])), ≥)∧[(-1)Bound*bni_20] + [(-4)bni_20]i322[0] + [(2)bni_20]i654[0] ≥ 0∧[(-1)bso_21] ≥ 0)

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

(11)    (i322[0] + [-1] ≥ 0∧i654[0] + [-1] + [-1]i322[0] ≥ 0 ⇒ (UIncreasing(JMP1981'(i322[1], i322[1], i322[1], -(i654[1], i322[1]), i322[1])), ≥)∧[(-1)Bound*bni_20] + [(-4)bni_20]i322[0] + [(2)bni_20]i654[0] ≥ 0∧[(-1)bso_21] ≥ 0)

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

(12)    (i322[0] + [-1] ≥ 0∧i654[0] + [-1] + [-1]i322[0] ≥ 0 ⇒ (UIncreasing(JMP1981'(i322[1], i322[1], i322[1], -(i654[1], i322[1]), i322[1])), ≥)∧[(-1)Bound*bni_20] + [(-4)bni_20]i322[0] + [(2)bni_20]i654[0] ≥ 0∧[(-1)bso_21] ≥ 0)

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

(13)    (i322[0] ≥ 0∧i654[0] + [-2] + [-1]i322[0] ≥ 0 ⇒ (UIncreasing(JMP1981'(i322[1], i322[1], i322[1], -(i654[1], i322[1]), i322[1])), ≥)∧[(-1)Bound*bni_20 + (-4)bni_20] + [(-4)bni_20]i322[0] + [(2)bni_20]i654[0] ≥ 0∧[(-1)bso_21] ≥ 0)

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

(14)    (i322[0] ≥ 0∧i654[0] ≥ 0 ⇒ (UIncreasing(JMP1981'(i322[1], i322[1], i322[1], -(i654[1], i322[1]), i322[1])), ≥)∧[(-1)Bound*bni_20] + [(-2)bni_20]i322[0] + [(2)bni_20]i654[0] ≥ 0∧[(-1)bso_21] ≥ 0)

To summarize, we get the following constraints P for the following pairs.
• JMP1981'(i322, i322, i322, i654, i322) → COND_JMP1981(&&(>(i322, 0), >(i654, i322)), i322, i322, i322, i654, i322)
• (i322[0] ≥ 0∧i654[0] ≥ 0 ⇒ (UIncreasing(COND_JMP1981(&&(>(i322[0], 0), >(i654[0], i322[0])), i322[0], i322[0], i322[0], i654[0], i322[0])), ≥)∧[(-1)Bound*bni_18 + (2)bni_18] + [(2)bni_18]i654[0] ≥ 0∧[1 + (-1)bso_19] + [2]i322[0] ≥ 0)

• COND_JMP1981(TRUE, i322, i322, i322, i654, i322) → JMP1981'(i322, i322, i322, -(i654, i322), i322)
• (i322[0] ≥ 0∧i654[0] ≥ 0 ⇒ (UIncreasing(JMP1981'(i322[1], i322[1], i322[1], -(i654[1], i322[1]), i322[1])), ≥)∧[(-1)Bound*bni_20] + [(-2)bni_20]i322[0] + [(2)bni_20]i654[0] ≥ 0∧[(-1)bso_21] ≥ 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) = [2]
POL(JMP1981'(x1, x2, x3, x4, x5)) = [2]x4 + [-1]x3 + [-1]x1
POL(COND_JMP1981(x1, x2, x3, x4, x5, x6)) = [-1]x6 + [2]x5 + [-1]x4 + [-1]x3 + [-1]x2 + [-1]x1
POL(&&(x1, x2)) = [-1]
POL(>(x1, x2)) = [-1]
POL(0) = 0
POL(-(x1, x2)) = x1 + [-1]x2

The following pairs are in P>:

JMP1981'(i322[0], i322[0], i322[0], i654[0], i322[0]) → COND_JMP1981(&&(>(i322[0], 0), >(i654[0], i322[0])), i322[0], i322[0], i322[0], i654[0], i322[0])

The following pairs are in Pbound:

JMP1981'(i322[0], i322[0], i322[0], i654[0], i322[0]) → COND_JMP1981(&&(>(i322[0], 0), >(i654[0], i322[0])), i322[0], i322[0], i322[0], i654[0], i322[0])

The following pairs are in P:

COND_JMP1981(TRUE, i322[1], i322[1], i322[1], i654[1], i322[1]) → JMP1981'(i322[1], i322[1], i322[1], -(i654[1], i322[1]), i322[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

### (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:

Integer

R is empty.

The integer pair graph contains the following rules and edges:
(1): COND_JMP1981(TRUE, i322[1], i322[1], i322[1], i654[1], i322[1]) → JMP1981'(i322[1], i322[1], i322[1], i654[1] - i322[1], i322[1])

The set Q consists of the following terms:
JMP1981(x0, x0, x0, x1, x0)
Cond_JMP1981(TRUE, x0, x0, x0, x1, x0)

### (59) IDependencyGraphProof (EQUIVALENT transformation)

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

### (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:
JMP1936(i1023, i1023, i1023) → Cond_JMP1936(i1023 > 0, i1023, i1023, i1023)
Cond_JMP1936(TRUE, i1023, i1023, i1023) → JMP1936(i1023, i1023, 0)
The set Q consists of the following terms:
JMP1936(x0, x0, x0)
Cond_JMP1936(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:
JMP1936(i1023, i1023, i1023) → Cond_JMP1936(i1023 > 0, i1023, i1023, i1023)
Cond_JMP1936(TRUE, i1023, i1023, i1023) → JMP1936(i1023, i1023, 0)

The integer pair graph contains the following rules and edges:
(0): JMP1936'(i1023[0], i1023[0], i1023[0]) → COND_JMP1936(i1023[0] > 0, i1023[0], i1023[0], i1023[0])
(1): COND_JMP1936(TRUE, i1023[1], i1023[1], i1023[1]) → JMP1936'(i1023[1], i1023[1], 0)

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

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

The set Q consists of the following terms:
JMP1936(x0, x0, x0)
Cond_JMP1936(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): JMP1936'(i1023[0], i1023[0], i1023[0]) → COND_JMP1936(i1023[0] > 0, i1023[0], i1023[0], i1023[0])
(1): COND_JMP1936(TRUE, i1023[1], i1023[1], i1023[1]) → JMP1936'(i1023[1], i1023[1], 0)

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

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

The set Q consists of the following terms:
JMP1936(x0, x0, x0)
Cond_JMP1936(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 JMP1936'(i1023, i1023, i1023) → COND_JMP1936(>(i1023, 0), i1023, i1023, i1023) the following chains were created:
• We consider the chain JMP1936'(i1023[0], i1023[0], i1023[0]) → COND_JMP1936(>(i1023[0], 0), i1023[0], i1023[0], i1023[0]), COND_JMP1936(TRUE, i1023[1], i1023[1], i1023[1]) → JMP1936'(i1023[1], i1023[1], 0) which results in the following constraint:

(1)    (>(i1023[0], 0)=TRUEi1023[0]=i1023[1]JMP1936'(i1023[0], i1023[0], i1023[0])≥NonInfC∧JMP1936'(i1023[0], i1023[0], i1023[0])≥COND_JMP1936(>(i1023[0], 0), i1023[0], i1023[0], i1023[0])∧(UIncreasing(COND_JMP1936(>(i1023[0], 0), i1023[0], i1023[0], i1023[0])), ≥))

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

(2)    (>(i1023[0], 0)=TRUEJMP1936'(i1023[0], i1023[0], i1023[0])≥NonInfC∧JMP1936'(i1023[0], i1023[0], i1023[0])≥COND_JMP1936(>(i1023[0], 0), i1023[0], i1023[0], i1023[0])∧(UIncreasing(COND_JMP1936(>(i1023[0], 0), i1023[0], i1023[0], i1023[0])), ≥))

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

(3)    (i1023[0] + [-1] ≥ 0 ⇒ (UIncreasing(COND_JMP1936(>(i1023[0], 0), i1023[0], i1023[0], i1023[0])), ≥)∧[(-1)bni_12 + (-1)Bound*bni_12] + [(4)bni_12]i1023[0] ≥ 0∧[-2 + (-1)bso_13] + [2]i1023[0] ≥ 0)

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

(4)    (i1023[0] + [-1] ≥ 0 ⇒ (UIncreasing(COND_JMP1936(>(i1023[0], 0), i1023[0], i1023[0], i1023[0])), ≥)∧[(-1)bni_12 + (-1)Bound*bni_12] + [(4)bni_12]i1023[0] ≥ 0∧[-2 + (-1)bso_13] + [2]i1023[0] ≥ 0)

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

(5)    (i1023[0] + [-1] ≥ 0 ⇒ (UIncreasing(COND_JMP1936(>(i1023[0], 0), i1023[0], i1023[0], i1023[0])), ≥)∧[(-1)bni_12 + (-1)Bound*bni_12] + [(4)bni_12]i1023[0] ≥ 0∧[-2 + (-1)bso_13] + [2]i1023[0] ≥ 0)

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

(6)    (i1023[0] ≥ 0 ⇒ (UIncreasing(COND_JMP1936(>(i1023[0], 0), i1023[0], i1023[0], i1023[0])), ≥)∧[(3)bni_12 + (-1)Bound*bni_12] + [(4)bni_12]i1023[0] ≥ 0∧[(-1)bso_13] + [2]i1023[0] ≥ 0)

For Pair COND_JMP1936(TRUE, i1023, i1023, i1023) → JMP1936'(i1023, i1023, 0) the following chains were created:
• We consider the chain COND_JMP1936(TRUE, i1023[1], i1023[1], i1023[1]) → JMP1936'(i1023[1], i1023[1], 0) which results in the following constraint:

(7)    (COND_JMP1936(TRUE, i1023[1], i1023[1], i1023[1])≥NonInfC∧COND_JMP1936(TRUE, i1023[1], i1023[1], i1023[1])≥JMP1936'(i1023[1], i1023[1], 0)∧(UIncreasing(JMP1936'(i1023[1], i1023[1], 0)), ≥))

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

(8)    ((UIncreasing(JMP1936'(i1023[1], i1023[1], 0)), ≥)∧[2 + (-1)bso_15] ≥ 0)

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

(9)    ((UIncreasing(JMP1936'(i1023[1], i1023[1], 0)), ≥)∧[2 + (-1)bso_15] ≥ 0)

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

(10)    ((UIncreasing(JMP1936'(i1023[1], i1023[1], 0)), ≥)∧[2 + (-1)bso_15] ≥ 0)

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

(11)    ((UIncreasing(JMP1936'(i1023[1], i1023[1], 0)), ≥)∧0 = 0∧[2 + (-1)bso_15] ≥ 0)

To summarize, we get the following constraints P for the following pairs.
• JMP1936'(i1023, i1023, i1023) → COND_JMP1936(>(i1023, 0), i1023, i1023, i1023)
• (i1023[0] ≥ 0 ⇒ (UIncreasing(COND_JMP1936(>(i1023[0], 0), i1023[0], i1023[0], i1023[0])), ≥)∧[(3)bni_12 + (-1)Bound*bni_12] + [(4)bni_12]i1023[0] ≥ 0∧[(-1)bso_13] + [2]i1023[0] ≥ 0)

• COND_JMP1936(TRUE, i1023, i1023, i1023) → JMP1936'(i1023, i1023, 0)
• ((UIncreasing(JMP1936'(i1023[1], i1023[1], 0)), ≥)∧0 = 0∧[2 + (-1)bso_15] ≥ 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(JMP1936'(x1, x2, x3)) = [-1] + [2]x3 + x2 + x1
POL(COND_JMP1936(x1, x2, x3, x4)) = [1] + x4 + [-1]x3 + [2]x2
POL(>(x1, x2)) = [-1]
POL(0) = 0

The following pairs are in P>:

COND_JMP1936(TRUE, i1023[1], i1023[1], i1023[1]) → JMP1936'(i1023[1], i1023[1], 0)

The following pairs are in Pbound:

JMP1936'(i1023[0], i1023[0], i1023[0]) → COND_JMP1936(>(i1023[0], 0), i1023[0], i1023[0], i1023[0])

The following pairs are in P:

JMP1936'(i1023[0], i1023[0], i1023[0]) → COND_JMP1936(>(i1023[0], 0), i1023[0], i1023[0], i1023[0])

There are no usable rules.

### (68) 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): JMP1936'(i1023[0], i1023[0], i1023[0]) → COND_JMP1936(i1023[0] > 0, i1023[0], i1023[0], i1023[0])

The set Q consists of the following terms:
JMP1936(x0, x0, x0)
Cond_JMP1936(TRUE, x0, x0, x0)

### (69) IDependencyGraphProof (EQUIVALENT transformation)

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

### (71) 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_JMP1936(TRUE, i1023[1], i1023[1], i1023[1]) → JMP1936'(i1023[1], i1023[1], 0)

The set Q consists of the following terms:
JMP1936(x0, x0, x0)
Cond_JMP1936(TRUE, x0, x0, x0)

### (72) IDependencyGraphProof (EQUIVALENT transformation)

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

### (74) 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:
JMP1590(i40, i40, i40, i40, i341, i40) → Cond_JMP1590(i40 > 0 && i341 > i40, i40, i40, i40, i40, i341, i40)
Cond_JMP1590(TRUE, i40, i40, i40, i40, i341, i40) → JMP1590(i40, i40, i40, i40, i341 - i40, i40)
The set Q consists of the following terms:
JMP1590(x0, x0, x0, x0, x1, x0)
Cond_JMP1590(TRUE, x0, x0, x0, x0, x1, x0)

### (76) 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:
JMP1590(i40, i40, i40, i40, i341, i40) → Cond_JMP1590(i40 > 0 && i341 > i40, i40, i40, i40, i40, i341, i40)
Cond_JMP1590(TRUE, i40, i40, i40, i40, i341, i40) → JMP1590(i40, i40, i40, i40, i341 - i40, i40)

The integer pair graph contains the following rules and edges:
(0): JMP1590'(i40[0], i40[0], i40[0], i40[0], i341[0], i40[0]) → COND_JMP1590(i40[0] > 0 && i341[0] > i40[0], i40[0], i40[0], i40[0], i40[0], i341[0], i40[0])
(1): COND_JMP1590(TRUE, i40[1], i40[1], i40[1], i40[1], i341[1], i40[1]) → JMP1590'(i40[1], i40[1], i40[1], i40[1], i341[1] - i40[1], i40[1])

(0) -> (1), if ((i341[0]* i341[1])∧(i40[0]* i40[1])∧(i40[0] > 0 && i341[0] > i40[0]* TRUE))

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

The set Q consists of the following terms:
JMP1590(x0, x0, x0, x0, x1, x0)
Cond_JMP1590(TRUE, x0, x0, x0, x0, x1, x0)

### (77) 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.

### (78) 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): JMP1590'(i40[0], i40[0], i40[0], i40[0], i341[0], i40[0]) → COND_JMP1590(i40[0] > 0 && i341[0] > i40[0], i40[0], i40[0], i40[0], i40[0], i341[0], i40[0])
(1): COND_JMP1590(TRUE, i40[1], i40[1], i40[1], i40[1], i341[1], i40[1]) → JMP1590'(i40[1], i40[1], i40[1], i40[1], i341[1] - i40[1], i40[1])

(0) -> (1), if ((i341[0]* i341[1])∧(i40[0]* i40[1])∧(i40[0] > 0 && i341[0] > i40[0]* TRUE))

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

The set Q consists of the following terms:
JMP1590(x0, x0, x0, x0, x1, x0)
Cond_JMP1590(TRUE, x0, x0, x0, x0, x1, x0)

### (79) 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 JMP1590'(i40, i40, i40, i40, i341, i40) → COND_JMP1590(&&(>(i40, 0), >(i341, i40)), i40, i40, i40, i40, i341, i40) the following chains were created:
• We consider the chain JMP1590'(i40[0], i40[0], i40[0], i40[0], i341[0], i40[0]) → COND_JMP1590(&&(>(i40[0], 0), >(i341[0], i40[0])), i40[0], i40[0], i40[0], i40[0], i341[0], i40[0]), COND_JMP1590(TRUE, i40[1], i40[1], i40[1], i40[1], i341[1], i40[1]) → JMP1590'(i40[1], i40[1], i40[1], i40[1], -(i341[1], i40[1]), i40[1]) which results in the following constraint:

(1)    (i341[0]=i341[1]i40[0]=i40[1]&&(>(i40[0], 0), >(i341[0], i40[0]))=TRUEJMP1590'(i40[0], i40[0], i40[0], i40[0], i341[0], i40[0])≥NonInfC∧JMP1590'(i40[0], i40[0], i40[0], i40[0], i341[0], i40[0])≥COND_JMP1590(&&(>(i40[0], 0), >(i341[0], i40[0])), i40[0], i40[0], i40[0], i40[0], i341[0], i40[0])∧(UIncreasing(COND_JMP1590(&&(>(i40[0], 0), >(i341[0], i40[0])), i40[0], i40[0], i40[0], i40[0], i341[0], i40[0])), ≥))

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

(2)    (>(i40[0], 0)=TRUE>(i341[0], i40[0])=TRUEJMP1590'(i40[0], i40[0], i40[0], i40[0], i341[0], i40[0])≥NonInfC∧JMP1590'(i40[0], i40[0], i40[0], i40[0], i341[0], i40[0])≥COND_JMP1590(&&(>(i40[0], 0), >(i341[0], i40[0])), i40[0], i40[0], i40[0], i40[0], i341[0], i40[0])∧(UIncreasing(COND_JMP1590(&&(>(i40[0], 0), >(i341[0], i40[0])), i40[0], i40[0], i40[0], i40[0], i341[0], i40[0])), ≥))

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

(3)    (i40[0] + [-1] ≥ 0∧i341[0] + [-1] + [-1]i40[0] ≥ 0 ⇒ (UIncreasing(COND_JMP1590(&&(>(i40[0], 0), >(i341[0], i40[0])), i40[0], i40[0], i40[0], i40[0], i341[0], i40[0])), ≥)∧[bni_20 + (-1)Bound*bni_20] + [(2)bni_20]i341[0] ≥ 0∧[(-1)bso_21] + i40[0] ≥ 0)

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

(4)    (i40[0] + [-1] ≥ 0∧i341[0] + [-1] + [-1]i40[0] ≥ 0 ⇒ (UIncreasing(COND_JMP1590(&&(>(i40[0], 0), >(i341[0], i40[0])), i40[0], i40[0], i40[0], i40[0], i341[0], i40[0])), ≥)∧[bni_20 + (-1)Bound*bni_20] + [(2)bni_20]i341[0] ≥ 0∧[(-1)bso_21] + i40[0] ≥ 0)

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

(5)    (i40[0] + [-1] ≥ 0∧i341[0] + [-1] + [-1]i40[0] ≥ 0 ⇒ (UIncreasing(COND_JMP1590(&&(>(i40[0], 0), >(i341[0], i40[0])), i40[0], i40[0], i40[0], i40[0], i341[0], i40[0])), ≥)∧[bni_20 + (-1)Bound*bni_20] + [(2)bni_20]i341[0] ≥ 0∧[(-1)bso_21] + i40[0] ≥ 0)

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

(6)    (i40[0] ≥ 0∧i341[0] + [-2] + [-1]i40[0] ≥ 0 ⇒ (UIncreasing(COND_JMP1590(&&(>(i40[0], 0), >(i341[0], i40[0])), i40[0], i40[0], i40[0], i40[0], i341[0], i40[0])), ≥)∧[bni_20 + (-1)Bound*bni_20] + [(2)bni_20]i341[0] ≥ 0∧[1 + (-1)bso_21] + i40[0] ≥ 0)

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

(7)    (i40[0] ≥ 0∧i341[0] ≥ 0 ⇒ (UIncreasing(COND_JMP1590(&&(>(i40[0], 0), >(i341[0], i40[0])), i40[0], i40[0], i40[0], i40[0], i341[0], i40[0])), ≥)∧[(5)bni_20 + (-1)Bound*bni_20] + [(2)bni_20]i40[0] + [(2)bni_20]i341[0] ≥ 0∧[1 + (-1)bso_21] + i40[0] ≥ 0)

For Pair COND_JMP1590(TRUE, i40, i40, i40, i40, i341, i40) → JMP1590'(i40, i40, i40, i40, -(i341, i40), i40) the following chains were created:
• We consider the chain JMP1590'(i40[0], i40[0], i40[0], i40[0], i341[0], i40[0]) → COND_JMP1590(&&(>(i40[0], 0), >(i341[0], i40[0])), i40[0], i40[0], i40[0], i40[0], i341[0], i40[0]), COND_JMP1590(TRUE, i40[1], i40[1], i40[1], i40[1], i341[1], i40[1]) → JMP1590'(i40[1], i40[1], i40[1], i40[1], -(i341[1], i40[1]), i40[1]), JMP1590'(i40[0], i40[0], i40[0], i40[0], i341[0], i40[0]) → COND_JMP1590(&&(>(i40[0], 0), >(i341[0], i40[0])), i40[0], i40[0], i40[0], i40[0], i341[0], i40[0]) which results in the following constraint:

(8)    (i341[0]=i341[1]i40[0]=i40[1]&&(>(i40[0], 0), >(i341[0], i40[0]))=TRUEi40[1]=i40[0]1-(i341[1], i40[1])=i341[0]1COND_JMP1590(TRUE, i40[1], i40[1], i40[1], i40[1], i341[1], i40[1])≥NonInfC∧COND_JMP1590(TRUE, i40[1], i40[1], i40[1], i40[1], i341[1], i40[1])≥JMP1590'(i40[1], i40[1], i40[1], i40[1], -(i341[1], i40[1]), i40[1])∧(UIncreasing(JMP1590'(i40[1], i40[1], i40[1], i40[1], -(i341[1], i40[1]), i40[1])), ≥))

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

(9)    (>(i40[0], 0)=TRUE>(i341[0], i40[0])=TRUECOND_JMP1590(TRUE, i40[0], i40[0], i40[0], i40[0], i341[0], i40[0])≥NonInfC∧COND_JMP1590(TRUE, i40[0], i40[0], i40[0], i40[0], i341[0], i40[0])≥JMP1590'(i40[0], i40[0], i40[0], i40[0], -(i341[0], i40[0]), i40[0])∧(UIncreasing(JMP1590'(i40[1], i40[1], i40[1], i40[1], -(i341[1], i40[1]), i40[1])), ≥))

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

(10)    (i40[0] + [-1] ≥ 0∧i341[0] + [-1] + [-1]i40[0] ≥ 0 ⇒ (UIncreasing(JMP1590'(i40[1], i40[1], i40[1], i40[1], -(i341[1], i40[1]), i40[1])), ≥)∧[bni_22 + (-1)Bound*bni_22] + [(-1)bni_22]i40[0] + [(2)bni_22]i341[0] ≥ 0∧[(-1)bso_23] + i40[0] ≥ 0)

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

(11)    (i40[0] + [-1] ≥ 0∧i341[0] + [-1] + [-1]i40[0] ≥ 0 ⇒ (UIncreasing(JMP1590'(i40[1], i40[1], i40[1], i40[1], -(i341[1], i40[1]), i40[1])), ≥)∧[bni_22 + (-1)Bound*bni_22] + [(-1)bni_22]i40[0] + [(2)bni_22]i341[0] ≥ 0∧[(-1)bso_23] + i40[0] ≥ 0)

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

(12)    (i40[0] + [-1] ≥ 0∧i341[0] + [-1] + [-1]i40[0] ≥ 0 ⇒ (UIncreasing(JMP1590'(i40[1], i40[1], i40[1], i40[1], -(i341[1], i40[1]), i40[1])), ≥)∧[bni_22 + (-1)Bound*bni_22] + [(-1)bni_22]i40[0] + [(2)bni_22]i341[0] ≥ 0∧[(-1)bso_23] + i40[0] ≥ 0)

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

(13)    (i40[0] ≥ 0∧i341[0] + [-2] + [-1]i40[0] ≥ 0 ⇒ (UIncreasing(JMP1590'(i40[1], i40[1], i40[1], i40[1], -(i341[1], i40[1]), i40[1])), ≥)∧[(-1)Bound*bni_22] + [(-1)bni_22]i40[0] + [(2)bni_22]i341[0] ≥ 0∧[1 + (-1)bso_23] + i40[0] ≥ 0)

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

(14)    (i40[0] ≥ 0∧i341[0] ≥ 0 ⇒ (UIncreasing(JMP1590'(i40[1], i40[1], i40[1], i40[1], -(i341[1], i40[1]), i40[1])), ≥)∧[(-1)Bound*bni_22 + (4)bni_22] + [bni_22]i40[0] + [(2)bni_22]i341[0] ≥ 0∧[1 + (-1)bso_23] + i40[0] ≥ 0)

To summarize, we get the following constraints P for the following pairs.
• JMP1590'(i40, i40, i40, i40, i341, i40) → COND_JMP1590(&&(>(i40, 0), >(i341, i40)), i40, i40, i40, i40, i341, i40)
• (i40[0] ≥ 0∧i341[0] ≥ 0 ⇒ (UIncreasing(COND_JMP1590(&&(>(i40[0], 0), >(i341[0], i40[0])), i40[0], i40[0], i40[0], i40[0], i341[0], i40[0])), ≥)∧[(5)bni_20 + (-1)Bound*bni_20] + [(2)bni_20]i40[0] + [(2)bni_20]i341[0] ≥ 0∧[1 + (-1)bso_21] + i40[0] ≥ 0)

• COND_JMP1590(TRUE, i40, i40, i40, i40, i341, i40) → JMP1590'(i40, i40, i40, i40, -(i341, i40), i40)
• (i40[0] ≥ 0∧i341[0] ≥ 0 ⇒ (UIncreasing(JMP1590'(i40[1], i40[1], i40[1], i40[1], -(i341[1], i40[1]), i40[1])), ≥)∧[(-1)Bound*bni_22 + (4)bni_22] + [bni_22]i40[0] + [(2)bni_22]i341[0] ≥ 0∧[1 + (-1)bso_23] + i40[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) = 0
POL(JMP1590'(x1, x2, x3, x4, x5, x6)) = [1] + [2]x6 + [2]x5 + [-1]x4 + [-1]x3
POL(COND_JMP1590(x1, x2, x3, x4, x5, x6, x7)) = [1] + [2]x6 + [-1]x4
POL(&&(x1, x2)) = [2]
POL(>(x1, x2)) = [-1]
POL(0) = 0
POL(-(x1, x2)) = x1 + [-1]x2

The following pairs are in P>:

JMP1590'(i40[0], i40[0], i40[0], i40[0], i341[0], i40[0]) → COND_JMP1590(&&(>(i40[0], 0), >(i341[0], i40[0])), i40[0], i40[0], i40[0], i40[0], i341[0], i40[0])
COND_JMP1590(TRUE, i40[1], i40[1], i40[1], i40[1], i341[1], i40[1]) → JMP1590'(i40[1], i40[1], i40[1], i40[1], -(i341[1], i40[1]), i40[1])

The following pairs are in Pbound:

JMP1590'(i40[0], i40[0], i40[0], i40[0], i341[0], i40[0]) → COND_JMP1590(&&(>(i40[0], 0), >(i341[0], i40[0])), i40[0], i40[0], i40[0], i40[0], i341[0], i40[0])
COND_JMP1590(TRUE, i40[1], i40[1], i40[1], i40[1], i341[1], i40[1]) → JMP1590'(i40[1], i40[1], i40[1], i40[1], -(i341[1], i40[1]), i40[1])

The following pairs are in P:
none

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

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

### (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:
JMP1590(x0, x0, x0, x0, x1, x0)
Cond_JMP1590(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:
NE1621(i42, i42, i42, i42, i42, i42, i42, i42, i42, i42) → Cond_NE1621(i42 > 0 && !(i42 = i42), i42, i42, i42, i42, i42, i42, i42, i42, i42, i42)
Cond_NE1621(TRUE, i42, i42, i42, i42, i42, i42, i42, i42, i42, i42) → NE1621(i42, i42, i42, i42, i42, i42, i42, i42, i42, i42)
JMP1257(i42, i42, i42) → Cond_JMP1257(i42 > 0 && !(i42 = i42), i42, i42, i42)
Cond_JMP1257(TRUE, i42, i42, i42) → NE1621(i42, i42, i42, i42, i42, i42, i42, i42, i42, i42)
NE1621(i42, i42, i322, i322, i42, i322, i42, i322, i42, i322) → Cond_NE16211(i322 < i42 && i42 <= i322 && i322 > 0, i42, i42, i322, i322, i42, i322, i42, i322, i42, i322)
Cond_NE16211(TRUE, i42, i42, i322, i322, i42, i322, i42, i322, i42, i322) → JMP1257(i42, i42, i322)
JMP1257(i42, i42, i322) → Cond_JMP12571(i322 < i42 && i42 <= i322 && i42 > 0 && !(i322 = 0), i42, i42, i322)
Cond_JMP12571(TRUE, i42, i42, i322) → JMP1257(i42, i42, i322)
NE1621(i322, i322, i322, i322, i322, i322, i322, i322, i322, i322) → Cond_NE16212(i322 > 0, i322, i322, i322, i322, i322, i322, i322, i322, i322, i322)
Cond_NE16212(TRUE, i322, i322, i322, i322, i322, i322, i322, i322, i322, i322) → JMP1257(i322, i322, 0)
JMP1257(i322, i322, i322) → Cond_JMP12572(i322 > 0, i322, i322, i322)
Cond_JMP12572(TRUE, i322, i322, i322) → JMP1257(i322, i322, 0)
The set Q consists of the following terms:
Cond_NE1621(TRUE, x0, x0, x0, x0, x0, x0, x0, x0, x0, x0)
Cond_JMP1257(TRUE, x0, x0, x0)
NE1621(x0, x0, x1, x1, x0, x1, x0, x1, x0, x1)
Cond_NE16211(TRUE, x0, x0, x1, x1, x0, x1, x0, x1, x0, x1)
JMP1257(x0, x0, x1)
Cond_JMP12571(TRUE, x0, x0, x1)
Cond_NE16212(TRUE, x0, x0, x0, x0, x0, x0, x0, x0, x0, x0)
Cond_JMP12572(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:
NE1621(i42, i42, i42, i42, i42, i42, i42, i42, i42, i42) → Cond_NE1621(i42 > 0 && !(i42 = i42), i42, i42, i42, i42, i42, i42, i42, i42, i42, i42)
Cond_NE1621(TRUE, i42, i42, i42, i42, i42, i42, i42, i42, i42, i42) → NE1621(i42, i42, i42, i42, i42, i42, i42, i42, i42, i42)
JMP1257(i42, i42, i42) → Cond_JMP1257(i42 > 0 && !(i42 = i42), i42, i42, i42)
Cond_JMP1257(TRUE, i42, i42, i42) → NE1621(i42, i42, i42, i42, i42, i42, i42, i42, i42, i42)
NE1621(i42, i42, i322, i322, i42, i322, i42, i322, i42, i322) → Cond_NE16211(i322 < i42 && i42 <= i322 && i322 > 0, i42, i42, i322, i322, i42, i322, i42, i322, i42, i322)
Cond_NE16211(TRUE, i42, i42, i322, i322, i42, i322, i42, i322, i42, i322) → JMP1257(i42, i42, i322)
JMP1257(i42, i42, i322) → Cond_JMP12571(i322 < i42 && i42 <= i322 && i42 > 0 && !(i322 = 0), i42, i42, i322)
Cond_JMP12571(TRUE, i42, i42, i322) → JMP1257(i42, i42, i322)
NE1621(i322, i322, i322, i322, i322, i322, i322, i322, i322, i322) → Cond_NE16212(i322 > 0, i322, i322, i322, i322, i322, i322, i322, i322, i322, i322)
Cond_NE16212(TRUE, i322, i322, i322, i322, i322, i322, i322, i322, i322, i322) → JMP1257(i322, i322, 0)
JMP1257(i322, i322, i322) → Cond_JMP12572(i322 > 0, i322, i322, i322)
Cond_JMP12572(TRUE, i322, i322, i322) → JMP1257(i322, i322, 0)

The integer pair graph contains the following rules and edges:
(0): NE1621'(i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0]) → COND_NE1621(i42[0] > 0 && !(i42[0] = i42[0]), i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0])
(1): COND_NE1621(TRUE, i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1]) → NE1621'(i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1])
(2): JMP1257'(i42[2], i42[2], i42[2]) → COND_JMP1257(i42[2] > 0 && !(i42[2] = i42[2]), i42[2], i42[2], i42[2])
(3): COND_JMP1257(TRUE, i42[3], i42[3], i42[3]) → NE1621'(i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3])
(4): NE1621'(i42[4], i42[4], i322[4], i322[4], i42[4], i322[4], i42[4], i322[4], i42[4], i322[4]) → COND_NE16211(i322[4] < i42[4] && i42[4] <= i322[4] && i322[4] > 0, i42[4], i42[4], i322[4], i322[4], i42[4], i322[4], i42[4], i322[4], i42[4], i322[4])
(5): COND_NE16211(TRUE, i42[5], i42[5], i322[5], i322[5], i42[5], i322[5], i42[5], i322[5], i42[5], i322[5]) → JMP1257'(i42[5], i42[5], i322[5])
(6): JMP1257'(i42[6], i42[6], i322[6]) → COND_JMP12571(i322[6] < i42[6] && i42[6] <= i322[6] && i42[6] > 0 && !(i322[6] = 0), i42[6], i42[6], i322[6])
(7): COND_JMP12571(TRUE, i42[7], i42[7], i322[7]) → JMP1257'(i42[7], i42[7], i322[7])
(8): NE1621'(i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8]) → COND_NE16212(i322[8] > 0, i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8])
(9): COND_NE16212(TRUE, i322[9], i322[9], i322[9], i322[9], i322[9], i322[9], i322[9], i322[9], i322[9], i322[9]) → JMP1257'(i322[9], i322[9], 0)
(10): JMP1257'(i322[10], i322[10], i322[10]) → COND_JMP12572(i322[10] > 0, i322[10], i322[10], i322[10])
(11): COND_JMP12572(TRUE, i322[11], i322[11], i322[11]) → JMP1257'(i322[11], i322[11], 0)

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

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

(1) -> (4), if ((i42[1]* i42[4])∧(i42[1]* i322[4]))

(1) -> (8), if ((i42[1]* i322[8]))

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

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

(3) -> (4), if ((i42[3]* i42[4])∧(i42[3]* i322[4]))

(3) -> (8), if ((i42[3]* i322[8]))

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

(5) -> (2), if ((i42[5]* i42[2])∧(i322[5]* i42[2]))

(5) -> (6), if ((i322[5]* i322[6])∧(i42[5]* i42[6]))

(5) -> (10), if ((i42[5]* i322[10])∧(i322[5]* i322[10]))

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

(7) -> (2), if ((i322[7]* i42[2])∧(i42[7]* i42[2]))

(7) -> (6), if ((i322[7]* i322[6])∧(i42[7]* i42[6]))

(7) -> (10), if ((i322[7]* i322[10])∧(i42[7]* i322[10]))

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

(9) -> (2), if ((i322[9]* i42[2])∧(0* i42[2]))

(9) -> (6), if ((i322[9]* i42[6])∧(0* i322[6]))

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

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

(11) -> (2), if ((i322[11]* i42[2])∧(0* i42[2]))

(11) -> (6), if ((i322[11]* i42[6])∧(0* i322[6]))

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

The set Q consists of the following terms:
Cond_NE1621(TRUE, x0, x0, x0, x0, x0, x0, x0, x0, x0, x0)
Cond_JMP1257(TRUE, x0, x0, x0)
NE1621(x0, x0, x1, x1, x0, x1, x0, x1, x0, x1)
Cond_NE16211(TRUE, x0, x0, x1, x1, x0, x1, x0, x1, x0, x1)
JMP1257(x0, x0, x1)
Cond_JMP12571(TRUE, x0, x0, x1)
Cond_NE16212(TRUE, x0, x0, x0, x0, x0, x0, x0, x0, x0, x0)
Cond_JMP12572(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): NE1621'(i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0]) → COND_NE1621(i42[0] > 0 && !(i42[0] = i42[0]), i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0])
(1): COND_NE1621(TRUE, i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1]) → NE1621'(i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1])
(2): JMP1257'(i42[2], i42[2], i42[2]) → COND_JMP1257(i42[2] > 0 && !(i42[2] = i42[2]), i42[2], i42[2], i42[2])
(3): COND_JMP1257(TRUE, i42[3], i42[3], i42[3]) → NE1621'(i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3])
(4): NE1621'(i42[4], i42[4], i322[4], i322[4], i42[4], i322[4], i42[4], i322[4], i42[4], i322[4]) → COND_NE16211(i322[4] < i42[4] && i42[4] <= i322[4] && i322[4] > 0, i42[4], i42[4], i322[4], i322[4], i42[4], i322[4], i42[4], i322[4], i42[4], i322[4])
(5): COND_NE16211(TRUE, i42[5], i42[5], i322[5], i322[5], i42[5], i322[5], i42[5], i322[5], i42[5], i322[5]) → JMP1257'(i42[5], i42[5], i322[5])
(6): JMP1257'(i42[6], i42[6], i322[6]) → COND_JMP12571(i322[6] < i42[6] && i42[6] <= i322[6] && i42[6] > 0 && !(i322[6] = 0), i42[6], i42[6], i322[6])
(7): COND_JMP12571(TRUE, i42[7], i42[7], i322[7]) → JMP1257'(i42[7], i42[7], i322[7])
(8): NE1621'(i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8]) → COND_NE16212(i322[8] > 0, i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8])
(9): COND_NE16212(TRUE, i322[9], i322[9], i322[9], i322[9], i322[9], i322[9], i322[9], i322[9], i322[9], i322[9]) → JMP1257'(i322[9], i322[9], 0)
(10): JMP1257'(i322[10], i322[10], i322[10]) → COND_JMP12572(i322[10] > 0, i322[10], i322[10], i322[10])
(11): COND_JMP12572(TRUE, i322[11], i322[11], i322[11]) → JMP1257'(i322[11], i322[11], 0)

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

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

(1) -> (4), if ((i42[1]* i42[4])∧(i42[1]* i322[4]))

(1) -> (8), if ((i42[1]* i322[8]))

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

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

(3) -> (4), if ((i42[3]* i42[4])∧(i42[3]* i322[4]))

(3) -> (8), if ((i42[3]* i322[8]))

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

(5) -> (2), if ((i42[5]* i42[2])∧(i322[5]* i42[2]))

(5) -> (6), if ((i322[5]* i322[6])∧(i42[5]* i42[6]))

(5) -> (10), if ((i42[5]* i322[10])∧(i322[5]* i322[10]))

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

(7) -> (2), if ((i322[7]* i42[2])∧(i42[7]* i42[2]))

(7) -> (6), if ((i322[7]* i322[6])∧(i42[7]* i42[6]))

(7) -> (10), if ((i322[7]* i322[10])∧(i42[7]* i322[10]))

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

(9) -> (2), if ((i322[9]* i42[2])∧(0* i42[2]))

(9) -> (6), if ((i322[9]* i42[6])∧(0* i322[6]))

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

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

(11) -> (2), if ((i322[11]* i42[2])∧(0* i42[2]))

(11) -> (6), if ((i322[11]* i42[6])∧(0* i322[6]))

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

The set Q consists of the following terms:
Cond_NE1621(TRUE, x0, x0, x0, x0, x0, x0, x0, x0, x0, x0)
Cond_JMP1257(TRUE, x0, x0, x0)
NE1621(x0, x0, x1, x1, x0, x1, x0, x1, x0, x1)
Cond_NE16211(TRUE, x0, x0, x1, x1, x0, x1, x0, x1, x0, x1)
JMP1257(x0, x0, x1)
Cond_JMP12571(TRUE, x0, x0, x1)
Cond_NE16212(TRUE, x0, x0, x0, x0, x0, x0, x0, x0, x0, x0)
Cond_JMP12572(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 NE1621'(i42, i42, i42, i42, i42, i42, i42, i42, i42, i42) → COND_NE1621(&&(>(i42, 0), !(=(i42, i42))), i42, i42, i42, i42, i42, i42, i42, i42, i42, i42) the following chains were created:
• We consider the chain NE1621'(i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0]) → COND_NE1621(&&(>(i42[0], 0), !(=(i42[0], i42[0]))), i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0]), COND_NE1621(TRUE, i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1]) → NE1621'(i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1]) which results in the following constraint:

(1)    (i42[0]=i42[1]&&(>(i42[0], 0), !(=(i42[0], i42[0])))=TRUENE1621'(i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0])≥NonInfC∧NE1621'(i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0])≥COND_NE1621(&&(>(i42[0], 0), !(=(i42[0], i42[0]))), i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0])∧(UIncreasing(COND_NE1621(&&(>(i42[0], 0), !(=(i42[0], i42[0]))), i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0])), ≥))

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

(2)    (>(i42[0], 0)=TRUE<(i42[0], i42[0])=TRUENE1621'(i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0])≥NonInfC∧NE1621'(i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0])≥COND_NE1621(&&(>(i42[0], 0), !(=(i42[0], i42[0]))), i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0])∧(UIncreasing(COND_NE1621(&&(>(i42[0], 0), !(=(i42[0], i42[0]))), i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0])), ≥))

(3)    (>(i42[0], 0)=TRUE>(i42[0], i42[0])=TRUENE1621'(i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0])≥NonInfC∧NE1621'(i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0])≥COND_NE1621(&&(>(i42[0], 0), !(=(i42[0], i42[0]))), i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0])∧(UIncreasing(COND_NE1621(&&(>(i42[0], 0), !(=(i42[0], i42[0]))), i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0])), ≥))

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

(4)    (i42[0] + [-1] ≥ 0∧[-1] ≥ 0 ⇒ (UIncreasing(COND_NE1621(&&(>(i42[0], 0), !(=(i42[0], i42[0]))), i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0])), ≥)∧[(2)bni_75 + (-1)Bound*bni_75] + [(-2)bni_75]i42[0] ≥ 0∧[(-1)bso_76] ≥ 0)

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

(5)    (i42[0] + [-1] ≥ 0∧[-1] ≥ 0 ⇒ (UIncreasing(COND_NE1621(&&(>(i42[0], 0), !(=(i42[0], i42[0]))), i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0])), ≥)∧[(2)bni_75 + (-1)Bound*bni_75] + [(-2)bni_75]i42[0] ≥ 0∧[(-1)bso_76] ≥ 0)

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

(6)    (i42[0] + [-1] ≥ 0∧[-1] ≥ 0 ⇒ (UIncreasing(COND_NE1621(&&(>(i42[0], 0), !(=(i42[0], i42[0]))), i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0])), ≥)∧[(2)bni_75 + (-1)Bound*bni_75] + [(-2)bni_75]i42[0] ≥ 0∧[(-1)bso_76] ≥ 0)

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

(7)    (i42[0] + [-1] ≥ 0∧[-1] ≥ 0 ⇒ (UIncreasing(COND_NE1621(&&(>(i42[0], 0), !(=(i42[0], i42[0]))), i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0])), ≥)∧[(2)bni_75 + (-1)Bound*bni_75] + [(-2)bni_75]i42[0] ≥ 0∧[(-1)bso_76] ≥ 0)

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

(8)    (i42[0] + [-1] ≥ 0∧[-1] ≥ 0 ⇒ (UIncreasing(COND_NE1621(&&(>(i42[0], 0), !(=(i42[0], i42[0]))), i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0])), ≥)∧[(2)bni_75 + (-1)Bound*bni_75] + [(-2)bni_75]i42[0] ≥ 0∧[(-1)bso_76] ≥ 0)

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

(9)    (i42[0] + [-1] ≥ 0∧[-1] ≥ 0 ⇒ (UIncreasing(COND_NE1621(&&(>(i42[0], 0), !(=(i42[0], i42[0]))), i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0])), ≥)∧[(2)bni_75 + (-1)Bound*bni_75] + [(-2)bni_75]i42[0] ≥ 0∧[(-1)bso_76] ≥ 0)

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

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

(10)    (i42[1]=i42[0]COND_NE1621(TRUE, i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1])≥NonInfC∧COND_NE1621(TRUE, i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1])≥NE1621'(i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1])∧(UIncreasing(NE1621'(i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1])), ≥))

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

(11)    (COND_NE1621(TRUE, i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1])≥NonInfC∧COND_NE1621(TRUE, i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1])≥NE1621'(i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1])∧(UIncreasing(NE1621'(i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1])), ≥))

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

(12)    ((UIncreasing(NE1621'(i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1])), ≥)∧[(-1)bso_78] ≥ 0)

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

(13)    ((UIncreasing(NE1621'(i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1])), ≥)∧[(-1)bso_78] ≥ 0)

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

(14)    ((UIncreasing(NE1621'(i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1])), ≥)∧[(-1)bso_78] ≥ 0)

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

(15)    ((UIncreasing(NE1621'(i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1])), ≥)∧0 = 0∧[(-1)bso_78] ≥ 0)

• We consider the chain COND_NE1621(TRUE, i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1]) → NE1621'(i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1]), NE1621'(i42[4], i42[4], i322[4], i322[4], i42[4], i322[4], i42[4], i322[4], i42[4], i322[4]) → COND_NE16211(&&(&&(<(i322[4], i42[4]), <=(i42[4], i322[4])), >(i322[4], 0)), i42[4], i42[4], i322[4], i322[4], i42[4], i322[4], i42[4], i322[4], i42[4], i322[4]) which results in the following constraint:

(16)    (i42[1]=i42[4]i42[1]=i322[4]COND_NE1621(TRUE, i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1])≥NonInfC∧COND_NE1621(TRUE, i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1])≥NE1621'(i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1])∧(UIncreasing(NE1621'(i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1])), ≥))

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

(17)    (COND_NE1621(TRUE, i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1])≥NonInfC∧COND_NE1621(TRUE, i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1])≥NE1621'(i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1])∧(UIncreasing(NE1621'(i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1])), ≥))

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

(18)    ((UIncreasing(NE1621'(i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1])), ≥)∧[(-1)bso_78] ≥ 0)

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

(19)    ((UIncreasing(NE1621'(i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1])), ≥)∧[(-1)bso_78] ≥ 0)

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

(20)    ((UIncreasing(NE1621'(i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1])), ≥)∧[(-1)bso_78] ≥ 0)

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

(21)    ((UIncreasing(NE1621'(i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1])), ≥)∧0 = 0∧[(-1)bso_78] ≥ 0)

• We consider the chain COND_NE1621(TRUE, i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1]) → NE1621'(i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1]), NE1621'(i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8]) → COND_NE16212(>(i322[8], 0), i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8]) which results in the following constraint:

(22)    (i42[1]=i322[8]COND_NE1621(TRUE, i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1])≥NonInfC∧COND_NE1621(TRUE, i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1])≥NE1621'(i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1])∧(UIncreasing(NE1621'(i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1])), ≥))

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

(23)    (COND_NE1621(TRUE, i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1])≥NonInfC∧COND_NE1621(TRUE, i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1])≥NE1621'(i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1])∧(UIncreasing(NE1621'(i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1])), ≥))

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

(24)    ((UIncreasing(NE1621'(i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1])), ≥)∧[(-1)bso_78] ≥ 0)

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

(25)    ((UIncreasing(NE1621'(i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1])), ≥)∧[(-1)bso_78] ≥ 0)

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

(26)    ((UIncreasing(NE1621'(i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1])), ≥)∧[(-1)bso_78] ≥ 0)

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

(27)    ((UIncreasing(NE1621'(i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1])), ≥)∧0 = 0∧[(-1)bso_78] ≥ 0)

For Pair JMP1257'(i42, i42, i42) → COND_JMP1257(&&(>(i42, 0), !(=(i42, i42))), i42, i42, i42) the following chains were created:
• We consider the chain JMP1257'(i42[2], i42[2], i42[2]) → COND_JMP1257(&&(>(i42[2], 0), !(=(i42[2], i42[2]))), i42[2], i42[2], i42[2]), COND_JMP1257(TRUE, i42[3], i42[3], i42[3]) → NE1621'(i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3]) which results in the following constraint:

(28)    (i42[2]=i42[3]&&(>(i42[2], 0), !(=(i42[2], i42[2])))=TRUEJMP1257'(i42[2], i42[2], i42[2])≥NonInfC∧JMP1257'(i42[2], i42[2], i42[2])≥COND_JMP1257(&&(>(i42[2], 0), !(=(i42[2], i42[2]))), i42[2], i42[2], i42[2])∧(UIncreasing(COND_JMP1257(&&(>(i42[2], 0), !(=(i42[2], i42[2]))), i42[2], i42[2], i42[2])), ≥))

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

(29)    (>(i42[2], 0)=TRUE<(i42[2], i42[2])=TRUEJMP1257'(i42[2], i42[2], i42[2])≥NonInfC∧JMP1257'(i42[2], i42[2], i42[2])≥COND_JMP1257(&&(>(i42[2], 0), !(=(i42[2], i42[2]))), i42[2], i42[2], i42[2])∧(UIncreasing(COND_JMP1257(&&(>(i42[2], 0), !(=(i42[2], i42[2]))), i42[2], i42[2], i42[2])), ≥))

(30)    (>(i42[2], 0)=TRUE>(i42[2], i42[2])=TRUEJMP1257'(i42[2], i42[2], i42[2])≥NonInfC∧JMP1257'(i42[2], i42[2], i42[2])≥COND_JMP1257(&&(>(i42[2], 0), !(=(i42[2], i42[2]))), i42[2], i42[2], i42[2])∧(UIncreasing(COND_JMP1257(&&(>(i42[2], 0), !(=(i42[2], i42[2]))), i42[2], i42[2], i42[2])), ≥))

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

(31)    (i42[2] + [-1] ≥ 0∧[-1] ≥ 0 ⇒ (UIncreasing(COND_JMP1257(&&(>(i42[2], 0), !(=(i42[2], i42[2]))), i42[2], i42[2], i42[2])), ≥)∧[(-1)bni_79 + (-1)Bound*bni_79] ≥ 0∧[-3 + (-1)bso_80] + [2]i42[2] ≥ 0)

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

(32)    (i42[2] + [-1] ≥ 0∧[-1] ≥ 0 ⇒ (UIncreasing(COND_JMP1257(&&(>(i42[2], 0), !(=(i42[2], i42[2]))), i42[2], i42[2], i42[2])), ≥)∧[(-1)bni_79 + (-1)Bound*bni_79] ≥ 0∧[-3 + (-1)bso_80] + [2]i42[2] ≥ 0)

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

(33)    (i42[2] + [-1] ≥ 0∧[-1] ≥ 0 ⇒ (UIncreasing(COND_JMP1257(&&(>(i42[2], 0), !(=(i42[2], i42[2]))), i42[2], i42[2], i42[2])), ≥)∧[(-1)bni_79 + (-1)Bound*bni_79] ≥ 0∧[-3 + (-1)bso_80] + [2]i42[2] ≥ 0)

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

(34)    (i42[2] + [-1] ≥ 0∧[-1] ≥ 0 ⇒ (UIncreasing(COND_JMP1257(&&(>(i42[2], 0), !(=(i42[2], i42[2]))), i42[2], i42[2], i42[2])), ≥)∧[(-1)bni_79 + (-1)Bound*bni_79] ≥ 0∧[-3 + (-1)bso_80] + [2]i42[2] ≥ 0)

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

(35)    (i42[2] + [-1] ≥ 0∧[-1] ≥ 0 ⇒ (UIncreasing(COND_JMP1257(&&(>(i42[2], 0), !(=(i42[2], i42[2]))), i42[2], i42[2], i42[2])), ≥)∧[(-1)bni_79 + (-1)Bound*bni_79] ≥ 0∧[-3 + (-1)bso_80] + [2]i42[2] ≥ 0)

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

(36)    (i42[2] + [-1] ≥ 0∧[-1] ≥ 0 ⇒ (UIncreasing(COND_JMP1257(&&(>(i42[2], 0), !(=(i42[2], i42[2]))), i42[2], i42[2], i42[2])), ≥)∧[(-1)bni_79 + (-1)Bound*bni_79] ≥ 0∧[-3 + (-1)bso_80] + [2]i42[2] ≥ 0)

We solved constraint (35) using rule (IDP_SMT_SPLIT).We solved constraint (36) using rule (IDP_SMT_SPLIT).

For Pair COND_JMP1257(TRUE, i42, i42, i42) → NE1621'(i42, i42, i42, i42, i42, i42, i42, i42, i42, i42) the following chains were created:
• We consider the chain COND_JMP1257(TRUE, i42[3], i42[3], i42[3]) → NE1621'(i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3]), NE1621'(i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0]) → COND_NE1621(&&(>(i42[0], 0), !(=(i42[0], i42[0]))), i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0]) which results in the following constraint:

(37)    (i42[3]=i42[0]COND_JMP1257(TRUE, i42[3], i42[3], i42[3])≥NonInfC∧COND_JMP1257(TRUE, i42[3], i42[3], i42[3])≥NE1621'(i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3])∧(UIncreasing(NE1621'(i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3])), ≥))

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

(38)    (COND_JMP1257(TRUE, i42[3], i42[3], i42[3])≥NonInfC∧COND_JMP1257(TRUE, i42[3], i42[3], i42[3])≥NE1621'(i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3])∧(UIncreasing(NE1621'(i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3])), ≥))

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

(39)    ((UIncreasing(NE1621'(i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3])), ≥)∧[(-1)bso_82] ≥ 0)

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

(40)    ((UIncreasing(NE1621'(i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3])), ≥)∧[(-1)bso_82] ≥ 0)

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

(41)    ((UIncreasing(NE1621'(i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3])), ≥)∧[(-1)bso_82] ≥ 0)

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

(42)    ((UIncreasing(NE1621'(i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3])), ≥)∧0 = 0∧[(-1)bso_82] ≥ 0)

• We consider the chain COND_JMP1257(TRUE, i42[3], i42[3], i42[3]) → NE1621'(i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3]), NE1621'(i42[4], i42[4], i322[4], i322[4], i42[4], i322[4], i42[4], i322[4], i42[4], i322[4]) → COND_NE16211(&&(&&(<(i322[4], i42[4]), <=(i42[4], i322[4])), >(i322[4], 0)), i42[4], i42[4], i322[4], i322[4], i42[4], i322[4], i42[4], i322[4], i42[4], i322[4]) which results in the following constraint:

(43)    (i42[3]=i42[4]i42[3]=i322[4]COND_JMP1257(TRUE, i42[3], i42[3], i42[3])≥NonInfC∧COND_JMP1257(TRUE, i42[3], i42[3], i42[3])≥NE1621'(i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3])∧(UIncreasing(NE1621'(i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3])), ≥))

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

(44)    (COND_JMP1257(TRUE, i42[3], i42[3], i42[3])≥NonInfC∧COND_JMP1257(TRUE, i42[3], i42[3], i42[3])≥NE1621'(i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3])∧(UIncreasing(NE1621'(i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3])), ≥))

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

(45)    ((UIncreasing(NE1621'(i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3])), ≥)∧[(-1)bso_82] ≥ 0)

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

(46)    ((UIncreasing(NE1621'(i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3])), ≥)∧[(-1)bso_82] ≥ 0)

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

(47)    ((UIncreasing(NE1621'(i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3])), ≥)∧[(-1)bso_82] ≥ 0)

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

(48)    ((UIncreasing(NE1621'(i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3])), ≥)∧0 = 0∧[(-1)bso_82] ≥ 0)

• We consider the chain COND_JMP1257(TRUE, i42[3], i42[3], i42[3]) → NE1621'(i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3]), NE1621'(i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8]) → COND_NE16212(>(i322[8], 0), i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8]) which results in the following constraint:

(49)    (i42[3]=i322[8]COND_JMP1257(TRUE, i42[3], i42[3], i42[3])≥NonInfC∧COND_JMP1257(TRUE, i42[3], i42[3], i42[3])≥NE1621'(i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3])∧(UIncreasing(NE1621'(i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3])), ≥))

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

(50)    (COND_JMP1257(TRUE, i42[3], i42[3], i42[3])≥NonInfC∧COND_JMP1257(TRUE, i42[3], i42[3], i42[3])≥NE1621'(i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3])∧(UIncreasing(NE1621'(i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3])), ≥))

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

(51)    ((UIncreasing(NE1621'(i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3])), ≥)∧[(-1)bso_82] ≥ 0)

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

(52)    ((UIncreasing(NE1621'(i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3])), ≥)∧[(-1)bso_82] ≥ 0)

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

(53)    ((UIncreasing(NE1621'(i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3])), ≥)∧[(-1)bso_82] ≥ 0)

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

(54)    ((UIncreasing(NE1621'(i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3])), ≥)∧0 = 0∧[(-1)bso_82] ≥ 0)

For Pair NE1621'(i42, i42, i322, i322, i42, i322, i42, i322, i42, i322) → COND_NE16211(&&(&&(<(i322, i42), <=(i42, i322)), >(i322, 0)), i42, i42, i322, i322, i42, i322, i42, i322, i42, i322) the following chains were created:
• We consider the chain NE1621'(i42[4], i42[4], i322[4], i322[4], i42[4], i322[4], i42[4], i322[4], i42[4], i322[4]) → COND_NE16211(&&(&&(<(i322[4], i42[4]), <=(i42[4], i322[4])), >(i322[4], 0)), i42[4], i42[4], i322[4], i322[4], i42[4], i322[4], i42[4], i322[4], i42[4], i322[4]), COND_NE16211(TRUE, i42[5], i42[5], i322[5], i322[5], i42[5], i322[5], i42[5], i322[5], i42[5], i322[5]) → JMP1257'(i42[5], i42[5], i322[5]) which results in the following constraint:

(55)    (i322[4]=i322[5]i42[4]=i42[5]&&(&&(<(i322[4], i42[4]), <=(i42[4], i322[4])), >(i322[4], 0))=TRUENE1621'(i42[4], i42[4], i322[4], i322[4], i42[4], i322[4], i42[4], i322[4], i42[4], i322[4])≥NonInfC∧NE1621'(i42[4], i42[4], i322[4], i322[4], i42[4], i322[4], i42[4], i322[4], i42[4], i322[4])≥COND_NE16211(&&(&&(<(i322[4], i42[4]), <=(i42[4], i322[4])), >(i322[4], 0)), i42[4], i42[4], i322[4], i322[4], i42[4], i322[4], i42[4], i322[4], i42[4], i322[4])∧(UIncreasing(COND_NE16211(&&(&&(<(i322[4], i42[4]), <=(i42[4], i322[4])), >(i322[4], 0)), i42[4], i42[4], i322[4], i322[4], i42[4], i322[4], i42[4], i322[4], i42[4], i322[4])), ≥))

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

(56)    (>(i322[4], 0)=TRUE<(i322[4], i42[4])=TRUE<=(i42[4], i322[4])=TRUENE1621'(i42[4], i42[4], i322[4], i322[4], i42[4], i322[4], i42[4], i322[4], i42[4], i322[4])≥NonInfC∧NE1621'(i42[4], i42[4], i322[4], i322[4], i42[4], i322[4], i42[4], i322[4], i42[4], i322[4])≥COND_NE16211(&&(&&(<(i322[4], i42[4]), <=(i42[4], i322[4])), >(i322[4], 0)), i42[4], i42[4], i322[4], i322[4], i42[4], i322[4], i42[4], i322[4], i42[4], i322[4])∧(UIncreasing(COND_NE16211(&&(&&(<(i322[4], i42[4]), <=(i42[4], i322[4])), >(i322[4], 0)), i42[4], i42[4], i322[4], i322[4], i42[4], i322[4], i42[4], i322[4], i42[4], i322[4])), ≥))

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

(57)    (i322[4] + [-1] ≥ 0∧i42[4] + [-1] + [-1]i322[4] ≥ 0∧i322[4] + [-1]i42[4] ≥ 0 ⇒ (UIncreasing(COND_NE16211(&&(&&(<(i322[4], i42[4]), <=(i42[4], i322[4])), >(i322[4], 0)), i42[4], i42[4], i322[4], i322[4], i42[4], i322[4], i42[4], i322[4], i42[4], i322[4])), ≥)∧[(2)bni_83 + (-1)Bound*bni_83] + [(-1)bni_83]i322[4] + [(-1)bni_83]i42[4] ≥ 0∧[1 + (-1)bso_84] + [-3]i322[4] + i42[4] ≥ 0)

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

(58)    (i322[4] + [-1] ≥ 0∧i42[4] + [-1] + [-1]i322[4] ≥ 0∧i322[4] + [-1]i42[4] ≥ 0 ⇒ (UIncreasing(COND_NE16211(&&(&&(<(i322[4], i42[4]), <=(i42[4], i322[4])), >(i322[4], 0)), i42[4], i42[4], i322[4], i322[4], i42[4], i322[4], i42[4], i322[4], i42[4], i322[4])), ≥)∧[(2)bni_83 + (-1)Bound*bni_83] + [(-1)bni_83]i322[4] + [(-1)bni_83]i42[4] ≥ 0∧[1 + (-1)bso_84] + [-3]i322[4] + i42[4] ≥ 0)

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

(59)    (i322[4] + [-1] ≥ 0∧i42[4] + [-1] + [-1]i322[4] ≥ 0∧i322[4] + [-1]i42[4] ≥ 0 ⇒ (UIncreasing(COND_NE16211(&&(&&(<(i322[4], i42[4]), <=(i42[4], i322[4])), >(i322[4], 0)), i42[4], i42[4], i322[4], i322[4], i42[4], i322[4], i42[4], i322[4], i42[4], i322[4])), ≥)∧[(2)bni_83 + (-1)Bound*bni_83] + [(-1)bni_83]i322[4] + [(-1)bni_83]i42[4] ≥ 0∧[1 + (-1)bso_84] + [-3]i322[4] + i42[4] ≥ 0)

We solved constraint (59) using rule (IDP_SMT_SPLIT).

For Pair COND_NE16211(TRUE, i42, i42, i322, i322, i42, i322, i42, i322, i42, i322) → JMP1257'(i42, i42, i322) the following chains were created:
• We consider the chain COND_NE16211(TRUE, i42[5], i42[5], i322[5], i322[5], i42[5], i322[5], i42[5], i322[5], i42[5], i322[5]) → JMP1257'(i42[5], i42[5], i322[5]), JMP1257'(i42[2], i42[2], i42[2]) → COND_JMP1257(&&(>(i42[2], 0), !(=(i42[2], i42[2]))), i42[2], i42[2], i42[2]) which results in the following constraint:

(60)    (i42[5]=i42[2]i322[5]=i42[2]COND_NE16211(TRUE, i42[5], i42[5], i322[5], i322[5], i42[5], i322[5], i42[5], i322[5], i42[5], i322[5])≥NonInfC∧COND_NE16211(TRUE, i42[5], i42[5], i322[5], i322[5], i42[5], i322[5], i42[5], i322[5], i42[5], i322[5])≥JMP1257'(i42[5], i42[5], i322[5])∧(UIncreasing(JMP1257'(i42[5], i42[5], i322[5])), ≥))

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

(61)    (COND_NE16211(TRUE, i322[5], i322[5], i322[5], i322[5], i322[5], i322[5], i322[5], i322[5], i322[5], i322[5])≥NonInfC∧COND_NE16211(TRUE, i322[5], i322[5], i322[5], i322[5], i322[5], i322[5], i322[5], i322[5], i322[5], i322[5])≥JMP1257'(i322[5], i322[5], i322[5])∧(UIncreasing(JMP1257'(i42[5], i42[5], i322[5])), ≥))

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

(62)    ((UIncreasing(JMP1257'(i42[5], i42[5], i322[5])), ≥)∧[(-1)bso_86] ≥ 0)

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

(63)    ((UIncreasing(JMP1257'(i42[5], i42[5], i322[5])), ≥)∧[(-1)bso_86] ≥ 0)

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

(64)    ((UIncreasing(JMP1257'(i42[5], i42[5], i322[5])), ≥)∧[(-1)bso_86] ≥ 0)

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

(65)    ((UIncreasing(JMP1257'(i42[5], i42[5], i322[5])), ≥)∧0 = 0∧[(-1)bso_86] ≥ 0)

• We consider the chain COND_NE16211(TRUE, i42[5], i42[5], i322[5], i322[5], i42[5], i322[5], i42[5], i322[5], i42[5], i322[5]) → JMP1257'(i42[5], i42[5], i322[5]), JMP1257'(i42[6], i42[6], i322[6]) → COND_JMP12571(&&(&&(&&(<(i322[6], i42[6]), <=(i42[6], i322[6])), >(i42[6], 0)), !(=(i322[6], 0))), i42[6], i42[6], i322[6]) which results in the following constraint:

(66)    (i322[5]=i322[6]i42[5]=i42[6]COND_NE16211(TRUE, i42[5], i42[5], i322[5], i322[5], i42[5], i322[5], i42[5], i322[5], i42[5], i322[5])≥NonInfC∧COND_NE16211(TRUE, i42[5], i42[5], i322[5], i322[5], i42[5], i322[5], i42[5], i322[5], i42[5], i322[5])≥JMP1257'(i42[5], i42[5], i322[5])∧(UIncreasing(JMP1257'(i42[5], i42[5], i322[5])), ≥))

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

(67)    (COND_NE16211(TRUE, i42[5], i42[5], i322[5], i322[5], i42[5], i322[5], i42[5], i322[5], i42[5], i322[5])≥NonInfC∧COND_NE16211(TRUE, i42[5], i42[5], i322[5], i322[5], i42[5], i322[5], i42[5], i322[5], i42[5], i322[5])≥JMP1257'(i42[5], i42[5], i322[5])∧(UIncreasing(JMP1257'(i42[5], i42[5], i322[5])), ≥))

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

(68)    ((UIncreasing(JMP1257'(i42[5], i42[5], i322[5])), ≥)∧[(-1)bso_86] ≥ 0)

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

(69)    ((UIncreasing(JMP1257'(i42[5], i42[5], i322[5])), ≥)∧[(-1)bso_86] ≥ 0)

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

(70)    ((UIncreasing(JMP1257'(i42[5], i42[5], i322[5])), ≥)∧[(-1)bso_86] ≥ 0)

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

(71)    ((UIncreasing(JMP1257'(i42[5], i42[5], i322[5])), ≥)∧0 = 0∧0 = 0∧[(-1)bso_86] ≥ 0)

• We consider the chain COND_NE16211(TRUE, i42[5], i42[5], i322[5], i322[5], i42[5], i322[5], i42[5], i322[5], i42[5], i322[5]) → JMP1257'(i42[5], i42[5], i322[5]), JMP1257'(i322[10], i322[10], i322[10]) → COND_JMP12572(>(i322[10], 0), i322[10], i322[10], i322[10]) which results in the following constraint:

(72)    (i42[5]=i322[10]i322[5]=i322[10]COND_NE16211(TRUE, i42[5], i42[5], i322[5], i322[5], i42[5], i322[5], i42[5], i322[5], i42[5], i322[5])≥NonInfC∧COND_NE16211(TRUE, i42[5], i42[5], i322[5], i322[5], i42[5], i322[5], i42[5], i322[5], i42[5], i322[5])≥JMP1257'(i42[5], i42[5], i322[5])∧(UIncreasing(JMP1257'(i42[5], i42[5], i322[5])), ≥))

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

(73)    (COND_NE16211(TRUE, i322[5], i322[5], i322[5], i322[5], i322[5], i322[5], i322[5], i322[5], i322[5], i322[5])≥NonInfC∧COND_NE16211(TRUE, i322[5], i322[5], i322[5], i322[5], i322[5], i322[5], i322[5], i322[5], i322[5], i322[5])≥JMP1257'(i322[5], i322[5], i322[5])∧(UIncreasing(JMP1257'(i42[5], i42[5], i322[5])), ≥))

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

(74)    ((UIncreasing(JMP1257'(i42[5], i42[5], i322[5])), ≥)∧[(-1)bso_86] ≥ 0)

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

(75)    ((UIncreasing(JMP1257'(i42[5], i42[5], i322[5])), ≥)∧[(-1)bso_86] ≥ 0)

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

(76)    ((UIncreasing(JMP1257'(i42[5], i42[5], i322[5])), ≥)∧[(-1)bso_86] ≥ 0)

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

(77)    ((UIncreasing(JMP1257'(i42[5], i42[5], i322[5])), ≥)∧0 = 0∧[(-1)bso_86] ≥ 0)

For Pair JMP1257'(i42, i42, i322) → COND_JMP12571(&&(&&(&&(<(i322, i42), <=(i42, i322)), >(i42, 0)), !(=(i322, 0))), i42, i42, i322) the following chains were created:
• We consider the chain JMP1257'(i42[6], i42[6], i322[6]) → COND_JMP12571(&&(&&(&&(<(i322[6], i42[6]), <=(i42[6], i322[6])), >(i42[6], 0)), !(=(i322[6], 0))), i42[6], i42[6], i322[6]), COND_JMP12571(TRUE, i42[7], i42[7], i322[7]) → JMP1257'(i42[7], i42[7], i322[7]) which results in the following constraint:

(78)    (&&(&&(&&(<(i322[6], i42[6]), <=(i42[6], i322[6])), >(i42[6], 0)), !(=(i322[6], 0)))=TRUEi322[6]=i322[7]i42[6]=i42[7]JMP1257'(i42[6], i42[6], i322[6])≥NonInfC∧JMP1257'(i42[6], i42[6], i322[6])≥COND_JMP12571(&&(&&(&&(<(i322[6], i42[6]), <=(i42[6], i322[6])), >(i42[6], 0)), !(=(i322[6], 0))), i42[6], i42[6], i322[6])∧(UIncreasing(COND_JMP12571(&&(&&(&&(<(i322[6], i42[6]), <=(i42[6], i322[6])), >(i42[6], 0)), !(=(i322[6], 0))), i42[6], i42[6], i322[6])), ≥))

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

(79)    (>(i42[6], 0)=TRUE<(i322[6], i42[6])=TRUE<=(i42[6], i322[6])=TRUE<(i322[6], 0)=TRUEJMP1257'(i42[6], i42[6], i322[6])≥NonInfC∧JMP1257'(i42[6], i42[6], i322[6])≥COND_JMP12571(&&(&&(&&(<(i322[6], i42[6]), <=(i42[6], i322[6])), >(i42[6], 0)), !(=(i322[6], 0))), i42[6], i42[6], i322[6])∧(UIncreasing(COND_JMP12571(&&(&&(&&(<(i322[6], i42[6]), <=(i42[6], i322[6])), >(i42[6], 0)), !(=(i322[6], 0))), i42[6], i42[6], i322[6])), ≥))

(80)    (>(i42[6], 0)=TRUE<(i322[6], i42[6])=TRUE<=(i42[6], i322[6])=TRUE>(i322[6], 0)=TRUEJMP1257'(i42[6], i42[6], i322[6])≥NonInfC∧JMP1257'(i42[6], i42[6], i322[6])≥COND_JMP12571(&&(&&(&&(<(i322[6], i42[6]), <=(i42[6], i322[6])), >(i42[6], 0)), !(=(i322[6], 0))), i42[6], i42[6], i322[6])∧(UIncreasing(COND_JMP12571(&&(&&(&&(<(i322[6], i42[6]), <=(i42[6], i322[6])), >(i42[6], 0)), !(=(i322[6], 0))), i42[6], i42[6], i322[6])), ≥))

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

(81)    (i42[6] + [-1] ≥ 0∧i42[6] + [-1] + [-1]i322[6] ≥ 0∧i322[6] + [-1]i42[6] ≥ 0∧[-1] + [-1]i322[6] ≥ 0 ⇒ (UIncreasing(COND_JMP12571(&&(&&(&&(<(i322[6], i42[6]), <=(i42[6], i322[6])), >(i42[6], 0)), !(=(i322[6], 0))), i42[6], i42[6], i322[6])), ≥)∧[(-1)bni_87 + (-1)Bound*bni_87] + [(2)bni_87]i322[6] + [(-2)bni_87]i42[6] ≥ 0∧[(-1)bso_88] ≥ 0)

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

(82)    (i42[6] + [-1] ≥ 0∧i42[6] + [-1] + [-1]i322[6] ≥ 0∧i322[6] + [-1]i42[6] ≥ 0∧i322[6] + [-1] ≥ 0 ⇒ (UIncreasing(COND_JMP12571(&&(&&(&&(<(i322[6], i42[6]), <=(i42[6], i322[6])), >(i42[6], 0)), !(=(i322[6], 0))), i42[6], i42[6], i322[6])), ≥)∧[(-1)bni_87 + (-1)Bound*bni_87] + [(2)bni_87]i322[6] + [(-2)bni_87]i42[6] ≥ 0∧[(-1)bso_88] ≥ 0)

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

(83)    (i42[6] + [-1] ≥ 0∧i42[6] + [-1] + [-1]i322[6] ≥ 0∧i322[6] + [-1]i42[6] ≥ 0∧[-1] + [-1]i322[6] ≥ 0 ⇒ (UIncreasing(COND_JMP12571(&&(&&(&&(<(i322[6], i42[6]), <=(i42[6], i322[6])), >(i42[6], 0)), !(=(i322[6], 0))), i42[6], i42[6], i322[6])), ≥)∧[(-1)bni_87 + (-1)Bound*bni_87] + [(2)bni_87]i322[6] + [(-2)bni_87]i42[6] ≥ 0∧[(-1)bso_88] ≥ 0)

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

(84)    (i42[6] + [-1] ≥ 0∧i42[6] + [-1] + [-1]i322[6] ≥ 0∧i322[6] + [-1]i42[6] ≥ 0∧i322[6] + [-1] ≥ 0 ⇒ (UIncreasing(COND_JMP12571(&&(&&(&&(<(i322[6], i42[6]), <=(i42[6], i322[6])), >(i42[6], 0)), !(=(i322[6], 0))), i42[6], i42[6], i322[6])), ≥)∧[(-1)bni_87 + (-1)Bound*bni_87] + [(2)bni_87]i322[6] + [(-2)bni_87]i42[6] ≥ 0∧[(-1)bso_88] ≥ 0)

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

(85)    (i42[6] + [-1] ≥ 0∧i42[6] + [-1] + [-1]i322[6] ≥ 0∧i322[6] + [-1]i42[6] ≥ 0∧[-1] + [-1]i322[6] ≥ 0 ⇒ (UIncreasing(COND_JMP12571(&&(&&(&&(<(i322[6], i42[6]), <=(i42[6], i322[6])), >(i42[6], 0)), !(=(i322[6], 0))), i42[6], i42[6], i322[6])), ≥)∧[(-1)bni_87 + (-1)Bound*bni_87] + [(2)bni_87]i322[6] + [(-2)bni_87]i42[6] ≥ 0∧[(-1)bso_88] ≥ 0)

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

(86)    (i42[6] + [-1] ≥ 0∧i42[6] + [-1] + [-1]i322[6] ≥ 0∧i322[6] + [-1]i42[6] ≥ 0∧i322[6] + [-1] ≥ 0 ⇒ (UIncreasing(COND_JMP12571(&&(&&(&&(<(i322[6], i42[6]), <=(i42[6], i322[6])), >(i42[6], 0)), !(=(i322[6], 0))), i42[6], i42[6], i322[6])), ≥)∧[(-1)bni_87 + (-1)Bound*bni_87] + [(2)bni_87]i322[6] + [(-2)bni_87]i42[6] ≥ 0∧[(-1)bso_88] ≥ 0)

We solved constraint (85) using rule (IDP_SMT_SPLIT).We solved constraint (86) using rule (IDP_SMT_SPLIT).

For Pair COND_JMP12571(TRUE, i42, i42, i322) → JMP1257'(i42, i42, i322) the following chains were created:
• We consider the chain COND_JMP12571(TRUE, i42[7], i42[7], i322[7]) → JMP1257'(i42[7], i42[7], i322[7]), JMP1257'(i42[2], i42[2], i42[2]) → COND_JMP1257(&&(>(i42[2], 0), !(=(i42[2], i42[2]))), i42[2], i42[2], i42[2]) which results in the following constraint:

(87)    (i322[7]=i42[2]i42[7]=i42[2]COND_JMP12571(TRUE, i42[7], i42[7], i322[7])≥NonInfC∧COND_JMP12571(TRUE, i42[7], i42[7], i322[7])≥JMP1257'(i42[7], i42[7], i322[7])∧(UIncreasing(JMP1257'(i42[7], i42[7], i322[7])), ≥))

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

(88)    (COND_JMP12571(TRUE, i42[7], i42[7], i42[7])≥NonInfC∧COND_JMP12571(TRUE, i42[7], i42[7], i42[7])≥JMP1257'(i42[7], i42[7], i42[7])∧(UIncreasing(JMP1257'(i42[7], i42[7], i322[7])), ≥))

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

(89)    ((UIncreasing(JMP1257'(i42[7], i42[7], i322[7])), ≥)∧[(-1)bso_90] ≥ 0)

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

(90)    ((UIncreasing(JMP1257'(i42[7], i42[7], i322[7])), ≥)∧[(-1)bso_90] ≥ 0)

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

(91)    ((UIncreasing(JMP1257'(i42[7], i42[7], i322[7])), ≥)∧[(-1)bso_90] ≥ 0)

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

(92)    ((UIncreasing(JMP1257'(i42[7], i42[7], i322[7])), ≥)∧0 = 0∧[(-1)bso_90] ≥ 0)

• We consider the chain COND_JMP12571(TRUE, i42[7], i42[7], i322[7]) → JMP1257'(i42[7], i42[7], i322[7]), JMP1257'(i42[6], i42[6], i322[6]) → COND_JMP12571(&&(&&(&&(<(i322[6], i42[6]), <=(i42[6], i322[6])), >(i42[6], 0)), !(=(i322[6], 0))), i42[6], i42[6], i322[6]) which results in the following constraint:

(93)    (i322[7]=i322[6]i42[7]=i42[6]COND_JMP12571(TRUE, i42[7], i42[7], i322[7])≥NonInfC∧COND_JMP12571(TRUE, i42[7], i42[7], i322[7])≥JMP1257'(i42[7], i42[7], i322[7])∧(UIncreasing(JMP1257'(i42[7], i42[7], i322[7])), ≥))

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

(94)    (COND_JMP12571(TRUE, i42[7], i42[7], i322[7])≥NonInfC∧COND_JMP12571(TRUE, i42[7], i42[7], i322[7])≥JMP1257'(i42[7], i42[7], i322[7])∧(UIncreasing(JMP1257'(i42[7], i42[7], i322[7])), ≥))

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

(95)    ((UIncreasing(JMP1257'(i42[7], i42[7], i322[7])), ≥)∧[(-1)bso_90] ≥ 0)

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

(96)    ((UIncreasing(JMP1257'(i42[7], i42[7], i322[7])), ≥)∧[(-1)bso_90] ≥ 0)

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

(97)    ((UIncreasing(JMP1257'(i42[7], i42[7], i322[7])), ≥)∧[(-1)bso_90] ≥ 0)

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

(98)    ((UIncreasing(JMP1257'(i42[7], i42[7], i322[7])), ≥)∧0 = 0∧0 = 0∧[(-1)bso_90] ≥ 0)

• We consider the chain COND_JMP12571(TRUE, i42[7], i42[7], i322[7]) → JMP1257'(i42[7], i42[7], i322[7]), JMP1257'(i322[10], i322[10], i322[10]) → COND_JMP12572(>(i322[10], 0), i322[10], i322[10], i322[10]) which results in the following constraint:

(99)    (i322[7]=i322[10]i42[7]=i322[10]COND_JMP12571(TRUE, i42[7], i42[7], i322[7])≥NonInfC∧COND_JMP12571(TRUE, i42[7], i42[7], i322[7])≥JMP1257'(i42[7], i42[7], i322[7])∧(UIncreasing(JMP1257'(i42[7], i42[7], i322[7])), ≥))

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

(100)    (COND_JMP12571(TRUE, i42[7], i42[7], i42[7])≥NonInfC∧COND_JMP12571(TRUE, i42[7], i42[7], i42[7])≥JMP1257'(i42[7], i42[7], i42[7])∧(UIncreasing(JMP1257'(i42[7], i42[7], i322[7])), ≥))

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

(101)    ((UIncreasing(JMP1257'(i42[7], i42[7], i322[7])), ≥)∧[(-1)bso_90] ≥ 0)

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

(102)    ((UIncreasing(JMP1257'(i42[7], i42[7], i322[7])), ≥)∧[(-1)bso_90] ≥ 0)

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

(103)    ((UIncreasing(JMP1257'(i42[7], i42[7], i322[7])), ≥)∧[(-1)bso_90] ≥ 0)

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

(104)    ((UIncreasing(JMP1257'(i42[7], i42[7], i322[7])), ≥)∧0 = 0∧[(-1)bso_90] ≥ 0)

For Pair NE1621'(i322, i322, i322, i322, i322, i322, i322, i322, i322, i322) → COND_NE16212(>(i322, 0), i322, i322, i322, i322, i322, i322, i322, i322, i322, i322) the following chains were created:
• We consider the chain NE1621'(i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8]) → COND_NE16212(>(i322[8], 0), i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8]), COND_NE16212(TRUE, i322[9], i322[9], i322[9], i322[9], i322[9], i322[9], i322[9], i322[9], i322[9], i322[9]) → JMP1257'(i322[9], i322[9], 0) which results in the following constraint:

(105)    (i322[8]=i322[9]>(i322[8], 0)=TRUENE1621'(i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8])≥NonInfC∧NE1621'(i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8])≥COND_NE16212(>(i322[8], 0), i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8])∧(UIncreasing(COND_NE16212(>(i322[8], 0), i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8])), ≥))

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

(106)    (>(i322[8], 0)=TRUENE1621'(i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8])≥NonInfC∧NE1621'(i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8])≥COND_NE16212(>(i322[8], 0), i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8])∧(UIncreasing(COND_NE16212(>(i322[8], 0), i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8])), ≥))

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

(107)    (i322[8] + [-1] ≥ 0 ⇒ (UIncreasing(COND_NE16212(>(i322[8], 0), i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8])), ≥)∧[(2)bni_91 + (-1)Bound*bni_91] + [(-2)bni_91]i322[8] ≥ 0∧[3 + (-1)bso_92] ≥ 0)

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

(108)    (i322[8] + [-1] ≥ 0 ⇒ (UIncreasing(COND_NE16212(>(i322[8], 0), i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8])), ≥)∧[(2)bni_91 + (-1)Bound*bni_91] + [(-2)bni_91]i322[8] ≥ 0∧[3 + (-1)bso_92] ≥ 0)

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

(109)    (i322[8] + [-1] ≥ 0 ⇒ (UIncreasing(COND_NE16212(>(i322[8], 0), i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8])), ≥)∧[(2)bni_91 + (-1)Bound*bni_91] + [(-2)bni_91]i322[8] ≥ 0∧[3 + (-1)bso_92] ≥ 0)

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

(110)    (i322[8] ≥ 0 ⇒ (UIncreasing(COND_NE16212(>(i322[8], 0), i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8])), ≥)∧[(-1)Bound*bni_91] + [(-2)bni_91]i322[8] ≥ 0∧[3 + (-1)bso_92] ≥ 0)

For Pair COND_NE16212(TRUE, i322, i322, i322, i322, i322, i322, i322, i322, i322, i322) → JMP1257'(i322, i322, 0) the following chains were created:
• We consider the chain NE1621'(i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8]) → COND_NE16212(>(i322[8], 0), i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8]), COND_NE16212(TRUE, i322[9], i322[9], i322[9], i322[9], i322[9], i322[9], i322[9], i322[9], i322[9], i322[9]) → JMP1257'(i322[9], i322[9], 0), JMP1257'(i42[2], i42[2], i42[2]) → COND_JMP1257(&&(>(i42[2], 0), !(=(i42[2], i42[2]))), i42[2], i42[2], i42[2]) which results in the following constraint:

(111)    (i322[8]=i322[9]>(i322[8], 0)=TRUEi322[9]=i42[2]0=i42[2]COND_NE16212(TRUE, i322[9], i322[9], i322[9], i322[9], i322[9], i322[9], i322[9], i322[9], i322[9], i322[9])≥NonInfC∧COND_NE16212(TRUE, i322[9], i322[9], i322[9], i322[9], i322[9], i322[9], i322[9], i322[9], i322[9], i322[9])≥JMP1257'(i322[9], i322[9], 0)∧(UIncreasing(JMP1257'(i322[9], i322[9], 0)), ≥))

We solved constraint (111) using rules (I), (II), (III), (IDP_CONSTANT_FOLD).
• We consider the chain NE1621'(i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8]) → COND_NE16212(>(i322[8], 0), i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8]), COND_NE16212(TRUE, i322[9], i322[9], i322[9], i322[9], i322[9], i322[9], i322[9], i322[9], i322[9], i322[9]) → JMP1257'(i322[9], i322[9], 0), JMP1257'(i42[6], i42[6], i322[6]) → COND_JMP12571(&&(&&(&&(<(i322[6], i42[6]), <=(i42[6], i322[6])), >(i42[6], 0)), !(=(i322[6], 0))), i42[6], i42[6], i322[6]) which results in the following constraint:

(112)    (i322[8]=i322[9]>(i322[8], 0)=TRUEi322[9]=i42[6]0=i322[6]COND_NE16212(TRUE, i322[9], i322[9], i322[9], i322[9], i322[9], i322[9], i322[9], i322[9], i322[9], i322[9])≥NonInfC∧COND_NE16212(TRUE, i322[9], i322[9], i322[9], i322[9], i322[9], i322[9], i322[9], i322[9], i322[9], i322[9])≥JMP1257'(i322[9], i322[9], 0)∧(UIncreasing(JMP1257'(i322[9], i322[9], 0)), ≥))

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

(113)    (>(i322[8], 0)=TRUECOND_NE16212(TRUE, i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8])≥NonInfC∧COND_NE16212(TRUE, i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8])≥JMP1257'(i322[8], i322[8], 0)∧(UIncreasing(JMP1257'(i322[9], i322[9], 0)), ≥))

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

(114)    (i322[8] + [-1] ≥ 0 ⇒ (UIncreasing(JMP1257'(i322[9], i322[9], 0)), ≥)∧[(-1)bni_93 + (-1)Bound*bni_93] + [(-2)bni_93]i322[8] ≥ 0∧[(-1)bso_94] ≥ 0)

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

(115)    (i322[8] + [-1] ≥ 0 ⇒ (UIncreasing(JMP1257'(i322[9], i322[9], 0)), ≥)∧[(-1)bni_93 + (-1)Bound*bni_93] + [(-2)bni_93]i322[8] ≥ 0∧[(-1)bso_94] ≥ 0)

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

(116)    (i322[8] + [-1] ≥ 0 ⇒ (UIncreasing(JMP1257'(i322[9], i322[9], 0)), ≥)∧[(-1)bni_93 + (-1)Bound*bni_93] + [(-2)bni_93]i322[8] ≥ 0∧[(-1)bso_94] ≥ 0)

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

(117)    (i322[8] ≥ 0 ⇒ (UIncreasing(JMP1257'(i322[9], i322[9], 0)), ≥)∧[(-3)bni_93 + (-1)Bound*bni_93] + [(-2)bni_93]i322[8] ≥ 0∧[(-1)bso_94] ≥ 0)

• We consider the chain NE1621'(i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8]) → COND_NE16212(>(i322[8], 0), i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8]), COND_NE16212(TRUE, i322[9], i322[9], i322[9], i322[9], i322[9], i322[9], i322[9], i322[9], i322[9], i322[9]) → JMP1257'(i322[9], i322[9], 0), JMP1257'(i322[10], i322[10], i322[10]) → COND_JMP12572(>(i322[10], 0), i322[10], i322[10], i322[10]) which results in the following constraint:

(118)    (i322[8]=i322[9]>(i322[8], 0)=TRUEi322[9]=i322[10]0=i322[10]COND_NE16212(TRUE, i322[9], i322[9], i322[9], i322[9], i322[9], i322[9], i322[9], i322[9], i322[9], i322[9])≥NonInfC∧COND_NE16212(TRUE, i322[9], i322[9], i322[9], i322[9], i322[9], i322[9], i322[9], i322[9], i322[9], i322[9])≥JMP1257'(i322[9], i322[9], 0)∧(UIncreasing(JMP1257'(i322[9], i322[9], 0)), ≥))

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

For Pair JMP1257'(i322, i322, i322) → COND_JMP12572(>(i322, 0), i322, i322, i322) the following chains were created:
• We consider the chain JMP1257'(i322[10], i322[10], i322[10]) → COND_JMP12572(>(i322[10], 0), i322[10], i322[10], i322[10]), COND_JMP12572(TRUE, i322[11], i322[11], i322[11]) → JMP1257'(i322[11], i322[11], 0) which results in the following constraint:

(119)    (>(i322[10], 0)=TRUEi322[10]=i322[11]JMP1257'(i322[10], i322[10], i322[10])≥NonInfC∧JMP1257'(i322[10], i322[10], i322[10])≥COND_JMP12572(>(i322[10], 0), i322[10], i322[10], i322[10])∧(UIncreasing(COND_JMP12572(>(i322[10], 0), i322[10], i322[10], i322[10])), ≥))

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

(120)    (>(i322[10], 0)=TRUEJMP1257'(i322[10], i322[10], i322[10])≥NonInfC∧JMP1257'(i322[10], i322[10], i322[10])≥COND_JMP12572(>(i322[10], 0), i322[10], i322[10], i322[10])∧(UIncreasing(COND_JMP12572(>(i322[10], 0), i322[10], i322[10], i322[10])), ≥))

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

(121)    (i322[10] + [-1] ≥ 0 ⇒ (UIncreasing(COND_JMP12572(>(i322[10], 0), i322[10], i322[10], i322[10])), ≥)∧[(-1)bni_95 + (-1)Bound*bni_95] ≥ 0∧[(-1)bso_96] + i322[10] ≥ 0)

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

(122)    (i322[10] + [-1] ≥ 0 ⇒ (UIncreasing(COND_JMP12572(>(i322[10], 0), i322[10], i322[10], i322[10])), ≥)∧[(-1)bni_95 + (-1)Bound*bni_95] ≥ 0∧[(-1)bso_96] + i322[10] ≥ 0)

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

(123)    (i322[10] + [-1] ≥ 0 ⇒ (UIncreasing(COND_JMP12572(>(i322[10], 0), i322[10], i322[10], i322[10])), ≥)∧[(-1)bni_95 + (-1)Bound*bni_95] ≥ 0∧[(-1)bso_96] + i322[10] ≥ 0)

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

(124)    (i322[10] ≥ 0 ⇒ (UIncreasing(COND_JMP12572(>(i322[10], 0), i322[10], i322[10], i322[10])), ≥)∧[(-1)bni_95 + (-1)Bound*bni_95] ≥ 0∧[1 + (-1)bso_96] + i322[10] ≥ 0)

For Pair COND_JMP12572(TRUE, i322, i322, i322) → JMP1257'(i322, i322, 0) the following chains were created:
• We consider the chain JMP1257'(i322[10], i322[10], i322[10]) → COND_JMP12572(>(i322[10], 0), i322[10], i322[10], i322[10]), COND_JMP12572(TRUE, i322[11], i322[11], i322[11]) → JMP1257'(i322[11], i322[11], 0), JMP1257'(i42[2], i42[2], i42[2]) → COND_JMP1257(&&(>(i42[2], 0), !(=(i42[2], i42[2]))), i42[2], i42[2], i42[2]) which results in the following constraint:

(125)    (>(i322[10], 0)=TRUEi322[10]=i322[11]i322[11]=i42[2]0=i42[2]COND_JMP12572(TRUE, i322[11], i322[11], i322[11])≥NonInfC∧COND_JMP12572(TRUE, i322[11], i322[11], i322[11])≥JMP1257'(i322[11], i322[11], 0)∧(UIncreasing(JMP1257'(i322[11], i322[11], 0)), ≥))

We solved constraint (125) using rules (I), (II), (III), (IDP_CONSTANT_FOLD).
• We consider the chain JMP1257'(i322[10], i322[10], i322[10]) → COND_JMP12572(>(i322[10], 0), i322[10], i322[10], i322[10]), COND_JMP12572(TRUE, i322[11], i322[11], i322[11]) → JMP1257'(i322[11], i322[11], 0), JMP1257'(i42[6], i42[6], i322[6]) → COND_JMP12571(&&(&&(&&(<(i322[6], i42[6]), <=(i42[6], i322[6])), >(i42[6], 0)), !(=(i322[6], 0))), i42[6], i42[6], i322[6]) which results in the following constraint:

(126)    (>(i322[10], 0)=TRUEi322[10]=i322[11]i322[11]=i42[6]0=i322[6]COND_JMP12572(TRUE, i322[11], i322[11], i322[11])≥NonInfC∧COND_JMP12572(TRUE, i322[11], i322[11], i322[11])≥JMP1257'(i322[11], i322[11], 0)∧(UIncreasing(JMP1257'(i322[11], i322[11], 0)), ≥))

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

(127)    (>(i322[10], 0)=TRUECOND_JMP12572(TRUE, i322[10], i322[10], i322[10])≥NonInfC∧COND_JMP12572(TRUE, i322[10], i322[10], i322[10])≥JMP1257'(i322[10], i322[10], 0)∧(UIncreasing(JMP1257'(i322[11], i322[11], 0)), ≥))

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

(128)    (i322[10] + [-1] ≥ 0 ⇒ (UIncreasing(JMP1257'(i322[11], i322[11], 0)), ≥)∧[(-1)bni_97 + (-1)Bound*bni_97] + [(-1)bni_97]i322[10] ≥ 0∧[(-1)bso_98] + i322[10] ≥ 0)

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

(129)    (i322[10] + [-1] ≥ 0 ⇒ (UIncreasing(JMP1257'(i322[11], i322[11], 0)), ≥)∧[(-1)bni_97 + (-1)Bound*bni_97] + [(-1)bni_97]i322[10] ≥ 0∧[(-1)bso_98] + i322[10] ≥ 0)

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

(130)    (i322[10] + [-1] ≥ 0 ⇒ (UIncreasing(JMP1257'(i322[11], i322[11], 0)), ≥)∧[(-1)bni_97 + (-1)Bound*bni_97] + [(-1)bni_97]i322[10] ≥ 0∧[(-1)bso_98] + i322[10] ≥ 0)

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

(131)    (i322[10] ≥ 0 ⇒ (UIncreasing(JMP1257'(i322[11], i322[11], 0)), ≥)∧[(-2)bni_97 + (-1)Bound*bni_97] + [(-1)bni_97]i322[10] ≥ 0∧[1 + (-1)bso_98] + i322[10] ≥ 0)

• We consider the chain JMP1257'(i322[10], i322[10], i322[10]) → COND_JMP12572(>(i322[10], 0), i322[10], i322[10], i322[10]), COND_JMP12572(TRUE, i322[11], i322[11], i322[11]) → JMP1257'(i322[11], i322[11], 0), JMP1257'(i322[10], i322[10], i322[10]) → COND_JMP12572(>(i322[10], 0), i322[10], i322[10], i322[10]) which results in the following constraint:

(132)    (>(i322[10], 0)=TRUEi322[10]=i322[11]0=i322[10]1i322[11]=i322[10]1COND_JMP12572(TRUE, i322[11], i322[11], i322[11])≥NonInfC∧COND_JMP12572(TRUE, i322[11], i322[11], i322[11])≥JMP1257'(i322[11], i322[11], 0)∧(UIncreasing(JMP1257'(i322[11], i322[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.
• NE1621'(i42, i42, i42, i42, i42, i42, i42, i42, i42, i42) → COND_NE1621(&&(>(i42, 0), !(=(i42, i42))), i42, i42, i42, i42, i42, i42, i42, i42, i42, i42)

• COND_NE1621(TRUE, i42, i42, i42, i42, i42, i42, i42, i42, i42, i42) → NE1621'(i42, i42, i42, i42, i42, i42, i42, i42, i42, i42)
• ((UIncreasing(NE1621'(i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1])), ≥)∧0 = 0∧[(-1)bso_78] ≥ 0)
• ((UIncreasing(NE1621'(i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1])), ≥)∧0 = 0∧[(-1)bso_78] ≥ 0)
• ((UIncreasing(NE1621'(i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1])), ≥)∧0 = 0∧[(-1)bso_78] ≥ 0)

• JMP1257'(i42, i42, i42) → COND_JMP1257(&&(>(i42, 0), !(=(i42, i42))), i42, i42, i42)

• COND_JMP1257(TRUE, i42, i42, i42) → NE1621'(i42, i42, i42, i42, i42, i42, i42, i42, i42, i42)
• ((UIncreasing(NE1621'(i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3])), ≥)∧0 = 0∧[(-1)bso_82] ≥ 0)
• ((UIncreasing(NE1621'(i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3])), ≥)∧0 = 0∧[(-1)bso_82] ≥ 0)
• ((UIncreasing(NE1621'(i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3])), ≥)∧0 = 0∧[(-1)bso_82] ≥ 0)

• NE1621'(i42, i42, i322, i322, i42, i322, i42, i322, i42, i322) → COND_NE16211(&&(&&(<(i322, i42), <=(i42, i322)), >(i322, 0)), i42, i42, i322, i322, i42, i322, i42, i322, i42, i322)

• COND_NE16211(TRUE, i42, i42, i322, i322, i42, i322, i42, i322, i42, i322) → JMP1257'(i42, i42, i322)
• ((UIncreasing(JMP1257'(i42[5], i42[5], i322[5])), ≥)∧0 = 0∧[(-1)bso_86] ≥ 0)
• ((UIncreasing(JMP1257'(i42[5], i42[5], i322[5])), ≥)∧0 = 0∧0 = 0∧[(-1)bso_86] ≥ 0)
• ((UIncreasing(JMP1257'(i42[5], i42[5], i322[5])), ≥)∧0 = 0∧[(-1)bso_86] ≥ 0)

• JMP1257'(i42, i42, i322) → COND_JMP12571(&&(&&(&&(<(i322, i42), <=(i42, i322)), >(i42, 0)), !(=(i322, 0))), i42, i42, i322)

• COND_JMP12571(TRUE, i42, i42, i322) → JMP1257'(i42, i42, i322)
• ((UIncreasing(JMP1257'(i42[7], i42[7], i322[7])), ≥)∧0 = 0∧[(-1)bso_90] ≥ 0)
• ((UIncreasing(JMP1257'(i42[7], i42[7], i322[7])), ≥)∧0 = 0∧0 = 0∧[(-1)bso_90] ≥ 0)
• ((UIncreasing(JMP1257'(i42[7], i42[7], i322[7])), ≥)∧0 = 0∧[(-1)bso_90] ≥ 0)

• NE1621'(i322, i322, i322, i322, i322, i322, i322, i322, i322, i322) → COND_NE16212(>(i322, 0), i322, i322, i322, i322, i322, i322, i322, i322, i322, i322)
• (i322[8] ≥ 0 ⇒ (UIncreasing(COND_NE16212(>(i322[8], 0), i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8])), ≥)∧[(-1)Bound*bni_91] + [(-2)bni_91]i322[8] ≥ 0∧[3 + (-1)bso_92] ≥ 0)

• COND_NE16212(TRUE, i322, i322, i322, i322, i322, i322, i322, i322, i322, i322) → JMP1257'(i322, i322, 0)
• (i322[8] ≥ 0 ⇒ (UIncreasing(JMP1257'(i322[9], i322[9], 0)), ≥)∧[(-3)bni_93 + (-1)Bound*bni_93] + [(-2)bni_93]i322[8] ≥ 0∧[(-1)bso_94] ≥ 0)

• JMP1257'(i322, i322, i322) → COND_JMP12572(>(i322, 0), i322, i322, i322)
• (i322[10] ≥ 0 ⇒ (UIncreasing(COND_JMP12572(>(i322[10], 0), i322[10], i322[10], i322[10])), ≥)∧[(-1)bni_95 + (-1)Bound*bni_95] ≥ 0∧[1 + (-1)bso_96] + i322[10] ≥ 0)

• COND_JMP12572(TRUE, i322, i322, i322) → JMP1257'(i322, i322, 0)
• (i322[10] ≥ 0 ⇒ (UIncreasing(JMP1257'(i322[11], i322[11], 0)), ≥)∧[(-2)bni_97 + (-1)Bound*bni_97] + [(-1)bni_97]i322[10] ≥ 0∧[1 + (-1)bso_98] + i322[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(NE1621'(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_NE1621(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(JMP1257'(x1, x2, x3)) = [-1] + [2]x3 + [-1]x2 + [-1]x1
POL(COND_JMP1257(x1, x2, x3, x4)) = [2] + [-1]x3 + [-1]x2
POL(COND_NE16211(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_JMP12571(x1, x2, x3, x4)) = [-1] + [2]x4 + [-1]x3 + [-1]x2
POL(COND_NE16212(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_JMP12572(x1, x2, x3, x4)) = [-1] + [-1]x4 + [-1]x3 + x2

The following pairs are in P>:

NE1621'(i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0]) → COND_NE1621(&&(>(i42[0], 0), !(=(i42[0], i42[0]))), i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0])
JMP1257'(i42[2], i42[2], i42[2]) → COND_JMP1257(&&(>(i42[2], 0), !(=(i42[2], i42[2]))), i42[2], i42[2], i42[2])
NE1621'(i42[4], i42[4], i322[4], i322[4], i42[4], i322[4], i42[4], i322[4], i42[4], i322[4]) → COND_NE16211(&&(&&(<(i322[4], i42[4]), <=(i42[4], i322[4])), >(i322[4], 0)), i42[4], i42[4], i322[4], i322[4], i42[4], i322[4], i42[4], i322[4], i42[4], i322[4])
JMP1257'(i42[6], i42[6], i322[6]) → COND_JMP12571(&&(&&(&&(<(i322[6], i42[6]), <=(i42[6], i322[6])), >(i42[6], 0)), !(=(i322[6], 0))), i42[6], i42[6], i322[6])
NE1621'(i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8]) → COND_NE16212(>(i322[8], 0), i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8])
JMP1257'(i322[10], i322[10], i322[10]) → COND_JMP12572(>(i322[10], 0), i322[10], i322[10], i322[10])
COND_JMP12572(TRUE, i322[11], i322[11], i322[11]) → JMP1257'(i322[11], i322[11], 0)

The following pairs are in Pbound:

NE1621'(i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0]) → COND_NE1621(&&(>(i42[0], 0), !(=(i42[0], i42[0]))), i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0], i42[0])
JMP1257'(i42[2], i42[2], i42[2]) → COND_JMP1257(&&(>(i42[2], 0), !(=(i42[2], i42[2]))), i42[2], i42[2], i42[2])
NE1621'(i42[4], i42[4], i322[4], i322[4], i42[4], i322[4], i42[4], i322[4], i42[4], i322[4]) → COND_NE16211(&&(&&(<(i322[4], i42[4]), <=(i42[4], i322[4])), >(i322[4], 0)), i42[4], i42[4], i322[4], i322[4], i42[4], i322[4], i42[4], i322[4], i42[4], i322[4])
JMP1257'(i42[6], i42[6], i322[6]) → COND_JMP12571(&&(&&(&&(<(i322[6], i42[6]), <=(i42[6], i322[6])), >(i42[6], 0)), !(=(i322[6], 0))), i42[6], i42[6], i322[6])
JMP1257'(i322[10], i322[10], i322[10]) → COND_JMP12572(>(i322[10], 0), i322[10], i322[10], i322[10])

The following pairs are in P:

COND_NE1621(TRUE, i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1]) → NE1621'(i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1])
COND_JMP1257(TRUE, i42[3], i42[3], i42[3]) → NE1621'(i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3])
COND_NE16211(TRUE, i42[5], i42[5], i322[5], i322[5], i42[5], i322[5], i42[5], i322[5], i42[5], i322[5]) → JMP1257'(i42[5], i42[5], i322[5])
COND_JMP12571(TRUE, i42[7], i42[7], i322[7]) → JMP1257'(i42[7], i42[7], i322[7])
COND_NE16212(TRUE, i322[9], i322[9], i322[9], i322[9], i322[9], i322[9], i322[9], i322[9], i322[9], i322[9]) → JMP1257'(i322[9], i322[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_NE1621(TRUE, i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1]) → NE1621'(i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1])
(3): COND_JMP1257(TRUE, i42[3], i42[3], i42[3]) → NE1621'(i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3])
(5): COND_NE16211(TRUE, i42[5], i42[5], i322[5], i322[5], i42[5], i322[5], i42[5], i322[5], i42[5], i322[5]) → JMP1257'(i42[5], i42[5], i322[5])
(7): COND_JMP12571(TRUE, i42[7], i42[7], i322[7]) → JMP1257'(i42[7], i42[7], i322[7])
(9): COND_NE16212(TRUE, i322[9], i322[9], i322[9], i322[9], i322[9], i322[9], i322[9], i322[9], i322[9], i322[9]) → JMP1257'(i322[9], i322[9], 0)

The set Q consists of the following terms:
Cond_NE1621(TRUE, x0, x0, x0, x0, x0, x0, x0, x0, x0, x0)
Cond_JMP1257(TRUE, x0, x0, x0)
NE1621(x0, x0, x1, x1, x0, x1, x0, x1, x0, x1)
Cond_NE16211(TRUE, x0, x0, x1, x1, x0, x1, x0, x1, x0, x1)
JMP1257(x0, x0, x1)
Cond_JMP12571(TRUE, x0, x0, x1)
Cond_NE16212(TRUE, x0, x0, x0, x0, x0, x0, x0, x0, x0, x0)
Cond_JMP12572(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_NE1621(TRUE, i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1]) → NE1621'(i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1], i42[1])
(3): COND_JMP1257(TRUE, i42[3], i42[3], i42[3]) → NE1621'(i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3], i42[3])
(5): COND_NE16211(TRUE, i42[5], i42[5], i322[5], i322[5], i42[5], i322[5], i42[5], i322[5], i42[5], i322[5]) → JMP1257'(i42[5], i42[5], i322[5])
(7): COND_JMP12571(TRUE, i42[7], i42[7], i322[7]) → JMP1257'(i42[7], i42[7], i322[7])
(8): NE1621'(i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8]) → COND_NE16212(i322[8] > 0, i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8], i322[8])
(9): COND_NE16212(TRUE, i322[9], i322[9], i322[9], i322[9], i322[9], i322[9], i322[9], i322[9], i322[9], i322[9]) → JMP1257'(i322[9], i322[9], 0)
(11): COND_JMP12572(TRUE, i322[11], i322[11], i322[11]) → JMP1257'(i322[11], i322[11], 0)

(1) -> (8), if ((i42[1]* i322[8]))

(3) -> (8), if ((i42[3]* i322[8]))

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

The set Q consists of the following terms:
Cond_NE1621(TRUE, x0, x0, x0, x0, x0, x0, x0, x0, x0, x0)
Cond_JMP1257(TRUE, x0, x0, x0)
NE1621(x0, x0, x1, x1, x0, x1, x0, x1, x0, x1)
Cond_NE16211(TRUE, x0, x0, x1, x1, x0, x1, x0, x1, x0, x1)
JMP1257(x0, x0, x1)
Cond_JMP12571(TRUE, x0, x0, x1)
Cond_NE16212(TRUE, x0, x0, x0, x0, x0, x0, x0, x0, x0, x0)
Cond_JMP12572(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:
JMP1078(i42, i42, i42, i42, i88, i42) → Cond_JMP1078(i42 > 0 && i88 > i42, i42, i42, i42, i42, i88, i42)
Cond_JMP1078(TRUE, i42, i42, i42, i42, i88, i42) → JMP1078(i42, i42, i42, i42, i88 - i42, i42)
The set Q consists of the following terms:
JMP1078(x0, x0, x0, x0, x1, x0)
Cond_JMP1078(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:
JMP1078(i42, i42, i42, i42, i88, i42) → Cond_JMP1078(i42 > 0 && i88 > i42, i42, i42, i42, i42, i88, i42)
Cond_JMP1078(TRUE, i42, i42, i42, i42, i88, i42) → JMP1078(i42, i42, i42, i42, i88 - i42, i42)

The integer pair graph contains the following rules and edges:
(0): JMP1078'(i42[0], i42[0], i42[0], i42[0], i88[0], i42[0]) → COND_JMP1078(i42[0] > 0 && i88[0] > i42[0], i42[0], i42[0], i42[0], i42[0], i88[0], i42[0])
(1): COND_JMP1078(TRUE, i42[1], i42[1], i42[1], i42[1], i88[1], i42[1]) → JMP1078'(i42[1], i42[1], i42[1], i42[1], i88[1] - i42[1], i42[1])

(0) -> (1), if ((i88[0]* i88[1])∧(i42[0]* i42[1])∧(i42[0] > 0 && i88[0] > i42[0]* TRUE))

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

The set Q consists of the following terms:
JMP1078(x0, x0, x0, x0, x1, x0)
Cond_JMP1078(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): JMP1078'(i42[0], i42[0], i42[0], i42[0], i88[0], i42[0]) → COND_JMP1078(i42[0] > 0 && i88[0] > i42[0], i42[0], i42[0], i42[0], i42[0], i88[0], i42[0])
(1): COND_JMP1078(TRUE, i42[1], i42[1], i42[1], i42[1], i88[1], i42[1]) → JMP1078'(i42[1], i42[1], i42[1], i42[1], i88[1] - i42[1], i42[1])

(0) -> (1), if ((i88[0]* i88[1])∧(i42[0]* i42[1])∧(i42[0] > 0 && i88[0] > i42[0]* TRUE))

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

The set Q consists of the following terms:
JMP1078(x0, x0, x0, x0, x1, x0)
Cond_JMP1078(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 JMP1078'(i42, i42, i42, i42, i88, i42) → COND_JMP1078(&&(>(i42, 0), >(i88, i42)), i42, i42, i42, i42, i88, i42) the following chains were created:
• We consider the chain JMP1078'(i42[0], i42[0], i42[0], i42[0], i88[0], i42[0]) → COND_JMP1078(&&(>(i42[0], 0), >(i88[0], i42[0])), i42[0], i42[0], i42[0], i42[0], i88[0], i42[0]), COND_JMP1078(TRUE, i42[1], i42[1], i42[1], i42[1], i88[1], i42[1]) → JMP1078'(i42[1], i42[1], i42[1], i42[1], -(i88[1], i42[1]), i42[1]) which results in the following constraint:

(1)    (i88[0]=i88[1]i42[0]=i42[1]&&(>(i42[0], 0), >(i88[0], i42[0]))=TRUEJMP1078'(i42[0], i42[0], i42[0], i42[0], i88[0], i42[0])≥NonInfC∧JMP1078'(i42[0], i42[0], i42[0], i42[0], i88[0], i42[0])≥COND_JMP1078(&&(>(i42[0], 0), >(i88[0], i42[0])), i42[0], i42[0], i42[0], i42[0], i88[0], i42[0])∧(UIncreasing(COND_JMP1078(&&(>(i42[0], 0), >(i88[0], i42[0])), i42[0], i42[0], i42[0], i42[0], i88[0], i42[0])), ≥))

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

(2)    (>(i42[0], 0)=TRUE>(i88[0], i42[0])=TRUEJMP1078'(i42[0], i42[0], i42[0], i42[0], i88[0], i42[0])≥NonInfC∧JMP1078'(i42[0], i42[0], i42[0], i42[0], i88[0], i42[0])≥COND_JMP1078(&&(>(i42[0], 0), >(i88[0], i42[0])), i42[0], i42[0], i42[0], i42[0], i88[0], i42[0])∧(UIncreasing(COND_JMP1078(&&(>(i42[0], 0), >(i88[0], i42[0])), i42[0], i42[0], i42[0], i42[0], i88[0], i42[0])), ≥))

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

(3)    (i42[0] + [-1] ≥ 0∧i88[0] + [-1] + [-1]i42[0] ≥ 0 ⇒ (UIncreasing(COND_JMP1078(&&(>(i42[0], 0), >(i88[0], i42[0])), i42[0], i42[0], i42[0], i42[0], i88[0], i42[0])), ≥)∧[(-1)bni_20 + (-1)Bound*bni_20] + [(-2)bni_20]i42[0] + [bni_20]i88[0] ≥ 0∧[(-1)bso_21] ≥ 0)

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

(4)    (i42[0] + [-1] ≥ 0∧i88[0] + [-1] + [-1]i42[0] ≥ 0 ⇒ (UIncreasing(COND_JMP1078(&&(>(i42[0], 0), >(i88[0], i42[0])), i42[0], i42[0], i42[0], i42[0], i88[0], i42[0])), ≥)∧[(-1)bni_20 + (-1)Bound*bni_20] + [(-2)bni_20]i42[0] + [bni_20]i88[0] ≥ 0∧[(-1)bso_21] ≥ 0)

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

(5)    (i42[0] + [-1] ≥ 0∧i88[0] + [-1] + [-1]i42[0] ≥ 0 ⇒ (UIncreasing(COND_JMP1078(&&(>(i42[0], 0), >(i88[0], i42[0])), i42[0], i42[0], i42[0], i42[0], i88[0], i42[0])), ≥)∧[(-1)bni_20 + (-1)Bound*bni_20] + [(-2)bni_20]i42[0] + [bni_20]i88[0] ≥ 0∧[(-1)bso_21] ≥ 0)

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

(6)    (i42[0] ≥ 0∧i88[0] + [-2] + [-1]i42[0] ≥ 0 ⇒ (UIncreasing(COND_JMP1078(&&(>(i42[0], 0), >(i88[0], i42[0])), i42[0], i42[0], i42[0], i42[0], i88[0], i42[0])), ≥)∧[(-3)bni_20 + (-1)Bound*bni_20] + [(-2)bni_20]i42[0] + [bni_20]i88[0] ≥ 0∧[(-1)bso_21] ≥ 0)

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

(7)    (i42[0] ≥ 0∧i88[0] ≥ 0 ⇒ (UIncreasing(COND_JMP1078(&&(>(i42[0], 0), >(i88[0], i42[0])), i42[0], i42[0], i42[0], i42[0], i88[0], i42[0])), ≥)∧[(-1)bni_20 + (-1)Bound*bni_20] + [(-1)bni_20]i42[0] + [bni_20]i88[0] ≥ 0∧[(-1)bso_21] ≥ 0)

For Pair COND_JMP1078(TRUE, i42, i42, i42, i42, i88, i42) → JMP1078'(i42, i42, i42, i42, -(i88, i42), i42) the following chains were created:
• We consider the chain JMP1078'(i42[0], i42[0], i42[0], i42[0], i88[0], i42[0]) → COND_JMP1078(&&(>(i42[0], 0), >(i88[0], i42[0])), i42[0], i42[0], i42[0], i42[0], i88[0], i42[0]), COND_JMP1078(TRUE, i42[1], i42[1], i42[1], i42[1], i88[1], i42[1]) → JMP1078'(i42[1], i42[1], i42[1], i42[1], -(i88[1], i42[1]), i42[1]), JMP1078'(i42[0], i42[0], i42[0], i42[0], i88[0], i42[0]) → COND_JMP1078(&&(>(i42[0], 0), >(i88[0], i42[0])), i42[0], i42[0], i42[0], i42[0], i88[0], i42[0]), COND_JMP1078(TRUE, i42[1], i42[1], i42[1], i42[1], i88[1], i42[1]) → JMP1078'(i42[1], i42[1], i42[1], i42[1], -(i88[1], i42[1]), i42[1]), JMP1078'(i42[0], i42[0], i42[0], i42[0], i88[0], i42[0]) → COND_JMP1078(&&(>(i42[0], 0), >(i88[0], i42[0])), i42[0], i42[0], i42[0], i42[0], i88[0], i42[0]), COND_JMP1078(TRUE, i42[1], i42[1], i42[1], i42[1], i88[1], i42[1]) → JMP1078'(i42[1], i42[1], i42[1], i42[1], -(i88[1], i42[1]), i42[1]) which results in the following constraint:

(8)    (i88[0]=i88[1]i42[0]=i42[1]&&(>(i42[0], 0), >(i88[0], i42[0]))=TRUEi42[1]=i42[0]1-(i88[1], i42[1])=i88[0]1i88[0]1=i88[1]1i42[0]1=i42[1]1&&(>(i42[0]1, 0), >(i88[0]1, i42[0]1))=TRUEi42[1]1=i42[0]2-(i88[1]1, i42[1]1)=i88[0]2i88[0]2=i88[1]2i42[0]2=i42[1]2&&(>(i42[0]2, 0), >(i88[0]2, i42[0]2))=TRUECOND_JMP1078(TRUE, i42[1]1, i42[1]1, i42[1]1, i42[1]1, i88[1]1, i42[1]1)≥NonInfC∧COND_JMP1078(TRUE, i42[1]1, i42[1]1, i42[1]1, i42[1]1, i88[1]1, i42[1]1)≥JMP1078'(i42[1]1, i42[1]1, i42[1]1, i42[1]1, -(i88[1]1, i42[1]1), i42[1]1)∧(UIncreasing(JMP1078'(i42[1]1, i42[1]1, i42[1]1, i42[1]1, -(i88[1]1, i42[1]1), i42[1]1)), ≥))

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

(9)    (>(i42[0], 0)=TRUE>(i88[0], i42[0])=TRUE>(-(i88[0], i42[0]), i42[0])=TRUE>(-(-(i88[0], i42[0]), i42[0]), i42[0])=TRUECOND_JMP1078(TRUE, i42[0], i42[0], i42[0], i42[0], -(i88[0], i42[0]), i42[0])≥NonInfC∧COND_JMP1078(TRUE, i42[0], i42[0], i42[0], i42[0], -(i88[0], i42[0]), i42[0])≥JMP1078'(i42[0], i42[0], i42[0], i42[0], -(-(i88[0], i42[0]), i42[0]), i42[0])∧(UIncreasing(JMP1078'(i42[1]1, i42[1]1, i42[1]1, i42[1]1, -(i88[1]1, i42[1]1), i42[1]1)), ≥))

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

(10)    (i42[0] + [-1] ≥ 0∧i88[0] + [-1] + [-1]i42[0] ≥ 0∧i88[0] + [-1] + [-2]i42[0] ≥ 0∧i88[0] + [-1] + [-3]i42[0] ≥ 0 ⇒ (UIncreasing(JMP1078'(i42[1]1, i42[1]1, i42[1]1, i42[1]1, -(i88[1]1, i42[1]1), i42[1]1)), ≥)∧[(-1)bni_22 + (-1)Bound*bni_22] + [(-3)bni_22]i42[0] + [bni_22]i88[0] ≥ 0∧[(-1)bso_23] + i42[0] ≥ 0)

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

(11)    (i42[0] + [-1] ≥ 0∧i88[0] + [-1] + [-1]i42[0] ≥ 0∧i88[0] + [-1] + [-2]i42[0] ≥ 0∧i88[0] + [-1] + [-3]i42[0] ≥ 0 ⇒ (UIncreasing(JMP1078'(i42[1]1, i42[1]1, i42[1]1, i42[1]1, -(i88[1]1, i42[1]1), i42[1]1)), ≥)∧[(-1)bni_22 + (-1)Bound*bni_22] + [(-3)bni_22]i42[0] + [bni_22]i88[0] ≥ 0∧[(-1)bso_23] + i42[0] ≥ 0)

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

(12)    (i42[0] + [-1] ≥ 0∧i88[0] + [-1] + [-1]i42[0] ≥ 0∧i88[0] + [-1] + [-2]i42[0] ≥ 0∧i88[0] + [-1] + [-3]i42[0] ≥ 0 ⇒ (UIncreasing(JMP1078'(i42[1]1, i42[1]1, i42[1]1, i42[1]1, -(i88[1]1, i42[1]1), i42[1]1)), ≥)∧[(-1)bni_22 + (-1)Bound*bni_22] + [(-3)bni_22]i42[0] + [bni_22]i88[0] ≥ 0∧[(-1)bso_23] + i42[0] ≥ 0)

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

(13)    (i42[0] ≥ 0∧i88[0] + [-2] + [-1]i42[0] ≥ 0∧i88[0] + [-3] + [-2]i42[0] ≥ 0∧i88[0] + [-4] + [-3]i42[0] ≥ 0 ⇒ (UIncreasing(JMP1078'(i42[1]1, i42[1]1, i42[1]1, i42[1]1, -(i88[1]1, i42[1]1), i42[1]1)), ≥)∧[(-4)bni_22 + (-1)Bound*bni_22] + [(-3)bni_22]i42[0] + [bni_22]i88[0] ≥ 0∧[1 + (-1)bso_23] + i42[0] ≥ 0)

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

(14)    (i42[0] ≥ 0∧i88[0] ≥ 0∧[-1] + [-1]i42[0] + i88[0] ≥ 0∧[-2] + [-2]i42[0] + i88[0] ≥ 0 ⇒ (UIncreasing(JMP1078'(i42[1]1, i42[1]1, i42[1]1, i42[1]1, -(i88[1]1, i42[1]1), i42[1]1)), ≥)∧[(-2)bni_22 + (-1)Bound*bni_22] + [(-2)bni_22]i42[0] + [bni_22]i88[0] ≥ 0∧[1 + (-1)bso_23] + i42[0] ≥ 0)

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

(15)    (i42[0] ≥ 0∧[1] + i42[0] + i88[0] ≥ 0∧i88[0] ≥ 0∧[-1] + [-1]i42[0] + i88[0] ≥ 0 ⇒ (UIncreasing(JMP1078'(i42[1]1, i42[1]1, i42[1]1, i42[1]1, -(i88[1]1, i42[1]1), i42[1]1)), ≥)∧[(-1)bni_22 + (-1)Bound*bni_22] + [(-1)bni_22]i42[0] + [bni_22]i88[0] ≥ 0∧[1 + (-1)bso_23] + i42[0] ≥ 0)

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

(16)    (i42[0] ≥ 0∧[2] + [2]i42[0] + i88[0] ≥ 0∧[1] + i42[0] + i88[0] ≥ 0∧i88[0] ≥ 0 ⇒ (UIncreasing(JMP1078'(i42[1]1, i42[1]1, i42[1]1, i42[1]1, -(i88[1]1, i42[1]1), i42[1]1)), ≥)∧[(-1)Bound*bni_22] + [bni_22]i88[0] ≥ 0∧[1 + (-1)bso_23] + i42[0] ≥ 0)

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

• COND_JMP1078(TRUE, i42, i42, i42, i42, i88, i42) → JMP1078'(i42, i42, i42, i42, -(i88, i42), i42)
• (i42[0] ≥ 0∧[2] + [2]i42[0] + i88[0] ≥ 0∧[1] + i42[0] + i88[0] ≥ 0∧i88[0] ≥ 0 ⇒ (UIncreasing(JMP1078'(i42[1]1, i42[1]1, i42[1]1, i42[1]1, -(i88[1]1, i42[1]1), i42[1]1)), ≥)∧[(-1)Bound*bni_22] + [bni_22]i88[0] ≥ 0∧[1 + (-1)bso_23] + i42[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) = [3]
POL(JMP1078'(x1, x2, x3, x4, x5, x6)) = [-1] + x6 + x5 + [-1]x4 + [-1]x3 + [-1]x2
POL(COND_JMP1078(x1, x2, x3, x4, x5, x6, x7)) = [-1] + x6 + [-1]x4 + [-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_JMP1078(TRUE, i42[1], i42[1], i42[1], i42[1], i88[1], i42[1]) → JMP1078'(i42[1], i42[1], i42[1], i42[1], -(i88[1], i42[1]), i42[1])

The following pairs are in Pbound:

COND_JMP1078(TRUE, i42[1], i42[1], i42[1], i42[1], i88[1], i42[1]) → JMP1078'(i42[1], i42[1], i42[1], i42[1], -(i88[1], i42[1]), i42[1])

The following pairs are in P:

JMP1078'(i42[0], i42[0], i42[0], i42[0], i88[0], i42[0]) → COND_JMP1078(&&(>(i42[0], 0), >(i88[0], i42[0])), i42[0], i42[0], i42[0], i42[0], i88[0], i42[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

### (102) 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): JMP1078'(i42[0], i42[0], i42[0], i42[0], i88[0], i42[0]) → COND_JMP1078(i42[0] > 0 && i88[0] > i42[0], i42[0], i42[0], i42[0], i42[0], i88[0], i42[0])

The set Q consists of the following terms:
JMP1078(x0, x0, x0, x0, x1, x0)
Cond_JMP1078(TRUE, x0, x0, x0, x0, x1, x0)

### (103) IDependencyGraphProof (EQUIVALENT transformation)

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

### (105) 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:
NE884(i40, i40, i40, i40, i40, i40, i40, i40, i40, i40, i40) → Cond_NE884(i40 > 0 && !(i40 = i40), i40, i40, i40, i40, i40, i40, i40, i40, i40, i40, i40)
Cond_NE884(TRUE, i40, i40, i40, i40, i40, i40, i40, i40, i40, i40, i40) → NE884(i40, i40, i40, i40, i40, i40, i40, i40, i40, i40, i40)
Load683(i40, i40, i40, i40) → Cond_Load683(i40 > 0 && !(i40 = i40), i40, i40, i40, i40)
Cond_Load683(TRUE, i40, i40, i40, i40) → NE884(i40, i40, i40, i40, i40, i40, i40, i40, i40, i40, i40)
NE884(i40, i42, i40, i42, i42, i40, i42, i40, i42, i40, i42) → Cond_NE8841(i42 < i40 && i40 <= i42 && i42 > 0, i40, i42, i40, i42, i42, i40, i42, i40, i42, i40, i42)
Cond_NE8841(TRUE, i40, i42, i40, i42, i42, i40, i42, i40, i42, i40, i42) → Load683(i40, i42, i40, i42)
Load683(i40, i42, i40, i42) → Cond_Load6831(i42 < i40 && i40 <= i42 && i40 > 0 && !(i42 = 0), i40, i42, i40, i42)
The set Q consists of the following terms:
Cond_NE884(TRUE, x0, x0, x0, x0, x0, x0, x0, x0, x0, x0, x0)
NE884(x0, x1, x0, x1, x1, x0, x1, x0, x1, x0, x1)
Cond_NE8841(TRUE, x0, x1, x0, x1, x1, x0, x1, x0, x1, x0, x1)

### (107) 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:
NE884(i40, i40, i40, i40, i40, i40, i40, i40, i40, i40, i40) → Cond_NE884(i40 > 0 && !(i40 = i40), i40, i40, i40, i40, i40, i40, i40, i40, i40, i40, i40)
Cond_NE884(TRUE, i40, i40, i40, i40, i40, i40, i40, i40, i40, i40, i40) → NE884(i40, i40, i40, i40, i40, i40, i40, i40, i40, i40, i40)
Load683(i40, i40, i40, i40) → Cond_Load683(i40 > 0 && !(i40 = i40), i40, i40, i40, i40)
Cond_Load683(TRUE, i40, i40, i40, i40) → NE884(i40, i40, i40, i40, i40, i40, i40, i40, i40, i40, i40)
NE884(i40, i42, i40, i42, i42, i40, i42, i40, i42, i40, i42) → Cond_NE8841(i42 < i40 && i40 <= i42 && i42 > 0, i40, i42, i40, i42, i42, i40, i42, i40, i42, i40, i42)
Cond_NE8841(TRUE, i40, i42, i40, i42, i42, i40, i42, i40, i42, i40, i42) → Load683(i40, i42, i40, i42)
Load683(i40, i42, i40, i42) → Cond_Load6831(i42 < i40 && i40 <= i42 && i40 > 0 && !(i42 = 0), i40, i42, i40, i42)

The integer pair graph contains the following rules and edges:
(0): NE884'(i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0]) → COND_NE884(i40[0] > 0 && !(i40[0] = i40[0]), i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0])
(1): COND_NE884(TRUE, i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1]) → NE884'(i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1])
(2): LOAD683(i40[2], i40[2], i40[2], i40[2]) → COND_LOAD683(i40[2] > 0 && !(i40[2] = i40[2]), i40[2], i40[2], i40[2], i40[2])
(3): COND_LOAD683(TRUE, i40[3], i40[3], i40[3], i40[3]) → NE884'(i40[3], i40[3], i40[3], i40[3], i40[3], i40[3], i40[3], i40[3], i40[3], i40[3], i40[3])
(4): NE884'(i40[4], i42[4], i40[4], i42[4], i42[4], i40[4], i42[4], i40[4], i42[4], i40[4], i42[4]) → COND_NE8841(i42[4] < i40[4] && i40[4] <= i42[4] && i42[4] > 0, i40[4], i42[4], i40[4], i42[4], i42[4], i40[4], i42[4], i40[4], i42[4], i40[4], i42[4])
(5): COND_NE8841(TRUE, i40[5], i42[5], i40[5], i42[5], i42[5], i40[5], i42[5], i40[5], i42[5], i40[5], i42[5]) → LOAD683(i40[5], i42[5], i40[5], i42[5])
(6): LOAD683(i40[6], i42[6], i40[6], i42[6]) → COND_LOAD6831(i42[6] < i40[6] && i40[6] <= i42[6] && i40[6] > 0 && !(i42[6] = 0), i40[6], i42[6], i40[6], i42[6])

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

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

(1) -> (4), if ((i40[1]* i40[4])∧(i40[1]* i42[4]))

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

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

(3) -> (4), if ((i40[3]* i40[4])∧(i40[3]* i42[4]))

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

(5) -> (2), if ((i40[5]* i40[2])∧(i42[5]* i40[2]))

(5) -> (6), if ((i42[5]* i42[6])∧(i40[5]* i40[6]))

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

(7) -> (2), if ((i40[7]* i40[2])∧(i42[7]* i40[2]))

(7) -> (6), if ((i40[7]* i40[6])∧(i42[7]* i42[6]))

The set Q consists of the following terms:
Cond_NE884(TRUE, x0, x0, x0, x0, x0, x0, x0, x0, x0, x0, x0)
NE884(x0, x1, x0, x1, x1, x0, x1, x0, x1, x0, x1)
Cond_NE8841(TRUE, x0, x1, x0, x1, x1, x0, x1, x0, x1, x0, x1)

### (108) 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.

### (109) 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): NE884'(i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0]) → COND_NE884(i40[0] > 0 && !(i40[0] = i40[0]), i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0])
(1): COND_NE884(TRUE, i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1]) → NE884'(i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1])
(2): LOAD683(i40[2], i40[2], i40[2], i40[2]) → COND_LOAD683(i40[2] > 0 && !(i40[2] = i40[2]), i40[2], i40[2], i40[2], i40[2])
(3): COND_LOAD683(TRUE, i40[3], i40[3], i40[3], i40[3]) → NE884'(i40[3], i40[3], i40[3], i40[3], i40[3], i40[3], i40[3], i40[3], i40[3], i40[3], i40[3])
(4): NE884'(i40[4], i42[4], i40[4], i42[4], i42[4], i40[4], i42[4], i40[4], i42[4], i40[4], i42[4]) → COND_NE8841(i42[4] < i40[4] && i40[4] <= i42[4] && i42[4] > 0, i40[4], i42[4], i40[4], i42[4], i42[4], i40[4], i42[4], i40[4], i42[4], i40[4], i42[4])
(5): COND_NE8841(TRUE, i40[5], i42[5], i40[5], i42[5], i42[5], i40[5], i42[5], i40[5], i42[5], i40[5], i42[5]) → LOAD683(i40[5], i42[5], i40[5], i42[5])
(6): LOAD683(i40[6], i42[6], i40[6], i42[6]) → COND_LOAD6831(i42[6] < i40[6] && i40[6] <= i42[6] && i40[6] > 0 && !(i42[6] = 0), i40[6], i42[6], i40[6], i42[6])

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

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

(1) -> (4), if ((i40[1]* i40[4])∧(i40[1]* i42[4]))

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

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

(3) -> (4), if ((i40[3]* i40[4])∧(i40[3]* i42[4]))

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

(5) -> (2), if ((i40[5]* i40[2])∧(i42[5]* i40[2]))

(5) -> (6), if ((i42[5]* i42[6])∧(i40[5]* i40[6]))

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

(7) -> (2), if ((i40[7]* i40[2])∧(i42[7]* i40[2]))

(7) -> (6), if ((i40[7]* i40[6])∧(i42[7]* i42[6]))

The set Q consists of the following terms:
Cond_NE884(TRUE, x0, x0, x0, x0, x0, x0, x0, x0, x0, x0, x0)
NE884(x0, x1, x0, x1, x1, x0, x1, x0, x1, x0, x1)
Cond_NE8841(TRUE, x0, x1, x0, x1, x1, x0, x1, x0, x1, x0, x1)

### (110) 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 NE884'(i40, i40, i40, i40, i40, i40, i40, i40, i40, i40, i40) → COND_NE884(&&(>(i40, 0), !(=(i40, i40))), i40, i40, i40, i40, i40, i40, i40, i40, i40, i40, i40) the following chains were created:
• We consider the chain COND_NE884(TRUE, i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1]) → NE884'(i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1]), NE884'(i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0]) → COND_NE884(&&(>(i40[0], 0), !(=(i40[0], i40[0]))), i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0]), COND_NE884(TRUE, i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1]) → NE884'(i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1]) which results in the following constraint:

(1)    (i40[1]=i40[0]&&(>(i40[0], 0), !(=(i40[0], i40[0])))=TRUEi40[0]=i40[1]1NE884'(i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0])≥NonInfC∧NE884'(i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0])≥COND_NE884(&&(>(i40[0], 0), !(=(i40[0], i40[0]))), i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0])∧(UIncreasing(COND_NE884(&&(>(i40[0], 0), !(=(i40[0], i40[0]))), i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0])), ≥))

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

(2)    (>(i40[0], 0)=TRUE<(i40[0], i40[0])=TRUENE884'(i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0])≥NonInfC∧NE884'(i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0])≥COND_NE884(&&(>(i40[0], 0), !(=(i40[0], i40[0]))), i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0])∧(UIncreasing(COND_NE884(&&(>(i40[0], 0), !(=(i40[0], i40[0]))), i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0])), ≥))

(3)    (>(i40[0], 0)=TRUE>(i40[0], i40[0])=TRUENE884'(i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0])≥NonInfC∧NE884'(i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0])≥COND_NE884(&&(>(i40[0], 0), !(=(i40[0], i40[0]))), i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0])∧(UIncreasing(COND_NE884(&&(>(i40[0], 0), !(=(i40[0], i40[0]))), i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0])), ≥))

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

(4)    (i40[0] + [-1] ≥ 0∧[-1] ≥ 0 ⇒ (UIncreasing(COND_NE884(&&(>(i40[0], 0), !(=(i40[0], i40[0]))), i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0])), ≥)∧[(-1)bni_64 + (-1)Bound*bni_64] + [(-11)bni_64]i40[0] ≥ 0∧[-1 + (-1)bso_65] ≥ 0)

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

(5)    (i40[0] + [-1] ≥ 0∧[-1] ≥ 0 ⇒ (UIncreasing(COND_NE884(&&(>(i40[0], 0), !(=(i40[0], i40[0]))), i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0])), ≥)∧[(-1)bni_64 + (-1)Bound*bni_64] + [(-11)bni_64]i40[0] ≥ 0∧[-1 + (-1)bso_65] ≥ 0)

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

(6)    (i40[0] + [-1] ≥ 0∧[-1] ≥ 0 ⇒ (UIncreasing(COND_NE884(&&(>(i40[0], 0), !(=(i40[0], i40[0]))), i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0])), ≥)∧[(-1)bni_64 + (-1)Bound*bni_64] + [(-11)bni_64]i40[0] ≥ 0∧[-1 + (-1)bso_65] ≥ 0)

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

(7)    (i40[0] + [-1] ≥ 0∧[-1] ≥ 0 ⇒ (UIncreasing(COND_NE884(&&(>(i40[0], 0), !(=(i40[0], i40[0]))), i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0])), ≥)∧[(-1)bni_64 + (-1)Bound*bni_64] + [(-11)bni_64]i40[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)    (i40[0] + [-1] ≥ 0∧[-1] ≥ 0 ⇒ (UIncreasing(COND_NE884(&&(>(i40[0], 0), !(=(i40[0], i40[0]))), i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0])), ≥)∧[(-1)bni_64 + (-1)Bound*bni_64] + [(-11)bni_64]i40[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)    (i40[0] + [-1] ≥ 0∧[-1] ≥ 0 ⇒ (UIncreasing(COND_NE884(&&(>(i40[0], 0), !(=(i40[0], i40[0]))), i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0])), ≥)∧[(-1)bni_64 + (-1)Bound*bni_64] + [(-11)bni_64]i40[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_LOAD683(TRUE, i40[3], i40[3], i40[3], i40[3]) → NE884'(i40[3], i40[3], i40[3], i40[3], i40[3], i40[3], i40[3], i40[3], i40[3], i40[3], i40[3]), NE884'(i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0]) → COND_NE884(&&(>(i40[0], 0), !(=(i40[0], i40[0]))), i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0]), COND_NE884(TRUE, i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1]) → NE884'(i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1]) which results in the following constraint:

(10)    (i40[3]=i40[0]&&(>(i40[0], 0), !(=(i40[0], i40[0])))=TRUEi40[0]=i40[1]NE884'(i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0])≥NonInfC∧NE884'(i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0])≥COND_NE884(&&(>(i40[0], 0), !(=(i40[0], i40[0]))), i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0])∧(UIncreasing(COND_NE884(&&(>(i40[0], 0), !(=(i40[0], i40[0]))), i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0])), ≥))

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

(11)    (>(i40[0], 0)=TRUE<(i40[0], i40[0])=TRUENE884'(i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0])≥NonInfC∧NE884'(i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0])≥COND_NE884(&&(>(i40[0], 0), !(=(i40[0], i40[0]))), i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0])∧(UIncreasing(COND_NE884(&&(>(i40[0], 0), !(=(i40[0], i40[0]))), i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0])), ≥))

(12)    (>(i40[0], 0)=TRUE>(i40[0], i40[0])=TRUENE884'(i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0])≥NonInfC∧NE884'(i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0])≥COND_NE884(&&(>(i40[0], 0), !(=(i40[0], i40[0]))), i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0])∧(UIncreasing(COND_NE884(&&(>(i40[0], 0), !(=(i40[0], i40[0]))), i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0])), ≥))

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

(13)    (i40[0] + [-1] ≥ 0∧[-1] ≥ 0 ⇒ (UIncreasing(COND_NE884(&&(>(i40[0], 0), !(=(i40[0], i40[0]))), i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0])), ≥)∧[(-1)bni_64 + (-1)Bound*bni_64] + [(-11)bni_64]i40[0] ≥ 0∧[-1 + (-1)bso_65] ≥ 0)

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

(14)    (i40[0] + [-1] ≥ 0∧[-1] ≥ 0 ⇒ (UIncreasing(COND_NE884(&&(>(i40[0], 0), !(=(i40[0], i40[0]))), i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0])), ≥)∧[(-1)bni_64 + (-1)Bound*bni_64] + [(-11)bni_64]i40[0] ≥ 0∧[-1 + (-1)bso_65] ≥ 0)

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

(15)    (i40[0] + [-1] ≥ 0∧[-1] ≥ 0 ⇒ (UIncreasing(COND_NE884(&&(>(i40[0], 0), !(=(i40[0], i40[0]))), i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0])), ≥)∧[(-1)bni_64 + (-1)Bound*bni_64] + [(-11)bni_64]i40[0] ≥ 0∧[-1 + (-1)bso_65] ≥ 0)

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

(16)    (i40[0] + [-1] ≥ 0∧[-1] ≥ 0 ⇒ (UIncreasing(COND_NE884(&&(>(i40[0], 0), !(=(i40[0], i40[0]))), i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0])), ≥)∧[(-1)bni_64 + (-1)Bound*bni_64] + [(-11)bni_64]i40[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)    (i40[0] + [-1] ≥ 0∧[-1] ≥ 0 ⇒ (UIncreasing(COND_NE884(&&(>(i40[0], 0), !(=(i40[0], i40[0]))), i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0])), ≥)∧[(-1)bni_64 + (-1)Bound*bni_64] + [(-11)bni_64]i40[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)    (i40[0] + [-1] ≥ 0∧[-1] ≥ 0 ⇒ (UIncreasing(COND_NE884(&&(>(i40[0], 0), !(=(i40[0], i40[0]))), i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0])), ≥)∧[(-1)bni_64 + (-1)Bound*bni_64] + [(-11)bni_64]i40[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_NE884(TRUE, i40, i40, i40, i40, i40, i40, i40, i40, i40, i40, i40) → NE884'(i40, i40, i40, i40, i40, i40, i40, i40, i40, i40, i40) the following chains were created:
• We consider the chain NE884'(i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0]) → COND_NE884(&&(>(i40[0], 0), !(=(i40[0], i40[0]))), i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0]), COND_NE884(TRUE, i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1]) → NE884'(i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1]), NE884'(i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0]) → COND_NE884(&&(>(i40[0], 0), !(=(i40[0], i40[0]))), i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0]) which results in the following constraint:

(19)    (&&(>(i40[0], 0), !(=(i40[0], i40[0])))=TRUEi40[0]=i40[1]i40[1]=i40[0]1COND_NE884(TRUE, i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1])≥NonInfC∧COND_NE884(TRUE, i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1])≥NE884'(i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1])∧(UIncreasing(NE884'(i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1])), ≥))

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

(20)    (>(i40[0], 0)=TRUE<(i40[0], i40[0])=TRUECOND_NE884(TRUE, i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0])≥NonInfC∧COND_NE884(TRUE, i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0])≥NE884'(i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0])∧(UIncreasing(NE884'(i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1])), ≥))

(21)    (>(i40[0], 0)=TRUE>(i40[0], i40[0])=TRUECOND_NE884(TRUE, i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0])≥NonInfC∧COND_NE884(TRUE, i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0])≥NE884'(i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0])∧(UIncreasing(NE884'(i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1])), ≥))

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

(22)    (i40[0] + [-1] ≥ 0∧[-1] ≥ 0 ⇒ (UIncreasing(NE884'(i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1])), ≥)∧[(-1)bni_66 + (-1)Bound*bni_66] + [(-11)bni_66]i40[0] ≥ 0∧[(-1)bso_67] ≥ 0)

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

(23)    (i40[0] + [-1] ≥ 0∧[-1] ≥ 0 ⇒ (UIncreasing(NE884'(i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1])), ≥)∧[(-1)bni_66 + (-1)Bound*bni_66] + [(-11)bni_66]i40[0] ≥ 0∧[(-1)bso_67] ≥ 0)

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

(24)    (i40[0] + [-1] ≥ 0∧[-1] ≥ 0 ⇒ (UIncreasing(NE884'(i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1])), ≥)∧[(-1)bni_66 + (-1)Bound*bni_66] + [(-11)bni_66]i40[0] ≥ 0∧[(-1)bso_67] ≥ 0)

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

(25)    (i40[0] + [-1] ≥ 0∧[-1] ≥ 0 ⇒ (UIncreasing(NE884'(i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1])), ≥)∧[(-1)bni_66 + (-1)Bound*bni_66] + [(-11)bni_66]i40[0] ≥ 0∧[(-1)bso_67] ≥ 0)

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

(26)    (i40[0] + [-1] ≥ 0∧[-1] ≥ 0 ⇒ (UIncreasing(NE884'(i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1])), ≥)∧[(-1)bni_66 + (-1)Bound*bni_66] + [(-11)bni_66]i40[0] ≥ 0∧[(-1)bso_67] ≥ 0)

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

(27)    (i40[0] + [-1] ≥ 0∧[-1] ≥ 0 ⇒ (UIncreasing(NE884'(i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1])), ≥)∧[(-1)bni_66 + (-1)Bound*bni_66] + [(-11)bni_66]i40[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 NE884'(i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0]) → COND_NE884(&&(>(i40[0], 0), !(=(i40[0], i40[0]))), i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0]), COND_NE884(TRUE, i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1]) → NE884'(i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1]), NE884'(i40[4], i42[4], i40[4], i42[4], i42[4], i40[4], i42[4], i40[4], i42[4], i40[4], i42[4]) → COND_NE8841(&&(&&(<(i42[4], i40[4]), <=(i40[4], i42[4])), >(i42[4], 0)), i40[4], i42[4], i40[4], i42[4], i42[4], i40[4], i42[4], i40[4], i42[4], i40[4], i42[4]) which results in the following constraint:

(28)    (&&(>(i40[0], 0), !(=(i40[0], i40[0])))=TRUEi40[0]=i40[1]i40[1]=i40[4]i40[1]=i42[4]COND_NE884(TRUE, i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1])≥NonInfC∧COND_NE884(TRUE, i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1])≥NE884'(i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1])∧(UIncreasing(NE884'(i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1])), ≥))

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

(29)    (>(i40[0], 0)=TRUE<(i40[0], i40[0])=TRUECOND_NE884(TRUE, i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0])≥NonInfC∧COND_NE884(TRUE, i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0])≥NE884'(i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0])∧(UIncreasing(NE884'(i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1])), ≥))

(30)    (>(i40[0], 0)=TRUE>(i40[0], i40[0])=TRUECOND_NE884(TRUE, i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0])≥NonInfC∧COND_NE884(TRUE, i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0])≥NE884'(i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0], i40[0])∧(UIncreasing(NE884'(i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1])), ≥))

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

(31)    (i40[0] + [-1] ≥ 0∧[-1] ≥ 0 ⇒ (UIncreasing(NE884'(i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1])), ≥)∧[(-1)bni_66 + (-1)Bound*bni_66] + [(-11)bni_66]i40[0] ≥ 0∧[(-1)bso_67] ≥ 0)

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

(32)    (i40[0] + [-1] ≥ 0∧[-1] ≥ 0 ⇒ (UIncreasing(NE884'(i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1])), ≥)∧[(-1)bni_66 + (-1)Bound*bni_66] + [(-11)bni_66]i40[0] ≥ 0∧[(-1)bso_67] ≥ 0)

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

(33)    (i40[0] + [-1] ≥ 0∧[-1] ≥ 0 ⇒ (UIncreasing(NE884'(i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1])), ≥)∧[(-1)bni_66 + (-1)Bound*bni_66] + [(-11)bni_66]i40[0] ≥ 0∧[(-1)bso_67] ≥ 0)

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

(34)    (i40[0] + [-1] ≥ 0∧[-1] ≥ 0 ⇒ (UIncreasing(NE884'(i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1])), ≥)∧[(-1)bni_66 + (-1)Bound*bni_66] + [(-11)bni_66]i40[0] ≥ 0∧[(-1)bso_67] ≥ 0)

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

(35)    (i40[0] + [-1] ≥ 0∧[-1] ≥ 0 ⇒ (UIncreasing(NE884'(i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1])), ≥)∧[(-1)bni_66 + (-1)Bound*bni_66] + [(-11)bni_66]i40[0] ≥ 0∧[(-1)bso_67] ≥ 0)

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

(36)    (i40[0] + [-1] ≥ 0∧[-1] ≥ 0 ⇒ (UIncreasing(NE884'(i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1], i40[1])), ≥)∧[(-1)bni_66 + (-1)Bound*bni_66] + [(-11)bni_66]i40[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 LOAD683(i40, i40, i40, i40) → COND_LOAD683(&&(>(i40, 0), !(=(i40, i40))), i40, i40, i40, i40) the following chains were created:
• We consider the chain COND_NE8841(TRUE, i40[5], i42[5], i40[5], i42[5], i42[5], i40[5], i42[5], i40[5], i42[5], i40[5], i42[5]) → LOAD683(i40[5], i42[5], i40[5], i42[5]), LOAD683(i40[2], i40[2], i40[2], i40[2]) → COND_LOAD683(&&(>(i40[2], 0), !(=(i40[2], i40[2]))), i40[2], i40[2], i40[2], i40[2]), COND_LOAD683(TRUE, i40[3], i40[3], i40[3], i40[3]) → NE884'(i40[3], i40[3], i40[3], i40[3], i40[3], i40[3], i40[3], i40[3], i40[3], i40[3], i40[3]) which results in the following constraint:

(37)    (i40[5]=i40[2]i42[5]=i40[2]i40[2]=i40[3]&&(>(i40[2], 0), !(=(i40[2], i40[2])))=TRUELOAD683(i40[2], i40[2], i40[2], i40[2])≥NonInfC∧LOAD683(i40[2], i40[2], i40[2], i40[2])≥COND_LOAD683(&&(>(i40[2], 0), !(=(i40[2], i40[2]))), i40[2], i40[2], i40[2], i40[2])∧(UIncreasing(COND_LOAD683(&&(>(i40[2], 0), !(=(i40[2], i40[2]))), i40[2], i40[2], i40[2], i40[2])), ≥))

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

(38)    (>(i40[2], 0)=TRUE<(i40[2], i40[2])=TRUELOAD683(i40[2], i40[2], i40[2], i40[2])≥NonInfC∧LOAD683(i40[2], i40[2], i40[2], i40[2])≥COND_LOAD683(&&(>(i40[2], 0), !(=(i40[2], i40[2]))), i40[2], i40[2], i40[2], i40[2])∧(UIncreasing(COND_LOAD683(&&(>(i40[2], 0), !(=(i40[2], i40[2]))), i40[2], i40[2], i40[2], i40[2])), ≥))

(39)    (>(i40[2], 0)=TRUE>(i40[2], i40[2])=TRUELOAD683(i40[2], i40[2], i40[2], i40[2])≥NonInfC∧LOAD683(i40[2], i40[2], i40[2], i40[2])≥COND_LOAD683(&&(>(i40[2], 0), !(=(i40[2], i40[2]))), i40[2], i40[2], i40[2], i40[2])∧(UIncreasing(COND_LOAD683(&&(>(i40[2], 0), !(=(i40[2], i40[2]))), i40[2], i40[2], i40[2], i40[2])), ≥))

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

(40)    (i40[2] + [-1] ≥ 0∧[-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD683(&&(>(i40[2], 0), !(=(i40[2], i40[2]))), i40[2], i40[2], i40[2], i40[2])), ≥)∧[(-1)bni_68 + (-1)Bound*bni_68] + [(-4)bni_68]i40[2] ≥ 0∧[-1 + (-1)bso_69] ≥ 0)

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

(41)    (i40[2] + [-1] ≥ 0∧[-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD683(&&(>(i40[2], 0), !(=(i40[2], i40[2]))), i40[2], i40[2], i40[2], i40[2])), ≥)∧[(-1)bni_68 + (-1)Bound*bni_68] + [(-4)bni_68]i40[2] ≥ 0∧[-1 + (-1)bso_69] ≥ 0)

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

(42)    (i40[2] + [-1] ≥ 0∧[-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD683(&&(>(i40[2], 0), !(=(i40[2], i40[2]))), i40[2], i40[2], i40[2], i40[2])), ≥)∧[(-1)bni_68 + (-1)Bound*bni_68] + [(-4)bni_68]i40[2] ≥ 0∧[-1 + (-1)bso_69] ≥ 0)

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

(43)    (i40[2] + [-1] ≥ 0∧[-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD683(&&(>(i40[2], 0), !(=(i40[2], i40[2]))), i40[2], i40[2], i40[2], i40[2])), ≥)∧[(-1)bni_68 + (-1)Bound*bni_68] + [(-4)bni_68]i40[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)    (i40[2] + [-1] ≥ 0∧[-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD683(&&(>(i40[2], 0), !(=(i40[2], i40[2]))), i40[2], i40[2], i40[2], i40[2])), ≥)∧[(-1)bni_68 + (-1)Bound*bni_68] + [(-4)bni_68]i40[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)    (i40[2] + [-1] ≥ 0∧[-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD683(&&(>(i40[2], 0), !(=(i40[2], i40[2]))), i40[2], i40[2], i40[2], i40[2])), ≥)∧[(-1)bni_68 + (-1)Bound*bni_68] + [(-4)bni_68]i40[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_LOAD6831(TRUE, i40[7], i42[7], i40[7], i42[7]) → LOAD683(i40[7], i42[7], i40[7], i42[7]), LOAD683(i40[2], i40[2], i40[2], i40[2]) → COND_LOAD683(&&(>(i40[2], 0), !(=(i40[2], i40[2]))), i40[2], i40[2], i40[2], i40[2]), COND_LOAD683(TRUE, i40[3], i40[3], i40[3], i40[3]) → NE884'(i40[3], i40[3], i40[3], i40[3], i40[3], i40[3], i40[3], i40[3], i40[3], i40[3], i40[3]) which results in the following constraint:

(46)    (i40[7]=i40[2]i42[7]=i40[2]i40[2]=i40[3]&&(>(i40[2], 0), !(=(i40[2], i40[2])))=TRUELOAD683(i40[2], i40[2], i40[2], i40[2])≥NonInfC∧LOAD683(i40[2], i40[2], i40[2], i40[2])≥COND_LOAD683(&&(>(i40[2], 0), !(=(i40[2], i40[2]))), i40[2], i40[2], i40[2], i40[2])∧(UIncreasing(COND_LOAD683(&&(>(i40[2], 0), !(=(i40[2], i40[2]))), i40[2], i40[2], i40[2], i40[2])), ≥))

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