### (0) Obligation:

JBC Problem based on JBC Program:
Manifest-Version: 1.0 Created-By: 1.6.0_16 (Sun Microsystems Inc.) Main-Class: DuplicateNodes
`public class DuplicateNodes {    public static void main(String[] args) {		Random.args = args;        Tree tree = Tree.createTree();		randomlyDuplicate(tree);    }	public static void randomlyDuplicate(Tree tree) {		Tree cur = tree;				while (cur != null) {			if (Random.random() > 42) {				cur.right = new Tree(cur.left, cur.right);				cur = cur.left;			} else {				cur.left = new Tree(cur.left, cur.right);				cur = cur.right;			}		}	}}public class List {  Tree value;  List next;  public List(Tree value, List next) {    this.value = value;    this.next = next;  }}public class Random {  static String[] args;  static int index = 0;  public static int random() {    String string = args[index];    index++;    return string.length();  }}public class Tree {  Tree left;  Tree right;  Object value;  public Tree(Tree l, Tree r) {    this.left = l;    this.right = r;  }  public Tree() {  }  public static Tree createNode() {   if (Random.random() == 0) {      return null;    }    Tree result = new Tree();    return result;  }  public static Tree createTree() {    Tree result = createNode();    List list = new List(result, null);        int counter = Random.random();    while (counter > 0 && list != null) {      Tree first = list.value;      list = list.next;      if (first != null) {        Tree left = createNode();        Tree right = createNode();        first.left = left;        first.right = right;        list = new List(left, list);        list = new List(right, list);      }      counter--;    }    return result;  }  public static void main(String[] args) {    Random.args = args;    createTree();  }}`

### (1) JBC2FIG (SOUND transformation)

Constructed FIGraph.

### (2) Obligation:

FIGraph based on JBC Program:
Graph of 876 nodes with 2 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:
Load35058(java.lang.Object(ARRAY(i4, a115115data)), i5816, java.lang.Object(Tree(o96125, o96126))) → Load35058ARR1(java.lang.Object(ARRAY(i4, a115115data)), i5816, java.lang.Object(Tree(o96125, o96126)), java.lang.Object(java.lang.String(i5968)))
Load35058ARR1(java.lang.Object(ARRAY(i4, a115115data)), i5816, java.lang.Object(Tree(java.lang.Object(Tree(o96125, o96126)), o96126)), java.lang.Object(java.lang.String(i5968))) → Cond_Load35058ARR1(i5968 <= 42 && i5816 > 0 && i5816 < i4 && i5816 + 1 > 0, java.lang.Object(ARRAY(i4, a115115data)), i5816, java.lang.Object(Tree(java.lang.Object(Tree(o96125, o96126)), o96126)), java.lang.Object(java.lang.String(i5968)))
Cond_Load35058ARR1(TRUE, java.lang.Object(ARRAY(i4, a115115data)), i5816, java.lang.Object(Tree(java.lang.Object(Tree(o96125, o96126)), o96126)), java.lang.Object(java.lang.String(i5968))) → Load35058(java.lang.Object(ARRAY(i4, a115115data)), i5816 + 1, o96126)
Load35058(java.lang.Object(ARRAY(i4, a115115data)), i5816, java.lang.Object(Tree(o96140, o96141))) → Load35058ARR2(java.lang.Object(ARRAY(i4, a115115data)), i5816, java.lang.Object(Tree(o96140, o96141)), java.lang.Object(java.lang.String(i5968)))
Load35058ARR2(java.lang.Object(ARRAY(i4, a115115data)), i5816, java.lang.Object(Tree(o96140, java.lang.Object(Tree(o96140, o96141)))), java.lang.Object(java.lang.String(i5968))) → Cond_Load35058ARR2(i5968 > 42 && i5816 > 0 && i5816 < i4 && i5816 + 1 > 0, java.lang.Object(ARRAY(i4, a115115data)), i5816, java.lang.Object(Tree(o96140, java.lang.Object(Tree(o96140, o96141)))), java.lang.Object(java.lang.String(i5968)))
Cond_Load35058ARR2(TRUE, java.lang.Object(ARRAY(i4, a115115data)), i5816, java.lang.Object(Tree(o96140, java.lang.Object(Tree(o96140, o96141)))), java.lang.Object(java.lang.String(i5968))) → Load35058(java.lang.Object(ARRAY(i4, a115115data)), i5816 + 1, o96140)
The set Q consists of the following terms:
Load35058ARR1(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(Tree(java.lang.Object(Tree(x3, x4)), x4)), java.lang.Object(java.lang.String(x5)))
Cond_Load35058ARR1(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(Tree(java.lang.Object(Tree(x3, x4)), x4)), java.lang.Object(java.lang.String(x5)))
Load35058ARR2(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(Tree(x3, java.lang.Object(Tree(x3, x4)))), java.lang.Object(java.lang.String(x5)))
Cond_Load35058ARR2(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(Tree(x3, java.lang.Object(Tree(x3, x4)))), java.lang.Object(java.lang.String(x5)))

### (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:
Load35058(java.lang.Object(ARRAY(i4, a115115data)), i5816, java.lang.Object(Tree(o96125, o96126))) → Load35058ARR1(java.lang.Object(ARRAY(i4, a115115data)), i5816, java.lang.Object(Tree(o96125, o96126)), java.lang.Object(java.lang.String(i5968)))
Load35058ARR1(java.lang.Object(ARRAY(i4, a115115data)), i5816, java.lang.Object(Tree(java.lang.Object(Tree(o96125, o96126)), o96126)), java.lang.Object(java.lang.String(i5968))) → Cond_Load35058ARR1(i5968 <= 42 && i5816 > 0 && i5816 < i4 && i5816 + 1 > 0, java.lang.Object(ARRAY(i4, a115115data)), i5816, java.lang.Object(Tree(java.lang.Object(Tree(o96125, o96126)), o96126)), java.lang.Object(java.lang.String(i5968)))
Cond_Load35058ARR1(TRUE, java.lang.Object(ARRAY(i4, a115115data)), i5816, java.lang.Object(Tree(java.lang.Object(Tree(o96125, o96126)), o96126)), java.lang.Object(java.lang.String(i5968))) → Load35058(java.lang.Object(ARRAY(i4, a115115data)), i5816 + 1, o96126)
Load35058(java.lang.Object(ARRAY(i4, a115115data)), i5816, java.lang.Object(Tree(o96140, o96141))) → Load35058ARR2(java.lang.Object(ARRAY(i4, a115115data)), i5816, java.lang.Object(Tree(o96140, o96141)), java.lang.Object(java.lang.String(i5968)))
Load35058ARR2(java.lang.Object(ARRAY(i4, a115115data)), i5816, java.lang.Object(Tree(o96140, java.lang.Object(Tree(o96140, o96141)))), java.lang.Object(java.lang.String(i5968))) → Cond_Load35058ARR2(i5968 > 42 && i5816 > 0 && i5816 < i4 && i5816 + 1 > 0, java.lang.Object(ARRAY(i4, a115115data)), i5816, java.lang.Object(Tree(o96140, java.lang.Object(Tree(o96140, o96141)))), java.lang.Object(java.lang.String(i5968)))
Cond_Load35058ARR2(TRUE, java.lang.Object(ARRAY(i4, a115115data)), i5816, java.lang.Object(Tree(o96140, java.lang.Object(Tree(o96140, o96141)))), java.lang.Object(java.lang.String(i5968))) → Load35058(java.lang.Object(ARRAY(i4, a115115data)), i5816 + 1, o96140)

The integer pair graph contains the following rules and edges:
(0): LOAD35058(java.lang.Object(ARRAY(i4[0], a115115data[0])), i5816[0], java.lang.Object(Tree(o96125[0], o96126[0]))) → LOAD35058ARR1(java.lang.Object(ARRAY(i4[0], a115115data[0])), i5816[0], java.lang.Object(Tree(o96125[0], o96126[0])), java.lang.Object(java.lang.String(i5968[0])))
(1): LOAD35058ARR1(java.lang.Object(ARRAY(i4[1], a115115data[1])), i5816[1], java.lang.Object(Tree(java.lang.Object(Tree(o96125[1], o96126[1])), o96126[1])), java.lang.Object(java.lang.String(i5968[1]))) → COND_LOAD35058ARR1(i5968[1] <= 42 && i5816[1] > 0 && i5816[1] < i4[1] && i5816[1] + 1 > 0, java.lang.Object(ARRAY(i4[1], a115115data[1])), i5816[1], java.lang.Object(Tree(java.lang.Object(Tree(o96125[1], o96126[1])), o96126[1])), java.lang.Object(java.lang.String(i5968[1])))
(2): COND_LOAD35058ARR1(TRUE, java.lang.Object(ARRAY(i4[2], a115115data[2])), i5816[2], java.lang.Object(Tree(java.lang.Object(Tree(o96125[2], o96126[2])), o96126[2])), java.lang.Object(java.lang.String(i5968[2]))) → LOAD35058(java.lang.Object(ARRAY(i4[2], a115115data[2])), i5816[2] + 1, o96126[2])
(3): LOAD35058(java.lang.Object(ARRAY(i4[3], a115115data[3])), i5816[3], java.lang.Object(Tree(o96140[3], o96141[3]))) → LOAD35058ARR2(java.lang.Object(ARRAY(i4[3], a115115data[3])), i5816[3], java.lang.Object(Tree(o96140[3], o96141[3])), java.lang.Object(java.lang.String(i5968[3])))
(4): LOAD35058ARR2(java.lang.Object(ARRAY(i4[4], a115115data[4])), i5816[4], java.lang.Object(Tree(o96140[4], java.lang.Object(Tree(o96140[4], o96141[4])))), java.lang.Object(java.lang.String(i5968[4]))) → COND_LOAD35058ARR2(i5968[4] > 42 && i5816[4] > 0 && i5816[4] < i4[4] && i5816[4] + 1 > 0, java.lang.Object(ARRAY(i4[4], a115115data[4])), i5816[4], java.lang.Object(Tree(o96140[4], java.lang.Object(Tree(o96140[4], o96141[4])))), java.lang.Object(java.lang.String(i5968[4])))
(5): COND_LOAD35058ARR2(TRUE, java.lang.Object(ARRAY(i4[5], a115115data[5])), i5816[5], java.lang.Object(Tree(o96140[5], java.lang.Object(Tree(o96140[5], o96141[5])))), java.lang.Object(java.lang.String(i5968[5]))) → LOAD35058(java.lang.Object(ARRAY(i4[5], a115115data[5])), i5816[5] + 1, o96140[5])

(0) -> (1), if ((java.lang.Object(java.lang.String(i5968[0])) →* java.lang.Object(java.lang.String(i5968[1])))∧(java.lang.Object(ARRAY(i4[0], a115115data[0])) →* java.lang.Object(ARRAY(i4[1], a115115data[1])))∧(i5816[0]* i5816[1])∧(java.lang.Object(Tree(o96125[0], o96126[0])) →* java.lang.Object(Tree(java.lang.Object(Tree(o96125[1], o96126[1])), o96126[1]))))

(1) -> (2), if ((java.lang.Object(ARRAY(i4[1], a115115data[1])) →* java.lang.Object(ARRAY(i4[2], a115115data[2])))∧(i5968[1] <= 42 && i5816[1] > 0 && i5816[1] < i4[1] && i5816[1] + 1 > 0* TRUE)∧(java.lang.Object(Tree(java.lang.Object(Tree(o96125[1], o96126[1])), o96126[1])) →* java.lang.Object(Tree(java.lang.Object(Tree(o96125[2], o96126[2])), o96126[2])))∧(i5816[1]* i5816[2])∧(java.lang.Object(java.lang.String(i5968[1])) →* java.lang.Object(java.lang.String(i5968[2]))))

(2) -> (0), if ((o96126[2]* java.lang.Object(Tree(o96125[0], o96126[0])))∧(i5816[2] + 1* i5816[0])∧(java.lang.Object(ARRAY(i4[2], a115115data[2])) →* java.lang.Object(ARRAY(i4[0], a115115data[0]))))

(2) -> (3), if ((java.lang.Object(ARRAY(i4[2], a115115data[2])) →* java.lang.Object(ARRAY(i4[3], a115115data[3])))∧(i5816[2] + 1* i5816[3])∧(o96126[2]* java.lang.Object(Tree(o96140[3], o96141[3]))))

(3) -> (4), if ((java.lang.Object(Tree(o96140[3], o96141[3])) →* java.lang.Object(Tree(o96140[4], java.lang.Object(Tree(o96140[4], o96141[4])))))∧(java.lang.Object(ARRAY(i4[3], a115115data[3])) →* java.lang.Object(ARRAY(i4[4], a115115data[4])))∧(java.lang.Object(java.lang.String(i5968[3])) →* java.lang.Object(java.lang.String(i5968[4])))∧(i5816[3]* i5816[4]))

(4) -> (5), if ((i5816[4]* i5816[5])∧(java.lang.Object(ARRAY(i4[4], a115115data[4])) →* java.lang.Object(ARRAY(i4[5], a115115data[5])))∧(i5968[4] > 42 && i5816[4] > 0 && i5816[4] < i4[4] && i5816[4] + 1 > 0* TRUE)∧(java.lang.Object(java.lang.String(i5968[4])) →* java.lang.Object(java.lang.String(i5968[5])))∧(java.lang.Object(Tree(o96140[4], java.lang.Object(Tree(o96140[4], o96141[4])))) →* java.lang.Object(Tree(o96140[5], java.lang.Object(Tree(o96140[5], o96141[5]))))))

(5) -> (0), if ((java.lang.Object(ARRAY(i4[5], a115115data[5])) →* java.lang.Object(ARRAY(i4[0], a115115data[0])))∧(i5816[5] + 1* i5816[0])∧(o96140[5]* java.lang.Object(Tree(o96125[0], o96126[0]))))

(5) -> (3), if ((i5816[5] + 1* i5816[3])∧(java.lang.Object(ARRAY(i4[5], a115115data[5])) →* java.lang.Object(ARRAY(i4[3], a115115data[3])))∧(o96140[5]* java.lang.Object(Tree(o96140[3], o96141[3]))))

The set Q consists of the following terms:
Load35058ARR1(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(Tree(java.lang.Object(Tree(x3, x4)), x4)), java.lang.Object(java.lang.String(x5)))
Cond_Load35058ARR1(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(Tree(java.lang.Object(Tree(x3, x4)), x4)), java.lang.Object(java.lang.String(x5)))
Load35058ARR2(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(Tree(x3, java.lang.Object(Tree(x3, x4)))), java.lang.Object(java.lang.String(x5)))
Cond_Load35058ARR2(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(Tree(x3, java.lang.Object(Tree(x3, x4)))), java.lang.Object(java.lang.String(x5)))

### (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): LOAD35058(java.lang.Object(ARRAY(i4[0], a115115data[0])), i5816[0], java.lang.Object(Tree(o96125[0], o96126[0]))) → LOAD35058ARR1(java.lang.Object(ARRAY(i4[0], a115115data[0])), i5816[0], java.lang.Object(Tree(o96125[0], o96126[0])), java.lang.Object(java.lang.String(i5968[0])))
(1): LOAD35058ARR1(java.lang.Object(ARRAY(i4[1], a115115data[1])), i5816[1], java.lang.Object(Tree(java.lang.Object(Tree(o96125[1], o96126[1])), o96126[1])), java.lang.Object(java.lang.String(i5968[1]))) → COND_LOAD35058ARR1(i5968[1] <= 42 && i5816[1] > 0 && i5816[1] < i4[1] && i5816[1] + 1 > 0, java.lang.Object(ARRAY(i4[1], a115115data[1])), i5816[1], java.lang.Object(Tree(java.lang.Object(Tree(o96125[1], o96126[1])), o96126[1])), java.lang.Object(java.lang.String(i5968[1])))
(2): COND_LOAD35058ARR1(TRUE, java.lang.Object(ARRAY(i4[2], a115115data[2])), i5816[2], java.lang.Object(Tree(java.lang.Object(Tree(o96125[2], o96126[2])), o96126[2])), java.lang.Object(java.lang.String(i5968[2]))) → LOAD35058(java.lang.Object(ARRAY(i4[2], a115115data[2])), i5816[2] + 1, o96126[2])
(3): LOAD35058(java.lang.Object(ARRAY(i4[3], a115115data[3])), i5816[3], java.lang.Object(Tree(o96140[3], o96141[3]))) → LOAD35058ARR2(java.lang.Object(ARRAY(i4[3], a115115data[3])), i5816[3], java.lang.Object(Tree(o96140[3], o96141[3])), java.lang.Object(java.lang.String(i5968[3])))
(4): LOAD35058ARR2(java.lang.Object(ARRAY(i4[4], a115115data[4])), i5816[4], java.lang.Object(Tree(o96140[4], java.lang.Object(Tree(o96140[4], o96141[4])))), java.lang.Object(java.lang.String(i5968[4]))) → COND_LOAD35058ARR2(i5968[4] > 42 && i5816[4] > 0 && i5816[4] < i4[4] && i5816[4] + 1 > 0, java.lang.Object(ARRAY(i4[4], a115115data[4])), i5816[4], java.lang.Object(Tree(o96140[4], java.lang.Object(Tree(o96140[4], o96141[4])))), java.lang.Object(java.lang.String(i5968[4])))
(5): COND_LOAD35058ARR2(TRUE, java.lang.Object(ARRAY(i4[5], a115115data[5])), i5816[5], java.lang.Object(Tree(o96140[5], java.lang.Object(Tree(o96140[5], o96141[5])))), java.lang.Object(java.lang.String(i5968[5]))) → LOAD35058(java.lang.Object(ARRAY(i4[5], a115115data[5])), i5816[5] + 1, o96140[5])

(0) -> (1), if ((java.lang.Object(java.lang.String(i5968[0])) →* java.lang.Object(java.lang.String(i5968[1])))∧(java.lang.Object(ARRAY(i4[0], a115115data[0])) →* java.lang.Object(ARRAY(i4[1], a115115data[1])))∧(i5816[0]* i5816[1])∧(java.lang.Object(Tree(o96125[0], o96126[0])) →* java.lang.Object(Tree(java.lang.Object(Tree(o96125[1], o96126[1])), o96126[1]))))

(1) -> (2), if ((java.lang.Object(ARRAY(i4[1], a115115data[1])) →* java.lang.Object(ARRAY(i4[2], a115115data[2])))∧(i5968[1] <= 42 && i5816[1] > 0 && i5816[1] < i4[1] && i5816[1] + 1 > 0* TRUE)∧(java.lang.Object(Tree(java.lang.Object(Tree(o96125[1], o96126[1])), o96126[1])) →* java.lang.Object(Tree(java.lang.Object(Tree(o96125[2], o96126[2])), o96126[2])))∧(i5816[1]* i5816[2])∧(java.lang.Object(java.lang.String(i5968[1])) →* java.lang.Object(java.lang.String(i5968[2]))))

(2) -> (0), if ((o96126[2]* java.lang.Object(Tree(o96125[0], o96126[0])))∧(i5816[2] + 1* i5816[0])∧(java.lang.Object(ARRAY(i4[2], a115115data[2])) →* java.lang.Object(ARRAY(i4[0], a115115data[0]))))

(2) -> (3), if ((java.lang.Object(ARRAY(i4[2], a115115data[2])) →* java.lang.Object(ARRAY(i4[3], a115115data[3])))∧(i5816[2] + 1* i5816[3])∧(o96126[2]* java.lang.Object(Tree(o96140[3], o96141[3]))))

(3) -> (4), if ((java.lang.Object(Tree(o96140[3], o96141[3])) →* java.lang.Object(Tree(o96140[4], java.lang.Object(Tree(o96140[4], o96141[4])))))∧(java.lang.Object(ARRAY(i4[3], a115115data[3])) →* java.lang.Object(ARRAY(i4[4], a115115data[4])))∧(java.lang.Object(java.lang.String(i5968[3])) →* java.lang.Object(java.lang.String(i5968[4])))∧(i5816[3]* i5816[4]))

(4) -> (5), if ((i5816[4]* i5816[5])∧(java.lang.Object(ARRAY(i4[4], a115115data[4])) →* java.lang.Object(ARRAY(i4[5], a115115data[5])))∧(i5968[4] > 42 && i5816[4] > 0 && i5816[4] < i4[4] && i5816[4] + 1 > 0* TRUE)∧(java.lang.Object(java.lang.String(i5968[4])) →* java.lang.Object(java.lang.String(i5968[5])))∧(java.lang.Object(Tree(o96140[4], java.lang.Object(Tree(o96140[4], o96141[4])))) →* java.lang.Object(Tree(o96140[5], java.lang.Object(Tree(o96140[5], o96141[5]))))))

(5) -> (0), if ((java.lang.Object(ARRAY(i4[5], a115115data[5])) →* java.lang.Object(ARRAY(i4[0], a115115data[0])))∧(i5816[5] + 1* i5816[0])∧(o96140[5]* java.lang.Object(Tree(o96125[0], o96126[0]))))

(5) -> (3), if ((i5816[5] + 1* i5816[3])∧(java.lang.Object(ARRAY(i4[5], a115115data[5])) →* java.lang.Object(ARRAY(i4[3], a115115data[3])))∧(o96140[5]* java.lang.Object(Tree(o96140[3], o96141[3]))))

The set Q consists of the following terms:
Load35058ARR1(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(Tree(java.lang.Object(Tree(x3, x4)), x4)), java.lang.Object(java.lang.String(x5)))
Cond_Load35058ARR1(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(Tree(java.lang.Object(Tree(x3, x4)), x4)), java.lang.Object(java.lang.String(x5)))
Load35058ARR2(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(Tree(x3, java.lang.Object(Tree(x3, x4)))), java.lang.Object(java.lang.String(x5)))
Cond_Load35058ARR2(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(Tree(x3, java.lang.Object(Tree(x3, x4)))), java.lang.Object(java.lang.String(x5)))

### (10) ItpfGraphProof (EQUIVALENT transformation)

Applied rule ItpfICap [ICap]

### (11) 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): LOAD35058(java.lang.Object(ARRAY(i4[0], a115115data[0])), i5816[0], java.lang.Object(Tree(o96125[0], o96126[0]))) → LOAD35058ARR1(java.lang.Object(ARRAY(i4[0], a115115data[0])), i5816[0], java.lang.Object(Tree(o96125[0], o96126[0])), java.lang.Object(java.lang.String(i5968[0])))
(1): LOAD35058ARR1(java.lang.Object(ARRAY(i4[1], a115115data[1])), i5816[1], java.lang.Object(Tree(java.lang.Object(Tree(o96125[1], o96126[1])), o96126[1])), java.lang.Object(java.lang.String(i5968[1]))) → COND_LOAD35058ARR1(i5968[1] <= 42 && i5816[1] > 0 && i5816[1] < i4[1] && i5816[1] + 1 > 0, java.lang.Object(ARRAY(i4[1], a115115data[1])), i5816[1], java.lang.Object(Tree(java.lang.Object(Tree(o96125[1], o96126[1])), o96126[1])), java.lang.Object(java.lang.String(i5968[1])))
(2): COND_LOAD35058ARR1(TRUE, java.lang.Object(ARRAY(i4[2], a115115data[2])), i5816[2], java.lang.Object(Tree(java.lang.Object(Tree(o96125[2], o96126[2])), o96126[2])), java.lang.Object(java.lang.String(i5968[2]))) → LOAD35058(java.lang.Object(ARRAY(i4[2], a115115data[2])), i5816[2] + 1, o96126[2])
(3): LOAD35058(java.lang.Object(ARRAY(i4[3], a115115data[3])), i5816[3], java.lang.Object(Tree(o96140[3], o96141[3]))) → LOAD35058ARR2(java.lang.Object(ARRAY(i4[3], a115115data[3])), i5816[3], java.lang.Object(Tree(o96140[3], o96141[3])), java.lang.Object(java.lang.String(i5968[3])))
(4): LOAD35058ARR2(java.lang.Object(ARRAY(i4[4], a115115data[4])), i5816[4], java.lang.Object(Tree(o96140[4], java.lang.Object(Tree(o96140[4], o96141[4])))), java.lang.Object(java.lang.String(i5968[4]))) → COND_LOAD35058ARR2(i5968[4] > 42 && i5816[4] > 0 && i5816[4] < i4[4] && i5816[4] + 1 > 0, java.lang.Object(ARRAY(i4[4], a115115data[4])), i5816[4], java.lang.Object(Tree(o96140[4], java.lang.Object(Tree(o96140[4], o96141[4])))), java.lang.Object(java.lang.String(i5968[4])))
(5): COND_LOAD35058ARR2(TRUE, java.lang.Object(ARRAY(i4[5], a115115data[5])), i5816[5], java.lang.Object(Tree(o96140[5], java.lang.Object(Tree(o96140[5], o96141[5])))), java.lang.Object(java.lang.String(i5968[5]))) → LOAD35058(java.lang.Object(ARRAY(i4[5], a115115data[5])), i5816[5] + 1, o96140[5])

(0) -> (1), if (((i5968[0]* i5968[1]))∧((i4[0]* i4[1])∧(a115115data[0]* a115115data[1]))∧(i5816[0]* i5816[1])∧((o96125[0]* java.lang.Object(Tree(o96125[1], o96126[1])))∧(o96126[0]* o96126[1])))

(1) -> (2), if (((i4[1]* i4[2])∧(a115115data[1]* a115115data[2]))∧(i5968[1] <= 42 && i5816[1] > 0 && i5816[1] < i4[1] && i5816[1] + 1 > 0* TRUE)∧((o96125[1]* o96125[2])∧(o96126[1]* o96126[2]))∧(i5816[1]* i5816[2])∧((i5968[1]* i5968[2])))

(2) -> (0), if ((o96126[2]* java.lang.Object(Tree(o96125[0], o96126[0])))∧(i5816[2] + 1* i5816[0])∧((i4[2]* i4[0])∧(a115115data[2]* a115115data[0])))

(2) -> (3), if (((i4[2]* i4[3])∧(a115115data[2]* a115115data[3]))∧(i5816[2] + 1* i5816[3])∧(o96126[2]* java.lang.Object(Tree(o96140[3], o96141[3]))))

(3) -> (4), if (((o96140[3]* o96140[4])∧(o96141[3]* java.lang.Object(Tree(o96140[4], o96141[4]))))∧((i4[3]* i4[4])∧(a115115data[3]* a115115data[4]))∧((i5968[3]* i5968[4]))∧(i5816[3]* i5816[4]))

(4) -> (5), if ((i5816[4]* i5816[5])∧((i4[4]* i4[5])∧(a115115data[4]* a115115data[5]))∧(i5968[4] > 42 && i5816[4] > 0 && i5816[4] < i4[4] && i5816[4] + 1 > 0* TRUE)∧((i5968[4]* i5968[5]))∧((o96140[4]* o96140[5])∧(o96141[4]* o96141[5])))

(5) -> (0), if (((i4[5]* i4[0])∧(a115115data[5]* a115115data[0]))∧(i5816[5] + 1* i5816[0])∧(o96140[5]* java.lang.Object(Tree(o96125[0], o96126[0]))))

(5) -> (3), if ((i5816[5] + 1* i5816[3])∧((i4[5]* i4[3])∧(a115115data[5]* a115115data[3]))∧(o96140[5]* java.lang.Object(Tree(o96140[3], o96141[3]))))

The set Q consists of the following terms:
Load35058ARR1(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(Tree(java.lang.Object(Tree(x3, x4)), x4)), java.lang.Object(java.lang.String(x5)))
Cond_Load35058ARR1(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(Tree(java.lang.Object(Tree(x3, x4)), x4)), java.lang.Object(java.lang.String(x5)))
Load35058ARR2(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(Tree(x3, java.lang.Object(Tree(x3, x4)))), java.lang.Object(java.lang.String(x5)))
Cond_Load35058ARR2(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(Tree(x3, java.lang.Object(Tree(x3, x4)))), java.lang.Object(java.lang.String(x5)))

### (12) 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 LOAD35058(java.lang.Object(ARRAY(i4, a115115data)), i5816, java.lang.Object(Tree(o96125, o96126))) → LOAD35058ARR1(java.lang.Object(ARRAY(i4, a115115data)), i5816, java.lang.Object(Tree(o96125, o96126)), java.lang.Object(java.lang.String(i5968))) the following chains were created:
• We consider the chain COND_LOAD35058ARR1(TRUE, java.lang.Object(ARRAY(i4[2], a115115data[2])), i5816[2], java.lang.Object(Tree(java.lang.Object(Tree(o96125[2], o96126[2])), o96126[2])), java.lang.Object(java.lang.String(i5968[2]))) → LOAD35058(java.lang.Object(ARRAY(i4[2], a115115data[2])), +(i5816[2], 1), o96126[2]), LOAD35058(java.lang.Object(ARRAY(i4[0], a115115data[0])), i5816[0], java.lang.Object(Tree(o96125[0], o96126[0]))) → LOAD35058ARR1(java.lang.Object(ARRAY(i4[0], a115115data[0])), i5816[0], java.lang.Object(Tree(o96125[0], o96126[0])), java.lang.Object(java.lang.String(i5968[0]))), LOAD35058ARR1(java.lang.Object(ARRAY(i4[1], a115115data[1])), i5816[1], java.lang.Object(Tree(java.lang.Object(Tree(o96125[1], o96126[1])), o96126[1])), java.lang.Object(java.lang.String(i5968[1]))) → COND_LOAD35058ARR1(&&(&&(&&(<=(i5968[1], 42), >(i5816[1], 0)), <(i5816[1], i4[1])), >(+(i5816[1], 1), 0)), java.lang.Object(ARRAY(i4[1], a115115data[1])), i5816[1], java.lang.Object(Tree(java.lang.Object(Tree(o96125[1], o96126[1])), o96126[1])), java.lang.Object(java.lang.String(i5968[1]))) which results in the following constraint:

(1)    (o96126[2]=java.lang.Object(Tree(o96125[0], o96126[0]))∧+(i5816[2], 1)=i5816[0]i4[2]=i4[0]a115115data[2]=a115115data[0]i5968[0]=i5968[1]i4[0]=i4[1]a115115data[0]=a115115data[1]i5816[0]=i5816[1]o96125[0]=java.lang.Object(Tree(o96125[1], o96126[1]))∧o96126[0]=o96126[1]LOAD35058(java.lang.Object(ARRAY(i4[0], a115115data[0])), i5816[0], java.lang.Object(Tree(o96125[0], o96126[0])))≥LOAD35058ARR1(java.lang.Object(ARRAY(i4[0], a115115data[0])), i5816[0], java.lang.Object(Tree(o96125[0], o96126[0])), java.lang.Object(java.lang.String(i5968[0])))∧(UIncreasing(LOAD35058ARR1(java.lang.Object(ARRAY(i4[0], a115115data[0])), i5816[0], java.lang.Object(Tree(o96125[0], o96126[0])), java.lang.Object(java.lang.String(i5968[0])))), ≥))

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

(2)    (LOAD35058(java.lang.Object(ARRAY(i4[2], a115115data[2])), +(i5816[2], 1), java.lang.Object(Tree(java.lang.Object(Tree(o96125[1], o96126[0])), o96126[0])))≥LOAD35058ARR1(java.lang.Object(ARRAY(i4[2], a115115data[2])), +(i5816[2], 1), java.lang.Object(Tree(java.lang.Object(Tree(o96125[1], o96126[0])), o96126[0])), java.lang.Object(java.lang.String(i5968[0])))∧(UIncreasing(LOAD35058ARR1(java.lang.Object(ARRAY(i4[0], a115115data[0])), i5816[0], java.lang.Object(Tree(o96125[0], o96126[0])), java.lang.Object(java.lang.String(i5968[0])))), ≥))

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

(3)    ((UIncreasing(LOAD35058ARR1(java.lang.Object(ARRAY(i4[0], a115115data[0])), i5816[0], java.lang.Object(Tree(o96125[0], o96126[0])), java.lang.Object(java.lang.String(i5968[0])))), ≥)∧[3 + (-1)bso_37] ≥ 0)

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

(4)    ((UIncreasing(LOAD35058ARR1(java.lang.Object(ARRAY(i4[0], a115115data[0])), i5816[0], java.lang.Object(Tree(o96125[0], o96126[0])), java.lang.Object(java.lang.String(i5968[0])))), ≥)∧[3 + (-1)bso_37] ≥ 0)

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

(5)    ((UIncreasing(LOAD35058ARR1(java.lang.Object(ARRAY(i4[0], a115115data[0])), i5816[0], java.lang.Object(Tree(o96125[0], o96126[0])), java.lang.Object(java.lang.String(i5968[0])))), ≥)∧[3 + (-1)bso_37] ≥ 0)

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

(6)    ((UIncreasing(LOAD35058ARR1(java.lang.Object(ARRAY(i4[0], a115115data[0])), i5816[0], java.lang.Object(Tree(o96125[0], o96126[0])), java.lang.Object(java.lang.String(i5968[0])))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[3 + (-1)bso_37] ≥ 0)

• We consider the chain COND_LOAD35058ARR2(TRUE, java.lang.Object(ARRAY(i4[5], a115115data[5])), i5816[5], java.lang.Object(Tree(o96140[5], java.lang.Object(Tree(o96140[5], o96141[5])))), java.lang.Object(java.lang.String(i5968[5]))) → LOAD35058(java.lang.Object(ARRAY(i4[5], a115115data[5])), +(i5816[5], 1), o96140[5]), LOAD35058(java.lang.Object(ARRAY(i4[0], a115115data[0])), i5816[0], java.lang.Object(Tree(o96125[0], o96126[0]))) → LOAD35058ARR1(java.lang.Object(ARRAY(i4[0], a115115data[0])), i5816[0], java.lang.Object(Tree(o96125[0], o96126[0])), java.lang.Object(java.lang.String(i5968[0]))), LOAD35058ARR1(java.lang.Object(ARRAY(i4[1], a115115data[1])), i5816[1], java.lang.Object(Tree(java.lang.Object(Tree(o96125[1], o96126[1])), o96126[1])), java.lang.Object(java.lang.String(i5968[1]))) → COND_LOAD35058ARR1(&&(&&(&&(<=(i5968[1], 42), >(i5816[1], 0)), <(i5816[1], i4[1])), >(+(i5816[1], 1), 0)), java.lang.Object(ARRAY(i4[1], a115115data[1])), i5816[1], java.lang.Object(Tree(java.lang.Object(Tree(o96125[1], o96126[1])), o96126[1])), java.lang.Object(java.lang.String(i5968[1]))) which results in the following constraint:

(7)    (i4[5]=i4[0]a115115data[5]=a115115data[0]+(i5816[5], 1)=i5816[0]o96140[5]=java.lang.Object(Tree(o96125[0], o96126[0]))∧i5968[0]=i5968[1]i4[0]=i4[1]a115115data[0]=a115115data[1]i5816[0]=i5816[1]o96125[0]=java.lang.Object(Tree(o96125[1], o96126[1]))∧o96126[0]=o96126[1]LOAD35058(java.lang.Object(ARRAY(i4[0], a115115data[0])), i5816[0], java.lang.Object(Tree(o96125[0], o96126[0])))≥LOAD35058ARR1(java.lang.Object(ARRAY(i4[0], a115115data[0])), i5816[0], java.lang.Object(Tree(o96125[0], o96126[0])), java.lang.Object(java.lang.String(i5968[0])))∧(UIncreasing(LOAD35058ARR1(java.lang.Object(ARRAY(i4[0], a115115data[0])), i5816[0], java.lang.Object(Tree(o96125[0], o96126[0])), java.lang.Object(java.lang.String(i5968[0])))), ≥))

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

(8)    (LOAD35058(java.lang.Object(ARRAY(i4[5], a115115data[5])), +(i5816[5], 1), java.lang.Object(Tree(java.lang.Object(Tree(o96125[1], o96126[0])), o96126[0])))≥LOAD35058ARR1(java.lang.Object(ARRAY(i4[5], a115115data[5])), +(i5816[5], 1), java.lang.Object(Tree(java.lang.Object(Tree(o96125[1], o96126[0])), o96126[0])), java.lang.Object(java.lang.String(i5968[0])))∧(UIncreasing(LOAD35058ARR1(java.lang.Object(ARRAY(i4[0], a115115data[0])), i5816[0], java.lang.Object(Tree(o96125[0], o96126[0])), java.lang.Object(java.lang.String(i5968[0])))), ≥))

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

(9)    ((UIncreasing(LOAD35058ARR1(java.lang.Object(ARRAY(i4[0], a115115data[0])), i5816[0], java.lang.Object(Tree(o96125[0], o96126[0])), java.lang.Object(java.lang.String(i5968[0])))), ≥)∧[3 + (-1)bso_37] ≥ 0)

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

(10)    ((UIncreasing(LOAD35058ARR1(java.lang.Object(ARRAY(i4[0], a115115data[0])), i5816[0], java.lang.Object(Tree(o96125[0], o96126[0])), java.lang.Object(java.lang.String(i5968[0])))), ≥)∧[3 + (-1)bso_37] ≥ 0)

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

(11)    ((UIncreasing(LOAD35058ARR1(java.lang.Object(ARRAY(i4[0], a115115data[0])), i5816[0], java.lang.Object(Tree(o96125[0], o96126[0])), java.lang.Object(java.lang.String(i5968[0])))), ≥)∧[3 + (-1)bso_37] ≥ 0)

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

(12)    ((UIncreasing(LOAD35058ARR1(java.lang.Object(ARRAY(i4[0], a115115data[0])), i5816[0], java.lang.Object(Tree(o96125[0], o96126[0])), java.lang.Object(java.lang.String(i5968[0])))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[3 + (-1)bso_37] ≥ 0)

For Pair LOAD35058ARR1(java.lang.Object(ARRAY(i4, a115115data)), i5816, java.lang.Object(Tree(java.lang.Object(Tree(o96125, o96126)), o96126)), java.lang.Object(java.lang.String(i5968))) → COND_LOAD35058ARR1(&&(&&(&&(<=(i5968, 42), >(i5816, 0)), <(i5816, i4)), >(+(i5816, 1), 0)), java.lang.Object(ARRAY(i4, a115115data)), i5816, java.lang.Object(Tree(java.lang.Object(Tree(o96125, o96126)), o96126)), java.lang.Object(java.lang.String(i5968))) the following chains were created:
• We consider the chain LOAD35058ARR1(java.lang.Object(ARRAY(i4[1], a115115data[1])), i5816[1], java.lang.Object(Tree(java.lang.Object(Tree(o96125[1], o96126[1])), o96126[1])), java.lang.Object(java.lang.String(i5968[1]))) → COND_LOAD35058ARR1(&&(&&(&&(<=(i5968[1], 42), >(i5816[1], 0)), <(i5816[1], i4[1])), >(+(i5816[1], 1), 0)), java.lang.Object(ARRAY(i4[1], a115115data[1])), i5816[1], java.lang.Object(Tree(java.lang.Object(Tree(o96125[1], o96126[1])), o96126[1])), java.lang.Object(java.lang.String(i5968[1]))), COND_LOAD35058ARR1(TRUE, java.lang.Object(ARRAY(i4[2], a115115data[2])), i5816[2], java.lang.Object(Tree(java.lang.Object(Tree(o96125[2], o96126[2])), o96126[2])), java.lang.Object(java.lang.String(i5968[2]))) → LOAD35058(java.lang.Object(ARRAY(i4[2], a115115data[2])), +(i5816[2], 1), o96126[2]) which results in the following constraint:

(13)    (i4[1]=i4[2]a115115data[1]=a115115data[2]&&(&&(&&(<=(i5968[1], 42), >(i5816[1], 0)), <(i5816[1], i4[1])), >(+(i5816[1], 1), 0))=TRUEo96125[1]=o96125[2]o96126[1]=o96126[2]i5816[1]=i5816[2]i5968[1]=i5968[2]LOAD35058ARR1(java.lang.Object(ARRAY(i4[1], a115115data[1])), i5816[1], java.lang.Object(Tree(java.lang.Object(Tree(o96125[1], o96126[1])), o96126[1])), java.lang.Object(java.lang.String(i5968[1])))≥COND_LOAD35058ARR1(&&(&&(&&(<=(i5968[1], 42), >(i5816[1], 0)), <(i5816[1], i4[1])), >(+(i5816[1], 1), 0)), java.lang.Object(ARRAY(i4[1], a115115data[1])), i5816[1], java.lang.Object(Tree(java.lang.Object(Tree(o96125[1], o96126[1])), o96126[1])), java.lang.Object(java.lang.String(i5968[1])))∧(UIncreasing(COND_LOAD35058ARR1(&&(&&(&&(<=(i5968[1], 42), >(i5816[1], 0)), <(i5816[1], i4[1])), >(+(i5816[1], 1), 0)), java.lang.Object(ARRAY(i4[1], a115115data[1])), i5816[1], java.lang.Object(Tree(java.lang.Object(Tree(o96125[1], o96126[1])), o96126[1])), java.lang.Object(java.lang.String(i5968[1])))), ≥))

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

(14)    (&&(&&(&&(<=(i5968[1], 42), >(i5816[1], 0)), <(i5816[1], i4[1])), >(+(i5816[1], 1), 0))=TRUELOAD35058ARR1(java.lang.Object(ARRAY(i4[1], a115115data[1])), i5816[1], java.lang.Object(Tree(java.lang.Object(Tree(o96125[1], o96126[1])), o96126[1])), java.lang.Object(java.lang.String(i5968[1])))≥COND_LOAD35058ARR1(&&(&&(&&(<=(i5968[1], 42), >(i5816[1], 0)), <(i5816[1], i4[1])), >(+(i5816[1], 1), 0)), java.lang.Object(ARRAY(i4[1], a115115data[1])), i5816[1], java.lang.Object(Tree(java.lang.Object(Tree(o96125[1], o96126[1])), o96126[1])), java.lang.Object(java.lang.String(i5968[1])))∧(UIncreasing(COND_LOAD35058ARR1(&&(&&(&&(<=(i5968[1], 42), >(i5816[1], 0)), <(i5816[1], i4[1])), >(+(i5816[1], 1), 0)), java.lang.Object(ARRAY(i4[1], a115115data[1])), i5816[1], java.lang.Object(Tree(java.lang.Object(Tree(o96125[1], o96126[1])), o96126[1])), java.lang.Object(java.lang.String(i5968[1])))), ≥))

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

(15)    (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD35058ARR1(&&(&&(&&(<=(i5968[1], 42), >(i5816[1], 0)), <(i5816[1], i4[1])), >(+(i5816[1], 1), 0)), java.lang.Object(ARRAY(i4[1], a115115data[1])), i5816[1], java.lang.Object(Tree(java.lang.Object(Tree(o96125[1], o96126[1])), o96126[1])), java.lang.Object(java.lang.String(i5968[1])))), ≥)∧[3 + (-1)bso_38] ≥ 0)

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

(16)    (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD35058ARR1(&&(&&(&&(<=(i5968[1], 42), >(i5816[1], 0)), <(i5816[1], i4[1])), >(+(i5816[1], 1), 0)), java.lang.Object(ARRAY(i4[1], a115115data[1])), i5816[1], java.lang.Object(Tree(java.lang.Object(Tree(o96125[1], o96126[1])), o96126[1])), java.lang.Object(java.lang.String(i5968[1])))), ≥)∧[3 + (-1)bso_38] ≥ 0)

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

