/export/starexec/sandbox2/solver/bin/starexec_run_standard /export/starexec/sandbox2/benchmark/theBenchmark.jar /export/starexec/sandbox2/output/output_files -------------------------------------------------------------------------------- YES proof of /export/starexec/sandbox2/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, 830 ms] (4) JBCTerminationGraph (5) TerminationGraphToSCCProof [SOUND, 0 ms] (6) AND (7) JBCTerminationSCC (8) SCCToIRSProof [SOUND, 157 ms] (9) IRSwT (10) IRSFormatTransformerProof [EQUIVALENT, 0 ms] (11) IRSwT (12) IRSwTTerminationDigraphProof [EQUIVALENT, 37 ms] (13) IRSwT (14) IntTRSCompressionProof [EQUIVALENT, 0 ms] (15) IRSwT (16) TempFilterProof [SOUND, 53 ms] (17) IntTRS (18) PolynomialOrderProcessor [EQUIVALENT, 0 ms] (19) IntTRS (20) PolynomialOrderProcessor [EQUIVALENT, 0 ms] (21) YES (22) JBCTerminationSCC (23) SCCToQDPProof [SOUND, 236 ms] (24) QDP (25) UsableRulesReductionPairsProof [EQUIVALENT, 37 ms] (26) QDP (27) MRRProof [EQUIVALENT, 0 ms] (28) QDP (29) PisEmptyProof [EQUIVALENT, 0 ms] (30) YES ---------------------------------------- (0) Obligation: need to prove termination of the following program: public class CountMetaList { public static void main(String[] args) { Random.args = args; List l = createMetaList(); int count = countMetaList(l); } public static int countMetaList(List cur) { int res = 0; while (cur != null) { if (cur.value instanceof List) { List inner = (List) cur.value; cur.value = inner.next; cur = new List(inner.value, cur); } cur = cur.next; res++; } return res; } public static List createMetaList() { int count = Random.random(); List cur = null; for (int i = 0; i < count; i++) { int innerCount = Random.random(); List innerList = null; for (int j = innerCount; j > 0; j--) { innerList = new List(null, innerList); } cur = new List(innerList, cur); } return cur; } } class List { Object value; List next; public List(Object v, List n) { this.value = v; this.next = n; } } public class Random { static String[] args; static int index = 0; public static int random() { String string = args[index]; index++; return string.length(); } } ---------------------------------------- (1) BareJBCToJBCProof (EQUIVALENT) initialized classpath ---------------------------------------- (2) Obligation: need to prove termination of the following program: public class CountMetaList { public static void main(String[] args) { Random.args = args; List l = createMetaList(); int count = countMetaList(l); } public static int countMetaList(List cur) { int res = 0; while (cur != null) { if (cur.value instanceof List) { List inner = (List) cur.value; cur.value = inner.next; cur = new List(inner.value, cur); } cur = cur.next; res++; } return res; } public static List createMetaList() { int count = Random.random(); List cur = null; for (int i = 0; i < count; i++) { int innerCount = Random.random(); List innerList = null; for (int j = innerCount; j > 0; j--) { innerList = new List(null, innerList); } cur = new List(innerList, cur); } return cur; } } class List { Object value; List next; public List(Object v, List n) { this.value = v; this.next = n; } } public class Random { static String[] args; static int index = 0; public static int random() { String string = args[index]; index++; return string.length(); } } ---------------------------------------- (3) JBCToGraph (EQUIVALENT) Constructed TerminationGraph. ---------------------------------------- (4) Obligation: Termination Graph based on JBC Program: CountMetaList.main([Ljava/lang/String;)V: Graph of 89 nodes with 1 SCC. CountMetaList.createMetaList()LList;: Graph of 247 nodes with 1 SCC. ---------------------------------------- (5) TerminationGraphToSCCProof (SOUND) Splitted TerminationGraph to 2 SCCss. ---------------------------------------- (6) Complex Obligation (AND) ---------------------------------------- (7) Obligation: SCC of termination graph based on JBC Program. SCC contains nodes from the following methods: CountMetaList.createMetaList()LList; SCC calls the following helper methods: Performed SCC analyses: *Used field analysis yielded the following read fields: *java.lang.String: [count] *Marker field analysis yielded the following relations that could be markers: ---------------------------------------- (8) SCCToIRSProof (SOUND) Transformed FIGraph SCCs to intTRSs. Log: Generated rules. Obtained 71 IRulesP rules: f3903_0_createMetaList_Load(EOS(STATIC_3903(java.lang.Object(ARRAY(i6)))), i542, i543, i543) -> f3905_0_createMetaList_GE(EOS(STATIC_3905(java.lang.Object(ARRAY(i6)))), i542, i543, i543, i542) :|: TRUE f3905_0_createMetaList_GE(EOS(STATIC_3905(java.lang.Object(ARRAY(i6)))), i542, i543, i543, i542) -> f3920_0_createMetaList_GE(EOS(STATIC_3920(java.lang.Object(ARRAY(i6)))), i542, i543, i543, i542) :|: i543 < i542 f3920_0_createMetaList_GE(EOS(STATIC_3920(java.lang.Object(ARRAY(i6)))), i542, i543, i543, i542) -> f3940_0_createMetaList_InvokeMethod(EOS(STATIC_3940(java.lang.Object(ARRAY(i6)))), i542, i543) :|: i543 < i542 f3940_0_createMetaList_InvokeMethod(EOS(STATIC_3940(java.lang.Object(ARRAY(i6)))), i542, i543) -> f3945_0_random_FieldAccess(EOS(STATIC_3945(java.lang.Object(ARRAY(i6)))), i542, i543) :|: TRUE f3945_0_random_FieldAccess(EOS(STATIC_3945(java.lang.Object(ARRAY(i6)))), i542, i543) -> f3958_0_random_FieldAccess(EOS(STATIC_3958(java.lang.Object(ARRAY(i6)))), i542, i543, java.lang.Object(ARRAY(i6))) :|: TRUE f3958_0_random_FieldAccess(EOS(STATIC_3958(java.lang.Object(ARRAY(i6)))), i542, i543, java.lang.Object(ARRAY(i6))) -> f3984_0_random_ArrayAccess(EOS(STATIC_3984(java.lang.Object(ARRAY(i6)))), i542, i543, java.lang.Object(ARRAY(i6))) :|: TRUE f3984_0_random_ArrayAccess(EOS(STATIC_3984(java.lang.Object(ARRAY(i6)))), i542, i543, java.lang.Object(ARRAY(i6))) -> f3990_0_random_ArrayAccess(EOS(STATIC_3990(java.lang.Object(ARRAY(i6)))), i542, i543, java.lang.Object(ARRAY(i6))) :|: TRUE f3990_0_random_ArrayAccess(EOS(STATIC_3990(java.lang.Object(ARRAY(i6)))), i542, i543, java.lang.Object(ARRAY(i6))) -> f3997_0_random_ArrayAccess(EOS(STATIC_3997(java.lang.Object(ARRAY(i6)))), i542, i543, java.lang.Object(ARRAY(i6))) :|: TRUE f3997_0_random_ArrayAccess(EOS(STATIC_3997(java.lang.Object(ARRAY(i6)))), i542, i543, java.lang.Object(ARRAY(i6))) -> f4003_0_random_Store(EOS(STATIC_4003(java.lang.Object(ARRAY(i6)))), i542, i543, o806) :|: TRUE f4003_0_random_Store(EOS(STATIC_4003(java.lang.Object(ARRAY(i6)))), i542, i543, o806) -> f4015_0_random_FieldAccess(EOS(STATIC_4015(java.lang.Object(ARRAY(i6)))), i542, i543, o806) :|: TRUE f4015_0_random_FieldAccess(EOS(STATIC_4015(java.lang.Object(ARRAY(i6)))), i542, i543, o806) -> f4021_0_random_ConstantStackPush(EOS(STATIC_4021(java.lang.Object(ARRAY(i6)))), i542, i543, o806) :|: TRUE f4021_0_random_ConstantStackPush(EOS(STATIC_4021(java.lang.Object(ARRAY(i6)))), i542, i543, o806) -> f4030_0_random_IntArithmetic(EOS(STATIC_4030(java.lang.Object(ARRAY(i6)))), i542, i543, o806) :|: TRUE f4030_0_random_IntArithmetic(EOS(STATIC_4030(java.lang.Object(ARRAY(i6)))), i542, i543, o806) -> f4044_0_random_FieldAccess(EOS(STATIC_4044(java.lang.Object(ARRAY(i6)))), i542, i543, o806) :|: TRUE f4044_0_random_FieldAccess(EOS(STATIC_4044(java.lang.Object(ARRAY(i6)))), i542, i543, o806) -> f4052_0_random_Load(EOS(STATIC_4052(java.lang.Object(ARRAY(i6)))), i542, i543, o806) :|: TRUE f4052_0_random_Load(EOS(STATIC_4052(java.lang.Object(ARRAY(i6)))), i542, i543, o806) -> f4064_0_random_InvokeMethod(EOS(STATIC_4064(java.lang.Object(ARRAY(i6)))), i542, i543, o806) :|: TRUE f4064_0_random_InvokeMethod(EOS(STATIC_4064(java.lang.Object(ARRAY(i6)))), i542, i543, java.lang.Object(o829sub)) -> f4078_0_random_InvokeMethod(EOS(STATIC_4078(java.lang.Object(ARRAY(i6)))), i542, i543, java.lang.Object(o829sub)) :|: TRUE f4078_0_random_InvokeMethod(EOS(STATIC_4078(java.lang.Object(ARRAY(i6)))), i542, i543, java.lang.Object(o830sub)) -> f4083_0_random_InvokeMethod(EOS(STATIC_4083(java.lang.Object(ARRAY(i6)))), i542, i543, java.lang.Object(o830sub)) :|: TRUE f4083_0_random_InvokeMethod(EOS(STATIC_4083(java.lang.Object(ARRAY(i6)))), i542, i543, java.lang.Object(o830sub)) -> f4096_0_length_Load(EOS(STATIC_4096(java.lang.Object(ARRAY(i6)))), i542, i543, java.lang.Object(o830sub)) :|: TRUE f4096_0_length_Load(EOS(STATIC_4096(java.lang.Object(ARRAY(i6)))), i542, i543, java.lang.Object(o830sub)) -> f4126_0_length_FieldAccess(EOS(STATIC_4126(java.lang.Object(ARRAY(i6)))), i542, i543, java.lang.Object(o830sub)) :|: TRUE f4126_0_length_FieldAccess(EOS(STATIC_4126(java.lang.Object(ARRAY(i6)))), i542, i543, java.lang.Object(java.lang.String(EOC, i596))) -> f4140_0_length_FieldAccess(EOS(STATIC_4140(java.lang.Object(ARRAY(i6)))), i542, i543, java.lang.Object(java.lang.String(EOC, i596))) :|: i596 >= 0 f4140_0_length_FieldAccess(EOS(STATIC_4140(java.lang.Object(ARRAY(i6)))), i542, i543, java.lang.Object(java.lang.String(EOC, i596))) -> f4160_0_length_Return(EOS(STATIC_4160(java.lang.Object(ARRAY(i6)))), i542, i543, i596) :|: TRUE f4160_0_length_Return(EOS(STATIC_4160(java.lang.Object(ARRAY(i6)))), i542, i543, i596) -> f4181_0_random_Return(EOS(STATIC_4181(java.lang.Object(ARRAY(i6)))), i542, i543, i596) :|: TRUE f4181_0_random_Return(EOS(STATIC_4181(java.lang.Object(ARRAY(i6)))), i542, i543, i596) -> f4199_0_createMetaList_Store(EOS(STATIC_4199(java.lang.Object(ARRAY(i6)))), i542, i543, i596) :|: TRUE f4199_0_createMetaList_Store(EOS(STATIC_4199(java.lang.Object(ARRAY(i6)))), i542, i543, i596) -> f4226_0_createMetaList_ConstantStackPush(EOS(STATIC_4226(java.lang.Object(ARRAY(i6)))), i542, i543, i596) :|: TRUE f4226_0_createMetaList_ConstantStackPush(EOS(STATIC_4226(java.lang.Object(ARRAY(i6)))), i542, i543, i596) -> f4257_0_createMetaList_Store(EOS(STATIC_4257(java.lang.Object(ARRAY(i6)))), i542, i543, i596) :|: TRUE f4257_0_createMetaList_Store(EOS(STATIC_4257(java.lang.Object(ARRAY(i6)))), i542, i543, i596) -> f4308_0_createMetaList_Load(EOS(STATIC_4308(java.lang.Object(ARRAY(i6)))), i542, i543, i596) :|: TRUE f4308_0_createMetaList_Load(EOS(STATIC_4308(java.lang.Object(ARRAY(i6)))), i542, i543, i596) -> f4323_0_createMetaList_Store(EOS(STATIC_4323(java.lang.Object(ARRAY(i6)))), i542, i543, i596) :|: TRUE f4323_0_createMetaList_Store(EOS(STATIC_4323(java.lang.Object(ARRAY(i6)))), i542, i543, i596) -> f4341_0_createMetaList_Load(EOS(STATIC_4341(java.lang.Object(ARRAY(i6)))), i542, i543, i596) :|: TRUE f4341_0_createMetaList_Load(EOS(STATIC_4341(java.lang.Object(ARRAY(i6)))), i542, i543, i596) -> f5214_0_createMetaList_Load(EOS(STATIC_5214(java.lang.Object(ARRAY(i6)))), i542, i543, i596) :|: TRUE f5214_0_createMetaList_Load(EOS(STATIC_5214(java.lang.Object(ARRAY(i6)))), i542, i543, i770) -> f5229_0_createMetaList_LE(EOS(STATIC_5229(java.lang.Object(ARRAY(i6)))), i542, i543, i770, i770) :|: TRUE f5229_0_createMetaList_LE(EOS(STATIC_5229(java.lang.Object(ARRAY(i6)))), i542, i543, matching1, matching2) -> f5233_0_createMetaList_LE(EOS(STATIC_5233(java.lang.Object(ARRAY(i6)))), i542, i543, 0, 0) :|: TRUE && matching1 = 0 && matching2 = 0 f5229_0_createMetaList_LE(EOS(STATIC_5229(java.lang.Object(ARRAY(i6)))), i542, i543, i774, i774) -> f5234_0_createMetaList_LE(EOS(STATIC_5234(java.lang.Object(ARRAY(i6)))), i542, i543, i774, i774) :|: TRUE f5233_0_createMetaList_LE(EOS(STATIC_5233(java.lang.Object(ARRAY(i6)))), i542, i543, matching1, matching2) -> f5241_0_createMetaList_New(EOS(STATIC_5241(java.lang.Object(ARRAY(i6)))), i542, i543) :|: 0 <= 0 && matching1 = 0 && matching2 = 0 f5241_0_createMetaList_New(EOS(STATIC_5241(java.lang.Object(ARRAY(i6)))), i542, i543) -> f5248_0_createMetaList_Duplicate(EOS(STATIC_5248(java.lang.Object(ARRAY(i6)))), i542, i543) :|: TRUE f5248_0_createMetaList_Duplicate(EOS(STATIC_5248(java.lang.Object(ARRAY(i6)))), i542, i543) -> f5254_0_createMetaList_Load(EOS(STATIC_5254(java.lang.Object(ARRAY(i6)))), i542, i543) :|: TRUE f5254_0_createMetaList_Load(EOS(STATIC_5254(java.lang.Object(ARRAY(i6)))), i542, i543) -> f5259_0_createMetaList_Load(EOS(STATIC_5259(java.lang.Object(ARRAY(i6)))), i542, i543) :|: TRUE f5259_0_createMetaList_Load(EOS(STATIC_5259(java.lang.Object(ARRAY(i6)))), i542, i543) -> f5263_0_createMetaList_InvokeMethod(EOS(STATIC_5263(java.lang.Object(ARRAY(i6)))), i542, i543) :|: TRUE f5263_0_createMetaList_InvokeMethod(EOS(STATIC_5263(java.lang.Object(ARRAY(i6)))), i542, i543) -> f5267_0__init__Load(EOS(STATIC_5267(java.lang.Object(ARRAY(i6)))), i542, i543) :|: TRUE f5267_0__init__Load(EOS(STATIC_5267(java.lang.Object(ARRAY(i6)))), i542, i543) -> f5273_0__init__InvokeMethod(EOS(STATIC_5273(java.lang.Object(ARRAY(i6)))), i542, i543) :|: TRUE f5273_0__init__InvokeMethod(EOS(STATIC_5273(java.lang.Object(ARRAY(i6)))), i542, i543) -> f5280_0__init__Load(EOS(STATIC_5280(java.lang.Object(ARRAY(i6)))), i542, i543) :|: TRUE f5280_0__init__Load(EOS(STATIC_5280(java.lang.Object(ARRAY(i6)))), i542, i543) -> f5288_0__init__Load(EOS(STATIC_5288(java.lang.Object(ARRAY(i6)))), i542, i543) :|: TRUE f5288_0__init__Load(EOS(STATIC_5288(java.lang.Object(ARRAY(i6)))), i542, i543) -> f5294_0__init__FieldAccess(EOS(STATIC_5294(java.lang.Object(ARRAY(i6)))), i542, i543) :|: TRUE f5294_0__init__FieldAccess(EOS(STATIC_5294(java.lang.Object(ARRAY(i6)))), i542, i543) -> f5306_0__init__Load(EOS(STATIC_5306(java.lang.Object(ARRAY(i6)))), i542, i543) :|: TRUE f5306_0__init__Load(EOS(STATIC_5306(java.lang.Object(ARRAY(i6)))), i542, i543) -> f5316_0__init__Load(EOS(STATIC_5316(java.lang.Object(ARRAY(i6)))), i542, i543) :|: TRUE f5316_0__init__Load(EOS(STATIC_5316(java.lang.Object(ARRAY(i6)))), i542, i543) -> f5323_0__init__FieldAccess(EOS(STATIC_5323(java.lang.Object(ARRAY(i6)))), i542, i543) :|: TRUE f5323_0__init__FieldAccess(EOS(STATIC_5323(java.lang.Object(ARRAY(i6)))), i542, i543) -> f5333_0__init__Return(EOS(STATIC_5333(java.lang.Object(ARRAY(i6)))), i542, i543) :|: TRUE f5333_0__init__Return(EOS(STATIC_5333(java.lang.Object(ARRAY(i6)))), i542, i543) -> f5346_0_createMetaList_Store(EOS(STATIC_5346(java.lang.Object(ARRAY(i6)))), i542, i543) :|: TRUE f5346_0_createMetaList_Store(EOS(STATIC_5346(java.lang.Object(ARRAY(i6)))), i542, i543) -> f5351_0_createMetaList_Inc(EOS(STATIC_5351(java.lang.Object(ARRAY(i6)))), i542, i543) :|: TRUE f5351_0_createMetaList_Inc(EOS(STATIC_5351(java.lang.Object(ARRAY(i6)))), i542, i543) -> f5354_0_createMetaList_JMP(EOS(STATIC_5354(java.lang.Object(ARRAY(i6)))), i542, i543 + 1) :|: TRUE f5354_0_createMetaList_JMP(EOS(STATIC_5354(java.lang.Object(ARRAY(i6)))), i542, i783) -> f5357_0_createMetaList_Load(EOS(STATIC_5357(java.lang.Object(ARRAY(i6)))), i542, i783) :|: TRUE f5357_0_createMetaList_Load(EOS(STATIC_5357(java.lang.Object(ARRAY(i6)))), i542, i783) -> f3897_0_createMetaList_Load(EOS(STATIC_3897(java.lang.Object(ARRAY(i6)))), i542, i783) :|: TRUE f3897_0_createMetaList_Load(EOS(STATIC_3897(java.lang.Object(ARRAY(i6)))), i542, i543) -> f3903_0_createMetaList_Load(EOS(STATIC_3903(java.lang.Object(ARRAY(i6)))), i542, i543, i543) :|: TRUE f5234_0_createMetaList_LE(EOS(STATIC_5234(java.lang.Object(ARRAY(i6)))), i542, i543, i774, i774) -> f5243_0_createMetaList_New(EOS(STATIC_5243(java.lang.Object(ARRAY(i6)))), i542, i543, i774) :|: i774 > 0 f5243_0_createMetaList_New(EOS(STATIC_5243(java.lang.Object(ARRAY(i6)))), i542, i543, i774) -> f5250_0_createMetaList_Duplicate(EOS(STATIC_5250(java.lang.Object(ARRAY(i6)))), i542, i543, i774) :|: TRUE f5250_0_createMetaList_Duplicate(EOS(STATIC_5250(java.lang.Object(ARRAY(i6)))), i542, i543, i774) -> f5256_0_createMetaList_ConstantStackPush(EOS(STATIC_5256(java.lang.Object(ARRAY(i6)))), i542, i543, i774) :|: TRUE f5256_0_createMetaList_ConstantStackPush(EOS(STATIC_5256(java.lang.Object(ARRAY(i6)))), i542, i543, i774) -> f5261_0_createMetaList_Load(EOS(STATIC_5261(java.lang.Object(ARRAY(i6)))), i542, i543, i774) :|: TRUE f5261_0_createMetaList_Load(EOS(STATIC_5261(java.lang.Object(ARRAY(i6)))), i542, i543, i774) -> f5264_0_createMetaList_InvokeMethod(EOS(STATIC_5264(java.lang.Object(ARRAY(i6)))), i542, i543, i774) :|: TRUE f5264_0_createMetaList_InvokeMethod(EOS(STATIC_5264(java.lang.Object(ARRAY(i6)))), i542, i543, i774) -> f5269_0__init__Load(EOS(STATIC_5269(java.lang.Object(ARRAY(i6)))), i542, i543, i774) :|: TRUE f5269_0__init__Load(EOS(STATIC_5269(java.lang.Object(ARRAY(i6)))), i542, i543, i774) -> f5276_0__init__InvokeMethod(EOS(STATIC_5276(java.lang.Object(ARRAY(i6)))), i542, i543, i774) :|: TRUE f5276_0__init__InvokeMethod(EOS(STATIC_5276(java.lang.Object(ARRAY(i6)))), i542, i543, i774) -> f5283_0__init__Load(EOS(STATIC_5283(java.lang.Object(ARRAY(i6)))), i542, i543, i774) :|: TRUE f5283_0__init__Load(EOS(STATIC_5283(java.lang.Object(ARRAY(i6)))), i542, i543, i774) -> f5291_0__init__Load(EOS(STATIC_5291(java.lang.Object(ARRAY(i6)))), i542, i543, i774) :|: TRUE f5291_0__init__Load(EOS(STATIC_5291(java.lang.Object(ARRAY(i6)))), i542, i543, i774) -> f5298_0__init__FieldAccess(EOS(STATIC_5298(java.lang.Object(ARRAY(i6)))), i542, i543, i774) :|: TRUE f5298_0__init__FieldAccess(EOS(STATIC_5298(java.lang.Object(ARRAY(i6)))), i542, i543, i774) -> f5310_0__init__Load(EOS(STATIC_5310(java.lang.Object(ARRAY(i6)))), i542, i543, i774) :|: TRUE f5310_0__init__Load(EOS(STATIC_5310(java.lang.Object(ARRAY(i6)))), i542, i543, i774) -> f5319_0__init__Load(EOS(STATIC_5319(java.lang.Object(ARRAY(i6)))), i542, i543, i774) :|: TRUE f5319_0__init__Load(EOS(STATIC_5319(java.lang.Object(ARRAY(i6)))), i542, i543, i774) -> f5327_0__init__FieldAccess(EOS(STATIC_5327(java.lang.Object(ARRAY(i6)))), i542, i543, i774) :|: TRUE f5327_0__init__FieldAccess(EOS(STATIC_5327(java.lang.Object(ARRAY(i6)))), i542, i543, i774) -> f5339_0__init__Return(EOS(STATIC_5339(java.lang.Object(ARRAY(i6)))), i542, i543, i774) :|: TRUE f5339_0__init__Return(EOS(STATIC_5339(java.lang.Object(ARRAY(i6)))), i542, i543, i774) -> f5347_0_createMetaList_Store(EOS(STATIC_5347(java.lang.Object(ARRAY(i6)))), i542, i543, i774) :|: TRUE f5347_0_createMetaList_Store(EOS(STATIC_5347(java.lang.Object(ARRAY(i6)))), i542, i543, i774) -> f5352_0_createMetaList_Inc(EOS(STATIC_5352(java.lang.Object(ARRAY(i6)))), i542, i543, i774) :|: TRUE f5352_0_createMetaList_Inc(EOS(STATIC_5352(java.lang.Object(ARRAY(i6)))), i542, i543, i774) -> f5355_0_createMetaList_JMP(EOS(STATIC_5355(java.lang.Object(ARRAY(i6)))), i542, i543, i774 + -1) :|: TRUE f5355_0_createMetaList_JMP(EOS(STATIC_5355(java.lang.Object(ARRAY(i6)))), i542, i543, i784) -> f5358_0_createMetaList_Load(EOS(STATIC_5358(java.lang.Object(ARRAY(i6)))), i542, i543, i784) :|: TRUE f5358_0_createMetaList_Load(EOS(STATIC_5358(java.lang.Object(ARRAY(i6)))), i542, i543, i784) -> f5214_0_createMetaList_Load(EOS(STATIC_5214(java.lang.Object(ARRAY(i6)))), i542, i543, i784) :|: TRUE Combined rules. Obtained 2 IRulesP rules: f5229_0_createMetaList_LE(EOS(STATIC_5229(java.lang.Object(ARRAY(i6:0)))), i542:0, i543:0, 0, 0) -> f5229_0_createMetaList_LE(EOS(STATIC_5229(java.lang.Object(ARRAY(i6:0)))), i542:0, i543:0 + 1, i596:0, i596:0) :|: i543:0 + 1 < i542:0 && i596:0 > -1 f5229_0_createMetaList_LE(EOS(STATIC_5229(java.lang.Object(ARRAY(i6:0)))), i542:0, i543:0, i774:0, i774:0) -> f5229_0_createMetaList_LE(EOS(STATIC_5229(java.lang.Object(ARRAY(i6:0)))), i542:0, i543:0, i774:0 - 1, i774:0 - 1) :|: i774:0 > 0 Filtered duplicate arguments: f5229_0_createMetaList_LE(x1, x2, x3, x4, x5) -> f5229_0_createMetaList_LE(x1, x2, x3, x5) Filtered unneeded arguments: f5229_0_createMetaList_LE(x1, x2, x3, x4) -> f5229_0_createMetaList_LE(x2, x3, x4) Finished conversion. Obtained 2 rules.P rules: f5229_0_createMetaList_LE(i542:0, i543:0, cons_0) -> f5229_0_createMetaList_LE(i542:0, i543:0 + 1, i596:0) :|: i543:0 + 1 < i542:0 && i596:0 > -1 && cons_0 = 0 f5229_0_createMetaList_LE(i542:0, i543:0, i774:0) -> f5229_0_createMetaList_LE(i542:0, i543:0, i774:0 - 1) :|: i774:0 > 0 ---------------------------------------- (9) Obligation: Rules: f5229_0_createMetaList_LE(i542:0, i543:0, cons_0) -> f5229_0_createMetaList_LE(i542:0, i543:0 + 1, i596:0) :|: i543:0 + 1 < i542:0 && i596:0 > -1 && cons_0 = 0 f5229_0_createMetaList_LE(x, x1, x2) -> f5229_0_createMetaList_LE(x, x1, x2 - 1) :|: x2 > 0 ---------------------------------------- (10) IRSFormatTransformerProof (EQUIVALENT) Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). ---------------------------------------- (11) Obligation: Rules: f5229_0_createMetaList_LE(i542:0, i543:0, cons_0) -> f5229_0_createMetaList_LE(i542:0, arith, i596:0) :|: i543:0 + 1 < i542:0 && i596:0 > -1 && cons_0 = 0 && arith = i543:0 + 1 f5229_0_createMetaList_LE(x3, x4, x5) -> f5229_0_createMetaList_LE(x3, x4, x6) :|: x5 > 0 && x6 = x5 - 1 ---------------------------------------- (12) IRSwTTerminationDigraphProof (EQUIVALENT) Constructed termination digraph! Nodes: (1) f5229_0_createMetaList_LE(i542:0, i543:0, cons_0) -> f5229_0_createMetaList_LE(i542:0, arith, i596:0) :|: i543:0 + 1 < i542:0 && i596:0 > -1 && cons_0 = 0 && arith = i543:0 + 1 (2) f5229_0_createMetaList_LE(x3, x4, x5) -> f5229_0_createMetaList_LE(x3, x4, x6) :|: x5 > 0 && x6 = x5 - 1 Arcs: (1) -> (1), (2) (2) -> (1), (2) This digraph is fully evaluated! ---------------------------------------- (13) Obligation: Termination digraph: Nodes: (1) f5229_0_createMetaList_LE(i542:0, i543:0, cons_0) -> f5229_0_createMetaList_LE(i542:0, arith, i596:0) :|: i543:0 + 1 < i542:0 && i596:0 > -1 && cons_0 = 0 && arith = i543:0 + 1 (2) f5229_0_createMetaList_LE(x3, x4, x5) -> f5229_0_createMetaList_LE(x3, x4, x6) :|: x5 > 0 && x6 = x5 - 1 Arcs: (1) -> (1), (2) (2) -> (1), (2) This digraph is fully evaluated! ---------------------------------------- (14) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (15) Obligation: Rules: f5229_0_createMetaList_LE(x3:0, x4:0, x5:0) -> f5229_0_createMetaList_LE(x3:0, x4:0, x5:0 - 1) :|: x5:0 > 0 f5229_0_createMetaList_LE(i542:0:0, i543:0:0, cons_0) -> f5229_0_createMetaList_LE(i542:0:0, i543:0:0 + 1, i596:0:0) :|: i543:0:0 + 1 < i542:0:0 && i596:0:0 > -1 && cons_0 = 0 ---------------------------------------- (16) TempFilterProof (SOUND) Used the following sort dictionary for filtering: f5229_0_createMetaList_LE(VARIABLE, VARIABLE, INTEGER) Replaced non-predefined constructor symbols by 0. ---------------------------------------- (17) Obligation: Rules: f5229_0_createMetaList_LE(x3:0, x4:0, x5:0) -> f5229_0_createMetaList_LE(x3:0, x4:0, c) :|: c = x5:0 - 1 && x5:0 > 0 f5229_0_createMetaList_LE(i542:0:0, i543:0:0, c1) -> f5229_0_createMetaList_LE(i542:0:0, c2, i596:0:0) :|: c2 = i543:0:0 + 1 && c1 = 0 && (i543:0:0 + 1 < i542:0:0 && i596:0:0 > -1 && cons_0 = 0) ---------------------------------------- (18) PolynomialOrderProcessor (EQUIVALENT) Found the following polynomial interpretation: [f5229_0_createMetaList_LE(x, x1, x2)] = -1 + x - x1 The following rules are decreasing: f5229_0_createMetaList_LE(i542:0:0, i543:0:0, c1) -> f5229_0_createMetaList_LE(i542:0:0, c2, i596:0:0) :|: c2 = i543:0:0 + 1 && c1 = 0 && (i543:0:0 + 1 < i542:0:0 && i596:0:0 > -1 && cons_0 = 0) The following rules are bounded: f5229_0_createMetaList_LE(i542:0:0, i543:0:0, c1) -> f5229_0_createMetaList_LE(i542:0:0, c2, i596:0:0) :|: c2 = i543:0:0 + 1 && c1 = 0 && (i543:0:0 + 1 < i542:0:0 && i596:0:0 > -1 && cons_0 = 0) ---------------------------------------- (19) Obligation: Rules: f5229_0_createMetaList_LE(x3:0, x4:0, x5:0) -> f5229_0_createMetaList_LE(x3:0, x4:0, c) :|: c = x5:0 - 1 && x5:0 > 0 ---------------------------------------- (20) PolynomialOrderProcessor (EQUIVALENT) Found the following polynomial interpretation: [f5229_0_createMetaList_LE(x, x1, x2)] = x2 The following rules are decreasing: f5229_0_createMetaList_LE(x3:0, x4:0, x5:0) -> f5229_0_createMetaList_LE(x3:0, x4:0, c) :|: c = x5:0 - 1 && x5:0 > 0 The following rules are bounded: f5229_0_createMetaList_LE(x3:0, x4:0, x5:0) -> f5229_0_createMetaList_LE(x3:0, x4:0, c) :|: c = x5:0 - 1 && x5:0 > 0 ---------------------------------------- (21) YES ---------------------------------------- (22) Obligation: SCC of termination graph based on JBC Program. SCC contains nodes from the following methods: CountMetaList.main([Ljava/lang/String;)V SCC calls the following helper methods: Performed SCC analyses: *Used field analysis yielded the following read fields: *List: [value, next] *Marker field analysis yielded the following relations that could be markers: ---------------------------------------- (23) SCCToQDPProof (SOUND) Transformed TerminationGraph SCC to QDP. Log: Generated 56 rules for P and 0 rules for R.P rules: f4975_0_countMetaList_NULL(EOS(STATIC_4975), java.lang.Object(o1069sub), java.lang.Object(o1069sub)) -> f4983_0_countMetaList_NULL(EOS(STATIC_4983), java.lang.Object(o1069sub), java.lang.Object(o1069sub)) :|: TRUE f4983_0_countMetaList_NULL(EOS(STATIC_4983), java.lang.Object(o1069sub), java.lang.Object(o1069sub)) -> f5006_0_countMetaList_Load(EOS(STATIC_5006), java.lang.Object(o1069sub)) :|: TRUE f5006_0_countMetaList_Load(EOS(STATIC_5006), java.lang.Object(o1069sub)) -> f5014_0_countMetaList_FieldAccess(EOS(STATIC_5014), java.lang.Object(o1069sub), java.lang.Object(o1069sub)) :|: TRUE f5014_0_countMetaList_FieldAccess(EOS(STATIC_5014), java.lang.Object(List(EOC, o1077, o1078)), java.lang.Object(List(EOC, o1077, o1078))) -> f5021_0_countMetaList_FieldAccess(EOS(STATIC_5021), java.lang.Object(List(EOC, o1077, o1078)), java.lang.Object(List(EOC, o1077, o1078))) :|: TRUE f5021_0_countMetaList_FieldAccess(EOS(STATIC_5021), java.lang.Object(List(EOC, o1077, o1078)), java.lang.Object(List(EOC, o1077, o1078))) -> f5040_0_countMetaList_CheckCast(EOS(STATIC_5040), java.lang.Object(List(EOC, o1077, o1078)), o1077) :|: TRUE f5040_0_countMetaList_CheckCast(EOS(STATIC_5040), java.lang.Object(List(EOC, java.lang.Object(o1100sub), o1078)), java.lang.Object(o1100sub)) -> f5049_0_countMetaList_CheckCast(EOS(STATIC_5049), java.lang.Object(List(EOC, java.lang.Object(o1100sub), o1078)), java.lang.Object(o1100sub)) :|: TRUE f5040_0_countMetaList_CheckCast(EOS(STATIC_5040), java.lang.Object(List(EOC, NULL, o1078)), NULL) -> f5050_0_countMetaList_CheckCast(EOS(STATIC_5050), java.lang.Object(List(EOC, NULL, o1078)), NULL) :|: TRUE f5049_0_countMetaList_CheckCast(EOS(STATIC_5049), java.lang.Object(List(EOC, java.lang.Object(o1111sub), o1078)), java.lang.Object(o1111sub)) -> f5064_0_countMetaList_CheckCast(EOS(STATIC_5064), java.lang.Object(List(EOC, java.lang.Object(o1111sub), o1078)), java.lang.Object(o1111sub)) :|: TRUE f5049_0_countMetaList_CheckCast(EOS(STATIC_5049), java.lang.Object(List(EOC, java.lang.Object(EOC), o1078)), java.lang.Object(EOC)) -> f5066_0_countMetaList_CheckCast(EOS(STATIC_5066), java.lang.Object(List(EOC, java.lang.Object(EOC), o1078)), java.lang.Object(EOC)) :|: TRUE f5064_0_countMetaList_CheckCast(EOS(STATIC_5064), java.lang.Object(List(EOC, java.lang.Object(o1111sub), o1078)), java.lang.Object(o1111sub)) -> f5083_0_countMetaList_EQ(EOS(STATIC_5083), java.lang.Object(List(EOC, java.lang.Object(o1111sub), o1078)), 1) :|: TRUE f5083_0_countMetaList_EQ(EOS(STATIC_5083), java.lang.Object(List(EOC, java.lang.Object(o1111sub), o1078)), matching1) -> f5105_0_countMetaList_Load(EOS(STATIC_5105), java.lang.Object(List(EOC, java.lang.Object(o1111sub), o1078))) :|: 1 > 0 && matching1 = 1 f5105_0_countMetaList_Load(EOS(STATIC_5105), java.lang.Object(List(EOC, java.lang.Object(o1111sub), o1078))) -> f5120_0_countMetaList_FieldAccess(EOS(STATIC_5120), java.lang.Object(List(EOC, java.lang.Object(o1111sub), o1078)), java.lang.Object(List(EOC, java.lang.Object(o1111sub), o1078))) :|: TRUE f5120_0_countMetaList_FieldAccess(EOS(STATIC_5120), java.lang.Object(List(EOC, java.lang.Object(o1111sub), o1078)), java.lang.Object(List(EOC, java.lang.Object(o1111sub), o1078))) -> f5131_0_countMetaList_CheckCast(EOS(STATIC_5131), java.lang.Object(List(EOC, java.lang.Object(o1111sub), o1078)), java.lang.Object(o1111sub)) :|: TRUE f5131_0_countMetaList_CheckCast(EOS(STATIC_5131), java.lang.Object(List(EOC, java.lang.Object(o1111sub), o1078)), java.lang.Object(o1111sub)) -> f5136_0_countMetaList_Store(EOS(STATIC_5136), java.lang.Object(List(EOC, java.lang.Object(o1111sub), o1078)), java.lang.Object(o1111sub)) :|: TRUE f5136_0_countMetaList_Store(EOS(STATIC_5136), java.lang.Object(List(EOC, java.lang.Object(o1111sub), o1078)), java.lang.Object(o1111sub)) -> f5143_0_countMetaList_Load(EOS(STATIC_5143), java.lang.Object(List(EOC, java.lang.Object(o1111sub), o1078)), java.lang.Object(o1111sub)) :|: TRUE f5143_0_countMetaList_Load(EOS(STATIC_5143), java.lang.Object(List(EOC, java.lang.Object(o1111sub), o1078)), java.lang.Object(o1111sub)) -> f5159_0_countMetaList_Load(EOS(STATIC_5159), java.lang.Object(List(EOC, java.lang.Object(o1111sub), o1078)), java.lang.Object(o1111sub), java.lang.Object(List(EOC, java.lang.Object(o1111sub), o1078))) :|: TRUE f5159_0_countMetaList_Load(EOS(STATIC_5159), java.lang.Object(List(EOC, java.lang.Object(o1111sub), o1078)), java.lang.Object(o1111sub), java.lang.Object(List(EOC, java.lang.Object(o1111sub), o1078))) -> f5170_0_countMetaList_FieldAccess(EOS(STATIC_5170), java.lang.Object(List(EOC, java.lang.Object(o1111sub), o1078)), java.lang.Object(o1111sub), java.lang.Object(List(EOC, java.lang.Object(o1111sub), o1078)), java.lang.Object(o1111sub)) :|: TRUE f5170_0_countMetaList_FieldAccess(EOS(STATIC_5170), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o1241, o1242)), o1078)), java.lang.Object(List(EOC, o1241, o1242)), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o1241, o1242)), o1078)), java.lang.Object(List(EOC, o1241, o1242))) -> f5226_0_countMetaList_FieldAccess(EOS(STATIC_5226), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o1241, o1242)), o1078)), java.lang.Object(List(EOC, o1241, o1242)), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o1241, o1242)), o1078)), java.lang.Object(List(EOC, o1241, o1242))) :|: TRUE f5226_0_countMetaList_FieldAccess(EOS(STATIC_5226), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o1241, o1242)), o1078)), java.lang.Object(List(EOC, o1241, o1242)), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o1241, o1242)), o1078)), java.lang.Object(List(EOC, o1241, o1242))) -> f5231_0_countMetaList_FieldAccess(EOS(STATIC_5231), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o1241, o1242)), o1078)), java.lang.Object(List(EOC, o1241, o1242)), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o1241, o1242)), o1078)), o1242) :|: TRUE f5231_0_countMetaList_FieldAccess(EOS(STATIC_5231), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o1241, o1242)), o1078)), java.lang.Object(List(EOC, o1241, o1242)), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o1241, o1242)), o1078)), o1242) -> f5239_0_countMetaList_New(EOS(STATIC_5239), java.lang.Object(List(EOC, o1242, o1078)), java.lang.Object(List(EOC, o1241, o1242))) :|: TRUE f5239_0_countMetaList_New(EOS(STATIC_5239), java.lang.Object(List(EOC, o1242, o1078)), java.lang.Object(List(EOC, o1241, o1242))) -> f5245_0_countMetaList_Duplicate(EOS(STATIC_5245), java.lang.Object(List(EOC, o1242, o1078)), java.lang.Object(List(EOC, o1241, o1242)), java.lang.Object(List(EOC, NULL, NULL))) :|: TRUE f5245_0_countMetaList_Duplicate(EOS(STATIC_5245), java.lang.Object(List(EOC, o1242, o1078)), java.lang.Object(List(EOC, o1241, o1242)), java.lang.Object(List(EOC, NULL, NULL))) -> f5252_0_countMetaList_Load(EOS(STATIC_5252), java.lang.Object(List(EOC, o1242, o1078)), java.lang.Object(List(EOC, o1241, o1242)), java.lang.Object(List(EOC, NULL, NULL)), java.lang.Object(List(EOC, NULL, NULL))) :|: TRUE f5252_0_countMetaList_Load(EOS(STATIC_5252), java.lang.Object(List(EOC, o1242, o1078)), java.lang.Object(List(EOC, o1241, o1242)), java.lang.Object(List(EOC, NULL, NULL)), java.lang.Object(List(EOC, NULL, NULL))) -> f5258_0_countMetaList_FieldAccess(EOS(STATIC_5258), java.lang.Object(List(EOC, o1242, o1078)), java.lang.Object(List(EOC, NULL, NULL)), java.lang.Object(List(EOC, NULL, NULL)), java.lang.Object(List(EOC, o1241, o1242))) :|: TRUE f5258_0_countMetaList_FieldAccess(EOS(STATIC_5258), java.lang.Object(List(EOC, o1242, o1078)), java.lang.Object(List(EOC, NULL, NULL)), java.lang.Object(List(EOC, NULL, NULL)), java.lang.Object(List(EOC, o1241, o1242))) -> f5262_0_countMetaList_Load(EOS(STATIC_5262), java.lang.Object(List(EOC, o1242, o1078)), java.lang.Object(List(EOC, NULL, NULL)), java.lang.Object(List(EOC, NULL, NULL)), o1241) :|: TRUE f5262_0_countMetaList_Load(EOS(STATIC_5262), java.lang.Object(List(EOC, o1242, o1078)), java.lang.Object(List(EOC, NULL, NULL)), java.lang.Object(List(EOC, NULL, NULL)), o1241) -> f5265_0_countMetaList_InvokeMethod(EOS(STATIC_5265), java.lang.Object(List(EOC, NULL, NULL)), java.lang.Object(List(EOC, NULL, NULL)), o1241, java.lang.Object(List(EOC, o1242, o1078))) :|: TRUE f5265_0_countMetaList_InvokeMethod(EOS(STATIC_5265), java.lang.Object(List(EOC, NULL, NULL)), java.lang.Object(List(EOC, NULL, NULL)), o1241, java.lang.Object(List(EOC, o1242, o1078))) -> f5271_0__init__Load(EOS(STATIC_5271), java.lang.Object(List(EOC, NULL, NULL)), java.lang.Object(List(EOC, NULL, NULL)), o1241, java.lang.Object(List(EOC, o1242, o1078))) :|: TRUE f5271_0__init__Load(EOS(STATIC_5271), java.lang.Object(List(EOC, NULL, NULL)), java.lang.Object(List(EOC, NULL, NULL)), o1241, java.lang.Object(List(EOC, o1242, o1078))) -> f5278_0__init__InvokeMethod(EOS(STATIC_5278), java.lang.Object(List(EOC, NULL, NULL)), java.lang.Object(List(EOC, NULL, NULL)), o1241, java.lang.Object(List(EOC, o1242, o1078)), java.lang.Object(List(EOC, NULL, NULL))) :|: TRUE f5278_0__init__InvokeMethod(EOS(STATIC_5278), java.lang.Object(List(EOC, NULL, NULL)), java.lang.Object(List(EOC, NULL, NULL)), o1241, java.lang.Object(List(EOC, o1242, o1078)), java.lang.Object(List(EOC, NULL, NULL))) -> f5286_0__init__Load(EOS(STATIC_5286), java.lang.Object(List(EOC, NULL, NULL)), java.lang.Object(List(EOC, NULL, NULL)), o1241, java.lang.Object(List(EOC, o1242, o1078))) :|: TRUE f5286_0__init__Load(EOS(STATIC_5286), java.lang.Object(List(EOC, NULL, NULL)), java.lang.Object(List(EOC, NULL, NULL)), o1241, java.lang.Object(List(EOC, o1242, o1078))) -> f5293_0__init__Load(EOS(STATIC_5293), java.lang.Object(List(EOC, NULL, NULL)), java.lang.Object(List(EOC, NULL, NULL)), o1241, java.lang.Object(List(EOC, o1242, o1078)), java.lang.Object(List(EOC, NULL, NULL))) :|: TRUE f5293_0__init__Load(EOS(STATIC_5293), java.lang.Object(List(EOC, NULL, NULL)), java.lang.Object(List(EOC, NULL, NULL)), o1241, java.lang.Object(List(EOC, o1242, o1078)), java.lang.Object(List(EOC, NULL, NULL))) -> f5300_0__init__FieldAccess(EOS(STATIC_5300), java.lang.Object(List(EOC, NULL, NULL)), java.lang.Object(List(EOC, NULL, NULL)), java.lang.Object(List(EOC, o1242, o1078)), java.lang.Object(List(EOC, NULL, NULL)), o1241) :|: TRUE f5300_0__init__FieldAccess(EOS(STATIC_5300), java.lang.Object(List(EOC, NULL, NULL)), java.lang.Object(List(EOC, NULL, NULL)), java.lang.Object(List(EOC, o1242, o1078)), java.lang.Object(List(EOC, NULL, NULL)), o1241) -> f5313_0__init__Load(EOS(STATIC_5313), java.lang.Object(List(EOC, o1241, NULL)), java.lang.Object(List(EOC, o1241, NULL)), java.lang.Object(List(EOC, o1242, o1078))) :|: TRUE f5313_0__init__Load(EOS(STATIC_5313), java.lang.Object(List(EOC, o1241, NULL)), java.lang.Object(List(EOC, o1241, NULL)), java.lang.Object(List(EOC, o1242, o1078))) -> f5321_0__init__Load(EOS(STATIC_5321), java.lang.Object(List(EOC, o1241, NULL)), java.lang.Object(List(EOC, o1242, o1078)), java.lang.Object(List(EOC, o1241, NULL))) :|: TRUE f5321_0__init__Load(EOS(STATIC_5321), java.lang.Object(List(EOC, o1241, NULL)), java.lang.Object(List(EOC, o1242, o1078)), java.lang.Object(List(EOC, o1241, NULL))) -> f5329_0__init__FieldAccess(EOS(STATIC_5329), java.lang.Object(List(EOC, o1241, NULL)), java.lang.Object(List(EOC, o1241, NULL)), java.lang.Object(List(EOC, o1242, o1078))) :|: TRUE f5329_0__init__FieldAccess(EOS(STATIC_5329), java.lang.Object(List(EOC, o1241, NULL)), java.lang.Object(List(EOC, o1241, NULL)), java.lang.Object(List(EOC, o1242, o1078))) -> f5343_0__init__Return(EOS(STATIC_5343), java.lang.Object(List(EOC, o1241, java.lang.Object(List(EOC, o1242, o1078))))) :|: TRUE f5343_0__init__Return(EOS(STATIC_5343), java.lang.Object(List(EOC, o1241, java.lang.Object(List(EOC, o1242, o1078))))) -> f5350_0_countMetaList_Store(EOS(STATIC_5350), java.lang.Object(List(EOC, o1241, java.lang.Object(List(EOC, o1242, o1078))))) :|: TRUE f5350_0_countMetaList_Store(EOS(STATIC_5350), java.lang.Object(List(EOC, o1241, java.lang.Object(List(EOC, o1242, o1078))))) -> f5353_0_countMetaList_Load(EOS(STATIC_5353), java.lang.Object(List(EOC, o1241, java.lang.Object(List(EOC, o1242, o1078))))) :|: TRUE f5353_0_countMetaList_Load(EOS(STATIC_5353), java.lang.Object(List(EOC, o1241, java.lang.Object(List(EOC, o1242, o1078))))) -> f5356_0_countMetaList_FieldAccess(EOS(STATIC_5356), java.lang.Object(List(EOC, o1241, java.lang.Object(List(EOC, o1242, o1078))))) :|: TRUE f5356_0_countMetaList_FieldAccess(EOS(STATIC_5356), java.lang.Object(List(EOC, o1241, java.lang.Object(List(EOC, o1242, o1078))))) -> f5359_0_countMetaList_Store(EOS(STATIC_5359), java.lang.Object(List(EOC, o1242, o1078))) :|: TRUE f5359_0_countMetaList_Store(EOS(STATIC_5359), java.lang.Object(List(EOC, o1242, o1078))) -> f5360_0_countMetaList_Inc(EOS(STATIC_5360), java.lang.Object(List(EOC, o1242, o1078))) :|: TRUE f5360_0_countMetaList_Inc(EOS(STATIC_5360), java.lang.Object(List(EOC, o1242, o1078))) -> f5361_0_countMetaList_JMP(EOS(STATIC_5361), java.lang.Object(List(EOC, o1242, o1078))) :|: TRUE f5361_0_countMetaList_JMP(EOS(STATIC_5361), java.lang.Object(List(EOC, o1242, o1078))) -> f5362_0_countMetaList_Load(EOS(STATIC_5362), java.lang.Object(List(EOC, o1242, o1078))) :|: TRUE f5362_0_countMetaList_Load(EOS(STATIC_5362), java.lang.Object(List(EOC, o1242, o1078))) -> f4963_0_countMetaList_Load(EOS(STATIC_4963), java.lang.Object(List(EOC, o1242, o1078))) :|: TRUE f4963_0_countMetaList_Load(EOS(STATIC_4963), o1054) -> f4975_0_countMetaList_NULL(EOS(STATIC_4975), o1054, o1054) :|: TRUE f5066_0_countMetaList_CheckCast(EOS(STATIC_5066), java.lang.Object(List(EOC, java.lang.Object(EOC), o1078)), java.lang.Object(EOC)) -> f5086_0_countMetaList_EQ(EOS(STATIC_5086), java.lang.Object(List(EOC, java.lang.Object(EOC), o1078)), 0) :|: TRUE f5086_0_countMetaList_EQ(EOS(STATIC_5086), java.lang.Object(List(EOC, java.lang.Object(EOC), o1078)), matching1) -> f5107_0_countMetaList_Load(EOS(STATIC_5107), java.lang.Object(List(EOC, java.lang.Object(EOC), o1078))) :|: TRUE && matching1 = 0 f5107_0_countMetaList_Load(EOS(STATIC_5107), java.lang.Object(List(EOC, java.lang.Object(EOC), o1078))) -> f5122_0_countMetaList_FieldAccess(EOS(STATIC_5122), java.lang.Object(List(EOC, java.lang.Object(EOC), o1078))) :|: TRUE f5122_0_countMetaList_FieldAccess(EOS(STATIC_5122), java.lang.Object(List(EOC, java.lang.Object(EOC), o1078))) -> f5132_0_countMetaList_Store(EOS(STATIC_5132), o1078) :|: TRUE f5132_0_countMetaList_Store(EOS(STATIC_5132), o1078) -> f5124_0_countMetaList_Store(EOS(STATIC_5124), o1078) :|: TRUE f5124_0_countMetaList_Store(EOS(STATIC_5124), o1078) -> f5133_0_countMetaList_Inc(EOS(STATIC_5133), o1078) :|: TRUE f5133_0_countMetaList_Inc(EOS(STATIC_5133), o1078) -> f5137_0_countMetaList_JMP(EOS(STATIC_5137), o1078) :|: TRUE f5137_0_countMetaList_JMP(EOS(STATIC_5137), o1078) -> f5152_0_countMetaList_Load(EOS(STATIC_5152), o1078) :|: TRUE f5152_0_countMetaList_Load(EOS(STATIC_5152), o1078) -> f4963_0_countMetaList_Load(EOS(STATIC_4963), o1078) :|: TRUE f5050_0_countMetaList_CheckCast(EOS(STATIC_5050), java.lang.Object(List(EOC, NULL, o1078)), NULL) -> f5068_0_countMetaList_EQ(EOS(STATIC_5068), java.lang.Object(List(EOC, NULL, o1078)), 0) :|: TRUE f5068_0_countMetaList_EQ(EOS(STATIC_5068), java.lang.Object(List(EOC, NULL, o1078)), matching1) -> f5089_0_countMetaList_Load(EOS(STATIC_5089), java.lang.Object(List(EOC, NULL, o1078))) :|: TRUE && matching1 = 0 f5089_0_countMetaList_Load(EOS(STATIC_5089), java.lang.Object(List(EOC, NULL, o1078))) -> f5109_0_countMetaList_FieldAccess(EOS(STATIC_5109), java.lang.Object(List(EOC, NULL, o1078))) :|: TRUE f5109_0_countMetaList_FieldAccess(EOS(STATIC_5109), java.lang.Object(List(EOC, NULL, o1078))) -> f5124_0_countMetaList_Store(EOS(STATIC_5124), o1078) :|: TRUE R rules: Combined rules. Obtained 3 conditional rules for P and 0 conditional rules for R.P rules: f4975_0_countMetaList_NULL(EOS(STATIC_4975), java.lang.Object(List(EOC, NULL, o1078:0)), java.lang.Object(List(EOC, NULL, o1078:0))) -> f4975_0_countMetaList_NULL(EOS(STATIC_4975), o1078:0, o1078:0) :|: TRUE f4975_0_countMetaList_NULL(EOS(STATIC_4975), java.lang.Object(List(EOC, java.lang.Object(EOC), o1078:0)), java.lang.Object(List(EOC, java.lang.Object(EOC), o1078:0))) -> f4975_0_countMetaList_NULL(EOS(STATIC_4975), o1078:0, o1078:0) :|: TRUE f4975_0_countMetaList_NULL(EOS(STATIC_4975), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o1241:0, o1242:0)), o1078:0)), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o1241:0, o1242:0)), o1078:0))) -> f4975_0_countMetaList_NULL(EOS(STATIC_4975), java.lang.Object(List(EOC, o1242:0, o1078:0)), java.lang.Object(List(EOC, o1242:0, o1078:0))) :|: TRUE R rules: Filtered ground terms: f4975_0_countMetaList_NULL(x1, x2, x3) -> f4975_0_countMetaList_NULL(x2, x3) EOS(x1) -> EOS List(x1, x2, x3) -> List(x2, x3) Filtered duplicate args: f4975_0_countMetaList_NULL(x1, x2) -> f4975_0_countMetaList_NULL(x2) Combined rules. Obtained 3 conditional rules for P and 0 conditional rules for R.P rules: F4975_0_COUNTMETALIST_NULL(java.lang.Object(List(NULL, o1078:0:0))) -> F4975_0_COUNTMETALIST_NULL(o1078:0:0) :|: TRUE F4975_0_COUNTMETALIST_NULL(java.lang.Object(List(java.lang.Object(List(o1241:0:0, o1242:0:0)), o1078:0:0))) -> F4975_0_COUNTMETALIST_NULL(java.lang.Object(List(o1242:0:0, o1078:0:0))) :|: TRUE F4975_0_COUNTMETALIST_NULL(java.lang.Object(List(java.lang.Object(EOC), o1078:0:0))) -> F4975_0_COUNTMETALIST_NULL(o1078:0:0) :|: TRUE R rules: ---------------------------------------- (24) Obligation: Q DP problem: The TRS P consists of the following rules: F4975_0_COUNTMETALIST_NULL(java.lang.Object(List(NULL, o1078:0:0))) -> F4975_0_COUNTMETALIST_NULL(o1078:0:0) F4975_0_COUNTMETALIST_NULL(java.lang.Object(List(java.lang.Object(List(o1241:0:0, o1242:0:0)), o1078:0:0))) -> F4975_0_COUNTMETALIST_NULL(java.lang.Object(List(o1242:0:0, o1078:0:0))) F4975_0_COUNTMETALIST_NULL(java.lang.Object(List(java.lang.Object(EOC), o1078:0:0))) -> F4975_0_COUNTMETALIST_NULL(o1078:0:0) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (25) 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: F4975_0_COUNTMETALIST_NULL(java.lang.Object(List(NULL, o1078:0:0))) -> F4975_0_COUNTMETALIST_NULL(o1078:0:0) F4975_0_COUNTMETALIST_NULL(java.lang.Object(List(java.lang.Object(EOC), o1078:0:0))) -> F4975_0_COUNTMETALIST_NULL(o1078:0:0) No rules are removed from R. Used ordering: POLO with Polynomial interpretation [POLO]: POL(EOC) = 0 POL(F4975_0_COUNTMETALIST_NULL(x_1)) = 2*x_1 POL(List(x_1, x_2)) = x_1 + 2*x_2 POL(NULL) = 0 POL(java.lang.Object(x_1)) = x_1 ---------------------------------------- (26) Obligation: Q DP problem: The TRS P consists of the following rules: F4975_0_COUNTMETALIST_NULL(java.lang.Object(List(java.lang.Object(List(o1241:0:0, o1242:0:0)), o1078:0:0))) -> F4975_0_COUNTMETALIST_NULL(java.lang.Object(List(o1242:0:0, o1078:0:0))) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (27) MRRProof (EQUIVALENT) By using the rule removal processor [LPAR04] with the following ordering, at least one Dependency Pair or term rewrite system rule of this QDP problem can be strictly oriented. Strictly oriented dependency pairs: F4975_0_COUNTMETALIST_NULL(java.lang.Object(List(java.lang.Object(List(o1241:0:0, o1242:0:0)), o1078:0:0))) -> F4975_0_COUNTMETALIST_NULL(java.lang.Object(List(o1242:0:0, o1078:0:0))) Used ordering: Knuth-Bendix order [KBO] with precedence:List_2 > java.lang.Object_1 > F4975_0_COUNTMETALIST_NULL_1 and weight map: F4975_0_COUNTMETALIST_NULL_1=1 java.lang.Object_1=1 List_2=0 The variable weight is 1 ---------------------------------------- (28) Obligation: Q DP problem: P is empty. R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (29) PisEmptyProof (EQUIVALENT) The TRS P is empty. Hence, there is no (P,Q,R) chain. ---------------------------------------- (30) YES