/export/starexec/sandbox/solver/bin/starexec_run_standard /export/starexec/sandbox/benchmark/theBenchmark.jar /export/starexec/sandbox/output/output_files -------------------------------------------------------------------------------- YES proof of /export/starexec/sandbox/benchmark/theBenchmark.jar # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty termination of the given Bare JBC problem could be proven: (0) Bare JBC problem (1) BareJBCToJBCProof [EQUIVALENT, 97 ms] (2) JBC problem (3) JBCToGraph [EQUIVALENT, 1261 ms] (4) JBCTerminationGraph (5) TerminationGraphToSCCProof [SOUND, 0 ms] (6) AND (7) JBCTerminationSCC (8) SCCToQDPProof [SOUND, 241 ms] (9) QDP (10) UsableRulesReductionPairsProof [EQUIVALENT, 61 ms] (11) QDP (12) PisEmptyProof [EQUIVALENT, 0 ms] (13) YES (14) JBCTerminationSCC (15) SCCToQDPProof [SOUND, 104 ms] (16) QDP (17) QDPSizeChangeProof [EQUIVALENT, 0 ms] (18) YES (19) JBCTerminationSCC (20) SCCToIRSProof [SOUND, 283 ms] (21) IRSwT (22) IRSFormatTransformerProof [EQUIVALENT, 0 ms] (23) IRSwT (24) IRSwTTerminationDigraphProof [EQUIVALENT, 225 ms] (25) IRSwT (26) IntTRSCompressionProof [EQUIVALENT, 0 ms] (27) IRSwT (28) TempFilterProof [SOUND, 46 ms] (29) IntTRS (30) PolynomialOrderProcessor [EQUIVALENT, 0 ms] (31) YES (32) JBCTerminationSCC (33) SCCToIRSProof [SOUND, 158 ms] (34) IRSwT (35) IRSFormatTransformerProof [EQUIVALENT, 0 ms] (36) IRSwT (37) IRSwTTerminationDigraphProof [EQUIVALENT, 22 ms] (38) IRSwT (39) IntTRSCompressionProof [EQUIVALENT, 0 ms] (40) IRSwT (41) TempFilterProof [SOUND, 37 ms] (42) IntTRS (43) RankingReductionPairProof [EQUIVALENT, 21 ms] (44) YES ---------------------------------------- (0) Obligation: need to prove termination of the following program: public class FlattenRTA { public static IntList flatten(TreeList list) { TreeList cur = list; IntList result = null; while (cur != null) { Tree tree = cur.value; if (tree != null) { IntList oldIntList = result; result = new IntList(); result.value = tree.value; result.next = oldIntList; TreeList oldCur = cur; cur = new TreeList(); cur.value = tree.left; cur.next = oldCur; oldCur.value = tree.right; } else cur = cur.next; } if (cur != list) {} return result; } public static void main(String[] args) { Random.args = args; int listLength = Random.random(); TreeList list = null; for (int i = listLength; i > 0; i--) { Tree tree = Tree.createTree(); list = new TreeList(tree, list); } flatten(list); } } public class IntList { int value; IntList next; public IntList(int value, IntList next) { this.value = value; this.next = next; } public IntList() { } public static IntList createList() { IntList result = null; int length = Random.random(); while (length > 0) { result = new IntList(Random.random(), result); length--; } return result; } } public class Random { static String[] args; static int index = 0; public static int random() { String string = args[index]; index++; return string.length(); } } public class Tree { Tree left; Tree right; int value; public Tree(Tree l, Tree r) { this.left = l; this.right = r; } public Tree() { } public static Tree createNode() { Tree result = new Tree(); result.value = Random.random(); return result; } public static Tree createTree() { int counter = Random.random(); if (counter == 0) { return null; } Tree result = createNode(); Tree t = result; while (counter > 0) { int branch = Random.random(); if (branch > 0) { if (t.left == null) { t.left = createNode(); t = result; } else { t = t.left; } } else { if (t.right == null) { t.right = createNode(); t = result; } else { t = t.right; } } counter--; } return result; } public static void main(String[] args) { Random.args = args; createTree(); } } public class TreeList { Tree value; TreeList next; public TreeList(Tree value, TreeList next) { this.value = value; this.next = next; } public TreeList() { } } ---------------------------------------- (1) BareJBCToJBCProof (EQUIVALENT) initialized classpath ---------------------------------------- (2) Obligation: need to prove termination of the following program: public class FlattenRTA { public static IntList flatten(TreeList list) { TreeList cur = list; IntList result = null; while (cur != null) { Tree tree = cur.value; if (tree != null) { IntList oldIntList = result; result = new IntList(); result.value = tree.value; result.next = oldIntList; TreeList oldCur = cur; cur = new TreeList(); cur.value = tree.left; cur.next = oldCur; oldCur.value = tree.right; } else cur = cur.next; } if (cur != list) {} return result; } public static void main(String[] args) { Random.args = args; int listLength = Random.random(); TreeList list = null; for (int i = listLength; i > 0; i--) { Tree tree = Tree.createTree(); list = new TreeList(tree, list); } flatten(list); } } public class IntList { int value; IntList next; public IntList(int value, IntList next) { this.value = value; this.next = next; } public IntList() { } public static IntList createList() { IntList result = null; int length = Random.random(); while (length > 0) { result = new IntList(Random.random(), result); length--; } return result; } } public class Random { static String[] args; static int index = 0; public static int random() { String string = args[index]; index++; return string.length(); } } public class Tree { Tree left; Tree right; int value; public Tree(Tree l, Tree r) { this.left = l; this.right = r; } public Tree() { } public static Tree createNode() { Tree result = new Tree(); result.value = Random.random(); return result; } public static Tree createTree() { int counter = Random.random(); if (counter == 0) { return null; } Tree result = createNode(); Tree t = result; while (counter > 0) { int branch = Random.random(); if (branch > 0) { if (t.left == null) { t.left = createNode(); t = result; } else { t = t.left; } } else { if (t.right == null) { t.right = createNode(); t = result; } else { t = t.right; } } counter--; } return result; } public static void main(String[] args) { Random.args = args; createTree(); } } public class TreeList { Tree value; TreeList next; public TreeList(Tree value, TreeList next) { this.value = value; this.next = next; } public TreeList() { } } ---------------------------------------- (3) JBCToGraph (EQUIVALENT) Constructed TerminationGraph. ---------------------------------------- (4) Obligation: Termination Graph based on JBC Program: FlattenRTA.main([Ljava/lang/String;)V: Graph of 190 nodes with 1 SCC. Tree.createTree()LTree;: Graph of 240 nodes with 1 SCC. FlattenRTA.flatten(LTreeList;)LIntList;: Graph of 142 nodes with 2 SCCs. Tree.createNode()LTree;: Graph of 78 nodes with 0 SCCs. ---------------------------------------- (5) TerminationGraphToSCCProof (SOUND) Splitted TerminationGraph to 4 SCCss. ---------------------------------------- (6) Complex Obligation (AND) ---------------------------------------- (7) Obligation: SCC of termination graph based on JBC Program. SCC contains nodes from the following methods: FlattenRTA.flatten(LTreeList;)LIntList; SCC calls the following helper methods: Performed SCC analyses: *Used field analysis yielded the following read fields: *TreeList: [value, next] *Tree: [value, left, right] *Marker field analysis yielded the following relations that could be markers: ---------------------------------------- (8) SCCToQDPProof (SOUND) Transformed TerminationGraph SCC to QDP. Log: Generated 57 rules for P and 0 rules for R.P rules: f7193_0_flatten_Load(EOS(STATIC_7193), o3301) -> f7204_0_flatten_NULL(EOS(STATIC_7204), o3301, o3301) :|: TRUE f7204_0_flatten_NULL(EOS(STATIC_7204), java.lang.Object(o3545sub), java.lang.Object(o3545sub)) -> f7210_0_flatten_NULL(EOS(STATIC_7210), java.lang.Object(o3545sub), java.lang.Object(o3545sub)) :|: TRUE f7210_0_flatten_NULL(EOS(STATIC_7210), java.lang.Object(o3545sub), java.lang.Object(o3545sub)) -> f7218_0_flatten_Load(EOS(STATIC_7218), java.lang.Object(o3545sub)) :|: TRUE f7218_0_flatten_Load(EOS(STATIC_7218), java.lang.Object(o3545sub)) -> f7225_0_flatten_FieldAccess(EOS(STATIC_7225), java.lang.Object(o3545sub), java.lang.Object(o3545sub)) :|: TRUE f7225_0_flatten_FieldAccess(EOS(STATIC_7225), java.lang.Object(TreeList(EOC, o3664, o3665)), java.lang.Object(TreeList(EOC, o3664, o3665))) -> f7235_0_flatten_FieldAccess(EOS(STATIC_7235), java.lang.Object(TreeList(EOC, o3664, o3665)), java.lang.Object(TreeList(EOC, o3664, o3665))) :|: TRUE f7235_0_flatten_FieldAccess(EOS(STATIC_7235), java.lang.Object(TreeList(EOC, o3664, o3665)), java.lang.Object(TreeList(EOC, o3664, o3665))) -> f7243_0_flatten_Store(EOS(STATIC_7243), java.lang.Object(TreeList(EOC, o3664, o3665)), o3664) :|: TRUE f7243_0_flatten_Store(EOS(STATIC_7243), java.lang.Object(TreeList(EOC, o3664, o3665)), o3664) -> f7250_0_flatten_Load(EOS(STATIC_7250), java.lang.Object(TreeList(EOC, o3664, o3665)), o3664) :|: TRUE f7250_0_flatten_Load(EOS(STATIC_7250), java.lang.Object(TreeList(EOC, o3664, o3665)), o3664) -> f7255_0_flatten_NULL(EOS(STATIC_7255), java.lang.Object(TreeList(EOC, o3664, o3665)), o3664, o3664) :|: TRUE f7255_0_flatten_NULL(EOS(STATIC_7255), java.lang.Object(TreeList(EOC, java.lang.Object(o3797sub), o3665)), java.lang.Object(o3797sub), java.lang.Object(o3797sub)) -> f7260_0_flatten_NULL(EOS(STATIC_7260), java.lang.Object(TreeList(EOC, java.lang.Object(o3797sub), o3665)), java.lang.Object(o3797sub), java.lang.Object(o3797sub)) :|: TRUE f7255_0_flatten_NULL(EOS(STATIC_7255), java.lang.Object(TreeList(EOC, NULL, o3665)), NULL, NULL) -> f7261_0_flatten_NULL(EOS(STATIC_7261), java.lang.Object(TreeList(EOC, NULL, o3665)), NULL, NULL) :|: TRUE f7260_0_flatten_NULL(EOS(STATIC_7260), java.lang.Object(TreeList(EOC, java.lang.Object(o3797sub), o3665)), java.lang.Object(o3797sub), java.lang.Object(o3797sub)) -> f7264_0_flatten_Load(EOS(STATIC_7264), java.lang.Object(TreeList(EOC, java.lang.Object(o3797sub), o3665)), java.lang.Object(o3797sub)) :|: TRUE f7264_0_flatten_Load(EOS(STATIC_7264), java.lang.Object(TreeList(EOC, java.lang.Object(o3797sub), o3665)), java.lang.Object(o3797sub)) -> f7266_0_flatten_Store(EOS(STATIC_7266), java.lang.Object(TreeList(EOC, java.lang.Object(o3797sub), o3665)), java.lang.Object(o3797sub)) :|: TRUE f7266_0_flatten_Store(EOS(STATIC_7266), java.lang.Object(TreeList(EOC, java.lang.Object(o3797sub), o3665)), java.lang.Object(o3797sub)) -> f7270_0_flatten_New(EOS(STATIC_7270), java.lang.Object(TreeList(EOC, java.lang.Object(o3797sub), o3665)), java.lang.Object(o3797sub)) :|: TRUE f7270_0_flatten_New(EOS(STATIC_7270), java.lang.Object(TreeList(EOC, java.lang.Object(o3797sub), o3665)), java.lang.Object(o3797sub)) -> f7272_0_flatten_Duplicate(EOS(STATIC_7272), java.lang.Object(TreeList(EOC, java.lang.Object(o3797sub), o3665)), java.lang.Object(o3797sub)) :|: TRUE f7272_0_flatten_Duplicate(EOS(STATIC_7272), java.lang.Object(TreeList(EOC, java.lang.Object(o3797sub), o3665)), java.lang.Object(o3797sub)) -> f7274_0_flatten_InvokeMethod(EOS(STATIC_7274), java.lang.Object(TreeList(EOC, java.lang.Object(o3797sub), o3665)), java.lang.Object(o3797sub)) :|: TRUE f7274_0_flatten_InvokeMethod(EOS(STATIC_7274), java.lang.Object(TreeList(EOC, java.lang.Object(o3797sub), o3665)), java.lang.Object(o3797sub)) -> f7275_0__init__Load(EOS(STATIC_7275), java.lang.Object(TreeList(EOC, java.lang.Object(o3797sub), o3665)), java.lang.Object(o3797sub)) :|: TRUE f7275_0__init__Load(EOS(STATIC_7275), java.lang.Object(TreeList(EOC, java.lang.Object(o3797sub), o3665)), java.lang.Object(o3797sub)) -> f7276_0__init__InvokeMethod(EOS(STATIC_7276), java.lang.Object(TreeList(EOC, java.lang.Object(o3797sub), o3665)), java.lang.Object(o3797sub)) :|: TRUE f7276_0__init__InvokeMethod(EOS(STATIC_7276), java.lang.Object(TreeList(EOC, java.lang.Object(o3797sub), o3665)), java.lang.Object(o3797sub)) -> f7277_0__init__Return(EOS(STATIC_7277), java.lang.Object(TreeList(EOC, java.lang.Object(o3797sub), o3665)), java.lang.Object(o3797sub)) :|: TRUE f7277_0__init__Return(EOS(STATIC_7277), java.lang.Object(TreeList(EOC, java.lang.Object(o3797sub), o3665)), java.lang.Object(o3797sub)) -> f7278_0_flatten_Store(EOS(STATIC_7278), java.lang.Object(TreeList(EOC, java.lang.Object(o3797sub), o3665)), java.lang.Object(o3797sub)) :|: TRUE f7278_0_flatten_Store(EOS(STATIC_7278), java.lang.Object(TreeList(EOC, java.lang.Object(o3797sub), o3665)), java.lang.Object(o3797sub)) -> f7279_0_flatten_Load(EOS(STATIC_7279), java.lang.Object(TreeList(EOC, java.lang.Object(o3797sub), o3665)), java.lang.Object(o3797sub)) :|: TRUE f7279_0_flatten_Load(EOS(STATIC_7279), java.lang.Object(TreeList(EOC, java.lang.Object(o3797sub), o3665)), java.lang.Object(o3797sub)) -> f7280_0_flatten_Load(EOS(STATIC_7280), java.lang.Object(TreeList(EOC, java.lang.Object(o3797sub), o3665)), java.lang.Object(o3797sub)) :|: TRUE f7280_0_flatten_Load(EOS(STATIC_7280), java.lang.Object(TreeList(EOC, java.lang.Object(o3797sub), o3665)), java.lang.Object(o3797sub)) -> f7281_0_flatten_FieldAccess(EOS(STATIC_7281), java.lang.Object(TreeList(EOC, java.lang.Object(o3797sub), o3665)), java.lang.Object(o3797sub), java.lang.Object(o3797sub)) :|: TRUE f7281_0_flatten_FieldAccess(EOS(STATIC_7281), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2720, o3929, o3930)), o3665)), java.lang.Object(Tree(EOC, i2720, o3929, o3930)), java.lang.Object(Tree(EOC, i2720, o3929, o3930))) -> f7282_0_flatten_FieldAccess(EOS(STATIC_7282), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2720, o3929, o3930)), o3665)), java.lang.Object(Tree(EOC, i2720, o3929, o3930)), java.lang.Object(Tree(EOC, i2720, o3929, o3930))) :|: TRUE f7282_0_flatten_FieldAccess(EOS(STATIC_7282), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2720, o3929, o3930)), o3665)), java.lang.Object(Tree(EOC, i2720, o3929, o3930)), java.lang.Object(Tree(EOC, i2720, o3929, o3930))) -> f7283_0_flatten_FieldAccess(EOS(STATIC_7283), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2720, o3929, o3930)), o3665)), java.lang.Object(Tree(EOC, i2720, o3929, o3930))) :|: TRUE f7283_0_flatten_FieldAccess(EOS(STATIC_7283), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2720, o3929, o3930)), o3665)), java.lang.Object(Tree(EOC, i2720, o3929, o3930))) -> f7284_0_flatten_Load(EOS(STATIC_7284), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2720, o3929, o3930)), o3665)), java.lang.Object(Tree(EOC, i2720, o3929, o3930))) :|: TRUE f7284_0_flatten_Load(EOS(STATIC_7284), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2720, o3929, o3930)), o3665)), java.lang.Object(Tree(EOC, i2720, o3929, o3930))) -> f7285_0_flatten_Load(EOS(STATIC_7285), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2720, o3929, o3930)), o3665)), java.lang.Object(Tree(EOC, i2720, o3929, o3930))) :|: TRUE f7285_0_flatten_Load(EOS(STATIC_7285), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2720, o3929, o3930)), o3665)), java.lang.Object(Tree(EOC, i2720, o3929, o3930))) -> f7286_0_flatten_FieldAccess(EOS(STATIC_7286), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2720, o3929, o3930)), o3665)), java.lang.Object(Tree(EOC, i2720, o3929, o3930))) :|: TRUE f7286_0_flatten_FieldAccess(EOS(STATIC_7286), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2720, o3929, o3930)), o3665)), java.lang.Object(Tree(EOC, i2720, o3929, o3930))) -> f7287_0_flatten_Load(EOS(STATIC_7287), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2720, o3929, o3930)), o3665)), java.lang.Object(Tree(EOC, i2720, o3929, o3930))) :|: TRUE f7287_0_flatten_Load(EOS(STATIC_7287), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2720, o3929, o3930)), o3665)), java.lang.Object(Tree(EOC, i2720, o3929, o3930))) -> f7288_0_flatten_Store(EOS(STATIC_7288), java.lang.Object(Tree(EOC, i2720, o3929, o3930)), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2720, o3929, o3930)), o3665))) :|: TRUE f7288_0_flatten_Store(EOS(STATIC_7288), java.lang.Object(Tree(EOC, i2720, o3929, o3930)), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2720, o3929, o3930)), o3665))) -> f7289_0_flatten_New(EOS(STATIC_7289), java.lang.Object(Tree(EOC, i2720, o3929, o3930)), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2720, o3929, o3930)), o3665))) :|: TRUE f7289_0_flatten_New(EOS(STATIC_7289), java.lang.Object(Tree(EOC, i2720, o3929, o3930)), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2720, o3929, o3930)), o3665))) -> f7290_0_flatten_Duplicate(EOS(STATIC_7290), java.lang.Object(Tree(EOC, i2720, o3929, o3930)), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2720, o3929, o3930)), o3665)), java.lang.Object(TreeList(EOC, NULL, NULL))) :|: TRUE f7290_0_flatten_Duplicate(EOS(STATIC_7290), java.lang.Object(Tree(EOC, i2720, o3929, o3930)), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2720, o3929, o3930)), o3665)), java.lang.Object(TreeList(EOC, NULL, NULL))) -> f7291_0_flatten_InvokeMethod(EOS(STATIC_7291), java.lang.Object(Tree(EOC, i2720, o3929, o3930)), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2720, o3929, o3930)), o3665)), java.lang.Object(TreeList(EOC, NULL, NULL)), java.lang.Object(TreeList(EOC, NULL, NULL))) :|: TRUE f7291_0_flatten_InvokeMethod(EOS(STATIC_7291), java.lang.Object(Tree(EOC, i2720, o3929, o3930)), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2720, o3929, o3930)), o3665)), java.lang.Object(TreeList(EOC, NULL, NULL)), java.lang.Object(TreeList(EOC, NULL, NULL))) -> f7292_0__init__Load(EOS(STATIC_7292), java.lang.Object(Tree(EOC, i2720, o3929, o3930)), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2720, o3929, o3930)), o3665)), java.lang.Object(TreeList(EOC, NULL, NULL)), java.lang.Object(TreeList(EOC, NULL, NULL))) :|: TRUE f7292_0__init__Load(EOS(STATIC_7292), java.lang.Object(Tree(EOC, i2720, o3929, o3930)), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2720, o3929, o3930)), o3665)), java.lang.Object(TreeList(EOC, NULL, NULL)), java.lang.Object(TreeList(EOC, NULL, NULL))) -> f7293_0__init__InvokeMethod(EOS(STATIC_7293), java.lang.Object(Tree(EOC, i2720, o3929, o3930)), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2720, o3929, o3930)), o3665)), java.lang.Object(TreeList(EOC, NULL, NULL)), java.lang.Object(TreeList(EOC, NULL, NULL))) :|: TRUE f7293_0__init__InvokeMethod(EOS(STATIC_7293), java.lang.Object(Tree(EOC, i2720, o3929, o3930)), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2720, o3929, o3930)), o3665)), java.lang.Object(TreeList(EOC, NULL, NULL)), java.lang.Object(TreeList(EOC, NULL, NULL))) -> f7294_0__init__Return(EOS(STATIC_7294), java.lang.Object(Tree(EOC, i2720, o3929, o3930)), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2720, o3929, o3930)), o3665)), java.lang.Object(TreeList(EOC, NULL, NULL))) :|: TRUE f7294_0__init__Return(EOS(STATIC_7294), java.lang.Object(Tree(EOC, i2720, o3929, o3930)), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2720, o3929, o3930)), o3665)), java.lang.Object(TreeList(EOC, NULL, NULL))) -> f7295_0_flatten_Store(EOS(STATIC_7295), java.lang.Object(Tree(EOC, i2720, o3929, o3930)), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2720, o3929, o3930)), o3665)), java.lang.Object(TreeList(EOC, NULL, NULL))) :|: TRUE f7295_0_flatten_Store(EOS(STATIC_7295), java.lang.Object(Tree(EOC, i2720, o3929, o3930)), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2720, o3929, o3930)), o3665)), java.lang.Object(TreeList(EOC, NULL, NULL))) -> f7296_0_flatten_Load(EOS(STATIC_7296), java.lang.Object(TreeList(EOC, NULL, NULL)), java.lang.Object(Tree(EOC, i2720, o3929, o3930)), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2720, o3929, o3930)), o3665))) :|: TRUE f7296_0_flatten_Load(EOS(STATIC_7296), java.lang.Object(TreeList(EOC, NULL, NULL)), java.lang.Object(Tree(EOC, i2720, o3929, o3930)), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2720, o3929, o3930)), o3665))) -> f7297_0_flatten_Load(EOS(STATIC_7297), java.lang.Object(TreeList(EOC, NULL, NULL)), java.lang.Object(Tree(EOC, i2720, o3929, o3930)), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2720, o3929, o3930)), o3665)), java.lang.Object(TreeList(EOC, NULL, NULL))) :|: TRUE f7297_0_flatten_Load(EOS(STATIC_7297), java.lang.Object(TreeList(EOC, NULL, NULL)), java.lang.Object(Tree(EOC, i2720, o3929, o3930)), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2720, o3929, o3930)), o3665)), java.lang.Object(TreeList(EOC, NULL, NULL))) -> f7298_0_flatten_FieldAccess(EOS(STATIC_7298), java.lang.Object(TreeList(EOC, NULL, NULL)), java.lang.Object(Tree(EOC, i2720, o3929, o3930)), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2720, o3929, o3930)), o3665)), java.lang.Object(TreeList(EOC, NULL, NULL)), java.lang.Object(Tree(EOC, i2720, o3929, o3930))) :|: TRUE f7298_0_flatten_FieldAccess(EOS(STATIC_7298), java.lang.Object(TreeList(EOC, NULL, NULL)), java.lang.Object(Tree(EOC, i2720, o3929, o3930)), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2720, o3929, o3930)), o3665)), java.lang.Object(TreeList(EOC, NULL, NULL)), java.lang.Object(Tree(EOC, i2720, o3929, o3930))) -> f7299_0_flatten_FieldAccess(EOS(STATIC_7299), java.lang.Object(TreeList(EOC, NULL, NULL)), java.lang.Object(Tree(EOC, i2720, o3929, o3930)), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2720, o3929, o3930)), o3665)), java.lang.Object(TreeList(EOC, NULL, NULL)), o3929) :|: TRUE f7299_0_flatten_FieldAccess(EOS(STATIC_7299), java.lang.Object(TreeList(EOC, NULL, NULL)), java.lang.Object(Tree(EOC, i2720, o3929, o3930)), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2720, o3929, o3930)), o3665)), java.lang.Object(TreeList(EOC, NULL, NULL)), o3929) -> f7300_0_flatten_Load(EOS(STATIC_7300), java.lang.Object(TreeList(EOC, o3929, NULL)), java.lang.Object(Tree(EOC, i2720, o3929, o3930)), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2720, o3929, o3930)), o3665))) :|: TRUE f7300_0_flatten_Load(EOS(STATIC_7300), java.lang.Object(TreeList(EOC, o3929, NULL)), java.lang.Object(Tree(EOC, i2720, o3929, o3930)), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2720, o3929, o3930)), o3665))) -> f7301_0_flatten_Load(EOS(STATIC_7301), java.lang.Object(TreeList(EOC, o3929, NULL)), java.lang.Object(Tree(EOC, i2720, o3929, o3930)), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2720, o3929, o3930)), o3665)), java.lang.Object(TreeList(EOC, o3929, NULL))) :|: TRUE f7301_0_flatten_Load(EOS(STATIC_7301), java.lang.Object(TreeList(EOC, o3929, NULL)), java.lang.Object(Tree(EOC, i2720, o3929, o3930)), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2720, o3929, o3930)), o3665)), java.lang.Object(TreeList(EOC, o3929, NULL))) -> f7302_0_flatten_FieldAccess(EOS(STATIC_7302), java.lang.Object(TreeList(EOC, o3929, NULL)), java.lang.Object(Tree(EOC, i2720, o3929, o3930)), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2720, o3929, o3930)), o3665)), java.lang.Object(TreeList(EOC, o3929, NULL)), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2720, o3929, o3930)), o3665))) :|: TRUE f7302_0_flatten_FieldAccess(EOS(STATIC_7302), java.lang.Object(TreeList(EOC, o3929, NULL)), java.lang.Object(Tree(EOC, i2720, o3929, o3930)), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2720, o3929, o3930)), o3665)), java.lang.Object(TreeList(EOC, o3929, NULL)), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2720, o3929, o3930)), o3665))) -> f7303_0_flatten_Load(EOS(STATIC_7303), java.lang.Object(TreeList(EOC, o3929, java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2720, o3929, o3930)), o3665)))), java.lang.Object(Tree(EOC, i2720, o3929, o3930)), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2720, o3929, o3930)), o3665))) :|: TRUE f7303_0_flatten_Load(EOS(STATIC_7303), java.lang.Object(TreeList(EOC, o3929, java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2720, o3929, o3930)), o3665)))), java.lang.Object(Tree(EOC, i2720, o3929, o3930)), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2720, o3929, o3930)), o3665))) -> f7304_0_flatten_Load(EOS(STATIC_7304), java.lang.Object(TreeList(EOC, o3929, java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2720, o3929, o3930)), o3665)))), java.lang.Object(Tree(EOC, i2720, o3929, o3930)), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2720, o3929, o3930)), o3665))) :|: TRUE f7304_0_flatten_Load(EOS(STATIC_7304), java.lang.Object(TreeList(EOC, o3929, java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2720, o3929, o3930)), o3665)))), java.lang.Object(Tree(EOC, i2720, o3929, o3930)), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2720, o3929, o3930)), o3665))) -> f7305_0_flatten_FieldAccess(EOS(STATIC_7305), java.lang.Object(TreeList(EOC, o3929, java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2720, o3929, o3930)), o3665)))), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2720, o3929, o3930)), o3665)), java.lang.Object(Tree(EOC, i2720, o3929, o3930))) :|: TRUE f7305_0_flatten_FieldAccess(EOS(STATIC_7305), java.lang.Object(TreeList(EOC, o3929, java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2720, o3929, o3930)), o3665)))), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2720, o3929, o3930)), o3665)), java.lang.Object(Tree(EOC, i2720, o3929, o3930))) -> f7306_0_flatten_FieldAccess(EOS(STATIC_7306), java.lang.Object(TreeList(EOC, o3929, java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2720, o3929, o3930)), o3665)))), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2720, o3929, o3930)), o3665)), o3930) :|: TRUE f7306_0_flatten_FieldAccess(EOS(STATIC_7306), java.lang.Object(TreeList(EOC, o3929, java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2720, o3929, o3930)), o3665)))), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2720, o3929, o3930)), o3665)), o3930) -> f7307_0_flatten_JMP(EOS(STATIC_7307), java.lang.Object(TreeList(EOC, o3929, java.lang.Object(TreeList(EOC, o3930, o3665))))) :|: TRUE f7307_0_flatten_JMP(EOS(STATIC_7307), java.lang.Object(TreeList(EOC, o3929, java.lang.Object(TreeList(EOC, o3930, o3665))))) -> f7308_0_flatten_JMP(EOS(STATIC_7308), java.lang.Object(TreeList(EOC, o3929, java.lang.Object(TreeList(EOC, o3930, o3665))))) :|: TRUE f7308_0_flatten_JMP(EOS(STATIC_7308), java.lang.Object(TreeList(EOC, o3929, java.lang.Object(TreeList(EOC, o3930, o3665))))) -> f7309_0_flatten_Load(EOS(STATIC_7309), java.lang.Object(TreeList(EOC, o3929, java.lang.Object(TreeList(EOC, o3930, o3665))))) :|: TRUE f7309_0_flatten_Load(EOS(STATIC_7309), java.lang.Object(TreeList(EOC, o3929, java.lang.Object(TreeList(EOC, o3930, o3665))))) -> f7193_0_flatten_Load(EOS(STATIC_7193), java.lang.Object(TreeList(EOC, o3929, java.lang.Object(TreeList(EOC, o3930, o3665))))) :|: TRUE f7261_0_flatten_NULL(EOS(STATIC_7261), java.lang.Object(TreeList(EOC, NULL, o3665)), NULL, NULL) -> f7265_0_flatten_Load(EOS(STATIC_7265), java.lang.Object(TreeList(EOC, NULL, o3665))) :|: TRUE f7265_0_flatten_Load(EOS(STATIC_7265), java.lang.Object(TreeList(EOC, NULL, o3665))) -> f7267_0_flatten_FieldAccess(EOS(STATIC_7267), java.lang.Object(TreeList(EOC, NULL, o3665))) :|: TRUE f7267_0_flatten_FieldAccess(EOS(STATIC_7267), java.lang.Object(TreeList(EOC, NULL, o3665))) -> f7271_0_flatten_Store(EOS(STATIC_7271), o3665) :|: TRUE f7271_0_flatten_Store(EOS(STATIC_7271), o3665) -> f7273_0_flatten_JMP(EOS(STATIC_7273), o3665) :|: TRUE f7273_0_flatten_JMP(EOS(STATIC_7273), o3665) -> f7189_0_flatten_JMP(EOS(STATIC_7189), o3665) :|: TRUE f7189_0_flatten_JMP(EOS(STATIC_7189), o3301) -> f7193_0_flatten_Load(EOS(STATIC_7193), o3301) :|: TRUE R rules: Combined rules. Obtained 2 conditional rules for P and 0 conditional rules for R.P rules: f7193_0_flatten_Load(EOS(STATIC_7193), java.lang.Object(TreeList(EOC, NULL, o3665:0))) -> f7193_0_flatten_Load(EOS(STATIC_7193), o3665:0) :|: TRUE f7193_0_flatten_Load(EOS(STATIC_7193), java.lang.Object(TreeList(EOC, java.lang.Object(Tree(EOC, i2720:0, o3929:0, o3930:0)), o3665:0))) -> f7193_0_flatten_Load(EOS(STATIC_7193), java.lang.Object(TreeList(EOC, o3929:0, java.lang.Object(TreeList(EOC, o3930:0, o3665:0))))) :|: TRUE R rules: Filtered ground terms: f7193_0_flatten_Load(x1, x2) -> f7193_0_flatten_Load(x2) EOS(x1) -> EOS TreeList(x1, x2, x3) -> TreeList(x2, x3) Tree(x1, x2, x3, x4) -> Tree(x2, x3, x4) Filtered unneeded arguments: Tree(x1, x2, x3) -> Tree(x2, x3) Combined rules. Obtained 2 conditional rules for P and 0 conditional rules for R.P rules: F7193_0_FLATTEN_LOAD(java.lang.Object(TreeList(NULL, o3665:0:0))) -> F7193_0_FLATTEN_LOAD(o3665:0:0) :|: TRUE F7193_0_FLATTEN_LOAD(java.lang.Object(TreeList(java.lang.Object(Tree(o3929:0:0, o3930:0:0)), o3665:0:0))) -> F7193_0_FLATTEN_LOAD(java.lang.Object(TreeList(o3929:0:0, java.lang.Object(TreeList(o3930:0:0, o3665:0:0))))) :|: TRUE R rules: ---------------------------------------- (9) Obligation: Q DP problem: The TRS P consists of the following rules: F7193_0_FLATTEN_LOAD(java.lang.Object(TreeList(NULL, o3665:0:0))) -> F7193_0_FLATTEN_LOAD(o3665:0:0) F7193_0_FLATTEN_LOAD(java.lang.Object(TreeList(java.lang.Object(Tree(o3929:0:0, o3930:0:0)), o3665:0:0))) -> F7193_0_FLATTEN_LOAD(java.lang.Object(TreeList(o3929:0:0, java.lang.Object(TreeList(o3930:0:0, o3665:0:0))))) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (10) UsableRulesReductionPairsProof (EQUIVALENT) 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. The following dependency pairs can be deleted: F7193_0_FLATTEN_LOAD(java.lang.Object(TreeList(NULL, o3665:0:0))) -> F7193_0_FLATTEN_LOAD(o3665:0:0) F7193_0_FLATTEN_LOAD(java.lang.Object(TreeList(java.lang.Object(Tree(o3929:0:0, o3930:0:0)), o3665:0:0))) -> F7193_0_FLATTEN_LOAD(java.lang.Object(TreeList(o3929:0:0, java.lang.Object(TreeList(o3930:0:0, o3665:0:0))))) No rules are removed from R. Used ordering: POLO with Polynomial interpretation [POLO]: POL(F7193_0_FLATTEN_LOAD(x_1)) = 2*x_1 POL(NULL) = 0 POL(Tree(x_1, x_2)) = 2 + x_1 + 2*x_2 POL(TreeList(x_1, x_2)) = 1 + x_1 + x_2 POL(java.lang.Object(x_1)) = 1 + x_1 ---------------------------------------- (11) Obligation: Q DP problem: P is empty. R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (12) PisEmptyProof (EQUIVALENT) The TRS P is empty. Hence, there is no (P,Q,R) chain. ---------------------------------------- (13) YES ---------------------------------------- (14) Obligation: SCC of termination graph based on JBC Program. SCC contains nodes from the following methods: FlattenRTA.flatten(LTreeList;)LIntList; SCC calls the following helper methods: Performed SCC analyses: *Used field analysis yielded the following read fields: *TreeList: [value, next] *Marker field analysis yielded the following relations that could be markers: ---------------------------------------- (15) SCCToQDPProof (SOUND) Transformed TerminationGraph SCC to QDP. Log: Generated 15 rules for P and 0 rules for R.P rules: f5117_0_flatten_NULL(EOS(STATIC_5117), java.lang.Object(o994sub), NULL, java.lang.Object(o994sub)) -> f5122_0_flatten_NULL(EOS(STATIC_5122), java.lang.Object(o994sub), NULL, java.lang.Object(o994sub)) :|: TRUE f5122_0_flatten_NULL(EOS(STATIC_5122), java.lang.Object(o994sub), NULL, java.lang.Object(o994sub)) -> f5129_0_flatten_Load(EOS(STATIC_5129), java.lang.Object(o994sub), NULL) :|: TRUE f5129_0_flatten_Load(EOS(STATIC_5129), java.lang.Object(o994sub), NULL) -> f5144_0_flatten_FieldAccess(EOS(STATIC_5144), java.lang.Object(o994sub), NULL, java.lang.Object(o994sub)) :|: TRUE f5144_0_flatten_FieldAccess(EOS(STATIC_5144), java.lang.Object(TreeList(EOC, o1007, o1008)), NULL, java.lang.Object(TreeList(EOC, o1007, o1008))) -> f5155_0_flatten_FieldAccess(EOS(STATIC_5155), java.lang.Object(TreeList(EOC, o1007, o1008)), NULL, java.lang.Object(TreeList(EOC, o1007, o1008))) :|: TRUE f5155_0_flatten_FieldAccess(EOS(STATIC_5155), java.lang.Object(TreeList(EOC, o1007, o1008)), NULL, java.lang.Object(TreeList(EOC, o1007, o1008))) -> f5167_0_flatten_Store(EOS(STATIC_5167), java.lang.Object(TreeList(EOC, o1007, o1008)), NULL, o1007) :|: TRUE f5167_0_flatten_Store(EOS(STATIC_5167), java.lang.Object(TreeList(EOC, o1007, o1008)), NULL, o1007) -> f5180_0_flatten_Load(EOS(STATIC_5180), java.lang.Object(TreeList(EOC, o1007, o1008)), NULL, o1007) :|: TRUE f5180_0_flatten_Load(EOS(STATIC_5180), java.lang.Object(TreeList(EOC, o1007, o1008)), NULL, o1007) -> f5191_0_flatten_NULL(EOS(STATIC_5191), java.lang.Object(TreeList(EOC, o1007, o1008)), NULL, o1007, o1007) :|: TRUE f5191_0_flatten_NULL(EOS(STATIC_5191), java.lang.Object(TreeList(EOC, NULL, o1008)), NULL, NULL, NULL) -> f5208_0_flatten_NULL(EOS(STATIC_5208), java.lang.Object(TreeList(EOC, NULL, o1008)), NULL, NULL, NULL) :|: TRUE f5208_0_flatten_NULL(EOS(STATIC_5208), java.lang.Object(TreeList(EOC, NULL, o1008)), NULL, NULL, NULL) -> f5222_0_flatten_Load(EOS(STATIC_5222), java.lang.Object(TreeList(EOC, NULL, o1008)), NULL) :|: TRUE f5222_0_flatten_Load(EOS(STATIC_5222), java.lang.Object(TreeList(EOC, NULL, o1008)), NULL) -> f5260_0_flatten_FieldAccess(EOS(STATIC_5260), NULL, java.lang.Object(TreeList(EOC, NULL, o1008))) :|: TRUE f5260_0_flatten_FieldAccess(EOS(STATIC_5260), NULL, java.lang.Object(TreeList(EOC, NULL, o1008))) -> f5280_0_flatten_Store(EOS(STATIC_5280), NULL, o1008) :|: TRUE f5280_0_flatten_Store(EOS(STATIC_5280), NULL, o1008) -> f5296_0_flatten_JMP(EOS(STATIC_5296), o1008, NULL) :|: TRUE f5296_0_flatten_JMP(EOS(STATIC_5296), o1008, NULL) -> f5314_0_flatten_Load(EOS(STATIC_5314), o1008, NULL) :|: TRUE f5314_0_flatten_Load(EOS(STATIC_5314), o1008, NULL) -> f5111_0_flatten_Load(EOS(STATIC_5111), o1008, NULL) :|: TRUE f5111_0_flatten_Load(EOS(STATIC_5111), o983, NULL) -> f5117_0_flatten_NULL(EOS(STATIC_5117), o983, NULL, o983) :|: TRUE R rules: Combined rules. Obtained 1 conditional rules for P and 0 conditional rules for R.P rules: f5117_0_flatten_NULL(EOS(STATIC_5117), java.lang.Object(TreeList(EOC, NULL, o1008:0)), NULL, java.lang.Object(TreeList(EOC, NULL, o1008:0))) -> f5117_0_flatten_NULL(EOS(STATIC_5117), o1008:0, NULL, o1008:0) :|: TRUE R rules: Filtered ground terms: f5117_0_flatten_NULL(x1, x2, x3, x4) -> f5117_0_flatten_NULL(x2, x4) EOS(x1) -> EOS TreeList(x1, x2, x3) -> TreeList(x3) Filtered duplicate args: f5117_0_flatten_NULL(x1, x2) -> f5117_0_flatten_NULL(x2) Combined rules. Obtained 1 conditional rules for P and 0 conditional rules for R.P rules: F5117_0_FLATTEN_NULL(java.lang.Object(TreeList(o1008:0:0))) -> F5117_0_FLATTEN_NULL(o1008:0:0) :|: TRUE R rules: ---------------------------------------- (16) Obligation: Q DP problem: The TRS P consists of the following rules: F5117_0_FLATTEN_NULL(java.lang.Object(TreeList(o1008:0:0))) -> F5117_0_FLATTEN_NULL(o1008:0:0) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (17) QDPSizeChangeProof (EQUIVALENT) 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. From the DPs we obtained the following set of size-change graphs: *F5117_0_FLATTEN_NULL(java.lang.Object(TreeList(o1008:0:0))) -> F5117_0_FLATTEN_NULL(o1008:0:0) The graph contains the following edges 1 > 1 ---------------------------------------- (18) YES ---------------------------------------- (19) Obligation: SCC of termination graph based on JBC Program. SCC contains nodes from the following methods: Tree.createTree()LTree; SCC calls the following helper methods: Tree.createNode()LTree; Performed SCC analyses: *Used field analysis yielded the following read fields: *java.lang.String: [count] *Tree: [right, left] *Marker field analysis yielded the following relations that could be markers: ---------------------------------------- (20) SCCToIRSProof (SOUND) Transformed FIGraph SCCs to intTRSs. Log: Generated rules. Obtained 93 IRulesP rules: f7007_0_createTree_LE(EOS(STATIC_7007(java.lang.Object(ARRAY(i2369)), i2370)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(o2995sub), i2380) -> f7010_0_createTree_LE(EOS(STATIC_7010(java.lang.Object(ARRAY(i2369)), i2370)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(o2995sub), i2380) :|: TRUE f7010_0_createTree_LE(EOS(STATIC_7010(java.lang.Object(ARRAY(i2369)), i2370)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(o2995sub), i2380) -> f7013_0_createTree_InvokeMethod(EOS(STATIC_7013(java.lang.Object(ARRAY(i2369)), i2370)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(o2995sub)) :|: i2380 > 0 f7013_0_createTree_InvokeMethod(EOS(STATIC_7013(java.lang.Object(ARRAY(i2369)), i2370)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(o2995sub)) -> f7016_0_random_FieldAccess(EOS(STATIC_7016(java.lang.Object(ARRAY(i2369)), i2370)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(o2995sub)) :|: TRUE f7016_0_random_FieldAccess(EOS(STATIC_7016(java.lang.Object(ARRAY(i2369)), i2370)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(o2995sub)) -> f7020_0_random_FieldAccess(EOS(STATIC_7020(java.lang.Object(ARRAY(i2369)), i2370)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(o2995sub), java.lang.Object(ARRAY(i2369))) :|: TRUE f7020_0_random_FieldAccess(EOS(STATIC_7020(java.lang.Object(ARRAY(i2369)), i2370)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(o2995sub), java.lang.Object(ARRAY(i2369))) -> f7024_0_random_ArrayAccess(EOS(STATIC_7024(java.lang.Object(ARRAY(i2369)), i2370)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(o2995sub), java.lang.Object(ARRAY(i2369)), i2370) :|: TRUE f7024_0_random_ArrayAccess(EOS(STATIC_7024(java.lang.Object(ARRAY(i2369)), i2370)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(o2995sub), java.lang.Object(ARRAY(i2369)), i2370) -> f7027_0_random_ArrayAccess(EOS(STATIC_7027(java.lang.Object(ARRAY(i2369)), i2370)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(o2995sub), java.lang.Object(ARRAY(i2369)), i2370) :|: TRUE f7027_0_random_ArrayAccess(EOS(STATIC_7027(java.lang.Object(ARRAY(i2369)), i2370)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(o2995sub), java.lang.Object(ARRAY(i2369)), i2370) -> f7030_0_random_Store(EOS(STATIC_7030(java.lang.Object(ARRAY(i2369)), i2370)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(o2995sub), o3079) :|: TRUE f7030_0_random_Store(EOS(STATIC_7030(java.lang.Object(ARRAY(i2369)), i2370)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(o2995sub), o3079) -> f7034_0_random_FieldAccess(EOS(STATIC_7034(java.lang.Object(ARRAY(i2369)), i2370)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(o2995sub), o3079) :|: TRUE f7034_0_random_FieldAccess(EOS(STATIC_7034(java.lang.Object(ARRAY(i2369)), i2370)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(o2995sub), o3079) -> f7037_0_random_ConstantStackPush(EOS(STATIC_7037(java.lang.Object(ARRAY(i2369)), i2370)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(o2995sub), o3079, i2370) :|: TRUE f7037_0_random_ConstantStackPush(EOS(STATIC_7037(java.lang.Object(ARRAY(i2369)), i2370)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(o2995sub), o3079, i2370) -> f7041_0_random_IntArithmetic(EOS(STATIC_7041(java.lang.Object(ARRAY(i2369)), i2370)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(o2995sub), o3079, i2370, 1) :|: TRUE f7041_0_random_IntArithmetic(EOS(STATIC_7041(java.lang.Object(ARRAY(i2369)), i2370)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(o2995sub), o3079, i2370, matching1) -> f7045_0_random_FieldAccess(EOS(STATIC_7045(java.lang.Object(ARRAY(i2369)), i2370)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(o2995sub), o3079, i2370 + 1) :|: i2370 > 0 && matching1 = 1 f7045_0_random_FieldAccess(EOS(STATIC_7045(java.lang.Object(ARRAY(i2369)), i2370)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(o2995sub), o3079, i2412) -> f7048_0_random_Load(EOS(STATIC_7048(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(o2995sub), o3079) :|: TRUE f7048_0_random_Load(EOS(STATIC_7048(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(o2995sub), o3079) -> f7051_0_random_InvokeMethod(EOS(STATIC_7051(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(o2995sub), o3079) :|: TRUE f7051_0_random_InvokeMethod(EOS(STATIC_7051(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(o2995sub), java.lang.Object(o3125sub)) -> f7055_0_random_InvokeMethod(EOS(STATIC_7055(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(o2995sub), java.lang.Object(o3125sub)) :|: TRUE f7055_0_random_InvokeMethod(EOS(STATIC_7055(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(o2995sub), java.lang.Object(o3133sub)) -> f7059_0_random_InvokeMethod(EOS(STATIC_7059(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(o2995sub), java.lang.Object(o3133sub)) :|: TRUE f7059_0_random_InvokeMethod(EOS(STATIC_7059(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(o2995sub), java.lang.Object(o3133sub)) -> f7064_0_length_Load(EOS(STATIC_7064(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(o2995sub), java.lang.Object(o3133sub)) :|: TRUE f7064_0_length_Load(EOS(STATIC_7064(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(o2995sub), java.lang.Object(o3133sub)) -> f7071_0_length_FieldAccess(EOS(STATIC_7071(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(o2995sub), java.lang.Object(o3133sub)) :|: TRUE f7071_0_length_FieldAccess(EOS(STATIC_7071(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(o2995sub), java.lang.Object(java.lang.String(EOC, i2447))) -> f7076_0_length_FieldAccess(EOS(STATIC_7076(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(o2995sub), java.lang.Object(java.lang.String(EOC, i2447))) :|: i2447 >= 0 f7076_0_length_FieldAccess(EOS(STATIC_7076(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(o2995sub), java.lang.Object(java.lang.String(EOC, i2447))) -> f7080_0_length_Return(EOS(STATIC_7080(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(o2995sub), i2447) :|: TRUE f7080_0_length_Return(EOS(STATIC_7080(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(o2995sub), i2447) -> f7084_0_random_Return(EOS(STATIC_7084(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(o2995sub), i2447) :|: TRUE f7084_0_random_Return(EOS(STATIC_7084(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(o2995sub), i2447) -> f7089_0_createTree_Store(EOS(STATIC_7089(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(o2995sub), i2447) :|: TRUE f7089_0_createTree_Store(EOS(STATIC_7089(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(o2995sub), i2447) -> f7093_0_createTree_Load(EOS(STATIC_7093(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(o2995sub), i2447) :|: TRUE f7093_0_createTree_Load(EOS(STATIC_7093(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(o2995sub), i2447) -> f7099_0_createTree_LE(EOS(STATIC_7099(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(o2995sub), i2447) :|: TRUE f7099_0_createTree_LE(EOS(STATIC_7099(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(o2995sub), matching1) -> f7104_0_createTree_LE(EOS(STATIC_7104(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(o2995sub), 0) :|: TRUE && matching1 = 0 f7099_0_createTree_LE(EOS(STATIC_7099(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(o2995sub), i2478) -> f7105_0_createTree_LE(EOS(STATIC_7105(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(o2995sub), i2478) :|: TRUE f7104_0_createTree_LE(EOS(STATIC_7104(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(o2995sub), matching1) -> f7109_0_createTree_Load(EOS(STATIC_7109(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(o2995sub)) :|: 0 <= 0 && matching1 = 0 f7109_0_createTree_Load(EOS(STATIC_7109(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(o2995sub)) -> f7115_0_createTree_FieldAccess(EOS(STATIC_7115(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(o2995sub), java.lang.Object(o2995sub)) :|: TRUE f7115_0_createTree_FieldAccess(EOS(STATIC_7115(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(Tree(EOC, o3295, o3294)), java.lang.Object(Tree(EOC, o3295, o3294))) -> f7121_0_createTree_FieldAccess(EOS(STATIC_7121(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(Tree(EOC, o3295, o3294)), java.lang.Object(Tree(EOC, o3295, o3294))) :|: TRUE f7121_0_createTree_FieldAccess(EOS(STATIC_7121(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(Tree(EOC, o3295, o3294)), java.lang.Object(Tree(EOC, o3295, o3294))) -> f7127_0_createTree_NONNULL(EOS(STATIC_7127(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(Tree(EOC, o3295, o3294)), o3295) :|: TRUE f7127_0_createTree_NONNULL(EOS(STATIC_7127(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(Tree(EOC, java.lang.Object(o3320sub), o3294)), java.lang.Object(o3320sub)) -> f7134_0_createTree_NONNULL(EOS(STATIC_7134(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(Tree(EOC, java.lang.Object(o3320sub), o3294)), java.lang.Object(o3320sub)) :|: TRUE f7127_0_createTree_NONNULL(EOS(STATIC_7127(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(Tree(EOC, NULL, o3294)), NULL) -> f7135_0_createTree_NONNULL(EOS(STATIC_7135(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(Tree(EOC, NULL, o3294)), NULL) :|: TRUE f7134_0_createTree_NONNULL(EOS(STATIC_7134(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(Tree(EOC, java.lang.Object(o3320sub), o3294)), java.lang.Object(o3320sub)) -> f7143_0_createTree_Load(EOS(STATIC_7143(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(Tree(EOC, java.lang.Object(o3320sub), o3294))) :|: TRUE f7143_0_createTree_Load(EOS(STATIC_7143(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(Tree(EOC, java.lang.Object(o3320sub), o3294))) -> f7152_0_createTree_FieldAccess(EOS(STATIC_7152(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(Tree(EOC, java.lang.Object(o3320sub), o3294))) :|: TRUE f7152_0_createTree_FieldAccess(EOS(STATIC_7152(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(Tree(EOC, java.lang.Object(o3320sub), o3294))) -> f7162_0_createTree_Store(EOS(STATIC_7162(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(o3320sub)) :|: TRUE f7162_0_createTree_Store(EOS(STATIC_7162(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(o3320sub)) -> f7170_0_createTree_Inc(EOS(STATIC_7170(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(o3320sub)) :|: TRUE f7170_0_createTree_Inc(EOS(STATIC_7170(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(o3320sub)) -> f7180_0_createTree_JMP(EOS(STATIC_7180(java.lang.Object(ARRAY(i2369)), i2412)), i2380 + -1, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(o3320sub)) :|: TRUE f7180_0_createTree_JMP(EOS(STATIC_7180(java.lang.Object(ARRAY(i2369)), i2412)), i2524, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(o3320sub)) -> f7186_0_createTree_Load(EOS(STATIC_7186(java.lang.Object(ARRAY(i2369)), i2412)), i2524, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(o3320sub)) :|: TRUE f7186_0_createTree_Load(EOS(STATIC_7186(java.lang.Object(ARRAY(i2369)), i2412)), i2524, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(o3320sub)) -> f7005_0_createTree_Load(EOS(STATIC_7005(java.lang.Object(ARRAY(i2369)), i2412)), i2524, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(o3320sub)) :|: TRUE f7005_0_createTree_Load(EOS(STATIC_7005(java.lang.Object(ARRAY(i2369)), i2370)), i2371, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(o2995sub)) -> f7007_0_createTree_LE(EOS(STATIC_7007(java.lang.Object(ARRAY(i2369)), i2370)), i2371, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(o2995sub), i2371) :|: TRUE f7135_0_createTree_NONNULL(EOS(STATIC_7135(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(Tree(EOC, NULL, o3294)), NULL) -> f7144_0_createTree_Load(EOS(STATIC_7144(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(Tree(EOC, NULL, o3294))) :|: TRUE f7144_0_createTree_Load(EOS(STATIC_7144(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(Tree(EOC, NULL, o3294))) -> f7153_0_createTree_InvokeMethod(EOS(STATIC_7153(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(Tree(EOC, NULL, o3294))) :|: TRUE f7153_0_createTree_InvokeMethod(EOS(STATIC_7153(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(Tree(EOC, NULL, o3294))) -> f7163_0_createNode_New(EOS(STATIC_7163(java.lang.Object(ARRAY(i2369)), i2412))) :|: i2380 >= 1 && i2412 > 1 f7153_0_createTree_InvokeMethod(EOS(STATIC_7153(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(Tree(EOC, NULL, o3294))) -> f7163_1_createNode_New(EOS(STATIC_7163(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(Tree(EOC, NULL, o3294))) :|: i2380 >= 1 && i2412 > 1 f7163_0_createNode_New(EOS(STATIC_7163(java.lang.Object(ARRAY(i2369)), i2412))) -> f7539_0_createNode_New(EOS(STATIC_7539(java.lang.Object(ARRAY(i2369)), i2412))) :|: TRUE f7194_0_createNode_Return(EOS(STATIC_7194(java.lang.Object(ARRAY(i2545)), i2541)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(Tree(EOC, NULL, o3294)), java.lang.Object(Tree(EOC, NULL, NULL))) -> f7205_0_createTree_FieldAccess(EOS(STATIC_7205(java.lang.Object(ARRAY(i2545)), i2541)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(Tree(EOC, NULL, o3294)), java.lang.Object(Tree(EOC, NULL, NULL))) :|: TRUE f7205_0_createTree_FieldAccess(EOS(STATIC_7205(java.lang.Object(ARRAY(i2545)), i2541)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(Tree(EOC, NULL, o3294)), java.lang.Object(Tree(EOC, NULL, NULL))) -> f7212_0_createTree_FieldAccess(EOS(STATIC_7212(java.lang.Object(ARRAY(i2545)), i2541)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(Tree(EOC, NULL, o3294)), java.lang.Object(Tree(EOC, NULL, NULL))) :|: TRUE f7205_0_createTree_FieldAccess(EOS(STATIC_7205(java.lang.Object(ARRAY(i2545)), i2541)), i2380, java.lang.Object(Tree(EOC, NULL, o3551)), java.lang.Object(Tree(EOC, NULL, o3551)), java.lang.Object(Tree(EOC, NULL, NULL))) -> f7213_0_createTree_FieldAccess(EOS(STATIC_7213(java.lang.Object(ARRAY(i2545)), i2541)), i2380, java.lang.Object(Tree(EOC, NULL, o3551)), java.lang.Object(Tree(EOC, NULL, o3551)), java.lang.Object(Tree(EOC, NULL, NULL))) :|: TRUE f7212_0_createTree_FieldAccess(EOS(STATIC_7212(java.lang.Object(ARRAY(i2545)), i2541)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(Tree(EOC, NULL, o3294)), java.lang.Object(Tree(EOC, NULL, NULL))) -> f7220_0_createTree_Load(EOS(STATIC_7220(java.lang.Object(ARRAY(i2545)), i2541)), i2380, java.lang.Object(Tree(EOC, o2994put, o2993put))) :|: TRUE f7220_0_createTree_Load(EOS(STATIC_7220(java.lang.Object(ARRAY(i2545)), i2541)), i2380, java.lang.Object(Tree(EOC, o2994, o2993))) -> f7227_0_createTree_Store(EOS(STATIC_7227(java.lang.Object(ARRAY(i2545)), i2541)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(Tree(EOC, o2994, o2993))) :|: TRUE f7227_0_createTree_Store(EOS(STATIC_7227(java.lang.Object(ARRAY(i2545)), i2541)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(Tree(EOC, o2994, o2993))) -> f7237_0_createTree_JMP(EOS(STATIC_7237(java.lang.Object(ARRAY(i2545)), i2541)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(Tree(EOC, o2994, o2993))) :|: TRUE f7237_0_createTree_JMP(EOS(STATIC_7237(java.lang.Object(ARRAY(i2545)), i2541)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(Tree(EOC, o2994, o2993))) -> f7246_0_createTree_Inc(EOS(STATIC_7246(java.lang.Object(ARRAY(i2545)), i2541)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(Tree(EOC, o2994, o2993))) :|: TRUE f7246_0_createTree_Inc(EOS(STATIC_7246(java.lang.Object(ARRAY(i2545)), i2541)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(Tree(EOC, o2994, o2993))) -> f7253_0_createTree_JMP(EOS(STATIC_7253(java.lang.Object(ARRAY(i2545)), i2541)), i2380 + -1, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(Tree(EOC, o2994, o2993))) :|: TRUE f7253_0_createTree_JMP(EOS(STATIC_7253(java.lang.Object(ARRAY(i2545)), i2541)), i2691, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(Tree(EOC, o2994, o2993))) -> f7258_0_createTree_Load(EOS(STATIC_7258(java.lang.Object(ARRAY(i2545)), i2541)), i2691, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(Tree(EOC, o2994, o2993))) :|: TRUE f7258_0_createTree_Load(EOS(STATIC_7258(java.lang.Object(ARRAY(i2545)), i2541)), i2691, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(Tree(EOC, o2994, o2993))) -> f7005_0_createTree_Load(EOS(STATIC_7005(java.lang.Object(ARRAY(i2545)), i2541)), i2691, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(Tree(EOC, o2994, o2993))) :|: TRUE f7213_0_createTree_FieldAccess(EOS(STATIC_7213(java.lang.Object(ARRAY(i2545)), i2541)), i2380, java.lang.Object(Tree(EOC, NULL, o3551)), java.lang.Object(Tree(EOC, NULL, o3551)), java.lang.Object(Tree(EOC, NULL, NULL))) -> f7221_0_createTree_Load(EOS(STATIC_7221(java.lang.Object(ARRAY(i2545)), i2541)), i2380, java.lang.Object(Tree(EOC, java.lang.Object(Tree(EOC, NULL, NULL)), o3551))) :|: TRUE f7221_0_createTree_Load(EOS(STATIC_7221(java.lang.Object(ARRAY(i2545)), i2541)), i2380, java.lang.Object(Tree(EOC, java.lang.Object(Tree(EOC, NULL, NULL)), o3551))) -> f7228_0_createTree_Store(EOS(STATIC_7228(java.lang.Object(ARRAY(i2545)), i2541)), i2380, java.lang.Object(Tree(EOC, java.lang.Object(Tree(EOC, NULL, NULL)), o3551)), java.lang.Object(Tree(EOC, java.lang.Object(Tree(EOC, NULL, NULL)), o3551))) :|: TRUE f7228_0_createTree_Store(EOS(STATIC_7228(java.lang.Object(ARRAY(i2545)), i2541)), i2380, java.lang.Object(Tree(EOC, java.lang.Object(Tree(EOC, NULL, NULL)), o3551)), java.lang.Object(Tree(EOC, java.lang.Object(Tree(EOC, NULL, NULL)), o3551))) -> f7238_0_createTree_JMP(EOS(STATIC_7238(java.lang.Object(ARRAY(i2545)), i2541)), i2380, java.lang.Object(Tree(EOC, java.lang.Object(Tree(EOC, NULL, NULL)), o3551)), java.lang.Object(Tree(EOC, java.lang.Object(Tree(EOC, NULL, NULL)), o3551))) :|: TRUE f7238_0_createTree_JMP(EOS(STATIC_7238(java.lang.Object(ARRAY(i2545)), i2541)), i2380, java.lang.Object(Tree(EOC, java.lang.Object(Tree(EOC, NULL, NULL)), o3551)), java.lang.Object(Tree(EOC, java.lang.Object(Tree(EOC, NULL, NULL)), o3551))) -> f7247_0_createTree_Inc(EOS(STATIC_7247(java.lang.Object(ARRAY(i2545)), i2541)), i2380, java.lang.Object(Tree(EOC, java.lang.Object(Tree(EOC, NULL, NULL)), o3551)), java.lang.Object(Tree(EOC, java.lang.Object(Tree(EOC, NULL, NULL)), o3551))) :|: TRUE f7247_0_createTree_Inc(EOS(STATIC_7247(java.lang.Object(ARRAY(i2545)), i2541)), i2380, java.lang.Object(Tree(EOC, java.lang.Object(Tree(EOC, NULL, NULL)), o3551)), java.lang.Object(Tree(EOC, java.lang.Object(Tree(EOC, NULL, NULL)), o3551))) -> f7248_0_createTree_Inc(EOS(STATIC_7248(java.lang.Object(ARRAY(i2545)), i2541)), i2380, java.lang.Object(Tree(EOC, java.lang.Object(Tree(EOC, NULL, NULL)), o3551)), java.lang.Object(Tree(EOC, java.lang.Object(Tree(EOC, NULL, NULL)), o3551))) :|: TRUE f7248_0_createTree_Inc(EOS(STATIC_7248(java.lang.Object(ARRAY(i2564)), i2560)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(Tree(EOC, o2994, o2993))) -> f7246_0_createTree_Inc(EOS(STATIC_7246(java.lang.Object(ARRAY(i2564)), i2560)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(Tree(EOC, o2994, o2993))) :|: TRUE f7105_0_createTree_LE(EOS(STATIC_7105(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(o2995sub), i2478) -> f7110_0_createTree_Load(EOS(STATIC_7110(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(o2995sub)) :|: i2478 > 0 f7110_0_createTree_Load(EOS(STATIC_7110(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(o2995sub)) -> f7116_0_createTree_FieldAccess(EOS(STATIC_7116(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(o2995sub), java.lang.Object(o2995sub)) :|: TRUE f7116_0_createTree_FieldAccess(EOS(STATIC_7116(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(Tree(EOC, o3298, o3297)), java.lang.Object(Tree(EOC, o3298, o3297))) -> f7122_0_createTree_FieldAccess(EOS(STATIC_7122(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(Tree(EOC, o3298, o3297)), java.lang.Object(Tree(EOC, o3298, o3297))) :|: TRUE f7122_0_createTree_FieldAccess(EOS(STATIC_7122(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(Tree(EOC, o3298, o3297)), java.lang.Object(Tree(EOC, o3298, o3297))) -> f7128_0_createTree_NONNULL(EOS(STATIC_7128(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(Tree(EOC, o3298, o3297)), o3297) :|: TRUE f7128_0_createTree_NONNULL(EOS(STATIC_7128(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(Tree(EOC, o3298, java.lang.Object(o3321sub))), java.lang.Object(o3321sub)) -> f7136_0_createTree_NONNULL(EOS(STATIC_7136(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(Tree(EOC, o3298, java.lang.Object(o3321sub))), java.lang.Object(o3321sub)) :|: TRUE f7128_0_createTree_NONNULL(EOS(STATIC_7128(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(Tree(EOC, o3298, NULL)), NULL) -> f7137_0_createTree_NONNULL(EOS(STATIC_7137(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(Tree(EOC, o3298, NULL)), NULL) :|: TRUE f7136_0_createTree_NONNULL(EOS(STATIC_7136(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(Tree(EOC, o3298, java.lang.Object(o3321sub))), java.lang.Object(o3321sub)) -> f7145_0_createTree_Load(EOS(STATIC_7145(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(Tree(EOC, o3298, java.lang.Object(o3321sub)))) :|: TRUE f7145_0_createTree_Load(EOS(STATIC_7145(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(Tree(EOC, o3298, java.lang.Object(o3321sub)))) -> f7154_0_createTree_FieldAccess(EOS(STATIC_7154(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(Tree(EOC, o3298, java.lang.Object(o3321sub)))) :|: TRUE f7154_0_createTree_FieldAccess(EOS(STATIC_7154(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(Tree(EOC, o3298, java.lang.Object(o3321sub)))) -> f7164_0_createTree_Store(EOS(STATIC_7164(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(o3321sub)) :|: TRUE f7164_0_createTree_Store(EOS(STATIC_7164(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(o3321sub)) -> f7172_0_createTree_JMP(EOS(STATIC_7172(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(o3321sub)) :|: TRUE f7172_0_createTree_JMP(EOS(STATIC_7172(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(o3321sub)) -> f7181_0_createTree_Inc(EOS(STATIC_7181(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(o3321sub)) :|: TRUE f7181_0_createTree_Inc(EOS(STATIC_7181(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(o3321sub)) -> f7170_0_createTree_Inc(EOS(STATIC_7170(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(o3321sub)) :|: TRUE f7137_0_createTree_NONNULL(EOS(STATIC_7137(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(Tree(EOC, o3298, NULL)), NULL) -> f7146_0_createTree_Load(EOS(STATIC_7146(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(Tree(EOC, o3298, NULL))) :|: TRUE f7146_0_createTree_Load(EOS(STATIC_7146(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(Tree(EOC, o3298, NULL))) -> f7155_0_createTree_InvokeMethod(EOS(STATIC_7155(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(Tree(EOC, o3298, NULL))) :|: TRUE f7155_0_createTree_InvokeMethod(EOS(STATIC_7155(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(Tree(EOC, o3298, NULL))) -> f7165_0_createNode_New(EOS(STATIC_7165(java.lang.Object(ARRAY(i2369)), i2412))) :|: i2380 >= 1 && i2412 > 1 f7155_0_createTree_InvokeMethod(EOS(STATIC_7155(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(Tree(EOC, o3298, NULL))) -> f7165_1_createNode_New(EOS(STATIC_7165(java.lang.Object(ARRAY(i2369)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(Tree(EOC, o3298, NULL))) :|: i2380 >= 1 && i2412 > 1 f7165_0_createNode_New(EOS(STATIC_7165(java.lang.Object(ARRAY(i2369)), i2412))) -> f7611_0_createNode_New(EOS(STATIC_7611(java.lang.Object(ARRAY(i2369)), i2412))) :|: TRUE f7198_0_createNode_Return(EOS(STATIC_7198(java.lang.Object(ARRAY(i2564)), i2560)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(Tree(EOC, o3298, NULL)), java.lang.Object(Tree(EOC, NULL, NULL))) -> f7207_0_createTree_FieldAccess(EOS(STATIC_7207(java.lang.Object(ARRAY(i2564)), i2560)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(Tree(EOC, o3298, NULL)), java.lang.Object(Tree(EOC, NULL, NULL))) :|: TRUE f7207_0_createTree_FieldAccess(EOS(STATIC_7207(java.lang.Object(ARRAY(i2564)), i2560)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(Tree(EOC, o3298, NULL)), java.lang.Object(Tree(EOC, NULL, NULL))) -> f7215_0_createTree_FieldAccess(EOS(STATIC_7215(java.lang.Object(ARRAY(i2564)), i2560)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(Tree(EOC, o3298, NULL)), java.lang.Object(Tree(EOC, NULL, NULL))) :|: TRUE f7207_0_createTree_FieldAccess(EOS(STATIC_7207(java.lang.Object(ARRAY(i2564)), i2560)), i2380, java.lang.Object(Tree(EOC, o3558, NULL)), java.lang.Object(Tree(EOC, o3558, NULL)), java.lang.Object(Tree(EOC, NULL, NULL))) -> f7216_0_createTree_FieldAccess(EOS(STATIC_7216(java.lang.Object(ARRAY(i2564)), i2560)), i2380, java.lang.Object(Tree(EOC, o3558, NULL)), java.lang.Object(Tree(EOC, o3558, NULL)), java.lang.Object(Tree(EOC, NULL, NULL))) :|: TRUE f7215_0_createTree_FieldAccess(EOS(STATIC_7215(java.lang.Object(ARRAY(i2564)), i2560)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(Tree(EOC, o3298, NULL)), java.lang.Object(Tree(EOC, NULL, NULL))) -> f7222_0_createTree_Load(EOS(STATIC_7222(java.lang.Object(ARRAY(i2564)), i2560)), i2380, java.lang.Object(Tree(EOC, o2994put, o2993put))) :|: TRUE f7222_0_createTree_Load(EOS(STATIC_7222(java.lang.Object(ARRAY(i2564)), i2560)), i2380, java.lang.Object(Tree(EOC, o2994, o2993))) -> f7231_0_createTree_Store(EOS(STATIC_7231(java.lang.Object(ARRAY(i2564)), i2560)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(Tree(EOC, o2994, o2993))) :|: TRUE f7231_0_createTree_Store(EOS(STATIC_7231(java.lang.Object(ARRAY(i2564)), i2560)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(Tree(EOC, o2994, o2993))) -> f7240_0_createTree_JMP(EOS(STATIC_7240(java.lang.Object(ARRAY(i2564)), i2560)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(Tree(EOC, o2994, o2993))) :|: TRUE f7240_0_createTree_JMP(EOS(STATIC_7240(java.lang.Object(ARRAY(i2564)), i2560)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(Tree(EOC, o2994, o2993))) -> f7248_0_createTree_Inc(EOS(STATIC_7248(java.lang.Object(ARRAY(i2564)), i2560)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(Tree(EOC, o2994, o2993))) :|: TRUE f7216_0_createTree_FieldAccess(EOS(STATIC_7216(java.lang.Object(ARRAY(i2564)), i2560)), i2380, java.lang.Object(Tree(EOC, o3558, NULL)), java.lang.Object(Tree(EOC, o3558, NULL)), java.lang.Object(Tree(EOC, NULL, NULL))) -> f7223_0_createTree_Load(EOS(STATIC_7223(java.lang.Object(ARRAY(i2564)), i2560)), i2380, java.lang.Object(Tree(EOC, o3558, java.lang.Object(Tree(EOC, NULL, NULL))))) :|: TRUE f7223_0_createTree_Load(EOS(STATIC_7223(java.lang.Object(ARRAY(i2564)), i2560)), i2380, java.lang.Object(Tree(EOC, o3558, java.lang.Object(Tree(EOC, NULL, NULL))))) -> f7232_0_createTree_Store(EOS(STATIC_7232(java.lang.Object(ARRAY(i2564)), i2560)), i2380, java.lang.Object(Tree(EOC, o3558, java.lang.Object(Tree(EOC, NULL, NULL)))), java.lang.Object(Tree(EOC, o3558, java.lang.Object(Tree(EOC, NULL, NULL))))) :|: TRUE f7232_0_createTree_Store(EOS(STATIC_7232(java.lang.Object(ARRAY(i2564)), i2560)), i2380, java.lang.Object(Tree(EOC, o3558, java.lang.Object(Tree(EOC, NULL, NULL)))), java.lang.Object(Tree(EOC, o3558, java.lang.Object(Tree(EOC, NULL, NULL))))) -> f7241_0_createTree_JMP(EOS(STATIC_7241(java.lang.Object(ARRAY(i2564)), i2560)), i2380, java.lang.Object(Tree(EOC, o3558, java.lang.Object(Tree(EOC, NULL, NULL)))), java.lang.Object(Tree(EOC, o3558, java.lang.Object(Tree(EOC, NULL, NULL))))) :|: TRUE f7241_0_createTree_JMP(EOS(STATIC_7241(java.lang.Object(ARRAY(i2564)), i2560)), i2380, java.lang.Object(Tree(EOC, o3558, java.lang.Object(Tree(EOC, NULL, NULL)))), java.lang.Object(Tree(EOC, o3558, java.lang.Object(Tree(EOC, NULL, NULL))))) -> f7249_0_createTree_Inc(EOS(STATIC_7249(java.lang.Object(ARRAY(i2564)), i2560)), i2380, java.lang.Object(Tree(EOC, o3558, java.lang.Object(Tree(EOC, NULL, NULL)))), java.lang.Object(Tree(EOC, o3558, java.lang.Object(Tree(EOC, NULL, NULL))))) :|: TRUE f7249_0_createTree_Inc(EOS(STATIC_7249(java.lang.Object(ARRAY(i2564)), i2560)), i2380, java.lang.Object(Tree(EOC, o3558, java.lang.Object(Tree(EOC, NULL, NULL)))), java.lang.Object(Tree(EOC, o3558, java.lang.Object(Tree(EOC, NULL, NULL))))) -> f7254_0_createTree_JMP(EOS(STATIC_7254(java.lang.Object(ARRAY(i2564)), i2560)), i2380 + -1, java.lang.Object(Tree(EOC, o3558, java.lang.Object(Tree(EOC, NULL, NULL)))), java.lang.Object(Tree(EOC, o3558, java.lang.Object(Tree(EOC, NULL, NULL))))) :|: TRUE f7254_0_createTree_JMP(EOS(STATIC_7254(java.lang.Object(ARRAY(i2564)), i2560)), i2695, java.lang.Object(Tree(EOC, o3558, java.lang.Object(Tree(EOC, NULL, NULL)))), java.lang.Object(Tree(EOC, o3558, java.lang.Object(Tree(EOC, NULL, NULL))))) -> f7259_0_createTree_Load(EOS(STATIC_7259(java.lang.Object(ARRAY(i2564)), i2560)), i2695, java.lang.Object(Tree(EOC, o3558, java.lang.Object(Tree(EOC, NULL, NULL)))), java.lang.Object(Tree(EOC, o3558, java.lang.Object(Tree(EOC, NULL, NULL))))) :|: TRUE f7259_0_createTree_Load(EOS(STATIC_7259(java.lang.Object(ARRAY(i2564)), i2560)), i2695, java.lang.Object(Tree(EOC, o3558, java.lang.Object(Tree(EOC, NULL, NULL)))), java.lang.Object(Tree(EOC, o3558, java.lang.Object(Tree(EOC, NULL, NULL))))) -> f7005_0_createTree_Load(EOS(STATIC_7005(java.lang.Object(ARRAY(i2564)), i2560)), i2695, java.lang.Object(Tree(EOC, o3558, java.lang.Object(Tree(EOC, NULL, NULL)))), java.lang.Object(Tree(EOC, o3558, java.lang.Object(Tree(EOC, NULL, NULL))))) :|: TRUE f7163_1_createNode_New(EOS(STATIC_7163(java.lang.Object(ARRAY(i2545)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(Tree(EOC, NULL, o3294))) -> f7194_0_createNode_Return(EOS(STATIC_7194(java.lang.Object(ARRAY(i2545)), i2541)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(Tree(EOC, NULL, o3294)), java.lang.Object(Tree(EOC, NULL, NULL))) :|: TRUE f7165_1_createNode_New(EOS(STATIC_7165(java.lang.Object(ARRAY(i2564)), i2412)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(Tree(EOC, o3298, NULL))) -> f7198_0_createNode_Return(EOS(STATIC_7198(java.lang.Object(ARRAY(i2564)), i2560)), i2380, java.lang.Object(Tree(EOC, o2994, o2993)), java.lang.Object(Tree(EOC, o3298, NULL)), java.lang.Object(Tree(EOC, NULL, NULL))) :|: TRUE Combined rules. Obtained 8 IRulesP rules: f7007_0_createTree_LE(EOS(STATIC_7007(java.lang.Object(ARRAY(i2369:0)), i2370:0)), i2380:0, java.lang.Object(Tree(EOC, o2994:0, NULL)), java.lang.Object(Tree(EOC, o2994:0, NULL)), i2380:0) -> f7007_0_createTree_LE(EOS(STATIC_7007(java.lang.Object(ARRAY(i2369:0)), i2560:0)), i2380:0 - 1, java.lang.Object(Tree(EOC, o2994:0, java.lang.Object(Tree(EOC, NULL, NULL)))), java.lang.Object(Tree(EOC, o2994:0, java.lang.Object(Tree(EOC, NULL, NULL)))), i2380:0 - 1) :|: i2447:0 > 0 && i2380:0 > 0 && i2370:0 > 0 f7007_0_createTree_LE(EOS(STATIC_7007(java.lang.Object(ARRAY(i2369:0)), i2370:0)), i2380:0, java.lang.Object(Tree(EOC, NULL, o2993:0)), java.lang.Object(Tree(EOC, NULL, o2993:0)), i2380:0) -> f7007_0_createTree_LE(EOS(STATIC_7007(java.lang.Object(ARRAY(i2369:0)), i2541:0)), i2380:0 - 1, java.lang.Object(Tree(EOC, java.lang.Object(Tree(EOC, NULL, NULL)), o2993:0)), java.lang.Object(Tree(EOC, java.lang.Object(Tree(EOC, NULL, NULL)), o2993:0)), i2380:0 - 1) :|: i2380:0 > 0 && i2370:0 > 0 f7007_0_createTree_LE(EOS(STATIC_7007(java.lang.Object(ARRAY(i2369:0)), i2370:0)), i2380:0, java.lang.Object(Tree(EOC, o2994:0, o2993:0)), java.lang.Object(Tree(EOC, NULL, o3294:0)), i2380:0) -> f7007_0_createTree_LE(EOS(STATIC_7007(java.lang.Object(ARRAY(i2369:0)), i2541:0)), i2380:0 - 1, java.lang.Object(Tree(EOC, o2994put:0, o2993put:0)), java.lang.Object(Tree(EOC, o2994put:0, o2993put:0)), i2380:0 - 1) :|: i2380:0 > 0 && i2370:0 > 0 f7007_0_createTree_LE(EOS(STATIC_7007(java.lang.Object(ARRAY(i2369:0)), i2370:0)), i2380:0, java.lang.Object(Tree(EOC, o2994:0, o2993:0)), java.lang.Object(Tree(EOC, java.lang.Object(o3320sub:0), o3294:0)), i2380:0) -> f7007_0_createTree_LE(EOS(STATIC_7007(java.lang.Object(ARRAY(i2369:0)), i2370:0 + 1)), i2380:0 - 1, java.lang.Object(Tree(EOC, o2994:0, o2993:0)), java.lang.Object(o3320sub:0), i2380:0 - 1) :|: i2370:0 > 0 && i2380:0 > 0 f7007_0_createTree_LE(EOS(STATIC_7007(java.lang.Object(ARRAY(i2369:0)), i2370:0)), i2380:0, java.lang.Object(Tree(EOC, o2994:0, o2993:0)), java.lang.Object(Tree(EOC, o3298:0, NULL)), i2380:0) -> f7007_0_createTree_LE(EOS(STATIC_7007(java.lang.Object(ARRAY(i2369:0)), i2560:0)), i2380:0 - 1, java.lang.Object(Tree(EOC, o2994put:0, o2993put:0)), java.lang.Object(Tree(EOC, o2994put:0, o2993put:0)), i2380:0 - 1) :|: i2447:0 > 0 && i2380:0 > 0 && i2370:0 > 0 f7007_0_createTree_LE(EOS(STATIC_7007(java.lang.Object(ARRAY(i2369:0)), i2370:0)), i2380:0, java.lang.Object(Tree(EOC, o2994:0, o2993:0)), java.lang.Object(Tree(EOC, o3298:0, java.lang.Object(o3321sub:0))), i2380:0) -> f7007_0_createTree_LE(EOS(STATIC_7007(java.lang.Object(ARRAY(i2369:0)), i2370:0 + 1)), i2380:0 - 1, java.lang.Object(Tree(EOC, o2994:0, o2993:0)), java.lang.Object(o3321sub:0), i2380:0 - 1) :|: i2447:0 > 0 && i2370:0 > 0 && i2380:0 > 0 Removed following non-SCC rules: f7007_0_createTree_LE(EOS(STATIC_7007(java.lang.Object(ARRAY(i2369:0)), i2370:0)), i2380:0, java.lang.Object(Tree(EOC, o2994:0, o2993:0)), java.lang.Object(Tree(EOC, o3298:0, NULL)), i2380:0) -> f7611_0_createNode_New(EOS(STATIC_7611(java.lang.Object(ARRAY(i2369:0)), i2370:0 + 1))) :|: i2447:0 > 0 && i2380:0 > 0 && i2370:0 > 0 f7007_0_createTree_LE(EOS(STATIC_7007(java.lang.Object(ARRAY(i2369:0)), i2370:0)), i2380:0, java.lang.Object(Tree(EOC, o2994:0, o2993:0)), java.lang.Object(Tree(EOC, NULL, o3294:0)), i2380:0) -> f7539_0_createNode_New(EOS(STATIC_7539(java.lang.Object(ARRAY(i2369:0)), i2370:0 + 1))) :|: i2380:0 > 0 && i2370:0 > 0 Filtered constant ground arguments: Tree(x1, x2, x3) -> Tree(x2, x3) Filtered duplicate arguments: f7007_0_createTree_LE(x1, x2, x3, x4, x5) -> f7007_0_createTree_LE(x1, x3, x4, x5) Filtered unneeded arguments: STATIC_7007(x1, x2) -> STATIC_7007(x2) Finished conversion. Obtained 6 rules.P rules: f7007_0_createTree_LE(java.lang.Object(Tree(o2994:0, NULL)), java.lang.Object(Tree(o2994:0, NULL)), i2380:0, i2370:0) -> f7007_0_createTree_LE(java.lang.Object(Tree(o2994:0, java.lang.Object(Tree(NULL, NULL)))), java.lang.Object(Tree(o2994:0, java.lang.Object(Tree(NULL, NULL)))), i2380:0 - 1, i2560:0) :|: i2380:0 > 0 && i2370:0 > 0 && i2447:0 > 0 f7007_0_createTree_LE(java.lang.Object(Tree(NULL, o2993:0)), java.lang.Object(Tree(NULL, o2993:0)), i2380:0, i2370:0) -> f7007_0_createTree_LE(java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL)), o2993:0)), java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL)), o2993:0)), i2380:0 - 1, i2541:0) :|: i2380:0 > 0 && i2370:0 > 0 f7007_0_createTree_LE(java.lang.Object(Tree(o2994:0, o2993:0)), java.lang.Object(Tree(NULL, o3294:0)), i2380:0, i2370:0) -> f7007_0_createTree_LE(java.lang.Object(Tree(o2994put:0, o2993put:0)), java.lang.Object(Tree(o2994put:0, o2993put:0)), i2380:0 - 1, i2541:0) :|: i2380:0 > 0 && i2370:0 > 0 f7007_0_createTree_LE(java.lang.Object(Tree(o2994:0, o2993:0)), java.lang.Object(Tree(java.lang.Object(o3320sub:0), o3294:0)), i2380:0, i2370:0) -> f7007_0_createTree_LE(java.lang.Object(Tree(o2994:0, o2993:0)), java.lang.Object(o3320sub:0), i2380:0 - 1, i2370:0 + 1) :|: i2370:0 > 0 && i2380:0 > 0 f7007_0_createTree_LE(java.lang.Object(Tree(o2994:0, o2993:0)), java.lang.Object(Tree(o3298:0, NULL)), i2380:0, i2370:0) -> f7007_0_createTree_LE(java.lang.Object(Tree(o2994put:0, o2993put:0)), java.lang.Object(Tree(o2994put:0, o2993put:0)), i2380:0 - 1, i2560:0) :|: i2380:0 > 0 && i2370:0 > 0 && i2447:0 > 0 f7007_0_createTree_LE(java.lang.Object(Tree(o2994:0, o2993:0)), java.lang.Object(Tree(o3298:0, java.lang.Object(o3321sub:0))), i2380:0, i2370:0) -> f7007_0_createTree_LE(java.lang.Object(Tree(o2994:0, o2993:0)), java.lang.Object(o3321sub:0), i2380:0 - 1, i2370:0 + 1) :|: i2370:0 > 0 && i2380:0 > 0 && i2447:0 > 0 ---------------------------------------- (21) Obligation: Rules: f7007_0_createTree_LE(java.lang.Object(Tree(o2994:0, NULL)), java.lang.Object(Tree(o2994:0, NULL)), i2380:0, i2370:0) -> f7007_0_createTree_LE(java.lang.Object(Tree(o2994:0, java.lang.Object(Tree(NULL, NULL)))), java.lang.Object(Tree(o2994:0, java.lang.Object(Tree(NULL, NULL)))), i2380:0 - 1, i2560:0) :|: i2380:0 > 0 && i2370:0 > 0 && i2447:0 > 0 f7007_0_createTree_LE(java.lang.Object(Tree(NULL, x)), java.lang.Object(Tree(NULL, x)), x1, x2) -> f7007_0_createTree_LE(java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL)), x)), java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL)), x)), x1 - 1, x3) :|: x1 > 0 && x2 > 0 f7007_0_createTree_LE(java.lang.Object(Tree(x4, x5)), java.lang.Object(Tree(NULL, x6)), x7, x8) -> f7007_0_createTree_LE(java.lang.Object(Tree(x9, x10)), java.lang.Object(Tree(x9, x10)), x7 - 1, x11) :|: x7 > 0 && x8 > 0 f7007_0_createTree_LE(java.lang.Object(Tree(x12, x13)), java.lang.Object(Tree(java.lang.Object(x14), x15)), x16, x17) -> f7007_0_createTree_LE(java.lang.Object(Tree(x12, x13)), java.lang.Object(x14), x16 - 1, x17 + 1) :|: x17 > 0 && x16 > 0 f7007_0_createTree_LE(java.lang.Object(Tree(x18, x19)), java.lang.Object(Tree(x20, NULL)), x21, x22) -> f7007_0_createTree_LE(java.lang.Object(Tree(x23, x24)), java.lang.Object(Tree(x23, x24)), x21 - 1, x25) :|: x21 > 0 && x22 > 0 && x26 > 0 f7007_0_createTree_LE(java.lang.Object(Tree(x27, x28)), java.lang.Object(Tree(x29, java.lang.Object(x30))), x31, x32) -> f7007_0_createTree_LE(java.lang.Object(Tree(x27, x28)), java.lang.Object(x30), x31 - 1, x32 + 1) :|: x32 > 0 && x31 > 0 && x33 > 0 ---------------------------------------- (22) IRSFormatTransformerProof (EQUIVALENT) Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). ---------------------------------------- (23) Obligation: Rules: f7007_0_createTree_LE(java.lang.Object(Tree(o2994:0, NULL)), java.lang.Object(Tree(o2994:0, NULL)), i2380:0, i2370:0) -> f7007_0_createTree_LE(java.lang.Object(Tree(o2994:0, java.lang.Object(Tree(NULL, NULL)))), java.lang.Object(Tree(o2994:0, java.lang.Object(Tree(NULL, NULL)))), arith, i2560:0) :|: i2380:0 > 0 && i2370:0 > 0 && i2447:0 > 0 && arith = i2380:0 - 1 f7007_0_createTree_LE(java.lang.Object(Tree(NULL, x34)), java.lang.Object(Tree(NULL, x34)), x35, x36) -> f7007_0_createTree_LE(java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL)), x34)), java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL)), x34)), x37, x38) :|: x35 > 0 && x36 > 0 && x37 = x35 - 1 f7007_0_createTree_LE(java.lang.Object(Tree(x39, x40)), java.lang.Object(Tree(NULL, x41)), x42, x43) -> f7007_0_createTree_LE(java.lang.Object(Tree(x44, x45)), java.lang.Object(Tree(x44, x45)), x46, x47) :|: x42 > 0 && x43 > 0 && x46 = x42 - 1 f7007_0_createTree_LE(java.lang.Object(Tree(x48, x49)), java.lang.Object(Tree(java.lang.Object(x50), x51)), x52, x53) -> f7007_0_createTree_LE(java.lang.Object(Tree(x48, x49)), java.lang.Object(x50), x54, x55) :|: x53 > 0 && x52 > 0 && x54 = x52 - 1 && x55 = x53 + 1 f7007_0_createTree_LE(java.lang.Object(Tree(x56, x57)), java.lang.Object(Tree(x58, NULL)), x59, x60) -> f7007_0_createTree_LE(java.lang.Object(Tree(x61, x62)), java.lang.Object(Tree(x61, x62)), x63, x64) :|: x59 > 0 && x60 > 0 && x65 > 0 && x63 = x59 - 1 f7007_0_createTree_LE(java.lang.Object(Tree(x66, x67)), java.lang.Object(Tree(x68, java.lang.Object(x69))), x70, x71) -> f7007_0_createTree_LE(java.lang.Object(Tree(x66, x67)), java.lang.Object(x69), x72, x73) :|: x71 > 0 && x70 > 0 && x74 > 0 && x72 = x70 - 1 && x73 = x71 + 1 ---------------------------------------- (24) IRSwTTerminationDigraphProof (EQUIVALENT) Constructed termination digraph! Nodes: (1) f7007_0_createTree_LE(java.lang.Object(Tree(o2994:0, NULL)), java.lang.Object(Tree(o2994:0, NULL)), i2380:0, i2370:0) -> f7007_0_createTree_LE(java.lang.Object(Tree(o2994:0, java.lang.Object(Tree(NULL, NULL)))), java.lang.Object(Tree(o2994:0, java.lang.Object(Tree(NULL, NULL)))), arith, i2560:0) :|: i2380:0 > 0 && i2370:0 > 0 && i2447:0 > 0 && arith = i2380:0 - 1 (2) f7007_0_createTree_LE(java.lang.Object(Tree(NULL, x34)), java.lang.Object(Tree(NULL, x34)), x35, x36) -> f7007_0_createTree_LE(java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL)), x34)), java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL)), x34)), x37, x38) :|: x35 > 0 && x36 > 0 && x37 = x35 - 1 (3) f7007_0_createTree_LE(java.lang.Object(Tree(x39, x40)), java.lang.Object(Tree(NULL, x41)), x42, x43) -> f7007_0_createTree_LE(java.lang.Object(Tree(x44, x45)), java.lang.Object(Tree(x44, x45)), x46, x47) :|: x42 > 0 && x43 > 0 && x46 = x42 - 1 (4) f7007_0_createTree_LE(java.lang.Object(Tree(x48, x49)), java.lang.Object(Tree(java.lang.Object(x50), x51)), x52, x53) -> f7007_0_createTree_LE(java.lang.Object(Tree(x48, x49)), java.lang.Object(x50), x54, x55) :|: x53 > 0 && x52 > 0 && x54 = x52 - 1 && x55 = x53 + 1 (5) f7007_0_createTree_LE(java.lang.Object(Tree(x56, x57)), java.lang.Object(Tree(x58, NULL)), x59, x60) -> f7007_0_createTree_LE(java.lang.Object(Tree(x61, x62)), java.lang.Object(Tree(x61, x62)), x63, x64) :|: x59 > 0 && x60 > 0 && x65 > 0 && x63 = x59 - 1 (6) f7007_0_createTree_LE(java.lang.Object(Tree(x66, x67)), java.lang.Object(Tree(x68, java.lang.Object(x69))), x70, x71) -> f7007_0_createTree_LE(java.lang.Object(Tree(x66, x67)), java.lang.Object(x69), x72, x73) :|: x71 > 0 && x70 > 0 && x74 > 0 && x72 = x70 - 1 && x73 = x71 + 1 Arcs: (1) -> (2), (3), (4), (6) (2) -> (1), (4), (5), (6) (3) -> (1), (2), (3), (4), (5), (6) (4) -> (1), (2), (3), (4), (5), (6) (5) -> (1), (2), (3), (4), (5), (6) (6) -> (1), (2), (3), (4), (5), (6) This digraph is fully evaluated! ---------------------------------------- (25) Obligation: Termination digraph: Nodes: (1) f7007_0_createTree_LE(java.lang.Object(Tree(o2994:0, NULL)), java.lang.Object(Tree(o2994:0, NULL)), i2380:0, i2370:0) -> f7007_0_createTree_LE(java.lang.Object(Tree(o2994:0, java.lang.Object(Tree(NULL, NULL)))), java.lang.Object(Tree(o2994:0, java.lang.Object(Tree(NULL, NULL)))), arith, i2560:0) :|: i2380:0 > 0 && i2370:0 > 0 && i2447:0 > 0 && arith = i2380:0 - 1 (2) f7007_0_createTree_LE(java.lang.Object(Tree(NULL, x34)), java.lang.Object(Tree(NULL, x34)), x35, x36) -> f7007_0_createTree_LE(java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL)), x34)), java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL)), x34)), x37, x38) :|: x35 > 0 && x36 > 0 && x37 = x35 - 1 (3) f7007_0_createTree_LE(java.lang.Object(Tree(x39, x40)), java.lang.Object(Tree(NULL, x41)), x42, x43) -> f7007_0_createTree_LE(java.lang.Object(Tree(x44, x45)), java.lang.Object(Tree(x44, x45)), x46, x47) :|: x42 > 0 && x43 > 0 && x46 = x42 - 1 (4) f7007_0_createTree_LE(java.lang.Object(Tree(x48, x49)), java.lang.Object(Tree(java.lang.Object(x50), x51)), x52, x53) -> f7007_0_createTree_LE(java.lang.Object(Tree(x48, x49)), java.lang.Object(x50), x54, x55) :|: x53 > 0 && x52 > 0 && x54 = x52 - 1 && x55 = x53 + 1 (5) f7007_0_createTree_LE(java.lang.Object(Tree(x56, x57)), java.lang.Object(Tree(x58, NULL)), x59, x60) -> f7007_0_createTree_LE(java.lang.Object(Tree(x61, x62)), java.lang.Object(Tree(x61, x62)), x63, x64) :|: x59 > 0 && x60 > 0 && x65 > 0 && x63 = x59 - 1 (6) f7007_0_createTree_LE(java.lang.Object(Tree(x66, x67)), java.lang.Object(Tree(x68, java.lang.Object(x69))), x70, x71) -> f7007_0_createTree_LE(java.lang.Object(Tree(x66, x67)), java.lang.Object(x69), x72, x73) :|: x71 > 0 && x70 > 0 && x74 > 0 && x72 = x70 - 1 && x73 = x71 + 1 Arcs: (1) -> (2), (3), (4), (6) (2) -> (1), (4), (5), (6) (3) -> (1), (2), (3), (4), (5), (6) (4) -> (1), (2), (3), (4), (5), (6) (5) -> (1), (2), (3), (4), (5), (6) (6) -> (1), (2), (3), (4), (5), (6) This digraph is fully evaluated! ---------------------------------------- (26) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (27) Obligation: Rules: f7007_0_createTree_LE(java.lang.Object(Tree(NULL, x34:0)), java.lang.Object(Tree(NULL, x34:0)), x35:0, x36:0) -> f7007_0_createTree_LE(java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL)), x34:0)), java.lang.Object(Tree(java.lang.Object(Tree(NULL, NULL)), x34:0)), x35:0 - 1, x38:0) :|: x35:0 > 0 && x36:0 > 0 f7007_0_createTree_LE(java.lang.Object(Tree(x39:0, x40:0)), java.lang.Object(Tree(NULL, x41:0)), x42:0, x43:0) -> f7007_0_createTree_LE(java.lang.Object(Tree(x44:0, x45:0)), java.lang.Object(Tree(x44:0, x45:0)), x42:0 - 1, x47:0) :|: x42:0 > 0 && x43:0 > 0 f7007_0_createTree_LE(java.lang.Object(Tree(x56:0, x57:0)), java.lang.Object(Tree(x58:0, NULL)), x59:0, x60:0) -> f7007_0_createTree_LE(java.lang.Object(Tree(x61:0, x62:0)), java.lang.Object(Tree(x61:0, x62:0)), x59:0 - 1, x64:0) :|: x59:0 > 0 && x60:0 > 0 && x65:0 > 0 f7007_0_createTree_LE(java.lang.Object(Tree(o2994:0:0, NULL)), java.lang.Object(Tree(o2994:0:0, NULL)), i2380:0:0, i2370:0:0) -> f7007_0_createTree_LE(java.lang.Object(Tree(o2994:0:0, java.lang.Object(Tree(NULL, NULL)))), java.lang.Object(Tree(o2994:0:0, java.lang.Object(Tree(NULL, NULL)))), i2380:0:0 - 1, i2560:0:0) :|: i2380:0:0 > 0 && i2370:0:0 > 0 && i2447:0:0 > 0 f7007_0_createTree_LE(java.lang.Object(Tree(x66:0, x67:0)), java.lang.Object(Tree(x68:0, java.lang.Object(x69:0))), x70:0, x71:0) -> f7007_0_createTree_LE(java.lang.Object(Tree(x66:0, x67:0)), java.lang.Object(x69:0), x70:0 - 1, x71:0 + 1) :|: x71:0 > 0 && x70:0 > 0 && x74:0 > 0 f7007_0_createTree_LE(java.lang.Object(Tree(x48:0, x49:0)), java.lang.Object(Tree(java.lang.Object(x50:0), x51:0)), x52:0, x53:0) -> f7007_0_createTree_LE(java.lang.Object(Tree(x48:0, x49:0)), java.lang.Object(x50:0), x52:0 - 1, x53:0 + 1) :|: x53:0 > 0 && x52:0 > 0 ---------------------------------------- (28) TempFilterProof (SOUND) Used the following sort dictionary for filtering: f7007_0_createTree_LE(VARIABLE, VARIABLE, INTEGER, VARIABLE) java.lang.Object(VARIABLE) Tree(VARIABLE, VARIABLE) NULL() Replaced non-predefined constructor symbols by 0. ---------------------------------------- (29) Obligation: Rules: f7007_0_createTree_LE(c, c1, x35:0, x36:0) -> f7007_0_createTree_LE(c2, c3, c4, x38:0) :|: c4 = x35:0 - 1 && (c3 = 0 && (c2 = 0 && (c1 = 0 && c = 0))) && (x35:0 > 0 && x36:0 > 0) f7007_0_createTree_LE(c10, c11, x59:0, x60:0) -> f7007_0_createTree_LE(c12, c13, c14, x64:0) :|: c14 = x59:0 - 1 && (c13 = 0 && (c12 = 0 && (c11 = 0 && c10 = 0))) && (x59:0 > 0 && x60:0 > 0 && x65:0 > 0) f7007_0_createTree_LE(c20, c21, x70:0, x71:0) -> f7007_0_createTree_LE(c22, c23, c24, c25) :|: c25 = x71:0 + 1 && (c24 = x70:0 - 1 && (c23 = 0 && (c22 = 0 && (c21 = 0 && c20 = 0)))) && (x71:0 > 0 && x70:0 > 0 && x74:0 > 0) f7007_0_createTree_LE(c26, c27, x52:0, x53:0) -> f7007_0_createTree_LE(c28, c29, c30, c31) :|: c31 = x53:0 + 1 && (c30 = x52:0 - 1 && (c29 = 0 && (c28 = 0 && (c27 = 0 && c26 = 0)))) && (x53:0 > 0 && x52:0 > 0) ---------------------------------------- (30) PolynomialOrderProcessor (EQUIVALENT) Found the following polynomial interpretation: [f7007_0_createTree_LE(x, x1, x2, x3)] = -1 + c*x + c1*x1 + x2 The following rules are decreasing: f7007_0_createTree_LE(c, c1, x35:0, x36:0) -> f7007_0_createTree_LE(c2, c3, c4, x38:0) :|: c4 = x35:0 - 1 && (c3 = 0 && (c2 = 0 && (c1 = 0 && c = 0))) && (x35:0 > 0 && x36:0 > 0) f7007_0_createTree_LE(c10, c11, x59:0, x60:0) -> f7007_0_createTree_LE(c12, c13, c14, x64:0) :|: c14 = x59:0 - 1 && (c13 = 0 && (c12 = 0 && (c11 = 0 && c10 = 0))) && (x59:0 > 0 && x60:0 > 0 && x65:0 > 0) f7007_0_createTree_LE(c20, c21, x70:0, x71:0) -> f7007_0_createTree_LE(c22, c23, c24, c25) :|: c25 = x71:0 + 1 && (c24 = x70:0 - 1 && (c23 = 0 && (c22 = 0 && (c21 = 0 && c20 = 0)))) && (x71:0 > 0 && x70:0 > 0 && x74:0 > 0) f7007_0_createTree_LE(c26, c27, x52:0, x53:0) -> f7007_0_createTree_LE(c28, c29, c30, c31) :|: c31 = x53:0 + 1 && (c30 = x52:0 - 1 && (c29 = 0 && (c28 = 0 && (c27 = 0 && c26 = 0)))) && (x53:0 > 0 && x52:0 > 0) The following rules are bounded: f7007_0_createTree_LE(c, c1, x35:0, x36:0) -> f7007_0_createTree_LE(c2, c3, c4, x38:0) :|: c4 = x35:0 - 1 && (c3 = 0 && (c2 = 0 && (c1 = 0 && c = 0))) && (x35:0 > 0 && x36:0 > 0) f7007_0_createTree_LE(c10, c11, x59:0, x60:0) -> f7007_0_createTree_LE(c12, c13, c14, x64:0) :|: c14 = x59:0 - 1 && (c13 = 0 && (c12 = 0 && (c11 = 0 && c10 = 0))) && (x59:0 > 0 && x60:0 > 0 && x65:0 > 0) f7007_0_createTree_LE(c20, c21, x70:0, x71:0) -> f7007_0_createTree_LE(c22, c23, c24, c25) :|: c25 = x71:0 + 1 && (c24 = x70:0 - 1 && (c23 = 0 && (c22 = 0 && (c21 = 0 && c20 = 0)))) && (x71:0 > 0 && x70:0 > 0 && x74:0 > 0) f7007_0_createTree_LE(c26, c27, x52:0, x53:0) -> f7007_0_createTree_LE(c28, c29, c30, c31) :|: c31 = x53:0 + 1 && (c30 = x52:0 - 1 && (c29 = 0 && (c28 = 0 && (c27 = 0 && c26 = 0)))) && (x53:0 > 0 && x52:0 > 0) ---------------------------------------- (31) YES ---------------------------------------- (32) Obligation: SCC of termination graph based on JBC Program. SCC contains nodes from the following methods: FlattenRTA.main([Ljava/lang/String;)V SCC calls the following helper methods: Tree.createTree()LTree;, Tree.createNode()LTree; Performed SCC analyses: *Used field analysis yielded the following read fields: *Marker field analysis yielded the following relations that could be markers: ---------------------------------------- (33) SCCToIRSProof (SOUND) Transformed FIGraph SCCs to intTRSs. Log: Generated rules. Obtained 49 IRulesP rules: f4559_0_main_LE(EOS(STATIC_4559), java.lang.Object(ARRAY(i1101)), i1126, i1126) -> f4575_0_main_LE(EOS(STATIC_4575), java.lang.Object(ARRAY(i1101)), i1126, i1126) :|: TRUE f4575_0_main_LE(EOS(STATIC_4575), java.lang.Object(ARRAY(i1101)), i1126, i1126) -> f4590_0_main_InvokeMethod(EOS(STATIC_4590), java.lang.Object(ARRAY(i1101)), i1126) :|: i1126 > 0 f4590_0_main_InvokeMethod(EOS(STATIC_4590), java.lang.Object(ARRAY(i1101)), i1126) -> f4606_0_createTree_InvokeMethod(EOS(STATIC_4606), java.lang.Object(ARRAY(i1101))) :|: i1126 >= 1 && i1102 >= 1 f4590_0_main_InvokeMethod(EOS(STATIC_4590), java.lang.Object(ARRAY(i1101)), i1126) -> f4606_1_createTree_InvokeMethod(EOS(STATIC_4606), java.lang.Object(ARRAY(i1101)), i1126) :|: i1126 >= 1 && i1102 >= 1 f4606_0_createTree_InvokeMethod(EOS(STATIC_4606), java.lang.Object(ARRAY(i1101))) -> f7809_0_createTree_InvokeMethod(EOS(STATIC_7809), java.lang.Object(ARRAY(i1101))) :|: TRUE f4834_0_createTree_Return(EOS(STATIC_4834), java.lang.Object(ARRAY(i1166)), i1126) -> f4868_0_main_Store(EOS(STATIC_4868), java.lang.Object(ARRAY(i1166)), i1126) :|: TRUE f4868_0_main_Store(EOS(STATIC_4868), java.lang.Object(ARRAY(i1166)), i1126) -> f4918_0_main_New(EOS(STATIC_4918), java.lang.Object(ARRAY(i1166)), i1126) :|: TRUE f4918_0_main_New(EOS(STATIC_4918), java.lang.Object(ARRAY(i1166)), i1126) -> f4928_0_main_Duplicate(EOS(STATIC_4928), java.lang.Object(ARRAY(i1166)), i1126) :|: TRUE f4928_0_main_Duplicate(EOS(STATIC_4928), java.lang.Object(ARRAY(i1166)), i1126) -> f4939_0_main_Load(EOS(STATIC_4939), java.lang.Object(ARRAY(i1166)), i1126) :|: TRUE f4939_0_main_Load(EOS(STATIC_4939), java.lang.Object(ARRAY(i1166)), i1126) -> f4950_0_main_Load(EOS(STATIC_4950), java.lang.Object(ARRAY(i1166)), i1126) :|: TRUE f4950_0_main_Load(EOS(STATIC_4950), java.lang.Object(ARRAY(i1166)), i1126) -> f4960_0_main_InvokeMethod(EOS(STATIC_4960), java.lang.Object(ARRAY(i1166)), i1126) :|: TRUE f4960_0_main_InvokeMethod(EOS(STATIC_4960), java.lang.Object(ARRAY(i1166)), i1126) -> f4970_0__init__Load(EOS(STATIC_4970), java.lang.Object(ARRAY(i1166)), i1126) :|: TRUE f4970_0__init__Load(EOS(STATIC_4970), java.lang.Object(ARRAY(i1166)), i1126) -> f5016_0__init__InvokeMethod(EOS(STATIC_5016), java.lang.Object(ARRAY(i1166)), i1126) :|: TRUE f5016_0__init__InvokeMethod(EOS(STATIC_5016), java.lang.Object(ARRAY(i1166)), i1126) -> f5028_0__init__Load(EOS(STATIC_5028), java.lang.Object(ARRAY(i1166)), i1126) :|: TRUE f5028_0__init__Load(EOS(STATIC_5028), java.lang.Object(ARRAY(i1166)), i1126) -> f5043_0__init__Load(EOS(STATIC_5043), java.lang.Object(ARRAY(i1166)), i1126) :|: TRUE f5043_0__init__Load(EOS(STATIC_5043), java.lang.Object(ARRAY(i1166)), i1126) -> f5055_0__init__FieldAccess(EOS(STATIC_5055), java.lang.Object(ARRAY(i1166)), i1126) :|: TRUE f5055_0__init__FieldAccess(EOS(STATIC_5055), java.lang.Object(ARRAY(i1166)), i1126) -> f5077_0__init__Load(EOS(STATIC_5077), java.lang.Object(ARRAY(i1166)), i1126) :|: TRUE f5077_0__init__Load(EOS(STATIC_5077), java.lang.Object(ARRAY(i1166)), i1126) -> f5085_0__init__Load(EOS(STATIC_5085), java.lang.Object(ARRAY(i1166)), i1126) :|: TRUE f5085_0__init__Load(EOS(STATIC_5085), java.lang.Object(ARRAY(i1166)), i1126) -> f5091_0__init__FieldAccess(EOS(STATIC_5091), java.lang.Object(ARRAY(i1166)), i1126) :|: TRUE f5091_0__init__FieldAccess(EOS(STATIC_5091), java.lang.Object(ARRAY(i1166)), i1126) -> f5098_0__init__Return(EOS(STATIC_5098), java.lang.Object(ARRAY(i1166)), i1126) :|: TRUE f5098_0__init__Return(EOS(STATIC_5098), java.lang.Object(ARRAY(i1166)), i1126) -> f5105_0_main_Store(EOS(STATIC_5105), java.lang.Object(ARRAY(i1166)), i1126) :|: TRUE f5105_0_main_Store(EOS(STATIC_5105), java.lang.Object(ARRAY(i1166)), i1126) -> f5112_0_main_Inc(EOS(STATIC_5112), java.lang.Object(ARRAY(i1166)), i1126) :|: TRUE f5112_0_main_Inc(EOS(STATIC_5112), java.lang.Object(ARRAY(i1166)), i1126) -> f5118_0_main_JMP(EOS(STATIC_5118), java.lang.Object(ARRAY(i1166)), i1126 + -1) :|: TRUE f5118_0_main_JMP(EOS(STATIC_5118), java.lang.Object(ARRAY(i1166)), i1293) -> f5124_0_main_Load(EOS(STATIC_5124), java.lang.Object(ARRAY(i1166)), i1293) :|: TRUE f5124_0_main_Load(EOS(STATIC_5124), java.lang.Object(ARRAY(i1166)), i1293) -> f4533_0_main_Load(EOS(STATIC_4533), java.lang.Object(ARRAY(i1166)), i1293) :|: TRUE f4533_0_main_Load(EOS(STATIC_4533), java.lang.Object(ARRAY(i1101)), i1103) -> f4559_0_main_LE(EOS(STATIC_4559), java.lang.Object(ARRAY(i1101)), i1103, i1103) :|: TRUE f7022_0_createTree_Return(EOS(STATIC_7022), java.lang.Object(ARRAY(i2386)), i1126, java.lang.Object(Tree(EOC))) -> f7023_0_createTree_Return(EOS(STATIC_7023), java.lang.Object(ARRAY(i2386)), i1126, java.lang.Object(Tree(EOC))) :|: TRUE f7023_0_createTree_Return(EOS(STATIC_7023), java.lang.Object(ARRAY(i2390)), i1126, java.lang.Object(Tree(EOC))) -> f7026_0_main_Store(EOS(STATIC_7026), java.lang.Object(ARRAY(i2390)), i1126, java.lang.Object(Tree(EOC))) :|: TRUE f7026_0_main_Store(EOS(STATIC_7026), java.lang.Object(ARRAY(i2390)), i1126, java.lang.Object(Tree(EOC))) -> f7029_0_main_New(EOS(STATIC_7029), java.lang.Object(ARRAY(i2390)), i1126, java.lang.Object(Tree(EOC))) :|: TRUE f7029_0_main_New(EOS(STATIC_7029), java.lang.Object(ARRAY(i2390)), i1126, java.lang.Object(Tree(EOC))) -> f7033_0_main_Duplicate(EOS(STATIC_7033), java.lang.Object(ARRAY(i2390)), i1126, java.lang.Object(Tree(EOC))) :|: TRUE f7033_0_main_Duplicate(EOS(STATIC_7033), java.lang.Object(ARRAY(i2390)), i1126, java.lang.Object(Tree(EOC))) -> f7036_0_main_Load(EOS(STATIC_7036), java.lang.Object(ARRAY(i2390)), i1126, java.lang.Object(Tree(EOC))) :|: TRUE f7036_0_main_Load(EOS(STATIC_7036), java.lang.Object(ARRAY(i2390)), i1126, java.lang.Object(Tree(EOC))) -> f7040_0_main_Load(EOS(STATIC_7040), java.lang.Object(ARRAY(i2390)), i1126, java.lang.Object(Tree(EOC))) :|: TRUE f7040_0_main_Load(EOS(STATIC_7040), java.lang.Object(ARRAY(i2390)), i1126, java.lang.Object(Tree(EOC))) -> f7044_0_main_InvokeMethod(EOS(STATIC_7044), java.lang.Object(ARRAY(i2390)), i1126, java.lang.Object(Tree(EOC))) :|: TRUE f7044_0_main_InvokeMethod(EOS(STATIC_7044), java.lang.Object(ARRAY(i2390)), i1126, java.lang.Object(Tree(EOC))) -> f7047_0__init__Load(EOS(STATIC_7047), java.lang.Object(ARRAY(i2390)), i1126, java.lang.Object(Tree(EOC))) :|: TRUE f7047_0__init__Load(EOS(STATIC_7047), java.lang.Object(ARRAY(i2390)), i1126, java.lang.Object(Tree(EOC))) -> f7054_0__init__InvokeMethod(EOS(STATIC_7054), java.lang.Object(ARRAY(i2390)), i1126, java.lang.Object(Tree(EOC))) :|: TRUE f7054_0__init__InvokeMethod(EOS(STATIC_7054), java.lang.Object(ARRAY(i2390)), i1126, java.lang.Object(Tree(EOC))) -> f7058_0__init__Load(EOS(STATIC_7058), java.lang.Object(ARRAY(i2390)), i1126, java.lang.Object(Tree(EOC))) :|: TRUE f7058_0__init__Load(EOS(STATIC_7058), java.lang.Object(ARRAY(i2390)), i1126, java.lang.Object(Tree(EOC))) -> f7063_0__init__Load(EOS(STATIC_7063), java.lang.Object(ARRAY(i2390)), i1126, java.lang.Object(Tree(EOC))) :|: TRUE f7063_0__init__Load(EOS(STATIC_7063), java.lang.Object(ARRAY(i2390)), i1126, java.lang.Object(Tree(EOC))) -> f7067_0__init__FieldAccess(EOS(STATIC_7067), java.lang.Object(ARRAY(i2390)), i1126, java.lang.Object(Tree(EOC))) :|: TRUE f7067_0__init__FieldAccess(EOS(STATIC_7067), java.lang.Object(ARRAY(i2390)), i1126, java.lang.Object(Tree(EOC))) -> f7070_0__init__Load(EOS(STATIC_7070), java.lang.Object(ARRAY(i2390)), i1126) :|: TRUE f7070_0__init__Load(EOS(STATIC_7070), java.lang.Object(ARRAY(i2390)), i1126) -> f7075_0__init__Load(EOS(STATIC_7075), java.lang.Object(ARRAY(i2390)), i1126) :|: TRUE f7075_0__init__Load(EOS(STATIC_7075), java.lang.Object(ARRAY(i2390)), i1126) -> f7079_0__init__FieldAccess(EOS(STATIC_7079), java.lang.Object(ARRAY(i2390)), i1126) :|: TRUE f7079_0__init__FieldAccess(EOS(STATIC_7079), java.lang.Object(ARRAY(i2390)), i1126) -> f7083_0__init__Return(EOS(STATIC_7083), java.lang.Object(ARRAY(i2390)), i1126) :|: TRUE f7083_0__init__Return(EOS(STATIC_7083), java.lang.Object(ARRAY(i2390)), i1126) -> f7088_0_main_Store(EOS(STATIC_7088), java.lang.Object(ARRAY(i2390)), i1126) :|: TRUE f7088_0_main_Store(EOS(STATIC_7088), java.lang.Object(ARRAY(i2390)), i1126) -> f7092_0_main_Inc(EOS(STATIC_7092), java.lang.Object(ARRAY(i2390)), i1126) :|: TRUE f7092_0_main_Inc(EOS(STATIC_7092), java.lang.Object(ARRAY(i2390)), i1126) -> f7098_0_main_JMP(EOS(STATIC_7098), java.lang.Object(ARRAY(i2390)), i1126 + -1) :|: TRUE f7098_0_main_JMP(EOS(STATIC_7098), java.lang.Object(ARRAY(i2390)), i2471) -> f7103_0_main_Load(EOS(STATIC_7103), java.lang.Object(ARRAY(i2390)), i2471) :|: TRUE f7103_0_main_Load(EOS(STATIC_7103), java.lang.Object(ARRAY(i2390)), i2471) -> f4533_0_main_Load(EOS(STATIC_4533), java.lang.Object(ARRAY(i2390)), i2471) :|: TRUE f4606_1_createTree_InvokeMethod(EOS(STATIC_4606), java.lang.Object(ARRAY(i1166)), i1126) -> f4834_0_createTree_Return(EOS(STATIC_4834), java.lang.Object(ARRAY(i1166)), i1126) :|: TRUE f4606_1_createTree_InvokeMethod(EOS(STATIC_4606), java.lang.Object(ARRAY(i2386)), i1126) -> f7022_0_createTree_Return(EOS(STATIC_7022), java.lang.Object(ARRAY(i2386)), i1126, java.lang.Object(Tree(EOC))) :|: TRUE Combined rules. Obtained 2 IRulesP rules: f4559_0_main_LE(EOS(STATIC_4559), java.lang.Object(ARRAY(i1101:0)), i1126:0, i1126:0) -> f4559_0_main_LE(EOS(STATIC_4559), java.lang.Object(ARRAY(i1101:0)), i1126:0 - 1, i1126:0 - 1) :|: i1102:0 > 0 && i1126:0 > 0 Removed following non-SCC rules: f4559_0_main_LE(EOS(STATIC_4559), java.lang.Object(ARRAY(i1101:0)), i1126:0, i1126:0) -> f7809_0_createTree_InvokeMethod(EOS(STATIC_7809), java.lang.Object(ARRAY(i1101:0))) :|: i1102:0 > 0 && i1126:0 > 0 Filtered constant ground arguments: f4559_0_main_LE(x1, x2, x3, x4) -> f4559_0_main_LE(x2, x3, x4) EOS(x1) -> EOS Filtered duplicate arguments: f4559_0_main_LE(x1, x2, x3) -> f4559_0_main_LE(x1, x3) Filtered unneeded arguments: f4559_0_main_LE(x1, x2) -> f4559_0_main_LE(x2) Finished conversion. Obtained 1 rules.P rules: f4559_0_main_LE(i1126:0) -> f4559_0_main_LE(i1126:0 - 1) :|: i1102:0 > 0 && i1126:0 > 0 ---------------------------------------- (34) Obligation: Rules: f4559_0_main_LE(i1126:0) -> f4559_0_main_LE(i1126:0 - 1) :|: i1102:0 > 0 && i1126:0 > 0 ---------------------------------------- (35) IRSFormatTransformerProof (EQUIVALENT) Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). ---------------------------------------- (36) Obligation: Rules: f4559_0_main_LE(i1126:0) -> f4559_0_main_LE(arith) :|: i1102:0 > 0 && i1126:0 > 0 && arith = i1126:0 - 1 ---------------------------------------- (37) IRSwTTerminationDigraphProof (EQUIVALENT) Constructed termination digraph! Nodes: (1) f4559_0_main_LE(i1126:0) -> f4559_0_main_LE(arith) :|: i1102:0 > 0 && i1126:0 > 0 && arith = i1126:0 - 1 Arcs: (1) -> (1) This digraph is fully evaluated! ---------------------------------------- (38) Obligation: Termination digraph: Nodes: (1) f4559_0_main_LE(i1126:0) -> f4559_0_main_LE(arith) :|: i1102:0 > 0 && i1126:0 > 0 && arith = i1126:0 - 1 Arcs: (1) -> (1) This digraph is fully evaluated! ---------------------------------------- (39) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (40) Obligation: Rules: f4559_0_main_LE(i1126:0:0) -> f4559_0_main_LE(i1126:0:0 - 1) :|: i1102:0:0 > 0 && i1126:0:0 > 0 ---------------------------------------- (41) TempFilterProof (SOUND) Used the following sort dictionary for filtering: f4559_0_main_LE(INTEGER) Replaced non-predefined constructor symbols by 0. ---------------------------------------- (42) Obligation: Rules: f4559_0_main_LE(i1126:0:0) -> f4559_0_main_LE(c) :|: c = i1126:0:0 - 1 && (i1102:0:0 > 0 && i1126:0:0 > 0) ---------------------------------------- (43) RankingReductionPairProof (EQUIVALENT) Interpretation: [ f4559_0_main_LE ] = f4559_0_main_LE_1 The following rules are decreasing: f4559_0_main_LE(i1126:0:0) -> f4559_0_main_LE(c) :|: c = i1126:0:0 - 1 && (i1102:0:0 > 0 && i1126:0:0 > 0) The following rules are bounded: f4559_0_main_LE(i1126:0:0) -> f4559_0_main_LE(c) :|: c = i1126:0:0 - 1 && (i1102:0:0 > 0 && i1126:0:0 > 0) ---------------------------------------- (44) YES