(17)    (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD35058ARR1(&&(&&(&&(<=(i5968[1], 42), >(i5816[1], 0)), <(i5816[1], i4[1])), >(+(i5816[1], 1), 0)), java.lang.Object(ARRAY(i4[1], a115115data[1])), i5816[1], java.lang.Object(Tree(java.lang.Object(Tree(o96125[1], o96126[1])), o96126[1])), java.lang.Object(java.lang.String(i5968[1])))), ≥)∧[3 + (-1)bso_38] ≥ 0)

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

(18)    (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD35058ARR1(&&(&&(&&(<=(i5968[1], 42), >(i5816[1], 0)), <(i5816[1], i4[1])), >(+(i5816[1], 1), 0)), java.lang.Object(ARRAY(i4[1], a115115data[1])), i5816[1], java.lang.Object(Tree(java.lang.Object(Tree(o96125[1], o96126[1])), o96126[1])), java.lang.Object(java.lang.String(i5968[1])))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[3 + (-1)bso_38] ≥ 0)

For Pair COND_LOAD35058ARR1(TRUE, java.lang.Object(ARRAY(i4, a115115data)), i5816, java.lang.Object(Tree(java.lang.Object(Tree(o96125, o96126)), o96126)), java.lang.Object(java.lang.String(i5968))) → LOAD35058(java.lang.Object(ARRAY(i4, a115115data)), +(i5816, 1), o96126) the following chains were created:
• We consider the chain LOAD35058ARR1(java.lang.Object(ARRAY(i4[1], a115115data[1])), i5816[1], java.lang.Object(Tree(java.lang.Object(Tree(o96125[1], o96126[1])), o96126[1])), java.lang.Object(java.lang.String(i5968[1]))) → COND_LOAD35058ARR1(&&(&&(&&(<=(i5968[1], 42), >(i5816[1], 0)), <(i5816[1], i4[1])), >(+(i5816[1], 1), 0)), java.lang.Object(ARRAY(i4[1], a115115data[1])), i5816[1], java.lang.Object(Tree(java.lang.Object(Tree(o96125[1], o96126[1])), o96126[1])), java.lang.Object(java.lang.String(i5968[1]))), COND_LOAD35058ARR1(TRUE, java.lang.Object(ARRAY(i4[2], a115115data[2])), i5816[2], java.lang.Object(Tree(java.lang.Object(Tree(o96125[2], o96126[2])), o96126[2])), java.lang.Object(java.lang.String(i5968[2]))) → LOAD35058(java.lang.Object(ARRAY(i4[2], a115115data[2])), +(i5816[2], 1), o96126[2]), LOAD35058(java.lang.Object(ARRAY(i4[0], a115115data[0])), i5816[0], java.lang.Object(Tree(o96125[0], o96126[0]))) → LOAD35058ARR1(java.lang.Object(ARRAY(i4[0], a115115data[0])), i5816[0], java.lang.Object(Tree(o96125[0], o96126[0])), java.lang.Object(java.lang.String(i5968[0]))) which results in the following constraint:

(19)    (i4[1]=i4[2]a115115data[1]=a115115data[2]&&(&&(&&(<=(i5968[1], 42), >(i5816[1], 0)), <(i5816[1], i4[1])), >(+(i5816[1], 1), 0))=TRUEo96125[1]=o96125[2]o96126[1]=o96126[2]i5816[1]=i5816[2]i5968[1]=i5968[2]o96126[2]=java.lang.Object(Tree(o96125[0], o96126[0]))∧+(i5816[2], 1)=i5816[0]i4[2]=i4[0]a115115data[2]=a115115data[0]COND_LOAD35058ARR1(TRUE, java.lang.Object(ARRAY(i4[2], a115115data[2])), i5816[2], java.lang.Object(Tree(java.lang.Object(Tree(o96125[2], o96126[2])), o96126[2])), java.lang.Object(java.lang.String(i5968[2])))≥LOAD35058(java.lang.Object(ARRAY(i4[2], a115115data[2])), +(i5816[2], 1), o96126[2])∧(UIncreasing(LOAD35058(java.lang.Object(ARRAY(i4[2], a115115data[2])), +(i5816[2], 1), o96126[2])), ≥))

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

(20)    (&&(&&(&&(<=(i5968[1], 42), >(i5816[1], 0)), <(i5816[1], i4[1])), >(+(i5816[1], 1), 0))=TRUECOND_LOAD35058ARR1(TRUE, java.lang.Object(ARRAY(i4[1], a115115data[1])), i5816[1], java.lang.Object(Tree(java.lang.Object(Tree(o96125[1], java.lang.Object(Tree(o96125[0], o96126[0])))), java.lang.Object(Tree(o96125[0], o96126[0])))), java.lang.Object(java.lang.String(i5968[1])))≥LOAD35058(java.lang.Object(ARRAY(i4[1], a115115data[1])), +(i5816[1], 1), java.lang.Object(Tree(o96125[0], o96126[0])))∧(UIncreasing(LOAD35058(java.lang.Object(ARRAY(i4[2], a115115data[2])), +(i5816[2], 1), o96126[2])), ≥))

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

(21)    (0 ≥ 0 ⇒ (UIncreasing(LOAD35058(java.lang.Object(ARRAY(i4[2], a115115data[2])), +(i5816[2], 1), o96126[2])), ≥)∧[186 + (-1)bso_39] + [152]o96126[0] + [152]o96125[0] + [32]o96125[1] ≥ 0)

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

(22)    (0 ≥ 0 ⇒ (UIncreasing(LOAD35058(java.lang.Object(ARRAY(i4[2], a115115data[2])), +(i5816[2], 1), o96126[2])), ≥)∧[186 + (-1)bso_39] + [152]o96126[0] + [152]o96125[0] + [32]o96125[1] ≥ 0)

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

(23)    (0 ≥ 0 ⇒ (UIncreasing(LOAD35058(java.lang.Object(ARRAY(i4[2], a115115data[2])), +(i5816[2], 1), o96126[2])), ≥)∧[186 + (-1)bso_39] + [152]o96126[0] + [152]o96125[0] + [32]o96125[1] ≥ 0)

We simplified constraint (23) using rules (IDP_UNRESTRICTED_VARS), (IDP_POLY_GCD) which results in the following new constraint:

(24)    (0 ≥ 0 ⇒ (UIncreasing(LOAD35058(java.lang.Object(ARRAY(i4[2], a115115data[2])), +(i5816[2], 1), o96126[2])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[186 + (-1)bso_39] ≥ 0∧[1] ≥ 0∧[1] ≥ 0∧[1] ≥ 0)

• We consider the chain LOAD35058ARR1(java.lang.Object(ARRAY(i4[1], a115115data[1])), i5816[1], java.lang.Object(Tree(java.lang.Object(Tree(o96125[1], o96126[1])), o96126[1])), java.lang.Object(java.lang.String(i5968[1]))) → COND_LOAD35058ARR1(&&(&&(&&(<=(i5968[1], 42), >(i5816[1], 0)), <(i5816[1], i4[1])), >(+(i5816[1], 1), 0)), java.lang.Object(ARRAY(i4[1], a115115data[1])), i5816[1], java.lang.Object(Tree(java.lang.Object(Tree(o96125[1], o96126[1])), o96126[1])), java.lang.Object(java.lang.String(i5968[1]))), COND_LOAD35058ARR1(TRUE, java.lang.Object(ARRAY(i4[2], a115115data[2])), i5816[2], java.lang.Object(Tree(java.lang.Object(Tree(o96125[2], o96126[2])), o96126[2])), java.lang.Object(java.lang.String(i5968[2]))) → LOAD35058(java.lang.Object(ARRAY(i4[2], a115115data[2])), +(i5816[2], 1), o96126[2]), LOAD35058(java.lang.Object(ARRAY(i4[3], a115115data[3])), i5816[3], java.lang.Object(Tree(o96140[3], o96141[3]))) → LOAD35058ARR2(java.lang.Object(ARRAY(i4[3], a115115data[3])), i5816[3], java.lang.Object(Tree(o96140[3], o96141[3])), java.lang.Object(java.lang.String(i5968[3]))) which results in the following constraint:

(25)    (i4[1]=i4[2]a115115data[1]=a115115data[2]&&(&&(&&(<=(i5968[1], 42), >(i5816[1], 0)), <(i5816[1], i4[1])), >(+(i5816[1], 1), 0))=TRUEo96125[1]=o96125[2]o96126[1]=o96126[2]i5816[1]=i5816[2]i5968[1]=i5968[2]i4[2]=i4[3]a115115data[2]=a115115data[3]+(i5816[2], 1)=i5816[3]o96126[2]=java.lang.Object(Tree(o96140[3], o96141[3])) ⇒ COND_LOAD35058ARR1(TRUE, java.lang.Object(ARRAY(i4[2], a115115data[2])), i5816[2], java.lang.Object(Tree(java.lang.Object(Tree(o96125[2], o96126[2])), o96126[2])), java.lang.Object(java.lang.String(i5968[2])))≥LOAD35058(java.lang.Object(ARRAY(i4[2], a115115data[2])), +(i5816[2], 1), o96126[2])∧(UIncreasing(LOAD35058(java.lang.Object(ARRAY(i4[2], a115115data[2])), +(i5816[2], 1), o96126[2])), ≥))

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

(26)    (&&(&&(&&(<=(i5968[1], 42), >(i5816[1], 0)), <(i5816[1], i4[1])), >(+(i5816[1], 1), 0))=TRUECOND_LOAD35058ARR1(TRUE, java.lang.Object(ARRAY(i4[1], a115115data[1])), i5816[1], java.lang.Object(Tree(java.lang.Object(Tree(o96125[1], java.lang.Object(Tree(o96140[3], o96141[3])))), java.lang.Object(Tree(o96140[3], o96141[3])))), java.lang.Object(java.lang.String(i5968[1])))≥LOAD35058(java.lang.Object(ARRAY(i4[1], a115115data[1])), +(i5816[1], 1), java.lang.Object(Tree(o96140[3], o96141[3])))∧(UIncreasing(LOAD35058(java.lang.Object(ARRAY(i4[2], a115115data[2])), +(i5816[2], 1), o96126[2])), ≥))

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

(27)    (0 ≥ 0 ⇒ (UIncreasing(LOAD35058(java.lang.Object(ARRAY(i4[2], a115115data[2])), +(i5816[2], 1), o96126[2])), ≥)∧[186 + (-1)bso_39] + [152]o96141[3] + [152]o96140[3] + [32]o96125[1] ≥ 0)

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

(28)    (0 ≥ 0 ⇒ (UIncreasing(LOAD35058(java.lang.Object(ARRAY(i4[2], a115115data[2])), +(i5816[2], 1), o96126[2])), ≥)∧[186 + (-1)bso_39] + [152]o96141[3] + [152]o96140[3] + [32]o96125[1] ≥ 0)

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

(29)    (0 ≥ 0 ⇒ (UIncreasing(LOAD35058(java.lang.Object(ARRAY(i4[2], a115115data[2])), +(i5816[2], 1), o96126[2])), ≥)∧[186 + (-1)bso_39] + [152]o96141[3] + [152]o96140[3] + [32]o96125[1] ≥ 0)

We simplified constraint (29) using rules (IDP_UNRESTRICTED_VARS), (IDP_POLY_GCD) which results in the following new constraint:

(30)    (0 ≥ 0 ⇒ (UIncreasing(LOAD35058(java.lang.Object(ARRAY(i4[2], a115115data[2])), +(i5816[2], 1), o96126[2])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[186 + (-1)bso_39] ≥ 0∧[1] ≥ 0∧[1] ≥ 0∧[1] ≥ 0)

For Pair LOAD35058(java.lang.Object(ARRAY(i4, a115115data)), i5816, java.lang.Object(Tree(o96140, o96141))) → LOAD35058ARR2(java.lang.Object(ARRAY(i4, a115115data)), i5816, java.lang.Object(Tree(o96140, o96141)), java.lang.Object(java.lang.String(i5968))) the following chains were created:
• We consider the chain COND_LOAD35058ARR1(TRUE, java.lang.Object(ARRAY(i4[2], a115115data[2])), i5816[2], java.lang.Object(Tree(java.lang.Object(Tree(o96125[2], o96126[2])), o96126[2])), java.lang.Object(java.lang.String(i5968[2]))) → LOAD35058(java.lang.Object(ARRAY(i4[2], a115115data[2])), +(i5816[2], 1), o96126[2]), LOAD35058(java.lang.Object(ARRAY(i4[3], a115115data[3])), i5816[3], java.lang.Object(Tree(o96140[3], o96141[3]))) → LOAD35058ARR2(java.lang.Object(ARRAY(i4[3], a115115data[3])), i5816[3], java.lang.Object(Tree(o96140[3], o96141[3])), java.lang.Object(java.lang.String(i5968[3]))), LOAD35058ARR2(java.lang.Object(ARRAY(i4[4], a115115data[4])), i5816[4], java.lang.Object(Tree(o96140[4], java.lang.Object(Tree(o96140[4], o96141[4])))), java.lang.Object(java.lang.String(i5968[4]))) → COND_LOAD35058ARR2(&&(&&(&&(>(i5968[4], 42), >(i5816[4], 0)), <(i5816[4], i4[4])), >(+(i5816[4], 1), 0)), java.lang.Object(ARRAY(i4[4], a115115data[4])), i5816[4], java.lang.Object(Tree(o96140[4], java.lang.Object(Tree(o96140[4], o96141[4])))), java.lang.Object(java.lang.String(i5968[4]))) which results in the following constraint:

(31)    (i4[2]=i4[3]a115115data[2]=a115115data[3]+(i5816[2], 1)=i5816[3]o96126[2]=java.lang.Object(Tree(o96140[3], o96141[3]))∧o96140[3]=o96140[4]o96141[3]=java.lang.Object(Tree(o96140[4], o96141[4]))∧i4[3]=i4[4]a115115data[3]=a115115data[4]i5968[3]=i5968[4]i5816[3]=i5816[4]LOAD35058(java.lang.Object(ARRAY(i4[3], a115115data[3])), i5816[3], java.lang.Object(Tree(o96140[3], o96141[3])))≥LOAD35058ARR2(java.lang.Object(ARRAY(i4[3], a115115data[3])), i5816[3], java.lang.Object(Tree(o96140[3], o96141[3])), java.lang.Object(java.lang.String(i5968[3])))∧(UIncreasing(LOAD35058ARR2(java.lang.Object(ARRAY(i4[3], a115115data[3])), i5816[3], java.lang.Object(Tree(o96140[3], o96141[3])), java.lang.Object(java.lang.String(i5968[3])))), ≥))

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

(32)    (LOAD35058(java.lang.Object(ARRAY(i4[2], a115115data[2])), +(i5816[2], 1), java.lang.Object(Tree(o96140[3], java.lang.Object(Tree(o96140[3], o96141[4])))))≥LOAD35058ARR2(java.lang.Object(ARRAY(i4[2], a115115data[2])), +(i5816[2], 1), java.lang.Object(Tree(o96140[3], java.lang.Object(Tree(o96140[3], o96141[4])))), java.lang.Object(java.lang.String(i5968[3])))∧(UIncreasing(LOAD35058ARR2(java.lang.Object(ARRAY(i4[3], a115115data[3])), i5816[3], java.lang.Object(Tree(o96140[3], o96141[3])), java.lang.Object(java.lang.String(i5968[3])))), ≥))

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

(33)    ((UIncreasing(LOAD35058ARR2(java.lang.Object(ARRAY(i4[3], a115115data[3])), i5816[3], java.lang.Object(Tree(o96140[3], o96141[3])), java.lang.Object(java.lang.String(i5968[3])))), ≥)∧[(-1)bso_40] ≥ 0)

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

(34)    ((UIncreasing(LOAD35058ARR2(java.lang.Object(ARRAY(i4[3], a115115data[3])), i5816[3], java.lang.Object(Tree(o96140[3], o96141[3])), java.lang.Object(java.lang.String(i5968[3])))), ≥)∧[(-1)bso_40] ≥ 0)

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

(35)    ((UIncreasing(LOAD35058ARR2(java.lang.Object(ARRAY(i4[3], a115115data[3])), i5816[3], java.lang.Object(Tree(o96140[3], o96141[3])), java.lang.Object(java.lang.String(i5968[3])))), ≥)∧[(-1)bso_40] ≥ 0)

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

(36)    ((UIncreasing(LOAD35058ARR2(java.lang.Object(ARRAY(i4[3], a115115data[3])), i5816[3], java.lang.Object(Tree(o96140[3], o96141[3])), java.lang.Object(java.lang.String(i5968[3])))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_40] ≥ 0)

• We consider the chain COND_LOAD35058ARR2(TRUE, java.lang.Object(ARRAY(i4[5], a115115data[5])), i5816[5], java.lang.Object(Tree(o96140[5], java.lang.Object(Tree(o96140[5], o96141[5])))), java.lang.Object(java.lang.String(i5968[5]))) → LOAD35058(java.lang.Object(ARRAY(i4[5], a115115data[5])), +(i5816[5], 1), o96140[5]), LOAD35058(java.lang.Object(ARRAY(i4[3], a115115data[3])), i5816[3], java.lang.Object(Tree(o96140[3], o96141[3]))) → LOAD35058ARR2(java.lang.Object(ARRAY(i4[3], a115115data[3])), i5816[3], java.lang.Object(Tree(o96140[3], o96141[3])), java.lang.Object(java.lang.String(i5968[3]))), LOAD35058ARR2(java.lang.Object(ARRAY(i4[4], a115115data[4])), i5816[4], java.lang.Object(Tree(o96140[4], java.lang.Object(Tree(o96140[4], o96141[4])))), java.lang.Object(java.lang.String(i5968[4]))) → COND_LOAD35058ARR2(&&(&&(&&(>(i5968[4], 42), >(i5816[4], 0)), <(i5816[4], i4[4])), >(+(i5816[4], 1), 0)), java.lang.Object(ARRAY(i4[4], a115115data[4])), i5816[4], java.lang.Object(Tree(o96140[4], java.lang.Object(Tree(o96140[4], o96141[4])))), java.lang.Object(java.lang.String(i5968[4]))) which results in the following constraint:

(37)    (+(i5816[5], 1)=i5816[3]i4[5]=i4[3]a115115data[5]=a115115data[3]o96140[5]=java.lang.Object(Tree(o96140[3], o96141[3]))∧o96140[3]=o96140[4]o96141[3]=java.lang.Object(Tree(o96140[4], o96141[4]))∧i4[3]=i4[4]a115115data[3]=a115115data[4]i5968[3]=i5968[4]i5816[3]=i5816[4]LOAD35058(java.lang.Object(ARRAY(i4[3], a115115data[3])), i5816[3], java.lang.Object(Tree(o96140[3], o96141[3])))≥LOAD35058ARR2(java.lang.Object(ARRAY(i4[3], a115115data[3])), i5816[3], java.lang.Object(Tree(o96140[3], o96141[3])), java.lang.Object(java.lang.String(i5968[3])))∧(UIncreasing(LOAD35058ARR2(java.lang.Object(ARRAY(i4[3], a115115data[3])), i5816[3], java.lang.Object(Tree(o96140[3], o96141[3])), java.lang.Object(java.lang.String(i5968[3])))), ≥))

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

(38)    (LOAD35058(java.lang.Object(ARRAY(i4[5], a115115data[5])), +(i5816[5], 1), java.lang.Object(Tree(o96140[3], java.lang.Object(Tree(o96140[3], o96141[4])))))≥LOAD35058ARR2(java.lang.Object(ARRAY(i4[5], a115115data[5])), +(i5816[5], 1), java.lang.Object(Tree(o96140[3], java.lang.Object(Tree(o96140[3], o96141[4])))), java.lang.Object(java.lang.String(i5968[3])))∧(UIncreasing(LOAD35058ARR2(java.lang.Object(ARRAY(i4[3], a115115data[3])), i5816[3], java.lang.Object(Tree(o96140[3], o96141[3])), java.lang.Object(java.lang.String(i5968[3])))), ≥))

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

(39)    ((UIncreasing(LOAD35058ARR2(java.lang.Object(ARRAY(i4[3], a115115data[3])), i5816[3], java.lang.Object(Tree(o96140[3], o96141[3])), java.lang.Object(java.lang.String(i5968[3])))), ≥)∧[(-1)bso_40] ≥ 0)

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

(40)    ((UIncreasing(LOAD35058ARR2(java.lang.Object(ARRAY(i4[3], a115115data[3])), i5816[3], java.lang.Object(Tree(o96140[3], o96141[3])), java.lang.Object(java.lang.String(i5968[3])))), ≥)∧[(-1)bso_40] ≥ 0)

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

(41)    ((UIncreasing(LOAD35058ARR2(java.lang.Object(ARRAY(i4[3], a115115data[3])), i5816[3], java.lang.Object(Tree(o96140[3], o96141[3])), java.lang.Object(java.lang.String(i5968[3])))), ≥)∧[(-1)bso_40] ≥ 0)

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

(42)    ((UIncreasing(LOAD35058ARR2(java.lang.Object(ARRAY(i4[3], a115115data[3])), i5816[3], java.lang.Object(Tree(o96140[3], o96141[3])), java.lang.Object(java.lang.String(i5968[3])))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_40] ≥ 0)

For Pair LOAD35058ARR2(java.lang.Object(ARRAY(i4, a115115data)), i5816, java.lang.Object(Tree(o96140, java.lang.Object(Tree(o96140, o96141)))), java.lang.Object(java.lang.String(i5968))) → COND_LOAD35058ARR2(&&(&&(&&(>(i5968, 42), >(i5816, 0)), <(i5816, i4)), >(+(i5816, 1), 0)), java.lang.Object(ARRAY(i4, a115115data)), i5816, java.lang.Object(Tree(o96140, java.lang.Object(Tree(o96140, o96141)))), java.lang.Object(java.lang.String(i5968))) the following chains were created:
• We consider the chain LOAD35058ARR2(java.lang.Object(ARRAY(i4[4], a115115data[4])), i5816[4], java.lang.Object(Tree(o96140[4], java.lang.Object(Tree(o96140[4], o96141[4])))), java.lang.Object(java.lang.String(i5968[4]))) → COND_LOAD35058ARR2(&&(&&(&&(>(i5968[4], 42), >(i5816[4], 0)), <(i5816[4], i4[4])), >(+(i5816[4], 1), 0)), java.lang.Object(ARRAY(i4[4], a115115data[4])), i5816[4], java.lang.Object(Tree(o96140[4], java.lang.Object(Tree(o96140[4], o96141[4])))), java.lang.Object(java.lang.String(i5968[4]))), COND_LOAD35058ARR2(TRUE, java.lang.Object(ARRAY(i4[5], a115115data[5])), i5816[5], java.lang.Object(Tree(o96140[5], java.lang.Object(Tree(o96140[5], o96141[5])))), java.lang.Object(java.lang.String(i5968[5]))) → LOAD35058(java.lang.Object(ARRAY(i4[5], a115115data[5])), +(i5816[5], 1), o96140[5]) which results in the following constraint:

(43)    (i5816[4]=i5816[5]i4[4]=i4[5]a115115data[4]=a115115data[5]&&(&&(&&(>(i5968[4], 42), >(i5816[4], 0)), <(i5816[4], i4[4])), >(+(i5816[4], 1), 0))=TRUEi5968[4]=i5968[5]o96140[4]=o96140[5]o96141[4]=o96141[5]LOAD35058ARR2(java.lang.Object(ARRAY(i4[4], a115115data[4])), i5816[4], java.lang.Object(Tree(o96140[4], java.lang.Object(Tree(o96140[4], o96141[4])))), java.lang.Object(java.lang.String(i5968[4])))≥COND_LOAD35058ARR2(&&(&&(&&(>(i5968[4], 42), >(i5816[4], 0)), <(i5816[4], i4[4])), >(+(i5816[4], 1), 0)), java.lang.Object(ARRAY(i4[4], a115115data[4])), i5816[4], java.lang.Object(Tree(o96140[4], java.lang.Object(Tree(o96140[4], o96141[4])))), java.lang.Object(java.lang.String(i5968[4])))∧(UIncreasing(COND_LOAD35058ARR2(&&(&&(&&(>(i5968[4], 42), >(i5816[4], 0)), <(i5816[4], i4[4])), >(+(i5816[4], 1), 0)), java.lang.Object(ARRAY(i4[4], a115115data[4])), i5816[4], java.lang.Object(Tree(o96140[4], java.lang.Object(Tree(o96140[4], o96141[4])))), java.lang.Object(java.lang.String(i5968[4])))), ≥))

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

(44)    (&&(&&(&&(>(i5968[4], 42), >(i5816[4], 0)), <(i5816[4], i4[4])), >(+(i5816[4], 1), 0))=TRUELOAD35058ARR2(java.lang.Object(ARRAY(i4[4], a115115data[4])), i5816[4], java.lang.Object(Tree(o96140[4], java.lang.Object(Tree(o96140[4], o96141[4])))), java.lang.Object(java.lang.String(i5968[4])))≥COND_LOAD35058ARR2(&&(&&(&&(>(i5968[4], 42), >(i5816[4], 0)), <(i5816[4], i4[4])), >(+(i5816[4], 1), 0)), java.lang.Object(ARRAY(i4[4], a115115data[4])), i5816[4], java.lang.Object(Tree(o96140[4], java.lang.Object(Tree(o96140[4], o96141[4])))), java.lang.Object(java.lang.String(i5968[4])))∧(UIncreasing(COND_LOAD35058ARR2(&&(&&(&&(>(i5968[4], 42), >(i5816[4], 0)), <(i5816[4], i4[4])), >(+(i5816[4], 1), 0)), java.lang.Object(ARRAY(i4[4], a115115data[4])), i5816[4], java.lang.Object(Tree(o96140[4], java.lang.Object(Tree(o96140[4], o96141[4])))), java.lang.Object(java.lang.String(i5968[4])))), ≥))

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

(45)    (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD35058ARR2(&&(&&(&&(>(i5968[4], 42), >(i5816[4], 0)), <(i5816[4], i4[4])), >(+(i5816[4], 1), 0)), java.lang.Object(ARRAY(i4[4], a115115data[4])), i5816[4], java.lang.Object(Tree(o96140[4], java.lang.Object(Tree(o96140[4], o96141[4])))), java.lang.Object(java.lang.String(i5968[4])))), ≥)∧[16 + (-1)bso_41] + [16]o96141[4] + [20]o96140[4] + i5816[4] ≥ 0)

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

(46)    (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD35058ARR2(&&(&&(&&(>(i5968[4], 42), >(i5816[4], 0)), <(i5816[4], i4[4])), >(+(i5816[4], 1), 0)), java.lang.Object(ARRAY(i4[4], a115115data[4])), i5816[4], java.lang.Object(Tree(o96140[4], java.lang.Object(Tree(o96140[4], o96141[4])))), java.lang.Object(java.lang.String(i5968[4])))), ≥)∧[16 + (-1)bso_41] + [16]o96141[4] + [20]o96140[4] + i5816[4] ≥ 0)

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

(47)    (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD35058ARR2(&&(&&(&&(>(i5968[4], 42), >(i5816[4], 0)), <(i5816[4], i4[4])), >(+(i5816[4], 1), 0)), java.lang.Object(ARRAY(i4[4], a115115data[4])), i5816[4], java.lang.Object(Tree(o96140[4], java.lang.Object(Tree(o96140[4], o96141[4])))), java.lang.Object(java.lang.String(i5968[4])))), ≥)∧[16 + (-1)bso_41] + [16]o96141[4] + [20]o96140[4] + i5816[4] ≥ 0)

We simplified constraint (47) using rules (IDP_UNRESTRICTED_VARS), (IDP_POLY_GCD) which results in the following new constraint:

(48)    (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD35058ARR2(&&(&&(&&(>(i5968[4], 42), >(i5816[4], 0)), <(i5816[4], i4[4])), >(+(i5816[4], 1), 0)), java.lang.Object(ARRAY(i4[4], a115115data[4])), i5816[4], java.lang.Object(Tree(o96140[4], java.lang.Object(Tree(o96140[4], o96141[4])))), java.lang.Object(java.lang.String(i5968[4])))), ≥)∧0 ≥ 0∧[1] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[16 + (-1)bso_41] ≥ 0∧[1] ≥ 0∧[1] ≥ 0)

For Pair COND_LOAD35058ARR2(TRUE, java.lang.Object(ARRAY(i4, a115115data)), i5816, java.lang.Object(Tree(o96140, java.lang.Object(Tree(o96140, o96141)))), java.lang.Object(java.lang.String(i5968))) → LOAD35058(java.lang.Object(ARRAY(i4, a115115data)), +(i5816, 1), o96140) the following chains were created:
• We consider the chain LOAD35058ARR2(java.lang.Object(ARRAY(i4[4], a115115data[4])), i5816[4], java.lang.Object(Tree(o96140[4], java.lang.Object(Tree(o96140[4], o96141[4])))), java.lang.Object(java.lang.String(i5968[4]))) → COND_LOAD35058ARR2(&&(&&(&&(>(i5968[4], 42), >(i5816[4], 0)), <(i5816[4], i4[4])), >(+(i5816[4], 1), 0)), java.lang.Object(ARRAY(i4[4], a115115data[4])), i5816[4], java.lang.Object(Tree(o96140[4], java.lang.Object(Tree(o96140[4], o96141[4])))), java.lang.Object(java.lang.String(i5968[4]))), COND_LOAD35058ARR2(TRUE, java.lang.Object(ARRAY(i4[5], a115115data[5])), i5816[5], java.lang.Object(Tree(o96140[5], java.lang.Object(Tree(o96140[5], o96141[5])))), java.lang.Object(java.lang.String(i5968[5]))) → LOAD35058(java.lang.Object(ARRAY(i4[5], a115115data[5])), +(i5816[5], 1), o96140[5]), LOAD35058(java.lang.Object(ARRAY(i4[0], a115115data[0])), i5816[0], java.lang.Object(Tree(o96125[0], o96126[0]))) → LOAD35058ARR1(java.lang.Object(ARRAY(i4[0], a115115data[0])), i5816[0], java.lang.Object(Tree(o96125[0], o96126[0])), java.lang.Object(java.lang.String(i5968[0]))) which results in the following constraint:

(49)    (i5816[4]=i5816[5]i4[4]=i4[5]a115115data[4]=a115115data[5]&&(&&(&&(>(i5968[4], 42), >(i5816[4], 0)), <(i5816[4], i4[4])), >(+(i5816[4], 1), 0))=TRUEi5968[4]=i5968[5]o96140[4]=o96140[5]o96141[4]=o96141[5]i4[5]=i4[0]a115115data[5]=a115115data[0]+(i5816[5], 1)=i5816[0]o96140[5]=java.lang.Object(Tree(o96125[0], o96126[0])) ⇒ COND_LOAD35058ARR2(TRUE, java.lang.Object(ARRAY(i4[5], a115115data[5])), i5816[5], java.lang.Object(Tree(o96140[5], java.lang.Object(Tree(o96140[5], o96141[5])))), java.lang.Object(java.lang.String(i5968[5])))≥LOAD35058(java.lang.Object(ARRAY(i4[5], a115115data[5])), +(i5816[5], 1), o96140[5])∧(UIncreasing(LOAD35058(java.lang.Object(ARRAY(i4[5], a115115data[5])), +(i5816[5], 1), o96140[5])), ≥))

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

(50)    (&&(&&(&&(>(i5968[4], 42), >(i5816[4], 0)), <(i5816[4], i4[4])), >(+(i5816[4], 1), 0))=TRUECOND_LOAD35058ARR2(TRUE, java.lang.Object(ARRAY(i4[4], a115115data[4])), i5816[4], java.lang.Object(Tree(java.lang.Object(Tree(o96125[0], o96126[0])), java.lang.Object(Tree(java.lang.Object(Tree(o96125[0], o96126[0])), o96141[4])))), java.lang.Object(java.lang.String(i5968[4])))≥LOAD35058(java.lang.Object(ARRAY(i4[4], a115115data[4])), +(i5816[4], 1), java.lang.Object(Tree(o96125[0], o96126[0])))∧(UIncreasing(LOAD35058(java.lang.Object(ARRAY(i4[5], a115115data[5])), +(i5816[5], 1), o96140[5])), ≥))

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

(51)    (0 ≥ 0 ⇒ (UIncreasing(LOAD35058(java.lang.Object(ARRAY(i4[5], a115115data[5])), +(i5816[5], 1), o96140[5])), ≥)∧[96 + (-1)bso_42] + [16]o96141[4] + [72]o96126[0] + [72]o96125[0] + i5816[4] ≥ 0)

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

(52)    (0 ≥ 0 ⇒ (UIncreasing(LOAD35058(java.lang.Object(ARRAY(i4[5], a115115data[5])), +(i5816[5], 1), o96140[5])), ≥)∧[96 + (-1)bso_42] + [16]o96141[4] + [72]o96126[0] + [72]o96125[0] + i5816[4] ≥ 0)

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

(53)    (0 ≥ 0 ⇒ (UIncreasing(LOAD35058(java.lang.Object(ARRAY(i4[5], a115115data[5])), +(i5816[5], 1), o96140[5])), ≥)∧[96 + (-1)bso_42] + [16]o96141[4] + [72]o96126[0] + [72]o96125[0] + i5816[4] ≥ 0)

We simplified constraint (53) using rules (IDP_UNRESTRICTED_VARS), (IDP_POLY_GCD) which results in the following new constraint:

(54)    (0 ≥ 0 ⇒ (UIncreasing(LOAD35058(java.lang.Object(ARRAY(i4[5], a115115data[5])), +(i5816[5], 1), o96140[5])), ≥)∧0 ≥ 0∧[1] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[96 + (-1)bso_42] ≥ 0∧[1] ≥ 0∧[1] ≥ 0∧[1] ≥ 0)

• We consider the chain LOAD35058ARR2(java.lang.Object(ARRAY(i4[4], a115115data[4])), i5816[4], java.lang.Object(Tree(o96140[4], java.lang.Object(Tree(o96140[4], o96141[4])))), java.lang.Object(java.lang.String(i5968[4]))) → COND_LOAD35058ARR2(&&(&&(&&(>(i5968[4], 42), >(i5816[4], 0)), <(i5816[4], i4[4])), >(+(i5816[4], 1), 0)), java.lang.Object(ARRAY(i4[4], a115115data[4])), i5816[4], java.lang.Object(Tree(o96140[4], java.lang.Object(Tree(o96140[4], o96141[4])))), java.lang.Object(java.lang.String(i5968[4]))), COND_LOAD35058ARR2(TRUE, java.lang.Object(ARRAY(i4[5], a115115data[5])), i5816[5], java.lang.Object(Tree(o96140[5], java.lang.Object(Tree(o96140[5], o96141[5])))), java.lang.Object(java.lang.String(i5968[5]))) → LOAD35058(java.lang.Object(ARRAY(i4[5], a115115data[5])), +(i5816[5], 1), o96140[5]), LOAD35058(java.lang.Object(ARRAY(i4[3], a115115data[3])), i5816[3], java.lang.Object(Tree(o96140[3], o96141[3]))) → LOAD35058ARR2(java.lang.Object(ARRAY(i4[3], a115115data[3])), i5816[3], java.lang.Object(Tree(o96140[3], o96141[3])), java.lang.Object(java.lang.String(i5968[3]))) which results in the following constraint:

