11.03/3.85 YES 11.03/3.87 proof of /export/starexec/sandbox/benchmark/theBenchmark.jar 11.03/3.87 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 11.03/3.87 11.03/3.87 11.03/3.87 termination of the given Bare JBC problem could be proven: 11.03/3.87 11.03/3.87 (0) Bare JBC problem 11.03/3.87 (1) BareJBCToJBCProof [EQUIVALENT, 96 ms] 11.03/3.87 (2) JBC problem 11.03/3.87 (3) JBCToGraph [EQUIVALENT, 1046 ms] 11.03/3.87 (4) JBCTerminationGraph 11.03/3.87 (5) TerminationGraphToSCCProof [SOUND, 0 ms] 11.03/3.87 (6) AND 11.03/3.87 (7) JBCTerminationSCC 11.03/3.87 (8) SCCToIRSProof [SOUND, 139 ms] 11.03/3.87 (9) IRSwT 11.03/3.87 (10) IRSFormatTransformerProof [EQUIVALENT, 0 ms] 11.03/3.87 (11) IRSwT 11.03/3.87 (12) IRSwTTerminationDigraphProof [EQUIVALENT, 36 ms] 11.03/3.87 (13) IRSwT 11.03/3.87 (14) IntTRSCompressionProof [EQUIVALENT, 0 ms] 11.03/3.87 (15) IRSwT 11.03/3.87 (16) TempFilterProof [SOUND, 49 ms] 11.03/3.87 (17) IntTRS 11.03/3.87 (18) PolynomialOrderProcessor [EQUIVALENT, 0 ms] 11.03/3.87 (19) IntTRS 11.03/3.87 (20) PolynomialOrderProcessor [EQUIVALENT, 0 ms] 11.03/3.87 (21) YES 11.03/3.87 (22) JBCTerminationSCC 11.03/3.87 (23) SCCToQDPProof [SOUND, 299 ms] 11.03/3.87 (24) QDP 11.03/3.87 (25) UsableRulesReductionPairsProof [EQUIVALENT, 48 ms] 11.03/3.87 (26) QDP 11.03/3.87 (27) MRRProof [EQUIVALENT, 0 ms] 11.03/3.87 (28) QDP 11.03/3.87 (29) PisEmptyProof [EQUIVALENT, 0 ms] 11.03/3.87 (30) YES 11.03/3.87 11.03/3.87 11.03/3.87 ---------------------------------------- 11.03/3.87 11.03/3.87 (0) 11.03/3.87 Obligation: 11.03/3.87 need to prove termination of the following program: 11.03/3.87 public class CountMetaList { 11.03/3.87 public static void main(String[] args) { 11.03/3.87 Random.args = args; 11.03/3.87 List l = createMetaList(); 11.03/3.87 11.03/3.87 int count = countMetaList(l); 11.03/3.87 } 11.03/3.87 11.03/3.87 public static int countMetaList(List cur) { 11.03/3.87 int res = 0; 11.03/3.87 while (cur != null) { 11.03/3.87 if (cur.value instanceof List) { 11.03/3.87 List inner = (List) cur.value; 11.03/3.87 cur.value = inner.next; 11.03/3.87 cur = new List(inner.value, cur); 11.03/3.87 } 11.03/3.87 cur = cur.next; 11.03/3.87 res++; 11.03/3.87 } 11.03/3.87 11.03/3.87 return res; 11.03/3.87 } 11.03/3.87 11.03/3.87 public static List createMetaList() { 11.03/3.87 int count = Random.random(); 11.03/3.87 List cur = null; 11.03/3.87 for (int i = 0; i < count; i++) { 11.03/3.87 int innerCount = Random.random(); 11.03/3.87 List innerList = null; 11.03/3.87 for (int j = innerCount; j > 0; j--) { 11.03/3.87 innerList = new List(null, innerList); 11.03/3.87 } 11.03/3.87 cur = new List(innerList, cur); 11.03/3.87 } 11.03/3.87 11.03/3.87 return cur; 11.03/3.87 } 11.03/3.87 } 11.03/3.87 11.03/3.87 class List { 11.03/3.87 Object value; 11.03/3.87 List next; 11.03/3.87 11.03/3.87 public List(Object v, List n) { 11.03/3.87 this.value = v; 11.03/3.87 this.next = n; 11.03/3.87 } 11.03/3.87 } 11.03/3.87 11.03/3.87 11.03/3.87 public class Random { 11.03/3.87 static String[] args; 11.03/3.87 static int index = 0; 11.03/3.87 11.03/3.87 public static int random() { 11.03/3.87 String string = args[index]; 11.03/3.87 index++; 11.03/3.87 return string.length(); 11.03/3.87 } 11.03/3.87 } 11.03/3.87 11.03/3.87 11.03/3.87 11.03/3.87 ---------------------------------------- 11.03/3.87 11.03/3.87 (1) BareJBCToJBCProof (EQUIVALENT) 11.03/3.87 initialized classpath 11.03/3.87 ---------------------------------------- 11.03/3.87 11.03/3.87 (2) 11.03/3.87 Obligation: 11.03/3.87 need to prove termination of the following program: 11.03/3.87 public class CountMetaList { 11.03/3.87 public static void main(String[] args) { 11.03/3.87 Random.args = args; 11.03/3.87 List l = createMetaList(); 11.03/3.87 11.03/3.87 int count = countMetaList(l); 11.03/3.87 } 11.03/3.87 11.03/3.87 public static int countMetaList(List cur) { 11.03/3.87 int res = 0; 11.03/3.87 while (cur != null) { 11.03/3.87 if (cur.value instanceof List) { 11.03/3.87 List inner = (List) cur.value; 11.03/3.87 cur.value = inner.next; 11.03/3.87 cur = new List(inner.value, cur); 11.03/3.87 } 11.03/3.87 cur = cur.next; 11.03/3.87 res++; 11.03/3.87 } 11.03/3.87 11.03/3.87 return res; 11.03/3.87 } 11.03/3.87 11.03/3.87 public static List createMetaList() { 11.03/3.87 int count = Random.random(); 11.03/3.87 List cur = null; 11.03/3.87 for (int i = 0; i < count; i++) { 11.03/3.87 int innerCount = Random.random(); 11.03/3.87 List innerList = null; 11.03/3.87 for (int j = innerCount; j > 0; j--) { 11.03/3.87 innerList = new List(null, innerList); 11.03/3.87 } 11.03/3.87 cur = new List(innerList, cur); 11.03/3.87 } 11.03/3.87 11.03/3.87 return cur; 11.03/3.87 } 11.03/3.87 } 11.03/3.87 11.03/3.87 class List { 11.03/3.87 Object value; 11.03/3.87 List next; 11.03/3.87 11.03/3.87 public List(Object v, List n) { 11.03/3.87 this.value = v; 11.03/3.87 this.next = n; 11.03/3.87 } 11.03/3.87 } 11.03/3.87 11.03/3.87 11.03/3.87 public class Random { 11.03/3.87 static String[] args; 11.03/3.87 static int index = 0; 11.03/3.87 11.03/3.87 public static int random() { 11.03/3.87 String string = args[index]; 11.03/3.87 index++; 11.03/3.87 return string.length(); 11.03/3.87 } 11.03/3.87 } 11.03/3.87 11.03/3.87 11.03/3.87 11.03/3.87 ---------------------------------------- 11.03/3.87 11.03/3.87 (3) JBCToGraph (EQUIVALENT) 11.03/3.87 Constructed TerminationGraph. 11.03/3.87 ---------------------------------------- 11.03/3.87 11.03/3.87 (4) 11.03/3.87 Obligation: 11.03/3.87 Termination Graph based on JBC Program: 11.03/3.87 CountMetaList.main([Ljava/lang/String;)V: Graph of 89 nodes with 1 SCC. 11.03/3.87 11.03/3.87 11.03/3.87 11.03/3.87 CountMetaList.createMetaList()LList;: Graph of 247 nodes with 1 SCC. 11.03/3.87 11.03/3.87 11.03/3.87 11.03/3.87 11.03/3.87 11.03/3.87 ---------------------------------------- 11.03/3.87 11.03/3.87 (5) TerminationGraphToSCCProof (SOUND) 11.03/3.87 Splitted TerminationGraph to 2 SCCss. 11.03/3.87 ---------------------------------------- 11.03/3.87 11.03/3.87 (6) 11.03/3.87 Complex Obligation (AND) 11.03/3.87 11.03/3.87 ---------------------------------------- 11.03/3.87 11.03/3.87 (7) 11.03/3.87 Obligation: 11.03/3.87 SCC of termination graph based on JBC Program. 11.03/3.87 SCC contains nodes from the following methods: CountMetaList.createMetaList()LList; 11.03/3.87 SCC calls the following helper methods: 11.03/3.87 Performed SCC analyses: 11.03/3.87 *Used field analysis yielded the following read fields: 11.03/3.87 *java.lang.String: [count] 11.03/3.87 *Marker field analysis yielded the following relations that could be markers: 11.03/3.87 11.03/3.87 ---------------------------------------- 11.03/3.87 11.03/3.87 (8) SCCToIRSProof (SOUND) 11.03/3.87 Transformed FIGraph SCCs to intTRSs. Log: 11.03/3.87 Generated rules. Obtained 71 IRulesP rules: 11.03/3.87 f5913_0_createMetaList_Load(EOS(STATIC_5913(java.lang.Object(ARRAY(i6)))), i1233, i1234, i1234) -> f5914_0_createMetaList_GE(EOS(STATIC_5914(java.lang.Object(ARRAY(i6)))), i1233, i1234, i1234, i1233) :|: TRUE 11.03/3.87 f5914_0_createMetaList_GE(EOS(STATIC_5914(java.lang.Object(ARRAY(i6)))), i1233, i1234, i1234, i1233) -> f5916_0_createMetaList_GE(EOS(STATIC_5916(java.lang.Object(ARRAY(i6)))), i1233, i1234, i1234, i1233) :|: i1234 < i1233 11.03/3.87 f5916_0_createMetaList_GE(EOS(STATIC_5916(java.lang.Object(ARRAY(i6)))), i1233, i1234, i1234, i1233) -> f5918_0_createMetaList_InvokeMethod(EOS(STATIC_5918(java.lang.Object(ARRAY(i6)))), i1233, i1234) :|: i1234 < i1233 11.03/3.87 f5918_0_createMetaList_InvokeMethod(EOS(STATIC_5918(java.lang.Object(ARRAY(i6)))), i1233, i1234) -> f5920_0_random_FieldAccess(EOS(STATIC_5920(java.lang.Object(ARRAY(i6)))), i1233, i1234) :|: TRUE 11.03/3.87 f5920_0_random_FieldAccess(EOS(STATIC_5920(java.lang.Object(ARRAY(i6)))), i1233, i1234) -> f5922_0_random_FieldAccess(EOS(STATIC_5922(java.lang.Object(ARRAY(i6)))), i1233, i1234, java.lang.Object(ARRAY(i6))) :|: TRUE 11.03/3.87 f5922_0_random_FieldAccess(EOS(STATIC_5922(java.lang.Object(ARRAY(i6)))), i1233, i1234, java.lang.Object(ARRAY(i6))) -> f5925_0_random_ArrayAccess(EOS(STATIC_5925(java.lang.Object(ARRAY(i6)))), i1233, i1234, java.lang.Object(ARRAY(i6))) :|: TRUE 11.03/3.87 f5925_0_random_ArrayAccess(EOS(STATIC_5925(java.lang.Object(ARRAY(i6)))), i1233, i1234, java.lang.Object(ARRAY(i6))) -> f5928_0_random_ArrayAccess(EOS(STATIC_5928(java.lang.Object(ARRAY(i6)))), i1233, i1234, java.lang.Object(ARRAY(i6))) :|: TRUE 11.03/3.87 f5928_0_random_ArrayAccess(EOS(STATIC_5928(java.lang.Object(ARRAY(i6)))), i1233, i1234, java.lang.Object(ARRAY(i6))) -> f5931_0_random_ArrayAccess(EOS(STATIC_5931(java.lang.Object(ARRAY(i6)))), i1233, i1234, java.lang.Object(ARRAY(i6))) :|: TRUE 11.03/3.87 f5931_0_random_ArrayAccess(EOS(STATIC_5931(java.lang.Object(ARRAY(i6)))), i1233, i1234, java.lang.Object(ARRAY(i6))) -> f5934_0_random_Store(EOS(STATIC_5934(java.lang.Object(ARRAY(i6)))), i1233, i1234, o2165) :|: TRUE 11.03/3.87 f5934_0_random_Store(EOS(STATIC_5934(java.lang.Object(ARRAY(i6)))), i1233, i1234, o2165) -> f5938_0_random_FieldAccess(EOS(STATIC_5938(java.lang.Object(ARRAY(i6)))), i1233, i1234, o2165) :|: TRUE 11.03/3.87 f5938_0_random_FieldAccess(EOS(STATIC_5938(java.lang.Object(ARRAY(i6)))), i1233, i1234, o2165) -> f5940_0_random_ConstantStackPush(EOS(STATIC_5940(java.lang.Object(ARRAY(i6)))), i1233, i1234, o2165) :|: TRUE 11.03/3.87 f5940_0_random_ConstantStackPush(EOS(STATIC_5940(java.lang.Object(ARRAY(i6)))), i1233, i1234, o2165) -> f5943_0_random_IntArithmetic(EOS(STATIC_5943(java.lang.Object(ARRAY(i6)))), i1233, i1234, o2165) :|: TRUE 11.03/3.87 f5943_0_random_IntArithmetic(EOS(STATIC_5943(java.lang.Object(ARRAY(i6)))), i1233, i1234, o2165) -> f5947_0_random_FieldAccess(EOS(STATIC_5947(java.lang.Object(ARRAY(i6)))), i1233, i1234, o2165) :|: TRUE 11.03/3.87 f5947_0_random_FieldAccess(EOS(STATIC_5947(java.lang.Object(ARRAY(i6)))), i1233, i1234, o2165) -> f5950_0_random_Load(EOS(STATIC_5950(java.lang.Object(ARRAY(i6)))), i1233, i1234, o2165) :|: TRUE 11.03/3.87 f5950_0_random_Load(EOS(STATIC_5950(java.lang.Object(ARRAY(i6)))), i1233, i1234, o2165) -> f5954_0_random_InvokeMethod(EOS(STATIC_5954(java.lang.Object(ARRAY(i6)))), i1233, i1234, o2165) :|: TRUE 11.03/3.87 f5954_0_random_InvokeMethod(EOS(STATIC_5954(java.lang.Object(ARRAY(i6)))), i1233, i1234, java.lang.Object(o2183sub)) -> f5959_0_random_InvokeMethod(EOS(STATIC_5959(java.lang.Object(ARRAY(i6)))), i1233, i1234, java.lang.Object(o2183sub)) :|: TRUE 11.03/3.87 f5959_0_random_InvokeMethod(EOS(STATIC_5959(java.lang.Object(ARRAY(i6)))), i1233, i1234, java.lang.Object(o2184sub)) -> f5964_0_random_InvokeMethod(EOS(STATIC_5964(java.lang.Object(ARRAY(i6)))), i1233, i1234, java.lang.Object(o2184sub)) :|: TRUE 11.03/3.87 f5964_0_random_InvokeMethod(EOS(STATIC_5964(java.lang.Object(ARRAY(i6)))), i1233, i1234, java.lang.Object(o2184sub)) -> f5969_0_length_Load(EOS(STATIC_5969(java.lang.Object(ARRAY(i6)))), i1233, i1234, java.lang.Object(o2184sub)) :|: TRUE 11.03/3.87 f5969_0_length_Load(EOS(STATIC_5969(java.lang.Object(ARRAY(i6)))), i1233, i1234, java.lang.Object(o2184sub)) -> f5979_0_length_FieldAccess(EOS(STATIC_5979(java.lang.Object(ARRAY(i6)))), i1233, i1234, java.lang.Object(o2184sub)) :|: TRUE 11.03/3.87 f5979_0_length_FieldAccess(EOS(STATIC_5979(java.lang.Object(ARRAY(i6)))), i1233, i1234, java.lang.Object(java.lang.String(EOC, i1285))) -> f5985_0_length_FieldAccess(EOS(STATIC_5985(java.lang.Object(ARRAY(i6)))), i1233, i1234, java.lang.Object(java.lang.String(EOC, i1285))) :|: i1285 >= 0 11.03/3.87 f5985_0_length_FieldAccess(EOS(STATIC_5985(java.lang.Object(ARRAY(i6)))), i1233, i1234, java.lang.Object(java.lang.String(EOC, i1285))) -> f5991_0_length_Return(EOS(STATIC_5991(java.lang.Object(ARRAY(i6)))), i1233, i1234, i1285) :|: TRUE 11.03/3.87 f5991_0_length_Return(EOS(STATIC_5991(java.lang.Object(ARRAY(i6)))), i1233, i1234, i1285) -> f5997_0_random_Return(EOS(STATIC_5997(java.lang.Object(ARRAY(i6)))), i1233, i1234, i1285) :|: TRUE 11.03/3.87 f5997_0_random_Return(EOS(STATIC_5997(java.lang.Object(ARRAY(i6)))), i1233, i1234, i1285) -> f6004_0_createMetaList_Store(EOS(STATIC_6004(java.lang.Object(ARRAY(i6)))), i1233, i1234, i1285) :|: TRUE 11.03/3.87 f6004_0_createMetaList_Store(EOS(STATIC_6004(java.lang.Object(ARRAY(i6)))), i1233, i1234, i1285) -> f6010_0_createMetaList_ConstantStackPush(EOS(STATIC_6010(java.lang.Object(ARRAY(i6)))), i1233, i1234, i1285) :|: TRUE 11.03/3.87 f6010_0_createMetaList_ConstantStackPush(EOS(STATIC_6010(java.lang.Object(ARRAY(i6)))), i1233, i1234, i1285) -> f6016_0_createMetaList_Store(EOS(STATIC_6016(java.lang.Object(ARRAY(i6)))), i1233, i1234, i1285) :|: TRUE 11.03/3.87 f6016_0_createMetaList_Store(EOS(STATIC_6016(java.lang.Object(ARRAY(i6)))), i1233, i1234, i1285) -> f6023_0_createMetaList_Load(EOS(STATIC_6023(java.lang.Object(ARRAY(i6)))), i1233, i1234, i1285) :|: TRUE 11.03/3.87 f6023_0_createMetaList_Load(EOS(STATIC_6023(java.lang.Object(ARRAY(i6)))), i1233, i1234, i1285) -> f6027_0_createMetaList_Store(EOS(STATIC_6027(java.lang.Object(ARRAY(i6)))), i1233, i1234, i1285) :|: TRUE 11.03/3.87 f6027_0_createMetaList_Store(EOS(STATIC_6027(java.lang.Object(ARRAY(i6)))), i1233, i1234, i1285) -> f6033_0_createMetaList_Load(EOS(STATIC_6033(java.lang.Object(ARRAY(i6)))), i1233, i1234, i1285) :|: TRUE 11.03/3.87 f6033_0_createMetaList_Load(EOS(STATIC_6033(java.lang.Object(ARRAY(i6)))), i1233, i1234, i1285) -> f6244_0_createMetaList_Load(EOS(STATIC_6244(java.lang.Object(ARRAY(i6)))), i1233, i1234, i1285) :|: TRUE 11.03/3.87 f6244_0_createMetaList_Load(EOS(STATIC_6244(java.lang.Object(ARRAY(i6)))), i1233, i1234, i1391) -> f6246_0_createMetaList_LE(EOS(STATIC_6246(java.lang.Object(ARRAY(i6)))), i1233, i1234, i1391, i1391) :|: TRUE 11.03/3.87 f6246_0_createMetaList_LE(EOS(STATIC_6246(java.lang.Object(ARRAY(i6)))), i1233, i1234, matching1, matching2) -> f6248_0_createMetaList_LE(EOS(STATIC_6248(java.lang.Object(ARRAY(i6)))), i1233, i1234, 0, 0) :|: TRUE && matching1 = 0 && matching2 = 0 11.03/3.87 f6246_0_createMetaList_LE(EOS(STATIC_6246(java.lang.Object(ARRAY(i6)))), i1233, i1234, i1395, i1395) -> f6249_0_createMetaList_LE(EOS(STATIC_6249(java.lang.Object(ARRAY(i6)))), i1233, i1234, i1395, i1395) :|: TRUE 11.03/3.87 f6248_0_createMetaList_LE(EOS(STATIC_6248(java.lang.Object(ARRAY(i6)))), i1233, i1234, matching1, matching2) -> f6251_0_createMetaList_New(EOS(STATIC_6251(java.lang.Object(ARRAY(i6)))), i1233, i1234) :|: 0 <= 0 && matching1 = 0 && matching2 = 0 11.03/3.87 f6251_0_createMetaList_New(EOS(STATIC_6251(java.lang.Object(ARRAY(i6)))), i1233, i1234) -> f6254_0_createMetaList_Duplicate(EOS(STATIC_6254(java.lang.Object(ARRAY(i6)))), i1233, i1234) :|: TRUE 11.03/3.87 f6254_0_createMetaList_Duplicate(EOS(STATIC_6254(java.lang.Object(ARRAY(i6)))), i1233, i1234) -> f6257_0_createMetaList_Load(EOS(STATIC_6257(java.lang.Object(ARRAY(i6)))), i1233, i1234) :|: TRUE 11.03/3.87 f6257_0_createMetaList_Load(EOS(STATIC_6257(java.lang.Object(ARRAY(i6)))), i1233, i1234) -> f6260_0_createMetaList_Load(EOS(STATIC_6260(java.lang.Object(ARRAY(i6)))), i1233, i1234) :|: TRUE 11.03/3.87 f6260_0_createMetaList_Load(EOS(STATIC_6260(java.lang.Object(ARRAY(i6)))), i1233, i1234) -> f6263_0_createMetaList_InvokeMethod(EOS(STATIC_6263(java.lang.Object(ARRAY(i6)))), i1233, i1234) :|: TRUE 11.03/3.87 f6263_0_createMetaList_InvokeMethod(EOS(STATIC_6263(java.lang.Object(ARRAY(i6)))), i1233, i1234) -> f6266_0__init__Load(EOS(STATIC_6266(java.lang.Object(ARRAY(i6)))), i1233, i1234) :|: TRUE 11.03/3.87 f6266_0__init__Load(EOS(STATIC_6266(java.lang.Object(ARRAY(i6)))), i1233, i1234) -> f6269_0__init__InvokeMethod(EOS(STATIC_6269(java.lang.Object(ARRAY(i6)))), i1233, i1234) :|: TRUE 11.03/3.87 f6269_0__init__InvokeMethod(EOS(STATIC_6269(java.lang.Object(ARRAY(i6)))), i1233, i1234) -> f6272_0__init__Load(EOS(STATIC_6272(java.lang.Object(ARRAY(i6)))), i1233, i1234) :|: TRUE 11.03/3.87 f6272_0__init__Load(EOS(STATIC_6272(java.lang.Object(ARRAY(i6)))), i1233, i1234) -> f6275_0__init__Load(EOS(STATIC_6275(java.lang.Object(ARRAY(i6)))), i1233, i1234) :|: TRUE 11.03/3.87 f6275_0__init__Load(EOS(STATIC_6275(java.lang.Object(ARRAY(i6)))), i1233, i1234) -> f6278_0__init__FieldAccess(EOS(STATIC_6278(java.lang.Object(ARRAY(i6)))), i1233, i1234) :|: TRUE 11.03/3.87 f6278_0__init__FieldAccess(EOS(STATIC_6278(java.lang.Object(ARRAY(i6)))), i1233, i1234) -> f6281_0__init__Load(EOS(STATIC_6281(java.lang.Object(ARRAY(i6)))), i1233, i1234) :|: TRUE 11.03/3.87 f6281_0__init__Load(EOS(STATIC_6281(java.lang.Object(ARRAY(i6)))), i1233, i1234) -> f6284_0__init__Load(EOS(STATIC_6284(java.lang.Object(ARRAY(i6)))), i1233, i1234) :|: TRUE 11.03/3.87 f6284_0__init__Load(EOS(STATIC_6284(java.lang.Object(ARRAY(i6)))), i1233, i1234) -> f6287_0__init__FieldAccess(EOS(STATIC_6287(java.lang.Object(ARRAY(i6)))), i1233, i1234) :|: TRUE 11.03/3.87 f6287_0__init__FieldAccess(EOS(STATIC_6287(java.lang.Object(ARRAY(i6)))), i1233, i1234) -> f6290_0__init__Return(EOS(STATIC_6290(java.lang.Object(ARRAY(i6)))), i1233, i1234) :|: TRUE 11.03/3.87 f6290_0__init__Return(EOS(STATIC_6290(java.lang.Object(ARRAY(i6)))), i1233, i1234) -> f6293_0_createMetaList_Store(EOS(STATIC_6293(java.lang.Object(ARRAY(i6)))), i1233, i1234) :|: TRUE 11.03/3.87 f6293_0_createMetaList_Store(EOS(STATIC_6293(java.lang.Object(ARRAY(i6)))), i1233, i1234) -> f6296_0_createMetaList_Inc(EOS(STATIC_6296(java.lang.Object(ARRAY(i6)))), i1233, i1234) :|: TRUE 11.03/3.87 f6296_0_createMetaList_Inc(EOS(STATIC_6296(java.lang.Object(ARRAY(i6)))), i1233, i1234) -> f6299_0_createMetaList_JMP(EOS(STATIC_6299(java.lang.Object(ARRAY(i6)))), i1233, i1234 + 1) :|: TRUE 11.03/3.87 f6299_0_createMetaList_JMP(EOS(STATIC_6299(java.lang.Object(ARRAY(i6)))), i1233, i1396) -> f6302_0_createMetaList_Load(EOS(STATIC_6302(java.lang.Object(ARRAY(i6)))), i1233, i1396) :|: TRUE 11.03/3.87 f6302_0_createMetaList_Load(EOS(STATIC_6302(java.lang.Object(ARRAY(i6)))), i1233, i1396) -> f5912_0_createMetaList_Load(EOS(STATIC_5912(java.lang.Object(ARRAY(i6)))), i1233, i1396) :|: TRUE 11.03/3.87 f5912_0_createMetaList_Load(EOS(STATIC_5912(java.lang.Object(ARRAY(i6)))), i1233, i1234) -> f5913_0_createMetaList_Load(EOS(STATIC_5913(java.lang.Object(ARRAY(i6)))), i1233, i1234, i1234) :|: TRUE 11.03/3.87 f6249_0_createMetaList_LE(EOS(STATIC_6249(java.lang.Object(ARRAY(i6)))), i1233, i1234, i1395, i1395) -> f6252_0_createMetaList_New(EOS(STATIC_6252(java.lang.Object(ARRAY(i6)))), i1233, i1234, i1395) :|: i1395 > 0 11.03/3.87 f6252_0_createMetaList_New(EOS(STATIC_6252(java.lang.Object(ARRAY(i6)))), i1233, i1234, i1395) -> f6255_0_createMetaList_Duplicate(EOS(STATIC_6255(java.lang.Object(ARRAY(i6)))), i1233, i1234, i1395) :|: TRUE 11.03/3.87 f6255_0_createMetaList_Duplicate(EOS(STATIC_6255(java.lang.Object(ARRAY(i6)))), i1233, i1234, i1395) -> f6258_0_createMetaList_ConstantStackPush(EOS(STATIC_6258(java.lang.Object(ARRAY(i6)))), i1233, i1234, i1395) :|: TRUE 11.03/3.87 f6258_0_createMetaList_ConstantStackPush(EOS(STATIC_6258(java.lang.Object(ARRAY(i6)))), i1233, i1234, i1395) -> f6261_0_createMetaList_Load(EOS(STATIC_6261(java.lang.Object(ARRAY(i6)))), i1233, i1234, i1395) :|: TRUE 11.03/3.87 f6261_0_createMetaList_Load(EOS(STATIC_6261(java.lang.Object(ARRAY(i6)))), i1233, i1234, i1395) -> f6264_0_createMetaList_InvokeMethod(EOS(STATIC_6264(java.lang.Object(ARRAY(i6)))), i1233, i1234, i1395) :|: TRUE 11.03/3.87 f6264_0_createMetaList_InvokeMethod(EOS(STATIC_6264(java.lang.Object(ARRAY(i6)))), i1233, i1234, i1395) -> f6267_0__init__Load(EOS(STATIC_6267(java.lang.Object(ARRAY(i6)))), i1233, i1234, i1395) :|: TRUE 11.03/3.87 f6267_0__init__Load(EOS(STATIC_6267(java.lang.Object(ARRAY(i6)))), i1233, i1234, i1395) -> f6270_0__init__InvokeMethod(EOS(STATIC_6270(java.lang.Object(ARRAY(i6)))), i1233, i1234, i1395) :|: TRUE 11.03/3.87 f6270_0__init__InvokeMethod(EOS(STATIC_6270(java.lang.Object(ARRAY(i6)))), i1233, i1234, i1395) -> f6273_0__init__Load(EOS(STATIC_6273(java.lang.Object(ARRAY(i6)))), i1233, i1234, i1395) :|: TRUE 11.03/3.87 f6273_0__init__Load(EOS(STATIC_6273(java.lang.Object(ARRAY(i6)))), i1233, i1234, i1395) -> f6276_0__init__Load(EOS(STATIC_6276(java.lang.Object(ARRAY(i6)))), i1233, i1234, i1395) :|: TRUE 11.03/3.87 f6276_0__init__Load(EOS(STATIC_6276(java.lang.Object(ARRAY(i6)))), i1233, i1234, i1395) -> f6279_0__init__FieldAccess(EOS(STATIC_6279(java.lang.Object(ARRAY(i6)))), i1233, i1234, i1395) :|: TRUE 11.03/3.87 f6279_0__init__FieldAccess(EOS(STATIC_6279(java.lang.Object(ARRAY(i6)))), i1233, i1234, i1395) -> f6282_0__init__Load(EOS(STATIC_6282(java.lang.Object(ARRAY(i6)))), i1233, i1234, i1395) :|: TRUE 11.03/3.87 f6282_0__init__Load(EOS(STATIC_6282(java.lang.Object(ARRAY(i6)))), i1233, i1234, i1395) -> f6285_0__init__Load(EOS(STATIC_6285(java.lang.Object(ARRAY(i6)))), i1233, i1234, i1395) :|: TRUE 11.03/3.87 f6285_0__init__Load(EOS(STATIC_6285(java.lang.Object(ARRAY(i6)))), i1233, i1234, i1395) -> f6288_0__init__FieldAccess(EOS(STATIC_6288(java.lang.Object(ARRAY(i6)))), i1233, i1234, i1395) :|: TRUE 11.03/3.87 f6288_0__init__FieldAccess(EOS(STATIC_6288(java.lang.Object(ARRAY(i6)))), i1233, i1234, i1395) -> f6291_0__init__Return(EOS(STATIC_6291(java.lang.Object(ARRAY(i6)))), i1233, i1234, i1395) :|: TRUE 11.03/3.87 f6291_0__init__Return(EOS(STATIC_6291(java.lang.Object(ARRAY(i6)))), i1233, i1234, i1395) -> f6294_0_createMetaList_Store(EOS(STATIC_6294(java.lang.Object(ARRAY(i6)))), i1233, i1234, i1395) :|: TRUE 11.03/3.87 f6294_0_createMetaList_Store(EOS(STATIC_6294(java.lang.Object(ARRAY(i6)))), i1233, i1234, i1395) -> f6297_0_createMetaList_Inc(EOS(STATIC_6297(java.lang.Object(ARRAY(i6)))), i1233, i1234, i1395) :|: TRUE 11.03/3.87 f6297_0_createMetaList_Inc(EOS(STATIC_6297(java.lang.Object(ARRAY(i6)))), i1233, i1234, i1395) -> f6300_0_createMetaList_JMP(EOS(STATIC_6300(java.lang.Object(ARRAY(i6)))), i1233, i1234, i1395 + -1) :|: TRUE 11.03/3.87 f6300_0_createMetaList_JMP(EOS(STATIC_6300(java.lang.Object(ARRAY(i6)))), i1233, i1234, i1397) -> f6303_0_createMetaList_Load(EOS(STATIC_6303(java.lang.Object(ARRAY(i6)))), i1233, i1234, i1397) :|: TRUE 11.03/3.87 f6303_0_createMetaList_Load(EOS(STATIC_6303(java.lang.Object(ARRAY(i6)))), i1233, i1234, i1397) -> f6244_0_createMetaList_Load(EOS(STATIC_6244(java.lang.Object(ARRAY(i6)))), i1233, i1234, i1397) :|: TRUE 11.03/3.87 Combined rules. Obtained 2 IRulesP rules: 11.03/3.87 f6246_0_createMetaList_LE(EOS(STATIC_6246(java.lang.Object(ARRAY(i6:0)))), i1233:0, i1234:0, i1395:0, i1395:0) -> f6246_0_createMetaList_LE(EOS(STATIC_6246(java.lang.Object(ARRAY(i6:0)))), i1233:0, i1234:0, i1395:0 - 1, i1395:0 - 1) :|: i1395:0 > 0 11.03/3.87 f6246_0_createMetaList_LE(EOS(STATIC_6246(java.lang.Object(ARRAY(i6:0)))), i1233:0, i1234:0, 0, 0) -> f6246_0_createMetaList_LE(EOS(STATIC_6246(java.lang.Object(ARRAY(i6:0)))), i1233:0, i1234:0 + 1, i1285:0, i1285:0) :|: i1234:0 + 1 < i1233:0 && i1285:0 > -1 11.03/3.87 Filtered duplicate arguments: 11.03/3.87 f6246_0_createMetaList_LE(x1, x2, x3, x4, x5) -> f6246_0_createMetaList_LE(x1, x2, x3, x5) 11.03/3.87 Filtered unneeded arguments: 11.03/3.87 f6246_0_createMetaList_LE(x1, x2, x3, x4) -> f6246_0_createMetaList_LE(x2, x3, x4) 11.03/3.87 Finished conversion. Obtained 2 rules.P rules: 11.03/3.87 f6246_0_createMetaList_LE(i1233:0, i1234:0, i1395:0) -> f6246_0_createMetaList_LE(i1233:0, i1234:0, i1395:0 - 1) :|: i1395:0 > 0 11.03/3.87 f6246_0_createMetaList_LE(i1233:0, i1234:0, cons_0) -> f6246_0_createMetaList_LE(i1233:0, i1234:0 + 1, i1285:0) :|: i1234:0 + 1 < i1233:0 && i1285:0 > -1 && cons_0 = 0 11.03/3.87 11.03/3.87 ---------------------------------------- 11.03/3.87 11.03/3.87 (9) 11.03/3.87 Obligation: 11.03/3.87 Rules: 11.03/3.87 f6246_0_createMetaList_LE(i1233:0, i1234:0, i1395:0) -> f6246_0_createMetaList_LE(i1233:0, i1234:0, i1395:0 - 1) :|: i1395:0 > 0 11.03/3.87 f6246_0_createMetaList_LE(x, x1, x2) -> f6246_0_createMetaList_LE(x, x1 + 1, x3) :|: x1 + 1 < x && x3 > -1 && x2 = 0 11.03/3.87 11.03/3.87 ---------------------------------------- 11.03/3.87 11.03/3.87 (10) IRSFormatTransformerProof (EQUIVALENT) 11.03/3.87 Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). 11.03/3.87 ---------------------------------------- 11.03/3.87 11.03/3.87 (11) 11.03/3.87 Obligation: 11.03/3.87 Rules: 11.03/3.87 f6246_0_createMetaList_LE(i1233:0, i1234:0, i1395:0) -> f6246_0_createMetaList_LE(i1233:0, i1234:0, arith) :|: i1395:0 > 0 && arith = i1395:0 - 1 11.03/3.87 f6246_0_createMetaList_LE(x4, x5, x6) -> f6246_0_createMetaList_LE(x4, x7, x8) :|: x5 + 1 < x4 && x8 > -1 && x6 = 0 && x7 = x5 + 1 11.03/3.87 11.03/3.87 ---------------------------------------- 11.03/3.87 11.03/3.87 (12) IRSwTTerminationDigraphProof (EQUIVALENT) 11.03/3.87 Constructed termination digraph! 11.03/3.87 Nodes: 11.03/3.87 (1) f6246_0_createMetaList_LE(i1233:0, i1234:0, i1395:0) -> f6246_0_createMetaList_LE(i1233:0, i1234:0, arith) :|: i1395:0 > 0 && arith = i1395:0 - 1 11.03/3.87 (2) f6246_0_createMetaList_LE(x4, x5, x6) -> f6246_0_createMetaList_LE(x4, x7, x8) :|: x5 + 1 < x4 && x8 > -1 && x6 = 0 && x7 = x5 + 1 11.03/3.87 11.03/3.87 Arcs: 11.03/3.87 (1) -> (1), (2) 11.03/3.87 (2) -> (1), (2) 11.03/3.87 11.03/3.87 This digraph is fully evaluated! 11.03/3.87 ---------------------------------------- 11.03/3.87 11.03/3.87 (13) 11.03/3.87 Obligation: 11.03/3.87 11.03/3.87 Termination digraph: 11.03/3.87 Nodes: 11.03/3.87 (1) f6246_0_createMetaList_LE(i1233:0, i1234:0, i1395:0) -> f6246_0_createMetaList_LE(i1233:0, i1234:0, arith) :|: i1395:0 > 0 && arith = i1395:0 - 1 11.03/3.87 (2) f6246_0_createMetaList_LE(x4, x5, x6) -> f6246_0_createMetaList_LE(x4, x7, x8) :|: x5 + 1 < x4 && x8 > -1 && x6 = 0 && x7 = x5 + 1 11.03/3.87 11.03/3.87 Arcs: 11.03/3.87 (1) -> (1), (2) 11.03/3.87 (2) -> (1), (2) 11.03/3.87 11.03/3.87 This digraph is fully evaluated! 11.03/3.87 11.03/3.87 ---------------------------------------- 11.03/3.87 11.03/3.87 (14) IntTRSCompressionProof (EQUIVALENT) 11.03/3.87 Compressed rules. 11.03/3.87 ---------------------------------------- 11.03/3.87 11.03/3.87 (15) 11.03/3.87 Obligation: 11.03/3.87 Rules: 11.03/3.87 f6246_0_createMetaList_LE(x4:0, x5:0, cons_0) -> f6246_0_createMetaList_LE(x4:0, x5:0 + 1, x8:0) :|: x5:0 + 1 < x4:0 && x8:0 > -1 && cons_0 = 0 11.03/3.87 f6246_0_createMetaList_LE(i1233:0:0, i1234:0:0, i1395:0:0) -> f6246_0_createMetaList_LE(i1233:0:0, i1234:0:0, i1395:0:0 - 1) :|: i1395:0:0 > 0 11.03/3.87 11.03/3.87 ---------------------------------------- 11.03/3.87 11.03/3.87 (16) TempFilterProof (SOUND) 11.03/3.87 Used the following sort dictionary for filtering: 11.03/3.87 f6246_0_createMetaList_LE(VARIABLE, VARIABLE, INTEGER) 11.03/3.87 Replaced non-predefined constructor symbols by 0. 11.03/3.87 ---------------------------------------- 11.03/3.87 11.03/3.87 (17) 11.03/3.87 Obligation: 11.03/3.87 Rules: 11.03/3.87 f6246_0_createMetaList_LE(x4:0, x5:0, c) -> f6246_0_createMetaList_LE(x4:0, c1, x8:0) :|: c1 = x5:0 + 1 && c = 0 && (x5:0 + 1 < x4:0 && x8:0 > -1 && cons_0 = 0) 11.03/3.87 f6246_0_createMetaList_LE(i1233:0:0, i1234:0:0, i1395:0:0) -> f6246_0_createMetaList_LE(i1233:0:0, i1234:0:0, c2) :|: c2 = i1395:0:0 - 1 && i1395:0:0 > 0 11.03/3.87 11.03/3.87 ---------------------------------------- 11.03/3.87 11.03/3.87 (18) PolynomialOrderProcessor (EQUIVALENT) 11.03/3.87 Found the following polynomial interpretation: 11.03/3.87 [f6246_0_createMetaList_LE(x, x1, x2)] = -1 + x - x1 11.03/3.87 11.03/3.87 The following rules are decreasing: 11.03/3.87 f6246_0_createMetaList_LE(x4:0, x5:0, c) -> f6246_0_createMetaList_LE(x4:0, c1, x8:0) :|: c1 = x5:0 + 1 && c = 0 && (x5:0 + 1 < x4:0 && x8:0 > -1 && cons_0 = 0) 11.03/3.87 The following rules are bounded: 11.03/3.87 f6246_0_createMetaList_LE(x4:0, x5:0, c) -> f6246_0_createMetaList_LE(x4:0, c1, x8:0) :|: c1 = x5:0 + 1 && c = 0 && (x5:0 + 1 < x4:0 && x8:0 > -1 && cons_0 = 0) 11.03/3.87 11.03/3.87 ---------------------------------------- 11.03/3.87 11.03/3.87 (19) 11.03/3.87 Obligation: 11.03/3.87 Rules: 11.03/3.87 f6246_0_createMetaList_LE(i1233:0:0, i1234:0:0, i1395:0:0) -> f6246_0_createMetaList_LE(i1233:0:0, i1234:0:0, c2) :|: c2 = i1395:0:0 - 1 && i1395:0:0 > 0 11.03/3.87 11.03/3.87 ---------------------------------------- 11.03/3.87 11.03/3.87 (20) PolynomialOrderProcessor (EQUIVALENT) 11.03/3.87 Found the following polynomial interpretation: 11.03/3.87 [f6246_0_createMetaList_LE(x, x1, x2)] = x2 11.03/3.87 11.03/3.87 The following rules are decreasing: 11.03/3.87 f6246_0_createMetaList_LE(i1233:0:0, i1234:0:0, i1395:0:0) -> f6246_0_createMetaList_LE(i1233:0:0, i1234:0:0, c2) :|: c2 = i1395:0:0 - 1 && i1395:0:0 > 0 11.03/3.87 The following rules are bounded: 11.03/3.87 f6246_0_createMetaList_LE(i1233:0:0, i1234:0:0, i1395:0:0) -> f6246_0_createMetaList_LE(i1233:0:0, i1234:0:0, c2) :|: c2 = i1395:0:0 - 1 && i1395:0:0 > 0 11.03/3.87 11.03/3.87 ---------------------------------------- 11.03/3.87 11.03/3.87 (21) 11.03/3.87 YES 11.03/3.87 11.03/3.87 ---------------------------------------- 11.03/3.87 11.03/3.87 (22) 11.03/3.87 Obligation: 11.03/3.87 SCC of termination graph based on JBC Program. 11.03/3.87 SCC contains nodes from the following methods: CountMetaList.main([Ljava/lang/String;)V 11.03/3.87 SCC calls the following helper methods: 11.03/3.87 Performed SCC analyses: 11.03/3.87 *Used field analysis yielded the following read fields: 11.03/3.87 *List: [value, next] 11.03/3.87 *Marker field analysis yielded the following relations that could be markers: 11.03/3.87 11.03/3.87 ---------------------------------------- 11.03/3.87 11.03/3.87 (23) SCCToQDPProof (SOUND) 11.03/3.87 Transformed TerminationGraph SCC to QDP. Log: 11.03/3.87 Generated 56 rules for P and 0 rules for R.P rules: 11.03/3.87 f6179_0_countMetaList_NULL(EOS(STATIC_6179), java.lang.Object(o2383sub), java.lang.Object(o2383sub)) -> f6182_0_countMetaList_NULL(EOS(STATIC_6182), java.lang.Object(o2383sub), java.lang.Object(o2383sub)) :|: TRUE 11.03/3.87 f6182_0_countMetaList_NULL(EOS(STATIC_6182), java.lang.Object(o2383sub), java.lang.Object(o2383sub)) -> f6186_0_countMetaList_Load(EOS(STATIC_6186), java.lang.Object(o2383sub)) :|: TRUE 11.03/3.87 f6186_0_countMetaList_Load(EOS(STATIC_6186), java.lang.Object(o2383sub)) -> f6190_0_countMetaList_FieldAccess(EOS(STATIC_6190), java.lang.Object(o2383sub), java.lang.Object(o2383sub)) :|: TRUE 11.03/3.87 f6190_0_countMetaList_FieldAccess(EOS(STATIC_6190), java.lang.Object(List(EOC, o2391, o2392)), java.lang.Object(List(EOC, o2391, o2392))) -> f6192_0_countMetaList_FieldAccess(EOS(STATIC_6192), java.lang.Object(List(EOC, o2391, o2392)), java.lang.Object(List(EOC, o2391, o2392))) :|: TRUE 11.03/3.87 f6192_0_countMetaList_FieldAccess(EOS(STATIC_6192), java.lang.Object(List(EOC, o2391, o2392)), java.lang.Object(List(EOC, o2391, o2392))) -> f6196_0_countMetaList_CheckCast(EOS(STATIC_6196), java.lang.Object(List(EOC, o2391, o2392)), o2391) :|: TRUE 11.03/3.87 f6196_0_countMetaList_CheckCast(EOS(STATIC_6196), java.lang.Object(List(EOC, java.lang.Object(o2413sub), o2392)), java.lang.Object(o2413sub)) -> f6200_0_countMetaList_CheckCast(EOS(STATIC_6200), java.lang.Object(List(EOC, java.lang.Object(o2413sub), o2392)), java.lang.Object(o2413sub)) :|: TRUE 11.03/3.87 f6196_0_countMetaList_CheckCast(EOS(STATIC_6196), java.lang.Object(List(EOC, NULL, o2392)), NULL) -> f6201_0_countMetaList_CheckCast(EOS(STATIC_6201), java.lang.Object(List(EOC, NULL, o2392)), NULL) :|: TRUE 11.03/3.87 f6200_0_countMetaList_CheckCast(EOS(STATIC_6200), java.lang.Object(List(EOC, java.lang.Object(o2424sub), o2392)), java.lang.Object(o2424sub)) -> f6205_0_countMetaList_CheckCast(EOS(STATIC_6205), java.lang.Object(List(EOC, java.lang.Object(o2424sub), o2392)), java.lang.Object(o2424sub)) :|: TRUE 11.03/3.87 f6200_0_countMetaList_CheckCast(EOS(STATIC_6200), java.lang.Object(List(EOC, java.lang.Object(EOC), o2392)), java.lang.Object(EOC)) -> f6206_0_countMetaList_CheckCast(EOS(STATIC_6206), java.lang.Object(List(EOC, java.lang.Object(EOC), o2392)), java.lang.Object(EOC)) :|: TRUE 11.03/3.87 f6205_0_countMetaList_CheckCast(EOS(STATIC_6205), java.lang.Object(List(EOC, java.lang.Object(o2424sub), o2392)), java.lang.Object(o2424sub)) -> f6210_0_countMetaList_EQ(EOS(STATIC_6210), java.lang.Object(List(EOC, java.lang.Object(o2424sub), o2392)), 1) :|: TRUE 11.03/3.87 f6210_0_countMetaList_EQ(EOS(STATIC_6210), java.lang.Object(List(EOC, java.lang.Object(o2424sub), o2392)), matching1) -> f6215_0_countMetaList_Load(EOS(STATIC_6215), java.lang.Object(List(EOC, java.lang.Object(o2424sub), o2392))) :|: 1 > 0 && matching1 = 1 11.03/3.87 f6215_0_countMetaList_Load(EOS(STATIC_6215), java.lang.Object(List(EOC, java.lang.Object(o2424sub), o2392))) -> f6220_0_countMetaList_FieldAccess(EOS(STATIC_6220), java.lang.Object(List(EOC, java.lang.Object(o2424sub), o2392)), java.lang.Object(List(EOC, java.lang.Object(o2424sub), o2392))) :|: TRUE 11.03/3.87 f6220_0_countMetaList_FieldAccess(EOS(STATIC_6220), java.lang.Object(List(EOC, java.lang.Object(o2424sub), o2392)), java.lang.Object(List(EOC, java.lang.Object(o2424sub), o2392))) -> f6225_0_countMetaList_CheckCast(EOS(STATIC_6225), java.lang.Object(List(EOC, java.lang.Object(o2424sub), o2392)), java.lang.Object(o2424sub)) :|: TRUE 11.03/3.87 f6225_0_countMetaList_CheckCast(EOS(STATIC_6225), java.lang.Object(List(EOC, java.lang.Object(o2424sub), o2392)), java.lang.Object(o2424sub)) -> f6230_0_countMetaList_Store(EOS(STATIC_6230), java.lang.Object(List(EOC, java.lang.Object(o2424sub), o2392)), java.lang.Object(o2424sub)) :|: TRUE 11.03/3.87 f6230_0_countMetaList_Store(EOS(STATIC_6230), java.lang.Object(List(EOC, java.lang.Object(o2424sub), o2392)), java.lang.Object(o2424sub)) -> f6234_0_countMetaList_Load(EOS(STATIC_6234), java.lang.Object(List(EOC, java.lang.Object(o2424sub), o2392)), java.lang.Object(o2424sub)) :|: TRUE 11.03/3.87 f6234_0_countMetaList_Load(EOS(STATIC_6234), java.lang.Object(List(EOC, java.lang.Object(o2424sub), o2392)), java.lang.Object(o2424sub)) -> f6238_0_countMetaList_Load(EOS(STATIC_6238), java.lang.Object(List(EOC, java.lang.Object(o2424sub), o2392)), java.lang.Object(o2424sub), java.lang.Object(List(EOC, java.lang.Object(o2424sub), o2392))) :|: TRUE 11.03/3.87 f6238_0_countMetaList_Load(EOS(STATIC_6238), java.lang.Object(List(EOC, java.lang.Object(o2424sub), o2392)), java.lang.Object(o2424sub), java.lang.Object(List(EOC, java.lang.Object(o2424sub), o2392))) -> f6241_0_countMetaList_FieldAccess(EOS(STATIC_6241), java.lang.Object(List(EOC, java.lang.Object(o2424sub), o2392)), java.lang.Object(o2424sub), java.lang.Object(List(EOC, java.lang.Object(o2424sub), o2392)), java.lang.Object(o2424sub)) :|: TRUE 11.03/3.87 f6241_0_countMetaList_FieldAccess(EOS(STATIC_6241), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o2540, o2541)), o2392)), java.lang.Object(List(EOC, o2540, o2541)), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o2540, o2541)), o2392)), java.lang.Object(List(EOC, o2540, o2541))) -> f6245_0_countMetaList_FieldAccess(EOS(STATIC_6245), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o2540, o2541)), o2392)), java.lang.Object(List(EOC, o2540, o2541)), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o2540, o2541)), o2392)), java.lang.Object(List(EOC, o2540, o2541))) :|: TRUE 11.03/3.87 f6245_0_countMetaList_FieldAccess(EOS(STATIC_6245), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o2540, o2541)), o2392)), java.lang.Object(List(EOC, o2540, o2541)), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o2540, o2541)), o2392)), java.lang.Object(List(EOC, o2540, o2541))) -> f6247_0_countMetaList_FieldAccess(EOS(STATIC_6247), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o2540, o2541)), o2392)), java.lang.Object(List(EOC, o2540, o2541)), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o2540, o2541)), o2392)), o2541) :|: TRUE 11.03/3.87 f6247_0_countMetaList_FieldAccess(EOS(STATIC_6247), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o2540, o2541)), o2392)), java.lang.Object(List(EOC, o2540, o2541)), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o2540, o2541)), o2392)), o2541) -> f6250_0_countMetaList_New(EOS(STATIC_6250), java.lang.Object(List(EOC, o2541, o2392)), java.lang.Object(List(EOC, o2540, o2541))) :|: TRUE 11.03/3.87 f6250_0_countMetaList_New(EOS(STATIC_6250), java.lang.Object(List(EOC, o2541, o2392)), java.lang.Object(List(EOC, o2540, o2541))) -> f6253_0_countMetaList_Duplicate(EOS(STATIC_6253), java.lang.Object(List(EOC, o2541, o2392)), java.lang.Object(List(EOC, o2540, o2541)), java.lang.Object(List(EOC, NULL, NULL))) :|: TRUE 11.03/3.87 f6253_0_countMetaList_Duplicate(EOS(STATIC_6253), java.lang.Object(List(EOC, o2541, o2392)), java.lang.Object(List(EOC, o2540, o2541)), java.lang.Object(List(EOC, NULL, NULL))) -> f6256_0_countMetaList_Load(EOS(STATIC_6256), java.lang.Object(List(EOC, o2541, o2392)), java.lang.Object(List(EOC, o2540, o2541)), java.lang.Object(List(EOC, NULL, NULL)), java.lang.Object(List(EOC, NULL, NULL))) :|: TRUE 11.03/3.87 f6256_0_countMetaList_Load(EOS(STATIC_6256), java.lang.Object(List(EOC, o2541, o2392)), java.lang.Object(List(EOC, o2540, o2541)), java.lang.Object(List(EOC, NULL, NULL)), java.lang.Object(List(EOC, NULL, NULL))) -> f6259_0_countMetaList_FieldAccess(EOS(STATIC_6259), java.lang.Object(List(EOC, o2541, o2392)), java.lang.Object(List(EOC, NULL, NULL)), java.lang.Object(List(EOC, NULL, NULL)), java.lang.Object(List(EOC, o2540, o2541))) :|: TRUE 11.03/3.87 f6259_0_countMetaList_FieldAccess(EOS(STATIC_6259), java.lang.Object(List(EOC, o2541, o2392)), java.lang.Object(List(EOC, NULL, NULL)), java.lang.Object(List(EOC, NULL, NULL)), java.lang.Object(List(EOC, o2540, o2541))) -> f6262_0_countMetaList_Load(EOS(STATIC_6262), java.lang.Object(List(EOC, o2541, o2392)), java.lang.Object(List(EOC, NULL, NULL)), java.lang.Object(List(EOC, NULL, NULL)), o2540) :|: TRUE 11.03/3.87 f6262_0_countMetaList_Load(EOS(STATIC_6262), java.lang.Object(List(EOC, o2541, o2392)), java.lang.Object(List(EOC, NULL, NULL)), java.lang.Object(List(EOC, NULL, NULL)), o2540) -> f6265_0_countMetaList_InvokeMethod(EOS(STATIC_6265), java.lang.Object(List(EOC, NULL, NULL)), java.lang.Object(List(EOC, NULL, NULL)), o2540, java.lang.Object(List(EOC, o2541, o2392))) :|: TRUE 11.03/3.87 f6265_0_countMetaList_InvokeMethod(EOS(STATIC_6265), java.lang.Object(List(EOC, NULL, NULL)), java.lang.Object(List(EOC, NULL, NULL)), o2540, java.lang.Object(List(EOC, o2541, o2392))) -> f6268_0__init__Load(EOS(STATIC_6268), java.lang.Object(List(EOC, NULL, NULL)), java.lang.Object(List(EOC, NULL, NULL)), o2540, java.lang.Object(List(EOC, o2541, o2392))) :|: TRUE 11.03/3.87 f6268_0__init__Load(EOS(STATIC_6268), java.lang.Object(List(EOC, NULL, NULL)), java.lang.Object(List(EOC, NULL, NULL)), o2540, java.lang.Object(List(EOC, o2541, o2392))) -> f6271_0__init__InvokeMethod(EOS(STATIC_6271), java.lang.Object(List(EOC, NULL, NULL)), java.lang.Object(List(EOC, NULL, NULL)), o2540, java.lang.Object(List(EOC, o2541, o2392)), java.lang.Object(List(EOC, NULL, NULL))) :|: TRUE 11.03/3.87 f6271_0__init__InvokeMethod(EOS(STATIC_6271), java.lang.Object(List(EOC, NULL, NULL)), java.lang.Object(List(EOC, NULL, NULL)), o2540, java.lang.Object(List(EOC, o2541, o2392)), java.lang.Object(List(EOC, NULL, NULL))) -> f6274_0__init__Load(EOS(STATIC_6274), java.lang.Object(List(EOC, NULL, NULL)), java.lang.Object(List(EOC, NULL, NULL)), o2540, java.lang.Object(List(EOC, o2541, o2392))) :|: TRUE 11.03/3.87 f6274_0__init__Load(EOS(STATIC_6274), java.lang.Object(List(EOC, NULL, NULL)), java.lang.Object(List(EOC, NULL, NULL)), o2540, java.lang.Object(List(EOC, o2541, o2392))) -> f6277_0__init__Load(EOS(STATIC_6277), java.lang.Object(List(EOC, NULL, NULL)), java.lang.Object(List(EOC, NULL, NULL)), o2540, java.lang.Object(List(EOC, o2541, o2392)), java.lang.Object(List(EOC, NULL, NULL))) :|: TRUE 11.03/3.87 f6277_0__init__Load(EOS(STATIC_6277), java.lang.Object(List(EOC, NULL, NULL)), java.lang.Object(List(EOC, NULL, NULL)), o2540, java.lang.Object(List(EOC, o2541, o2392)), java.lang.Object(List(EOC, NULL, NULL))) -> f6280_0__init__FieldAccess(EOS(STATIC_6280), java.lang.Object(List(EOC, NULL, NULL)), java.lang.Object(List(EOC, NULL, NULL)), java.lang.Object(List(EOC, o2541, o2392)), java.lang.Object(List(EOC, NULL, NULL)), o2540) :|: TRUE 11.03/3.87 f6280_0__init__FieldAccess(EOS(STATIC_6280), java.lang.Object(List(EOC, NULL, NULL)), java.lang.Object(List(EOC, NULL, NULL)), java.lang.Object(List(EOC, o2541, o2392)), java.lang.Object(List(EOC, NULL, NULL)), o2540) -> f6283_0__init__Load(EOS(STATIC_6283), java.lang.Object(List(EOC, o2540, NULL)), java.lang.Object(List(EOC, o2540, NULL)), java.lang.Object(List(EOC, o2541, o2392))) :|: TRUE 11.03/3.87 f6283_0__init__Load(EOS(STATIC_6283), java.lang.Object(List(EOC, o2540, NULL)), java.lang.Object(List(EOC, o2540, NULL)), java.lang.Object(List(EOC, o2541, o2392))) -> f6286_0__init__Load(EOS(STATIC_6286), java.lang.Object(List(EOC, o2540, NULL)), java.lang.Object(List(EOC, o2541, o2392)), java.lang.Object(List(EOC, o2540, NULL))) :|: TRUE 11.03/3.87 f6286_0__init__Load(EOS(STATIC_6286), java.lang.Object(List(EOC, o2540, NULL)), java.lang.Object(List(EOC, o2541, o2392)), java.lang.Object(List(EOC, o2540, NULL))) -> f6289_0__init__FieldAccess(EOS(STATIC_6289), java.lang.Object(List(EOC, o2540, NULL)), java.lang.Object(List(EOC, o2540, NULL)), java.lang.Object(List(EOC, o2541, o2392))) :|: TRUE 11.03/3.87 f6289_0__init__FieldAccess(EOS(STATIC_6289), java.lang.Object(List(EOC, o2540, NULL)), java.lang.Object(List(EOC, o2540, NULL)), java.lang.Object(List(EOC, o2541, o2392))) -> f6292_0__init__Return(EOS(STATIC_6292), java.lang.Object(List(EOC, o2540, java.lang.Object(List(EOC, o2541, o2392))))) :|: TRUE 11.03/3.87 f6292_0__init__Return(EOS(STATIC_6292), java.lang.Object(List(EOC, o2540, java.lang.Object(List(EOC, o2541, o2392))))) -> f6295_0_countMetaList_Store(EOS(STATIC_6295), java.lang.Object(List(EOC, o2540, java.lang.Object(List(EOC, o2541, o2392))))) :|: TRUE 11.03/3.87 f6295_0_countMetaList_Store(EOS(STATIC_6295), java.lang.Object(List(EOC, o2540, java.lang.Object(List(EOC, o2541, o2392))))) -> f6298_0_countMetaList_Load(EOS(STATIC_6298), java.lang.Object(List(EOC, o2540, java.lang.Object(List(EOC, o2541, o2392))))) :|: TRUE 11.03/3.87 f6298_0_countMetaList_Load(EOS(STATIC_6298), java.lang.Object(List(EOC, o2540, java.lang.Object(List(EOC, o2541, o2392))))) -> f6301_0_countMetaList_FieldAccess(EOS(STATIC_6301), java.lang.Object(List(EOC, o2540, java.lang.Object(List(EOC, o2541, o2392))))) :|: TRUE 11.03/3.87 f6301_0_countMetaList_FieldAccess(EOS(STATIC_6301), java.lang.Object(List(EOC, o2540, java.lang.Object(List(EOC, o2541, o2392))))) -> f6304_0_countMetaList_Store(EOS(STATIC_6304), java.lang.Object(List(EOC, o2541, o2392))) :|: TRUE 11.03/3.87 f6304_0_countMetaList_Store(EOS(STATIC_6304), java.lang.Object(List(EOC, o2541, o2392))) -> f6305_0_countMetaList_Inc(EOS(STATIC_6305), java.lang.Object(List(EOC, o2541, o2392))) :|: TRUE 11.03/3.87 f6305_0_countMetaList_Inc(EOS(STATIC_6305), java.lang.Object(List(EOC, o2541, o2392))) -> f6306_0_countMetaList_JMP(EOS(STATIC_6306), java.lang.Object(List(EOC, o2541, o2392))) :|: TRUE 11.03/3.87 f6306_0_countMetaList_JMP(EOS(STATIC_6306), java.lang.Object(List(EOC, o2541, o2392))) -> f6307_0_countMetaList_Load(EOS(STATIC_6307), java.lang.Object(List(EOC, o2541, o2392))) :|: TRUE 11.03/3.87 f6307_0_countMetaList_Load(EOS(STATIC_6307), java.lang.Object(List(EOC, o2541, o2392))) -> f6176_0_countMetaList_Load(EOS(STATIC_6176), java.lang.Object(List(EOC, o2541, o2392))) :|: TRUE 11.03/3.87 f6176_0_countMetaList_Load(EOS(STATIC_6176), o2368) -> f6179_0_countMetaList_NULL(EOS(STATIC_6179), o2368, o2368) :|: TRUE 11.03/3.87 f6206_0_countMetaList_CheckCast(EOS(STATIC_6206), java.lang.Object(List(EOC, java.lang.Object(EOC), o2392)), java.lang.Object(EOC)) -> f6211_0_countMetaList_EQ(EOS(STATIC_6211), java.lang.Object(List(EOC, java.lang.Object(EOC), o2392)), 0) :|: TRUE 11.03/3.87 f6211_0_countMetaList_EQ(EOS(STATIC_6211), java.lang.Object(List(EOC, java.lang.Object(EOC), o2392)), matching1) -> f6216_0_countMetaList_Load(EOS(STATIC_6216), java.lang.Object(List(EOC, java.lang.Object(EOC), o2392))) :|: TRUE && matching1 = 0 11.03/3.87 f6216_0_countMetaList_Load(EOS(STATIC_6216), java.lang.Object(List(EOC, java.lang.Object(EOC), o2392))) -> f6221_0_countMetaList_FieldAccess(EOS(STATIC_6221), java.lang.Object(List(EOC, java.lang.Object(EOC), o2392))) :|: TRUE 11.03/3.87 f6221_0_countMetaList_FieldAccess(EOS(STATIC_6221), java.lang.Object(List(EOC, java.lang.Object(EOC), o2392))) -> f6226_0_countMetaList_Store(EOS(STATIC_6226), o2392) :|: TRUE 11.03/3.87 f6226_0_countMetaList_Store(EOS(STATIC_6226), o2392) -> f6222_0_countMetaList_Store(EOS(STATIC_6222), o2392) :|: TRUE 11.03/3.87 f6222_0_countMetaList_Store(EOS(STATIC_6222), o2392) -> f6227_0_countMetaList_Inc(EOS(STATIC_6227), o2392) :|: TRUE 11.03/3.87 f6227_0_countMetaList_Inc(EOS(STATIC_6227), o2392) -> f6231_0_countMetaList_JMP(EOS(STATIC_6231), o2392) :|: TRUE 11.03/3.87 f6231_0_countMetaList_JMP(EOS(STATIC_6231), o2392) -> f6235_0_countMetaList_Load(EOS(STATIC_6235), o2392) :|: TRUE 11.03/3.87 f6235_0_countMetaList_Load(EOS(STATIC_6235), o2392) -> f6176_0_countMetaList_Load(EOS(STATIC_6176), o2392) :|: TRUE 11.03/3.87 f6201_0_countMetaList_CheckCast(EOS(STATIC_6201), java.lang.Object(List(EOC, NULL, o2392)), NULL) -> f6207_0_countMetaList_EQ(EOS(STATIC_6207), java.lang.Object(List(EOC, NULL, o2392)), 0) :|: TRUE 11.03/3.87 f6207_0_countMetaList_EQ(EOS(STATIC_6207), java.lang.Object(List(EOC, NULL, o2392)), matching1) -> f6212_0_countMetaList_Load(EOS(STATIC_6212), java.lang.Object(List(EOC, NULL, o2392))) :|: TRUE && matching1 = 0 11.03/3.87 f6212_0_countMetaList_Load(EOS(STATIC_6212), java.lang.Object(List(EOC, NULL, o2392))) -> f6217_0_countMetaList_FieldAccess(EOS(STATIC_6217), java.lang.Object(List(EOC, NULL, o2392))) :|: TRUE 11.03/3.87 f6217_0_countMetaList_FieldAccess(EOS(STATIC_6217), java.lang.Object(List(EOC, NULL, o2392))) -> f6222_0_countMetaList_Store(EOS(STATIC_6222), o2392) :|: TRUE 11.03/3.87 R rules: 11.03/3.87 Combined rules. Obtained 3 conditional rules for P and 0 conditional rules for R.P rules: 11.03/3.87 f6179_0_countMetaList_NULL(EOS(STATIC_6179), java.lang.Object(List(EOC, java.lang.Object(EOC), o2392:0)), java.lang.Object(List(EOC, java.lang.Object(EOC), o2392:0))) -> f6179_0_countMetaList_NULL(EOS(STATIC_6179), o2392:0, o2392:0) :|: TRUE 11.03/3.87 f6179_0_countMetaList_NULL(EOS(STATIC_6179), java.lang.Object(List(EOC, NULL, o2392:0)), java.lang.Object(List(EOC, NULL, o2392:0))) -> f6179_0_countMetaList_NULL(EOS(STATIC_6179), o2392:0, o2392:0) :|: TRUE 11.03/3.87 f6179_0_countMetaList_NULL(EOS(STATIC_6179), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o2540:0, o2541:0)), o2392:0)), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o2540:0, o2541:0)), o2392:0))) -> f6179_0_countMetaList_NULL(EOS(STATIC_6179), java.lang.Object(List(EOC, o2541:0, o2392:0)), java.lang.Object(List(EOC, o2541:0, o2392:0))) :|: TRUE 11.03/3.87 R rules: 11.03/3.87 Filtered ground terms: 11.03/3.87 f6179_0_countMetaList_NULL(x1, x2, x3) -> f6179_0_countMetaList_NULL(x2, x3) 11.03/3.87 EOS(x1) -> EOS 11.03/3.87 List(x1, x2, x3) -> List(x2, x3) 11.03/3.87 Filtered duplicate args: 11.03/3.87 f6179_0_countMetaList_NULL(x1, x2) -> f6179_0_countMetaList_NULL(x2) 11.03/3.87 Combined rules. Obtained 3 conditional rules for P and 0 conditional rules for R.P rules: 11.03/3.87 F6179_0_COUNTMETALIST_NULL(java.lang.Object(List(java.lang.Object(EOC), o2392:0:0))) -> F6179_0_COUNTMETALIST_NULL(o2392:0:0) :|: TRUE 11.03/3.87 F6179_0_COUNTMETALIST_NULL(java.lang.Object(List(java.lang.Object(List(o2540:0:0, o2541:0:0)), o2392:0:0))) -> F6179_0_COUNTMETALIST_NULL(java.lang.Object(List(o2541:0:0, o2392:0:0))) :|: TRUE 11.03/3.87 F6179_0_COUNTMETALIST_NULL(java.lang.Object(List(NULL, o2392:0:0))) -> F6179_0_COUNTMETALIST_NULL(o2392:0:0) :|: TRUE 11.03/3.87 R rules: 11.03/3.87 11.03/3.87 ---------------------------------------- 11.03/3.87 11.03/3.87 (24) 11.03/3.87 Obligation: 11.03/3.87 Q DP problem: 11.03/3.87 The TRS P consists of the following rules: 11.03/3.87 11.03/3.87 F6179_0_COUNTMETALIST_NULL(java.lang.Object(List(java.lang.Object(EOC), o2392:0:0))) -> F6179_0_COUNTMETALIST_NULL(o2392:0:0) 11.03/3.87 F6179_0_COUNTMETALIST_NULL(java.lang.Object(List(java.lang.Object(List(o2540:0:0, o2541:0:0)), o2392:0:0))) -> F6179_0_COUNTMETALIST_NULL(java.lang.Object(List(o2541:0:0, o2392:0:0))) 11.03/3.87 F6179_0_COUNTMETALIST_NULL(java.lang.Object(List(NULL, o2392:0:0))) -> F6179_0_COUNTMETALIST_NULL(o2392:0:0) 11.03/3.87 11.03/3.87 R is empty. 11.03/3.87 Q is empty. 11.03/3.87 We have to consider all minimal (P,Q,R)-chains. 11.03/3.87 ---------------------------------------- 11.03/3.87 11.03/3.87 (25) UsableRulesReductionPairsProof (EQUIVALENT) 11.03/3.87 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. 11.18/3.87 11.18/3.87 The following dependency pairs can be deleted: 11.18/3.87 11.18/3.87 F6179_0_COUNTMETALIST_NULL(java.lang.Object(List(java.lang.Object(EOC), o2392:0:0))) -> F6179_0_COUNTMETALIST_NULL(o2392:0:0) 11.18/3.87 F6179_0_COUNTMETALIST_NULL(java.lang.Object(List(NULL, o2392:0:0))) -> F6179_0_COUNTMETALIST_NULL(o2392:0:0) 11.18/3.87 No rules are removed from R. 11.18/3.87 11.18/3.87 Used ordering: POLO with Polynomial interpretation [POLO]: 11.18/3.87 11.18/3.87 POL(EOC) = 0 11.18/3.87 POL(F6179_0_COUNTMETALIST_NULL(x_1)) = 2*x_1 11.18/3.87 POL(List(x_1, x_2)) = x_1 + 2*x_2 11.18/3.87 POL(NULL) = 0 11.18/3.87 POL(java.lang.Object(x_1)) = x_1 11.18/3.87 11.18/3.87 11.18/3.87 ---------------------------------------- 11.18/3.87 11.18/3.87 (26) 11.18/3.87 Obligation: 11.18/3.87 Q DP problem: 11.18/3.87 The TRS P consists of the following rules: 11.18/3.87 11.18/3.87 F6179_0_COUNTMETALIST_NULL(java.lang.Object(List(java.lang.Object(List(o2540:0:0, o2541:0:0)), o2392:0:0))) -> F6179_0_COUNTMETALIST_NULL(java.lang.Object(List(o2541:0:0, o2392:0:0))) 11.18/3.87 11.18/3.87 R is empty. 11.18/3.87 Q is empty. 11.18/3.87 We have to consider all minimal (P,Q,R)-chains. 11.18/3.87 ---------------------------------------- 11.18/3.87 11.18/3.87 (27) MRRProof (EQUIVALENT) 11.18/3.87 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. 11.18/3.87 11.18/3.87 Strictly oriented dependency pairs: 11.18/3.87 11.18/3.87 F6179_0_COUNTMETALIST_NULL(java.lang.Object(List(java.lang.Object(List(o2540:0:0, o2541:0:0)), o2392:0:0))) -> F6179_0_COUNTMETALIST_NULL(java.lang.Object(List(o2541:0:0, o2392:0:0))) 11.18/3.87 11.18/3.87 11.18/3.87 Used ordering: Knuth-Bendix order [KBO] with precedence:List_2 > java.lang.Object_1 > F6179_0_COUNTMETALIST_NULL_1 11.18/3.87 11.18/3.87 and weight map: 11.18/3.87 11.18/3.87 F6179_0_COUNTMETALIST_NULL_1=1 11.18/3.87 java.lang.Object_1=1 11.18/3.87 List_2=0 11.18/3.87 11.18/3.87 The variable weight is 1 11.18/3.87 11.18/3.87 ---------------------------------------- 11.18/3.87 11.18/3.87 (28) 11.18/3.87 Obligation: 11.18/3.87 Q DP problem: 11.18/3.87 P is empty. 11.18/3.87 R is empty. 11.18/3.87 Q is empty. 11.18/3.87 We have to consider all minimal (P,Q,R)-chains. 11.18/3.87 ---------------------------------------- 11.18/3.87 11.18/3.87 (29) PisEmptyProof (EQUIVALENT) 11.18/3.87 The TRS P is empty. Hence, there is no (P,Q,R) chain. 11.18/3.87 ---------------------------------------- 11.18/3.87 11.18/3.87 (30) 11.18/3.87 YES 11.18/3.90 EOF