14.25/4.72 YES 14.25/4.74 proof of /export/starexec/sandbox/benchmark/theBenchmark.jar 14.25/4.74 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 14.25/4.74 14.25/4.74 14.25/4.74 termination of the given Bare JBC problem could be proven: 14.25/4.74 14.25/4.74 (0) Bare JBC problem 14.25/4.74 (1) BareJBCToJBCProof [EQUIVALENT, 95 ms] 14.25/4.74 (2) JBC problem 14.25/4.74 (3) JBCToGraph [EQUIVALENT, 1101 ms] 14.25/4.74 (4) JBCTerminationGraph 14.25/4.74 (5) TerminationGraphToSCCProof [SOUND, 0 ms] 14.25/4.74 (6) AND 14.25/4.74 (7) JBCTerminationSCC 14.25/4.74 (8) SCCToQDPProof [SOUND, 191 ms] 14.25/4.74 (9) QDP 14.25/4.74 (10) UsableRulesReductionPairsProof [EQUIVALENT, 16 ms] 14.25/4.74 (11) QDP 14.25/4.74 (12) PisEmptyProof [EQUIVALENT, 0 ms] 14.25/4.74 (13) YES 14.25/4.74 (14) JBCTerminationSCC 14.25/4.74 (15) SCCToQDPProof [SOUND, 63 ms] 14.25/4.74 (16) QDP 14.25/4.74 (17) QDPSizeChangeProof [EQUIVALENT, 0 ms] 14.25/4.74 (18) YES 14.25/4.74 (19) JBCTerminationSCC 14.25/4.74 (20) SCCToIRSProof [SOUND, 193 ms] 14.25/4.74 (21) IRSwT 14.25/4.74 (22) IRSFormatTransformerProof [EQUIVALENT, 0 ms] 14.25/4.74 (23) IRSwT 14.25/4.74 (24) IRSwTTerminationDigraphProof [EQUIVALENT, 185 ms] 14.25/4.74 (25) IRSwT 14.25/4.74 (26) IntTRSCompressionProof [EQUIVALENT, 0 ms] 14.25/4.74 (27) IRSwT 14.25/4.74 (28) TempFilterProof [SOUND, 27 ms] 14.25/4.74 (29) IntTRS 14.25/4.74 (30) PolynomialOrderProcessor [EQUIVALENT, 8 ms] 14.25/4.74 (31) YES 14.25/4.74 (32) JBCTerminationSCC 14.25/4.74 (33) SCCToIRSProof [SOUND, 170 ms] 14.25/4.74 (34) IRSwT 14.25/4.74 (35) IRSFormatTransformerProof [EQUIVALENT, 0 ms] 14.25/4.74 (36) IRSwT 14.25/4.74 (37) IRSwTTerminationDigraphProof [EQUIVALENT, 0 ms] 14.25/4.74 (38) IRSwT 14.25/4.74 (39) IntTRSCompressionProof [EQUIVALENT, 0 ms] 14.25/4.74 (40) IRSwT 14.25/4.74 (41) TempFilterProof [SOUND, 39 ms] 14.25/4.74 (42) IntTRS 14.25/4.74 (43) RankingReductionPairProof [EQUIVALENT, 0 ms] 14.25/4.74 (44) YES 14.25/4.74 14.25/4.74 14.25/4.74 ---------------------------------------- 14.25/4.74 14.25/4.74 (0) 14.25/4.74 Obligation: 14.25/4.74 need to prove termination of the following program: 14.25/4.74 public class FlattenRTA { 14.25/4.74 public static IntList flatten(TreeList list) { 14.25/4.74 TreeList cur = list; 14.25/4.74 IntList result = null; 14.25/4.74 while (cur != null) { 14.25/4.74 Tree tree = cur.value; 14.25/4.74 if (tree != null) { 14.25/4.74 IntList oldIntList = result; 14.25/4.74 result = new IntList(); 14.25/4.74 result.value = tree.value; 14.25/4.74 result.next = oldIntList; 14.25/4.74 TreeList oldCur = cur; 14.25/4.74 cur = new TreeList(); 14.25/4.74 cur.value = tree.left; 14.25/4.74 cur.next = oldCur; 14.25/4.74 oldCur.value = tree.right; 14.25/4.74 } else cur = cur.next; 14.25/4.74 } 14.25/4.74 if (cur != list) {} 14.25/4.74 return result; 14.25/4.74 } 14.25/4.74 14.25/4.74 public static void main(String[] args) { 14.25/4.74 Random.args = args; 14.25/4.74 int listLength = Random.random(); 14.25/4.74 TreeList list = null; 14.25/4.74 for (int i = listLength; i > 0; i--) { 14.25/4.74 Tree tree = Tree.createTree(); 14.25/4.74 list = new TreeList(tree, list); 14.25/4.74 } 14.25/4.74 14.25/4.74 flatten(list); 14.25/4.74 } 14.25/4.74 } 14.25/4.74 14.25/4.74 14.25/4.74 public class IntList { 14.25/4.74 int value; 14.25/4.74 IntList next; 14.25/4.74 14.25/4.74 public IntList(int value, IntList next) { 14.25/4.74 this.value = value; 14.25/4.74 this.next = next; 14.25/4.74 } 14.25/4.74 14.25/4.74 public IntList() { 14.25/4.74 } 14.25/4.74 14.25/4.74 public static IntList createList() { 14.25/4.74 IntList result = null; 14.25/4.74 int length = Random.random(); 14.25/4.74 while (length > 0) { 14.25/4.74 result = new IntList(Random.random(), result); 14.25/4.74 length--; 14.25/4.74 } 14.25/4.74 return result; 14.25/4.74 } 14.25/4.74 } 14.25/4.74 14.25/4.74 14.25/4.74 public class Random { 14.25/4.74 static String[] args; 14.25/4.74 static int index = 0; 14.25/4.74 14.25/4.74 public static int random() { 14.25/4.74 String string = args[index]; 14.25/4.74 index++; 14.25/4.74 return string.length(); 14.25/4.74 } 14.25/4.74 } 14.25/4.74 14.25/4.74 14.25/4.74 public class Tree { 14.25/4.74 Tree left; 14.25/4.74 Tree right; 14.25/4.74 int value; 14.25/4.74 14.25/4.74 public Tree(Tree l, Tree r) { 14.25/4.74 this.left = l; 14.25/4.74 this.right = r; 14.25/4.74 } 14.25/4.74 14.25/4.74 public Tree() { 14.25/4.74 } 14.25/4.74 14.25/4.74 public static Tree createNode() { 14.25/4.74 Tree result = new Tree(); 14.25/4.74 result.value = Random.random(); 14.25/4.74 return result; 14.25/4.74 } 14.25/4.74 14.25/4.74 public static Tree createTree() { 14.25/4.74 int counter = Random.random(); 14.25/4.74 if (counter == 0) { 14.25/4.74 return null; 14.25/4.74 } 14.25/4.74 Tree result = createNode(); 14.25/4.74 Tree t = result; 14.25/4.74 14.25/4.74 while (counter > 0) { 14.25/4.74 int branch = Random.random(); 14.25/4.74 if (branch > 0) { 14.25/4.74 if (t.left == null) { 14.25/4.74 t.left = createNode(); 14.25/4.74 t = result; 14.25/4.74 } else { 14.25/4.74 t = t.left; 14.25/4.74 } 14.25/4.74 } else { 14.25/4.74 if (t.right == null) { 14.25/4.74 t.right = createNode(); 14.25/4.74 t = result; 14.25/4.74 } else { 14.25/4.74 t = t.right; 14.25/4.74 } 14.25/4.74 } 14.25/4.74 counter--; 14.25/4.74 } 14.25/4.74 14.25/4.74 return result; 14.25/4.74 } 14.25/4.74 public static void main(String[] args) { 14.25/4.74 Random.args = args; 14.25/4.74 createTree(); 14.25/4.74 } 14.25/4.74 } 14.25/4.74 14.25/4.74 14.25/4.74 public class TreeList { 14.25/4.74 Tree value; 14.25/4.74 TreeList next; 14.25/4.74 14.25/4.74 public TreeList(Tree value, TreeList next) { 14.25/4.74 this.value = value; 14.25/4.74 this.next = next; 14.25/4.74 } 14.25/4.74 14.25/4.74 public TreeList() { 14.25/4.74 } 14.25/4.74 } 14.25/4.74 14.25/4.74 14.25/4.74 14.25/4.74 ---------------------------------------- 14.25/4.74 14.25/4.74 (1) BareJBCToJBCProof (EQUIVALENT) 14.25/4.74 initialized classpath 14.25/4.74 ---------------------------------------- 14.25/4.74 14.25/4.74 (2) 14.25/4.74 Obligation: 14.25/4.74 need to prove termination of the following program: 14.25/4.74 public class FlattenRTA { 14.25/4.74 public static IntList flatten(TreeList list) { 14.25/4.74 TreeList cur = list; 14.25/4.74 IntList result = null; 14.25/4.74 while (cur != null) { 14.25/4.74 Tree tree = cur.value; 14.25/4.74 if (tree != null) { 14.25/4.74 IntList oldIntList = result; 14.25/4.74 result = new IntList(); 14.25/4.74 result.value = tree.value; 14.25/4.74 result.next = oldIntList; 14.25/4.74 TreeList oldCur = cur; 14.25/4.74 cur = new TreeList(); 14.25/4.74 cur.value = tree.left; 14.25/4.74 cur.next = oldCur; 14.25/4.74 oldCur.value = tree.right; 14.25/4.74 } else cur = cur.next; 14.25/4.74 } 14.25/4.74 if (cur != list) {} 14.25/4.74 return result; 14.25/4.74 } 14.25/4.74 14.25/4.74 public static void main(String[] args) { 14.25/4.74 Random.args = args; 14.25/4.74 int listLength = Random.random(); 14.25/4.74 TreeList list = null; 14.25/4.74 for (int i = listLength; i > 0; i--) { 14.25/4.74 Tree tree = Tree.createTree(); 14.25/4.74 list = new TreeList(tree, list); 14.25/4.74 } 14.25/4.74 14.25/4.74 flatten(list); 14.25/4.74 } 14.25/4.74 } 14.25/4.74 14.25/4.74 14.25/4.74 public class IntList { 14.25/4.74 int value; 14.25/4.74 IntList next; 14.25/4.74 14.25/4.74 public IntList(int value, IntList next) { 14.25/4.74 this.value = value; 14.25/4.74 this.next = next; 14.25/4.74 } 14.25/4.74 14.25/4.74 public IntList() { 14.25/4.74 } 14.25/4.74 14.25/4.74 public static IntList createList() { 14.25/4.74 IntList result = null; 14.25/4.74 int length = Random.random(); 14.25/4.74 while (length > 0) { 14.25/4.74 result = new IntList(Random.random(), result); 14.25/4.74 length--; 14.25/4.74 } 14.25/4.74 return result; 14.25/4.74 } 14.25/4.74 } 14.25/4.74 14.25/4.74 14.25/4.74 public class Random { 14.25/4.74 static String[] args; 14.25/4.74 static int index = 0; 14.25/4.74 14.25/4.74 public static int random() { 14.25/4.74 String string = args[index]; 14.25/4.74 index++; 14.25/4.74 return string.length(); 14.25/4.74 } 14.25/4.74 } 14.25/4.74 14.25/4.74 14.25/4.74 public class Tree { 14.25/4.74 Tree left; 14.25/4.74 Tree right; 14.25/4.74 int value; 14.25/4.74 14.25/4.74 public Tree(Tree l, Tree r) { 14.25/4.74 this.left = l; 14.25/4.74 this.right = r; 14.25/4.74 } 14.25/4.74 14.25/4.74 public Tree() { 14.25/4.74 } 14.25/4.74 14.25/4.74 public static Tree createNode() { 14.25/4.74 Tree result = new Tree(); 14.25/4.74 result.value = Random.random(); 14.25/4.74 return result; 14.25/4.74 } 14.25/4.74 14.25/4.74 public static Tree createTree() { 14.25/4.74 int counter = Random.random(); 14.25/4.74 if (counter == 0) { 14.25/4.74 return null; 14.25/4.74 } 14.25/4.74 Tree result = createNode(); 14.25/4.74 Tree t = result; 14.25/4.74 14.25/4.74 while (counter > 0) { 14.25/4.74 int branch = Random.random(); 14.25/4.74 if (branch > 0) { 14.25/4.74 if (t.left == null) { 14.25/4.74 t.left = createNode(); 14.25/4.74 t = result; 14.25/4.74 } else { 14.25/4.74 t = t.left; 14.25/4.74 } 14.25/4.74 } else { 14.25/4.74 if (t.right == null) { 14.25/4.74 t.right = createNode(); 14.25/4.74 t = result; 14.25/4.74 } else { 14.25/4.74 t = t.right; 14.25/4.74 } 14.25/4.74 } 14.25/4.74 counter--; 14.25/4.74 } 14.25/4.74 14.25/4.74 return result; 14.25/4.74 } 14.25/4.74 public static void main(String[] args) { 14.25/4.74 Random.args = args; 14.25/4.74 createTree(); 14.25/4.74 } 14.25/4.74 } 14.25/4.74 14.25/4.74 14.25/4.74 public class TreeList { 14.25/4.74 Tree value; 14.25/4.74 TreeList next; 14.25/4.74 14.25/4.74 public TreeList(Tree value, TreeList next) { 14.25/4.74 this.value = value; 14.25/4.74 this.next = next; 14.25/4.74 } 14.25/4.74 14.25/4.74 public TreeList() { 14.25/4.74 } 14.25/4.74 } 14.25/4.74 14.25/4.74 14.25/4.74 14.25/4.74 ---------------------------------------- 14.25/4.74 14.25/4.74 (3) JBCToGraph (EQUIVALENT) 14.25/4.74 Constructed TerminationGraph. 14.25/4.74 ---------------------------------------- 14.25/4.74 14.25/4.74 (4) 14.25/4.74 Obligation: 14.25/4.74 Termination Graph based on JBC Program: 14.25/4.74 FlattenRTA.main([Ljava/lang/String;)V: Graph of 190 nodes with 1 SCC. 14.25/4.74 14.25/4.74 14.25/4.74 14.25/4.74 Tree.createTree()LTree;: Graph of 240 nodes with 1 SCC. 14.25/4.74 14.25/4.74 14.25/4.74 14.25/4.74 FlattenRTA.flatten(LTreeList;)LIntList;: Graph of 142 nodes with 2 SCCs. 14.25/4.74 14.25/4.74 14.25/4.74 14.25/4.74 Tree.createNode()LTree;: Graph of 78 nodes with 0 SCCs. 14.25/4.74 14.25/4.74 14.25/4.74 14.25/4.74 14.25/4.74 14.25/4.74 ---------------------------------------- 14.25/4.74 14.25/4.74 (5) TerminationGraphToSCCProof (SOUND) 14.25/4.74 Splitted TerminationGraph to 4 SCCss. 14.25/4.74 ---------------------------------------- 14.25/4.74 14.25/4.74 (6) 14.25/4.74 Complex Obligation (AND) 14.25/4.74 14.25/4.74 ---------------------------------------- 14.25/4.74 14.25/4.74 (7) 14.25/4.74 Obligation: 14.25/4.74 SCC of termination graph based on JBC Program. 14.25/4.74 SCC contains nodes from the following methods: FlattenRTA.flatten(LTreeList;)LIntList; 14.25/4.74 SCC calls the following helper methods: 14.25/4.74 Performed SCC analyses: 14.25/4.74 *Used field analysis yielded the following read fields: 14.25/4.74 *TreeList: [value, next] 14.25/4.74 *Tree: [value, left, right] 14.25/4.74 *Marker field analysis yielded the following relations that could be markers: 14.25/4.74 14.25/4.74 ---------------------------------------- 14.25/4.74 14.25/4.74 (8) SCCToQDPProof (SOUND) 14.25/4.74 Transformed TerminationGraph SCC to QDP. Log: 14.25/4.74 Generated 57 rules for P and 0 rules for R.P rules: 14.25/4.74 f7708_0_flatten_Load(EOS(STATIC_7708), o3353) -> f7719_0_flatten_NULL(EOS(STATIC_7719), o3353, o3353) :|: TRUE 14.25/4.74 f7719_0_flatten_NULL(EOS(STATIC_7719), java.lang.Object(o3597sub), java.lang.Object(o3597sub)) -> f7725_0_flatten_NULL(EOS(STATIC_7725), java.lang.Object(o3597sub), java.lang.Object(o3597sub)) :|: TRUE 14.25/4.74 f7725_0_flatten_NULL(EOS(STATIC_7725), java.lang.Object(o3597sub), java.lang.Object(o3597sub)) -> f7733_0_flatten_Load(EOS(STATIC_7733), java.lang.Object(o3597sub)) :|: TRUE 14.25/4.74 f7733_0_flatten_Load(EOS(STATIC_7733), java.lang.Object(o3597sub)) -> f7740_0_flatten_FieldAccess(EOS(STATIC_7740), java.lang.Object(o3597sub), java.lang.Object(o3597sub)) :|: TRUE 14.25/4.74 f7740_0_flatten_FieldAccess(EOS(STATIC_7740), java.lang.Object(TreeList(EOC, o3716, o3717)), java.lang.Object(TreeList(EOC, o3716, o3717))) -> f7750_0_flatten_FieldAccess(EOS(STATIC_7750), java.lang.Object(TreeList(EOC, o3716, o3717)), java.lang.Object(TreeList(EOC, o3716, o3717))) :|: TRUE 14.25/4.74 f7750_0_flatten_FieldAccess(EOS(STATIC_7750), java.lang.Object(TreeList(EOC, o3716, o3717)), java.lang.Object(TreeList(EOC, o3716, o3717))) -> f7758_0_flatten_Store(EOS(STATIC_7758), java.lang.Object(TreeList(EOC, o3716, o3717)), o3716) :|: TRUE 14.25/4.74 f7758_0_flatten_Store(EOS(STATIC_7758), java.lang.Object(TreeList(EOC, o3716, o3717)), o3716) -> f7765_0_flatten_Load(EOS(STATIC_7765), java.lang.Object(TreeList(EOC, o3716, o3717)), o3716) :|: TRUE 14.25/4.74 f7765_0_flatten_Load(EOS(STATIC_7765), java.lang.Object(TreeList(EOC, o3716, o3717)), o3716) -> f7770_0_flatten_NULL(EOS(STATIC_7770), java.lang.Object(TreeList(EOC, o3716, o3717)), o3716, o3716) :|: TRUE 14.25/4.74 f7770_0_flatten_NULL(EOS(STATIC_7770), java.lang.Object(TreeList(EOC, java.lang.Object(o3849sub), o3717)), java.lang.Object(o3849sub), java.lang.Object(o3849sub)) -> f7775_0_flatten_NULL(EOS(STATIC_7775), java.lang.Object(TreeList(EOC, java.lang.Object(o3849sub), o3717)), java.lang.Object(o3849sub), java.lang.Object(o3849sub)) :|: TRUE 14.25/4.74 f7770_0_flatten_NULL(EOS(STATIC_7770), java.lang.Object(TreeList(EOC, NULL, o3717)), NULL, NULL) -> f7776_0_flatten_NULL(EOS(STATIC_7776), java.lang.Object(TreeList(EOC, NULL, o3717)), NULL, NULL) :|: TRUE 14.25/4.74 f7775_0_flatten_NULL(EOS(STATIC_7775), java.lang.Object(TreeList(EOC, java.lang.Object(o3849sub), o3717)), java.lang.Object(o3849sub), java.lang.Object(o3849sub)) -> f7779_0_flatten_Load(EOS(STATIC_7779), java.lang.Object(TreeList(EOC, java.lang.Object(o3849sub), o3717)), java.lang.Object(o3849sub)) :|: TRUE 14.25/4.74 f7779_0_flatten_Load(EOS(STATIC_7779), java.lang.Object(TreeList(EOC, java.lang.Object(o3849sub), o3717)), java.lang.Object(o3849sub)) -> f7781_0_flatten_Store(EOS(STATIC_7781), java.lang.Object(TreeList(EOC, java.lang.Object(o3849sub), o3717)), java.lang.Object(o3849sub)) :|: TRUE 14.25/4.74 f7781_0_flatten_Store(EOS(STATIC_7781), java.lang.Object(TreeList(EOC, java.lang.Object(o3849sub), o3717)), java.lang.Object(o3849sub)) -> f7785_0_flatten_New(EOS(STATIC_7785), java.lang.Object(TreeList(EOC, java.lang.Object(o3849sub), o3717)), java.lang.Object(o3849sub)) :|: TRUE 14.25/4.74 f7785_0_flatten_New(EOS(STATIC_7785), java.lang.Object(TreeList(EOC, java.lang.Object(o3849sub), o3717)), java.lang.Object(o3849sub)) -> f7787_0_flatten_Duplicate(EOS(STATIC_7787), java.lang.Object(TreeList(EOC, java.lang.Object(o3849sub), o3717)), java.lang.Object(o3849sub)) :|: TRUE 14.25/4.74 f7787_0_flatten_Duplicate(EOS(STATIC_7787), java.lang.Object(TreeList(EOC, java.lang.Object(o3849sub), o3717)), java.lang.Object(o3849sub)) -> f7789_0_flatten_InvokeMethod(EOS(STATIC_7789), java.lang.Object(TreeList(EOC, java.lang.Object(o3849sub), o3717)), java.lang.Object(o3849sub)) :|: TRUE 14.25/4.74 f7789_0_flatten_InvokeMethod(EOS(STATIC_7789), java.lang.Object(TreeList(EOC, java.lang.Object(o3849sub), o3717)), java.lang.Object(o3849sub)) -> f7790_0__init__Load(EOS(STATIC_7790), java.lang.Object(TreeList(EOC, java.lang.Object(o3849sub), o3717)), java.lang.Object(o3849sub)) :|: TRUE 14.25/4.74 f7790_0__init__Load(EOS(STATIC_7790), java.lang.Object(TreeList(EOC, java.lang.Object(o3849sub), o3717)), java.lang.Object(o3849sub)) -> f7791_0__init__InvokeMethod(EOS(STATIC_7791), java.lang.Object(TreeList(EOC, java.lang.Object(o3849sub), o3717)), java.lang.Object(o3849sub)) :|: TRUE 14.25/4.74 f7791_0__init__InvokeMethod(EOS(STATIC_7791), java.lang.Object(TreeList(EOC, java.lang.Object(o3849sub), o3717)), java.lang.Object(o3849sub)) -> f7792_0__init__Return(EOS(STATIC_7792), java.lang.Object(TreeList(EOC, java.lang.Object(o3849sub), o3717)), java.lang.Object(o3849sub)) :|: TRUE 14.25/4.74 f7792_0__init__Return(EOS(STATIC_7792), java.lang.Object(TreeList(EOC, java.lang.Object(o3849sub), o3717)), java.lang.Object(o3849sub)) -> f7793_0_flatten_Store(EOS(STATIC_7793), java.lang.Object(TreeList(EOC, java.lang.Object(o3849sub), o3717)), java.lang.Object(o3849sub)) :|: TRUE 14.25/4.74 f7793_0_flatten_Store(EOS(STATIC_7793), java.lang.Object(TreeList(EOC, java.lang.Object(o3849sub), o3717)), java.lang.Object(o3849sub)) -> f7794_0_flatten_Load(EOS(STATIC_7794), java.lang.Object(TreeList(EOC, java.lang.Object(o3849sub), o3717)), java.lang.Object(o3849sub)) :|: TRUE 14.25/4.74 f7794_0_flatten_Load(EOS(STATIC_7794), java.lang.Object(TreeList(EOC, java.lang.Object(o3849sub), o3717)), java.lang.Object(o3849sub)) -> f7795_0_flatten_Load(EOS(STATIC_7795), java.lang.Object(TreeList(EOC, java.lang.Object(o3849sub), o3717)), java.lang.Object(o3849sub)) :|: TRUE 14.25/4.74 f7795_0_flatten_Load(EOS(STATIC_7795), java.lang.Object(TreeList(EOC, java.lang.Object(o3849sub), o3717)), java.lang.Object(o3849sub)) -> f7796_0_flatten_FieldAccess(EOS(STATIC_7796), java.lang.Object(TreeList(EOC, java.lang.Object(o3849sub), o3717)), java.lang.Object(o3849sub), java.lang.Object(o3849sub)) :|: TRUE 14.25/4.74 f7796_0_flatten_FieldAccess(EOS(STATIC_7796), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2737, o3981, o3982)), o3717)), java.lang.Object(Tree(EOC, i2737, o3981, o3982)), java.lang.Object(Tree(EOC, i2737, o3981, o3982))) -> f7797_0_flatten_FieldAccess(EOS(STATIC_7797), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2737, o3981, o3982)), o3717)), java.lang.Object(Tree(EOC, i2737, o3981, o3982)), java.lang.Object(Tree(EOC, i2737, o3981, o3982))) :|: TRUE 14.25/4.74 f7797_0_flatten_FieldAccess(EOS(STATIC_7797), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2737, o3981, o3982)), o3717)), java.lang.Object(Tree(EOC, i2737, o3981, o3982)), java.lang.Object(Tree(EOC, i2737, o3981, o3982))) -> f7798_0_flatten_FieldAccess(EOS(STATIC_7798), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2737, o3981, o3982)), o3717)), java.lang.Object(Tree(EOC, i2737, o3981, o3982))) :|: TRUE 14.25/4.74 f7798_0_flatten_FieldAccess(EOS(STATIC_7798), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2737, o3981, o3982)), o3717)), java.lang.Object(Tree(EOC, i2737, o3981, o3982))) -> f7799_0_flatten_Load(EOS(STATIC_7799), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2737, o3981, o3982)), o3717)), java.lang.Object(Tree(EOC, i2737, o3981, o3982))) :|: TRUE 14.25/4.74 f7799_0_flatten_Load(EOS(STATIC_7799), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2737, o3981, o3982)), o3717)), java.lang.Object(Tree(EOC, i2737, o3981, o3982))) -> f7800_0_flatten_Load(EOS(STATIC_7800), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2737, o3981, o3982)), o3717)), java.lang.Object(Tree(EOC, i2737, o3981, o3982))) :|: TRUE 14.25/4.74 f7800_0_flatten_Load(EOS(STATIC_7800), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2737, o3981, o3982)), o3717)), java.lang.Object(Tree(EOC, i2737, o3981, o3982))) -> f7801_0_flatten_FieldAccess(EOS(STATIC_7801), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2737, o3981, o3982)), o3717)), java.lang.Object(Tree(EOC, i2737, o3981, o3982))) :|: TRUE 14.25/4.74 f7801_0_flatten_FieldAccess(EOS(STATIC_7801), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2737, o3981, o3982)), o3717)), java.lang.Object(Tree(EOC, i2737, o3981, o3982))) -> f7802_0_flatten_Load(EOS(STATIC_7802), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2737, o3981, o3982)), o3717)), java.lang.Object(Tree(EOC, i2737, o3981, o3982))) :|: TRUE 14.25/4.74 f7802_0_flatten_Load(EOS(STATIC_7802), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2737, o3981, o3982)), o3717)), java.lang.Object(Tree(EOC, i2737, o3981, o3982))) -> f7803_0_flatten_Store(EOS(STATIC_7803), java.lang.Object(Tree(EOC, i2737, o3981, o3982)), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2737, o3981, o3982)), o3717))) :|: TRUE 14.25/4.74 f7803_0_flatten_Store(EOS(STATIC_7803), java.lang.Object(Tree(EOC, i2737, o3981, o3982)), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2737, o3981, o3982)), o3717))) -> f7804_0_flatten_New(EOS(STATIC_7804), java.lang.Object(Tree(EOC, i2737, o3981, o3982)), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2737, o3981, o3982)), o3717))) :|: TRUE 14.25/4.74 f7804_0_flatten_New(EOS(STATIC_7804), java.lang.Object(Tree(EOC, i2737, o3981, o3982)), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2737, o3981, o3982)), o3717))) -> f7805_0_flatten_Duplicate(EOS(STATIC_7805), java.lang.Object(Tree(EOC, i2737, o3981, o3982)), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2737, o3981, o3982)), o3717)), java.lang.Object(TreeList(EOC, NULL, NULL))) :|: TRUE 14.25/4.74 f7805_0_flatten_Duplicate(EOS(STATIC_7805), java.lang.Object(Tree(EOC, i2737, o3981, o3982)), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2737, o3981, o3982)), o3717)), java.lang.Object(TreeList(EOC, NULL, NULL))) -> f7806_0_flatten_InvokeMethod(EOS(STATIC_7806), java.lang.Object(Tree(EOC, i2737, o3981, o3982)), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2737, o3981, o3982)), o3717)), java.lang.Object(TreeList(EOC, NULL, NULL)), java.lang.Object(TreeList(EOC, NULL, NULL))) :|: TRUE 14.25/4.74 f7806_0_flatten_InvokeMethod(EOS(STATIC_7806), java.lang.Object(Tree(EOC, i2737, o3981, o3982)), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2737, o3981, o3982)), o3717)), java.lang.Object(TreeList(EOC, NULL, NULL)), java.lang.Object(TreeList(EOC, NULL, NULL))) -> f7807_0__init__Load(EOS(STATIC_7807), java.lang.Object(Tree(EOC, i2737, o3981, o3982)), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2737, o3981, o3982)), o3717)), java.lang.Object(TreeList(EOC, NULL, NULL)), java.lang.Object(TreeList(EOC, NULL, NULL))) :|: TRUE 14.25/4.74 f7807_0__init__Load(EOS(STATIC_7807), java.lang.Object(Tree(EOC, i2737, o3981, o3982)), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2737, o3981, o3982)), o3717)), java.lang.Object(TreeList(EOC, NULL, NULL)), java.lang.Object(TreeList(EOC, NULL, NULL))) -> f7808_0__init__InvokeMethod(EOS(STATIC_7808), java.lang.Object(Tree(EOC, i2737, o3981, o3982)), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2737, o3981, o3982)), o3717)), java.lang.Object(TreeList(EOC, NULL, NULL)), java.lang.Object(TreeList(EOC, NULL, NULL))) :|: TRUE 14.25/4.74 f7808_0__init__InvokeMethod(EOS(STATIC_7808), java.lang.Object(Tree(EOC, i2737, o3981, o3982)), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2737, o3981, o3982)), o3717)), java.lang.Object(TreeList(EOC, NULL, NULL)), java.lang.Object(TreeList(EOC, NULL, NULL))) -> f7809_0__init__Return(EOS(STATIC_7809), java.lang.Object(Tree(EOC, i2737, o3981, o3982)), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2737, o3981, o3982)), o3717)), java.lang.Object(TreeList(EOC, NULL, NULL))) :|: TRUE 14.25/4.74 f7809_0__init__Return(EOS(STATIC_7809), java.lang.Object(Tree(EOC, i2737, o3981, o3982)), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2737, o3981, o3982)), o3717)), java.lang.Object(TreeList(EOC, NULL, NULL))) -> f7810_0_flatten_Store(EOS(STATIC_7810), java.lang.Object(Tree(EOC, i2737, o3981, o3982)), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2737, o3981, o3982)), o3717)), java.lang.Object(TreeList(EOC, NULL, NULL))) :|: TRUE 14.25/4.74 f7810_0_flatten_Store(EOS(STATIC_7810), java.lang.Object(Tree(EOC, i2737, o3981, o3982)), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2737, o3981, o3982)), o3717)), java.lang.Object(TreeList(EOC, NULL, NULL))) -> f7811_0_flatten_Load(EOS(STATIC_7811), java.lang.Object(TreeList(EOC, NULL, NULL)), java.lang.Object(Tree(EOC, i2737, o3981, o3982)), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2737, o3981, o3982)), o3717))) :|: TRUE 14.25/4.74 f7811_0_flatten_Load(EOS(STATIC_7811), java.lang.Object(TreeList(EOC, NULL, NULL)), java.lang.Object(Tree(EOC, i2737, o3981, o3982)), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2737, o3981, o3982)), o3717))) -> f7812_0_flatten_Load(EOS(STATIC_7812), java.lang.Object(TreeList(EOC, NULL, NULL)), java.lang.Object(Tree(EOC, i2737, o3981, o3982)), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2737, o3981, o3982)), o3717)), java.lang.Object(TreeList(EOC, NULL, NULL))) :|: TRUE 14.25/4.74 f7812_0_flatten_Load(EOS(STATIC_7812), java.lang.Object(TreeList(EOC, NULL, NULL)), java.lang.Object(Tree(EOC, i2737, o3981, o3982)), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2737, o3981, o3982)), o3717)), java.lang.Object(TreeList(EOC, NULL, NULL))) -> f7813_0_flatten_FieldAccess(EOS(STATIC_7813), java.lang.Object(TreeList(EOC, NULL, NULL)), java.lang.Object(Tree(EOC, i2737, o3981, o3982)), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2737, o3981, o3982)), o3717)), java.lang.Object(TreeList(EOC, NULL, NULL)), java.lang.Object(Tree(EOC, i2737, o3981, o3982))) :|: TRUE 14.25/4.74 f7813_0_flatten_FieldAccess(EOS(STATIC_7813), java.lang.Object(TreeList(EOC, NULL, NULL)), java.lang.Object(Tree(EOC, i2737, o3981, o3982)), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2737, o3981, o3982)), o3717)), java.lang.Object(TreeList(EOC, NULL, NULL)), java.lang.Object(Tree(EOC, i2737, o3981, o3982))) -> f7814_0_flatten_FieldAccess(EOS(STATIC_7814), java.lang.Object(TreeList(EOC, NULL, NULL)), java.lang.Object(Tree(EOC, i2737, o3981, o3982)), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2737, o3981, o3982)), o3717)), java.lang.Object(TreeList(EOC, NULL, NULL)), o3981) :|: TRUE 14.25/4.74 f7814_0_flatten_FieldAccess(EOS(STATIC_7814), java.lang.Object(TreeList(EOC, NULL, NULL)), java.lang.Object(Tree(EOC, i2737, o3981, o3982)), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2737, o3981, o3982)), o3717)), java.lang.Object(TreeList(EOC, NULL, NULL)), o3981) -> f7815_0_flatten_Load(EOS(STATIC_7815), java.lang.Object(TreeList(EOC, o3981, NULL)), java.lang.Object(Tree(EOC, i2737, o3981, o3982)), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2737, o3981, o3982)), o3717))) :|: TRUE 14.25/4.74 f7815_0_flatten_Load(EOS(STATIC_7815), java.lang.Object(TreeList(EOC, o3981, NULL)), java.lang.Object(Tree(EOC, i2737, o3981, o3982)), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2737, o3981, o3982)), o3717))) -> f7816_0_flatten_Load(EOS(STATIC_7816), java.lang.Object(TreeList(EOC, o3981, NULL)), java.lang.Object(Tree(EOC, i2737, o3981, o3982)), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2737, o3981, o3982)), o3717)), java.lang.Object(TreeList(EOC, o3981, NULL))) :|: TRUE 14.25/4.74 f7816_0_flatten_Load(EOS(STATIC_7816), java.lang.Object(TreeList(EOC, o3981, NULL)), java.lang.Object(Tree(EOC, i2737, o3981, o3982)), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2737, o3981, o3982)), o3717)), java.lang.Object(TreeList(EOC, o3981, NULL))) -> f7817_0_flatten_FieldAccess(EOS(STATIC_7817), java.lang.Object(TreeList(EOC, o3981, NULL)), java.lang.Object(Tree(EOC, i2737, o3981, o3982)), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2737, o3981, o3982)), o3717)), java.lang.Object(TreeList(EOC, o3981, NULL)), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2737, o3981, o3982)), o3717))) :|: TRUE 14.25/4.74 f7817_0_flatten_FieldAccess(EOS(STATIC_7817), java.lang.Object(TreeList(EOC, o3981, NULL)), java.lang.Object(Tree(EOC, i2737, o3981, o3982)), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2737, o3981, o3982)), o3717)), java.lang.Object(TreeList(EOC, o3981, NULL)), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2737, o3981, o3982)), o3717))) -> f7818_0_flatten_Load(EOS(STATIC_7818), java.lang.Object(TreeList(EOC, o3981, java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2737, o3981, o3982)), o3717)))), java.lang.Object(Tree(EOC, i2737, o3981, o3982)), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2737, o3981, o3982)), o3717))) :|: TRUE 14.25/4.74 f7818_0_flatten_Load(EOS(STATIC_7818), java.lang.Object(TreeList(EOC, o3981, java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2737, o3981, o3982)), o3717)))), java.lang.Object(Tree(EOC, i2737, o3981, o3982)), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2737, o3981, o3982)), o3717))) -> f7819_0_flatten_Load(EOS(STATIC_7819), java.lang.Object(TreeList(EOC, o3981, java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2737, o3981, o3982)), o3717)))), java.lang.Object(Tree(EOC, i2737, o3981, o3982)), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2737, o3981, o3982)), o3717))) :|: TRUE 14.25/4.74 f7819_0_flatten_Load(EOS(STATIC_7819), java.lang.Object(TreeList(EOC, o3981, java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2737, o3981, o3982)), o3717)))), java.lang.Object(Tree(EOC, i2737, o3981, o3982)), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2737, o3981, o3982)), o3717))) -> f7820_0_flatten_FieldAccess(EOS(STATIC_7820), java.lang.Object(TreeList(EOC, o3981, java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2737, o3981, o3982)), o3717)))), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2737, o3981, o3982)), o3717)), java.lang.Object(Tree(EOC, i2737, o3981, o3982))) :|: TRUE 14.25/4.74 f7820_0_flatten_FieldAccess(EOS(STATIC_7820), java.lang.Object(TreeList(EOC, o3981, java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2737, o3981, o3982)), o3717)))), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2737, o3981, o3982)), o3717)), java.lang.Object(Tree(EOC, i2737, o3981, o3982))) -> f7821_0_flatten_FieldAccess(EOS(STATIC_7821), java.lang.Object(TreeList(EOC, o3981, java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2737, o3981, o3982)), o3717)))), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2737, o3981, o3982)), o3717)), o3982) :|: TRUE 14.25/4.74 f7821_0_flatten_FieldAccess(EOS(STATIC_7821), java.lang.Object(TreeList(EOC, o3981, java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2737, o3981, o3982)), o3717)))), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2737, o3981, o3982)), o3717)), o3982) -> f7822_0_flatten_JMP(EOS(STATIC_7822), java.lang.Object(TreeList(EOC, o3981, java.lang.Object(TreeList(EOC, o3982, o3717))))) :|: TRUE 14.25/4.74 f7822_0_flatten_JMP(EOS(STATIC_7822), java.lang.Object(TreeList(EOC, o3981, java.lang.Object(TreeList(EOC, o3982, o3717))))) -> f7823_0_flatten_JMP(EOS(STATIC_7823), java.lang.Object(TreeList(EOC, o3981, java.lang.Object(TreeList(EOC, o3982, o3717))))) :|: TRUE 14.25/4.74 f7823_0_flatten_JMP(EOS(STATIC_7823), java.lang.Object(TreeList(EOC, o3981, java.lang.Object(TreeList(EOC, o3982, o3717))))) -> f7824_0_flatten_Load(EOS(STATIC_7824), java.lang.Object(TreeList(EOC, o3981, java.lang.Object(TreeList(EOC, o3982, o3717))))) :|: TRUE 14.25/4.74 f7824_0_flatten_Load(EOS(STATIC_7824), java.lang.Object(TreeList(EOC, o3981, java.lang.Object(TreeList(EOC, o3982, o3717))))) -> f7708_0_flatten_Load(EOS(STATIC_7708), java.lang.Object(TreeList(EOC, o3981, java.lang.Object(TreeList(EOC, o3982, o3717))))) :|: TRUE 14.25/4.74 f7776_0_flatten_NULL(EOS(STATIC_7776), java.lang.Object(TreeList(EOC, NULL, o3717)), NULL, NULL) -> f7780_0_flatten_Load(EOS(STATIC_7780), java.lang.Object(TreeList(EOC, NULL, o3717))) :|: TRUE 14.25/4.74 f7780_0_flatten_Load(EOS(STATIC_7780), java.lang.Object(TreeList(EOC, NULL, o3717))) -> f7782_0_flatten_FieldAccess(EOS(STATIC_7782), java.lang.Object(TreeList(EOC, NULL, o3717))) :|: TRUE 14.25/4.74 f7782_0_flatten_FieldAccess(EOS(STATIC_7782), java.lang.Object(TreeList(EOC, NULL, o3717))) -> f7786_0_flatten_Store(EOS(STATIC_7786), o3717) :|: TRUE 14.25/4.74 f7786_0_flatten_Store(EOS(STATIC_7786), o3717) -> f7788_0_flatten_JMP(EOS(STATIC_7788), o3717) :|: TRUE 14.25/4.74 f7788_0_flatten_JMP(EOS(STATIC_7788), o3717) -> f7704_0_flatten_JMP(EOS(STATIC_7704), o3717) :|: TRUE 14.25/4.74 f7704_0_flatten_JMP(EOS(STATIC_7704), o3353) -> f7708_0_flatten_Load(EOS(STATIC_7708), o3353) :|: TRUE 14.25/4.74 R rules: 14.25/4.74 Combined rules. Obtained 2 conditional rules for P and 0 conditional rules for R.P rules: 14.25/4.74 f7708_0_flatten_Load(EOS(STATIC_7708), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2737:0, o3981:0, o3982:0)), o3717:0))) -> f7708_0_flatten_Load(EOS(STATIC_7708), java.lang.Object(TreeList(EOC, o3981:0, java.lang.Object(TreeList(EOC, o3982:0, o3717:0))))) :|: TRUE 14.25/4.74 f7708_0_flatten_Load(EOS(STATIC_7708), java.lang.Object(TreeList(EOC, NULL, o3717:0))) -> f7708_0_flatten_Load(EOS(STATIC_7708), o3717:0) :|: TRUE 14.25/4.74 R rules: 14.25/4.74 Filtered ground terms: 14.25/4.74 f7708_0_flatten_Load(x1, x2) -> f7708_0_flatten_Load(x2) 14.25/4.74 EOS(x1) -> EOS 14.25/4.74 TreeList(x1, x2, x3) -> TreeList(x2, x3) 14.25/4.74 Tree(x1, x2, x3, x4) -> Tree(x2, x3, x4) 14.25/4.74 Filtered unneeded arguments: 14.25/4.74 Tree(x1, x2, x3) -> Tree(x2, x3) 14.25/4.74 Combined rules. Obtained 2 conditional rules for P and 0 conditional rules for R.P rules: 14.25/4.74 F7708_0_FLATTEN_LOAD(java.lang.Object(TreeList(java.lang.Object(Tree(o3981:0:0, o3982:0:0)), o3717:0:0))) -> F7708_0_FLATTEN_LOAD(java.lang.Object(TreeList(o3981:0:0, java.lang.Object(TreeList(o3982:0:0, o3717:0:0))))) :|: TRUE 14.25/4.74 F7708_0_FLATTEN_LOAD(java.lang.Object(TreeList(NULL, o3717:0:0))) -> F7708_0_FLATTEN_LOAD(o3717:0:0) :|: TRUE 14.25/4.74 R rules: 14.25/4.74 14.25/4.74 ---------------------------------------- 14.25/4.74 14.25/4.74 (9) 14.25/4.74 Obligation: 14.25/4.74 Q DP problem: 14.25/4.74 The TRS P consists of the following rules: 14.25/4.74 14.25/4.74 F7708_0_FLATTEN_LOAD(java.lang.Object(TreeList(java.lang.Object(Tree(o3981:0:0, o3982:0:0)), o3717:0:0))) -> F7708_0_FLATTEN_LOAD(java.lang.Object(TreeList(o3981:0:0, java.lang.Object(TreeList(o3982:0:0, o3717:0:0))))) 14.25/4.74 F7708_0_FLATTEN_LOAD(java.lang.Object(TreeList(NULL, o3717:0:0))) -> F7708_0_FLATTEN_LOAD(o3717:0:0) 14.25/4.74 14.25/4.74 R is empty. 14.25/4.74 Q is empty. 14.25/4.74 We have to consider all minimal (P,Q,R)-chains. 14.25/4.74 ---------------------------------------- 14.25/4.74 14.25/4.74 (10) UsableRulesReductionPairsProof (EQUIVALENT) 14.25/4.74 By using the usable rules with reduction pair processor [LPAR04] with a polynomial ordering [POLO], all dependency pairs and the corresponding usable rules [FROCOS05] can be oriented non-strictly. All non-usable rules are removed, and those dependency pairs and usable rules that have been oriented strictly or contain non-usable symbols in their left-hand side are removed as well. 14.25/4.74 14.25/4.74 The following dependency pairs can be deleted: 14.25/4.74 14.25/4.74 F7708_0_FLATTEN_LOAD(java.lang.Object(TreeList(java.lang.Object(Tree(o3981:0:0, o3982:0:0)), o3717:0:0))) -> F7708_0_FLATTEN_LOAD(java.lang.Object(TreeList(o3981:0:0, java.lang.Object(TreeList(o3982:0:0, o3717:0:0))))) 14.25/4.74 F7708_0_FLATTEN_LOAD(java.lang.Object(TreeList(NULL, o3717:0:0))) -> F7708_0_FLATTEN_LOAD(o3717:0:0) 14.25/4.74 No rules are removed from R. 14.25/4.74 14.25/4.74 Used ordering: POLO with Polynomial interpretation [POLO]: 14.25/4.74 14.25/4.74 POL(F7708_0_FLATTEN_LOAD(x_1)) = 2*x_1 14.25/4.74 POL(NULL) = 0 14.25/4.74 POL(Tree(x_1, x_2)) = 1 + 2*x_1 + 2*x_2 14.25/4.74 POL(TreeList(x_1, x_2)) = x_1 + x_2 14.25/4.74 POL(java.lang.Object(x_1)) = x_1 14.25/4.74 14.25/4.74 14.25/4.74 ---------------------------------------- 14.25/4.74 14.25/4.74 (11) 14.25/4.74 Obligation: 14.25/4.74 Q DP problem: 14.25/4.74 P is empty. 14.25/4.74 R is empty. 14.25/4.74 Q is empty. 14.25/4.74 We have to consider all minimal (P,Q,R)-chains. 14.25/4.74 ---------------------------------------- 14.25/4.74 14.25/4.74 (12) PisEmptyProof (EQUIVALENT) 14.25/4.74 The TRS P is empty. Hence, there is no (P,Q,R) chain. 14.25/4.74 ---------------------------------------- 14.25/4.74 14.25/4.74 (13) 14.25/4.74 YES 14.25/4.74 14.25/4.74 ---------------------------------------- 14.25/4.74 14.25/4.74 (14) 14.25/4.74 Obligation: 14.25/4.74 SCC of termination graph based on JBC Program. 14.25/4.74 SCC contains nodes from the following methods: FlattenRTA.flatten(LTreeList;)LIntList; 14.25/4.74 SCC calls the following helper methods: 14.25/4.74 Performed SCC analyses: 14.25/4.74 *Used field analysis yielded the following read fields: 14.25/4.74 *TreeList: [value, next] 14.25/4.74 *Marker field analysis yielded the following relations that could be markers: 14.25/4.74 14.25/4.74 ---------------------------------------- 14.25/4.74 14.25/4.74 (15) SCCToQDPProof (SOUND) 14.25/4.74 Transformed TerminationGraph SCC to QDP. Log: 14.25/4.74 Generated 15 rules for P and 0 rules for R.P rules: 14.25/4.74 f6670_0_flatten_NULL(EOS(STATIC_6670), java.lang.Object(o1109sub), NULL, java.lang.Object(o1109sub)) -> f6675_0_flatten_NULL(EOS(STATIC_6675), java.lang.Object(o1109sub), NULL, java.lang.Object(o1109sub)) :|: TRUE 14.25/4.74 f6675_0_flatten_NULL(EOS(STATIC_6675), java.lang.Object(o1109sub), NULL, java.lang.Object(o1109sub)) -> f6680_0_flatten_Load(EOS(STATIC_6680), java.lang.Object(o1109sub), NULL) :|: TRUE 14.25/4.74 f6680_0_flatten_Load(EOS(STATIC_6680), java.lang.Object(o1109sub), NULL) -> f6685_0_flatten_FieldAccess(EOS(STATIC_6685), java.lang.Object(o1109sub), NULL, java.lang.Object(o1109sub)) :|: TRUE 14.25/4.74 f6685_0_flatten_FieldAccess(EOS(STATIC_6685), java.lang.Object(TreeList(EOC, o1119, o1120)), NULL, java.lang.Object(TreeList(EOC, o1119, o1120))) -> f6689_0_flatten_FieldAccess(EOS(STATIC_6689), java.lang.Object(TreeList(EOC, o1119, o1120)), NULL, java.lang.Object(TreeList(EOC, o1119, o1120))) :|: TRUE 14.25/4.74 f6689_0_flatten_FieldAccess(EOS(STATIC_6689), java.lang.Object(TreeList(EOC, o1119, o1120)), NULL, java.lang.Object(TreeList(EOC, o1119, o1120))) -> f6693_0_flatten_Store(EOS(STATIC_6693), java.lang.Object(TreeList(EOC, o1119, o1120)), NULL, o1119) :|: TRUE 14.25/4.74 f6693_0_flatten_Store(EOS(STATIC_6693), java.lang.Object(TreeList(EOC, o1119, o1120)), NULL, o1119) -> f6699_0_flatten_Load(EOS(STATIC_6699), java.lang.Object(TreeList(EOC, o1119, o1120)), NULL, o1119) :|: TRUE 14.25/4.74 f6699_0_flatten_Load(EOS(STATIC_6699), java.lang.Object(TreeList(EOC, o1119, o1120)), NULL, o1119) -> f6704_0_flatten_NULL(EOS(STATIC_6704), java.lang.Object(TreeList(EOC, o1119, o1120)), NULL, o1119, o1119) :|: TRUE 14.25/4.74 f6704_0_flatten_NULL(EOS(STATIC_6704), java.lang.Object(TreeList(EOC, NULL, o1120)), NULL, NULL, NULL) -> f6711_0_flatten_NULL(EOS(STATIC_6711), java.lang.Object(TreeList(EOC, NULL, o1120)), NULL, NULL, NULL) :|: TRUE 14.25/4.74 f6711_0_flatten_NULL(EOS(STATIC_6711), java.lang.Object(TreeList(EOC, NULL, o1120)), NULL, NULL, NULL) -> f6718_0_flatten_Load(EOS(STATIC_6718), java.lang.Object(TreeList(EOC, NULL, o1120)), NULL) :|: TRUE 14.25/4.74 f6718_0_flatten_Load(EOS(STATIC_6718), java.lang.Object(TreeList(EOC, NULL, o1120)), NULL) -> f6723_0_flatten_FieldAccess(EOS(STATIC_6723), NULL, java.lang.Object(TreeList(EOC, NULL, o1120))) :|: TRUE 14.25/4.74 f6723_0_flatten_FieldAccess(EOS(STATIC_6723), NULL, java.lang.Object(TreeList(EOC, NULL, o1120))) -> f6731_0_flatten_Store(EOS(STATIC_6731), NULL, o1120) :|: TRUE 14.25/4.74 f6731_0_flatten_Store(EOS(STATIC_6731), NULL, o1120) -> f6737_0_flatten_JMP(EOS(STATIC_6737), o1120, NULL) :|: TRUE 14.25/4.74 f6737_0_flatten_JMP(EOS(STATIC_6737), o1120, NULL) -> f6743_0_flatten_Load(EOS(STATIC_6743), o1120, NULL) :|: TRUE 14.25/4.74 f6743_0_flatten_Load(EOS(STATIC_6743), o1120, NULL) -> f6664_0_flatten_Load(EOS(STATIC_6664), o1120, NULL) :|: TRUE 14.25/4.74 f6664_0_flatten_Load(EOS(STATIC_6664), o1098, NULL) -> f6670_0_flatten_NULL(EOS(STATIC_6670), o1098, NULL, o1098) :|: TRUE 14.25/4.74 R rules: 14.25/4.74 Combined rules. Obtained 1 conditional rules for P and 0 conditional rules for R.P rules: 14.25/4.74 f6670_0_flatten_NULL(EOS(STATIC_6670), java.lang.Object(TreeList(EOC, NULL, o1120:0)), NULL, java.lang.Object(TreeList(EOC, NULL, o1120:0))) -> f6670_0_flatten_NULL(EOS(STATIC_6670), o1120:0, NULL, o1120:0) :|: TRUE 14.25/4.74 R rules: 14.25/4.74 Filtered ground terms: 14.25/4.74 f6670_0_flatten_NULL(x1, x2, x3, x4) -> f6670_0_flatten_NULL(x2, x4) 14.25/4.74 EOS(x1) -> EOS 14.25/4.74 TreeList(x1, x2, x3) -> TreeList(x3) 14.25/4.74 Filtered duplicate args: 14.25/4.74 f6670_0_flatten_NULL(x1, x2) -> f6670_0_flatten_NULL(x2) 14.25/4.74 Combined rules. Obtained 1 conditional rules for P and 0 conditional rules for R.P rules: 14.25/4.74 F6670_0_FLATTEN_NULL(java.lang.Object(TreeList(o1120:0:0))) -> F6670_0_FLATTEN_NULL(o1120:0:0) :|: TRUE 14.25/4.74 R rules: 14.25/4.74 14.25/4.74 ---------------------------------------- 14.25/4.74 14.25/4.74 (16) 14.25/4.74 Obligation: 14.25/4.74 Q DP problem: 14.25/4.74 The TRS P consists of the following rules: 14.25/4.74 14.25/4.74 F6670_0_FLATTEN_NULL(java.lang.Object(TreeList(o1120:0:0))) -> F6670_0_FLATTEN_NULL(o1120:0:0) 14.25/4.74 14.25/4.74 R is empty. 14.25/4.74 Q is empty. 14.25/4.74 We have to consider all minimal (P,Q,R)-chains. 14.25/4.74 ---------------------------------------- 14.25/4.74 14.25/4.74 (17) QDPSizeChangeProof (EQUIVALENT) 14.25/4.74 By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. 14.25/4.74 14.25/4.74 From the DPs we obtained the following set of size-change graphs: 14.25/4.74 *F6670_0_FLATTEN_NULL(java.lang.Object(TreeList(o1120:0:0))) -> F6670_0_FLATTEN_NULL(o1120:0:0) 14.25/4.74 The graph contains the following edges 1 > 1 14.25/4.74 14.25/4.74 14.25/4.74 ---------------------------------------- 14.25/4.74 14.25/4.74 (18) 14.25/4.74 YES 14.25/4.74 14.25/4.74 ---------------------------------------- 14.25/4.74 14.25/4.74 (19) 14.25/4.74 Obligation: 14.25/4.74 SCC of termination graph based on JBC Program. 14.25/4.74 SCC contains nodes from the following methods: Tree.createTree()LTree; 14.25/4.74 SCC calls the following helper methods: Tree.createNode()LTree; 14.25/4.74 Performed SCC analyses: 14.25/4.74 *Used field analysis yielded the following read fields: 14.25/4.74 *java.lang.String: [count] 14.25/4.74 *Tree: [right, left] 14.25/4.74 *Marker field analysis yielded the following relations that could be markers: 14.25/4.74 14.25/4.74 ---------------------------------------- 14.25/4.74 14.25/4.74 (20) SCCToIRSProof (SOUND) 14.25/4.74 Transformed FIGraph SCCs to intTRSs. Log: 14.25/4.74 Generated rules. Obtained 93 IRulesP rules: 14.25/4.74 f7522_0_createTree_LE(EOS(STATIC_7522(java.lang.Object(ARRAY(i2386)), i2387)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(o3047sub), i2397) -> f7525_0_createTree_LE(EOS(STATIC_7525(java.lang.Object(ARRAY(i2386)), i2387)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(o3047sub), i2397) :|: TRUE 14.25/4.74 f7525_0_createTree_LE(EOS(STATIC_7525(java.lang.Object(ARRAY(i2386)), i2387)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(o3047sub), i2397) -> f7528_0_createTree_InvokeMethod(EOS(STATIC_7528(java.lang.Object(ARRAY(i2386)), i2387)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(o3047sub)) :|: i2397 > 0 14.25/4.74 f7528_0_createTree_InvokeMethod(EOS(STATIC_7528(java.lang.Object(ARRAY(i2386)), i2387)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(o3047sub)) -> f7531_0_random_FieldAccess(EOS(STATIC_7531(java.lang.Object(ARRAY(i2386)), i2387)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(o3047sub)) :|: TRUE 14.25/4.74 f7531_0_random_FieldAccess(EOS(STATIC_7531(java.lang.Object(ARRAY(i2386)), i2387)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(o3047sub)) -> f7535_0_random_FieldAccess(EOS(STATIC_7535(java.lang.Object(ARRAY(i2386)), i2387)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(o3047sub), java.lang.Object(ARRAY(i2386))) :|: TRUE 14.25/4.74 f7535_0_random_FieldAccess(EOS(STATIC_7535(java.lang.Object(ARRAY(i2386)), i2387)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(o3047sub), java.lang.Object(ARRAY(i2386))) -> f7539_0_random_ArrayAccess(EOS(STATIC_7539(java.lang.Object(ARRAY(i2386)), i2387)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(o3047sub), java.lang.Object(ARRAY(i2386)), i2387) :|: TRUE 14.25/4.74 f7539_0_random_ArrayAccess(EOS(STATIC_7539(java.lang.Object(ARRAY(i2386)), i2387)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(o3047sub), java.lang.Object(ARRAY(i2386)), i2387) -> f7542_0_random_ArrayAccess(EOS(STATIC_7542(java.lang.Object(ARRAY(i2386)), i2387)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(o3047sub), java.lang.Object(ARRAY(i2386)), i2387) :|: TRUE 14.25/4.74 f7542_0_random_ArrayAccess(EOS(STATIC_7542(java.lang.Object(ARRAY(i2386)), i2387)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(o3047sub), java.lang.Object(ARRAY(i2386)), i2387) -> f7545_0_random_Store(EOS(STATIC_7545(java.lang.Object(ARRAY(i2386)), i2387)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(o3047sub), o3131) :|: TRUE 14.25/4.74 f7545_0_random_Store(EOS(STATIC_7545(java.lang.Object(ARRAY(i2386)), i2387)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(o3047sub), o3131) -> f7549_0_random_FieldAccess(EOS(STATIC_7549(java.lang.Object(ARRAY(i2386)), i2387)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(o3047sub), o3131) :|: TRUE 14.25/4.74 f7549_0_random_FieldAccess(EOS(STATIC_7549(java.lang.Object(ARRAY(i2386)), i2387)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(o3047sub), o3131) -> f7552_0_random_ConstantStackPush(EOS(STATIC_7552(java.lang.Object(ARRAY(i2386)), i2387)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(o3047sub), o3131, i2387) :|: TRUE 14.25/4.74 f7552_0_random_ConstantStackPush(EOS(STATIC_7552(java.lang.Object(ARRAY(i2386)), i2387)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(o3047sub), o3131, i2387) -> f7556_0_random_IntArithmetic(EOS(STATIC_7556(java.lang.Object(ARRAY(i2386)), i2387)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(o3047sub), o3131, i2387, 1) :|: TRUE 14.25/4.74 f7556_0_random_IntArithmetic(EOS(STATIC_7556(java.lang.Object(ARRAY(i2386)), i2387)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(o3047sub), o3131, i2387, matching1) -> f7560_0_random_FieldAccess(EOS(STATIC_7560(java.lang.Object(ARRAY(i2386)), i2387)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(o3047sub), o3131, i2387 + 1) :|: i2387 > 0 && matching1 = 1 14.25/4.74 f7560_0_random_FieldAccess(EOS(STATIC_7560(java.lang.Object(ARRAY(i2386)), i2387)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(o3047sub), o3131, i2429) -> f7563_0_random_Load(EOS(STATIC_7563(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(o3047sub), o3131) :|: TRUE 14.25/4.74 f7563_0_random_Load(EOS(STATIC_7563(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(o3047sub), o3131) -> f7566_0_random_InvokeMethod(EOS(STATIC_7566(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(o3047sub), o3131) :|: TRUE 14.25/4.74 f7566_0_random_InvokeMethod(EOS(STATIC_7566(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(o3047sub), java.lang.Object(o3177sub)) -> f7570_0_random_InvokeMethod(EOS(STATIC_7570(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(o3047sub), java.lang.Object(o3177sub)) :|: TRUE 14.25/4.74 f7570_0_random_InvokeMethod(EOS(STATIC_7570(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(o3047sub), java.lang.Object(o3185sub)) -> f7574_0_random_InvokeMethod(EOS(STATIC_7574(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(o3047sub), java.lang.Object(o3185sub)) :|: TRUE 14.25/4.74 f7574_0_random_InvokeMethod(EOS(STATIC_7574(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(o3047sub), java.lang.Object(o3185sub)) -> f7579_0_length_Load(EOS(STATIC_7579(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(o3047sub), java.lang.Object(o3185sub)) :|: TRUE 14.25/4.74 f7579_0_length_Load(EOS(STATIC_7579(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(o3047sub), java.lang.Object(o3185sub)) -> f7586_0_length_FieldAccess(EOS(STATIC_7586(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(o3047sub), java.lang.Object(o3185sub)) :|: TRUE 14.25/4.74 f7586_0_length_FieldAccess(EOS(STATIC_7586(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(o3047sub), java.lang.Object(java.lang.String(EOC, i2464))) -> f7591_0_length_FieldAccess(EOS(STATIC_7591(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(o3047sub), java.lang.Object(java.lang.String(EOC, i2464))) :|: i2464 >= 0 14.25/4.74 f7591_0_length_FieldAccess(EOS(STATIC_7591(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(o3047sub), java.lang.Object(java.lang.String(EOC, i2464))) -> f7595_0_length_Return(EOS(STATIC_7595(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(o3047sub), i2464) :|: TRUE 14.25/4.74 f7595_0_length_Return(EOS(STATIC_7595(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(o3047sub), i2464) -> f7599_0_random_Return(EOS(STATIC_7599(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(o3047sub), i2464) :|: TRUE 14.25/4.74 f7599_0_random_Return(EOS(STATIC_7599(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(o3047sub), i2464) -> f7604_0_createTree_Store(EOS(STATIC_7604(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(o3047sub), i2464) :|: TRUE 14.25/4.74 f7604_0_createTree_Store(EOS(STATIC_7604(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(o3047sub), i2464) -> f7608_0_createTree_Load(EOS(STATIC_7608(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(o3047sub), i2464) :|: TRUE 14.25/4.74 f7608_0_createTree_Load(EOS(STATIC_7608(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(o3047sub), i2464) -> f7614_0_createTree_LE(EOS(STATIC_7614(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(o3047sub), i2464) :|: TRUE 14.25/4.74 f7614_0_createTree_LE(EOS(STATIC_7614(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(o3047sub), matching1) -> f7619_0_createTree_LE(EOS(STATIC_7619(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(o3047sub), 0) :|: TRUE && matching1 = 0 14.25/4.74 f7614_0_createTree_LE(EOS(STATIC_7614(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(o3047sub), i2495) -> f7620_0_createTree_LE(EOS(STATIC_7620(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(o3047sub), i2495) :|: TRUE 14.25/4.74 f7619_0_createTree_LE(EOS(STATIC_7619(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(o3047sub), matching1) -> f7624_0_createTree_Load(EOS(STATIC_7624(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(o3047sub)) :|: 0 <= 0 && matching1 = 0 14.25/4.74 f7624_0_createTree_Load(EOS(STATIC_7624(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(o3047sub)) -> f7630_0_createTree_FieldAccess(EOS(STATIC_7630(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(o3047sub), java.lang.Object(o3047sub)) :|: TRUE 14.25/4.74 f7630_0_createTree_FieldAccess(EOS(STATIC_7630(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(Tree(EOC, o3347, o3346)), java.lang.Object(Tree(EOC, o3347, o3346))) -> f7636_0_createTree_FieldAccess(EOS(STATIC_7636(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(Tree(EOC, o3347, o3346)), java.lang.Object(Tree(EOC, o3347, o3346))) :|: TRUE 14.25/4.74 f7636_0_createTree_FieldAccess(EOS(STATIC_7636(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(Tree(EOC, o3347, o3346)), java.lang.Object(Tree(EOC, o3347, o3346))) -> f7642_0_createTree_NONNULL(EOS(STATIC_7642(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(Tree(EOC, o3347, o3346)), o3347) :|: TRUE 14.25/4.74 f7642_0_createTree_NONNULL(EOS(STATIC_7642(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(Tree(EOC, java.lang.Object(o3372sub), o3346)), java.lang.Object(o3372sub)) -> f7649_0_createTree_NONNULL(EOS(STATIC_7649(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(Tree(EOC, java.lang.Object(o3372sub), o3346)), java.lang.Object(o3372sub)) :|: TRUE 14.25/4.74 f7642_0_createTree_NONNULL(EOS(STATIC_7642(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(Tree(EOC, NULL, o3346)), NULL) -> f7650_0_createTree_NONNULL(EOS(STATIC_7650(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(Tree(EOC, NULL, o3346)), NULL) :|: TRUE 14.25/4.74 f7649_0_createTree_NONNULL(EOS(STATIC_7649(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(Tree(EOC, java.lang.Object(o3372sub), o3346)), java.lang.Object(o3372sub)) -> f7658_0_createTree_Load(EOS(STATIC_7658(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(Tree(EOC, java.lang.Object(o3372sub), o3346))) :|: TRUE 14.25/4.74 f7658_0_createTree_Load(EOS(STATIC_7658(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(Tree(EOC, java.lang.Object(o3372sub), o3346))) -> f7667_0_createTree_FieldAccess(EOS(STATIC_7667(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(Tree(EOC, java.lang.Object(o3372sub), o3346))) :|: TRUE 14.25/4.74 f7667_0_createTree_FieldAccess(EOS(STATIC_7667(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(Tree(EOC, java.lang.Object(o3372sub), o3346))) -> f7677_0_createTree_Store(EOS(STATIC_7677(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(o3372sub)) :|: TRUE 14.25/4.74 f7677_0_createTree_Store(EOS(STATIC_7677(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(o3372sub)) -> f7685_0_createTree_Inc(EOS(STATIC_7685(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(o3372sub)) :|: TRUE 14.25/4.74 f7685_0_createTree_Inc(EOS(STATIC_7685(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(o3372sub)) -> f7695_0_createTree_JMP(EOS(STATIC_7695(java.lang.Object(ARRAY(i2386)), i2429)), i2397 + -1, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(o3372sub)) :|: TRUE 14.25/4.74 f7695_0_createTree_JMP(EOS(STATIC_7695(java.lang.Object(ARRAY(i2386)), i2429)), i2541, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(o3372sub)) -> f7701_0_createTree_Load(EOS(STATIC_7701(java.lang.Object(ARRAY(i2386)), i2429)), i2541, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(o3372sub)) :|: TRUE 14.25/4.74 f7701_0_createTree_Load(EOS(STATIC_7701(java.lang.Object(ARRAY(i2386)), i2429)), i2541, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(o3372sub)) -> f7520_0_createTree_Load(EOS(STATIC_7520(java.lang.Object(ARRAY(i2386)), i2429)), i2541, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(o3372sub)) :|: TRUE 14.25/4.74 f7520_0_createTree_Load(EOS(STATIC_7520(java.lang.Object(ARRAY(i2386)), i2387)), i2388, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(o3047sub)) -> f7522_0_createTree_LE(EOS(STATIC_7522(java.lang.Object(ARRAY(i2386)), i2387)), i2388, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(o3047sub), i2388) :|: TRUE 14.25/4.74 f7650_0_createTree_NONNULL(EOS(STATIC_7650(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(Tree(EOC, NULL, o3346)), NULL) -> f7659_0_createTree_Load(EOS(STATIC_7659(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(Tree(EOC, NULL, o3346))) :|: TRUE 14.25/4.74 f7659_0_createTree_Load(EOS(STATIC_7659(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(Tree(EOC, NULL, o3346))) -> f7668_0_createTree_InvokeMethod(EOS(STATIC_7668(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(Tree(EOC, NULL, o3346))) :|: TRUE 14.25/4.74 f7668_0_createTree_InvokeMethod(EOS(STATIC_7668(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(Tree(EOC, NULL, o3346))) -> f7678_0_createNode_New(EOS(STATIC_7678(java.lang.Object(ARRAY(i2386)), i2429))) :|: i2397 >= 1 && i2429 > 1 14.25/4.74 f7668_0_createTree_InvokeMethod(EOS(STATIC_7668(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(Tree(EOC, NULL, o3346))) -> f7678_1_createNode_New(EOS(STATIC_7678(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(Tree(EOC, NULL, o3346))) :|: i2397 >= 1 && i2429 > 1 14.25/4.74 f7678_0_createNode_New(EOS(STATIC_7678(java.lang.Object(ARRAY(i2386)), i2429))) -> f8054_0_createNode_New(EOS(STATIC_8054(java.lang.Object(ARRAY(i2386)), i2429))) :|: TRUE 14.25/4.74 f7709_0_createNode_Return(EOS(STATIC_7709(java.lang.Object(ARRAY(i2562)), i2558)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(Tree(EOC, NULL, o3346)), java.lang.Object(Tree(EOC, NULL, NULL))) -> f7720_0_createTree_FieldAccess(EOS(STATIC_7720(java.lang.Object(ARRAY(i2562)), i2558)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(Tree(EOC, NULL, o3346)), java.lang.Object(Tree(EOC, NULL, NULL))) :|: TRUE 14.25/4.74 f7720_0_createTree_FieldAccess(EOS(STATIC_7720(java.lang.Object(ARRAY(i2562)), i2558)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(Tree(EOC, NULL, o3346)), java.lang.Object(Tree(EOC, NULL, NULL))) -> f7727_0_createTree_FieldAccess(EOS(STATIC_7727(java.lang.Object(ARRAY(i2562)), i2558)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(Tree(EOC, NULL, o3346)), java.lang.Object(Tree(EOC, NULL, NULL))) :|: TRUE 14.25/4.74 f7720_0_createTree_FieldAccess(EOS(STATIC_7720(java.lang.Object(ARRAY(i2562)), i2558)), i2397, java.lang.Object(Tree(EOC, NULL, o3603)), java.lang.Object(Tree(EOC, NULL, o3603)), java.lang.Object(Tree(EOC, NULL, NULL))) -> f7728_0_createTree_FieldAccess(EOS(STATIC_7728(java.lang.Object(ARRAY(i2562)), i2558)), i2397, java.lang.Object(Tree(EOC, NULL, o3603)), java.lang.Object(Tree(EOC, NULL, o3603)), java.lang.Object(Tree(EOC, NULL, NULL))) :|: TRUE 14.25/4.74 f7727_0_createTree_FieldAccess(EOS(STATIC_7727(java.lang.Object(ARRAY(i2562)), i2558)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(Tree(EOC, NULL, o3346)), java.lang.Object(Tree(EOC, NULL, NULL))) -> f7735_0_createTree_Load(EOS(STATIC_7735(java.lang.Object(ARRAY(i2562)), i2558)), i2397, java.lang.Object(Tree(EOC, o3046put, o3045put))) :|: TRUE 14.25/4.74 f7735_0_createTree_Load(EOS(STATIC_7735(java.lang.Object(ARRAY(i2562)), i2558)), i2397, java.lang.Object(Tree(EOC, o3046, o3045))) -> f7742_0_createTree_Store(EOS(STATIC_7742(java.lang.Object(ARRAY(i2562)), i2558)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(Tree(EOC, o3046, o3045))) :|: TRUE 14.25/4.74 f7742_0_createTree_Store(EOS(STATIC_7742(java.lang.Object(ARRAY(i2562)), i2558)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(Tree(EOC, o3046, o3045))) -> f7752_0_createTree_JMP(EOS(STATIC_7752(java.lang.Object(ARRAY(i2562)), i2558)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(Tree(EOC, o3046, o3045))) :|: TRUE 14.25/4.74 f7752_0_createTree_JMP(EOS(STATIC_7752(java.lang.Object(ARRAY(i2562)), i2558)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(Tree(EOC, o3046, o3045))) -> f7761_0_createTree_Inc(EOS(STATIC_7761(java.lang.Object(ARRAY(i2562)), i2558)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(Tree(EOC, o3046, o3045))) :|: TRUE 14.25/4.74 f7761_0_createTree_Inc(EOS(STATIC_7761(java.lang.Object(ARRAY(i2562)), i2558)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(Tree(EOC, o3046, o3045))) -> f7768_0_createTree_JMP(EOS(STATIC_7768(java.lang.Object(ARRAY(i2562)), i2558)), i2397 + -1, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(Tree(EOC, o3046, o3045))) :|: TRUE 14.25/4.74 f7768_0_createTree_JMP(EOS(STATIC_7768(java.lang.Object(ARRAY(i2562)), i2558)), i2708, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(Tree(EOC, o3046, o3045))) -> f7773_0_createTree_Load(EOS(STATIC_7773(java.lang.Object(ARRAY(i2562)), i2558)), i2708, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(Tree(EOC, o3046, o3045))) :|: TRUE 14.25/4.74 f7773_0_createTree_Load(EOS(STATIC_7773(java.lang.Object(ARRAY(i2562)), i2558)), i2708, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(Tree(EOC, o3046, o3045))) -> f7520_0_createTree_Load(EOS(STATIC_7520(java.lang.Object(ARRAY(i2562)), i2558)), i2708, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(Tree(EOC, o3046, o3045))) :|: TRUE 14.25/4.74 f7728_0_createTree_FieldAccess(EOS(STATIC_7728(java.lang.Object(ARRAY(i2562)), i2558)), i2397, java.lang.Object(Tree(EOC, NULL, o3603)), java.lang.Object(Tree(EOC, NULL, o3603)), java.lang.Object(Tree(EOC, NULL, NULL))) -> f7736_0_createTree_Load(EOS(STATIC_7736(java.lang.Object(ARRAY(i2562)), i2558)), i2397, java.lang.Object(Tree(EOC, java.lang.Object(Tree(EOC, NULL, NULL)), o3603))) :|: TRUE 14.25/4.74 f7736_0_createTree_Load(EOS(STATIC_7736(java.lang.Object(ARRAY(i2562)), i2558)), i2397, java.lang.Object(Tree(EOC, java.lang.Object(Tree(EOC, NULL, NULL)), o3603))) -> f7743_0_createTree_Store(EOS(STATIC_7743(java.lang.Object(ARRAY(i2562)), i2558)), i2397, java.lang.Object(Tree(EOC, java.lang.Object(Tree(EOC, NULL, NULL)), o3603)), java.lang.Object(Tree(EOC, java.lang.Object(Tree(EOC, NULL, NULL)), o3603))) :|: TRUE 14.25/4.74 f7743_0_createTree_Store(EOS(STATIC_7743(java.lang.Object(ARRAY(i2562)), i2558)), i2397, java.lang.Object(Tree(EOC, java.lang.Object(Tree(EOC, NULL, NULL)), o3603)), java.lang.Object(Tree(EOC, java.lang.Object(Tree(EOC, NULL, NULL)), o3603))) -> f7753_0_createTree_JMP(EOS(STATIC_7753(java.lang.Object(ARRAY(i2562)), i2558)), i2397, java.lang.Object(Tree(EOC, java.lang.Object(Tree(EOC, NULL, NULL)), o3603)), java.lang.Object(Tree(EOC, java.lang.Object(Tree(EOC, NULL, NULL)), o3603))) :|: TRUE 14.25/4.74 f7753_0_createTree_JMP(EOS(STATIC_7753(java.lang.Object(ARRAY(i2562)), i2558)), i2397, java.lang.Object(Tree(EOC, java.lang.Object(Tree(EOC, NULL, NULL)), o3603)), java.lang.Object(Tree(EOC, java.lang.Object(Tree(EOC, NULL, NULL)), o3603))) -> f7762_0_createTree_Inc(EOS(STATIC_7762(java.lang.Object(ARRAY(i2562)), i2558)), i2397, java.lang.Object(Tree(EOC, java.lang.Object(Tree(EOC, NULL, NULL)), o3603)), java.lang.Object(Tree(EOC, java.lang.Object(Tree(EOC, NULL, NULL)), o3603))) :|: TRUE 14.25/4.74 f7762_0_createTree_Inc(EOS(STATIC_7762(java.lang.Object(ARRAY(i2562)), i2558)), i2397, java.lang.Object(Tree(EOC, java.lang.Object(Tree(EOC, NULL, NULL)), o3603)), java.lang.Object(Tree(EOC, java.lang.Object(Tree(EOC, NULL, NULL)), o3603))) -> f7763_0_createTree_Inc(EOS(STATIC_7763(java.lang.Object(ARRAY(i2562)), i2558)), i2397, java.lang.Object(Tree(EOC, java.lang.Object(Tree(EOC, NULL, NULL)), o3603)), java.lang.Object(Tree(EOC, java.lang.Object(Tree(EOC, NULL, NULL)), o3603))) :|: TRUE 14.25/4.74 f7763_0_createTree_Inc(EOS(STATIC_7763(java.lang.Object(ARRAY(i2581)), i2577)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(Tree(EOC, o3046, o3045))) -> f7761_0_createTree_Inc(EOS(STATIC_7761(java.lang.Object(ARRAY(i2581)), i2577)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(Tree(EOC, o3046, o3045))) :|: TRUE 14.25/4.74 f7620_0_createTree_LE(EOS(STATIC_7620(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(o3047sub), i2495) -> f7625_0_createTree_Load(EOS(STATIC_7625(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(o3047sub)) :|: i2495 > 0 14.25/4.74 f7625_0_createTree_Load(EOS(STATIC_7625(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(o3047sub)) -> f7631_0_createTree_FieldAccess(EOS(STATIC_7631(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(o3047sub), java.lang.Object(o3047sub)) :|: TRUE 14.25/4.74 f7631_0_createTree_FieldAccess(EOS(STATIC_7631(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(Tree(EOC, o3350, o3349)), java.lang.Object(Tree(EOC, o3350, o3349))) -> f7637_0_createTree_FieldAccess(EOS(STATIC_7637(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(Tree(EOC, o3350, o3349)), java.lang.Object(Tree(EOC, o3350, o3349))) :|: TRUE 14.25/4.74 f7637_0_createTree_FieldAccess(EOS(STATIC_7637(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(Tree(EOC, o3350, o3349)), java.lang.Object(Tree(EOC, o3350, o3349))) -> f7643_0_createTree_NONNULL(EOS(STATIC_7643(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(Tree(EOC, o3350, o3349)), o3349) :|: TRUE 14.25/4.74 f7643_0_createTree_NONNULL(EOS(STATIC_7643(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(Tree(EOC, o3350, java.lang.Object(o3373sub))), java.lang.Object(o3373sub)) -> f7651_0_createTree_NONNULL(EOS(STATIC_7651(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(Tree(EOC, o3350, java.lang.Object(o3373sub))), java.lang.Object(o3373sub)) :|: TRUE 14.25/4.74 f7643_0_createTree_NONNULL(EOS(STATIC_7643(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(Tree(EOC, o3350, NULL)), NULL) -> f7652_0_createTree_NONNULL(EOS(STATIC_7652(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(Tree(EOC, o3350, NULL)), NULL) :|: TRUE 14.25/4.74 f7651_0_createTree_NONNULL(EOS(STATIC_7651(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(Tree(EOC, o3350, java.lang.Object(o3373sub))), java.lang.Object(o3373sub)) -> f7660_0_createTree_Load(EOS(STATIC_7660(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(Tree(EOC, o3350, java.lang.Object(o3373sub)))) :|: TRUE 14.25/4.74 f7660_0_createTree_Load(EOS(STATIC_7660(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(Tree(EOC, o3350, java.lang.Object(o3373sub)))) -> f7669_0_createTree_FieldAccess(EOS(STATIC_7669(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(Tree(EOC, o3350, java.lang.Object(o3373sub)))) :|: TRUE 14.25/4.74 f7669_0_createTree_FieldAccess(EOS(STATIC_7669(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(Tree(EOC, o3350, java.lang.Object(o3373sub)))) -> f7679_0_createTree_Store(EOS(STATIC_7679(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(o3373sub)) :|: TRUE 14.25/4.74 f7679_0_createTree_Store(EOS(STATIC_7679(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(o3373sub)) -> f7687_0_createTree_JMP(EOS(STATIC_7687(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(o3373sub)) :|: TRUE 14.25/4.74 f7687_0_createTree_JMP(EOS(STATIC_7687(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(o3373sub)) -> f7696_0_createTree_Inc(EOS(STATIC_7696(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(o3373sub)) :|: TRUE 14.25/4.74 f7696_0_createTree_Inc(EOS(STATIC_7696(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(o3373sub)) -> f7685_0_createTree_Inc(EOS(STATIC_7685(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(o3373sub)) :|: TRUE 14.25/4.74 f7652_0_createTree_NONNULL(EOS(STATIC_7652(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(Tree(EOC, o3350, NULL)), NULL) -> f7661_0_createTree_Load(EOS(STATIC_7661(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(Tree(EOC, o3350, NULL))) :|: TRUE 14.25/4.74 f7661_0_createTree_Load(EOS(STATIC_7661(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(Tree(EOC, o3350, NULL))) -> f7670_0_createTree_InvokeMethod(EOS(STATIC_7670(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(Tree(EOC, o3350, NULL))) :|: TRUE 14.25/4.74 f7670_0_createTree_InvokeMethod(EOS(STATIC_7670(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(Tree(EOC, o3350, NULL))) -> f7680_0_createNode_New(EOS(STATIC_7680(java.lang.Object(ARRAY(i2386)), i2429))) :|: i2397 >= 1 && i2429 > 1 14.25/4.74 f7670_0_createTree_InvokeMethod(EOS(STATIC_7670(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(Tree(EOC, o3350, NULL))) -> f7680_1_createNode_New(EOS(STATIC_7680(java.lang.Object(ARRAY(i2386)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(Tree(EOC, o3350, NULL))) :|: i2397 >= 1 && i2429 > 1 14.25/4.74 f7680_0_createNode_New(EOS(STATIC_7680(java.lang.Object(ARRAY(i2386)), i2429))) -> f8126_0_createNode_New(EOS(STATIC_8126(java.lang.Object(ARRAY(i2386)), i2429))) :|: TRUE 14.25/4.74 f7713_0_createNode_Return(EOS(STATIC_7713(java.lang.Object(ARRAY(i2581)), i2577)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(Tree(EOC, o3350, NULL)), java.lang.Object(Tree(EOC, NULL, NULL))) -> f7722_0_createTree_FieldAccess(EOS(STATIC_7722(java.lang.Object(ARRAY(i2581)), i2577)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(Tree(EOC, o3350, NULL)), java.lang.Object(Tree(EOC, NULL, NULL))) :|: TRUE 14.25/4.74 f7722_0_createTree_FieldAccess(EOS(STATIC_7722(java.lang.Object(ARRAY(i2581)), i2577)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(Tree(EOC, o3350, NULL)), java.lang.Object(Tree(EOC, NULL, NULL))) -> f7730_0_createTree_FieldAccess(EOS(STATIC_7730(java.lang.Object(ARRAY(i2581)), i2577)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(Tree(EOC, o3350, NULL)), java.lang.Object(Tree(EOC, NULL, NULL))) :|: TRUE 14.25/4.74 f7722_0_createTree_FieldAccess(EOS(STATIC_7722(java.lang.Object(ARRAY(i2581)), i2577)), i2397, java.lang.Object(Tree(EOC, o3610, NULL)), java.lang.Object(Tree(EOC, o3610, NULL)), java.lang.Object(Tree(EOC, NULL, NULL))) -> f7731_0_createTree_FieldAccess(EOS(STATIC_7731(java.lang.Object(ARRAY(i2581)), i2577)), i2397, java.lang.Object(Tree(EOC, o3610, NULL)), java.lang.Object(Tree(EOC, o3610, NULL)), java.lang.Object(Tree(EOC, NULL, NULL))) :|: TRUE 14.25/4.74 f7730_0_createTree_FieldAccess(EOS(STATIC_7730(java.lang.Object(ARRAY(i2581)), i2577)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(Tree(EOC, o3350, NULL)), java.lang.Object(Tree(EOC, NULL, NULL))) -> f7737_0_createTree_Load(EOS(STATIC_7737(java.lang.Object(ARRAY(i2581)), i2577)), i2397, java.lang.Object(Tree(EOC, o3046put, o3045put))) :|: TRUE 14.25/4.74 f7737_0_createTree_Load(EOS(STATIC_7737(java.lang.Object(ARRAY(i2581)), i2577)), i2397, java.lang.Object(Tree(EOC, o3046, o3045))) -> f7746_0_createTree_Store(EOS(STATIC_7746(java.lang.Object(ARRAY(i2581)), i2577)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(Tree(EOC, o3046, o3045))) :|: TRUE 14.25/4.74 f7746_0_createTree_Store(EOS(STATIC_7746(java.lang.Object(ARRAY(i2581)), i2577)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(Tree(EOC, o3046, o3045))) -> f7755_0_createTree_JMP(EOS(STATIC_7755(java.lang.Object(ARRAY(i2581)), i2577)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(Tree(EOC, o3046, o3045))) :|: TRUE 14.25/4.74 f7755_0_createTree_JMP(EOS(STATIC_7755(java.lang.Object(ARRAY(i2581)), i2577)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(Tree(EOC, o3046, o3045))) -> f7763_0_createTree_Inc(EOS(STATIC_7763(java.lang.Object(ARRAY(i2581)), i2577)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(Tree(EOC, o3046, o3045))) :|: TRUE 14.25/4.74 f7731_0_createTree_FieldAccess(EOS(STATIC_7731(java.lang.Object(ARRAY(i2581)), i2577)), i2397, java.lang.Object(Tree(EOC, o3610, NULL)), java.lang.Object(Tree(EOC, o3610, NULL)), java.lang.Object(Tree(EOC, NULL, NULL))) -> f7738_0_createTree_Load(EOS(STATIC_7738(java.lang.Object(ARRAY(i2581)), i2577)), i2397, java.lang.Object(Tree(EOC, o3610, java.lang.Object(Tree(EOC, NULL, NULL))))) :|: TRUE 14.25/4.74 f7738_0_createTree_Load(EOS(STATIC_7738(java.lang.Object(ARRAY(i2581)), i2577)), i2397, java.lang.Object(Tree(EOC, o3610, java.lang.Object(Tree(EOC, NULL, NULL))))) -> f7747_0_createTree_Store(EOS(STATIC_7747(java.lang.Object(ARRAY(i2581)), i2577)), i2397, java.lang.Object(Tree(EOC, o3610, java.lang.Object(Tree(EOC, NULL, NULL)))), java.lang.Object(Tree(EOC, o3610, java.lang.Object(Tree(EOC, NULL, NULL))))) :|: TRUE 14.25/4.74 f7747_0_createTree_Store(EOS(STATIC_7747(java.lang.Object(ARRAY(i2581)), i2577)), i2397, java.lang.Object(Tree(EOC, o3610, java.lang.Object(Tree(EOC, NULL, NULL)))), java.lang.Object(Tree(EOC, o3610, java.lang.Object(Tree(EOC, NULL, NULL))))) -> f7756_0_createTree_JMP(EOS(STATIC_7756(java.lang.Object(ARRAY(i2581)), i2577)), i2397, java.lang.Object(Tree(EOC, o3610, java.lang.Object(Tree(EOC, NULL, NULL)))), java.lang.Object(Tree(EOC, o3610, java.lang.Object(Tree(EOC, NULL, NULL))))) :|: TRUE 14.25/4.74 f7756_0_createTree_JMP(EOS(STATIC_7756(java.lang.Object(ARRAY(i2581)), i2577)), i2397, java.lang.Object(Tree(EOC, o3610, java.lang.Object(Tree(EOC, NULL, NULL)))), java.lang.Object(Tree(EOC, o3610, java.lang.Object(Tree(EOC, NULL, NULL))))) -> f7764_0_createTree_Inc(EOS(STATIC_7764(java.lang.Object(ARRAY(i2581)), i2577)), i2397, java.lang.Object(Tree(EOC, o3610, java.lang.Object(Tree(EOC, NULL, NULL)))), java.lang.Object(Tree(EOC, o3610, java.lang.Object(Tree(EOC, NULL, NULL))))) :|: TRUE 14.25/4.74 f7764_0_createTree_Inc(EOS(STATIC_7764(java.lang.Object(ARRAY(i2581)), i2577)), i2397, java.lang.Object(Tree(EOC, o3610, java.lang.Object(Tree(EOC, NULL, NULL)))), java.lang.Object(Tree(EOC, o3610, java.lang.Object(Tree(EOC, NULL, NULL))))) -> f7769_0_createTree_JMP(EOS(STATIC_7769(java.lang.Object(ARRAY(i2581)), i2577)), i2397 + -1, java.lang.Object(Tree(EOC, o3610, java.lang.Object(Tree(EOC, NULL, NULL)))), java.lang.Object(Tree(EOC, o3610, java.lang.Object(Tree(EOC, NULL, NULL))))) :|: TRUE 14.25/4.74 f7769_0_createTree_JMP(EOS(STATIC_7769(java.lang.Object(ARRAY(i2581)), i2577)), i2712, java.lang.Object(Tree(EOC, o3610, java.lang.Object(Tree(EOC, NULL, NULL)))), java.lang.Object(Tree(EOC, o3610, java.lang.Object(Tree(EOC, NULL, NULL))))) -> f7774_0_createTree_Load(EOS(STATIC_7774(java.lang.Object(ARRAY(i2581)), i2577)), i2712, java.lang.Object(Tree(EOC, o3610, java.lang.Object(Tree(EOC, NULL, NULL)))), java.lang.Object(Tree(EOC, o3610, java.lang.Object(Tree(EOC, NULL, NULL))))) :|: TRUE 14.25/4.74 f7774_0_createTree_Load(EOS(STATIC_7774(java.lang.Object(ARRAY(i2581)), i2577)), i2712, java.lang.Object(Tree(EOC, o3610, java.lang.Object(Tree(EOC, NULL, NULL)))), java.lang.Object(Tree(EOC, o3610, java.lang.Object(Tree(EOC, NULL, NULL))))) -> f7520_0_createTree_Load(EOS(STATIC_7520(java.lang.Object(ARRAY(i2581)), i2577)), i2712, java.lang.Object(Tree(EOC, o3610, java.lang.Object(Tree(EOC, NULL, NULL)))), java.lang.Object(Tree(EOC, o3610, java.lang.Object(Tree(EOC, NULL, NULL))))) :|: TRUE 14.25/4.74 f7678_1_createNode_New(EOS(STATIC_7678(java.lang.Object(ARRAY(i2562)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(Tree(EOC, NULL, o3346))) -> f7709_0_createNode_Return(EOS(STATIC_7709(java.lang.Object(ARRAY(i2562)), i2558)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(Tree(EOC, NULL, o3346)), java.lang.Object(Tree(EOC, NULL, NULL))) :|: TRUE 14.25/4.74 f7680_1_createNode_New(EOS(STATIC_7680(java.lang.Object(ARRAY(i2581)), i2429)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(Tree(EOC, o3350, NULL))) -> f7713_0_createNode_Return(EOS(STATIC_7713(java.lang.Object(ARRAY(i2581)), i2577)), i2397, java.lang.Object(Tree(EOC, o3046, o3045)), java.lang.Object(Tree(EOC, o3350, NULL)), java.lang.Object(Tree(EOC, NULL, NULL))) :|: TRUE 14.25/4.74 Combined rules. Obtained 8 IRulesP rules: 14.25/4.74 f7522_0_createTree_LE(EOS(STATIC_7522(java.lang.Object(ARRAY(i2386:0)), i2387:0)), i2397:0, java.lang.Object(Tree(EOC, o3046:0, o3045:0)), java.lang.Object(Tree(EOC, o3350:0, java.lang.Object(o3373sub:0))), i2397:0) -> f7522_0_createTree_LE(EOS(STATIC_7522(java.lang.Object(ARRAY(i2386:0)), i2387:0 + 1)), i2397:0 - 1, java.lang.Object(Tree(EOC, o3046:0, o3045:0)), java.lang.Object(o3373sub:0), i2397:0 - 1) :|: i2464:0 > 0 && i2387:0 > 0 && i2397:0 > 0 14.25/4.74 f7522_0_createTree_LE(EOS(STATIC_7522(java.lang.Object(ARRAY(i2386:0)), i2387:0)), i2397:0, java.lang.Object(Tree(EOC, o3046:0, o3045:0)), java.lang.Object(Tree(EOC, NULL, o3346:0)), i2397:0) -> f7522_0_createTree_LE(EOS(STATIC_7522(java.lang.Object(ARRAY(i2386:0)), i2558:0)), i2397:0 - 1, java.lang.Object(Tree(EOC, o3046put:0, o3045put:0)), java.lang.Object(Tree(EOC, o3046put:0, o3045put:0)), i2397:0 - 1) :|: i2397:0 > 0 && i2387:0 > 0 14.25/4.74 f7522_0_createTree_LE(EOS(STATIC_7522(java.lang.Object(ARRAY(i2386:0)), i2387:0)), i2397:0, java.lang.Object(Tree(EOC, o3046:0, NULL)), java.lang.Object(Tree(EOC, o3046:0, NULL)), i2397:0) -> f7522_0_createTree_LE(EOS(STATIC_7522(java.lang.Object(ARRAY(i2386:0)), i2577:0)), i2397:0 - 1, java.lang.Object(Tree(EOC, o3046:0, java.lang.Object(Tree(EOC, NULL, NULL)))), java.lang.Object(Tree(EOC, o3046:0, java.lang.Object(Tree(EOC, NULL, NULL)))), i2397:0 - 1) :|: i2464:0 > 0 && i2397:0 > 0 && i2387:0 > 0 14.25/4.74 f7522_0_createTree_LE(EOS(STATIC_7522(java.lang.Object(ARRAY(i2386:0)), i2387:0)), i2397:0, java.lang.Object(Tree(EOC, o3046:0, o3045:0)), java.lang.Object(Tree(EOC, java.lang.Object(o3372sub:0), o3346:0)), i2397:0) -> f7522_0_createTree_LE(EOS(STATIC_7522(java.lang.Object(ARRAY(i2386:0)), i2387:0 + 1)), i2397:0 - 1, java.lang.Object(Tree(EOC, o3046:0, o3045:0)), java.lang.Object(o3372sub:0), i2397:0 - 1) :|: i2387:0 > 0 && i2397:0 > 0 14.25/4.74 f7522_0_createTree_LE(EOS(STATIC_7522(java.lang.Object(ARRAY(i2386:0)), i2387:0)), i2397:0, java.lang.Object(Tree(EOC, NULL, o3045:0)), java.lang.Object(Tree(EOC, NULL, o3045:0)), i2397:0) -> f7522_0_createTree_LE(EOS(STATIC_7522(java.lang.Object(ARRAY(i2386:0)), i2558:0)), i2397:0 - 1, java.lang.Object(Tree(EOC, java.lang.Object(Tree(EOC, NULL, NULL)), o3045:0)), java.lang.Object(Tree(EOC, java.lang.Object(Tree(EOC, NULL, NULL)), o3045:0)), i2397:0 - 1) :|: i2397:0 > 0 && i2387:0 > 0 14.25/4.74 f7522_0_createTree_LE(EOS(STATIC_7522(java.lang.Object(ARRAY(i2386:0)), i2387:0)), i2397:0, java.lang.Object(Tree(EOC, o3046:0, o3045:0)), java.lang.Object(Tree(EOC, o3350:0, NULL)), i2397:0) -> f7522_0_createTree_LE(EOS(STATIC_7522(java.lang.Object(ARRAY(i2386:0)), i2577:0)), i2397:0 - 1, java.lang.Object(Tree(EOC, o3046put:0, o3045put:0)), java.lang.Object(Tree(EOC, o3046put:0, o3045put:0)), i2397:0 - 1) :|: i2464:0 > 0 && i2397:0 > 0 && i2387:0 > 0 14.25/4.74 Removed following non-SCC rules: 14.25/4.74 f7522_0_createTree_LE(EOS(STATIC_7522(java.lang.Object(ARRAY(i2386:0)), i2387:0)), i2397:0, java.lang.Object(Tree(EOC, o3046:0, o3045:0)), java.lang.Object(Tree(EOC, o3350:0, NULL)), i2397:0) -> f8126_0_createNode_New(EOS(STATIC_8126(java.lang.Object(ARRAY(i2386:0)), i2387:0 + 1))) :|: i2464:0 > 0 && i2397:0 > 0 && i2387:0 > 0 14.25/4.74 f7522_0_createTree_LE(EOS(STATIC_7522(java.lang.Object(ARRAY(i2386:0)), i2387:0)), i2397:0, java.lang.Object(Tree(EOC, o3046:0, o3045:0)), java.lang.Object(Tree(EOC, NULL, o3346:0)), i2397:0) -> f8054_0_createNode_New(EOS(STATIC_8054(java.lang.Object(ARRAY(i2386:0)), i2387:0 + 1))) :|: i2397:0 > 0 && i2387:0 > 0 14.25/4.74 Filtered constant ground arguments: 14.25/4.74 Tree(x1, x2, x3) -> Tree(x2, x3) 14.25/4.74 Filtered duplicate arguments: 14.25/4.74 f7522_0_createTree_LE(x1, x2, x3, x4, x5) -> f7522_0_createTree_LE(x1, x3, x4, x5) 14.25/4.74 Filtered unneeded arguments: 14.25/4.74 STATIC_7522(x1, x2) -> STATIC_7522(x2) 14.25/4.74 Finished conversion. Obtained 6 rules.P rules: 14.25/4.74 f7522_0_createTree_LE(java.lang.Object(Tree(o3046:0, o3045:0)), java.lang.Object(Tree(o3350:0, java.lang.Object(o3373sub:0))), i2397:0, i2387:0) -> f7522_0_createTree_LE(java.lang.Object(Tree(o3046:0, o3045:0)), java.lang.Object(o3373sub:0), i2397:0 - 1, i2387:0 + 1) :|: i2387:0 > 0 && i2397:0 > 0 && i2464:0 > 0 14.25/4.74 f7522_0_createTree_LE(java.lang.Object(Tree(o3046:0, o3045:0)), java.lang.Object(Tree(NULL, o3346:0)), i2397:0, i2387:0) -> f7522_0_createTree_LE(java.lang.Object(Tree(o3046put:0, o3045put:0)), java.lang.Object(Tree(o3046put:0, o3045put:0)), i2397:0 - 1, i2558:0) :|: i2397:0 > 0 && i2387:0 > 0 14.25/4.74 f7522_0_createTree_LE(java.lang.Object(Tree(o3046:0, NULL)), java.lang.Object(Tree(o3046:0, NULL)), i2397:0, i2387:0) -> f7522_0_createTree_LE(java.lang.Object(Tree(o3046:0, java.lang.Object(Tree(NULL, NULL)))), java.lang.Object(Tree(o3046:0, java.lang.Object(Tree(NULL, NULL)))), i2397:0 - 1, i2577:0) :|: i2397:0 > 0 && i2387:0 > 0 && i2464:0 > 0 14.25/4.74 f7522_0_createTree_LE(java.lang.Object(Tree(o3046:0, o3045:0)), java.lang.Object(Tree(java.lang.Object(o3372sub:0), o3346:0)), i2397:0, i2387:0) -> f7522_0_createTree_LE(java.lang.Object(Tree(o3046:0, o3045:0)), java.lang.Object(o3372sub:0), i2397:0 - 1, i2387:0 + 1) :|: i2387:0 > 0 && i2397:0 > 0 14.25/4.74 f7522_0_createTree_LE(java.lang.Object(Tree(NULL, o3045:0)), java.lang.Object(Tree(NULL, o3045:0)), i2397:0, i2387:0) -> f7522_0_createTree_LE(java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL)), o3045:0)), java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL)), o3045:0)), i2397:0 - 1, i2558:0) :|: i2397:0 > 0 && i2387:0 > 0 14.25/4.74 f7522_0_createTree_LE(java.lang.Object(Tree(o3046:0, o3045:0)), java.lang.Object(Tree(o3350:0, NULL)), i2397:0, i2387:0) -> f7522_0_createTree_LE(java.lang.Object(Tree(o3046put:0, o3045put:0)), java.lang.Object(Tree(o3046put:0, o3045put:0)), i2397:0 - 1, i2577:0) :|: i2397:0 > 0 && i2387:0 > 0 && i2464:0 > 0 14.25/4.74 14.25/4.74 ---------------------------------------- 14.25/4.74 14.25/4.74 (21) 14.25/4.74 Obligation: 14.25/4.74 Rules: 14.25/4.74 f7522_0_createTree_LE(java.lang.Object(Tree(o3046:0, o3045:0)), java.lang.Object(Tree(o3350:0, java.lang.Object(o3373sub:0))), i2397:0, i2387:0) -> f7522_0_createTree_LE(java.lang.Object(Tree(o3046:0, o3045:0)), java.lang.Object(o3373sub:0), i2397:0 - 1, i2387:0 + 1) :|: i2387:0 > 0 && i2397:0 > 0 && i2464:0 > 0 14.25/4.74 f7522_0_createTree_LE(java.lang.Object(Tree(x, x1)), java.lang.Object(Tree(NULL, x2)), x3, x4) -> f7522_0_createTree_LE(java.lang.Object(Tree(x5, x6)), java.lang.Object(Tree(x5, x6)), x3 - 1, x7) :|: x3 > 0 && x4 > 0 14.25/4.74 f7522_0_createTree_LE(java.lang.Object(Tree(x8, NULL)), java.lang.Object(Tree(x8, NULL)), x9, x10) -> f7522_0_createTree_LE(java.lang.Object(Tree(x8, java.lang.Object(Tree(NULL, NULL)))), java.lang.Object(Tree(x8, java.lang.Object(Tree(NULL, NULL)))), x9 - 1, x11) :|: x9 > 0 && x10 > 0 && x12 > 0 14.25/4.74 f7522_0_createTree_LE(java.lang.Object(Tree(x13, x14)), java.lang.Object(Tree(java.lang.Object(x15), x16)), x17, x18) -> f7522_0_createTree_LE(java.lang.Object(Tree(x13, x14)), java.lang.Object(x15), x17 - 1, x18 + 1) :|: x18 > 0 && x17 > 0 14.25/4.74 f7522_0_createTree_LE(java.lang.Object(Tree(NULL, x19)), java.lang.Object(Tree(NULL, x19)), x20, x21) -> f7522_0_createTree_LE(java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL)), x19)), java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL)), x19)), x20 - 1, x22) :|: x20 > 0 && x21 > 0 14.25/4.74 f7522_0_createTree_LE(java.lang.Object(Tree(x23, x24)), java.lang.Object(Tree(x25, NULL)), x26, x27) -> f7522_0_createTree_LE(java.lang.Object(Tree(x28, x29)), java.lang.Object(Tree(x28, x29)), x26 - 1, x30) :|: x26 > 0 && x27 > 0 && x31 > 0 14.25/4.74 14.25/4.74 ---------------------------------------- 14.25/4.74 14.25/4.74 (22) IRSFormatTransformerProof (EQUIVALENT) 14.25/4.74 Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). 14.25/4.74 ---------------------------------------- 14.25/4.74 14.25/4.74 (23) 14.25/4.74 Obligation: 14.25/4.74 Rules: 14.25/4.74 f7522_0_createTree_LE(java.lang.Object(Tree(o3046:0, o3045:0)), java.lang.Object(Tree(o3350:0, java.lang.Object(o3373sub:0))), i2397:0, i2387:0) -> f7522_0_createTree_LE(java.lang.Object(Tree(o3046:0, o3045:0)), java.lang.Object(o3373sub:0), arith, arith1) :|: i2387:0 > 0 && i2397:0 > 0 && i2464:0 > 0 && arith = i2397:0 - 1 && arith1 = i2387:0 + 1 14.25/4.74 f7522_0_createTree_LE(java.lang.Object(Tree(x32, x33)), java.lang.Object(Tree(NULL, x34)), x35, x36) -> f7522_0_createTree_LE(java.lang.Object(Tree(x37, x38)), java.lang.Object(Tree(x37, x38)), x39, x40) :|: x35 > 0 && x36 > 0 && x39 = x35 - 1 14.25/4.74 f7522_0_createTree_LE(java.lang.Object(Tree(x41, NULL)), java.lang.Object(Tree(x41, NULL)), x42, x43) -> f7522_0_createTree_LE(java.lang.Object(Tree(x41, java.lang.Object(Tree(NULL, NULL)))), java.lang.Object(Tree(x41, java.lang.Object(Tree(NULL, NULL)))), x44, x45) :|: x42 > 0 && x43 > 0 && x46 > 0 && x44 = x42 - 1 14.25/4.74 f7522_0_createTree_LE(java.lang.Object(Tree(x47, x48)), java.lang.Object(Tree(java.lang.Object(x49), x50)), x51, x52) -> f7522_0_createTree_LE(java.lang.Object(Tree(x47, x48)), java.lang.Object(x49), x53, x54) :|: x52 > 0 && x51 > 0 && x53 = x51 - 1 && x54 = x52 + 1 14.25/4.74 f7522_0_createTree_LE(java.lang.Object(Tree(NULL, x55)), java.lang.Object(Tree(NULL, x55)), x56, x57) -> f7522_0_createTree_LE(java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL)), x55)), java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL)), x55)), x58, x59) :|: x56 > 0 && x57 > 0 && x58 = x56 - 1 14.25/4.74 f7522_0_createTree_LE(java.lang.Object(Tree(x60, x61)), java.lang.Object(Tree(x62, NULL)), x63, x64) -> f7522_0_createTree_LE(java.lang.Object(Tree(x65, x66)), java.lang.Object(Tree(x65, x66)), x67, x68) :|: x63 > 0 && x64 > 0 && x69 > 0 && x67 = x63 - 1 14.25/4.74 14.25/4.74 ---------------------------------------- 14.25/4.74 14.25/4.74 (24) IRSwTTerminationDigraphProof (EQUIVALENT) 14.25/4.74 Constructed termination digraph! 14.25/4.74 Nodes: 14.25/4.74 (1) f7522_0_createTree_LE(java.lang.Object(Tree(o3046:0, o3045:0)), java.lang.Object(Tree(o3350:0, java.lang.Object(o3373sub:0))), i2397:0, i2387:0) -> f7522_0_createTree_LE(java.lang.Object(Tree(o3046:0, o3045:0)), java.lang.Object(o3373sub:0), arith, arith1) :|: i2387:0 > 0 && i2397:0 > 0 && i2464:0 > 0 && arith = i2397:0 - 1 && arith1 = i2387:0 + 1 14.25/4.74 (2) f7522_0_createTree_LE(java.lang.Object(Tree(x32, x33)), java.lang.Object(Tree(NULL, x34)), x35, x36) -> f7522_0_createTree_LE(java.lang.Object(Tree(x37, x38)), java.lang.Object(Tree(x37, x38)), x39, x40) :|: x35 > 0 && x36 > 0 && x39 = x35 - 1 14.25/4.74 (3) f7522_0_createTree_LE(java.lang.Object(Tree(x41, NULL)), java.lang.Object(Tree(x41, NULL)), x42, x43) -> f7522_0_createTree_LE(java.lang.Object(Tree(x41, java.lang.Object(Tree(NULL, NULL)))), java.lang.Object(Tree(x41, java.lang.Object(Tree(NULL, NULL)))), x44, x45) :|: x42 > 0 && x43 > 0 && x46 > 0 && x44 = x42 - 1 14.25/4.74 (4) f7522_0_createTree_LE(java.lang.Object(Tree(x47, x48)), java.lang.Object(Tree(java.lang.Object(x49), x50)), x51, x52) -> f7522_0_createTree_LE(java.lang.Object(Tree(x47, x48)), java.lang.Object(x49), x53, x54) :|: x52 > 0 && x51 > 0 && x53 = x51 - 1 && x54 = x52 + 1 14.25/4.74 (5) f7522_0_createTree_LE(java.lang.Object(Tree(NULL, x55)), java.lang.Object(Tree(NULL, x55)), x56, x57) -> f7522_0_createTree_LE(java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL)), x55)), java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL)), x55)), x58, x59) :|: x56 > 0 && x57 > 0 && x58 = x56 - 1 14.25/4.74 (6) f7522_0_createTree_LE(java.lang.Object(Tree(x60, x61)), java.lang.Object(Tree(x62, NULL)), x63, x64) -> f7522_0_createTree_LE(java.lang.Object(Tree(x65, x66)), java.lang.Object(Tree(x65, x66)), x67, x68) :|: x63 > 0 && x64 > 0 && x69 > 0 && x67 = x63 - 1 14.25/4.74 14.25/4.74 Arcs: 14.25/4.74 (1) -> (1), (2), (3), (4), (5), (6) 14.25/4.74 (2) -> (1), (2), (3), (4), (5), (6) 14.25/4.74 (3) -> (1), (2), (4), (5) 14.25/4.74 (4) -> (1), (2), (3), (4), (5), (6) 14.25/4.74 (5) -> (1), (3), (4), (6) 14.25/4.74 (6) -> (1), (2), (3), (4), (5), (6) 14.25/4.74 14.25/4.74 This digraph is fully evaluated! 14.25/4.74 ---------------------------------------- 14.25/4.74 14.25/4.74 (25) 14.25/4.74 Obligation: 14.25/4.74 14.25/4.74 Termination digraph: 14.25/4.74 Nodes: 14.25/4.74 (1) f7522_0_createTree_LE(java.lang.Object(Tree(o3046:0, o3045:0)), java.lang.Object(Tree(o3350:0, java.lang.Object(o3373sub:0))), i2397:0, i2387:0) -> f7522_0_createTree_LE(java.lang.Object(Tree(o3046:0, o3045:0)), java.lang.Object(o3373sub:0), arith, arith1) :|: i2387:0 > 0 && i2397:0 > 0 && i2464:0 > 0 && arith = i2397:0 - 1 && arith1 = i2387:0 + 1 14.25/4.74 (2) f7522_0_createTree_LE(java.lang.Object(Tree(x32, x33)), java.lang.Object(Tree(NULL, x34)), x35, x36) -> f7522_0_createTree_LE(java.lang.Object(Tree(x37, x38)), java.lang.Object(Tree(x37, x38)), x39, x40) :|: x35 > 0 && x36 > 0 && x39 = x35 - 1 14.25/4.74 (3) f7522_0_createTree_LE(java.lang.Object(Tree(x41, NULL)), java.lang.Object(Tree(x41, NULL)), x42, x43) -> f7522_0_createTree_LE(java.lang.Object(Tree(x41, java.lang.Object(Tree(NULL, NULL)))), java.lang.Object(Tree(x41, java.lang.Object(Tree(NULL, NULL)))), x44, x45) :|: x42 > 0 && x43 > 0 && x46 > 0 && x44 = x42 - 1 14.25/4.74 (4) f7522_0_createTree_LE(java.lang.Object(Tree(x47, x48)), java.lang.Object(Tree(java.lang.Object(x49), x50)), x51, x52) -> f7522_0_createTree_LE(java.lang.Object(Tree(x47, x48)), java.lang.Object(x49), x53, x54) :|: x52 > 0 && x51 > 0 && x53 = x51 - 1 && x54 = x52 + 1 14.25/4.74 (5) f7522_0_createTree_LE(java.lang.Object(Tree(NULL, x55)), java.lang.Object(Tree(NULL, x55)), x56, x57) -> f7522_0_createTree_LE(java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL)), x55)), java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL)), x55)), x58, x59) :|: x56 > 0 && x57 > 0 && x58 = x56 - 1 14.25/4.74 (6) f7522_0_createTree_LE(java.lang.Object(Tree(x60, x61)), java.lang.Object(Tree(x62, NULL)), x63, x64) -> f7522_0_createTree_LE(java.lang.Object(Tree(x65, x66)), java.lang.Object(Tree(x65, x66)), x67, x68) :|: x63 > 0 && x64 > 0 && x69 > 0 && x67 = x63 - 1 14.25/4.74 14.25/4.74 Arcs: 14.25/4.74 (1) -> (1), (2), (3), (4), (5), (6) 14.25/4.74 (2) -> (1), (2), (3), (4), (5), (6) 14.25/4.74 (3) -> (1), (2), (4), (5) 14.25/4.74 (4) -> (1), (2), (3), (4), (5), (6) 14.25/4.74 (5) -> (1), (3), (4), (6) 14.25/4.74 (6) -> (1), (2), (3), (4), (5), (6) 14.25/4.74 14.25/4.74 This digraph is fully evaluated! 14.25/4.74 14.25/4.74 ---------------------------------------- 14.25/4.74 14.25/4.74 (26) IntTRSCompressionProof (EQUIVALENT) 14.25/4.74 Compressed rules. 14.25/4.74 ---------------------------------------- 14.25/4.74 14.25/4.74 (27) 14.25/4.74 Obligation: 14.25/4.74 Rules: 14.25/4.74 f7522_0_createTree_LE(java.lang.Object(Tree(NULL, x55:0)), java.lang.Object(Tree(NULL, x55:0)), x56:0, x57:0) -> f7522_0_createTree_LE(java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL)), x55:0)), java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL)), x55:0)), x56:0 - 1, x59:0) :|: x56:0 > 0 && x57:0 > 0 14.25/4.74 f7522_0_createTree_LE(java.lang.Object(Tree(x60:0, x61:0)), java.lang.Object(Tree(x62:0, NULL)), x63:0, x64:0) -> f7522_0_createTree_LE(java.lang.Object(Tree(x65:0, x66:0)), java.lang.Object(Tree(x65:0, x66:0)), x63:0 - 1, x68:0) :|: x63:0 > 0 && x64:0 > 0 && x69:0 > 0 14.25/4.74 f7522_0_createTree_LE(java.lang.Object(Tree(x41:0, NULL)), java.lang.Object(Tree(x41:0, NULL)), x42:0, x43:0) -> f7522_0_createTree_LE(java.lang.Object(Tree(x41:0, java.lang.Object(Tree(NULL, NULL)))), java.lang.Object(Tree(x41:0, java.lang.Object(Tree(NULL, NULL)))), x42:0 - 1, x45:0) :|: x42:0 > 0 && x43:0 > 0 && x46:0 > 0 14.25/4.74 f7522_0_createTree_LE(java.lang.Object(Tree(x47:0, x48:0)), java.lang.Object(Tree(java.lang.Object(x49:0), x50:0)), x51:0, x52:0) -> f7522_0_createTree_LE(java.lang.Object(Tree(x47:0, x48:0)), java.lang.Object(x49:0), x51:0 - 1, x52:0 + 1) :|: x52:0 > 0 && x51:0 > 0 14.25/4.74 f7522_0_createTree_LE(java.lang.Object(Tree(o3046:0:0, o3045:0:0)), java.lang.Object(Tree(o3350:0:0, java.lang.Object(o3373sub:0:0))), i2397:0:0, i2387:0:0) -> f7522_0_createTree_LE(java.lang.Object(Tree(o3046:0:0, o3045:0:0)), java.lang.Object(o3373sub:0:0), i2397:0:0 - 1, i2387:0:0 + 1) :|: i2387:0:0 > 0 && i2397:0:0 > 0 && i2464:0:0 > 0 14.25/4.74 f7522_0_createTree_LE(java.lang.Object(Tree(x32:0, x33:0)), java.lang.Object(Tree(NULL, x34:0)), x35:0, x36:0) -> f7522_0_createTree_LE(java.lang.Object(Tree(x37:0, x38:0)), java.lang.Object(Tree(x37:0, x38:0)), x35:0 - 1, x40:0) :|: x35:0 > 0 && x36:0 > 0 14.25/4.74 14.25/4.74 ---------------------------------------- 14.25/4.74 14.25/4.74 (28) TempFilterProof (SOUND) 14.25/4.74 Used the following sort dictionary for filtering: 14.25/4.74 f7522_0_createTree_LE(VARIABLE, VARIABLE, INTEGER, VARIABLE) 14.25/4.74 java.lang.Object(VARIABLE) 14.25/4.74 Tree(VARIABLE, VARIABLE) 14.25/4.74 NULL() 14.25/4.74 Replaced non-predefined constructor symbols by 0. 14.25/4.74 ---------------------------------------- 14.25/4.74 14.25/4.74 (29) 14.25/4.74 Obligation: 14.25/4.74 Rules: 14.25/4.74 f7522_0_createTree_LE(c, c1, x56:0, x57:0) -> f7522_0_createTree_LE(c2, c3, c4, x59:0) :|: c4 = x56:0 - 1 && (c3 = 0 && (c2 = 0 && (c1 = 0 && c = 0))) && (x56:0 > 0 && x57:0 > 0) 14.25/4.74 f7522_0_createTree_LE(c5, c6, x63:0, x64:0) -> f7522_0_createTree_LE(c7, c8, c9, x68:0) :|: c9 = x63:0 - 1 && (c8 = 0 && (c7 = 0 && (c6 = 0 && c5 = 0))) && (x63:0 > 0 && x64:0 > 0 && x69:0 > 0) 14.25/4.74 f7522_0_createTree_LE(c15, c16, x51:0, x52:0) -> f7522_0_createTree_LE(c17, c18, c19, c20) :|: c20 = x52:0 + 1 && (c19 = x51:0 - 1 && (c18 = 0 && (c17 = 0 && (c16 = 0 && c15 = 0)))) && (x52:0 > 0 && x51:0 > 0) 14.25/4.74 f7522_0_createTree_LE(c21, c22, i2397:0:0, i2387:0:0) -> f7522_0_createTree_LE(c23, c24, c25, c26) :|: c26 = i2387:0:0 + 1 && (c25 = i2397:0:0 - 1 && (c24 = 0 && (c23 = 0 && (c22 = 0 && c21 = 0)))) && (i2387:0:0 > 0 && i2397:0:0 > 0 && i2464:0:0 > 0) 14.25/4.74 14.25/4.74 ---------------------------------------- 14.25/4.74 14.25/4.74 (30) PolynomialOrderProcessor (EQUIVALENT) 14.25/4.74 Found the following polynomial interpretation: 14.25/4.74 [f7522_0_createTree_LE(x, x1, x2, x3)] = -1 + c*x + c1*x1 + x2 14.25/4.74 14.25/4.74 The following rules are decreasing: 14.25/4.74 f7522_0_createTree_LE(c, c1, x56:0, x57:0) -> f7522_0_createTree_LE(c2, c3, c4, x59:0) :|: c4 = x56:0 - 1 && (c3 = 0 && (c2 = 0 && (c1 = 0 && c = 0))) && (x56:0 > 0 && x57:0 > 0) 14.25/4.74 f7522_0_createTree_LE(c5, c6, x63:0, x64:0) -> f7522_0_createTree_LE(c7, c8, c9, x68:0) :|: c9 = x63:0 - 1 && (c8 = 0 && (c7 = 0 && (c6 = 0 && c5 = 0))) && (x63:0 > 0 && x64:0 > 0 && x69:0 > 0) 14.25/4.74 f7522_0_createTree_LE(c15, c16, x51:0, x52:0) -> f7522_0_createTree_LE(c17, c18, c19, c20) :|: c20 = x52:0 + 1 && (c19 = x51:0 - 1 && (c18 = 0 && (c17 = 0 && (c16 = 0 && c15 = 0)))) && (x52:0 > 0 && x51:0 > 0) 14.25/4.74 f7522_0_createTree_LE(c21, c22, i2397:0:0, i2387:0:0) -> f7522_0_createTree_LE(c23, c24, c25, c26) :|: c26 = i2387:0:0 + 1 && (c25 = i2397:0:0 - 1 && (c24 = 0 && (c23 = 0 && (c22 = 0 && c21 = 0)))) && (i2387:0:0 > 0 && i2397:0:0 > 0 && i2464:0:0 > 0) 14.25/4.74 The following rules are bounded: 14.25/4.74 f7522_0_createTree_LE(c, c1, x56:0, x57:0) -> f7522_0_createTree_LE(c2, c3, c4, x59:0) :|: c4 = x56:0 - 1 && (c3 = 0 && (c2 = 0 && (c1 = 0 && c = 0))) && (x56:0 > 0 && x57:0 > 0) 14.25/4.74 f7522_0_createTree_LE(c5, c6, x63:0, x64:0) -> f7522_0_createTree_LE(c7, c8, c9, x68:0) :|: c9 = x63:0 - 1 && (c8 = 0 && (c7 = 0 && (c6 = 0 && c5 = 0))) && (x63:0 > 0 && x64:0 > 0 && x69:0 > 0) 14.25/4.74 f7522_0_createTree_LE(c15, c16, x51:0, x52:0) -> f7522_0_createTree_LE(c17, c18, c19, c20) :|: c20 = x52:0 + 1 && (c19 = x51:0 - 1 && (c18 = 0 && (c17 = 0 && (c16 = 0 && c15 = 0)))) && (x52:0 > 0 && x51:0 > 0) 14.25/4.74 f7522_0_createTree_LE(c21, c22, i2397:0:0, i2387:0:0) -> f7522_0_createTree_LE(c23, c24, c25, c26) :|: c26 = i2387:0:0 + 1 && (c25 = i2397:0:0 - 1 && (c24 = 0 && (c23 = 0 && (c22 = 0 && c21 = 0)))) && (i2387:0:0 > 0 && i2397:0:0 > 0 && i2464:0:0 > 0) 14.25/4.74 14.25/4.74 ---------------------------------------- 14.25/4.74 14.25/4.74 (31) 14.25/4.74 YES 14.25/4.74 14.25/4.74 ---------------------------------------- 14.25/4.74 14.25/4.74 (32) 14.25/4.74 Obligation: 14.25/4.74 SCC of termination graph based on JBC Program. 14.25/4.74 SCC contains nodes from the following methods: FlattenRTA.main([Ljava/lang/String;)V 14.25/4.74 SCC calls the following helper methods: Tree.createTree()LTree;, Tree.createNode()LTree; 14.25/4.74 Performed SCC analyses: 14.25/4.74 *Used field analysis yielded the following read fields: 14.25/4.74 14.25/4.74 *Marker field analysis yielded the following relations that could be markers: 14.25/4.74 14.25/4.74 ---------------------------------------- 14.25/4.74 14.25/4.74 (33) SCCToIRSProof (SOUND) 14.25/4.74 Transformed FIGraph SCCs to intTRSs. Log: 14.25/4.74 Generated rules. Obtained 49 IRulesP rules: 14.25/4.74 f6502_0_main_LE(EOS(STATIC_6502), java.lang.Object(ARRAY(i1242)), i1265, i1265) -> f6508_0_main_LE(EOS(STATIC_6508), java.lang.Object(ARRAY(i1242)), i1265, i1265) :|: TRUE 14.25/4.74 f6508_0_main_LE(EOS(STATIC_6508), java.lang.Object(ARRAY(i1242)), i1265, i1265) -> f6514_0_main_InvokeMethod(EOS(STATIC_6514), java.lang.Object(ARRAY(i1242)), i1265) :|: i1265 > 0 14.25/4.74 f6514_0_main_InvokeMethod(EOS(STATIC_6514), java.lang.Object(ARRAY(i1242)), i1265) -> f6520_0_createTree_InvokeMethod(EOS(STATIC_6520), java.lang.Object(ARRAY(i1242))) :|: i1265 >= 1 && i1243 >= 1 14.25/4.74 f6514_0_main_InvokeMethod(EOS(STATIC_6514), java.lang.Object(ARRAY(i1242)), i1265) -> f6520_1_createTree_InvokeMethod(EOS(STATIC_6520), java.lang.Object(ARRAY(i1242)), i1265) :|: i1265 >= 1 && i1243 >= 1 14.25/4.74 f6520_0_createTree_InvokeMethod(EOS(STATIC_6520), java.lang.Object(ARRAY(i1242))) -> f8324_0_createTree_InvokeMethod(EOS(STATIC_8324), java.lang.Object(ARRAY(i1242))) :|: TRUE 14.25/4.74 f6554_0_createTree_Return(EOS(STATIC_6554), java.lang.Object(ARRAY(i1293)), i1265) -> f6565_0_main_Store(EOS(STATIC_6565), java.lang.Object(ARRAY(i1293)), i1265) :|: TRUE 14.25/4.74 f6565_0_main_Store(EOS(STATIC_6565), java.lang.Object(ARRAY(i1293)), i1265) -> f6572_0_main_New(EOS(STATIC_6572), java.lang.Object(ARRAY(i1293)), i1265) :|: TRUE 14.25/4.74 f6572_0_main_New(EOS(STATIC_6572), java.lang.Object(ARRAY(i1293)), i1265) -> f6578_0_main_Duplicate(EOS(STATIC_6578), java.lang.Object(ARRAY(i1293)), i1265) :|: TRUE 14.25/4.74 f6578_0_main_Duplicate(EOS(STATIC_6578), java.lang.Object(ARRAY(i1293)), i1265) -> f6583_0_main_Load(EOS(STATIC_6583), java.lang.Object(ARRAY(i1293)), i1265) :|: TRUE 14.25/4.74 f6583_0_main_Load(EOS(STATIC_6583), java.lang.Object(ARRAY(i1293)), i1265) -> f6588_0_main_Load(EOS(STATIC_6588), java.lang.Object(ARRAY(i1293)), i1265) :|: TRUE 14.25/4.74 f6588_0_main_Load(EOS(STATIC_6588), java.lang.Object(ARRAY(i1293)), i1265) -> f6594_0_main_InvokeMethod(EOS(STATIC_6594), java.lang.Object(ARRAY(i1293)), i1265) :|: TRUE 14.25/4.74 f6594_0_main_InvokeMethod(EOS(STATIC_6594), java.lang.Object(ARRAY(i1293)), i1265) -> f6599_0__init__Load(EOS(STATIC_6599), java.lang.Object(ARRAY(i1293)), i1265) :|: TRUE 14.25/4.74 f6599_0__init__Load(EOS(STATIC_6599), java.lang.Object(ARRAY(i1293)), i1265) -> f6608_0__init__InvokeMethod(EOS(STATIC_6608), java.lang.Object(ARRAY(i1293)), i1265) :|: TRUE 14.25/4.74 f6608_0__init__InvokeMethod(EOS(STATIC_6608), java.lang.Object(ARRAY(i1293)), i1265) -> f6614_0__init__Load(EOS(STATIC_6614), java.lang.Object(ARRAY(i1293)), i1265) :|: TRUE 14.25/4.74 f6614_0__init__Load(EOS(STATIC_6614), java.lang.Object(ARRAY(i1293)), i1265) -> f6620_0__init__Load(EOS(STATIC_6620), java.lang.Object(ARRAY(i1293)), i1265) :|: TRUE 14.25/4.74 f6620_0__init__Load(EOS(STATIC_6620), java.lang.Object(ARRAY(i1293)), i1265) -> f6625_0__init__FieldAccess(EOS(STATIC_6625), java.lang.Object(ARRAY(i1293)), i1265) :|: TRUE 14.25/4.74 f6625_0__init__FieldAccess(EOS(STATIC_6625), java.lang.Object(ARRAY(i1293)), i1265) -> f6631_0__init__Load(EOS(STATIC_6631), java.lang.Object(ARRAY(i1293)), i1265) :|: TRUE 14.25/4.74 f6631_0__init__Load(EOS(STATIC_6631), java.lang.Object(ARRAY(i1293)), i1265) -> f6638_0__init__Load(EOS(STATIC_6638), java.lang.Object(ARRAY(i1293)), i1265) :|: TRUE 14.25/4.74 f6638_0__init__Load(EOS(STATIC_6638), java.lang.Object(ARRAY(i1293)), i1265) -> f6644_0__init__FieldAccess(EOS(STATIC_6644), java.lang.Object(ARRAY(i1293)), i1265) :|: TRUE 14.25/4.74 f6644_0__init__FieldAccess(EOS(STATIC_6644), java.lang.Object(ARRAY(i1293)), i1265) -> f6651_0__init__Return(EOS(STATIC_6651), java.lang.Object(ARRAY(i1293)), i1265) :|: TRUE 14.25/4.74 f6651_0__init__Return(EOS(STATIC_6651), java.lang.Object(ARRAY(i1293)), i1265) -> f6658_0_main_Store(EOS(STATIC_6658), java.lang.Object(ARRAY(i1293)), i1265) :|: TRUE 14.25/4.74 f6658_0_main_Store(EOS(STATIC_6658), java.lang.Object(ARRAY(i1293)), i1265) -> f6665_0_main_Inc(EOS(STATIC_6665), java.lang.Object(ARRAY(i1293)), i1265) :|: TRUE 14.25/4.74 f6665_0_main_Inc(EOS(STATIC_6665), java.lang.Object(ARRAY(i1293)), i1265) -> f6671_0_main_JMP(EOS(STATIC_6671), java.lang.Object(ARRAY(i1293)), i1265 + -1) :|: TRUE 14.25/4.74 f6671_0_main_JMP(EOS(STATIC_6671), java.lang.Object(ARRAY(i1293)), i1383) -> f6677_0_main_Load(EOS(STATIC_6677), java.lang.Object(ARRAY(i1293)), i1383) :|: TRUE 14.25/4.74 f6677_0_main_Load(EOS(STATIC_6677), java.lang.Object(ARRAY(i1293)), i1383) -> f6498_0_main_Load(EOS(STATIC_6498), java.lang.Object(ARRAY(i1293)), i1383) :|: TRUE 14.25/4.74 f6498_0_main_Load(EOS(STATIC_6498), java.lang.Object(ARRAY(i1242)), i1244) -> f6502_0_main_LE(EOS(STATIC_6502), java.lang.Object(ARRAY(i1242)), i1244, i1244) :|: TRUE 14.25/4.74 f7537_0_createTree_Return(EOS(STATIC_7537), java.lang.Object(ARRAY(i2403)), i1265, java.lang.Object(Tree(EOC))) -> f7538_0_createTree_Return(EOS(STATIC_7538), java.lang.Object(ARRAY(i2403)), i1265, java.lang.Object(Tree(EOC))) :|: TRUE 14.25/4.74 f7538_0_createTree_Return(EOS(STATIC_7538), java.lang.Object(ARRAY(i2407)), i1265, java.lang.Object(Tree(EOC))) -> f7541_0_main_Store(EOS(STATIC_7541), java.lang.Object(ARRAY(i2407)), i1265, java.lang.Object(Tree(EOC))) :|: TRUE 14.25/4.74 f7541_0_main_Store(EOS(STATIC_7541), java.lang.Object(ARRAY(i2407)), i1265, java.lang.Object(Tree(EOC))) -> f7544_0_main_New(EOS(STATIC_7544), java.lang.Object(ARRAY(i2407)), i1265, java.lang.Object(Tree(EOC))) :|: TRUE 14.25/4.74 f7544_0_main_New(EOS(STATIC_7544), java.lang.Object(ARRAY(i2407)), i1265, java.lang.Object(Tree(EOC))) -> f7548_0_main_Duplicate(EOS(STATIC_7548), java.lang.Object(ARRAY(i2407)), i1265, java.lang.Object(Tree(EOC))) :|: TRUE 14.25/4.74 f7548_0_main_Duplicate(EOS(STATIC_7548), java.lang.Object(ARRAY(i2407)), i1265, java.lang.Object(Tree(EOC))) -> f7551_0_main_Load(EOS(STATIC_7551), java.lang.Object(ARRAY(i2407)), i1265, java.lang.Object(Tree(EOC))) :|: TRUE 14.25/4.74 f7551_0_main_Load(EOS(STATIC_7551), java.lang.Object(ARRAY(i2407)), i1265, java.lang.Object(Tree(EOC))) -> f7555_0_main_Load(EOS(STATIC_7555), java.lang.Object(ARRAY(i2407)), i1265, java.lang.Object(Tree(EOC))) :|: TRUE 14.25/4.74 f7555_0_main_Load(EOS(STATIC_7555), java.lang.Object(ARRAY(i2407)), i1265, java.lang.Object(Tree(EOC))) -> f7559_0_main_InvokeMethod(EOS(STATIC_7559), java.lang.Object(ARRAY(i2407)), i1265, java.lang.Object(Tree(EOC))) :|: TRUE 14.25/4.74 f7559_0_main_InvokeMethod(EOS(STATIC_7559), java.lang.Object(ARRAY(i2407)), i1265, java.lang.Object(Tree(EOC))) -> f7562_0__init__Load(EOS(STATIC_7562), java.lang.Object(ARRAY(i2407)), i1265, java.lang.Object(Tree(EOC))) :|: TRUE 14.25/4.74 f7562_0__init__Load(EOS(STATIC_7562), java.lang.Object(ARRAY(i2407)), i1265, java.lang.Object(Tree(EOC))) -> f7569_0__init__InvokeMethod(EOS(STATIC_7569), java.lang.Object(ARRAY(i2407)), i1265, java.lang.Object(Tree(EOC))) :|: TRUE 14.25/4.74 f7569_0__init__InvokeMethod(EOS(STATIC_7569), java.lang.Object(ARRAY(i2407)), i1265, java.lang.Object(Tree(EOC))) -> f7573_0__init__Load(EOS(STATIC_7573), java.lang.Object(ARRAY(i2407)), i1265, java.lang.Object(Tree(EOC))) :|: TRUE 14.25/4.74 f7573_0__init__Load(EOS(STATIC_7573), java.lang.Object(ARRAY(i2407)), i1265, java.lang.Object(Tree(EOC))) -> f7578_0__init__Load(EOS(STATIC_7578), java.lang.Object(ARRAY(i2407)), i1265, java.lang.Object(Tree(EOC))) :|: TRUE 14.25/4.74 f7578_0__init__Load(EOS(STATIC_7578), java.lang.Object(ARRAY(i2407)), i1265, java.lang.Object(Tree(EOC))) -> f7582_0__init__FieldAccess(EOS(STATIC_7582), java.lang.Object(ARRAY(i2407)), i1265, java.lang.Object(Tree(EOC))) :|: TRUE 14.25/4.74 f7582_0__init__FieldAccess(EOS(STATIC_7582), java.lang.Object(ARRAY(i2407)), i1265, java.lang.Object(Tree(EOC))) -> f7585_0__init__Load(EOS(STATIC_7585), java.lang.Object(ARRAY(i2407)), i1265) :|: TRUE 14.25/4.74 f7585_0__init__Load(EOS(STATIC_7585), java.lang.Object(ARRAY(i2407)), i1265) -> f7590_0__init__Load(EOS(STATIC_7590), java.lang.Object(ARRAY(i2407)), i1265) :|: TRUE 14.25/4.74 f7590_0__init__Load(EOS(STATIC_7590), java.lang.Object(ARRAY(i2407)), i1265) -> f7594_0__init__FieldAccess(EOS(STATIC_7594), java.lang.Object(ARRAY(i2407)), i1265) :|: TRUE 14.25/4.74 f7594_0__init__FieldAccess(EOS(STATIC_7594), java.lang.Object(ARRAY(i2407)), i1265) -> f7598_0__init__Return(EOS(STATIC_7598), java.lang.Object(ARRAY(i2407)), i1265) :|: TRUE 14.25/4.74 f7598_0__init__Return(EOS(STATIC_7598), java.lang.Object(ARRAY(i2407)), i1265) -> f7603_0_main_Store(EOS(STATIC_7603), java.lang.Object(ARRAY(i2407)), i1265) :|: TRUE 14.25/4.74 f7603_0_main_Store(EOS(STATIC_7603), java.lang.Object(ARRAY(i2407)), i1265) -> f7607_0_main_Inc(EOS(STATIC_7607), java.lang.Object(ARRAY(i2407)), i1265) :|: TRUE 14.25/4.74 f7607_0_main_Inc(EOS(STATIC_7607), java.lang.Object(ARRAY(i2407)), i1265) -> f7613_0_main_JMP(EOS(STATIC_7613), java.lang.Object(ARRAY(i2407)), i1265 + -1) :|: TRUE 14.25/4.74 f7613_0_main_JMP(EOS(STATIC_7613), java.lang.Object(ARRAY(i2407)), i2488) -> f7618_0_main_Load(EOS(STATIC_7618), java.lang.Object(ARRAY(i2407)), i2488) :|: TRUE 14.25/4.74 f7618_0_main_Load(EOS(STATIC_7618), java.lang.Object(ARRAY(i2407)), i2488) -> f6498_0_main_Load(EOS(STATIC_6498), java.lang.Object(ARRAY(i2407)), i2488) :|: TRUE 14.25/4.74 f6520_1_createTree_InvokeMethod(EOS(STATIC_6520), java.lang.Object(ARRAY(i1293)), i1265) -> f6554_0_createTree_Return(EOS(STATIC_6554), java.lang.Object(ARRAY(i1293)), i1265) :|: TRUE 14.25/4.74 f6520_1_createTree_InvokeMethod(EOS(STATIC_6520), java.lang.Object(ARRAY(i2403)), i1265) -> f7537_0_createTree_Return(EOS(STATIC_7537), java.lang.Object(ARRAY(i2403)), i1265, java.lang.Object(Tree(EOC))) :|: TRUE 14.25/4.74 Combined rules. Obtained 2 IRulesP rules: 14.25/4.74 f6502_0_main_LE(EOS(STATIC_6502), java.lang.Object(ARRAY(i1242:0)), i1265:0, i1265:0) -> f6502_0_main_LE(EOS(STATIC_6502), java.lang.Object(ARRAY(i1242:0)), i1265:0 - 1, i1265:0 - 1) :|: i1243:0 > 0 && i1265:0 > 0 14.25/4.74 Removed following non-SCC rules: 14.25/4.74 f6502_0_main_LE(EOS(STATIC_6502), java.lang.Object(ARRAY(i1242:0)), i1265:0, i1265:0) -> f8324_0_createTree_InvokeMethod(EOS(STATIC_8324), java.lang.Object(ARRAY(i1242:0))) :|: i1243:0 > 0 && i1265:0 > 0 14.25/4.74 Filtered constant ground arguments: 14.25/4.74 f6502_0_main_LE(x1, x2, x3, x4) -> f6502_0_main_LE(x2, x3, x4) 14.25/4.74 EOS(x1) -> EOS 14.25/4.74 Filtered duplicate arguments: 14.25/4.74 f6502_0_main_LE(x1, x2, x3) -> f6502_0_main_LE(x1, x3) 14.25/4.74 Filtered unneeded arguments: 14.25/4.74 f6502_0_main_LE(x1, x2) -> f6502_0_main_LE(x2) 14.25/4.74 Finished conversion. Obtained 1 rules.P rules: 14.25/4.74 f6502_0_main_LE(i1265:0) -> f6502_0_main_LE(i1265:0 - 1) :|: i1243:0 > 0 && i1265:0 > 0 14.25/4.74 14.25/4.74 ---------------------------------------- 14.25/4.74 14.25/4.74 (34) 14.25/4.74 Obligation: 14.25/4.74 Rules: 14.25/4.74 f6502_0_main_LE(i1265:0) -> f6502_0_main_LE(i1265:0 - 1) :|: i1243:0 > 0 && i1265:0 > 0 14.25/4.74 14.25/4.74 ---------------------------------------- 14.25/4.74 14.25/4.74 (35) IRSFormatTransformerProof (EQUIVALENT) 14.25/4.74 Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). 14.25/4.74 ---------------------------------------- 14.25/4.74 14.25/4.74 (36) 14.25/4.74 Obligation: 14.25/4.74 Rules: 14.25/4.74 f6502_0_main_LE(i1265:0) -> f6502_0_main_LE(arith) :|: i1243:0 > 0 && i1265:0 > 0 && arith = i1265:0 - 1 14.25/4.74 14.25/4.74 ---------------------------------------- 14.25/4.74 14.25/4.74 (37) IRSwTTerminationDigraphProof (EQUIVALENT) 14.25/4.74 Constructed termination digraph! 14.25/4.74 Nodes: 14.25/4.74 (1) f6502_0_main_LE(i1265:0) -> f6502_0_main_LE(arith) :|: i1243:0 > 0 && i1265:0 > 0 && arith = i1265:0 - 1 14.25/4.74 14.25/4.74 Arcs: 14.25/4.74 (1) -> (1) 14.25/4.74 14.25/4.74 This digraph is fully evaluated! 14.25/4.74 ---------------------------------------- 14.25/4.74 14.25/4.74 (38) 14.25/4.74 Obligation: 14.25/4.74 14.25/4.74 Termination digraph: 14.25/4.74 Nodes: 14.25/4.74 (1) f6502_0_main_LE(i1265:0) -> f6502_0_main_LE(arith) :|: i1243:0 > 0 && i1265:0 > 0 && arith = i1265:0 - 1 14.25/4.74 14.25/4.74 Arcs: 14.25/4.74 (1) -> (1) 14.25/4.74 14.25/4.74 This digraph is fully evaluated! 14.25/4.74 14.25/4.74 ---------------------------------------- 14.25/4.74 14.25/4.74 (39) IntTRSCompressionProof (EQUIVALENT) 14.25/4.74 Compressed rules. 14.25/4.74 ---------------------------------------- 14.25/4.74 14.25/4.74 (40) 14.25/4.74 Obligation: 14.25/4.74 Rules: 14.25/4.74 f6502_0_main_LE(i1265:0:0) -> f6502_0_main_LE(i1265:0:0 - 1) :|: i1243:0:0 > 0 && i1265:0:0 > 0 14.25/4.74 14.25/4.74 ---------------------------------------- 14.25/4.74 14.25/4.74 (41) TempFilterProof (SOUND) 14.25/4.74 Used the following sort dictionary for filtering: 14.25/4.74 f6502_0_main_LE(INTEGER) 14.25/4.74 Replaced non-predefined constructor symbols by 0. 14.25/4.74 ---------------------------------------- 14.25/4.74 14.25/4.74 (42) 14.25/4.74 Obligation: 14.25/4.74 Rules: 14.25/4.74 f6502_0_main_LE(i1265:0:0) -> f6502_0_main_LE(c) :|: c = i1265:0:0 - 1 && (i1243:0:0 > 0 && i1265:0:0 > 0) 14.25/4.74 14.25/4.74 ---------------------------------------- 14.25/4.74 14.25/4.74 (43) RankingReductionPairProof (EQUIVALENT) 14.25/4.74 Interpretation: 14.25/4.74 [ f6502_0_main_LE ] = f6502_0_main_LE_1 14.25/4.74 14.25/4.74 The following rules are decreasing: 14.25/4.74 f6502_0_main_LE(i1265:0:0) -> f6502_0_main_LE(c) :|: c = i1265:0:0 - 1 && (i1243:0:0 > 0 && i1265:0:0 > 0) 14.25/4.74 14.25/4.74 The following rules are bounded: 14.25/4.74 f6502_0_main_LE(i1265:0:0) -> f6502_0_main_LE(c) :|: c = i1265:0:0 - 1 && (i1243:0:0 > 0 && i1265:0:0 > 0) 14.25/4.74 14.25/4.74 14.25/4.74 ---------------------------------------- 14.25/4.74 14.25/4.74 (44) 14.25/4.74 YES 14.25/4.78 EOF