(55)    (i5816[4]=i5816[5]i4[4]=i4[5]a115115data[4]=a115115data[5]&&(&&(&&(>(i5968[4], 42), >(i5816[4], 0)), <(i5816[4], i4[4])), >(+(i5816[4], 1), 0))=TRUEi5968[4]=i5968[5]o96140[4]=o96140[5]o96141[4]=o96141[5]+(i5816[5], 1)=i5816[3]i4[5]=i4[3]a115115data[5]=a115115data[3]o96140[5]=java.lang.Object(Tree(o96140[3], o96141[3])) ⇒ COND_LOAD35058ARR2(TRUE, java.lang.Object(ARRAY(i4[5], a115115data[5])), i5816[5], java.lang.Object(Tree(o96140[5], java.lang.Object(Tree(o96140[5], o96141[5])))), java.lang.Object(java.lang.String(i5968[5])))≥LOAD35058(java.lang.Object(ARRAY(i4[5], a115115data[5])), +(i5816[5], 1), o96140[5])∧(UIncreasing(LOAD35058(java.lang.Object(ARRAY(i4[5], a115115data[5])), +(i5816[5], 1), o96140[5])), ≥))

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

(56)    (&&(&&(&&(>(i5968[4], 42), >(i5816[4], 0)), <(i5816[4], i4[4])), >(+(i5816[4], 1), 0))=TRUECOND_LOAD35058ARR2(TRUE, java.lang.Object(ARRAY(i4[4], a115115data[4])), i5816[4], java.lang.Object(Tree(java.lang.Object(Tree(o96140[3], o96141[3])), java.lang.Object(Tree(java.lang.Object(Tree(o96140[3], o96141[3])), o96141[4])))), java.lang.Object(java.lang.String(i5968[4])))≥LOAD35058(java.lang.Object(ARRAY(i4[4], a115115data[4])), +(i5816[4], 1), java.lang.Object(Tree(o96140[3], o96141[3])))∧(UIncreasing(LOAD35058(java.lang.Object(ARRAY(i4[5], a115115data[5])), +(i5816[5], 1), o96140[5])), ≥))

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

(57)    (0 ≥ 0 ⇒ (UIncreasing(LOAD35058(java.lang.Object(ARRAY(i4[5], a115115data[5])), +(i5816[5], 1), o96140[5])), ≥)∧[96 + (-1)bso_42] + [16]o96141[4] + [72]o96141[3] + [72]o96140[3] + i5816[4] ≥ 0)

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

(58)    (0 ≥ 0 ⇒ (UIncreasing(LOAD35058(java.lang.Object(ARRAY(i4[5], a115115data[5])), +(i5816[5], 1), o96140[5])), ≥)∧[96 + (-1)bso_42] + [16]o96141[4] + [72]o96141[3] + [72]o96140[3] + i5816[4] ≥ 0)

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

(59)    (0 ≥ 0 ⇒ (UIncreasing(LOAD35058(java.lang.Object(ARRAY(i4[5], a115115data[5])), +(i5816[5], 1), o96140[5])), ≥)∧[96 + (-1)bso_42] + [16]o96141[4] + [72]o96141[3] + [72]o96140[3] + i5816[4] ≥ 0)

We simplified constraint (59) using rules (IDP_UNRESTRICTED_VARS), (IDP_POLY_GCD) which results in the following new constraint:

(60)    (0 ≥ 0 ⇒ (UIncreasing(LOAD35058(java.lang.Object(ARRAY(i4[5], a115115data[5])), +(i5816[5], 1), o96140[5])), ≥)∧0 ≥ 0∧[1] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[96 + (-1)bso_42] ≥ 0∧[1] ≥ 0∧[1] ≥ 0∧[1] ≥ 0)

To summarize, we get the following constraints P for the following pairs.
• LOAD35058(java.lang.Object(ARRAY(i4, a115115data)), i5816, java.lang.Object(Tree(o96125, o96126))) → LOAD35058ARR1(java.lang.Object(ARRAY(i4, a115115data)), i5816, java.lang.Object(Tree(o96125, o96126)), java.lang.Object(java.lang.String(i5968)))
• ((UIncreasing(LOAD35058ARR1(java.lang.Object(ARRAY(i4[0], a115115data[0])), i5816[0], java.lang.Object(Tree(o96125[0], o96126[0])), java.lang.Object(java.lang.String(i5968[0])))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[3 + (-1)bso_37] ≥ 0)
• ((UIncreasing(LOAD35058ARR1(java.lang.Object(ARRAY(i4[0], a115115data[0])), i5816[0], java.lang.Object(Tree(o96125[0], o96126[0])), java.lang.Object(java.lang.String(i5968[0])))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[3 + (-1)bso_37] ≥ 0)

• LOAD35058ARR1(java.lang.Object(ARRAY(i4, a115115data)), i5816, java.lang.Object(Tree(java.lang.Object(Tree(o96125, o96126)), o96126)), java.lang.Object(java.lang.String(i5968))) → COND_LOAD35058ARR1(&&(&&(&&(<=(i5968, 42), >(i5816, 0)), <(i5816, i4)), >(+(i5816, 1), 0)), java.lang.Object(ARRAY(i4, a115115data)), i5816, java.lang.Object(Tree(java.lang.Object(Tree(o96125, o96126)), o96126)), java.lang.Object(java.lang.String(i5968)))
• (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD35058ARR1(&&(&&(&&(<=(i5968[1], 42), >(i5816[1], 0)), <(i5816[1], i4[1])), >(+(i5816[1], 1), 0)), java.lang.Object(ARRAY(i4[1], a115115data[1])), i5816[1], java.lang.Object(Tree(java.lang.Object(Tree(o96125[1], o96126[1])), o96126[1])), java.lang.Object(java.lang.String(i5968[1])))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[3 + (-1)bso_38] ≥ 0)

• COND_LOAD35058ARR1(TRUE, java.lang.Object(ARRAY(i4, a115115data)), i5816, java.lang.Object(Tree(java.lang.Object(Tree(o96125, o96126)), o96126)), java.lang.Object(java.lang.String(i5968))) → LOAD35058(java.lang.Object(ARRAY(i4, a115115data)), +(i5816, 1), o96126)
• (0 ≥ 0 ⇒ (UIncreasing(LOAD35058(java.lang.Object(ARRAY(i4[2], a115115data[2])), +(i5816[2], 1), o96126[2])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[186 + (-1)bso_39] ≥ 0∧[1] ≥ 0∧[1] ≥ 0∧[1] ≥ 0)
• (0 ≥ 0 ⇒ (UIncreasing(LOAD35058(java.lang.Object(ARRAY(i4[2], a115115data[2])), +(i5816[2], 1), o96126[2])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[186 + (-1)bso_39] ≥ 0∧[1] ≥ 0∧[1] ≥ 0∧[1] ≥ 0)

• LOAD35058(java.lang.Object(ARRAY(i4, a115115data)), i5816, java.lang.Object(Tree(o96140, o96141))) → LOAD35058ARR2(java.lang.Object(ARRAY(i4, a115115data)), i5816, java.lang.Object(Tree(o96140, o96141)), java.lang.Object(java.lang.String(i5968)))
• ((UIncreasing(LOAD35058ARR2(java.lang.Object(ARRAY(i4[3], a115115data[3])), i5816[3], java.lang.Object(Tree(o96140[3], o96141[3])), java.lang.Object(java.lang.String(i5968[3])))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_40] ≥ 0)
• ((UIncreasing(LOAD35058ARR2(java.lang.Object(ARRAY(i4[3], a115115data[3])), i5816[3], java.lang.Object(Tree(o96140[3], o96141[3])), java.lang.Object(java.lang.String(i5968[3])))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_40] ≥ 0)

• LOAD35058ARR2(java.lang.Object(ARRAY(i4, a115115data)), i5816, java.lang.Object(Tree(o96140, java.lang.Object(Tree(o96140, o96141)))), java.lang.Object(java.lang.String(i5968))) → COND_LOAD35058ARR2(&&(&&(&&(>(i5968, 42), >(i5816, 0)), <(i5816, i4)), >(+(i5816, 1), 0)), java.lang.Object(ARRAY(i4, a115115data)), i5816, java.lang.Object(Tree(o96140, java.lang.Object(Tree(o96140, o96141)))), java.lang.Object(java.lang.String(i5968)))
• (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD35058ARR2(&&(&&(&&(>(i5968[4], 42), >(i5816[4], 0)), <(i5816[4], i4[4])), >(+(i5816[4], 1), 0)), java.lang.Object(ARRAY(i4[4], a115115data[4])), i5816[4], java.lang.Object(Tree(o96140[4], java.lang.Object(Tree(o96140[4], o96141[4])))), java.lang.Object(java.lang.String(i5968[4])))), ≥)∧0 ≥ 0∧[1] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[16 + (-1)bso_41] ≥ 0∧[1] ≥ 0∧[1] ≥ 0)

• COND_LOAD35058ARR2(TRUE, java.lang.Object(ARRAY(i4, a115115data)), i5816, java.lang.Object(Tree(o96140, java.lang.Object(Tree(o96140, o96141)))), java.lang.Object(java.lang.String(i5968))) → LOAD35058(java.lang.Object(ARRAY(i4, a115115data)), +(i5816, 1), o96140)
• (0 ≥ 0 ⇒ (UIncreasing(LOAD35058(java.lang.Object(ARRAY(i4[5], a115115data[5])), +(i5816[5], 1), o96140[5])), ≥)∧0 ≥ 0∧[1] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[96 + (-1)bso_42] ≥ 0∧[1] ≥ 0∧[1] ≥ 0∧[1] ≥ 0)
• (0 ≥ 0 ⇒ (UIncreasing(LOAD35058(java.lang.Object(ARRAY(i4[5], a115115data[5])), +(i5816[5], 1), o96140[5])), ≥)∧0 ≥ 0∧[1] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[96 + (-1)bso_42] ≥ 0∧[1] ≥ 0∧[1] ≥ 0∧[1] ≥ 0)

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

POL(TRUE) = 0
POL(FALSE) = 0
POL(LOAD35058(x1, x2, x3)) = [2]x3 + [2]x1
POL(java.lang.Object(x1)) = [2]x1
POL(ARRAY(x1, x2)) = [2]
POL(Tree(x1, x2)) = [2] + [2]x2 + [2]x1
POL(LOAD35058ARR1(x1, x2, x3, x4)) = [1] + x4 + [2]x3
POL(java.lang.String(x1)) = [2]
POL(COND_LOAD35058ARR1(x1, x2, x3, x4, x5)) = [2] + [2]x4
POL(&&(x1, x2)) = 0
POL(<=(x1, x2)) = 0
POL(42) = 0
POL(>(x1, x2)) = 0
POL(0) = 0
POL(<(x1, x2)) = 0
POL(+(x1, x2)) = 0
POL(1) = 0
POL(LOAD35058ARR2(x1, x2, x3, x4)) = [2]x3 + [2]x2 + [2]x1
POL(COND_LOAD35058ARR2(x1, x2, x3, x4, x5)) = [3]x5 + x4 + x3

The following pairs are in P>:

LOAD35058(java.lang.Object(ARRAY(i4[0], a115115data[0])), i5816[0], java.lang.Object(Tree(o96125[0], o96126[0]))) → LOAD35058ARR1(java.lang.Object(ARRAY(i4[0], a115115data[0])), i5816[0], java.lang.Object(Tree(o96125[0], o96126[0])), java.lang.Object(java.lang.String(i5968[0])))
LOAD35058ARR1(java.lang.Object(ARRAY(i4[1], a115115data[1])), i5816[1], java.lang.Object(Tree(java.lang.Object(Tree(o96125[1], o96126[1])), o96126[1])), java.lang.Object(java.lang.String(i5968[1]))) → COND_LOAD35058ARR1(&&(&&(&&(<=(i5968[1], 42), >(i5816[1], 0)), <(i5816[1], i4[1])), >(+(i5816[1], 1), 0)), java.lang.Object(ARRAY(i4[1], a115115data[1])), i5816[1], java.lang.Object(Tree(java.lang.Object(Tree(o96125[1], o96126[1])), o96126[1])), java.lang.Object(java.lang.String(i5968[1])))
COND_LOAD35058ARR1(TRUE, java.lang.Object(ARRAY(i4[2], a115115data[2])), i5816[2], java.lang.Object(Tree(java.lang.Object(Tree(o96125[2], o96126[2])), o96126[2])), java.lang.Object(java.lang.String(i5968[2]))) → LOAD35058(java.lang.Object(ARRAY(i4[2], a115115data[2])), +(i5816[2], 1), o96126[2])
LOAD35058ARR2(java.lang.Object(ARRAY(i4[4], a115115data[4])), i5816[4], java.lang.Object(Tree(o96140[4], java.lang.Object(Tree(o96140[4], o96141[4])))), java.lang.Object(java.lang.String(i5968[4]))) → COND_LOAD35058ARR2(&&(&&(&&(>(i5968[4], 42), >(i5816[4], 0)), <(i5816[4], i4[4])), >(+(i5816[4], 1), 0)), java.lang.Object(ARRAY(i4[4], a115115data[4])), i5816[4], java.lang.Object(Tree(o96140[4], java.lang.Object(Tree(o96140[4], o96141[4])))), java.lang.Object(java.lang.String(i5968[4])))
COND_LOAD35058ARR2(TRUE, java.lang.Object(ARRAY(i4[5], a115115data[5])), i5816[5], java.lang.Object(Tree(o96140[5], java.lang.Object(Tree(o96140[5], o96141[5])))), java.lang.Object(java.lang.String(i5968[5]))) → LOAD35058(java.lang.Object(ARRAY(i4[5], a115115data[5])), +(i5816[5], 1), o96140[5])

The following pairs are in Pbound:

LOAD35058(java.lang.Object(ARRAY(i4[0], a115115data[0])), i5816[0], java.lang.Object(Tree(o96125[0], o96126[0]))) → LOAD35058ARR1(java.lang.Object(ARRAY(i4[0], a115115data[0])), i5816[0], java.lang.Object(Tree(o96125[0], o96126[0])), java.lang.Object(java.lang.String(i5968[0])))
LOAD35058ARR1(java.lang.Object(ARRAY(i4[1], a115115data[1])), i5816[1], java.lang.Object(Tree(java.lang.Object(Tree(o96125[1], o96126[1])), o96126[1])), java.lang.Object(java.lang.String(i5968[1]))) → COND_LOAD35058ARR1(&&(&&(&&(<=(i5968[1], 42), >(i5816[1], 0)), <(i5816[1], i4[1])), >(+(i5816[1], 1), 0)), java.lang.Object(ARRAY(i4[1], a115115data[1])), i5816[1], java.lang.Object(Tree(java.lang.Object(Tree(o96125[1], o96126[1])), o96126[1])), java.lang.Object(java.lang.String(i5968[1])))
COND_LOAD35058ARR1(TRUE, java.lang.Object(ARRAY(i4[2], a115115data[2])), i5816[2], java.lang.Object(Tree(java.lang.Object(Tree(o96125[2], o96126[2])), o96126[2])), java.lang.Object(java.lang.String(i5968[2]))) → LOAD35058(java.lang.Object(ARRAY(i4[2], a115115data[2])), +(i5816[2], 1), o96126[2])
LOAD35058(java.lang.Object(ARRAY(i4[3], a115115data[3])), i5816[3], java.lang.Object(Tree(o96140[3], o96141[3]))) → LOAD35058ARR2(java.lang.Object(ARRAY(i4[3], a115115data[3])), i5816[3], java.lang.Object(Tree(o96140[3], o96141[3])), java.lang.Object(java.lang.String(i5968[3])))
LOAD35058ARR2(java.lang.Object(ARRAY(i4[4], a115115data[4])), i5816[4], java.lang.Object(Tree(o96140[4], java.lang.Object(Tree(o96140[4], o96141[4])))), java.lang.Object(java.lang.String(i5968[4]))) → COND_LOAD35058ARR2(&&(&&(&&(>(i5968[4], 42), >(i5816[4], 0)), <(i5816[4], i4[4])), >(+(i5816[4], 1), 0)), java.lang.Object(ARRAY(i4[4], a115115data[4])), i5816[4], java.lang.Object(Tree(o96140[4], java.lang.Object(Tree(o96140[4], o96141[4])))), java.lang.Object(java.lang.String(i5968[4])))
COND_LOAD35058ARR2(TRUE, java.lang.Object(ARRAY(i4[5], a115115data[5])), i5816[5], java.lang.Object(Tree(o96140[5], java.lang.Object(Tree(o96140[5], o96141[5])))), java.lang.Object(java.lang.String(i5968[5]))) → LOAD35058(java.lang.Object(ARRAY(i4[5], a115115data[5])), +(i5816[5], 1), o96140[5])

The following pairs are in P:

LOAD35058(java.lang.Object(ARRAY(i4[3], a115115data[3])), i5816[3], java.lang.Object(Tree(o96140[3], o96141[3]))) → LOAD35058ARR2(java.lang.Object(ARRAY(i4[3], a115115data[3])), i5816[3], java.lang.Object(Tree(o96140[3], o96141[3])), java.lang.Object(java.lang.String(i5968[3])))

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

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

R is empty.

The integer pair graph contains the following rules and edges:
(3): LOAD35058(java.lang.Object(ARRAY(i4[3], a115115data[3])), i5816[3], java.lang.Object(Tree(o96140[3], o96141[3]))) → LOAD35058ARR2(java.lang.Object(ARRAY(i4[3], a115115data[3])), i5816[3], java.lang.Object(Tree(o96140[3], o96141[3])), java.lang.Object(java.lang.String(i5968[3])))

The set Q consists of the following terms:
Load35058ARR1(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(Tree(java.lang.Object(Tree(x3, x4)), x4)), java.lang.Object(java.lang.String(x5)))
Cond_Load35058ARR1(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(Tree(java.lang.Object(Tree(x3, x4)), x4)), java.lang.Object(java.lang.String(x5)))
Load35058ARR2(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(Tree(x3, java.lang.Object(Tree(x3, x4)))), java.lang.Object(java.lang.String(x5)))
Cond_Load35058ARR2(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(Tree(x3, java.lang.Object(Tree(x3, x4)))), java.lang.Object(java.lang.String(x5)))

### (15) IDependencyGraphProof (EQUIVALENT transformation)

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

### (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 is empty.

The set Q consists of the following terms:
Load35058ARR1(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(Tree(java.lang.Object(Tree(x3, x4)), x4)), java.lang.Object(java.lang.String(x5)))
Cond_Load35058ARR1(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(Tree(java.lang.Object(Tree(x3, x4)), x4)), java.lang.Object(java.lang.String(x5)))
Load35058ARR2(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(Tree(x3, java.lang.Object(Tree(x3, x4)))), java.lang.Object(java.lang.String(x5)))
Cond_Load35058ARR2(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(Tree(x3, java.lang.Object(Tree(x3, x4)))), java.lang.Object(java.lang.String(x5)))

### (18) IDependencyGraphProof (EQUIVALENT transformation)

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

### (20) 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:
Load34990(java.lang.Object(ARRAY(i4, a115115data)), i5816, java.lang.Object(Tree), java.lang.Object(List(java.lang.Object(Tree), o92885)), i5824) → Load34990ARR3(java.lang.Object(ARRAY(i4, a115115data)), i5816, java.lang.Object(Tree), java.lang.Object(List(java.lang.Object(Tree), o92885)), i5824, java.lang.Object(java.lang.String(0)), java.lang.Object(java.lang.String(0)))
Load34990ARR3(java.lang.Object(ARRAY(i4, a115115data)), i5816, java.lang.Object(Tree), java.lang.Object(List(java.lang.Object(Tree), o92885)), i5824, java.lang.Object(java.lang.String(0)), java.lang.Object(java.lang.String(0))) → Cond_Load34990ARR3(i5816 + 1 > 0 && i5816 + 1 < i4 && i5816 > 0 && i5816 < i4 && i5824 > 0 && i5816 + 1 + 1 > 0, java.lang.Object(ARRAY(i4, a115115data)), i5816, java.lang.Object(Tree), java.lang.Object(List(java.lang.Object(Tree), o92885)), i5824, java.lang.Object(java.lang.String(0)), java.lang.Object(java.lang.String(0)))
Cond_Load34990ARR3(TRUE, java.lang.Object(ARRAY(i4, a115115data)), i5816, java.lang.Object(Tree), java.lang.Object(List(java.lang.Object(Tree), o92885)), i5824, java.lang.Object(java.lang.String(0)), java.lang.Object(java.lang.String(0))) → New39186(java.lang.Object(ARRAY(i4, a115115data)), i5816 + 1 + 1, java.lang.Object(Tree), o92885, i5824, NULL, NULL)
Inc35127(java.lang.Object(ARRAY(i4, a115115data)), i5816, o92510, o92885, i5824) → Load34990(java.lang.Object(ARRAY(i4, a115115data)), i5816, o92510, o92885, i5824 + -1)
Load34990(java.lang.Object(ARRAY(i4, a115115data)), i5816, o92510, java.lang.Object(List(NULL, o92885)), i5824) → Cond_Load34990(i5824 > 0, java.lang.Object(ARRAY(i4, a115115data)), i5816, o92510, java.lang.Object(List(NULL, o92885)), i5824)
Cond_Load34990(TRUE, java.lang.Object(ARRAY(i4, a115115data)), i5816, o92510, java.lang.Object(List(NULL, o92885)), i5824) → Load34990(java.lang.Object(ARRAY(i4, a115115data)), i5816, o92510, o92885, i5824 + -1)
New39186(java.lang.Object(ARRAY(i4, a115115data)), i6609, o92510, o92885, i5824, NULL, NULL) → Inc35127(java.lang.Object(ARRAY(i4, a115115data)), i6609, o92510, java.lang.Object(List(NULL, java.lang.Object(List(NULL, o92885)))), i5824)
Load34990(java.lang.Object(ARRAY(i4, a115115data)), i5816, o92510, java.lang.Object(List(java.lang.Object(Tree), o92885)), i5824) → Load34990ARR4(java.lang.Object(ARRAY(i4, a115115data)), i5816, o92510, java.lang.Object(List(java.lang.Object(Tree), o92885)), i5824, java.lang.Object(java.lang.String(0)), java.lang.Object(java.lang.String(0)))
Load34990ARR4(java.lang.Object(ARRAY(i4, a115115data)), i5816, o92510, java.lang.Object(List(java.lang.Object(Tree), o92885)), i5824, java.lang.Object(java.lang.String(0)), java.lang.Object(java.lang.String(0))) → Cond_Load34990ARR4(i5816 + 1 > 0 && i5816 + 1 < i4 && i5816 > 0 && i5816 < i4 && i5824 > 0 && i5816 + 1 + 1 > 0, java.lang.Object(ARRAY(i4, a115115data)), i5816, o92510, java.lang.Object(List(java.lang.Object(Tree), o92885)), i5824, java.lang.Object(java.lang.String(0)), java.lang.Object(java.lang.String(0)))
Cond_Load34990ARR4(TRUE, java.lang.Object(ARRAY(i4, a115115data)), i5816, o92510, java.lang.Object(List(java.lang.Object(Tree), o92885)), i5824, java.lang.Object(java.lang.String(0)), java.lang.Object(java.lang.String(0))) → Inc35127(java.lang.Object(ARRAY(i4, a115115data)), i5816 + 1 + 1, o92510new, java.lang.Object(List(NULL, java.lang.Object(List(NULL, o92885)))), i5824)
New40185(java.lang.Object(ARRAY(i4, a115115data)), i6609, o92510, o92885, i5824, NULL, java.lang.Object(Tree)) → Inc35127(java.lang.Object(ARRAY(i4, a115115data)), i6609, o92510, java.lang.Object(List(java.lang.Object(Tree), java.lang.Object(List(NULL, o92885)))), i5824)
Load34990(java.lang.Object(ARRAY(i4, a115115data)), i5816, o92510, java.lang.Object(List(java.lang.Object(Tree), o92885)), i5824) → Load34990ARR5(java.lang.Object(ARRAY(i4, a115115data)), i5816, o92510, java.lang.Object(List(java.lang.Object(Tree), o92885)), i5824, java.lang.Object(java.lang.String(i6986)), java.lang.Object(java.lang.String(0)))
Load34990ARR5(java.lang.Object(ARRAY(i4, a115115data)), i5816, o92510, java.lang.Object(List(java.lang.Object(Tree), o92885)), i5824, java.lang.Object(java.lang.String(i6986)), java.lang.Object(java.lang.String(0))) → Cond_Load34990ARR5(!(i6986 = 0) && i5816 + 1 > 0 && i5816 + 1 < i4 && i5816 > 0 && i5816 < i4 && i5824 > 0 && i5816 + 1 + 1 > 0, java.lang.Object(ARRAY(i4, a115115data)), i5816, o92510, java.lang.Object(List(java.lang.Object(Tree), o92885)), i5824, java.lang.Object(java.lang.String(i6986)), java.lang.Object(java.lang.String(0)))
Cond_Load34990ARR5(TRUE, java.lang.Object(ARRAY(i4, a115115data)), i5816, o92510, java.lang.Object(List(java.lang.Object(Tree), o92885)), i5824, java.lang.Object(java.lang.String(i6986)), java.lang.Object(java.lang.String(0))) → Inc35127(java.lang.Object(ARRAY(i4, a115115data)), i5816 + 1 + 1, o92510new, java.lang.Object(List(java.lang.Object(Tree), java.lang.Object(List(NULL, o92885)))), i5824)
New40288(java.lang.Object(ARRAY(i4, a115115data)), i6905, o92510, o92885, i5824, java.lang.Object(Tree), NULL) → Inc35127(java.lang.Object(ARRAY(i4, a115115data)), i6905, o92510, java.lang.Object(List(NULL, java.lang.Object(List(java.lang.Object(Tree), o92885)))), i5824)
Load34990(java.lang.Object(ARRAY(i4, a115115data)), i5816, o92510, java.lang.Object(List(java.lang.Object(Tree), o92885)), i5824) → Load34990ARR6(java.lang.Object(ARRAY(i4, a115115data)), i5816, o92510, java.lang.Object(List(java.lang.Object(Tree), o92885)), i5824, java.lang.Object(java.lang.String(0)), java.lang.Object(java.lang.String(i6164)))
Load34990ARR6(java.lang.Object(ARRAY(i4, a115115data)), i5816, o92510, java.lang.Object(List(java.lang.Object(Tree), o92885)), i5824, java.lang.Object(java.lang.String(0)), java.lang.Object(java.lang.String(i6164))) → Cond_Load34990ARR6(i5816 + 1 > 0 && i5816 + 1 < i4 && !(i6164 = 0) && i5816 > 0 && i5816 < i4 && i5824 > 0 && i5816 + 1 + 1 > 0, java.lang.Object(ARRAY(i4, a115115data)), i5816, o92510, java.lang.Object(List(java.lang.Object(Tree), o92885)), i5824, java.lang.Object(java.lang.String(0)), java.lang.Object(java.lang.String(i6164)))
Cond_Load34990ARR6(TRUE, java.lang.Object(ARRAY(i4, a115115data)), i5816, o92510, java.lang.Object(List(java.lang.Object(Tree), o92885)), i5824, java.lang.Object(java.lang.String(0)), java.lang.Object(java.lang.String(i6164))) → Inc35127(java.lang.Object(ARRAY(i4, a115115data)), i5816 + 1 + 1, o92510new, java.lang.Object(List(NULL, java.lang.Object(List(java.lang.Object(Tree), o92885)))), i5824)
New40846(java.lang.Object(ARRAY(i4, a115115data)), i6905, o92510, o92885, i5824, java.lang.Object(Tree), java.lang.Object(Tree)) → Inc35127(java.lang.Object(ARRAY(i4, a115115data)), i6905, o92510, java.lang.Object(List(java.lang.Object(Tree), java.lang.Object(List(java.lang.Object(Tree), o92885)))), i5824)
Load34990(java.lang.Object(ARRAY(i4, a115115data)), i5816, o92510, java.lang.Object(List(java.lang.Object(Tree), o92885)), i5824) → Load34990ARR7(java.lang.Object(ARRAY(i4, a115115data)), i5816, o92510, java.lang.Object(List(java.lang.Object(Tree), o92885)), i5824, java.lang.Object(java.lang.String(i7504)), java.lang.Object(java.lang.String(i6164)))
Load34990ARR7(java.lang.Object(ARRAY(i4, a115115data)), i5816, o92510, java.lang.Object(List(java.lang.Object(Tree), o92885)), i5824, java.lang.Object(java.lang.String(i7504)), java.lang.Object(java.lang.String(i6164))) → Cond_Load34990ARR7(!(i7504 = 0) && i5816 + 1 > 0 && i5816 + 1 < i4 && !(i6164 = 0) && i5816 > 0 && i5816 < i4 && i5824 > 0 && i5816 + 1 + 1 > 0, java.lang.Object(ARRAY(i4, a115115data)), i5816, o92510, java.lang.Object(List(java.lang.Object(Tree), o92885)), i5824, java.lang.Object(java.lang.String(i7504)), java.lang.Object(java.lang.String(i6164)))
Cond_Load34990ARR7(TRUE, java.lang.Object(ARRAY(i4, a115115data)), i5816, o92510, java.lang.Object(List(java.lang.Object(Tree), o92885)), i5824, java.lang.Object(java.lang.String(i7504)), java.lang.Object(java.lang.String(i6164))) → Inc35127(java.lang.Object(ARRAY(i4, a115115data)), i5816 + 1 + 1, o92510new, java.lang.Object(List(java.lang.Object(Tree), java.lang.Object(List(java.lang.Object(Tree), o92885)))), i5824)
Load34990(java.lang.Object(ARRAY(i4, a115115data)), i5816, java.lang.Object(Tree), java.lang.Object(List(java.lang.Object(Tree), o92885)), i5824) → Load34990ARR8(java.lang.Object(ARRAY(i4, a115115data)), i5816, java.lang.Object(Tree), java.lang.Object(List(java.lang.Object(Tree), o92885)), i5824, java.lang.Object(java.lang.String(i6986)), java.lang.Object(java.lang.String(0)))
Load34990ARR8(java.lang.Object(ARRAY(i4, a115115data)), i5816, java.lang.Object(Tree), java.lang.Object(List(java.lang.Object(Tree), o92885)), i5824, java.lang.Object(java.lang.String(i6986)), java.lang.Object(java.lang.String(0))) → Cond_Load34990ARR8(!(i6986 = 0) && i5816 + 1 > 0 && i5816 + 1 < i4 && i5816 > 0 && i5816 < i4 && i5824 > 0 && i5816 + 1 + 1 > 0, java.lang.Object(ARRAY(i4, a115115data)), i5816, java.lang.Object(Tree), java.lang.Object(List(java.lang.Object(Tree), o92885)), i5824, java.lang.Object(java.lang.String(i6986)), java.lang.Object(java.lang.String(0)))
Cond_Load34990ARR8(TRUE, java.lang.Object(ARRAY(i4, a115115data)), i5816, java.lang.Object(Tree), java.lang.Object(List(java.lang.Object(Tree), o92885)), i5824, java.lang.Object(java.lang.String(i6986)), java.lang.Object(java.lang.String(0))) → New40185(java.lang.Object(ARRAY(i4, a115115data)), i5816 + 1 + 1, java.lang.Object(Tree), o92885, i5824, NULL, java.lang.Object(Tree))
Load34990(java.lang.Object(ARRAY(i4, a115115data)), i5816, java.lang.Object(Tree), java.lang.Object(List(java.lang.Object(Tree), o92885)), i5824) → Load34990ARR9(java.lang.Object(ARRAY(i4, a115115data)), i5816, java.lang.Object(Tree), java.lang.Object(List(java.lang.Object(Tree), o92885)), i5824, java.lang.Object(java.lang.String(0)), java.lang.Object(java.lang.String(i6164)))
Load34990ARR9(java.lang.Object(ARRAY(i4, a115115data)), i5816, java.lang.Object(Tree), java.lang.Object(List(java.lang.Object(Tree), o92885)), i5824, java.lang.Object(java.lang.String(0)), java.lang.Object(java.lang.String(i6164))) → Cond_Load34990ARR9(i5816 + 1 > 0 && i5816 + 1 < i4 && !(i6164 = 0) && i5816 > 0 && i5816 < i4 && i5824 > 0 && i5816 + 1 + 1 > 0, java.lang.Object(ARRAY(i4, a115115data)), i5816, java.lang.Object(Tree), java.lang.Object(List(java.lang.Object(Tree), o92885)), i5824, java.lang.Object(java.lang.String(0)), java.lang.Object(java.lang.String(i6164)))
Cond_Load34990ARR9(TRUE, java.lang.Object(ARRAY(i4, a115115data)), i5816, java.lang.Object(Tree), java.lang.Object(List(java.lang.Object(Tree), o92885)), i5824, java.lang.Object(java.lang.String(0)), java.lang.Object(java.lang.String(i6164))) → New40288(java.lang.Object(ARRAY(i4, a115115data)), i5816 + 1 + 1, java.lang.Object(Tree), o92885, i5824, java.lang.Object(Tree), NULL)
Load34990(java.lang.Object(ARRAY(i4, a115115data)), i5816, java.lang.Object(Tree), java.lang.Object(List(java.lang.Object(Tree), o92885)), i5824) → Load34990ARR10(java.lang.Object(ARRAY(i4, a115115data)), i5816, java.lang.Object(Tree), java.lang.Object(List(java.lang.Object(Tree), o92885)), i5824, java.lang.Object(java.lang.String(i7504)), java.lang.Object(java.lang.String(i6164)))
Load34990ARR10(java.lang.Object(ARRAY(i4, a115115data)), i5816, java.lang.Object(Tree), java.lang.Object(List(java.lang.Object(Tree), o92885)), i5824, java.lang.Object(java.lang.String(i7504)), java.lang.Object(java.lang.String(i6164))) → Cond_Load34990ARR10(!(i7504 = 0) && i5816 + 1 > 0 && i5816 + 1 < i4 && !(i6164 = 0) && i5816 > 0 && i5816 < i4 && i5824 > 0 && i5816 + 1 + 1 > 0, java.lang.Object(ARRAY(i4, a115115data)), i5816, java.lang.Object(Tree), java.lang.Object(List(java.lang.Object(Tree), o92885)), i5824, java.lang.Object(java.lang.String(i7504)), java.lang.Object(java.lang.String(i6164)))
Cond_Load34990ARR10(TRUE, java.lang.Object(ARRAY(i4, a115115data)), i5816, java.lang.Object(Tree), java.lang.Object(List(java.lang.Object(Tree), o92885)), i5824, java.lang.Object(java.lang.String(i7504)), java.lang.Object(java.lang.String(i6164))) → New40846(java.lang.Object(ARRAY(i4, a115115data)), i5816 + 1 + 1, java.lang.Object(Tree), o92885, i5824, java.lang.Object(Tree), java.lang.Object(Tree))
The set Q consists of the following terms:
Load34990ARR3(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(Tree), java.lang.Object(List(java.lang.Object(Tree), x3)), x4, java.lang.Object(java.lang.String(0)), java.lang.Object(java.lang.String(0)))
Cond_Load34990ARR3(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(Tree), java.lang.Object(List(java.lang.Object(Tree), x3)), x4, java.lang.Object(java.lang.String(0)), java.lang.Object(java.lang.String(0)))
Inc35127(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5)
Load34990(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(List(NULL, x4)), x5)
Cond_Load34990(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(List(NULL, x4)), x5)
New39186(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5, NULL, NULL)
Load34990(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(List(java.lang.Object(Tree), x4)), x5)
Load34990ARR4(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(List(java.lang.Object(Tree), x4)), x5, java.lang.Object(java.lang.String(0)), java.lang.Object(java.lang.String(0)))
Cond_Load34990ARR4(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(List(java.lang.Object(Tree), x4)), x5, java.lang.Object(java.lang.String(0)), java.lang.Object(java.lang.String(0)))
New40185(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5, NULL, java.lang.Object(Tree))
Load34990ARR5(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(List(java.lang.Object(Tree), x4)), x5, java.lang.Object(java.lang.String(x6)), java.lang.Object(java.lang.String(0)))
Cond_Load34990ARR5(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(List(java.lang.Object(Tree), x4)), x5, java.lang.Object(java.lang.String(x6)), java.lang.Object(java.lang.String(0)))
New40288(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5, java.lang.Object(Tree), NULL)
Load34990ARR6(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(List(java.lang.Object(Tree), x4)), x5, java.lang.Object(java.lang.String(0)), java.lang.Object(java.lang.String(x6)))
Cond_Load34990ARR6(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(List(java.lang.Object(Tree), x4)), x5, java.lang.Object(java.lang.String(0)), java.lang.Object(java.lang.String(x6)))
New40846(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5, java.lang.Object(Tree), java.lang.Object(Tree))
Load34990ARR7(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(List(java.lang.Object(Tree), x4)), x5, java.lang.Object(java.lang.String(x6)), java.lang.Object(java.lang.String(x7)))
Cond_Load34990ARR7(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(List(java.lang.Object(Tree), x4)), x5, java.lang.Object(java.lang.String(x6)), java.lang.Object(java.lang.String(x7)))
Load34990ARR8(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(Tree), java.lang.Object(List(java.lang.Object(Tree), x3)), x4, java.lang.Object(java.lang.String(x5)), java.lang.Object(java.lang.String(0)))
Cond_Load34990ARR8(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(Tree), java.lang.Object(List(java.lang.Object(Tree), x3)), x4, java.lang.Object(java.lang.String(x5)), java.lang.Object(java.lang.String(0)))
Load34990ARR9(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(Tree), java.lang.Object(List(java.lang.Object(Tree), x3)), x4, java.lang.Object(java.lang.String(0)), java.lang.Object(java.lang.String(x5)))
Cond_Load34990ARR9(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(Tree), java.lang.Object(List(java.lang.Object(Tree), x3)), x4, java.lang.Object(java.lang.String(0)), java.lang.Object(java.lang.String(x5)))
Load34990ARR10(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(Tree), java.lang.Object(List(java.lang.Object(Tree), x3)), x4, java.lang.Object(java.lang.String(x5)), java.lang.Object(java.lang.String(x6)))
Cond_Load34990ARR10(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(Tree), java.lang.Object(List(java.lang.Object(Tree), x3)), x4, java.lang.Object(java.lang.String(x5)), java.lang.Object(java.lang.String(x6)))

### (21) GroundTermsRemoverProof (EQUIVALENT transformation)

Some arguments are removed because they always contain the same ground term.
We removed the following ground terms:
• java.lang.Object(Tree)
• NULL
• java.lang.Object(java.lang.String(0))

We removed arguments according to the following replacements:

New40846(x1, x2, x3, x4, x5, x6, x7) → New40846(x1, x2, x3, x4, x5)
Cond_Load34990ARR10(x1, x2, x3, x4, x5, x6, x7, x8) → Cond_Load34990ARR10(x1, x2, x3, x5, x6, x7, x8)
Load34990ARR10(x1, x2, x3, x4, x5, x6, x7) → Load34990ARR10(x1, x2, x4, x5, x6, x7)
New40288(x1, x2, x3, x4, x5, x6, x7) → New40288(x1, x2, x3, x4, x5)
Cond_Load34990ARR9(x1, x2, x3, x4, x5, x6, x7, x8) → Cond_Load34990ARR9(x1, x2, x3, x5, x6, x8)
Load34990ARR9(x1, x2, x3, x4, x5, x6, x7) → Load34990ARR9(x1, x2, x4, x5, x7)
New40185(x1, x2, x3, x4, x5, x6, x7) → New40185(x1, x2, x3, x4, x5)
Cond_Load34990ARR8(x1, x2, x3, x4, x5, x6, x7, x8) → Cond_Load34990ARR8(x1, x2, x3, x5, x6, x7)
Load34990ARR8(x1, x2, x3, x4, x5, x6, x7) → Load34990ARR8(x1, x2, x4, x5, x6)
Cond_Load34990ARR6(x1, x2, x3, x4, x5, x6, x7, x8) → Cond_Load34990ARR6(x1, x2, x3, x4, x5, x6, x8)
Load34990ARR6(x1, x2, x3, x4, x5, x6, x7) → Load34990ARR6(x1, x2, x3, x4, x5, x7)
Cond_Load34990ARR5(x1, x2, x3, x4, x5, x6, x7, x8) → Cond_Load34990ARR5(x1, x2, x3, x4, x5, x6, x7)
Load34990ARR5(x1, x2, x3, x4, x5, x6, x7) → Load34990ARR5(x1, x2, x3, x4, x5, x6)
Cond_Load34990ARR4(x1, x2, x3, x4, x5, x6, x7, x8) → Cond_Load34990ARR4(x1, x2, x3, x4, x5, x6)
Load34990ARR4(x1, x2, x3, x4, x5, x6, x7) → Load34990ARR4(x1, x2, x3, x4, x5)
New39186(x1, x2, x3, x4, x5, x6, x7) → New39186(x1, x2, x3, x4, x5)
Cond_Load34990ARR3(x1, x2, x3, x4, x5, x6, x7, x8) → Cond_Load34990ARR3(x1, x2, x3, x5, x6)
Load34990ARR3(x1, x2, x3, x4, x5, x6, x7) → Load34990ARR3(x1, x2, x4, x5)

### (22) 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:
Load34990(java.lang.Object(ARRAY(i4, a115115data)), i5816, java.lang.Object(Tree), java.lang.Object(List(java.lang.Object(Tree), o92885)), i5824) → Load34990ARR3(java.lang.Object(ARRAY(i4, a115115data)), i5816, java.lang.Object(List(java.lang.Object(Tree), o92885)), i5824)
Load34990ARR3(java.lang.Object(ARRAY(i4, a115115data)), i5816, java.lang.Object(List(java.lang.Object(Tree), o92885)), i5824) → Cond_Load34990ARR3(i5816 + 1 > 0 && i5816 + 1 < i4 && i5816 > 0 && i5816 < i4 && i5824 > 0 && i5816 + 1 + 1 > 0, java.lang.Object(ARRAY(i4, a115115data)), i5816, java.lang.Object(List(java.lang.Object(Tree), o92885)), i5824)
Cond_Load34990ARR3(TRUE, java.lang.Object(ARRAY(i4, a115115data)), i5816, java.lang.Object(List(java.lang.Object(Tree), o92885)), i5824) → New39186(java.lang.Object(ARRAY(i4, a115115data)), i5816 + 1 + 1, java.lang.Object(Tree), o92885, i5824)
Inc35127(java.lang.Object(ARRAY(i4, a115115data)), i5816, o92510, o92885, i5824) → Load34990(java.lang.Object(ARRAY(i4, a115115data)), i5816, o92510, o92885, i5824 + -1)
Load34990(java.lang.Object(ARRAY(i4, a115115data)), i5816, o92510, java.lang.Object(List(NULL, o92885)), i5824) → Cond_Load34990(i5824 > 0, java.lang.Object(ARRAY(i4, a115115data)), i5816, o92510, java.lang.Object(List(NULL, o92885)), i5824)
Cond_Load34990(TRUE, java.lang.Object(ARRAY(i4, a115115data)), i5816, o92510, java.lang.Object(List(NULL, o92885)), i5824) → Load34990(java.lang.Object(ARRAY(i4, a115115data)), i5816, o92510, o92885, i5824 + -1)
New39186(java.lang.Object(ARRAY(i4, a115115data)), i6609, o92510, o92885, i5824) → Inc35127(java.lang.Object(ARRAY(i4, a115115data)), i6609, o92510, java.lang.Object(List(NULL, java.lang.Object(List(NULL, o92885)))), i5824)
Load34990(java.lang.Object(ARRAY(i4, a115115data)), i5816, o92510, java.lang.Object(List(java.lang.Object(Tree), o92885)), i5824) → Load34990ARR4(java.lang.Object(ARRAY(i4, a115115data)), i5816, o92510, java.lang.Object(List(java.lang.Object(Tree), o92885)), i5824)
Load34990ARR4(java.lang.Object(ARRAY(i4, a115115data)), i5816, o92510, java.lang.Object(List(java.lang.Object(Tree), o92885)), i5824) → Cond_Load34990ARR4(i5816 + 1 > 0 && i5816 + 1 < i4 && i5816 > 0 && i5816 < i4 && i5824 > 0 && i5816 + 1 + 1 > 0, java.lang.Object(ARRAY(i4, a115115data)), i5816, o92510, java.lang.Object(List(java.lang.Object(Tree), o92885)), i5824)
Cond_Load34990ARR4(TRUE, java.lang.Object(ARRAY(i4, a115115data)), i5816, o92510, java.lang.Object(List(java.lang.Object(Tree), o92885)), i5824) → Inc35127(java.lang.Object(ARRAY(i4, a115115data)), i5816 + 1 + 1, o92510new, java.lang.Object(List(NULL, java.lang.Object(List(NULL, o92885)))), i5824)
New40185(java.lang.Object(ARRAY(i4, a115115data)), i6609, o92510, o92885, i5824) → Inc35127(java.lang.Object(ARRAY(i4, a115115data)), i6609, o92510, java.lang.Object(List(java.lang.Object(Tree), java.lang.Object(List(NULL, o92885)))), i5824)
Load34990(java.lang.Object(ARRAY(i4, a115115data)), i5816, o92510, java.lang.Object(List(java.lang.Object(Tree), o92885)), i5824) → Load34990ARR5(java.lang.Object(ARRAY(i4, a115115data)), i5816, o92510, java.lang.Object(List(java.lang.Object(Tree), o92885)), i5824, java.lang.Object(java.lang.String(i6986)))
Load34990ARR5(java.lang.Object(ARRAY(i4, a115115data)), i5816, o92510, java.lang.Object(List(java.lang.Object(Tree), o92885)), i5824, java.lang.Object(java.lang.String(i6986))) → Cond_Load34990ARR5(!(i6986 = 0) && i5816 + 1 > 0 && i5816 + 1 < i4 && i5816 > 0 && i5816 < i4 && i5824 > 0 && i5816 + 1 + 1 > 0, java.lang.Object(ARRAY(i4, a115115data)), i5816, o92510, java.lang.Object(List(java.lang.Object(Tree), o92885)), i5824, java.lang.Object(java.lang.String(i6986)))
Cond_Load34990ARR5(TRUE, java.lang.Object(ARRAY(i4, a115115data)), i5816, o92510, java.lang.Object(List(java.lang.Object(Tree), o92885)), i5824, java.lang.Object(java.lang.String(i6986))) → Inc35127(java.lang.Object(ARRAY(i4, a115115data)), i5816 + 1 + 1, o92510new, java.lang.Object(List(java.lang.Object(Tree), java.lang.Object(List(NULL, o92885)))), i5824)
New40288(java.lang.Object(ARRAY(i4, a115115data)), i6905, o92510, o92885, i5824) → Inc35127(java.lang.Object(ARRAY(i4, a115115data)), i6905, o92510, java.lang.Object(List(NULL, java.lang.Object(List(java.lang.Object(Tree), o92885)))), i5824)
Load34990(java.lang.Object(ARRAY(i4, a115115data)), i5816, o92510, java.lang.Object(List(java.lang.Object(Tree), o92885)), i5824) → Load34990ARR6(java.lang.Object(ARRAY(i4, a115115data)), i5816, o92510, java.lang.Object(List(java.lang.Object(Tree), o92885)), i5824, java.lang.Object(java.lang.String(i6164)))
Load34990ARR6(java.lang.Object(ARRAY(i4, a115115data)), i5816, o92510, java.lang.Object(List(java.lang.Object(Tree), o92885)), i5824, java.lang.Object(java.lang.String(i6164))) → Cond_Load34990ARR6(i5816 + 1 > 0 && i5816 + 1 < i4 && !(i6164 = 0) && i5816 > 0 && i5816 < i4 && i5824 > 0 && i5816 + 1 + 1 > 0, java.lang.Object(ARRAY(i4, a115115data)), i5816, o92510, java.lang.Object(List(java.lang.Object(Tree), o92885)), i5824, java.lang.Object(java.lang.String(i6164)))
Cond_Load34990ARR6(TRUE, java.lang.Object(ARRAY(i4, a115115data)), i5816, o92510, java.lang.Object(List(java.lang.Object(Tree), o92885)), i5824, java.lang.Object(java.lang.String(i6164))) → Inc35127(java.lang.Object(ARRAY(i4, a115115data)), i5816 + 1 + 1, o92510new, java.lang.Object(List(NULL, java.lang.Object(List(java.lang.Object(Tree), o92885)))), i5824)
New40846(java.lang.Object(ARRAY(i4, a115115data)), i6905, o92510, o92885, i5824) → Inc35127(java.lang.Object(ARRAY(i4, a115115data)), i6905, o92510, java.lang.Object(List(java.lang.Object(Tree), java.lang.Object(List(java.lang.Object(Tree), o92885)))), i5824)
Load34990(java.lang.Object(ARRAY(i4, a115115data)), i5816, o92510, java.lang.Object(List(java.lang.Object(Tree), o92885)), i5824) → Load34990ARR7(java.lang.Object(ARRAY(i4, a115115data)), i5816, o92510, java.lang.Object(List(java.lang.Object(Tree), o92885)), i5824, java.lang.Object(java.lang.String(i7504)), java.lang.Object(java.lang.String(i6164)))
Load34990ARR7(java.lang.Object(ARRAY(i4, a115115data)), i5816, o92510, java.lang.Object(List(java.lang.Object(Tree), o92885)), i5824, java.lang.Object(java.lang.String(i7504)), java.lang.Object(java.lang.String(i6164))) → Cond_Load34990ARR7(!(i7504 = 0) && i5816 + 1 > 0 && i5816 + 1 < i4 && !(i6164 = 0) && i5816 > 0 && i5816 < i4 && i5824 > 0 && i5816 + 1 + 1 > 0, java.lang.Object(ARRAY(i4, a115115data)), i5816, o92510, java.lang.Object(List(java.lang.Object(Tree), o92885)), i5824, java.lang.Object(java.lang.String(i7504)), java.lang.Object(java.lang.String(i6164)))
Cond_Load34990ARR7(TRUE, java.lang.Object(ARRAY(i4, a115115data)), i5816, o92510, java.lang.Object(List(java.lang.Object(Tree), o92885)), i5824, java.lang.Object(java.lang.String(i7504)), java.lang.Object(java.lang.String(i6164))) → Inc35127(java.lang.Object(ARRAY(i4, a115115data)), i5816 + 1 + 1, o92510new, java.lang.Object(List(java.lang.Object(Tree), java.lang.Object(List(java.lang.Object(Tree), o92885)))), i5824)
Load34990(java.lang.Object(ARRAY(i4, a115115data)), i5816, java.lang.Object(Tree), java.lang.Object(List(java.lang.Object(Tree), o92885)), i5824) → Load34990ARR8(java.lang.Object(ARRAY(i4, a115115data)), i5816, java.lang.Object(List(java.lang.Object(Tree), o92885)), i5824, java.lang.Object(java.lang.String(i6986)))
Load34990ARR8(java.lang.Object(ARRAY(i4, a115115data)), i5816, java.lang.Object(List(java.lang.Object(Tree), o92885)), i5824, java.lang.Object(java.lang.String(i6986))) → Cond_Load34990ARR8(!(i6986 = 0) && i5816 + 1 > 0 && i5816 + 1 < i4 && i5816 > 0 && i5816 < i4 && i5824 > 0 && i5816 + 1 + 1 > 0, java.lang.Object(ARRAY(i4, a115115data)), i5816, java.lang.Object(List(java.lang.Object(Tree), o92885)), i5824, java.lang.Object(java.lang.String(i6986)))
Cond_Load34990ARR8(TRUE, java.lang.Object(ARRAY(i4, a115115data)), i5816, java.lang.Object(List(java.lang.Object(Tree), o92885)), i5824, java.lang.Object(java.lang.String(i6986))) → New40185(java.lang.Object(ARRAY(i4, a115115data)), i5816 + 1 + 1, java.lang.Object(Tree), o92885, i5824)
Load34990(java.lang.Object(ARRAY(i4, a115115data)), i5816, java.lang.Object(Tree), java.lang.Object(List(java.lang.Object(Tree), o92885)), i5824) → Load34990ARR9(java.lang.Object(ARRAY(i4, a115115data)), i5816, java.lang.Object(List(java.lang.Object(Tree), o92885)), i5824, java.lang.Object(java.lang.String(i6164)))
Load34990ARR9(java.lang.Object(ARRAY(i4, a115115data)), i5816, java.lang.Object(List(java.lang.Object(Tree), o92885)), i5824, java.lang.Object(java.lang.String(i6164))) → Cond_Load34990ARR9(i5816 + 1 > 0 && i5816 + 1 < i4 && !(i6164 = 0) && i5816 > 0 && i5816 < i4 && i5824 > 0 && i5816 + 1 + 1 > 0, java.lang.Object(ARRAY(i4, a115115data)), i5816, java.lang.Object(List(java.lang.Object(Tree), o92885)), i5824, java.lang.Object(java.lang.String(i6164)))
Cond_Load34990ARR9(TRUE, java.lang.Object(ARRAY(i4, a115115data)), i5816, java.lang.Object(List(java.lang.Object(Tree), o92885)), i5824, java.lang.Object(java.lang.String(i6164))) → New40288(java.lang.Object(ARRAY(i4, a115115data)), i5816 + 1 + 1, java.lang.Object(Tree), o92885, i5824)
Load34990(java.lang.Object(ARRAY(i4, a115115data)), i5816, java.lang.Object(Tree), java.lang.Object(List(java.lang.Object(Tree), o92885)), i5824) → Load34990ARR10(java.lang.Object(ARRAY(i4, a115115data)), i5816, java.lang.Object(List(java.lang.Object(Tree), o92885)), i5824, java.lang.Object(java.lang.String(i7504)), java.lang.Object(java.lang.String(i6164)))
Load34990ARR10(java.lang.Object(ARRAY(i4, a115115data)), i5816, java.lang.Object(List(java.lang.Object(Tree), o92885)), i5824, java.lang.Object(java.lang.String(i7504)), java.lang.Object(java.lang.String(i6164))) → Cond_Load34990ARR10(!(i7504 = 0) && i5816 + 1 > 0 && i5816 + 1 < i4 && !(i6164 = 0) && i5816 > 0 && i5816 < i4 && i5824 > 0 && i5816 + 1 + 1 > 0, java.lang.Object(ARRAY(i4, a115115data)), i5816, java.lang.Object(List(java.lang.Object(Tree), o92885)), i5824, java.lang.Object(java.lang.String(i7504)), java.lang.Object(java.lang.String(i6164)))
Cond_Load34990ARR10(TRUE, java.lang.Object(ARRAY(i4, a115115data)), i5816, java.lang.Object(List(java.lang.Object(Tree), o92885)), i5824, java.lang.Object(java.lang.String(i7504)), java.lang.Object(java.lang.String(i6164))) → New40846(java.lang.Object(ARRAY(i4, a115115data)), i5816 + 1 + 1, java.lang.Object(Tree), o92885, i5824)
The set Q consists of the following terms:
Load34990ARR3(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(List(java.lang.Object(Tree), x3)), x4)
Cond_Load34990ARR3(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(List(java.lang.Object(Tree), x3)), x4)
Inc35127(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5)
Load34990(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(List(NULL, x4)), x5)
Cond_Load34990(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(List(NULL, x4)), x5)
New39186(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5)
Load34990(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(List(java.lang.Object(Tree), x4)), x5)
Load34990ARR4(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(List(java.lang.Object(Tree), x4)), x5)
Cond_Load34990ARR4(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(List(java.lang.Object(Tree), x4)), x5)
New40185(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5)
Load34990ARR5(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(List(java.lang.Object(Tree), x4)), x5, java.lang.Object(java.lang.String(x6)))
Cond_Load34990ARR5(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(List(java.lang.Object(Tree), x4)), x5, java.lang.Object(java.lang.String(x6)))
New40288(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5)
Load34990ARR6(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(List(java.lang.Object(Tree), x4)), x5, java.lang.Object(java.lang.String(x6)))
Cond_Load34990ARR6(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(List(java.lang.Object(Tree), x4)), x5, java.lang.Object(java.lang.String(x6)))
New40846(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5)
Load34990ARR7(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(List(java.lang.Object(Tree), x4)), x5, java.lang.Object(java.lang.String(x6)), java.lang.Object(java.lang.String(x7)))
Cond_Load34990ARR7(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(List(java.lang.Object(Tree), x4)), x5, java.lang.Object(java.lang.String(x6)), java.lang.Object(java.lang.String(x7)))
Load34990ARR8(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(List(java.lang.Object(Tree), x3)), x4, java.lang.Object(java.lang.String(x5)))
Cond_Load34990ARR8(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(List(java.lang.Object(Tree), x3)), x4, java.lang.Object(java.lang.String(x5)))
Load34990ARR9(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(List(java.lang.Object(Tree), x3)), x4, java.lang.Object(java.lang.String(x5)))
Cond_Load34990ARR9(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(List(java.lang.Object(Tree), x3)), x4, java.lang.Object(java.lang.String(x5)))
Load34990ARR10(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(List(java.lang.Object(Tree), x3)), x4, java.lang.Object(java.lang.String(x5)), java.lang.Object(java.lang.String(x6)))
Cond_Load34990ARR10(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(List(java.lang.Object(Tree), x3)), x4, java.lang.Object(java.lang.String(x5)), java.lang.Object(java.lang.String(x6)))

### (23) ITRSFilterProcessorProof (SOUND transformation)

We filter according the heuristic IdpCand1ShapeHeuristic
We removed arguments according to the following replacements:

List(x1, x2) → List
New39186(x1, x2, x3, x4, x5) → New39186(x1, x2, x5)
Inc35127(x1, x2, x3, x4, x5) → Inc35127(x1, x2, x5)
New40185(x1, x2, x3, x4, x5) → New40185(x1, x2, x5)
Cond_Load34990ARR5(x1, x2, x3, x4, x5, x6, x7) → Cond_Load34990ARR5(x1, x2, x3, x6, x7)
New40288(x1, x2, x3, x4, x5) → New40288(x1, x2, x5)
Cond_Load34990ARR6(x1, x2, x3, x4, x5, x6, x7) → Cond_Load34990ARR6(x1, x2, x3, x6, x7)
New40846(x1, x2, x3, x4, x5) → New40846(x1, x2, x5)
Load34990ARR7(x1, x2, x3, x4, x5, x6, x7) → Load34990ARR7(x1, x2, x5, x6, x7)
Cond_Load34990ARR7(x1, x2, x3, x4, x5, x6, x7, x8) → Cond_Load34990ARR7(x1, x2, x3, x6, x7, x8)
Cond_Load34990ARR8(x1, x2, x3, x4, x5, x6) → Cond_Load34990ARR8(x1, x2, x3, x5, x6)
Cond_Load34990ARR9(x1, x2, x3, x4, x5, x6) → Cond_Load34990ARR9(x1, x2, x3, x5, x6)
Load34990ARR10(x1, x2, x3, x4, x5, x6) → Load34990ARR10(x1, x2, x4, x5, x6)
Cond_Load34990ARR10(x1, x2, x3, x4, x5, x6, x7) → Cond_Load34990ARR10(x1, x2, x3, x5, x6, x7)

### (24) 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:
Load34990ARR3(java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824) → Cond_Load34990ARR3(i5816 + 1 > 0 && i5816 + 1 < i4 && i5816 > 0 && i5816 < i4 && i5824 > 0 && i5816 + 1 + 1 > 0, java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824)
Cond_Load34990ARR3(TRUE, java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824) → New39186(java.lang.Object(ARRAY(i4, a115115data)), i5816 + 1 + 1, i5824)
Inc35127(java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824) → Load34990(java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824 + -1)
Load34990(java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824) → Cond_Load34990(i5824 > 0, java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824)
Cond_Load34990(TRUE, java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824) → Load34990(java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824 + -1)
New39186(java.lang.Object(ARRAY(i4, a115115data)), i6609, i5824) → Inc35127(java.lang.Object(ARRAY(i4, a115115data)), i6609, i5824)
Load34990ARR4(java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824) → Cond_Load34990ARR4(i5816 + 1 > 0 && i5816 + 1 < i4 && i5816 > 0 && i5816 < i4 && i5824 > 0 && i5816 + 1 + 1 > 0, java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824)
Cond_Load34990ARR4(TRUE, java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824) → Inc35127(java.lang.Object(ARRAY(i4, a115115data)), i5816 + 1 + 1, i5824)
New40185(java.lang.Object(ARRAY(i4, a115115data)), i6609, i5824) → Inc35127(java.lang.Object(ARRAY(i4, a115115data)), i6609, i5824)
Load34990ARR5(java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824, java.lang.Object(java.lang.String(i6986))) → Cond_Load34990ARR5(!(i6986 = 0) && i5816 + 1 > 0 && i5816 + 1 < i4 && i5816 > 0 && i5816 < i4 && i5824 > 0 && i5816 + 1 + 1 > 0, java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824, java.lang.Object(java.lang.String(i6986)))
Cond_Load34990ARR5(TRUE, java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824, java.lang.Object(java.lang.String(i6986))) → Inc35127(java.lang.Object(ARRAY(i4, a115115data)), i5816 + 1 + 1, i5824)
New40288(java.lang.Object(ARRAY(i4, a115115data)), i6905, i5824) → Inc35127(java.lang.Object(ARRAY(i4, a115115data)), i6905, i5824)
Load34990ARR6(java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824, java.lang.Object(java.lang.String(i6164))) → Cond_Load34990ARR6(i5816 + 1 > 0 && i5816 + 1 < i4 && !(i6164 = 0) && i5816 > 0 && i5816 < i4 && i5824 > 0 && i5816 + 1 + 1 > 0, java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824, java.lang.Object(java.lang.String(i6164)))
Cond_Load34990ARR6(TRUE, java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824, java.lang.Object(java.lang.String(i6164))) → Inc35127(java.lang.Object(ARRAY(i4, a115115data)), i5816 + 1 + 1, i5824)
New40846(java.lang.Object(ARRAY(i4, a115115data)), i6905, i5824) → Inc35127(java.lang.Object(ARRAY(i4, a115115data)), i6905, i5824)
Load34990ARR7(java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824, java.lang.Object(java.lang.String(i7504)), java.lang.Object(java.lang.String(i6164))) → Cond_Load34990ARR7(!(i7504 = 0) && i5816 + 1 > 0 && i5816 + 1 < i4 && !(i6164 = 0) && i5816 > 0 && i5816 < i4 && i5824 > 0 && i5816 + 1 + 1 > 0, java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824, java.lang.Object(java.lang.String(i7504)), java.lang.Object(java.lang.String(i6164)))
Cond_Load34990ARR7(TRUE, java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824, java.lang.Object(java.lang.String(i7504)), java.lang.Object(java.lang.String(i6164))) → Inc35127(java.lang.Object(ARRAY(i4, a115115data)), i5816 + 1 + 1, i5824)
Load34990ARR8(java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824, java.lang.Object(java.lang.String(i6986))) → Cond_Load34990ARR8(!(i6986 = 0) && i5816 + 1 > 0 && i5816 + 1 < i4 && i5816 > 0 && i5816 < i4 && i5824 > 0 && i5816 + 1 + 1 > 0, java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824, java.lang.Object(java.lang.String(i6986)))
Cond_Load34990ARR8(TRUE, java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824, java.lang.Object(java.lang.String(i6986))) → New40185(java.lang.Object(ARRAY(i4, a115115data)), i5816 + 1 + 1, i5824)
Load34990ARR9(java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824, java.lang.Object(java.lang.String(i6164))) → Cond_Load34990ARR9(i5816 + 1 > 0 && i5816 + 1 < i4 && !(i6164 = 0) && i5816 > 0 && i5816 < i4 && i5824 > 0 && i5816 + 1 + 1 > 0, java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824, java.lang.Object(java.lang.String(i6164)))
Cond_Load34990ARR9(TRUE, java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824, java.lang.Object(java.lang.String(i6164))) → New40288(java.lang.Object(ARRAY(i4, a115115data)), i5816 + 1 + 1, i5824)
Load34990ARR10(java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824, java.lang.Object(java.lang.String(i7504)), java.lang.Object(java.lang.String(i6164))) → Cond_Load34990ARR10(!(i7504 = 0) && i5816 + 1 > 0 && i5816 + 1 < i4 && !(i6164 = 0) && i5816 > 0 && i5816 < i4 && i5824 > 0 && i5816 + 1 + 1 > 0, java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824, java.lang.Object(java.lang.String(i7504)), java.lang.Object(java.lang.String(i6164)))
Cond_Load34990ARR10(TRUE, java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824, java.lang.Object(java.lang.String(i7504)), java.lang.Object(java.lang.String(i6164))) → New40846(java.lang.Object(ARRAY(i4, a115115data)), i5816 + 1 + 1, i5824)
The set Q consists of the following terms:
Inc35127(java.lang.Object(ARRAY(x0, x1)), x2, x3)
New39186(java.lang.Object(ARRAY(x0, x1)), x2, x3)
New40185(java.lang.Object(ARRAY(x0, x1)), x2, x3)
Cond_Load34990ARR5(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4)))
New40288(java.lang.Object(ARRAY(x0, x1)), x2, x3)
Cond_Load34990ARR6(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4)))
New40846(java.lang.Object(ARRAY(x0, x1)), x2, x3)
Load34990ARR7(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4)), java.lang.Object(java.lang.String(x5)))
Cond_Load34990ARR7(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4)), java.lang.Object(java.lang.String(x5)))
Cond_Load34990ARR8(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4)))
Cond_Load34990ARR9(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4)))
Load34990ARR10(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4)), java.lang.Object(java.lang.String(x5)))
Cond_Load34990ARR10(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4)), java.lang.Object(java.lang.String(x5)))

### (25) ITRSFSMergerProof (SOUND transformation)

The following function symbols have been merged:
 New39186, New40185 > New39186_3 New40288, New40846 > New40288_3

### (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:
Load34990ARR3(java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824) → Cond_Load34990ARR3(i5816 + 1 > 0 && i5816 + 1 < i4 && i5816 > 0 && i5816 < i4 && i5824 > 0 && i5816 + 1 + 1 > 0, java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824)
Cond_Load34990ARR3(TRUE, java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824) → New39186(java.lang.Object(ARRAY(i4, a115115data)), i5816 + 1 + 1, i5824)
Inc35127(java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824) → Load34990(java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824 + -1)
Load34990(java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824) → Cond_Load34990(i5824 > 0, java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824)
Cond_Load34990(TRUE, java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824) → Load34990(java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824 + -1)
New39186(java.lang.Object(ARRAY(i4, a115115data)), i6609, i5824) → Inc35127(java.lang.Object(ARRAY(i4, a115115data)), i6609, i5824)
Load34990ARR4(java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824) → Cond_Load34990ARR4(i5816 + 1 > 0 && i5816 + 1 < i4 && i5816 > 0 && i5816 < i4 && i5824 > 0 && i5816 + 1 + 1 > 0, java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824)
Cond_Load34990ARR4(TRUE, java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824) → Inc35127(java.lang.Object(ARRAY(i4, a115115data)), i5816 + 1 + 1, i5824)
Load34990ARR5(java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824, java.lang.Object(java.lang.String(i6986))) → Cond_Load34990ARR5(!(i6986 = 0) && i5816 + 1 > 0 && i5816 + 1 < i4 && i5816 > 0 && i5816 < i4 && i5824 > 0 && i5816 + 1 + 1 > 0, java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824, java.lang.Object(java.lang.String(i6986)))
Cond_Load34990ARR5(TRUE, java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824, java.lang.Object(java.lang.String(i6986))) → Inc35127(java.lang.Object(ARRAY(i4, a115115data)), i5816 + 1 + 1, i5824)
New40288(java.lang.Object(ARRAY(i4, a115115data)), i6905, i5824) → Inc35127(java.lang.Object(ARRAY(i4, a115115data)), i6905, i5824)
Load34990ARR6(java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824, java.lang.Object(java.lang.String(i6164))) → Cond_Load34990ARR6(i5816 + 1 > 0 && i5816 + 1 < i4 && !(i6164 = 0) && i5816 > 0 && i5816 < i4 && i5824 > 0 && i5816 + 1 + 1 > 0, java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824, java.lang.Object(java.lang.String(i6164)))
Cond_Load34990ARR6(TRUE, java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824, java.lang.Object(java.lang.String(i6164))) → Inc35127(java.lang.Object(ARRAY(i4, a115115data)), i5816 + 1 + 1, i5824)
Load34990ARR7(java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824, java.lang.Object(java.lang.String(i7504)), java.lang.Object(java.lang.String(i6164))) → Cond_Load34990ARR7(!(i7504 = 0) && i5816 + 1 > 0 && i5816 + 1 < i4 && !(i6164 = 0) && i5816 > 0 && i5816 < i4 && i5824 > 0 && i5816 + 1 + 1 > 0, java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824, java.lang.Object(java.lang.String(i7504)), java.lang.Object(java.lang.String(i6164)))
Cond_Load34990ARR7(TRUE, java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824, java.lang.Object(java.lang.String(i7504)), java.lang.Object(java.lang.String(i6164))) → Inc35127(java.lang.Object(ARRAY(i4, a115115data)), i5816 + 1 + 1, i5824)
Load34990ARR8(java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824, java.lang.Object(java.lang.String(i6986))) → Cond_Load34990ARR8(!(i6986 = 0) && i5816 + 1 > 0 && i5816 + 1 < i4 && i5816 > 0 && i5816 < i4 && i5824 > 0 && i5816 + 1 + 1 > 0, java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824, java.lang.Object(java.lang.String(i6986)))
Cond_Load34990ARR8(TRUE, java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824, java.lang.Object(java.lang.String(i6986))) → New39186(java.lang.Object(ARRAY(i4, a115115data)), i5816 + 1 + 1, i5824)
Load34990ARR9(java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824, java.lang.Object(java.lang.String(i6164))) → Cond_Load34990ARR9(i5816 + 1 > 0 && i5816 + 1 < i4 && !(i6164 = 0) && i5816 > 0 && i5816 < i4 && i5824 > 0 && i5816 + 1 + 1 > 0, java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824, java.lang.Object(java.lang.String(i6164)))
Cond_Load34990ARR9(TRUE, java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824, java.lang.Object(java.lang.String(i6164))) → New40288(java.lang.Object(ARRAY(i4, a115115data)), i5816 + 1 + 1, i5824)
Load34990ARR10(java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824, java.lang.Object(java.lang.String(i7504)), java.lang.Object(java.lang.String(i6164))) → Cond_Load34990ARR10(!(i7504 = 0) && i5816 + 1 > 0 && i5816 + 1 < i4 && !(i6164 = 0) && i5816 > 0 && i5816 < i4 && i5824 > 0 && i5816 + 1 + 1 > 0, java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824, java.lang.Object(java.lang.String(i7504)), java.lang.Object(java.lang.String(i6164)))
Cond_Load34990ARR10(TRUE, java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824, java.lang.Object(java.lang.String(i7504)), java.lang.Object(java.lang.String(i6164))) → New40288(java.lang.Object(ARRAY(i4, a115115data)), i5816 + 1 + 1, i5824)
The set Q consists of the following terms:
Inc35127(java.lang.Object(ARRAY(x0, x1)), x2, x3)
New39186(java.lang.Object(ARRAY(x0, x1)), x2, x3)
Cond_Load34990ARR5(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4)))
New40288(java.lang.Object(ARRAY(x0, x1)), x2, x3)
Cond_Load34990ARR6(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4)))
Load34990ARR7(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4)), java.lang.Object(java.lang.String(x5)))
Cond_Load34990ARR7(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4)), java.lang.Object(java.lang.String(x5)))
Cond_Load34990ARR8(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4)))
Cond_Load34990ARR9(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4)))
Load34990ARR10(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4)), java.lang.Object(java.lang.String(x5)))
Cond_Load34990ARR10(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4)), java.lang.Object(java.lang.String(x5)))

### (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:
Load34990ARR3(java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824) → Cond_Load34990ARR3(i5816 + 1 > 0 && i5816 + 1 < i4 && i5816 > 0 && i5816 < i4 && i5824 > 0 && i5816 + 1 + 1 > 0, java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824)
Cond_Load34990ARR3(TRUE, java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824) → New39186(java.lang.Object(ARRAY(i4, a115115data)), i5816 + 1 + 1, i5824)
Inc35127(java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824) → Load34990(java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824 + -1)
Load34990(java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824) → Cond_Load34990(i5824 > 0, java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824)
Cond_Load34990(TRUE, java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824) → Load34990(java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824 + -1)
New39186(java.lang.Object(ARRAY(i4, a115115data)), i6609, i5824) → Inc35127(java.lang.Object(ARRAY(i4, a115115data)), i6609, i5824)
Load34990ARR4(java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824) → Cond_Load34990ARR4(i5816 + 1 > 0 && i5816 + 1 < i4 && i5816 > 0 && i5816 < i4 && i5824 > 0 && i5816 + 1 + 1 > 0, java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824)
Cond_Load34990ARR4(TRUE, java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824) → Inc35127(java.lang.Object(ARRAY(i4, a115115data)), i5816 + 1 + 1, i5824)
Load34990ARR5(java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824, java.lang.Object(java.lang.String(i6986))) → Cond_Load34990ARR5(!(i6986 = 0) && i5816 + 1 > 0 && i5816 + 1 < i4 && i5816 > 0 && i5816 < i4 && i5824 > 0 && i5816 + 1 + 1 > 0, java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824, java.lang.Object(java.lang.String(i6986)))
Cond_Load34990ARR5(TRUE, java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824, java.lang.Object(java.lang.String(i6986))) → Inc35127(java.lang.Object(ARRAY(i4, a115115data)), i5816 + 1 + 1, i5824)
New40288(java.lang.Object(ARRAY(i4, a115115data)), i6905, i5824) → Inc35127(java.lang.Object(ARRAY(i4, a115115data)), i6905, i5824)
Load34990ARR6(java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824, java.lang.Object(java.lang.String(i6164))) → Cond_Load34990ARR6(i5816 + 1 > 0 && i5816 + 1 < i4 && !(i6164 = 0) && i5816 > 0 && i5816 < i4 && i5824 > 0 && i5816 + 1 + 1 > 0, java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824, java.lang.Object(java.lang.String(i6164)))
Cond_Load34990ARR6(TRUE, java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824, java.lang.Object(java.lang.String(i6164))) → Inc35127(java.lang.Object(ARRAY(i4, a115115data)), i5816 + 1 + 1, i5824)
Load34990ARR7(java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824, java.lang.Object(java.lang.String(i7504)), java.lang.Object(java.lang.String(i6164))) → Cond_Load34990ARR7(!(i7504 = 0) && i5816 + 1 > 0 && i5816 + 1 < i4 && !(i6164 = 0) && i5816 > 0 && i5816 < i4 && i5824 > 0 && i5816 + 1 + 1 > 0, java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824, java.lang.Object(java.lang.String(i7504)), java.lang.Object(java.lang.String(i6164)))
Cond_Load34990ARR7(TRUE, java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824, java.lang.Object(java.lang.String(i7504)), java.lang.Object(java.lang.String(i6164))) → Inc35127(java.lang.Object(ARRAY(i4, a115115data)), i5816 + 1 + 1, i5824)
Load34990ARR8(java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824, java.lang.Object(java.lang.String(i6986))) → Cond_Load34990ARR8(!(i6986 = 0) && i5816 + 1 > 0 && i5816 + 1 < i4 && i5816 > 0 && i5816 < i4 && i5824 > 0 && i5816 + 1 + 1 > 0, java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824, java.lang.Object(java.lang.String(i6986)))
Cond_Load34990ARR8(TRUE, java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824, java.lang.Object(java.lang.String(i6986))) → New39186(java.lang.Object(ARRAY(i4, a115115data)), i5816 + 1 + 1, i5824)
Load34990ARR9(java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824, java.lang.Object(java.lang.String(i6164))) → Cond_Load34990ARR9(i5816 + 1 > 0 && i5816 + 1 < i4 && !(i6164 = 0) && i5816 > 0 && i5816 < i4 && i5824 > 0 && i5816 + 1 + 1 > 0, java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824, java.lang.Object(java.lang.String(i6164)))
Cond_Load34990ARR9(TRUE, java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824, java.lang.Object(java.lang.String(i6164))) → New40288(java.lang.Object(ARRAY(i4, a115115data)), i5816 + 1 + 1, i5824)
Load34990ARR10(java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824, java.lang.Object(java.lang.String(i7504)), java.lang.Object(java.lang.String(i6164))) → Cond_Load34990ARR10(!(i7504 = 0) && i5816 + 1 > 0 && i5816 + 1 < i4 && !(i6164 = 0) && i5816 > 0 && i5816 < i4 && i5824 > 0 && i5816 + 1 + 1 > 0, java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824, java.lang.Object(java.lang.String(i7504)), java.lang.Object(java.lang.String(i6164)))
Cond_Load34990ARR10(TRUE, java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824, java.lang.Object(java.lang.String(i7504)), java.lang.Object(java.lang.String(i6164))) → New40288(java.lang.Object(ARRAY(i4, a115115data)), i5816 + 1 + 1, i5824)

The integer pair graph contains the following rules and edges:
(1): LOAD34990ARR3(java.lang.Object(ARRAY(i4[1], a115115data[1])), i5816[1], i5824[1]) → COND_LOAD34990ARR3(i5816[1] + 1 > 0 && i5816[1] + 1 < i4[1] && i5816[1] > 0 && i5816[1] < i4[1] && i5824[1] > 0 && i5816[1] + 1 + 1 > 0, java.lang.Object(ARRAY(i4[1], a115115data[1])), i5816[1], i5824[1])
(2): COND_LOAD34990ARR3(TRUE, java.lang.Object(ARRAY(i4[2], a115115data[2])), i5816[2], i5824[2]) → NEW39186(java.lang.Object(ARRAY(i4[2], a115115data[2])), i5816[2] + 1 + 1, i5824[2])
(3): INC35127(java.lang.Object(ARRAY(i4[3], a115115data[3])), i5816[3], i5824[3]) → LOAD34990(java.lang.Object(ARRAY(i4[3], a115115data[3])), i5816[3], i5824[3] + -1)
(4): LOAD34990(java.lang.Object(ARRAY(i4[4], a115115data[4])), i5816[4], i5824[4]) → COND_LOAD34990(i5824[4] > 0, java.lang.Object(ARRAY(i4[4], a115115data[4])), i5816[4], i5824[4])
(5): COND_LOAD34990(TRUE, java.lang.Object(ARRAY(i4[5], a115115data[5])), i5816[5], i5824[5]) → LOAD34990(java.lang.Object(ARRAY(i4[5], a115115data[5])), i5816[5], i5824[5] + -1)
(6): NEW39186(java.lang.Object(ARRAY(i4[6], a115115data[6])), i6609[6], i5824[6]) → INC35127(java.lang.Object(ARRAY(i4[6], a115115data[6])), i6609[6], i5824[6])
(8): LOAD34990ARR4(java.lang.Object(ARRAY(i4[8], a115115data[8])), i5816[8], i5824[8]) → COND_LOAD34990ARR4(i5816[8] + 1 > 0 && i5816[8] + 1 < i4[8] && i5816[8] > 0 && i5816[8] < i4[8] && i5824[8] > 0 && i5816[8] + 1 + 1 > 0, java.lang.Object(ARRAY(i4[8], a115115data[8])), i5816[8], i5824[8])
(9): COND_LOAD34990ARR4(TRUE, java.lang.Object(ARRAY(i4[9], a115115data[9])), i5816[9], i5824[9]) → INC35127(java.lang.Object(ARRAY(i4[9], a115115data[9])), i5816[9] + 1 + 1, i5824[9])
(11): LOAD34990ARR5(java.lang.Object(ARRAY(i4[11], a115115data[11])), i5816[11], i5824[11], java.lang.Object(java.lang.String(i6986[11]))) → COND_LOAD34990ARR5(!(i6986[11] = 0) && i5816[11] + 1 > 0 && i5816[11] + 1 < i4[11] && i5816[11] > 0 && i5816[11] < i4[11] && i5824[11] > 0 && i5816[11] + 1 + 1 > 0, java.lang.Object(ARRAY(i4[11], a115115data[11])), i5816[11], i5824[11], java.lang.Object(java.lang.String(i6986[11])))
(12): COND_LOAD34990ARR5(TRUE, java.lang.Object(ARRAY(i4[12], a115115data[12])), i5816[12], i5824[12], java.lang.Object(java.lang.String(i6986[12]))) → INC35127(java.lang.Object(ARRAY(i4[12], a115115data[12])), i5816[12] + 1 + 1, i5824[12])
(13): NEW40288(java.lang.Object(ARRAY(i4[13], a115115data[13])), i6905[13], i5824[13]) → INC35127(java.lang.Object(ARRAY(i4[13], a115115data[13])), i6905[13], i5824[13])
(15): LOAD34990ARR6(java.lang.Object(ARRAY(i4[15], a115115data[15])), i5816[15], i5824[15], java.lang.Object(java.lang.String(i6164[15]))) → COND_LOAD34990ARR6(i5816[15] + 1 > 0 && i5816[15] + 1 < i4[15] && !(i6164[15] = 0) && i5816[15] > 0 && i5816[15] < i4[15] && i5824[15] > 0 && i5816[15] + 1 + 1 > 0, java.lang.Object(ARRAY(i4[15], a115115data[15])), i5816[15], i5824[15], java.lang.Object(java.lang.String(i6164[15])))
(16): COND_LOAD34990ARR6(TRUE, java.lang.Object(ARRAY(i4[16], a115115data[16])), i5816[16], i5824[16], java.lang.Object(java.lang.String(i6164[16]))) → INC35127(java.lang.Object(ARRAY(i4[16], a115115data[16])), i5816[16] + 1 + 1, i5824[16])
(17): LOAD34990(java.lang.Object(ARRAY(i4[17], a115115data[17])), i5816[17], i5824[17]) → LOAD34990ARR7(java.lang.Object(ARRAY(i4[17], a115115data[17])), i5816[17], i5824[17], java.lang.Object(java.lang.String(i7504[17])), java.lang.Object(java.lang.String(i6164[17])))
(18): LOAD34990ARR7(java.lang.Object(ARRAY(i4[18], a115115data[18])), i5816[18], i5824[18], java.lang.Object(java.lang.String(i7504[18])), java.lang.Object(java.lang.String(i6164[18]))) → COND_LOAD34990ARR7(!(i7504[18] = 0) && i5816[18] + 1 > 0 && i5816[18] + 1 < i4[18] && !(i6164[18] = 0) && i5816[18] > 0 && i5816[18] < i4[18] && i5824[18] > 0 && i5816[18] + 1 + 1 > 0, java.lang.Object(ARRAY(i4[18], a115115data[18])), i5816[18], i5824[18], java.lang.Object(java.lang.String(i7504[18])), java.lang.Object(java.lang.String(i6164[18])))
(19): COND_LOAD34990ARR7(TRUE, java.lang.Object(ARRAY(i4[19], a115115data[19])), i5816[19], i5824[19], java.lang.Object(java.lang.String(i7504[19])), java.lang.Object(java.lang.String(i6164[19]))) → INC35127(java.lang.Object(ARRAY(i4[19], a115115data[19])), i5816[19] + 1 + 1, i5824[19])
(21): LOAD34990ARR8(java.lang.Object(ARRAY(i4[21], a115115data[21])), i5816[21], i5824[21], java.lang.Object(java.lang.String(i6986[21]))) → COND_LOAD34990ARR8(!(i6986[21] = 0) && i5816[21] + 1 > 0 && i5816[21] + 1 < i4[21] && i5816[21] > 0 && i5816[21] < i4[21] && i5824[21] > 0 && i5816[21] + 1 + 1 > 0, java.lang.Object(ARRAY(i4[21], a115115data[21])), i5816[21], i5824[21], java.lang.Object(java.lang.String(i6986[21])))
(22): COND_LOAD34990ARR8(TRUE, java.lang.Object(ARRAY(i4[22], a115115data[22])), i5816[22], i5824[22], java.lang.Object(java.lang.String(i6986[22]))) → NEW39186(java.lang.Object(ARRAY(i4[22], a115115data[22])), i5816[22] + 1 + 1, i5824[22])
(24): LOAD34990ARR9(java.lang.Object(ARRAY(i4[24], a115115data[24])), i5816[24], i5824[24], java.lang.Object(java.lang.String(i6164[24]))) → COND_LOAD34990ARR9(i5816[24] + 1 > 0 && i5816[24] + 1 < i4[24] && !(i6164[24] = 0) && i5816[24] > 0 && i5816[24] < i4[24] && i5824[24] > 0 && i5816[24] + 1 + 1 > 0, java.lang.Object(ARRAY(i4[24], a115115data[24])), i5816[24], i5824[24], java.lang.Object(java.lang.String(i6164[24])))
(25): COND_LOAD34990ARR9(TRUE, java.lang.Object(ARRAY(i4[25], a115115data[25])), i5816[25], i5824[25], java.lang.Object(java.lang.String(i6164[25]))) → NEW40288(java.lang.Object(ARRAY(i4[25], a115115data[25])), i5816[25] + 1 + 1, i5824[25])
(26): LOAD34990(java.lang.Object(ARRAY(i4[26], a115115data[26])), i5816[26], i5824[26]) → LOAD34990ARR10(java.lang.Object(ARRAY(i4[26], a115115data[26])), i5816[26], i5824[26], java.lang.Object(java.lang.String(i7504[26])), java.lang.Object(java.lang.String(i6164[26])))
(27): LOAD34990ARR10(java.lang.Object(ARRAY(i4[27], a115115data[27])), i5816[27], i5824[27], java.lang.Object(java.lang.String(i7504[27])), java.lang.Object(java.lang.String(i6164[27]))) → COND_LOAD34990ARR10(!(i7504[27] = 0) && i5816[27] + 1 > 0 && i5816[27] + 1 < i4[27] && !(i6164[27] = 0) && i5816[27] > 0 && i5816[27] < i4[27] && i5824[27] > 0 && i5816[27] + 1 + 1 > 0, java.lang.Object(ARRAY(i4[27], a115115data[27])), i5816[27], i5824[27], java.lang.Object(java.lang.String(i7504[27])), java.lang.Object(java.lang.String(i6164[27])))
(28): COND_LOAD34990ARR10(TRUE, java.lang.Object(ARRAY(i4[28], a115115data[28])), i5816[28], i5824[28], java.lang.Object(java.lang.String(i7504[28])), java.lang.Object(java.lang.String(i6164[28]))) → NEW40288(java.lang.Object(ARRAY(i4[28], a115115data[28])), i5816[28] + 1 + 1, i5824[28])

(0) -> (1), if ((java.lang.Object(ARRAY(i4[0], a115115data[0])) →* java.lang.Object(ARRAY(i4[1], a115115data[1])))∧(i5824[0]* i5824[1])∧(i5816[0]* i5816[1]))

(1) -> (2), if ((i5824[1]* i5824[2])∧(i5816[1]* i5816[2])∧(java.lang.Object(ARRAY(i4[1], a115115data[1])) →* java.lang.Object(ARRAY(i4[2], a115115data[2])))∧(i5816[1] + 1 > 0 && i5816[1] + 1 < i4[1] && i5816[1] > 0 && i5816[1] < i4[1] && i5824[1] > 0 && i5816[1] + 1 + 1 > 0* TRUE))

(2) -> (6), if ((i5824[2]* i5824[6])∧(i5816[2] + 1 + 1* i6609[6])∧(java.lang.Object(ARRAY(i4[2], a115115data[2])) →* java.lang.Object(ARRAY(i4[6], a115115data[6]))))

(3) -> (0), if ((i5824[3] + -1* i5824[0])∧(i5816[3]* i5816[0])∧(java.lang.Object(ARRAY(i4[3], a115115data[3])) →* java.lang.Object(ARRAY(i4[0], a115115data[0]))))

(3) -> (4), if ((i5824[3] + -1* i5824[4])∧(java.lang.Object(ARRAY(i4[3], a115115data[3])) →* java.lang.Object(ARRAY(i4[4], a115115data[4])))∧(i5816[3]* i5816[4]))

(3) -> (7), if ((i5824[3] + -1* i5824[7])∧(java.lang.Object(ARRAY(i4[3], a115115data[3])) →* java.lang.Object(ARRAY(i4[7], a115115data[7])))∧(i5816[3]* i5816[7]))

(3) -> (10), if ((i5824[3] + -1* i5824[10])∧(java.lang.Object(ARRAY(i4[3], a115115data[3])) →* java.lang.Object(ARRAY(i4[10], a115115data[10])))∧(i5816[3]* i5816[10]))

(3) -> (14), if ((i5816[3]* i5816[14])∧(java.lang.Object(ARRAY(i4[3], a115115data[3])) →* java.lang.Object(ARRAY(i4[14], a115115data[14])))∧(i5824[3] + -1* i5824[14]))

(3) -> (17), if ((i5824[3] + -1* i5824[17])∧(i5816[3]* i5816[17])∧(java.lang.Object(ARRAY(i4[3], a115115data[3])) →* java.lang.Object(ARRAY(i4[17], a115115data[17]))))

(3) -> (20), if ((java.lang.Object(ARRAY(i4[3], a115115data[3])) →* java.lang.Object(ARRAY(i4[20], a115115data[20])))∧(i5816[3]* i5816[20])∧(i5824[3] + -1* i5824[20]))

(3) -> (23), if ((i5824[3] + -1* i5824[23])∧(java.lang.Object(ARRAY(i4[3], a115115data[3])) →* java.lang.Object(ARRAY(i4[23], a115115data[23])))∧(i5816[3]* i5816[23]))

(3) -> (26), if ((java.lang.Object(ARRAY(i4[3], a115115data[3])) →* java.lang.Object(ARRAY(i4[26], a115115data[26])))∧(i5816[3]* i5816[26])∧(i5824[3] + -1* i5824[26]))

(4) -> (5), if ((java.lang.Object(ARRAY(i4[4], a115115data[4])) →* java.lang.Object(ARRAY(i4[5], a115115data[5])))∧(i5816[4]* i5816[5])∧(i5824[4]* i5824[5])∧(i5824[4] > 0* TRUE))

(5) -> (0), if ((i5816[5]* i5816[0])∧(i5824[5] + -1* i5824[0])∧(java.lang.Object(ARRAY(i4[5], a115115data[5])) →* java.lang.Object(ARRAY(i4[0], a115115data[0]))))

(5) -> (4), if ((i5824[5] + -1* i5824[4])∧(java.lang.Object(ARRAY(i4[5], a115115data[5])) →* java.lang.Object(ARRAY(i4[4], a115115data[4])))∧(i5816[5]* i5816[4]))

(5) -> (7), if ((i5816[5]* i5816[7])∧(java.lang.Object(ARRAY(i4[5], a115115data[5])) →* java.lang.Object(ARRAY(i4[7], a115115data[7])))∧(i5824[5] + -1* i5824[7]))

(5) -> (10), if ((java.lang.Object(ARRAY(i4[5], a115115data[5])) →* java.lang.Object(ARRAY(i4[10], a115115data[10])))∧(i5816[5]* i5816[10])∧(i5824[5] + -1* i5824[10]))

(5) -> (14), if ((java.lang.Object(ARRAY(i4[5], a115115data[5])) →* java.lang.Object(ARRAY(i4[14], a115115data[14])))∧(i5824[5] + -1* i5824[14])∧(i5816[5]* i5816[14]))

(5) -> (17), if ((java.lang.Object(ARRAY(i4[5], a115115data[5])) →* java.lang.Object(ARRAY(i4[17], a115115data[17])))∧(i5824[5] + -1* i5824[17])∧(i5816[5]* i5816[17]))

(5) -> (20), if ((i5816[5]* i5816[20])∧(i5824[5] + -1* i5824[20])∧(java.lang.Object(ARRAY(i4[5], a115115data[5])) →* java.lang.Object(ARRAY(i4[20], a115115data[20]))))

(5) -> (23), if ((i5824[5] + -1* i5824[23])∧(i5816[5]* i5816[23])∧(java.lang.Object(ARRAY(i4[5], a115115data[5])) →* java.lang.Object(ARRAY(i4[23], a115115data[23]))))

(5) -> (26), if ((i5824[5] + -1* i5824[26])∧(i5816[5]* i5816[26])∧(java.lang.Object(ARRAY(i4[5], a115115data[5])) →* java.lang.Object(ARRAY(i4[26], a115115data[26]))))

(6) -> (3), if ((i5824[6]* i5824[3])∧(i6609[6]* i5816[3])∧(java.lang.Object(ARRAY(i4[6], a115115data[6])) →* java.lang.Object(ARRAY(i4[3], a115115data[3]))))

(7) -> (8), if ((i5824[7]* i5824[8])∧(java.lang.Object(ARRAY(i4[7], a115115data[7])) →* java.lang.Object(ARRAY(i4[8], a115115data[8])))∧(i5816[7]* i5816[8]))

(8) -> (9), if ((i5816[8] + 1 > 0 && i5816[8] + 1 < i4[8] && i5816[8] > 0 && i5816[8] < i4[8] && i5824[8] > 0 && i5816[8] + 1 + 1 > 0* TRUE)∧(i5816[8]* i5816[9])∧(i5824[8]* i5824[9])∧(java.lang.Object(ARRAY(i4[8], a115115data[8])) →* java.lang.Object(ARRAY(i4[9], a115115data[9]))))

(9) -> (3), if ((java.lang.Object(ARRAY(i4[9], a115115data[9])) →* java.lang.Object(ARRAY(i4[3], a115115data[3])))∧(i5816[9] + 1 + 1* i5816[3])∧(i5824[9]* i5824[3]))

(10) -> (11), if ((java.lang.Object(java.lang.String(i6986[10])) →* java.lang.Object(java.lang.String(i6986[11])))∧(java.lang.Object(ARRAY(i4[10], a115115data[10])) →* java.lang.Object(ARRAY(i4[11], a115115data[11])))∧(i5816[10]* i5816[11])∧(i5824[10]* i5824[11]))

(11) -> (12), if ((i5824[11]* i5824[12])∧(i5816[11]* i5816[12])∧(java.lang.Object(ARRAY(i4[11], a115115data[11])) →* java.lang.Object(ARRAY(i4[12], a115115data[12])))∧(java.lang.Object(java.lang.String(i6986[11])) →* java.lang.Object(java.lang.String(i6986[12])))∧(!(i6986[11] = 0) && i5816[11] + 1 > 0 && i5816[11] + 1 < i4[11] && i5816[11] > 0 && i5816[11] < i4[11] && i5824[11] > 0 && i5816[11] + 1 + 1 > 0* TRUE))

(12) -> (3), if ((i5824[12]* i5824[3])∧(i5816[12] + 1 + 1* i5816[3])∧(java.lang.Object(ARRAY(i4[12], a115115data[12])) →* java.lang.Object(ARRAY(i4[3], a115115data[3]))))

(13) -> (3), if ((java.lang.Object(ARRAY(i4[13], a115115data[13])) →* java.lang.Object(ARRAY(i4[3], a115115data[3])))∧(i6905[13]* i5816[3])∧(i5824[13]* i5824[3]))

(14) -> (15), if ((i5824[14]* i5824[15])∧(i5816[14]* i5816[15])∧(java.lang.Object(java.lang.String(i6164[14])) →* java.lang.Object(java.lang.String(i6164[15])))∧(java.lang.Object(ARRAY(i4[14], a115115data[14])) →* java.lang.Object(ARRAY(i4[15], a115115data[15]))))

(15) -> (16), if ((i5816[15]* i5816[16])∧(i5824[15]* i5824[16])∧(i5816[15] + 1 > 0 && i5816[15] + 1 < i4[15] && !(i6164[15] = 0) && i5816[15] > 0 && i5816[15] < i4[15] && i5824[15] > 0 && i5816[15] + 1 + 1 > 0* TRUE)∧(java.lang.Object(ARRAY(i4[15], a115115data[15])) →* java.lang.Object(ARRAY(i4[16], a115115data[16])))∧(java.lang.Object(java.lang.String(i6164[15])) →* java.lang.Object(java.lang.String(i6164[16]))))

(16) -> (3), if ((i5824[16]* i5824[3])∧(i5816[16] + 1 + 1* i5816[3])∧(java.lang.Object(ARRAY(i4[16], a115115data[16])) →* java.lang.Object(ARRAY(i4[3], a115115data[3]))))

(17) -> (18), if ((java.lang.Object(java.lang.String(i6164[17])) →* java.lang.Object(java.lang.String(i6164[18])))∧(i5824[17]* i5824[18])∧(java.lang.Object(java.lang.String(i7504[17])) →* java.lang.Object(java.lang.String(i7504[18])))∧(java.lang.Object(ARRAY(i4[17], a115115data[17])) →* java.lang.Object(ARRAY(i4[18], a115115data[18])))∧(i5816[17]* i5816[18]))

(18) -> (19), if ((java.lang.Object(java.lang.String(i6164[18])) →* java.lang.Object(java.lang.String(i6164[19])))∧(java.lang.Object(java.lang.String(i7504[18])) →* java.lang.Object(java.lang.String(i7504[19])))∧(!(i7504[18] = 0) && i5816[18] + 1 > 0 && i5816[18] + 1 < i4[18] && !(i6164[18] = 0) && i5816[18] > 0 && i5816[18] < i4[18] && i5824[18] > 0 && i5816[18] + 1 + 1 > 0* TRUE)∧(java.lang.Object(ARRAY(i4[18], a115115data[18])) →* java.lang.Object(ARRAY(i4[19], a115115data[19])))∧(i5816[18]* i5816[19])∧(i5824[18]* i5824[19]))

(19) -> (3), if ((i5816[19] + 1 + 1* i5816[3])∧(i5824[19]* i5824[3])∧(java.lang.Object(ARRAY(i4[19], a115115data[19])) →* java.lang.Object(ARRAY(i4[3], a115115data[3]))))

(20) -> (21), if ((java.lang.Object(java.lang.String(i6986[20])) →* java.lang.Object(java.lang.String(i6986[21])))∧(i5816[20]* i5816[21])∧(java.lang.Object(ARRAY(i4[20], a115115data[20])) →* java.lang.Object(ARRAY(i4[21], a115115data[21])))∧(i5824[20]* i5824[21]))

(21) -> (22), if ((java.lang.Object(ARRAY(i4[21], a115115data[21])) →* java.lang.Object(ARRAY(i4[22], a115115data[22])))∧(java.lang.Object(java.lang.String(i6986[21])) →* java.lang.Object(java.lang.String(i6986[22])))∧(!(i6986[21] = 0) && i5816[21] + 1 > 0 && i5816[21] + 1 < i4[21] && i5816[21] > 0 && i5816[21] < i4[21] && i5824[21] > 0 && i5816[21] + 1 + 1 > 0* TRUE)∧(i5816[21]* i5816[22])∧(i5824[21]* i5824[22]))

(22) -> (6), if ((i5816[22] + 1 + 1* i6609[6])∧(java.lang.Object(ARRAY(i4[22], a115115data[22])) →* java.lang.Object(ARRAY(i4[6], a115115data[6])))∧(i5824[22]* i5824[6]))

(23) -> (24), if ((java.lang.Object(java.lang.String(i6164[23])) →* java.lang.Object(java.lang.String(i6164[24])))∧(i5816[23]* i5816[24])∧(java.lang.Object(ARRAY(i4[23], a115115data[23])) →* java.lang.Object(ARRAY(i4[24], a115115data[24])))∧(i5824[23]* i5824[24]))

(24) -> (25), if ((java.lang.Object(ARRAY(i4[24], a115115data[24])) →* java.lang.Object(ARRAY(i4[25], a115115data[25])))∧(i5816[24] + 1 > 0 && i5816[24] + 1 < i4[24] && !(i6164[24] = 0) && i5816[24] > 0 && i5816[24] < i4[24] && i5824[24] > 0 && i5816[24] + 1 + 1 > 0* TRUE)∧(java.lang.Object(java.lang.String(i6164[24])) →* java.lang.Object(java.lang.String(i6164[25])))∧(i5816[24]* i5816[25])∧(i5824[24]* i5824[25]))

(25) -> (13), if ((i5824[25]* i5824[13])∧(java.lang.Object(ARRAY(i4[25], a115115data[25])) →* java.lang.Object(ARRAY(i4[13], a115115data[13])))∧(i5816[25] + 1 + 1* i6905[13]))

(26) -> (27), if ((java.lang.Object(java.lang.String(i7504[26])) →* java.lang.Object(java.lang.String(i7504[27])))∧(java.lang.Object(ARRAY(i4[26], a115115data[26])) →* java.lang.Object(ARRAY(i4[27], a115115data[27])))∧(java.lang.Object(java.lang.String(i6164[26])) →* java.lang.Object(java.lang.String(i6164[27])))∧(i5824[26]* i5824[27])∧(i5816[26]* i5816[27]))

(27) -> (28), if ((i5824[27]* i5824[28])∧(!(i7504[27] = 0) && i5816[27] + 1 > 0 && i5816[27] + 1 < i4[27] && !(i6164[27] = 0) && i5816[27] > 0 && i5816[27] < i4[27] && i5824[27] > 0 && i5816[27] + 1 + 1 > 0* TRUE)∧(java.lang.Object(java.lang.String(i7504[27])) →* java.lang.Object(java.lang.String(i7504[28])))∧(java.lang.Object(java.lang.String(i6164[27])) →* java.lang.Object(java.lang.String(i6164[28])))∧(i5816[27]* i5816[28])∧(java.lang.Object(ARRAY(i4[27], a115115data[27])) →* java.lang.Object(ARRAY(i4[28], a115115data[28]))))

(28) -> (13), if ((i5824[28]* i5824[13])∧(i5816[28] + 1 + 1* i6905[13])∧(java.lang.Object(ARRAY(i4[28], a115115data[28])) →* java.lang.Object(ARRAY(i4[13], a115115data[13]))))

The set Q consists of the following terms:
Inc35127(java.lang.Object(ARRAY(x0, x1)), x2, x3)
New39186(java.lang.Object(ARRAY(x0, x1)), x2, x3)
Cond_Load34990ARR5(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4)))
New40288(java.lang.Object(ARRAY(x0, x1)), x2, x3)
Cond_Load34990ARR6(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4)))
Load34990ARR7(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4)), java.lang.Object(java.lang.String(x5)))
Cond_Load34990ARR7(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4)), java.lang.Object(java.lang.String(x5)))
Cond_Load34990ARR8(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4)))
Cond_Load34990ARR9(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4)))
Load34990ARR10(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4)), java.lang.Object(java.lang.String(x5)))
Cond_Load34990ARR10(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4)), java.lang.Object(java.lang.String(x5)))

### (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:
(1): LOAD34990ARR3(java.lang.Object(ARRAY(i4[1], a115115data[1])), i5816[1], i5824[1]) → COND_LOAD34990ARR3(i5816[1] + 1 > 0 && i5816[1] + 1 < i4[1] && i5816[1] > 0 && i5816[1] < i4[1] && i5824[1] > 0 && i5816[1] + 1 + 1 > 0, java.lang.Object(ARRAY(i4[1], a115115data[1])), i5816[1], i5824[1])
(2): COND_LOAD34990ARR3(TRUE, java.lang.Object(ARRAY(i4[2], a115115data[2])), i5816[2], i5824[2]) → NEW39186(java.lang.Object(ARRAY(i4[2], a115115data[2])), i5816[2] + 1 + 1, i5824[2])
(3): INC35127(java.lang.Object(ARRAY(i4[3], a115115data[3])), i5816[3], i5824[3]) → LOAD34990(java.lang.Object(ARRAY(i4[3], a115115data[3])), i5816[3], i5824[3] + -1)
(4): LOAD34990(java.lang.Object(ARRAY(i4[4], a115115data[4])), i5816[4], i5824[4]) → COND_LOAD34990(i5824[4] > 0, java.lang.Object(ARRAY(i4[4], a115115data[4])), i5816[4], i5824[4])
(5): COND_LOAD34990(TRUE, java.lang.Object(ARRAY(i4[5], a115115data[5])), i5816[5], i5824[5]) → LOAD34990(java.lang.Object(ARRAY(i4[5], a115115data[5])), i5816[5], i5824[5] + -1)
(6): NEW39186(java.lang.Object(ARRAY(i4[6], a115115data[6])), i6609[6], i5824[6]) → INC35127(java.lang.Object(ARRAY(i4[6], a115115data[6])), i6609[6], i5824[6])
(8): LOAD34990ARR4(java.lang.Object(ARRAY(i4[8], a115115data[8])), i5816[8], i5824[8]) → COND_LOAD34990ARR4(i5816[8] + 1 > 0 && i5816[8] + 1 < i4[8] && i5816[8] > 0 && i5816[8] < i4[8] && i5824[8] > 0 && i5816[8] + 1 + 1 > 0, java.lang.Object(ARRAY(i4[8], a115115data[8])), i5816[8], i5824[8])
(9): COND_LOAD34990ARR4(TRUE, java.lang.Object(ARRAY(i4[9], a115115data[9])), i5816[9], i5824[9]) → INC35127(java.lang.Object(ARRAY(i4[9], a115115data[9])), i5816[9] + 1 + 1, i5824[9])
(11): LOAD34990ARR5(java.lang.Object(ARRAY(i4[11], a115115data[11])), i5816[11], i5824[11], java.lang.Object(java.lang.String(i6986[11]))) → COND_LOAD34990ARR5(!(i6986[11] = 0) && i5816[11] + 1 > 0 && i5816[11] + 1 < i4[11] && i5816[11] > 0 && i5816[11] < i4[11] && i5824[11] > 0 && i5816[11] + 1 + 1 > 0, java.lang.Object(ARRAY(i4[11], a115115data[11])), i5816[11], i5824[11], java.lang.Object(java.lang.String(i6986[11])))
(12): COND_LOAD34990ARR5(TRUE, java.lang.Object(ARRAY(i4[12], a115115data[12])), i5816[12], i5824[12], java.lang.Object(java.lang.String(i6986[12]))) → INC35127(java.lang.Object(ARRAY(i4[12], a115115data[12])), i5816[12] + 1 + 1, i5824[12])
(13): NEW40288(java.lang.Object(ARRAY(i4[13], a115115data[13])), i6905[13], i5824[13]) → INC35127(java.lang.Object(ARRAY(i4[13], a115115data[13])), i6905[13], i5824[13])
(15): LOAD34990ARR6(java.lang.Object(ARRAY(i4[15], a115115data[15])), i5816[15], i5824[15], java.lang.Object(java.lang.String(i6164[15]))) → COND_LOAD34990ARR6(i5816[15] + 1 > 0 && i5816[15] + 1 < i4[15] && !(i6164[15] = 0) && i5816[15] > 0 && i5816[15] < i4[15] && i5824[15] > 0 && i5816[15] + 1 + 1 > 0, java.lang.Object(ARRAY(i4[15], a115115data[15])), i5816[15], i5824[15], java.lang.Object(java.lang.String(i6164[15])))
(16): COND_LOAD34990ARR6(TRUE, java.lang.Object(ARRAY(i4[16], a115115data[16])), i5816[16], i5824[16], java.lang.Object(java.lang.String(i6164[16]))) → INC35127(java.lang.Object(ARRAY(i4[16], a115115data[16])), i5816[16] + 1 + 1, i5824[16])
(17): LOAD34990(java.lang.Object(ARRAY(i4[17], a115115data[17])), i5816[17], i5824[17]) → LOAD34990ARR7(java.lang.Object(ARRAY(i4[17], a115115data[17])), i5816[17], i5824[17], java.lang.Object(java.lang.String(i7504[17])), java.lang.Object(java.lang.String(i6164[17])))
(18): LOAD34990ARR7(java.lang.Object(ARRAY(i4[18], a115115data[18])), i5816[18], i5824[18], java.lang.Object(java.lang.String(i7504[18])), java.lang.Object(java.lang.String(i6164[18]))) → COND_LOAD34990ARR7(!(i7504[18] = 0) && i5816[18] + 1 > 0 && i5816[18] + 1 < i4[18] && !(i6164[18] = 0) && i5816[18] > 0 && i5816[18] < i4[18] && i5824[18] > 0 && i5816[18] + 1 + 1 > 0, java.lang.Object(ARRAY(i4[18], a115115data[18])), i5816[18], i5824[18], java.lang.Object(java.lang.String(i7504[18])), java.lang.Object(java.lang.String(i6164[18])))
(19): COND_LOAD34990ARR7(TRUE, java.lang.Object(ARRAY(i4[19], a115115data[19])), i5816[19], i5824[19], java.lang.Object(java.lang.String(i7504[19])), java.lang.Object(java.lang.String(i6164[19]))) → INC35127(java.lang.Object(ARRAY(i4[19], a115115data[19])), i5816[19] + 1 + 1, i5824[19])
(21): LOAD34990ARR8(java.lang.Object(ARRAY(i4[21], a115115data[21])), i5816[21], i5824[21], java.lang.Object(java.lang.String(i6986[21]))) → COND_LOAD34990ARR8(!(i6986[21] = 0) && i5816[21] + 1 > 0 && i5816[21] + 1 < i4[21] && i5816[21] > 0 && i5816[21] < i4[21] && i5824[21] > 0 && i5816[21] + 1 + 1 > 0, java.lang.Object(ARRAY(i4[21], a115115data[21])), i5816[21], i5824[21], java.lang.Object(java.lang.String(i6986[21])))
(22): COND_LOAD34990ARR8(TRUE, java.lang.Object(ARRAY(i4[22], a115115data[22])), i5816[22], i5824[22], java.lang.Object(java.lang.String(i6986[22]))) → NEW39186(java.lang.Object(ARRAY(i4[22], a115115data[22])), i5816[22] + 1 + 1, i5824[22])
(24): LOAD34990ARR9(java.lang.Object(ARRAY(i4[24], a115115data[24])), i5816[24], i5824[24], java.lang.Object(java.lang.String(i6164[24]))) → COND_LOAD34990ARR9(i5816[24] + 1 > 0 && i5816[24] + 1 < i4[24] && !(i6164[24] = 0) && i5816[24] > 0 && i5816[24] < i4[24] && i5824[24] > 0 && i5816[24] + 1 + 1 > 0, java.lang.Object(ARRAY(i4[24], a115115data[24])), i5816[24], i5824[24], java.lang.Object(java.lang.String(i6164[24])))
(25): COND_LOAD34990ARR9(TRUE, java.lang.Object(ARRAY(i4[25], a115115data[25])), i5816[25], i5824[25], java.lang.Object(java.lang.String(i6164[25]))) → NEW40288(java.lang.Object(ARRAY(i4[25], a115115data[25])), i5816[25] + 1 + 1, i5824[25])
(26): LOAD34990(java.lang.Object(ARRAY(i4[26], a115115data[26])), i5816[26], i5824[26]) → LOAD34990ARR10(java.lang.Object(ARRAY(i4[26], a115115data[26])), i5816[26], i5824[26], java.lang.Object(java.lang.String(i7504[26])), java.lang.Object(java.lang.String(i6164[26])))
(27): LOAD34990ARR10(java.lang.Object(ARRAY(i4[27], a115115data[27])), i5816[27], i5824[27], java.lang.Object(java.lang.String(i7504[27])), java.lang.Object(java.lang.String(i6164[27]))) → COND_LOAD34990ARR10(!(i7504[27] = 0) && i5816[27] + 1 > 0 && i5816[27] + 1 < i4[27] && !(i6164[27] = 0) && i5816[27] > 0 && i5816[27] < i4[27] && i5824[27] > 0 && i5816[27] + 1 + 1 > 0, java.lang.Object(ARRAY(i4[27], a115115data[27])), i5816[27], i5824[27], java.lang.Object(java.lang.String(i7504[27])), java.lang.Object(java.lang.String(i6164[27])))
(28): COND_LOAD34990ARR10(TRUE, java.lang.Object(ARRAY(i4[28], a115115data[28])), i5816[28], i5824[28], java.lang.Object(java.lang.String(i7504[28])), java.lang.Object(java.lang.String(i6164[28]))) → NEW40288(java.lang.Object(ARRAY(i4[28], a115115data[28])), i5816[28] + 1 + 1, i5824[28])

(0) -> (1), if ((java.lang.Object(ARRAY(i4[0], a115115data[0])) →* java.lang.Object(ARRAY(i4[1], a115115data[1])))∧(i5824[0]* i5824[1])∧(i5816[0]* i5816[1]))

(1) -> (2), if ((i5824[1]* i5824[2])∧(i5816[1]* i5816[2])∧(java.lang.Object(ARRAY(i4[1], a115115data[1])) →* java.lang.Object(ARRAY(i4[2], a115115data[2])))∧(i5816[1] + 1 > 0 && i5816[1] + 1 < i4[1] && i5816[1] > 0 && i5816[1] < i4[1] && i5824[1] > 0 && i5816[1] + 1 + 1 > 0* TRUE))

(2) -> (6), if ((i5824[2]* i5824[6])∧(i5816[2] + 1 + 1* i6609[6])∧(java.lang.Object(ARRAY(i4[2], a115115data[2])) →* java.lang.Object(ARRAY(i4[6], a115115data[6]))))

(3) -> (0), if ((i5824[3] + -1* i5824[0])∧(i5816[3]* i5816[0])∧(java.lang.Object(ARRAY(i4[3], a115115data[3])) →* java.lang.Object(ARRAY(i4[0], a115115data[0]))))

(3) -> (4), if ((i5824[3] + -1* i5824[4])∧(java.lang.Object(ARRAY(i4[3], a115115data[3])) →* java.lang.Object(ARRAY(i4[4], a115115data[4])))∧(i5816[3]* i5816[4]))

(3) -> (7), if ((i5824[3] + -1* i5824[7])∧(java.lang.Object(ARRAY(i4[3], a115115data[3])) →* java.lang.Object(ARRAY(i4[7], a115115data[7])))∧(i5816[3]* i5816[7]))

(3) -> (10), if ((i5824[3] + -1* i5824[10])∧(java.lang.Object(ARRAY(i4[3], a115115data[3])) →* java.lang.Object(ARRAY(i4[10], a115115data[10])))∧(i5816[3]* i5816[10]))

(3) -> (14), if ((i5816[3]* i5816[14])∧(java.lang.Object(ARRAY(i4[3], a115115data[3])) →* java.lang.Object(ARRAY(i4[14], a115115data[14])))∧(i5824[3] + -1* i5824[14]))

(3) -> (17), if ((i5824[3] + -1* i5824[17])∧(i5816[3]* i5816[17])∧(java.lang.Object(ARRAY(i4[3], a115115data[3])) →* java.lang.Object(ARRAY(i4[17], a115115data[17]))))

(3) -> (20), if ((java.lang.Object(ARRAY(i4[3], a115115data[3])) →* java.lang.Object(ARRAY(i4[20], a115115data[20])))∧(i5816[3]* i5816[20])∧(i5824[3] + -1* i5824[20]))

(3) -> (23), if ((i5824[3] + -1* i5824[23])∧(java.lang.Object(ARRAY(i4[3], a115115data[3])) →* java.lang.Object(ARRAY(i4[23], a115115data[23])))∧(i5816[3]* i5816[23]))

(3) -> (26), if ((java.lang.Object(ARRAY(i4[3], a115115data[3])) →* java.lang.Object(ARRAY(i4[26], a115115data[26])))∧(i5816[3]* i5816[26])∧(i5824[3] + -1* i5824[26]))

(4) -> (5), if ((java.lang.Object(ARRAY(i4[4], a115115data[4])) →* java.lang.Object(ARRAY(i4[5], a115115data[5])))∧(i5816[4]* i5816[5])∧(i5824[4]* i5824[5])∧(i5824[4] > 0* TRUE))

(5) -> (0), if ((i5816[5]* i5816[0])∧(i5824[5] + -1* i5824[0])∧(java.lang.Object(ARRAY(i4[5], a115115data[5])) →* java.lang.Object(ARRAY(i4[0], a115115data[0]))))

(5) -> (4), if ((i5824[5] + -1* i5824[4])∧(java.lang.Object(ARRAY(i4[5], a115115data[5])) →* java.lang.Object(ARRAY(i4[4], a115115data[4])))∧(i5816[5]* i5816[4]))

(5) -> (7), if ((i5816[5]* i5816[7])∧(java.lang.Object(ARRAY(i4[5], a115115data[5])) →* java.lang.Object(ARRAY(i4[7], a115115data[7])))∧(i5824[5] + -1* i5824[7]))

(5) -> (10), if ((java.lang.Object(ARRAY(i4[5], a115115data[5])) →* java.lang.Object(ARRAY(i4[10], a115115data[10])))∧(i5816[5]* i5816[10])∧(i5824[5] + -1* i5824[10]))

(5) -> (14), if ((java.lang.Object(ARRAY(i4[5], a115115data[5])) →* java.lang.Object(ARRAY(i4[14], a115115data[14])))∧(i5824[5] + -1* i5824[14])∧(i5816[5]* i5816[14]))

(5) -> (17), if ((java.lang.Object(ARRAY(i4[5], a115115data[5])) →* java.lang.Object(ARRAY(i4[17], a115115data[17])))∧(i5824[5] + -1* i5824[17])∧(i5816[5]* i5816[17]))

(5) -> (20), if ((i5816[5]* i5816[20])∧(i5824[5] + -1* i5824[20])∧(java.lang.Object(ARRAY(i4[5], a115115data[5])) →* java.lang.Object(ARRAY(i4[20], a115115data[20]))))

(5) -> (23), if ((i5824[5] + -1* i5824[23])∧(i5816[5]* i5816[23])∧(java.lang.Object(ARRAY(i4[5], a115115data[5])) →* java.lang.Object(ARRAY(i4[23], a115115data[23]))))

(5) -> (26), if ((i5824[5] + -1* i5824[26])∧(i5816[5]* i5816[26])∧(java.lang.Object(ARRAY(i4[5], a115115data[5])) →* java.lang.Object(ARRAY(i4[26], a115115data[26]))))

(6) -> (3), if ((i5824[6]* i5824[3])∧(i6609[6]* i5816[3])∧(java.lang.Object(ARRAY(i4[6], a115115data[6])) →* java.lang.Object(ARRAY(i4[3], a115115data[3]))))

(7) -> (8), if ((i5824[7]* i5824[8])∧(java.lang.Object(ARRAY(i4[7], a115115data[7])) →* java.lang.Object(ARRAY(i4[8], a115115data[8])))∧(i5816[7]* i5816[8]))

(8) -> (9), if ((i5816[8] + 1 > 0 && i5816[8] + 1 < i4[8] && i5816[8] > 0 && i5816[8] < i4[8] && i5824[8] > 0 && i5816[8] + 1 + 1 > 0* TRUE)∧(i5816[8]* i5816[9])∧(i5824[8]* i5824[9])∧(java.lang.Object(ARRAY(i4[8], a115115data[8])) →* java.lang.Object(ARRAY(i4[9], a115115data[9]))))

(9) -> (3), if ((java.lang.Object(ARRAY(i4[9], a115115data[9])) →* java.lang.Object(ARRAY(i4[3], a115115data[3])))∧(i5816[9] + 1 + 1* i5816[3])∧(i5824[9]* i5824[3]))

(10) -> (11), if ((java.lang.Object(java.lang.String(i6986[10])) →* java.lang.Object(java.lang.String(i6986[11])))∧(java.lang.Object(ARRAY(i4[10], a115115data[10])) →* java.lang.Object(ARRAY(i4[11], a115115data[11])))∧(i5816[10]* i5816[11])∧(i5824[10]* i5824[11]))

(11) -> (12), if ((i5824[11]* i5824[12])∧(i5816[11]* i5816[12])∧(java.lang.Object(ARRAY(i4[11], a115115data[11])) →* java.lang.Object(ARRAY(i4[12], a115115data[12])))∧(java.lang.Object(java.lang.String(i6986[11])) →* java.lang.Object(java.lang.String(i6986[12])))∧(!(i6986[11] = 0) && i5816[11] + 1 > 0 && i5816[11] + 1 < i4[11] && i5816[11] > 0 && i5816[11] < i4[11] && i5824[11] > 0 && i5816[11] + 1 + 1 > 0* TRUE))

(12) -> (3), if ((i5824[12]* i5824[3])∧(i5816[12] + 1 + 1* i5816[3])∧(java.lang.Object(ARRAY(i4[12], a115115data[12])) →* java.lang.Object(ARRAY(i4[3], a115115data[3]))))

(13) -> (3), if ((java.lang.Object(ARRAY(i4[13], a115115data[13])) →* java.lang.Object(ARRAY(i4[3], a115115data[3])))∧(i6905[13]* i5816[3])∧(i5824[13]* i5824[3]))

(14) -> (15), if ((i5824[14]* i5824[15])∧(i5816[14]* i5816[15])∧(java.lang.Object(java.lang.String(i6164[14])) →* java.lang.Object(java.lang.String(i6164[15])))∧(java.lang.Object(ARRAY(i4[14], a115115data[14])) →* java.lang.Object(ARRAY(i4[15], a115115data[15]))))

(15) -> (16), if ((i5816[15]* i5816[16])∧(i5824[15]* i5824[16])∧(i5816[15] + 1 > 0 && i5816[15] + 1 < i4[15] && !(i6164[15] = 0) && i5816[15] > 0 && i5816[15] < i4[15] && i5824[15] > 0 && i5816[15] + 1 + 1 > 0* TRUE)∧(java.lang.Object(ARRAY(i4[15], a115115data[15])) →* java.lang.Object(ARRAY(i4[16], a115115data[16])))∧(java.lang.Object(java.lang.String(i6164[15])) →* java.lang.Object(java.lang.String(i6164[16]))))

(16) -> (3), if ((i5824[16]* i5824[3])∧(i5816[16] + 1 + 1* i5816[3])∧(java.lang.Object(ARRAY(i4[16], a115115data[16])) →* java.lang.Object(ARRAY(i4[3], a115115data[3]))))

(17) -> (18), if ((java.lang.Object(java.lang.String(i6164[17])) →* java.lang.Object(java.lang.String(i6164[18])))∧(i5824[17]* i5824[18])∧(java.lang.Object(java.lang.String(i7504[17])) →* java.lang.Object(java.lang.String(i7504[18])))∧(java.lang.Object(ARRAY(i4[17], a115115data[17])) →* java.lang.Object(ARRAY(i4[18], a115115data[18])))∧(i5816[17]* i5816[18]))

(18) -> (19), if ((java.lang.Object(java.lang.String(i6164[18])) →* java.lang.Object(java.lang.String(i6164[19])))∧(java.lang.Object(java.lang.String(i7504[18])) →* java.lang.Object(java.lang.String(i7504[19])))∧(!(i7504[18] = 0) && i5816[18] + 1 > 0 && i5816[18] + 1 < i4[18] && !(i6164[18] = 0) && i5816[18] > 0 && i5816[18] < i4[18] && i5824[18] > 0 && i5816[18] + 1 + 1 > 0* TRUE)∧(java.lang.Object(ARRAY(i4[18], a115115data[18])) →* java.lang.Object(ARRAY(i4[19], a115115data[19])))∧(i5816[18]* i5816[19])∧(i5824[18]* i5824[19]))

(19) -> (3), if ((i5816[19] + 1 + 1* i5816[3])∧(i5824[19]* i5824[3])∧(java.lang.Object(ARRAY(i4[19], a115115data[19])) →* java.lang.Object(ARRAY(i4[3], a115115data[3]))))

(20) -> (21), if ((java.lang.Object(java.lang.String(i6986[20])) →* java.lang.Object(java.lang.String(i6986[21])))∧(i5816[20]* i5816[21])∧(java.lang.Object(ARRAY(i4[20], a115115data[20])) →* java.lang.Object(ARRAY(i4[21], a115115data[21])))∧(i5824[20]* i5824[21]))

(21) -> (22), if ((java.lang.Object(ARRAY(i4[21], a115115data[21])) →* java.lang.Object(ARRAY(i4[22], a115115data[22])))∧(java.lang.Object(java.lang.String(i6986[21])) →* java.lang.Object(java.lang.String(i6986[22])))∧(!(i6986[21] = 0) && i5816[21] + 1 > 0 && i5816[21] + 1 < i4[21] && i5816[21] > 0 && i5816[21] < i4[21] && i5824[21] > 0 && i5816[21] + 1 + 1 > 0* TRUE)∧(i5816[21]* i5816[22])∧(i5824[21]* i5824[22]))

(22) -> (6), if ((i5816[22] + 1 + 1* i6609[6])∧(java.lang.Object(ARRAY(i4[22], a115115data[22])) →* java.lang.Object(ARRAY(i4[6], a115115data[6])))∧(i5824[22]* i5824[6]))

(23) -> (24), if ((java.lang.Object(java.lang.String(i6164[23])) →* java.lang.Object(java.lang.String(i6164[24])))∧(i5816[23]* i5816[24])∧(java.lang.Object(ARRAY(i4[23], a115115data[23])) →* java.lang.Object(ARRAY(i4[24], a115115data[24])))∧(i5824[23]* i5824[24]))

(24) -> (25), if ((java.lang.Object(ARRAY(i4[24], a115115data[24])) →* java.lang.Object(ARRAY(i4[25], a115115data[25])))∧(i5816[24] + 1 > 0 && i5816[24] + 1 < i4[24] && !(i6164[24] = 0) && i5816[24] > 0 && i5816[24] < i4[24] && i5824[24] > 0 && i5816[24] + 1 + 1 > 0* TRUE)∧(java.lang.Object(java.lang.String(i6164[24])) →* java.lang.Object(java.lang.String(i6164[25])))∧(i5816[24]* i5816[25])∧(i5824[24]* i5824[25]))

(25) -> (13), if ((i5824[25]* i5824[13])∧(java.lang.Object(ARRAY(i4[25], a115115data[25])) →* java.lang.Object(ARRAY(i4[13], a115115data[13])))∧(i5816[25] + 1 + 1* i6905[13]))

(26) -> (27), if ((java.lang.Object(java.lang.String(i7504[26])) →* java.lang.Object(java.lang.String(i7504[27])))∧(java.lang.Object(ARRAY(i4[26], a115115data[26])) →* java.lang.Object(ARRAY(i4[27], a115115data[27])))∧(java.lang.Object(java.lang.String(i6164[26])) →* java.lang.Object(java.lang.String(i6164[27])))∧(i5824[26]* i5824[27])∧(i5816[26]* i5816[27]))

(27) -> (28), if ((i5824[27]* i5824[28])∧(!(i7504[27] = 0) && i5816[27] + 1 > 0 && i5816[27] + 1 < i4[27] && !(i6164[27] = 0) && i5816[27] > 0 && i5816[27] < i4[27] && i5824[27] > 0 && i5816[27] + 1 + 1 > 0* TRUE)∧(java.lang.Object(java.lang.String(i7504[27])) →* java.lang.Object(java.lang.String(i7504[28])))∧(java.lang.Object(java.lang.String(i6164[27])) →* java.lang.Object(java.lang.String(i6164[28])))∧(i5816[27]* i5816[28])∧(java.lang.Object(ARRAY(i4[27], a115115data[27])) →* java.lang.Object(ARRAY(i4[28], a115115data[28]))))

(28) -> (13), if ((i5824[28]* i5824[13])∧(i5816[28] + 1 + 1* i6905[13])∧(java.lang.Object(ARRAY(i4[28], a115115data[28])) →* java.lang.Object(ARRAY(i4[13], a115115data[13]))))

The set Q consists of the following terms:
Inc35127(java.lang.Object(ARRAY(x0, x1)), x2, x3)
New39186(java.lang.Object(ARRAY(x0, x1)), x2, x3)
Cond_Load34990ARR5(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4)))
New40288(java.lang.Object(ARRAY(x0, x1)), x2, x3)
Cond_Load34990ARR6(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4)))
Load34990ARR7(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4)), java.lang.Object(java.lang.String(x5)))
Cond_Load34990ARR7(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4)), java.lang.Object(java.lang.String(x5)))
Cond_Load34990ARR8(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4)))
Cond_Load34990ARR9(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4)))
Load34990ARR10(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4)), java.lang.Object(java.lang.String(x5)))
Cond_Load34990ARR10(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4)), java.lang.Object(java.lang.String(x5)))

### (31) ItpfGraphProof (EQUIVALENT transformation)

Applied rule ItpfICap [ICap]

### (32) 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): LOAD34990ARR3(java.lang.Object(ARRAY(i4[1], a115115data[1])), i5816[1], i5824[1]) → COND_LOAD34990ARR3(i5816[1] + 1 > 0 && i5816[1] + 1 < i4[1] && i5816[1] > 0 && i5816[1] < i4[1] && i5824[1] > 0 && i5816[1] + 1 + 1 > 0, java.lang.Object(ARRAY(i4[1], a115115data[1])), i5816[1], i5824[1])
(2): COND_LOAD34990ARR3(TRUE, java.lang.Object(ARRAY(i4[2], a115115data[2])), i5816[2], i5824[2]) → NEW39186(java.lang.Object(ARRAY(i4[2], a115115data[2])), i5816[2] + 1 + 1, i5824[2])
(3): INC35127(java.lang.Object(ARRAY(i4[3], a115115data[3])), i5816[3], i5824[3]) → LOAD34990(java.lang.Object(ARRAY(i4[3], a115115data[3])), i5816[3], i5824[3] + -1)
(4): LOAD34990(java.lang.Object(ARRAY(i4[4], a115115data[4])), i5816[4], i5824[4]) → COND_LOAD34990(i5824[4] > 0, java.lang.Object(ARRAY(i4[4], a115115data[4])), i5816[4], i5824[4])
(5): COND_LOAD34990(TRUE, java.lang.Object(ARRAY(i4[5], a115115data[5])), i5816[5], i5824[5]) → LOAD34990(java.lang.Object(ARRAY(i4[5], a115115data[5])), i5816[5], i5824[5] + -1)
(6): NEW39186(java.lang.Object(ARRAY(i4[6], a115115data[6])), i6609[6], i5824[6]) → INC35127(java.lang.Object(ARRAY(i4[6], a115115data[6])), i6609[6], i5824[6])
(8): LOAD34990ARR4(java.lang.Object(ARRAY(i4[8], a115115data[8])), i5816[8], i5824[8]) → COND_LOAD34990ARR4(i5816[8] + 1 > 0 && i5816[8] + 1 < i4[8] && i5816[8] > 0 && i5816[8] < i4[8] && i5824[8] > 0 && i5816[8] + 1 + 1 > 0, java.lang.Object(ARRAY(i4[8], a115115data[8])), i5816[8], i5824[8])
(9): COND_LOAD34990ARR4(TRUE, java.lang.Object(ARRAY(i4[9], a115115data[9])), i5816[9], i5824[9]) → INC35127(java.lang.Object(ARRAY(i4[9], a115115data[9])), i5816[9] + 1 + 1, i5824[9])
(11): LOAD34990ARR5(java.lang.Object(ARRAY(i4[11], a115115data[11])), i5816[11], i5824[11], java.lang.Object(java.lang.String(i6986[11]))) → COND_LOAD34990ARR5(!(i6986[11] = 0) && i5816[11] + 1 > 0 && i5816[11] + 1 < i4[11] && i5816[11] > 0 && i5816[11] < i4[11] && i5824[11] > 0 && i5816[11] + 1 + 1 > 0, java.lang.Object(ARRAY(i4[11], a115115data[11])), i5816[11], i5824[11], java.lang.Object(java.lang.String(i6986[11])))
(12): COND_LOAD34990ARR5(TRUE, java.lang.Object(ARRAY(i4[12], a115115data[12])), i5816[12], i5824[12], java.lang.Object(java.lang.String(i6986[12]))) → INC35127(java.lang.Object(ARRAY(i4[12], a115115data[12])), i5816[12] + 1 + 1, i5824[12])
(13): NEW40288(java.lang.Object(ARRAY(i4[13], a115115data[13])), i6905[13], i5824[13]) → INC35127(java.lang.Object(ARRAY(i4[13], a115115data[13])), i6905[13], i5824[13])
(15): LOAD34990ARR6(java.lang.Object(ARRAY(i4[15], a115115data[15])), i5816[15], i5824[15], java.lang.Object(java.lang.String(i6164[15]))) → COND_LOAD34990ARR6(i5816[15] + 1 > 0 && i5816[15] + 1 < i4[15] && !(i6164[15] = 0) && i5816[15] > 0 && i5816[15] < i4[15] && i5824[15] > 0 && i5816[15] + 1 + 1 > 0, java.lang.Object(ARRAY(i4[15], a115115data[15])), i5816[15], i5824[15], java.lang.Object(java.lang.String(i6164[15])))
(16): COND_LOAD34990ARR6(TRUE, java.lang.Object(ARRAY(i4[16], a115115data[16])), i5816[16], i5824[16], java.lang.Object(java.lang.String(i6164[16]))) → INC35127(java.lang.Object(ARRAY(i4[16], a115115data[16])), i5816[16] + 1 + 1, i5824[16])
(17): LOAD34990(java.lang.Object(ARRAY(i4[17], a115115data[17])), i5816[17], i5824[17]) → LOAD34990ARR7(java.lang.Object(ARRAY(i4[17], a115115data[17])), i5816[17], i5824[17], java.lang.Object(java.lang.String(i7504[17])), java.lang.Object(java.lang.String(i6164[17])))
(18): LOAD34990ARR7(java.lang.Object(ARRAY(i4[18], a115115data[18])), i5816[18], i5824[18], java.lang.Object(java.lang.String(i7504[18])), java.lang.Object(java.lang.String(i6164[18]))) → COND_LOAD34990ARR7(!(i7504[18] = 0) && i5816[18] + 1 > 0 && i5816[18] + 1 < i4[18] && !(i6164[18] = 0) && i5816[18] > 0 && i5816[18] < i4[18] && i5824[18] > 0 && i5816[18] + 1 + 1 > 0, java.lang.Object(ARRAY(i4[18], a115115data[18])), i5816[18], i5824[18], java.lang.Object(java.lang.String(i7504[18])), java.lang.Object(java.lang.String(i6164[18])))
(19): COND_LOAD34990ARR7(TRUE, java.lang.Object(ARRAY(i4[19], a115115data[19])), i5816[19], i5824[19], java.lang.Object(java.lang.String(i7504[19])), java.lang.Object(java.lang.String(i6164[19]))) → INC35127(java.lang.Object(ARRAY(i4[19], a115115data[19])), i5816[19] + 1 + 1, i5824[19])
(21): LOAD34990ARR8(java.lang.Object(ARRAY(i4[21], a115115data[21])), i5816[21], i5824[21], java.lang.Object(java.lang.String(i6986[21]))) → COND_LOAD34990ARR8(!(i6986[21] = 0) && i5816[21] + 1 > 0 && i5816[21] + 1 < i4[21] && i5816[21] > 0 && i5816[21] < i4[21] && i5824[21] > 0 && i5816[21] + 1 + 1 > 0, java.lang.Object(ARRAY(i4[21], a115115data[21])), i5816[21], i5824[21], java.lang.Object(java.lang.String(i6986[21])))
(22): COND_LOAD34990ARR8(TRUE, java.lang.Object(ARRAY(i4[22], a115115data[22])), i5816[22], i5824[22], java.lang.Object(java.lang.String(i6986[22]))) → NEW39186(java.lang.Object(ARRAY(i4[22], a115115data[22])), i5816[22] + 1 + 1, i5824[22])
(24): LOAD34990ARR9(java.lang.Object(ARRAY(i4[24], a115115data[24])), i5816[24], i5824[24], java.lang.Object(java.lang.String(i6164[24]))) → COND_LOAD34990ARR9(i5816[24] + 1 > 0 && i5816[24] + 1 < i4[24] && !(i6164[24] = 0) && i5816[24] > 0 && i5816[24] < i4[24] && i5824[24] > 0 && i5816[24] + 1 + 1 > 0, java.lang.Object(ARRAY(i4[24], a115115data[24])), i5816[24], i5824[24], java.lang.Object(java.lang.String(i6164[24])))
(25): COND_LOAD34990ARR9(TRUE, java.lang.Object(ARRAY(i4[25], a115115data[25])), i5816[25], i5824[25], java.lang.Object(java.lang.String(i6164[25]))) → NEW40288(java.lang.Object(ARRAY(i4[25], a115115data[25])), i5816[25] + 1 + 1, i5824[25])
(26): LOAD34990(java.lang.Object(ARRAY(i4[26], a115115data[26])), i5816[26], i5824[26]) → LOAD34990ARR10(java.lang.Object(ARRAY(i4[26], a115115data[26])), i5816[26], i5824[26], java.lang.Object(java.lang.String(i7504[26])), java.lang.Object(java.lang.String(i6164[26])))
(27): LOAD34990ARR10(java.lang.Object(ARRAY(i4[27], a115115data[27])), i5816[27], i5824[27], java.lang.Object(java.lang.String(i7504[27])), java.lang.Object(java.lang.String(i6164[27]))) → COND_LOAD34990ARR10(!(i7504[27] = 0) && i5816[27] + 1 > 0 && i5816[27] + 1 < i4[27] && !(i6164[27] = 0) && i5816[27] > 0 && i5816[27] < i4[27] && i5824[27] > 0 && i5816[27] + 1 + 1 > 0, java.lang.Object(ARRAY(i4[27], a115115data[27])), i5816[27], i5824[27], java.lang.Object(java.lang.String(i7504[27])), java.lang.Object(java.lang.String(i6164[27])))
(28): COND_LOAD34990ARR10(TRUE, java.lang.Object(ARRAY(i4[28], a115115data[28])), i5816[28], i5824[28], java.lang.Object(java.lang.String(i7504[28])), java.lang.Object(java.lang.String(i6164[28]))) → NEW40288(java.lang.Object(ARRAY(i4[28], a115115data[28])), i5816[28] + 1 + 1, i5824[28])

(0) -> (1), if (((i4[0]* i4[1])∧(a115115data[0]* a115115data[1]))∧(i5824[0]* i5824[1])∧(i5816[0]* i5816[1]))

(1) -> (2), if ((i5824[1]* i5824[2])∧(i5816[1]* i5816[2])∧((i4[1]* i4[2])∧(a115115data[1]* a115115data[2]))∧(i5816[1] + 1 > 0 && i5816[1] + 1 < i4[1] && i5816[1] > 0 && i5816[1] < i4[1] && i5824[1] > 0 && i5816[1] + 1 + 1 > 0* TRUE))

(2) -> (6), if ((i5824[2]* i5824[6])∧(i5816[2] + 1 + 1* i6609[6])∧((i4[2]* i4[6])∧(a115115data[2]* a115115data[6])))

(3) -> (0), if ((i5824[3] + -1* i5824[0])∧(i5816[3]* i5816[0])∧((i4[3]* i4[0])∧(a115115data[3]* a115115data[0])))

(3) -> (4), if ((i5824[3] + -1* i5824[4])∧((i4[3]* i4[4])∧(a115115data[3]* a115115data[4]))∧(i5816[3]* i5816[4]))

(3) -> (7), if ((i5824[3] + -1* i5824[7])∧((i4[3]* i4[7])∧(a115115data[3]* a115115data[7]))∧(i5816[3]* i5816[7]))

(3) -> (10), if ((i5824[3] + -1* i5824[10])∧((i4[3]* i4[10])∧(a115115data[3]* a115115data[10]))∧(i5816[3]* i5816[10]))

(3) -> (14), if ((i5816[3]* i5816[14])∧((i4[3]* i4[14])∧(a115115data[3]* a115115data[14]))∧(i5824[3] + -1* i5824[14]))

(3) -> (17), if ((i5824[3] + -1* i5824[17])∧(i5816[3]* i5816[17])∧((i4[3]* i4[17])∧(a115115data[3]* a115115data[17])))

(3) -> (20), if (((i4[3]* i4[20])∧(a115115data[3]* a115115data[20]))∧(i5816[3]* i5816[20])∧(i5824[3] + -1* i5824[20]))

(3) -> (23), if ((i5824[3] + -1* i5824[23])∧((i4[3]* i4[23])∧(a115115data[3]* a115115data[23]))∧(i5816[3]* i5816[23]))

(3) -> (26), if (((i4[3]* i4[26])∧(a115115data[3]* a115115data[26]))∧(i5816[3]* i5816[26])∧(i5824[3] + -1* i5824[26]))

(4) -> (5), if (((i4[4]* i4[5])∧(a115115data[4]* a115115data[5]))∧(i5816[4]* i5816[5])∧(i5824[4]* i5824[5])∧(i5824[4] > 0* TRUE))

(5) -> (0), if ((i5816[5]* i5816[0])∧(i5824[5] + -1* i5824[0])∧((i4[5]* i4[0])∧(a115115data[5]* a115115data[0])))

(5) -> (4), if ((i5824[5] + -1* i5824[4])∧((i4[5]* i4[4])∧(a115115data[5]* a115115data[4]))∧(i5816[5]* i5816[4]))

(5) -> (7), if ((i5816[5]* i5816[7])∧((i4[5]* i4[7])∧(a115115data[5]* a115115data[7]))∧(i5824[5] + -1* i5824[7]))

(5) -> (10), if (((i4[5]* i4[10])∧(a115115data[5]* a115115data[10]))∧(i5816[5]* i5816[10])∧(i5824[5] + -1* i5824[10]))

(5) -> (14), if (((i4[5]* i4[14])∧(a115115data[5]* a115115data[14]))∧(i5824[5] + -1* i5824[14])∧(i5816[5]* i5816[14]))

(5) -> (17), if (((i4[5]* i4[17])∧(a115115data[5]* a115115data[17]))∧(i5824[5] + -1* i5824[17])∧(i5816[5]* i5816[17]))

(5) -> (20), if ((i5816[5]* i5816[20])∧(i5824[5] + -1* i5824[20])∧((i4[5]* i4[20])∧(a115115data[5]* a115115data[20])))

(5) -> (23), if ((i5824[5] + -1* i5824[23])∧(i5816[5]* i5816[23])∧((i4[5]* i4[23])∧(a115115data[5]* a115115data[23])))

(5) -> (26), if ((i5824[5] + -1* i5824[26])∧(i5816[5]* i5816[26])∧((i4[5]* i4[26])∧(a115115data[5]* a115115data[26])))

(6) -> (3), if ((i5824[6]* i5824[3])∧(i6609[6]* i5816[3])∧((i4[6]* i4[3])∧(a115115data[6]* a115115data[3])))

(7) -> (8), if ((i5824[7]* i5824[8])∧((i4[7]* i4[8])∧(a115115data[7]* a115115data[8]))∧(i5816[7]* i5816[8]))

(8) -> (9), if ((i5816[8] + 1 > 0 && i5816[8] + 1 < i4[8] && i5816[8] > 0 && i5816[8] < i4[8] && i5824[8] > 0 && i5816[8] + 1 + 1 > 0* TRUE)∧(i5816[8]* i5816[9])∧(i5824[8]* i5824[9])∧((i4[8]* i4[9])∧(a115115data[8]* a115115data[9])))

(9) -> (3), if (((i4[9]* i4[3])∧(a115115data[9]* a115115data[3]))∧(i5816[9] + 1 + 1* i5816[3])∧(i5824[9]* i5824[3]))

(10) -> (11), if (((i6986[10]* i6986[11]))∧((i4[10]* i4[11])∧(a115115data[10]* a115115data[11]))∧(i5816[10]* i5816[11])∧(i5824[10]* i5824[11]))

(11) -> (12), if ((i5824[11]* i5824[12])∧(i5816[11]* i5816[12])∧((i4[11]* i4[12])∧(a115115data[11]* a115115data[12]))∧((i6986[11]* i6986[12]))∧(!(i6986[11] = 0) && i5816[11] + 1 > 0 && i5816[11] + 1 < i4[11] && i5816[11] > 0 && i5816[11] < i4[11] && i5824[11] > 0 && i5816[11] + 1 + 1 > 0* TRUE))

(12) -> (3), if ((i5824[12]* i5824[3])∧(i5816[12] + 1 + 1* i5816[3])∧((i4[12]* i4[3])∧(a115115data[12]* a115115data[3])))

(13) -> (3), if (((i4[13]* i4[3])∧(a115115data[13]* a115115data[3]))∧(i6905[13]* i5816[3])∧(i5824[13]* i5824[3]))

(14) -> (15), if ((i5824[14]* i5824[15])∧(i5816[14]* i5816[15])∧((i6164[14]* i6164[15]))∧((i4[14]* i4[15])∧(a115115data[14]* a115115data[15])))

(15) -> (16), if ((i5816[15]* i5816[16])∧(i5824[15]* i5824[16])∧(i5816[15] + 1 > 0 && i5816[15] + 1 < i4[15] && !(i6164[15] = 0) && i5816[15] > 0 && i5816[15] < i4[15] && i5824[15] > 0 && i5816[15] + 1 + 1 > 0* TRUE)∧((i4[15]* i4[16])∧(a115115data[15]* a115115data[16]))∧((i6164[15]* i6164[16])))

(16) -> (3), if ((i5824[16]* i5824[3])∧(i5816[16] + 1 + 1* i5816[3])∧((i4[16]* i4[3])∧(a115115data[16]* a115115data[3])))

(17) -> (18), if (((i6164[17]* i6164[18]))∧(i5824[17]* i5824[18])∧((i7504[17]* i7504[18]))∧((i4[17]* i4[18])∧(a115115data[17]* a115115data[18]))∧(i5816[17]* i5816[18]))

(18) -> (19), if (((i6164[18]* i6164[19]))∧((i7504[18]* i7504[19]))∧(!(i7504[18] = 0) && i5816[18] + 1 > 0 && i5816[18] + 1 < i4[18] && !(i6164[18] = 0) && i5816[18] > 0 && i5816[18] < i4[18] && i5824[18] > 0 && i5816[18] + 1 + 1 > 0* TRUE)∧((i4[18]* i4[19])∧(a115115data[18]* a115115data[19]))∧(i5816[18]* i5816[19])∧(i5824[18]* i5824[19]))

(19) -> (3), if ((i5816[19] + 1 + 1* i5816[3])∧(i5824[19]* i5824[3])∧((i4[19]* i4[3])∧(a115115data[19]* a115115data[3])))

(20) -> (21), if (((i6986[20]* i6986[21]))∧(i5816[20]* i5816[21])∧((i4[20]* i4[21])∧(a115115data[20]* a115115data[21]))∧(i5824[20]* i5824[21]))

(21) -> (22), if (((i4[21]* i4[22])∧(a115115data[21]* a115115data[22]))∧((i6986[21]* i6986[22]))∧(!(i6986[21] = 0) && i5816[21] + 1 > 0 && i5816[21] + 1 < i4[21] && i5816[21] > 0 && i5816[21] < i4[21] && i5824[21] > 0 && i5816[21] + 1 + 1 > 0* TRUE)∧(i5816[21]* i5816[22])∧(i5824[21]* i5824[22]))

(22) -> (6), if ((i5816[22] + 1 + 1* i6609[6])∧((i4[22]* i4[6])∧(a115115data[22]* a115115data[6]))∧(i5824[22]* i5824[6]))

(23) -> (24), if (((i6164[23]* i6164[24]))∧(i5816[23]* i5816[24])∧((i4[23]* i4[24])∧(a115115data[23]* a115115data[24]))∧(i5824[23]* i5824[24]))

(24) -> (25), if (((i4[24]* i4[25])∧(a115115data[24]* a115115data[25]))∧(i5816[24] + 1 > 0 && i5816[24] + 1 < i4[24] && !(i6164[24] = 0) && i5816[24] > 0 && i5816[24] < i4[24] && i5824[24] > 0 && i5816[24] + 1 + 1 > 0* TRUE)∧((i6164[24]* i6164[25]))∧(i5816[24]* i5816[25])∧(i5824[24]* i5824[25]))

(25) -> (13), if ((i5824[25]* i5824[13])∧((i4[25]* i4[13])∧(a115115data[25]* a115115data[13]))∧(i5816[25] + 1 + 1* i6905[13]))

(26) -> (27), if (((i7504[26]* i7504[27]))∧((i4[26]* i4[27])∧(a115115data[26]* a115115data[27]))∧((i6164[26]* i6164[27]))∧(i5824[26]* i5824[27])∧(i5816[26]* i5816[27]))

(27) -> (28), if ((i5824[27]* i5824[28])∧(!(i7504[27] = 0) && i5816[27] + 1 > 0 && i5816[27] + 1 < i4[27] && !(i6164[27] = 0) && i5816[27] > 0 && i5816[27] < i4[27] && i5824[27] > 0 && i5816[27] + 1 + 1 > 0* TRUE)∧((i7504[27]* i7504[28]))∧((i6164[27]* i6164[28]))∧(i5816[27]* i5816[28])∧((i4[27]* i4[28])∧(a115115data[27]* a115115data[28])))

(28) -> (13), if ((i5824[28]* i5824[13])∧(i5816[28] + 1 + 1* i6905[13])∧((i4[28]* i4[13])∧(a115115data[28]* a115115data[13])))

The set Q consists of the following terms:
Inc35127(java.lang.Object(ARRAY(x0, x1)), x2, x3)
New39186(java.lang.Object(ARRAY(x0, x1)), x2, x3)
Cond_Load34990ARR5(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4)))
New40288(java.lang.Object(ARRAY(x0, x1)), x2, x3)
Cond_Load34990ARR6(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4)))
Load34990ARR7(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4)), java.lang.Object(java.lang.String(x5)))
Cond_Load34990ARR7(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4)), java.lang.Object(java.lang.String(x5)))
Cond_Load34990ARR8(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4)))
Cond_Load34990ARR9(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4)))
Load34990ARR10(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4)), java.lang.Object(java.lang.String(x5)))
Cond_Load34990ARR10(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4)), java.lang.Object(java.lang.String(x5)))

### (33) 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 LOAD34990(java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824) → LOAD34990ARR3(java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824) the following chains were created:
• We consider the chain LOAD34990(java.lang.Object(ARRAY(i4[0], a115115data[0])), i5816[0], i5824[0]) → LOAD34990ARR3(java.lang.Object(ARRAY(i4[0], a115115data[0])), i5816[0], i5824[0]), LOAD34990ARR3(java.lang.Object(ARRAY(i4[1], a115115data[1])), i5816[1], i5824[1]) → COND_LOAD34990ARR3(&&(&&(&&(&&(&&(>(+(i5816[1], 1), 0), <(+(i5816[1], 1), i4[1])), >(i5816[1], 0)), <(i5816[1], i4[1])), >(i5824[1], 0)), >(+(+(i5816[1], 1), 1), 0)), java.lang.Object(ARRAY(i4[1], a115115data[1])), i5816[1], i5824[1]) which results in the following constraint:

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

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

(3)    ((UIncreasing(LOAD34990ARR3(java.lang.Object(ARRAY(i4[0], a115115data[0])), i5816[0], i5824[0])), ≥)∧[(-1)bso_44] ≥ 0)

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

(4)    ((UIncreasing(LOAD34990ARR3(java.lang.Object(ARRAY(i4[0], a115115data[0])), i5816[0], i5824[0])), ≥)∧[(-1)bso_44] ≥ 0)

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

(5)    ((UIncreasing(LOAD34990ARR3(java.lang.Object(ARRAY(i4[0], a115115data[0])), i5816[0], i5824[0])), ≥)∧[(-1)bso_44] ≥ 0)

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

(6)    ((UIncreasing(LOAD34990ARR3(java.lang.Object(ARRAY(i4[0], a115115data[0])), i5816[0], i5824[0])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_44] ≥ 0)

For Pair LOAD34990ARR3(java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824) → COND_LOAD34990ARR3(&&(&&(&&(&&(&&(>(+(i5816, 1), 0), <(+(i5816, 1), i4)), >(i5816, 0)), <(i5816, i4)), >(i5824, 0)), >(+(+(i5816, 1), 1), 0)), java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824) the following chains were created:
• We consider the chain LOAD34990ARR3(java.lang.Object(ARRAY(i4[1], a115115data[1])), i5816[1], i5824[1]) → COND_LOAD34990ARR3(&&(&&(&&(&&(&&(>(+(i5816[1], 1), 0), <(+(i5816[1], 1), i4[1])), >(i5816[1], 0)), <(i5816[1], i4[1])), >(i5824[1], 0)), >(+(+(i5816[1], 1), 1), 0)), java.lang.Object(ARRAY(i4[1], a115115data[1])), i5816[1], i5824[1]), COND_LOAD34990ARR3(TRUE, java.lang.Object(ARRAY(i4[2], a115115data[2])), i5816[2], i5824[2]) → NEW39186(java.lang.Object(ARRAY(i4[2], a115115data[2])), +(+(i5816[2], 1), 1), i5824[2]) which results in the following constraint:

(7)    (i5824[1]=i5824[2]i5816[1]=i5816[2]i4[1]=i4[2]a115115data[1]=a115115data[2]&&(&&(&&(&&(&&(>(+(i5816[1], 1), 0), <(+(i5816[1], 1), i4[1])), >(i5816[1], 0)), <(i5816[1], i4[1])), >(i5824[1], 0)), >(+(+(i5816[1], 1), 1), 0))=TRUELOAD34990ARR3(java.lang.Object(ARRAY(i4[1], a115115data[1])), i5816[1], i5824[1])≥NonInfC∧LOAD34990ARR3(java.lang.Object(ARRAY(i4[1], a115115data[1])), i5816[1], i5824[1])≥COND_LOAD34990ARR3(&&(&&(&&(&&(&&(>(+(i5816[1], 1), 0), <(+(i5816[1], 1), i4[1])), >(i5816[1], 0)), <(i5816[1], i4[1])), >(i5824[1], 0)), >(+(+(i5816[1], 1), 1), 0)), java.lang.Object(ARRAY(i4[1], a115115data[1])), i5816[1], i5824[1])∧(UIncreasing(COND_LOAD34990ARR3(&&(&&(&&(&&(&&(>(+(i5816[1], 1), 0), <(+(i5816[1], 1), i4[1])), >(i5816[1], 0)), <(i5816[1], i4[1])), >(i5824[1], 0)), >(+(+(i5816[1], 1), 1), 0)), java.lang.Object(ARRAY(i4[1], a115115data[1])), i5816[1], i5824[1])), ≥))

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

(8)    (>(+(+(i5816[1], 1), 1), 0)=TRUE>(i5824[1], 0)=TRUE<(i5816[1], i4[1])=TRUE>(i5816[1], 0)=TRUE>(+(i5816[1], 1), 0)=TRUE<(+(i5816[1], 1), i4[1])=TRUELOAD34990ARR3(java.lang.Object(ARRAY(i4[1], a115115data[1])), i5816[1], i5824[1])≥NonInfC∧LOAD34990ARR3(java.lang.Object(ARRAY(i4[1], a115115data[1])), i5816[1], i5824[1])≥COND_LOAD34990ARR3(&&(&&(&&(&&(&&(>(+(i5816[1], 1), 0), <(+(i5816[1], 1), i4[1])), >(i5816[1], 0)), <(i5816[1], i4[1])), >(i5824[1], 0)), >(+(+(i5816[1], 1), 1), 0)), java.lang.Object(ARRAY(i4[1], a115115data[1])), i5816[1], i5824[1])∧(UIncreasing(COND_LOAD34990ARR3(&&(&&(&&(&&(&&(>(+(i5816[1], 1), 0), <(+(i5816[1], 1), i4[1])), >(i5816[1], 0)), <(i5816[1], i4[1])), >(i5824[1], 0)), >(+(+(i5816[1], 1), 1), 0)), java.lang.Object(ARRAY(i4[1], a115115data[1])), i5816[1], i5824[1])), ≥))

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

(9)    (i5816[1] + [1] ≥ 0∧i5824[1] + [-1] ≥ 0∧i4[1] + [-1] + [-1]i5816[1] ≥ 0∧i5816[1] + [-1] ≥ 0∧i5816[1] ≥ 0∧i4[1] + [-2] + [-1]i5816[1] ≥ 0 ⇒ (UIncreasing(COND_LOAD34990ARR3(&&(&&(&&(&&(&&(>(+(i5816[1], 1), 0), <(+(i5816[1], 1), i4[1])), >(i5816[1], 0)), <(i5816[1], i4[1])), >(i5824[1], 0)), >(+(+(i5816[1], 1), 1), 0)), java.lang.Object(ARRAY(i4[1], a115115data[1])), i5816[1], i5824[1])), ≥)∧[(-1)Bound*bni_45] + [bni_45]i5824[1] + [(-1)bni_45]i5816[1] + [bni_45]i4[1] ≥ 0∧[(-1)bso_46] ≥ 0)

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

(10)    (i5816[1] + [1] ≥ 0∧i5824[1] + [-1] ≥ 0∧i4[1] + [-1] + [-1]i5816[1] ≥ 0∧i5816[1] + [-1] ≥ 0∧i5816[1] ≥ 0∧i4[1] + [-2] + [-1]i5816[1] ≥ 0 ⇒ (UIncreasing(COND_LOAD34990ARR3(&&(&&(&&(&&(&&(>(+(i5816[1], 1), 0), <(+(i5816[1], 1), i4[1])), >(i5816[1], 0)), <(i5816[1], i4[1])), >(i5824[1], 0)), >(+(+(i5816[1], 1), 1), 0)), java.lang.Object(ARRAY(i4[1], a115115data[1])), i5816[1], i5824[1])), ≥)∧[(-1)Bound*bni_45] + [bni_45]i5824[1] + [(-1)bni_45]i5816[1] + [bni_45]i4[1] ≥ 0∧[(-1)bso_46] ≥ 0)

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

(11)    (i5816[1] + [1] ≥ 0∧i5824[1] + [-1] ≥ 0∧i4[1] + [-1] + [-1]i5816[1] ≥ 0∧i5816[1] + [-1] ≥ 0∧i5816[1] ≥ 0∧i4[1] + [-2] + [-1]i5816[1] ≥ 0 ⇒ (UIncreasing(COND_LOAD34990ARR3(&&(&&(&&(&&(&&(>(+(i5816[1], 1), 0), <(+(i5816[1], 1), i4[1])), >(i5816[1], 0)), <(i5816[1], i4[1])), >(i5824[1], 0)), >(+(+(i5816[1], 1), 1), 0)), java.lang.Object(ARRAY(i4[1], a115115data[1])), i5816[1], i5824[1])), ≥)∧[(-1)Bound*bni_45] + [bni_45]i5824[1] + [(-1)bni_45]i5816[1] + [bni_45]i4[1] ≥ 0∧[(-1)bso_46] ≥ 0)

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

(12)    (i5816[1] + [1] ≥ 0∧i5824[1] + [-1] ≥ 0∧i4[1] + [-1] + [-1]i5816[1] ≥ 0∧i5816[1] + [-1] ≥ 0∧i5816[1] ≥ 0∧i4[1] + [-2] + [-1]i5816[1] ≥ 0 ⇒ (UIncreasing(COND_LOAD34990ARR3(&&(&&(&&(&&(&&(>(+(i5816[1], 1), 0), <(+(i5816[1], 1), i4[1])), >(i5816[1], 0)), <(i5816[1], i4[1])), >(i5824[1], 0)), >(+(+(i5816[1], 1), 1), 0)), java.lang.Object(ARRAY(i4[1], a115115data[1])), i5816[1], i5824[1])), ≥)∧0 = 0∧[(-1)Bound*bni_45] + [bni_45]i5824[1] + [(-1)bni_45]i5816[1] + [bni_45]i4[1] ≥ 0∧0 = 0∧[(-1)bso_46] ≥ 0)

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

(13)    ([2] + i5816[1] ≥ 0∧i5824[1] + [-1] ≥ 0∧i4[1] + [-2] + [-1]i5816[1] ≥ 0∧i5816[1] ≥ 0∧[1] + i5816[1] ≥ 0∧i4[1] + [-3] + [-1]i5816[1] ≥ 0 ⇒ (UIncreasing(COND_LOAD34990ARR3(&&(&&(&&(&&(&&(>(+(i5816[1], 1), 0), <(+(i5816[1], 1), i4[1])), >(i5816[1], 0)), <(i5816[1], i4[1])), >(i5824[1], 0)), >(+(+(i5816[1], 1), 1), 0)), java.lang.Object(ARRAY(i4[1], a115115data[1])), i5816[1], i5824[1])), ≥)∧0 = 0∧[(-1)Bound*bni_45 + (-1)bni_45] + [bni_45]i5824[1] + [(-1)bni_45]i5816[1] + [bni_45]i4[1] ≥ 0∧0 = 0∧[(-1)bso_46] ≥ 0)

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

(14)    ([2] + i5816[1] ≥ 0∧i5824[1] ≥ 0∧i4[1] + [-2] + [-1]i5816[1] ≥ 0∧i5816[1] ≥ 0∧[1] + i5816[1] ≥ 0∧i4[1] + [-3] + [-1]i5816[1] ≥ 0 ⇒ (UIncreasing(COND_LOAD34990ARR3(&&(&&(&&(&&(&&(>(+(i5816[1], 1), 0), <(+(i5816[1], 1), i4[1])), >(i5816[1], 0)), <(i5816[1], i4[1])), >(i5824[1], 0)), >(+(+(i5816[1], 1), 1), 0)), java.lang.Object(ARRAY(i4[1], a115115data[1])), i5816[1], i5824[1])), ≥)∧0 = 0∧[(-1)Bound*bni_45] + [bni_45]i5824[1] + [(-1)bni_45]i5816[1] + [bni_45]i4[1] ≥ 0∧0 = 0∧[(-1)bso_46] ≥ 0)

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

(15)    ([2] + i5816[1] ≥ 0∧i5824[1] ≥ 0∧i4[1] ≥ 0∧i5816[1] ≥ 0∧[1] + i5816[1] ≥ 0∧[-1] + i4[1] ≥ 0 ⇒ (UIncreasing(COND_LOAD34990ARR3(&&(&&(&&(&&(&&(>(+(i5816[1], 1), 0), <(+(i5816[1], 1), i4[1])), >(i5816[1], 0)), <(i5816[1], i4[1])), >(i5824[1], 0)), >(+(+(i5816[1], 1), 1), 0)), java.lang.Object(ARRAY(i4[1], a115115data[1])), i5816[1], i5824[1])), ≥)∧0 = 0∧[(-1)Bound*bni_45 + (2)bni_45] + [bni_45]i5824[1] + [bni_45]i4[1] ≥ 0∧0 = 0∧[(-1)bso_46] ≥ 0)

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

(16)    ([2] + i5816[1] ≥ 0∧i5824[1] ≥ 0∧[1] + i4[1] ≥ 0∧i5816[1] ≥ 0∧[1] + i5816[1] ≥ 0∧i4[1] ≥ 0 ⇒ (UIncreasing(COND_LOAD34990ARR3(&&(&&(&&(&&(&&(>(+(i5816[1], 1), 0), <(+(i5816[1], 1), i4[1])), >(i5816[1], 0)), <(i5816[1], i4[1])), >(i5824[1], 0)), >(+(+(i5816[1], 1), 1), 0)), java.lang.Object(ARRAY(i4[1], a115115data[1])), i5816[1], i5824[1])), ≥)∧0 = 0∧[(-1)Bound*bni_45 + (3)bni_45] + [bni_45]i5824[1] + [bni_45]i4[1] ≥ 0∧0 = 0∧[(-1)bso_46] ≥ 0)

For Pair COND_LOAD34990ARR3(TRUE, java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824) → NEW39186(java.lang.Object(ARRAY(i4, a115115data)), +(+(i5816, 1), 1), i5824) the following chains were created:
• We consider the chain COND_LOAD34990ARR3(TRUE, java.lang.Object(ARRAY(i4[2], a115115data[2])), i5816[2], i5824[2]) → NEW39186(java.lang.Object(ARRAY(i4[2], a115115data[2])), +(+(i5816[2], 1), 1), i5824[2]) which results in the following constraint:

(17)    (COND_LOAD34990ARR3(TRUE, java.lang.Object(ARRAY(i4[2], a115115data[2])), i5816[2], i5824[2])≥NonInfC∧COND_LOAD34990ARR3(TRUE, java.lang.Object(ARRAY(i4[2], a115115data[2])), i5816[2], i5824[2])≥NEW39186(java.lang.Object(ARRAY(i4[2], a115115data[2])), +(+(i5816[2], 1), 1), i5824[2])∧(UIncreasing(NEW39186(java.lang.Object(ARRAY(i4[2], a115115data[2])), +(+(i5816[2], 1), 1), i5824[2])), ≥))

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

(18)    ((UIncreasing(NEW39186(java.lang.Object(ARRAY(i4[2], a115115data[2])), +(+(i5816[2], 1), 1), i5824[2])), ≥)∧[(-1)bso_48] ≥ 0)

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

(19)    ((UIncreasing(NEW39186(java.lang.Object(ARRAY(i4[2], a115115data[2])), +(+(i5816[2], 1), 1), i5824[2])), ≥)∧[(-1)bso_48] ≥ 0)

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

(20)    ((UIncreasing(NEW39186(java.lang.Object(ARRAY(i4[2], a115115data[2])), +(+(i5816[2], 1), 1), i5824[2])), ≥)∧[(-1)bso_48] ≥ 0)

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

(21)    ((UIncreasing(NEW39186(java.lang.Object(ARRAY(i4[2], a115115data[2])), +(+(i5816[2], 1), 1), i5824[2])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_48] ≥ 0)

For Pair INC35127(java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824) → LOAD34990(java.lang.Object(ARRAY(i4, a115115data)), i5816, +(i5824, -1)) the following chains were created:
• We consider the chain INC35127(java.lang.Object(ARRAY(i4[3], a115115data[3])), i5816[3], i5824[3]) → LOAD34990(java.lang.Object(ARRAY(i4[3], a115115data[3])), i5816[3], +(i5824[3], -1)) which results in the following constraint:

(22)    (INC35127(java.lang.Object(ARRAY(i4[3], a115115data[3])), i5816[3], i5824[3])≥NonInfC∧INC35127(java.lang.Object(ARRAY(i4[3], a115115data[3])), i5816[3], i5824[3])≥LOAD34990(java.lang.Object(ARRAY(i4[3], a115115data[3])), i5816[3], +(i5824[3], -1))∧(UIncreasing(LOAD34990(java.lang.Object(ARRAY(i4[3], a115115data[3])), i5816[3], +(i5824[3], -1))), ≥))

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

(23)    ((UIncreasing(LOAD34990(java.lang.Object(ARRAY(i4[3], a115115data[3])), i5816[3], +(i5824[3], -1))), ≥)∧[1 + (-1)bso_50] ≥ 0)

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

(24)    ((UIncreasing(LOAD34990(java.lang.Object(ARRAY(i4[3], a115115data[3])), i5816[3], +(i5824[3], -1))), ≥)∧[1 + (-1)bso_50] ≥ 0)

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

(25)    ((UIncreasing(LOAD34990(java.lang.Object(ARRAY(i4[3], a115115data[3])), i5816[3], +(i5824[3], -1))), ≥)∧[1 + (-1)bso_50] ≥ 0)

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

(26)    ((UIncreasing(LOAD34990(java.lang.Object(ARRAY(i4[3], a115115data[3])), i5816[3], +(i5824[3], -1))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_50] ≥ 0)

For Pair LOAD34990(java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824) → COND_LOAD34990(>(i5824, 0), java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824) the following chains were created:
• We consider the chain LOAD34990(java.lang.Object(ARRAY(i4[4], a115115data[4])), i5816[4], i5824[4]) → COND_LOAD34990(>(i5824[4], 0), java.lang.Object(ARRAY(i4[4], a115115data[4])), i5816[4], i5824[4]), COND_LOAD34990(TRUE, java.lang.Object(ARRAY(i4[5], a115115data[5])), i5816[5], i5824[5]) → LOAD34990(java.lang.Object(ARRAY(i4[5], a115115data[5])), i5816[5], +(i5824[5], -1)) which results in the following constraint:

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

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

(29)    (i5824[4] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD34990(>(i5824[4], 0), java.lang.Object(ARRAY(i4[4], a115115data[4])), i5816[4], i5824[4])), ≥)∧[(-1)Bound*bni_51] + [bni_51]i5824[4] + [(-1)bni_51]i5816[4] + [bni_51]i4[4] ≥ 0∧[(-1)bso_52] ≥ 0)

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

(30)    (i5824[4] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD34990(>(i5824[4], 0), java.lang.Object(ARRAY(i4[4], a115115data[4])), i5816[4], i5824[4])), ≥)∧[(-1)Bound*bni_51] + [bni_51]i5824[4] + [(-1)bni_51]i5816[4] + [bni_51]i4[4] ≥ 0∧[(-1)bso_52] ≥ 0)

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

(31)    (i5824[4] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD34990(>(i5824[4], 0), java.lang.Object(ARRAY(i4[4], a115115data[4])), i5816[4], i5824[4])), ≥)∧[(-1)Bound*bni_51] + [bni_51]i5824[4] + [(-1)bni_51]i5816[4] + [bni_51]i4[4] ≥ 0∧[(-1)bso_52] ≥ 0)

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

(32)    (i5824[4] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD34990(>(i5824[4], 0), java.lang.Object(ARRAY(i4[4], a115115data[4])), i5816[4], i5824[4])), ≥)∧[(-1)bni_51] = 0∧0 = 0∧[bni_51] = 0∧[(-1)Bound*bni_51] + [bni_51]i5824[4] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_52] ≥ 0)

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

(33)    (i5824[4] ≥ 0 ⇒ (UIncreasing(COND_LOAD34990(>(i5824[4], 0), java.lang.Object(ARRAY(i4[4], a115115data[4])), i5816[4], i5824[4])), ≥)∧[(-1)bni_51] = 0∧0 = 0∧[bni_51] = 0∧[(-1)Bound*bni_51 + bni_51] + [bni_51]i5824[4] ≥ 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_52] ≥ 0)

For Pair COND_LOAD34990(TRUE, java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824) → LOAD34990(java.lang.Object(ARRAY(i4, a115115data)), i5816, +(i5824, -1)) the following chains were created:
• We consider the chain COND_LOAD34990(TRUE, java.lang.Object(ARRAY(i4[5], a115115data[5])), i5816[5], i5824[5]) → LOAD34990(java.lang.Object(ARRAY(i4[5], a115115data[5])), i5816[5], +(i5824[5], -1)) which results in the following constraint:

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

(35)    ((UIncreasing(LOAD34990(java.lang.Object(ARRAY(i4[5], a115115data[5])), i5816[5], +(i5824[5], -1))), ≥)∧[1 + (-1)bso_54] ≥ 0)

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

(36)    ((UIncreasing(LOAD34990(java.lang.Object(ARRAY(i4[5], a115115data[5])), i5816[5], +(i5824[5], -1))), ≥)∧[1 + (-1)bso_54] ≥ 0)

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

(37)    ((UIncreasing(LOAD34990(java.lang.Object(ARRAY(i4[5], a115115data[5])), i5816[5], +(i5824[5], -1))), ≥)∧[1 + (-1)bso_54] ≥ 0)

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

(38)    ((UIncreasing(LOAD34990(java.lang.Object(ARRAY(i4[5], a115115data[5])), i5816[5], +(i5824[5], -1))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[1 + (-1)bso_54] ≥ 0)

For Pair NEW39186(java.lang.Object(ARRAY(i4, a115115data)), i6609, i5824) → INC35127(java.lang.Object(ARRAY(i4, a115115data)), i6609, i5824) the following chains were created:
• We consider the chain NEW39186(java.lang.Object(ARRAY(i4[6], a115115data[6])), i6609[6], i5824[6]) → INC35127(java.lang.Object(ARRAY(i4[6], a115115data[6])), i6609[6], i5824[6]), INC35127(java.lang.Object(ARRAY(i4[3], a115115data[3])), i5816[3], i5824[3]) → LOAD34990(java.lang.Object(ARRAY(i4[3], a115115data[3])), i5816[3], +(i5824[3], -1)) which results in the following constraint:

(39)    (i5824[6]=i5824[3]i6609[6]=i5816[3]i4[6]=i4[3]a115115data[6]=a115115data[3]NEW39186(java.lang.Object(ARRAY(i4[6], a115115data[6])), i6609[6], i5824[6])≥NonInfC∧NEW39186(java.lang.Object(ARRAY(i4[6], a115115data[6])), i6609[6], i5824[6])≥INC35127(java.lang.Object(ARRAY(i4[6], a115115data[6])), i6609[6], i5824[6])∧(UIncreasing(INC35127(java.lang.Object(ARRAY(i4[6], a115115data[6])), i6609[6], i5824[6])), ≥))

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

(40)    (NEW39186(java.lang.Object(ARRAY(i4[6], a115115data[6])), i6609[6], i5824[6])≥NonInfC∧NEW39186(java.lang.Object(ARRAY(i4[6], a115115data[6])), i6609[6], i5824[6])≥INC35127(java.lang.Object(ARRAY(i4[6], a115115data[6])), i6609[6], i5824[6])∧(UIncreasing(INC35127(java.lang.Object(ARRAY(i4[6], a115115data[6])), i6609[6], i5824[6])), ≥))

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

(41)    ((UIncreasing(INC35127(java.lang.Object(ARRAY(i4[6], a115115data[6])), i6609[6], i5824[6])), ≥)∧[2 + (-1)bso_56] ≥ 0)

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

(42)    ((UIncreasing(INC35127(java.lang.Object(ARRAY(i4[6], a115115data[6])), i6609[6], i5824[6])), ≥)∧[2 + (-1)bso_56] ≥ 0)

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

(43)    ((UIncreasing(INC35127(java.lang.Object(ARRAY(i4[6], a115115data[6])), i6609[6], i5824[6])), ≥)∧[2 + (-1)bso_56] ≥ 0)

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

(44)    ((UIncreasing(INC35127(java.lang.Object(ARRAY(i4[6], a115115data[6])), i6609[6], i5824[6])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[2 + (-1)bso_56] ≥ 0)

For Pair LOAD34990(java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824) → LOAD34990ARR4(java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824) the following chains were created:
• We consider the chain LOAD34990(java.lang.Object(ARRAY(i4[7], a115115data[7])), i5816[7], i5824[7]) → LOAD34990ARR4(java.lang.Object(ARRAY(i4[7], a115115data[7])), i5816[7], i5824[7]), LOAD34990ARR4(java.lang.Object(ARRAY(i4[8], a115115data[8])), i5816[8], i5824[8]) → COND_LOAD34990ARR4(&&(&&(&&(&&(&&(>(+(i5816[8], 1), 0), <(+(i5816[8], 1), i4[8])), >(i5816[8], 0)), <(i5816[8], i4[8])), >(i5824[8], 0)), >(+(+(i5816[8], 1), 1), 0)), java.lang.Object(ARRAY(i4[8], a115115data[8])), i5816[8], i5824[8]) which results in the following constraint:

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

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

(47)    ((UIncreasing(LOAD34990ARR4(java.lang.Object(ARRAY(i4[7], a115115data[7])), i5816[7], i5824[7])), ≥)∧[(-1)bso_58] ≥ 0)

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

(48)    ((UIncreasing(LOAD34990ARR4(java.lang.Object(ARRAY(i4[7], a115115data[7])), i5816[7], i5824[7])), ≥)∧[(-1)bso_58] ≥ 0)

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

(49)    ((UIncreasing(LOAD34990ARR4(java.lang.Object(ARRAY(i4[7], a115115data[7])), i5816[7], i5824[7])), ≥)∧[(-1)bso_58] ≥ 0)

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

(50)    ((UIncreasing(LOAD34990ARR4(java.lang.Object(ARRAY(i4[7], a115115data[7])), i5816[7], i5824[7])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_58] ≥ 0)

For Pair LOAD34990ARR4(java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824) → COND_LOAD34990ARR4(&&(&&(&&(&&(&&(>(+(i5816, 1), 0), <(+(i5816, 1), i4)), >(i5816, 0)), <(i5816, i4)), >(i5824, 0)), >(+(+(i5816, 1), 1), 0)), java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824) the following chains were created:
• We consider the chain LOAD34990ARR4(java.lang.Object(ARRAY(i4[8], a115115data[8])), i5816[8], i5824[8]) → COND_LOAD34990ARR4(&&(&&(&&(&&(&&(>(+(i5816[8], 1), 0), <(+(i5816[8], 1), i4[8])), >(i5816[8], 0)), <(i5816[8], i4[8])), >(i5824[8], 0)), >(+(+(i5816[8], 1), 1), 0)), java.lang.Object(ARRAY(i4[8], a115115data[8])), i5816[8], i5824[8]), COND_LOAD34990ARR4(TRUE, java.lang.Object(ARRAY(i4[9], a115115data[9])), i5816[9], i5824[9]) → INC35127(java.lang.Object(ARRAY(i4[9], a115115data[9])), +(+(i5816[9], 1), 1), i5824[9]) which results in the following constraint:

(51)    (&&(&&(&&(&&(&&(>(+(i5816[8], 1), 0), <(+(i5816[8], 1), i4[8])), >(i5816[8], 0)), <(i5816[8], i4[8])), >(i5824[8], 0)), >(+(+(i5816[8], 1), 1), 0))=TRUEi5816[8]=i5816[9]i5824[8]=i5824[9]i4[8]=i4[9]a115115data[8]=a115115data[9]LOAD34990ARR4(java.lang.Object(ARRAY(i4[8], a115115data[8])), i5816[8], i5824[8])≥NonInfC∧LOAD34990ARR4(java.lang.Object(ARRAY(i4[8], a115115data[8])), i5816[8], i5824[8])≥COND_LOAD34990ARR4(&&(&&(&&(&&(&&(>(+(i5816[8], 1), 0), <(+(i5816[8], 1), i4[8])), >(i5816[8], 0)), <(i5816[8], i4[8])), >(i5824[8], 0)), >(+(+(i5816[8], 1), 1), 0)), java.lang.Object(ARRAY(i4[8], a115115data[8])), i5816[8], i5824[8])∧(UIncreasing(COND_LOAD34990ARR4(&&(&&(&&(&&(&&(>(+(i5816[8], 1), 0), <(+(i5816[8], 1), i4[8])), >(i5816[8], 0)), <(i5816[8], i4[8])), >(i5824[8], 0)), >(+(+(i5816[8], 1), 1), 0)), java.lang.Object(ARRAY(i4[8], a115115data[8])), i5816[8], i5824[8])), ≥))

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

(52)    (>(+(+(i5816[8], 1), 1), 0)=TRUE>(i5824[8], 0)=TRUE<(i5816[8], i4[8])=TRUE>(i5816[8], 0)=TRUE>(+(i5816[8], 1), 0)=TRUE<(+(i5816[8], 1), i4[8])=TRUELOAD34990ARR4(java.lang.Object(ARRAY(i4[8], a115115data[8])), i5816[8], i5824[8])≥NonInfC∧LOAD34990ARR4(java.lang.Object(ARRAY(i4[8], a115115data[8])), i5816[8], i5824[8])≥COND_LOAD34990ARR4(&&(&&(&&(&&(&&(>(+(i5816[8], 1), 0), <(+(i5816[8], 1), i4[8])), >(i5816[8], 0)), <(i5816[8], i4[8])), >(i5824[8], 0)), >(+(+(i5816[8], 1), 1), 0)), java.lang.Object(ARRAY(i4[8], a115115data[8])), i5816[8], i5824[8])∧(UIncreasing(COND_LOAD34990ARR4(&&(&&(&&(&&(&&(>(+(i5816[8], 1), 0), <(+(i5816[8], 1), i4[8])), >(i5816[8], 0)), <(i5816[8], i4[8])), >(i5824[8], 0)), >(+(+(i5816[8], 1), 1), 0)), java.lang.Object(ARRAY(i4[8], a115115data[8])), i5816[8], i5824[8])), ≥))

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

(53)    (i5816[8] + [1] ≥ 0∧i5824[8] + [-1] ≥ 0∧i4[8] + [-1] + [-1]i5816[8] ≥ 0∧i5816[8] + [-1] ≥ 0∧i5816[8] ≥ 0∧i4[8] + [-2] + [-1]i5816[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD34990ARR4(&&(&&(&&(&&(&&(>(+(i5816[8], 1), 0), <(+(i5816[8], 1), i4[8])), >(i5816[8], 0)), <(i5816[8], i4[8])), >(i5824[8], 0)), >(+(+(i5816[8], 1), 1), 0)), java.lang.Object(ARRAY(i4[8], a115115data[8])), i5816[8], i5824[8])), ≥)∧[(-1)Bound*bni_59] + [bni_59]i5824[8] + [(-1)bni_59]i5816[8] + [bni_59]i4[8] ≥ 0∧[(-1)bso_60] ≥ 0)

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

(54)    (i5816[8] + [1] ≥ 0∧i5824[8] + [-1] ≥ 0∧i4[8] + [-1] + [-1]i5816[8] ≥ 0∧i5816[8] + [-1] ≥ 0∧i5816[8] ≥ 0∧i4[8] + [-2] + [-1]i5816[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD34990ARR4(&&(&&(&&(&&(&&(>(+(i5816[8], 1), 0), <(+(i5816[8], 1), i4[8])), >(i5816[8], 0)), <(i5816[8], i4[8])), >(i5824[8], 0)), >(+(+(i5816[8], 1), 1), 0)), java.lang.Object(ARRAY(i4[8], a115115data[8])), i5816[8], i5824[8])), ≥)∧[(-1)Bound*bni_59] + [bni_59]i5824[8] + [(-1)bni_59]i5816[8] + [bni_59]i4[8] ≥ 0∧[(-1)bso_60] ≥ 0)

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

(55)    (i5816[8] + [1] ≥ 0∧i5824[8] + [-1] ≥ 0∧i4[8] + [-1] + [-1]i5816[8] ≥ 0∧i5816[8] + [-1] ≥ 0∧i5816[8] ≥ 0∧i4[8] + [-2] + [-1]i5816[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD34990ARR4(&&(&&(&&(&&(&&(>(+(i5816[8], 1), 0), <(+(i5816[8], 1), i4[8])), >(i5816[8], 0)), <(i5816[8], i4[8])), >(i5824[8], 0)), >(+(+(i5816[8], 1), 1), 0)), java.lang.Object(ARRAY(i4[8], a115115data[8])), i5816[8], i5824[8])), ≥)∧[(-1)Bound*bni_59] + [bni_59]i5824[8] + [(-1)bni_59]i5816[8] + [bni_59]i4[8] ≥ 0∧[(-1)bso_60] ≥ 0)

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

(56)    (i5816[8] + [1] ≥ 0∧i5824[8] + [-1] ≥ 0∧i4[8] + [-1] + [-1]i5816[8] ≥ 0∧i5816[8] + [-1] ≥ 0∧i5816[8] ≥ 0∧i4[8] + [-2] + [-1]i5816[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD34990ARR4(&&(&&(&&(&&(&&(>(+(i5816[8], 1), 0), <(+(i5816[8], 1), i4[8])), >(i5816[8], 0)), <(i5816[8], i4[8])), >(i5824[8], 0)), >(+(+(i5816[8], 1), 1), 0)), java.lang.Object(ARRAY(i4[8], a115115data[8])), i5816[8], i5824[8])), ≥)∧0 = 0∧[(-1)Bound*bni_59] + [bni_59]i5824[8] + [(-1)bni_59]i5816[8] + [bni_59]i4[8] ≥ 0∧0 = 0∧[(-1)bso_60] ≥ 0)

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

(57)    ([2] + i5816[8] ≥ 0∧i5824[8] + [-1] ≥ 0∧i4[8] + [-2] + [-1]i5816[8] ≥ 0∧i5816[8] ≥ 0∧[1] + i5816[8] ≥ 0∧i4[8] + [-3] + [-1]i5816[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD34990ARR4(&&(&&(&&(&&(&&(>(+(i5816[8], 1), 0), <(+(i5816[8], 1), i4[8])), >(i5816[8], 0)), <(i5816[8], i4[8])), >(i5824[8], 0)), >(+(+(i5816[8], 1), 1), 0)), java.lang.Object(ARRAY(i4[8], a115115data[8])), i5816[8], i5824[8])), ≥)∧0 = 0∧[(-1)Bound*bni_59 + (-1)bni_59] + [bni_59]i5824[8] + [(-1)bni_59]i5816[8] + [bni_59]i4[8] ≥ 0∧0 = 0∧[(-1)bso_60] ≥ 0)

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

(58)    ([2] + i5816[8] ≥ 0∧i5824[8] ≥ 0∧i4[8] + [-2] + [-1]i5816[8] ≥ 0∧i5816[8] ≥ 0∧[1] + i5816[8] ≥ 0∧i4[8] + [-3] + [-1]i5816[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD34990ARR4(&&(&&(&&(&&(&&(>(+(i5816[8], 1), 0), <(+(i5816[8], 1), i4[8])), >(i5816[8], 0)), <(i5816[8], i4[8])), >(i5824[8], 0)), >(+(+(i5816[8], 1), 1), 0)), java.lang.Object(ARRAY(i4[8], a115115data[8])), i5816[8], i5824[8])), ≥)∧0 = 0∧[(-1)Bound*bni_59] + [bni_59]i5824[8] + [(-1)bni_59]i5816[8] + [bni_59]i4[8] ≥ 0∧0 = 0∧[(-1)bso_60] ≥ 0)

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

(59)    ([2] + i5816[8] ≥ 0∧i5824[8] ≥ 0∧i4[8] ≥ 0∧i5816[8] ≥ 0∧[1] + i5816[8] ≥ 0∧[-1] + i4[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD34990ARR4(&&(&&(&&(&&(&&(>(+(i5816[8], 1), 0), <(+(i5816[8], 1), i4[8])), >(i5816[8], 0)), <(i5816[8], i4[8])), >(i5824[8], 0)), >(+(+(i5816[8], 1), 1), 0)), java.lang.Object(ARRAY(i4[8], a115115data[8])), i5816[8], i5824[8])), ≥)∧0 = 0∧[(-1)Bound*bni_59 + (2)bni_59] + [bni_59]i5824[8] + [bni_59]i4[8] ≥ 0∧0 = 0∧[(-1)bso_60] ≥ 0)

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

(60)    ([2] + i5816[8] ≥ 0∧i5824[8] ≥ 0∧[1] + i4[8] ≥ 0∧i5816[8] ≥ 0∧[1] + i5816[8] ≥ 0∧i4[8] ≥ 0 ⇒ (UIncreasing(COND_LOAD34990ARR4(&&(&&(&&(&&(&&(>(+(i5816[8], 1), 0), <(+(i5816[8], 1), i4[8])), >(i5816[8], 0)), <(i5816[8], i4[8])), >(i5824[8], 0)), >(+(+(i5816[8], 1), 1), 0)), java.lang.Object(ARRAY(i4[8], a115115data[8])), i5816[8], i5824[8])), ≥)∧0 = 0∧[(-1)Bound*bni_59 + (3)bni_59] + [bni_59]i5824[8] + [bni_59]i4[8] ≥ 0∧0 = 0∧[(-1)bso_60] ≥ 0)

For Pair COND_LOAD34990ARR4(TRUE, java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824) → INC35127(java.lang.Object(ARRAY(i4, a115115data)), +(+(i5816, 1), 1), i5824) the following chains were created:
• We consider the chain COND_LOAD34990ARR4(TRUE, java.lang.Object(ARRAY(i4[9], a115115data[9])), i5816[9], i5824[9]) → INC35127(java.lang.Object(ARRAY(i4[9], a115115data[9])), +(+(i5816[9], 1), 1), i5824[9]) which results in the following constraint:

(61)    (COND_LOAD34990ARR4(TRUE, java.lang.Object(ARRAY(i4[9], a115115data[9])), i5816[9], i5824[9])≥NonInfC∧COND_LOAD34990ARR4(TRUE, java.lang.Object(ARRAY(i4[9], a115115data[9])), i5816[9], i5824[9])≥INC35127(java.lang.Object(ARRAY(i4[9], a115115data[9])), +(+(i5816[9], 1), 1), i5824[9])∧(UIncreasing(INC35127(java.lang.Object(ARRAY(i4[9], a115115data[9])), +(+(i5816[9], 1), 1), i5824[9])), ≥))

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

(62)    ((UIncreasing(INC35127(java.lang.Object(ARRAY(i4[9], a115115data[9])), +(+(i5816[9], 1), 1), i5824[9])), ≥)∧[2 + (-1)bso_62] ≥ 0)

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

(63)    ((UIncreasing(INC35127(java.lang.Object(ARRAY(i4[9], a115115data[9])), +(+(i5816[9], 1), 1), i5824[9])), ≥)∧[2 + (-1)bso_62] ≥ 0)

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

(64)    ((UIncreasing(INC35127(java.lang.Object(ARRAY(i4[9], a115115data[9])), +(+(i5816[9], 1), 1), i5824[9])), ≥)∧[2 + (-1)bso_62] ≥ 0)

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

(65)    ((UIncreasing(INC35127(java.lang.Object(ARRAY(i4[9], a115115data[9])), +(+(i5816[9], 1), 1), i5824[9])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[2 + (-1)bso_62] ≥ 0)

For Pair LOAD34990(java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824) → LOAD34990ARR5(java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824, java.lang.Object(java.lang.String(i6986))) the following chains were created:
• We consider the chain LOAD34990(java.lang.Object(ARRAY(i4[10], a115115data[10])), i5816[10], i5824[10]) → LOAD34990ARR5(java.lang.Object(ARRAY(i4[10], a115115data[10])), i5816[10], i5824[10], java.lang.Object(java.lang.String(i6986[10]))) which results in the following constraint:

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

(67)    ((UIncreasing(LOAD34990ARR5(java.lang.Object(ARRAY(i4[10], a115115data[10])), i5816[10], i5824[10], java.lang.Object(java.lang.String(i6986[10])))), ≥)∧[(-1)bso_64] ≥ 0)

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

(68)    ((UIncreasing(LOAD34990ARR5(java.lang.Object(ARRAY(i4[10], a115115data[10])), i5816[10], i5824[10], java.lang.Object(java.lang.String(i6986[10])))), ≥)∧[(-1)bso_64] ≥ 0)

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

(69)    ((UIncreasing(LOAD34990ARR5(java.lang.Object(ARRAY(i4[10], a115115data[10])), i5816[10], i5824[10], java.lang.Object(java.lang.String(i6986[10])))), ≥)∧[(-1)bso_64] ≥ 0)

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

(70)    ((UIncreasing(LOAD34990ARR5(java.lang.Object(ARRAY(i4[10], a115115data[10])), i5816[10], i5824[10], java.lang.Object(java.lang.String(i6986[10])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_64] ≥ 0)

For Pair LOAD34990ARR5(java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824, java.lang.Object(java.lang.String(i6986))) → COND_LOAD34990ARR5(&&(&&(&&(&&(&&(&&(!(=(i6986, 0)), >(+(i5816, 1), 0)), <(+(i5816, 1), i4)), >(i5816, 0)), <(i5816, i4)), >(i5824, 0)), >(+(+(i5816, 1), 1), 0)), java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824, java.lang.Object(java.lang.String(i6986))) the following chains were created:
• We consider the chain LOAD34990ARR5(java.lang.Object(ARRAY(i4[11], a115115data[11])), i5816[11], i5824[11], java.lang.Object(java.lang.String(i6986[11]))) → COND_LOAD34990ARR5(&&(&&(&&(&&(&&(&&(!(=(i6986[11], 0)), >(+(i5816[11], 1), 0)), <(+(i5816[11], 1), i4[11])), >(i5816[11], 0)), <(i5816[11], i4[11])), >(i5824[11], 0)), >(+(+(i5816[11], 1), 1), 0)), java.lang.Object(ARRAY(i4[11], a115115data[11])), i5816[11], i5824[11], java.lang.Object(java.lang.String(i6986[11]))), COND_LOAD34990ARR5(TRUE, java.lang.Object(ARRAY(i4[12], a115115data[12])), i5816[12], i5824[12], java.lang.Object(java.lang.String(i6986[12]))) → INC35127(java.lang.Object(ARRAY(i4[12], a115115data[12])), +(+(i5816[12], 1), 1), i5824[12]) which results in the following constraint:

(71)    (i5824[11]=i5824[12]i5816[11]=i5816[12]i4[11]=i4[12]a115115data[11]=a115115data[12]i6986[11]=i6986[12]&&(&&(&&(&&(&&(&&(!(=(i6986[11], 0)), >(+(i5816[11], 1), 0)), <(+(i5816[11], 1), i4[11])), >(i5816[11], 0)), <(i5816[11], i4[11])), >(i5824[11], 0)), >(+(+(i5816[11], 1), 1), 0))=TRUELOAD34990ARR5(java.lang.Object(ARRAY(i4[11], a115115data[11])), i5816[11], i5824[11], java.lang.Object(java.lang.String(i6986[11])))≥NonInfC∧LOAD34990ARR5(java.lang.Object(ARRAY(i4[11], a115115data[11])), i5816[11], i5824[11], java.lang.Object(java.lang.String(i6986[11])))≥COND_LOAD34990ARR5(&&(&&(&&(&&(&&(&&(!(=(i6986[11], 0)), >(+(i5816[11], 1), 0)), <(+(i5816[11], 1), i4[11])), >(i5816[11], 0)), <(i5816[11], i4[11])), >(i5824[11], 0)), >(+(+(i5816[11], 1), 1), 0)), java.lang.Object(ARRAY(i4[11], a115115data[11])), i5816[11], i5824[11], java.lang.Object(java.lang.String(i6986[11])))∧(UIncreasing(COND_LOAD34990ARR5(&&(&&(&&(&&(&&(&&(!(=(i6986[11], 0)), >(+(i5816[11], 1), 0)), <(+(i5816[11], 1), i4[11])), >(i5816[11], 0)), <(i5816[11], i4[11])), >(i5824[11], 0)), >(+(+(i5816[11], 1), 1), 0)), java.lang.Object(ARRAY(i4[11], a115115data[11])), i5816[11], i5824[11], java.lang.Object(java.lang.String(i6986[11])))), ≥))

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

(72)    (>(+(+(i5816[11], 1), 1), 0)=TRUE>(i5824[11], 0)=TRUE<(i5816[11], i4[11])=TRUE>(i5816[11], 0)=TRUE<(+(i5816[11], 1), i4[11])=TRUE>(+(i5816[11], 1), 0)=TRUE<(i6986[11], 0)=TRUELOAD34990ARR5(java.lang.Object(ARRAY(i4[11], a115115data[11])), i5816[11], i5824[11], java.lang.Object(java.lang.String(i6986[11])))≥NonInfC∧LOAD34990ARR5(java.lang.Object(ARRAY(i4[11], a115115data[11])), i5816[11], i5824[11], java.lang.Object(java.lang.String(i6986[11])))≥COND_LOAD34990ARR5(&&(&&(&&(&&(&&(&&(!(=(i6986[11], 0)), >(+(i5816[11], 1), 0)), <(+(i5816[11], 1), i4[11])), >(i5816[11], 0)), <(i5816[11], i4[11])), >(i5824[11], 0)), >(+(+(i5816[11], 1), 1), 0)), java.lang.Object(ARRAY(i4[11], a115115data[11])), i5816[11], i5824[11], java.lang.Object(java.lang.String(i6986[11])))∧(UIncreasing(COND_LOAD34990ARR5(&&(&&(&&(&&(&&(&&(!(=(i6986[11], 0)), >(+(i5816[11], 1), 0)), <(+(i5816[11], 1), i4[11])), >(i5816[11], 0)), <(i5816[11], i4[11])), >(i5824[11], 0)), >(+(+(i5816[11], 1), 1), 0)), java.lang.Object(ARRAY(i4[11], a115115data[11])), i5816[11], i5824[11], java.lang.Object(java.lang.String(i6986[11])))), ≥))

(73)    (>(+(+(i5816[11], 1), 1), 0)=TRUE>(i5824[11], 0)=TRUE<(i5816[11], i4[11])=TRUE>(i5816[11], 0)=TRUE<(+(i5816[11], 1), i4[11])=TRUE>(+(i5816[11], 1), 0)=TRUE>(i6986[11], 0)=TRUELOAD34990ARR5(java.lang.Object(ARRAY(i4[11], a115115data[11])), i5816[11], i5824[11], java.lang.Object(java.lang.String(i6986[11])))≥NonInfC∧LOAD34990ARR5(java.lang.Object(ARRAY(i4[11], a115115data[11])), i5816[11], i5824[11], java.lang.Object(java.lang.String(i6986[11])))≥COND_LOAD34990ARR5(&&(&&(&&(&&(&&(&&(!(=(i6986[11], 0)), >(+(i5816[11], 1), 0)), <(+(i5816[11], 1), i4[11])), >(i5816[11], 0)), <(i5816[11], i4[11])), >(i5824[11], 0)), >(+(+(i5816[11], 1), 1), 0)), java.lang.Object(ARRAY(i4[11], a115115data[11])), i5816[11], i5824[11], java.lang.Object(java.lang.String(i6986[11])))∧(UIncreasing(COND_LOAD34990ARR5(&&(&&(&&(&&(&&(&&(!(=(i6986[11], 0)), >(+(i5816[11], 1), 0)), <(+(i5816[11], 1), i4[11])), >(i5816[11], 0)), <(i5816[11], i4[11])), >(i5824[11], 0)), >(+(+(i5816[11], 1), 1), 0)), java.lang.Object(ARRAY(i4[11], a115115data[11])), i5816[11], i5824[11], java.lang.Object(java.lang.String(i6986[11])))), ≥))

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

(74)    (i5816[11] + [1] ≥ 0∧i5824[11] + [-1] ≥ 0∧i4[11] + [-1] + [-1]i5816[11] ≥ 0∧i5816[11] + [-1] ≥ 0∧i4[11] + [-2] + [-1]i5816[11] ≥ 0∧i5816[11] ≥ 0∧[-1] + [-1]i6986[11] ≥ 0 ⇒ (UIncreasing(COND_LOAD34990ARR5(&&(&&(&&(&&(&&(&&(!(=(i6986[11], 0)), >(+(i5816[11], 1), 0)), <(+(i5816[11], 1), i4[11])), >(i5816[11], 0)), <(i5816[11], i4[11])), >(i5824[11], 0)), >(+(+(i5816[11], 1), 1), 0)), java.lang.Object(ARRAY(i4[11], a115115data[11])), i5816[11], i5824[11], java.lang.Object(java.lang.String(i6986[11])))), ≥)∧[(-1)Bound*bni_65] + [bni_65]i5824[11] + [(-1)bni_65]i5816[11] + [bni_65]i4[11] ≥ 0∧[(-1)bso_66] ≥ 0)

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

(75)    (i5816[11] + [1] ≥ 0∧i5824[11] + [-1] ≥ 0∧i4[11] + [-1] + [-1]i5816[11] ≥ 0∧i5816[11] + [-1] ≥ 0∧i4[11] + [-2] + [-1]i5816[11] ≥ 0∧i5816[11] ≥ 0∧i6986[11] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD34990ARR5(&&(&&(&&(&&(&&(&&(!(=(i6986[11], 0)), >(+(i5816[11], 1), 0)), <(+(i5816[11], 1), i4[11])), >(i5816[11], 0)), <(i5816[11], i4[11])), >(i5824[11], 0)), >(+(+(i5816[11], 1), 1), 0)), java.lang.Object(ARRAY(i4[11], a115115data[11])), i5816[11], i5824[11], java.lang.Object(java.lang.String(i6986[11])))), ≥)∧[(-1)Bound*bni_65] + [bni_65]i5824[11] + [(-1)bni_65]i5816[11] + [bni_65]i4[11] ≥ 0∧[(-1)bso_66] ≥ 0)

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

(76)    (i5816[11] + [1] ≥ 0∧i5824[11] + [-1] ≥ 0∧i4[11] + [-1] + [-1]i5816[11] ≥ 0∧i5816[11] + [-1] ≥ 0∧i4[11] + [-2] + [-1]i5816[11] ≥ 0∧i5816[11] ≥ 0∧[-1] + [-1]i6986[11] ≥ 0 ⇒ (UIncreasing(COND_LOAD34990ARR5(&&(&&(&&(&&(&&(&&(!(=(i6986[11], 0)), >(+(i5816[11], 1), 0)), <(+(i5816[11], 1), i4[11])), >(i5816[11], 0)), <(i5816[11], i4[11])), >(i5824[11], 0)), >(+(+(i5816[11], 1), 1), 0)), java.lang.Object(ARRAY(i4[11], a115115data[11])), i5816[11], i5824[11], java.lang.Object(java.lang.String(i6986[11])))), ≥)∧[(-1)Bound*bni_65] + [bni_65]i5824[11] + [(-1)bni_65]i5816[11] + [bni_65]i4[11] ≥ 0∧[(-1)bso_66] ≥ 0)

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

(77)    (i5816[11] + [1] ≥ 0∧i5824[11] + [-1] ≥ 0∧i4[11] + [-1] + [-1]i5816[11] ≥ 0∧i5816[11] + [-1] ≥ 0∧i4[11] + [-2] + [-1]i5816[11] ≥ 0∧i5816[11] ≥ 0∧i6986[11] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD34990ARR5(&&(&&(&&(&&(&&(&&(!(=(i6986[11], 0)), >(+(i5816[11], 1), 0)), <(+(i5816[11], 1), i4[11])), >(i5816[11], 0)), <(i5816[11], i4[11])), >(i5824[11], 0)), >(+(+(i5816[11], 1), 1), 0)), java.lang.Object(ARRAY(i4[11], a115115data[11])), i5816[11], i5824[11], java.lang.Object(java.lang.String(i6986[11])))), ≥)∧[(-1)Bound*bni_65] + [bni_65]i5824[11] + [(-1)bni_65]i5816[11] + [bni_65]i4[11] ≥ 0∧[(-1)bso_66] ≥ 0)

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

(78)    (i5816[11] + [1] ≥ 0∧i5824[11] + [-1] ≥ 0∧i4[11] + [-1] + [-1]i5816[11] ≥ 0∧i5816[11] + [-1] ≥ 0∧i4[11] + [-2] + [-1]i5816[11] ≥ 0∧i5816[11] ≥ 0∧[-1] + [-1]i6986[11] ≥ 0 ⇒ (UIncreasing(COND_LOAD34990ARR5(&&(&&(&&(&&(&&(&&(!(=(i6986[11], 0)), >(+(i5816[11], 1), 0)), <(+(i5816[11], 1), i4[11])), >(i5816[11], 0)), <(i5816[11], i4[11])), >(i5824[11], 0)), >(+(+(i5816[11], 1), 1), 0)), java.lang.Object(ARRAY(i4[11], a115115data[11])), i5816[11], i5824[11], java.lang.Object(java.lang.String(i6986[11])))), ≥)∧[(-1)Bound*bni_65] + [bni_65]i5824[11] + [(-1)bni_65]i5816[11] + [bni_65]i4[11] ≥ 0∧[(-1)bso_66] ≥ 0)

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

(79)    (i5816[11] + [1] ≥ 0∧i5824[11] + [-1] ≥ 0∧i4[11] + [-1] + [-1]i5816[11] ≥ 0∧i5816[11] + [-1] ≥ 0∧i4[11] + [-2] + [-1]i5816[11] ≥ 0∧i5816[11] ≥ 0∧i6986[11] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD34990ARR5(&&(&&(&&(&&(&&(&&(!(=(i6986[11], 0)), >(+(i5816[11], 1), 0)), <(+(i5816[11], 1), i4[11])), >(i5816[11], 0)), <(i5816[11], i4[11])), >(i5824[11], 0)), >(+(+(i5816[11], 1), 1), 0)), java.lang.Object(ARRAY(i4[11], a115115data[11])), i5816[11], i5824[11], java.lang.Object(java.lang.String(i6986[11])))), ≥)∧[(-1)Bound*bni_65] + [bni_65]i5824[11] + [(-1)bni_65]i5816[11] + [bni_65]i4[11] ≥ 0∧[(-1)bso_66] ≥ 0)

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

(80)    (i5816[11] + [1] ≥ 0∧i5824[11] + [-1] ≥ 0∧i4[11] + [-1] + [-1]i5816[11] ≥ 0∧i5816[11] + [-1] ≥ 0∧i4[11] + [-2] + [-1]i5816[11] ≥ 0∧i5816[11] ≥ 0∧[-1] + [-1]i6986[11] ≥ 0 ⇒ (UIncreasing(COND_LOAD34990ARR5(&&(&&(&&(&&(&&(&&(!(=(i6986[11], 0)), >(+(i5816[11], 1), 0)), <(+(i5816[11], 1), i4[11])), >(i5816[11], 0)), <(i5816[11], i4[11])), >(i5824[11], 0)), >(+(+(i5816[11], 1), 1), 0)), java.lang.Object(ARRAY(i4[11], a115115data[11])), i5816[11], i5824[11], java.lang.Object(java.lang.String(i6986[11])))), ≥)∧0 = 0∧[(-1)Bound*bni_65] + [bni_65]i5824[11] + [(-1)bni_65]i5816[11] + [bni_65]i4[11] ≥ 0∧0 = 0∧[(-1)bso_66] ≥ 0)

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

(81)    (i5816[11] + [1] ≥ 0∧i5824[11] + [-1] ≥ 0∧i4[11] + [-1] + [-1]i5816[11] ≥ 0∧i5816[11] + [-1] ≥ 0∧i4[11] + [-2] + [-1]i5816[11] ≥ 0∧i5816[11] ≥ 0∧i6986[11] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD34990ARR5(&&(&&(&&(&&(&&(&&(!(=(i6986[11], 0)), >(+(i5816[11], 1), 0)), <(+(i5816[11], 1), i4[11])), >(i5816[11], 0)), <(i5816[11], i4[11])), >(i5824[11], 0)), >(+(+(i5816[11], 1), 1), 0)), java.lang.Object(ARRAY(i4[11], a115115data[11])), i5816[11], i5824[11], java.lang.Object(java.lang.String(i6986[11])))), ≥)∧0 = 0∧[(-1)Bound*bni_65] + [bni_65]i5824[11] + [(-1)bni_65]i5816[11] + [bni_65]i4[11] ≥ 0∧0 = 0∧[(-1)bso_66] ≥ 0)

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

(82)    ([2] + i5816[11] ≥ 0∧i5824[11] + [-1] ≥ 0∧i4[11] + [-2] + [-1]i5816[11] ≥ 0∧i5816[11] ≥ 0∧i4[11] + [-3] + [-1]i5816[11] ≥ 0∧[1] + i5816[11] ≥ 0∧[-1] + [-1]i6986[11] ≥ 0 ⇒ (UIncreasing(COND_LOAD34990ARR5(&&(&&(&&(&&(&&(&&(!(=(i6986[11], 0)), >(+(i5816[11], 1), 0)), <(+(i5816[11], 1), i4[11])), >(i5816[11], 0)), <(i5816[11], i4[11])), >(i5824[11], 0)), >(+(+(i5816[11], 1), 1), 0)), java.lang.Object(ARRAY(i4[11], a115115data[11])), i5816[11], i5824[11], java.lang.Object(java.lang.String(i6986[11])))), ≥)∧0 = 0∧[(-1)Bound*bni_65 + (-1)bni_65] + [bni_65]i5824[11] + [(-1)bni_65]i5816[11] + [bni_65]i4[11] ≥ 0∧0 = 0∧[(-1)bso_66] ≥ 0)

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

(83)    ([2] + i5816[11] ≥ 0∧i5824[11] ≥ 0∧i4[11] + [-2] + [-1]i5816[11] ≥ 0∧i5816[11] ≥ 0∧i4[11] + [-3] + [-1]i5816[11] ≥ 0∧[1] + i5816[11] ≥ 0∧[-1] + [-1]i6986[11] ≥ 0 ⇒ (UIncreasing(COND_LOAD34990ARR5(&&(&&(&&(&&(&&(&&(!(=(i6986[11], 0)), >(+(i5816[11], 1), 0)), <(+(i5816[11], 1), i4[11])), >(i5816[11], 0)), <(i5816[11], i4[11])), >(i5824[11], 0)), >(+(+(i5816[11], 1), 1), 0)), java.lang.Object(ARRAY(i4[11], a115115data[11])), i5816[11], i5824[11], java.lang.Object(java.lang.String(i6986[11])))), ≥)∧0 = 0∧[(-1)Bound*bni_65] + [bni_65]i5824[11] + [(-1)bni_65]i5816[11] + [bni_65]i4[11] ≥ 0∧0 = 0∧[(-1)bso_66] ≥ 0)

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

(84)    ([2] + i5816[11] ≥ 0∧i5824[11] ≥ 0∧i4[11] ≥ 0∧i5816[11] ≥ 0∧[-1] + i4[11] ≥ 0∧[1] + i5816[11] ≥ 0∧[-1] + [-1]i6986[11] ≥ 0 ⇒ (UIncreasing(COND_LOAD34990ARR5(&&(&&(&&(&&(&&(&&(!(=(i6986[11], 0)), >(+(i5816[11], 1), 0)), <(+(i5816[11], 1), i4[11])), >(i5816[11], 0)), <(i5816[11], i4[11])), >(i5824[11], 0)), >(+(+(i5816[11], 1), 1), 0)), java.lang.Object(ARRAY(i4[11], a115115data[11])), i5816[11], i5824[11], java.lang.Object(java.lang.String(i6986[11])))), ≥)∧0 = 0∧[(-1)Bound*bni_65 + (2)bni_65] + [bni_65]i5824[11] + [bni_65]i4[11] ≥ 0∧0 = 0∧[(-1)bso_66] ≥ 0)

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

(85)    ([2] + i5816[11] ≥ 0∧i5824[11] ≥ 0∧[1] + i4[11] ≥ 0∧i5816[11] ≥ 0∧i4[11] ≥ 0∧[1] + i5816[11] ≥ 0∧[-1] + [-1]i6986[11] ≥ 0 ⇒ (UIncreasing(COND_LOAD34990ARR5(&&(&&(&&(&&(&&(&&(!(=(i6986[11], 0)), >(+(i5816[11], 1), 0)), <(+(i5816[11], 1), i4[11])), >(i5816[11], 0)), <(i5816[11], i4[11])), >(i5824[11], 0)), >(+(+(i5816[11], 1), 1), 0)), java.lang.Object(ARRAY(i4[11], a115115data[11])), i5816[11], i5824[11], java.lang.Object(java.lang.String(i6986[11])))), ≥)∧0 = 0∧[(-1)Bound*bni_65 + (3)bni_65] + [bni_65]i5824[11] + [bni_65]i4[11] ≥ 0∧0 = 0∧[(-1)bso_66] ≥ 0)

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

(86)    ([2] + i5816[11] ≥ 0∧i5824[11] ≥ 0∧[1] + i4[11] ≥ 0∧i5816[11] ≥ 0∧i4[11] ≥ 0∧[1] + i5816[11] ≥ 0∧i6986[11] ≥ 0 ⇒ (UIncreasing(COND_LOAD34990ARR5(&&(&&(&&(&&(&&(&&(!(=(i6986[11], 0)), >(+(i5816[11], 1), 0)), <(+(i5816[11], 1), i4[11])), >(i5816[11], 0)), <(i5816[11], i4[11])), >(i5824[11], 0)), >(+(+(i5816[11], 1), 1), 0)), java.lang.Object(ARRAY(i4[11], a115115data[11])), i5816[11], i5824[11], java.lang.Object(java.lang.String(i6986[11])))), ≥)∧0 = 0∧[(-1)Bound*bni_65 + (3)bni_65] + [bni_65]i5824[11] + [bni_65]i4[11] ≥ 0∧0 = 0∧[(-1)bso_66] ≥ 0)

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

(87)    ([2] + i5816[11] ≥ 0∧i5824[11] + [-1] ≥ 0∧i4[11] + [-2] + [-1]i5816[11] ≥ 0∧i5816[11] ≥ 0∧i4[11] + [-3] + [-1]i5816[11] ≥ 0∧[1] + i5816[11] ≥ 0∧i6986[11] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD34990ARR5(&&(&&(&&(&&(&&(&&(!(=(i6986[11], 0)), >(+(i5816[11], 1), 0)), <(+(i5816[11], 1), i4[11])), >(i5816[11], 0)), <(i5816[11], i4[11])), >(i5824[11], 0)), >(+(+(i5816[11], 1), 1), 0)), java.lang.Object(ARRAY(i4[11], a115115data[11])), i5816[11], i5824[11], java.lang.Object(java.lang.String(i6986[11])))), ≥)∧0 = 0∧[(-1)Bound*bni_65 + (-1)bni_65] + [bni_65]i5824[11] + [(-1)bni_65]i5816[11] + [bni_65]i4[11] ≥ 0∧0 = 0∧[(-1)bso_66] ≥ 0)

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

(88)    ([2] + i5816[11] ≥ 0∧i5824[11] ≥ 0∧i4[11] + [-2] + [-1]i5816[11] ≥ 0∧i5816[11] ≥ 0∧i4[11] + [-3] + [-1]i5816[11] ≥ 0∧[1] + i5816[11] ≥ 0∧i6986[11] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD34990ARR5(&&(&&(&&(&&(&&(&&(!(=(i6986[11], 0)), >(+(i5816[11], 1), 0)), <(+(i5816[11], 1), i4[11])), >(i5816[11], 0)), <(i5816[11], i4[11])), >(i5824[11], 0)), >(+(+(i5816[11], 1), 1), 0)), java.lang.Object(ARRAY(i4[11], a115115data[11])), i5816[11], i5824[11], java.lang.Object(java.lang.String(i6986[11])))), ≥)∧0 = 0∧[(-1)Bound*bni_65] + [bni_65]i5824[11] + [(-1)bni_65]i5816[11] + [bni_65]i4[11] ≥ 0∧0 = 0∧[(-1)bso_66] ≥ 0)

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

(89)    ([2] + i5816[11] ≥ 0∧i5824[11] ≥ 0∧i4[11] ≥ 0∧i5816[11] ≥ 0∧[-1] + i4[11] ≥ 0∧[1] + i5816[11] ≥ 0∧i6986[11] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD34990ARR5(&&(&&(&&(&&(&&(&&(!(=(i6986[11], 0)), >(+(i5816[11], 1), 0)), <(+(i5816[11], 1), i4[11])), >(i5816[11], 0)), <(i5816[11], i4[11])), >(i5824[11], 0)), >(+(+(i5816[11], 1), 1), 0)), java.lang.Object(ARRAY(i4[11], a115115data[11])), i5816[11], i5824[11], java.lang.Object(java.lang.String(i6986[11])))), ≥)∧0 = 0∧[(-1)Bound*bni_65 + (2)bni_65] + [bni_65]i5824[11] + [bni_65]i4[11] ≥ 0∧0 = 0∧[(-1)bso_66] ≥ 0)

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

(90)    ([2] + i5816[11] ≥ 0∧i5824[11] ≥ 0∧[1] + i4[11] ≥ 0∧i5816[11] ≥ 0∧i4[11] ≥ 0∧[1] + i5816[11] ≥ 0∧i6986[11] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD34990ARR5(&&(&&(&&(&&(&&(&&(!(=(i6986[11], 0)), >(+(i5816[11], 1), 0)), <(+(i5816[11], 1), i4[11])), >(i5816[11], 0)), <(i5816[11], i4[11])), >(i5824[11], 0)), >(+(+(i5816[11], 1), 1), 0)), java.lang.Object(ARRAY(i4[11], a115115data[11])), i5816[11], i5824[11], java.lang.Object(java.lang.String(i6986[11])))), ≥)∧0 = 0∧[(-1)Bound*bni_65 + (3)bni_65] + [bni_65]i5824[11] + [bni_65]i4[11] ≥ 0∧0 = 0∧[(-1)bso_66] ≥ 0)

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

(91)    ([2] + i5816[11] ≥ 0∧i5824[11] ≥ 0∧[1] + i4[11] ≥ 0∧i5816[11] ≥ 0∧i4[11] ≥ 0∧[1] + i5816[11] ≥ 0∧i6986[11] ≥ 0 ⇒ (UIncreasing(COND_LOAD34990ARR5(&&(&&(&&(&&(&&(&&(!(=(i6986[11], 0)), >(+(i5816[11], 1), 0)), <(+(i5816[11], 1), i4[11])), >(i5816[11], 0)), <(i5816[11], i4[11])), >(i5824[11], 0)), >(+(+(i5816[11], 1), 1), 0)), java.lang.Object(ARRAY(i4[11], a115115data[11])), i5816[11], i5824[11], java.lang.Object(java.lang.String(i6986[11])))), ≥)∧0 = 0∧[(-1)Bound*bni_65 + (3)bni_65] + [bni_65]i5824[11] + [bni_65]i4[11] ≥ 0∧0 = 0∧[(-1)bso_66] ≥ 0)

For Pair COND_LOAD34990ARR5(TRUE, java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824, java.lang.Object(java.lang.String(i6986))) → INC35127(java.lang.Object(ARRAY(i4, a115115data)), +(+(i5816, 1), 1), i5824) the following chains were created:
• We consider the chain COND_LOAD34990ARR5(TRUE, java.lang.Object(ARRAY(i4[12], a115115data[12])), i5816[12], i5824[12], java.lang.Object(java.lang.String(i6986[12]))) → INC35127(java.lang.Object(ARRAY(i4[12], a115115data[12])), +(+(i5816[12], 1), 1), i5824[12]) which results in the following constraint:

(92)    (COND_LOAD34990ARR5(TRUE, java.lang.Object(ARRAY(i4[12], a115115data[12])), i5816[12], i5824[12], java.lang.Object(java.lang.String(i6986[12])))≥NonInfC∧COND_LOAD34990ARR5(TRUE, java.lang.Object(ARRAY(i4[12], a115115data[12])), i5816[12], i5824[12], java.lang.Object(java.lang.String(i6986[12])))≥INC35127(java.lang.Object(ARRAY(i4[12], a115115data[12])), +(+(i5816[12], 1), 1), i5824[12])∧(UIncreasing(INC35127(java.lang.Object(ARRAY(i4[12], a115115data[12])), +(+(i5816[12], 1), 1), i5824[12])), ≥))

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

(93)    ((UIncreasing(INC35127(java.lang.Object(ARRAY(i4[12], a115115data[12])), +(+(i5816[12], 1), 1), i5824[12])), ≥)∧[2 + (-1)bso_68] ≥ 0)

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

(94)    ((UIncreasing(INC35127(java.lang.Object(ARRAY(i4[12], a115115data[12])), +(+(i5816[12], 1), 1), i5824[12])), ≥)∧[2 + (-1)bso_68] ≥ 0)

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

(95)    ((UIncreasing(INC35127(java.lang.Object(ARRAY(i4[12], a115115data[12])), +(+(i5816[12], 1), 1), i5824[12])), ≥)∧[2 + (-1)bso_68] ≥ 0)

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

(96)    ((UIncreasing(INC35127(java.lang.Object(ARRAY(i4[12], a115115data[12])), +(+(i5816[12], 1), 1), i5824[12])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[2 + (-1)bso_68] ≥ 0)

For Pair NEW40288(java.lang.Object(ARRAY(i4, a115115data)), i6905, i5824) → INC35127(java.lang.Object(ARRAY(i4, a115115data)), i6905, i5824) the following chains were created:
• We consider the chain NEW40288(java.lang.Object(ARRAY(i4[13], a115115data[13])), i6905[13], i5824[13]) → INC35127(java.lang.Object(ARRAY(i4[13], a115115data[13])), i6905[13], i5824[13]), INC35127(java.lang.Object(ARRAY(i4[3], a115115data[3])), i5816[3], i5824[3]) → LOAD34990(java.lang.Object(ARRAY(i4[3], a115115data[3])), i5816[3], +(i5824[3], -1)) which results in the following constraint:

(97)    (i4[13]=i4[3]a115115data[13]=a115115data[3]i6905[13]=i5816[3]i5824[13]=i5824[3]NEW40288(java.lang.Object(ARRAY(i4[13], a115115data[13])), i6905[13], i5824[13])≥NonInfC∧NEW40288(java.lang.Object(ARRAY(i4[13], a115115data[13])), i6905[13], i5824[13])≥INC35127(java.lang.Object(ARRAY(i4[13], a115115data[13])), i6905[13], i5824[13])∧(UIncreasing(INC35127(java.lang.Object(ARRAY(i4[13], a115115data[13])), i6905[13], i5824[13])), ≥))

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

(98)    (NEW40288(java.lang.Object(ARRAY(i4[13], a115115data[13])), i6905[13], i5824[13])≥NonInfC∧NEW40288(java.lang.Object(ARRAY(i4[13], a115115data[13])), i6905[13], i5824[13])≥INC35127(java.lang.Object(ARRAY(i4[13], a115115data[13])), i6905[13], i5824[13])∧(UIncreasing(INC35127(java.lang.Object(ARRAY(i4[13], a115115data[13])), i6905[13], i5824[13])), ≥))

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

(99)    ((UIncreasing(INC35127(java.lang.Object(ARRAY(i4[13], a115115data[13])), i6905[13], i5824[13])), ≥)∧[(-1)bso_70] ≥ 0)

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

(100)    ((UIncreasing(INC35127(java.lang.Object(ARRAY(i4[13], a115115data[13])), i6905[13], i5824[13])), ≥)∧[(-1)bso_70] ≥ 0)

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

(101)    ((UIncreasing(INC35127(java.lang.Object(ARRAY(i4[13], a115115data[13])), i6905[13], i5824[13])), ≥)∧[(-1)bso_70] ≥ 0)

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

(102)    ((UIncreasing(INC35127(java.lang.Object(ARRAY(i4[13], a115115data[13])), i6905[13], i5824[13])), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_70] ≥ 0)

For Pair LOAD34990(java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824) → LOAD34990ARR6(java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824, java.lang.Object(java.lang.String(i6164))) the following chains were created:
• We consider the chain LOAD34990(java.lang.Object(ARRAY(i4[14], a115115data[14])), i5816[14], i5824[14]) → LOAD34990ARR6(java.lang.Object(ARRAY(i4[14], a115115data[14])), i5816[14], i5824[14], java.lang.Object(java.lang.String(i6164[14]))) which results in the following constraint:

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

(104)    ((UIncreasing(LOAD34990ARR6(java.lang.Object(ARRAY(i4[14], a115115data[14])), i5816[14], i5824[14], java.lang.Object(java.lang.String(i6164[14])))), ≥)∧[(-1)bso_72] ≥ 0)

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

(105)    ((UIncreasing(LOAD34990ARR6(java.lang.Object(ARRAY(i4[14], a115115data[14])), i5816[14], i5824[14], java.lang.Object(java.lang.String(i6164[14])))), ≥)∧[(-1)bso_72] ≥ 0)

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

(106)    ((UIncreasing(LOAD34990ARR6(java.lang.Object(ARRAY(i4[14], a115115data[14])), i5816[14], i5824[14], java.lang.Object(java.lang.String(i6164[14])))), ≥)∧[(-1)bso_72] ≥ 0)

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

(107)    ((UIncreasing(LOAD34990ARR6(java.lang.Object(ARRAY(i4[14], a115115data[14])), i5816[14], i5824[14], java.lang.Object(java.lang.String(i6164[14])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_72] ≥ 0)

For Pair LOAD34990ARR6(java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824, java.lang.Object(java.lang.String(i6164))) → COND_LOAD34990ARR6(&&(&&(&&(&&(&&(&&(>(+(i5816, 1), 0), <(+(i5816, 1), i4)), !(=(i6164, 0))), >(i5816, 0)), <(i5816, i4)), >(i5824, 0)), >(+(+(i5816, 1), 1), 0)), java.lang.Object(ARRAY(i4, a115115data)), i5816, i5824, java.lang.Object(java.lang.String(i6164))) the following chains were created:
• We consider the chain LOAD34990ARR6(java.lang.Object(ARRAY(i4[15], a115115data[15])), i5816[15], i5824[15], java.lang.Object(java.lang.String(i6164[15]))) → COND_LOAD34990ARR6(&&(&&(&&(&&(&&(&&(>(+(i5816[15], 1), 0), <(+(i5816[15], 1), i4[15])), !(=(i6164[15], 0))), >(i5816[15], 0)), <(i5816[15], i4[15])), >(i5824[15], 0)), >(+(+(i5816[15], 1), 1), 0)), java.lang.Object(ARRAY(i4[15], a115115data[15])), i5816[15], i5824[15], java.lang.Object(java.lang.String(i6164[15]))), COND_LOAD34990ARR6(TRUE, java.lang.Object(ARRAY(i4[16], a115115data[16])), i5816[16], i5824[16], java.lang.Object(java.lang.String(i6164[16]))) → INC35127(java.lang.Object(ARRAY(i4[16], a115115data[16])), +(+(i5816[16], 1), 1), i5824[16]) which results in the following constraint:

(108)    (i5816[15]=i5816[16]i5824[15]=i5824[16]&&(&&(&&(&&(&&(&&(>(+(i5816[15], 1), 0), <(+(i5816[15], 1), i4[15])), !(=(i6164[15], 0))), >(i5816[15], 0)), <(i5816[15], i4[15])), >(i5824[15], 0)), >(+(+(i5816[15], 1), 1), 0))=TRUEi4[15]=i4[16]a115115data[15]=a115115data[16]i6164[15]=i6164[16]LOAD34990ARR6(java.lang.Object(ARRAY(i4[15], a115115data[15])), i5816[15], i5824[15], java.lang.Object(java.lang.String(i6164[15])))≥NonInfC∧LOAD34990ARR6(java.lang.Object(ARRAY(i4[15], a115115data[15])), i5816[15], i5824[15], java.lang.Object(java.lang.String(i6164[15])))≥COND_LOAD34990ARR6(&&(&&(&&(&&(&&(&&(>(+(i5816[15], 1), 0), <(+(i5816[15], 1), i4[15])), !(=(i6164[15], 0))), >(i5816[15], 0)), <(i5816[15], i4[15])), >(i5824[15], 0)), >(+(+(i5816[15], 1), 1), 0)), java.lang.Object(ARRAY(i4[15], a115115data[15])), i5816[15], i5824[15], java.lang.Object(java.lang.String(i6164[15])))∧(UIncreasing(COND_LOAD34990ARR6(&&(&&(&&(&&(&&(&&(>(+(i5816[15], 1), 0), <(+(i5816[15], 1), i4[15])), !(=(i6164[15], 0))), >(i5816[15], 0)), <(i5816[15], i4[15])), >(i5824[15], 0)), >(+(+(i5816[15], 1), 1), 0)), java.lang.Object(ARRAY(i4[15], a115115data[15])), i5816[15], i5824[15], java.lang.Object(java.lang.String(i6164[15])))), ≥))

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

(109)    (>(+(+(i5816[15], 1), 1), 0)=TRUE>(i5824[15], 0)=TRUE<(i5816[15], i4[15])=TRUE>(i5816[15], 0)=TRUE>(+(i5816[15], 1), 0)=TRUE<(+(i5816[15], 1), i4[15])=TRUE<(i6164[15], 0)=TRUELOAD34990ARR6(java.lang.Object(ARRAY(i4[15], a115115data[15])), i5816[15], i5824[15], java.lang.Object(java.lang.String(i6164[15])))≥NonInfC∧LOAD34990ARR6(java.lang.Object(ARRAY(i4[15], a115115data[15])), i5816[15], i5824[15], java.lang.Object(java.lang.String(i6164[15])))≥COND_LOAD34990ARR6(&&(&&(&&(&&(&&(&&(>(+(i5816[15], 1), 0), <(+(i5816[15], 1), i4[15])), !(=(i6164[15], 0))), >(i5816[15], 0)), <(i5816[15], i4[15])), >(i5824[15], 0)), >(+(+(i5816[15], 1), 1), 0)), java.lang.Object(ARRAY(i4[15], a115115data[15])), i5816[15], i5824[15], java.lang.Object(java.lang.String(i6164[15])))∧(UIncreasing(COND_LOAD34990ARR6(&&(&&(&&(&&(&&(&&(>(+(i5816[15], 1), 0), <(+(i5816[15], 1), i4[15])), !(=(i6164[15], 0))), >(i5816[15], 0)), <(i5816[15], i4[15])), >(i5824[15], 0)), >(+(+(i5816[15], 1), 1), 0)), java.lang.Object(ARRAY(i4[15], a115115data[15])), i5816[15], i5824[15], java.lang.Object(java.lang.String(i6164[15])))), ≥))

(110)    (>(+(+(i5816[15], 1), 1), 0)=TRUE>(i5824[15], 0)=TRUE<(i5816[15], i4[15])=TRUE>(i5816[15], 0)=TRUE>(+(i5816[15], 1), 0)=TRUE<(+(i5816[15], 1), i4[15])=TRUE>(i6164[15], 0)=TRUELOAD34990ARR6(java.lang.Object(ARRAY(i4[15], a115115data[15])), i5816[15], i5824[15], java.lang.Object(java.lang.String(i6164[15])))≥NonInfC∧LOAD34990ARR6(java.lang.Object(ARRAY(i4[15], a115115data[15])), i5816[15], i5824[15], java.lang.Object(java.lang.String(i6164[15])))≥COND_LOAD34990ARR6(&&(&&(&&(&&(&&(&&(>(+(i5816[15], 1), 0), <(+(i5816[15], 1), i4[15])), !(=(i6164[15], 0))), >(i5816[15], 0)), <(i5816[15], i4[15])), >(i5824[15], 0)), >(+(+(i5816[15], 1), 1), 0)), java.lang.Object(ARRAY(i4[15], a115115data[15])), i5816[15], i5824[15], java.lang.Object(java.lang.String(i6164[15])))∧(UIncreasing(COND_LOAD34990ARR6(&&(&&(&&(&&(&&(&&(>(+(i5816[15], 1), 0), <(+(i5816[15], 1), i4[15])), !(=(i6164[15], 0))), >(i5816[15], 0)), <(i5816[15], i4[15])), >(i5824[15], 0)), >(+(+(i5816[15], 1), 1), 0)), java.lang.Object(ARRAY(i4[15], a115115data[15])), i5816[15], i5824[15], java.lang.Object(java.lang.String(i6164[15])))), ≥))

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

(111)    (i5816[15] + [1] ≥ 0∧i5824[15] + [-1] ≥ 0∧i4[15] + [-1] + [-1]i5816[15] ≥ 0∧i5816[15] + [-1] ≥ 0∧i5816[15] ≥ 0∧i4[15] + [-2] + [-1]i5816[15] ≥ 0∧[-1] + [-1]i6164[15] ≥ 0 ⇒ (UIncreasing(COND_LOAD34990ARR6(&&(&&(&&(&&(&&(&&(>(+(i5816[15], 1), 0), <(+(i5816[15], 1), i4[15])), !(=(i6164[15], 0))), >(i5816[15], 0)), <(i5816[15], i4[15])), >(i5824[15], 0)), >(+(+(i5816[15], 1), 1), 0)), java.lang.Object(ARRAY(i4[15], a115115data[15])), i5816[15], i5824[15], java.lang.Object(java.lang.String(i6164[15])))), ≥)∧[(-1)Bound*bni_73] + [bni_73]i5824[15] + [(-1)bni_73]i5816[15] + [bni_73]i4[15] ≥ 0∧[(-1)bso_74] ≥ 0)

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

(112)    (i5816[15] + [1] ≥ 0∧i5824[15] + [-1] ≥ 0∧i4[15] + [-1] + [-1]i5816[15] ≥ 0∧i5816[15] + [-1] ≥ 0∧i5816[15] ≥ 0∧i4[15] + [-2] + [-1]i5816[15] ≥ 0∧i6164[15] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD34990ARR6(&&(&&(&&(&&(&&(&&(>(+(i5816[15], 1), 0), <(+(i5816[15], 1), i4[15])), !(=(i6164[15], 0))), >(i5816[15], 0)), <(i5816[15], i4[15])), >(i5824[15], 0)), >(+(+(i5816[15], 1), 1), 0)), java.lang.Object(ARRAY(i4[15], a115115data[15])), i5816[15], i5824[15], java.lang.Object(java.lang.String(i6164[15])))), ≥)∧[(-1)Bound*bni_73] + [bni_73]i5824[15] + [(-1)bni_73]i5816[15] + [bni_73]i4[15] ≥ 0∧[(-1)bso_74] ≥ 0)

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

(113)    (i5816[15] + [1] ≥ 0∧i5824[15] + [-1] ≥ 0∧i4[15] + [-1] + [-1]i5816[15] ≥ 0∧i5816[15] + [-1] ≥ 0∧i5816[15] ≥ 0∧i4[15] + [-2] + [-1]i5816[15] ≥ 0∧[-1] + [-1]i6164[15] ≥ 0 ⇒ (UIncreasing(COND_LOAD34990ARR6(&&(&&(&&(&&(&&(&&(>(+(i5816[15], 1), 0), <(+(i5816[15], 1), i4[15])), !(=(i6164[15], 0))), >(i5816[15], 0)), <(i5816[15], i4[15])), >(i5824[15], 0)), >(+(+(i5816[15], 1), 1), 0)), java.lang.Object(ARRAY(i4[15], a115115data[15])), i5816[15], i5824[15], java.lang.Object(java.lang.String(i6164[15])))), ≥)∧[(-1)Bound*bni_73] + [bni_73]i5824[15] + [(-1)bni_73]i5816[15] + [bni_73]i4[15] ≥ 0∧[(-1)bso_74] ≥ 0)

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

(114)    (i5816[15] + [1] ≥ 0∧i5824[15] + [-1] ≥ 0∧i4[15] + [-1] + [-1]i5816[15] ≥ 0∧i5816[15] + [-1] ≥ 0∧i5816[15] ≥ 0∧i4[15] + [-2] + [-1]i5816[15] ≥ 0∧i6164[15] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD34990ARR6(&&(&&(&&(&&(&&(&&(>(+(i5816[15], 1), 0), <(+(i5816[15], 1), i4[15])), !(=(i6164[15], 0))), >(i5816[15], 0)), <(i5816[15], i4[15])), >(i5824[15], 0)), >(+(+(i5816[15], 1), 1), 0)), java.lang.Object(ARRAY(i4[15], a115115data[15])), i5816[15], i5824[15], java.lang.Object(java.lang.String(i6164[15])))), ≥)∧[(-1)Bound*bni_73] + [bni_73]i5824[15] + [(-1)bni_73]i5816[15] + [bni_73]i4[15] ≥ 0∧[(-1)bso_74] ≥ 0)

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

(115)    (i5816[15] + [1] ≥ 0∧i5824[15] + [-1] ≥ 0∧i4[15] + [-1] + [-1]i5816[15] ≥ 0∧i5816[15] + [-1] ≥ 0∧i5816[15] ≥ 0∧i4[15] + [-2] + [-1]i5816[15] ≥ 0∧[-1] + [-1]i6164[15] ≥ 0 ⇒ (UIncreasing(COND_LOAD34990ARR6(&&(&&(&&(&&(&&(&&(>(+(i5816[15], 1), 0), <(+(i5816[15], 1), i4[15])), !(=(i6164[15], 0))), >(i5816[15], 0)), <(i5816[15], i4[15])), >(i5824[15], 0)), >(+(+(i5816[15], 1), 1), 0)), java.lang.Object(ARRAY(i4[15], a115115data[15])), i5816[15], i5824[15],