15.31/5.59 YES 15.48/5.60 proof of /export/starexec/sandbox/benchmark/theBenchmark.jar 15.48/5.60 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 15.48/5.60 15.48/5.60 15.48/5.60 termination of the given Bare JBC problem could be proven: 15.48/5.60 15.48/5.60 (0) Bare JBC problem 15.48/5.60 (1) BareJBCToJBCProof [EQUIVALENT, 96 ms] 15.48/5.60 (2) JBC problem 15.48/5.60 (3) JBCToGraph [EQUIVALENT, 705 ms] 15.48/5.60 (4) JBCTerminationGraph 15.48/5.60 (5) TerminationGraphToSCCProof [SOUND, 0 ms] 15.48/5.60 (6) AND 15.48/5.60 (7) JBCTerminationSCC 15.48/5.60 (8) SCCToQDPProof [SOUND, 125 ms] 15.48/5.60 (9) QDP 15.48/5.60 (10) QDPSizeChangeProof [EQUIVALENT, 0 ms] 15.48/5.60 (11) YES 15.48/5.60 (12) JBCTerminationSCC 15.48/5.60 (13) SCCToQDPProof [SOUND, 73 ms] 15.48/5.60 (14) QDP 15.48/5.60 (15) QDPSizeChangeProof [EQUIVALENT, 4 ms] 15.48/5.60 (16) YES 15.48/5.60 (17) JBCTerminationSCC 15.48/5.60 (18) SCCToIRSProof [SOUND, 20 ms] 15.48/5.60 (19) IRSwT 15.48/5.60 (20) IRSFormatTransformerProof [EQUIVALENT, 0 ms] 15.48/5.60 (21) IRSwT 15.48/5.60 (22) IRSwTTerminationDigraphProof [EQUIVALENT, 0 ms] 15.48/5.60 (23) IRSwT 15.48/5.60 (24) IntTRSCompressionProof [EQUIVALENT, 0 ms] 15.48/5.60 (25) IRSwT 15.48/5.60 (26) TempFilterProof [SOUND, 14 ms] 15.48/5.60 (27) IntTRS 15.48/5.60 (28) PolynomialOrderProcessor [EQUIVALENT, 0 ms] 15.48/5.60 (29) YES 15.48/5.60 (30) JBCTerminationSCC 15.48/5.60 (31) SCCToIRSProof [SOUND, 240 ms] 15.48/5.60 (32) IRSwT 15.48/5.60 (33) IRSFormatTransformerProof [EQUIVALENT, 0 ms] 15.48/5.60 (34) IRSwT 15.48/5.60 (35) IRSwTTerminationDigraphProof [EQUIVALENT, 121 ms] 15.48/5.60 (36) IRSwT 15.48/5.60 (37) IntTRSCompressionProof [EQUIVALENT, 0 ms] 15.48/5.60 (38) IRSwT 15.48/5.60 (39) TempFilterProof [SOUND, 9 ms] 15.48/5.60 (40) IRSwT 15.48/5.60 (41) IRSwTToQDPProof [SOUND, 0 ms] 15.48/5.60 (42) QDP 15.48/5.60 (43) QDPSizeChangeProof [EQUIVALENT, 0 ms] 15.48/5.60 (44) YES 15.48/5.60 15.48/5.60 15.48/5.60 ---------------------------------------- 15.48/5.60 15.48/5.60 (0) 15.48/5.60 Obligation: 15.48/5.60 need to prove termination of the following program: 15.48/5.60 public class Test5 { 15.48/5.60 public static void main(String[] args) { 15.48/5.60 List l1 = List.mk(args.length); 15.48/5.60 List l2 = List.mk(args.length + 3); 15.48/5.60 List l3 = List.mk(args.length + 5); 15.48/5.60 List temp; 15.48/5.60 15.48/5.60 while (length(l1) > 0) { 15.48/5.60 temp = l1; 15.48/5.60 l1 = l2; 15.48/5.60 l2 = l3; 15.48/5.60 l3 = temp; 15.48/5.60 15.48/5.60 if (length(l2) % 3 == 0) 15.48/5.60 temp = temp.getTail(); 15.48/5.60 15.48/5.60 if (length(l3) % 5 == 0) 15.48/5.60 l3 = l3.getTail(); 15.48/5.60 15.48/5.60 if (length(l1) > length(l2)) 15.48/5.60 l1 = l1.getTail(); 15.48/5.60 else if (length(l1) == length(l2)) 15.48/5.60 l2 = l2.getTail(); 15.48/5.60 else 15.48/5.60 l3 = l3.getTail(); 15.48/5.60 15.48/5.60 test(l1, l2, l3); 15.48/5.60 } 15.48/5.60 } 15.48/5.60 15.48/5.60 private static int length(List list) { 15.48/5.60 int len = 0; 15.48/5.60 15.48/5.60 while (list != null) { 15.48/5.60 list = list.getTail(); 15.48/5.60 len++; 15.48/5.60 } 15.48/5.60 15.48/5.60 return len; 15.48/5.60 } 15.48/5.60 15.48/5.60 private static void test(List l1, List l2, List l3) { 15.48/5.60 while (l1 != null) { 15.48/5.60 l2 = new List(l1, l2); 15.48/5.60 l3 = new List(l2, l3); 15.48/5.60 l1 = l1.getTail(); 15.48/5.60 } 15.48/5.60 } 15.48/5.60 } 15.48/5.60 15.48/5.60 public class List { 15.48/5.60 public Object head; 15.48/5.60 private List tail; 15.48/5.60 15.48/5.60 public List(Object head, List tail) { 15.48/5.60 this.head = head; 15.48/5.60 this.tail = tail; 15.48/5.60 } 15.48/5.60 15.48/5.60 public List getTail() { 15.48/5.60 return tail; 15.48/5.60 } 15.48/5.60 15.48/5.60 public static List mk(int len) { 15.48/5.60 List result = null; 15.48/5.60 15.48/5.60 while (len-- > 0) 15.48/5.60 result = new List(new Object(), result); 15.48/5.60 15.48/5.60 return result; 15.48/5.60 } 15.48/5.60 } 15.48/5.60 15.48/5.60 15.48/5.60 ---------------------------------------- 15.48/5.60 15.48/5.60 (1) BareJBCToJBCProof (EQUIVALENT) 15.48/5.60 initialized classpath 15.48/5.60 ---------------------------------------- 15.48/5.60 15.48/5.60 (2) 15.48/5.60 Obligation: 15.48/5.60 need to prove termination of the following program: 15.48/5.60 public class Test5 { 15.48/5.60 public static void main(String[] args) { 15.48/5.60 List l1 = List.mk(args.length); 15.48/5.60 List l2 = List.mk(args.length + 3); 15.48/5.60 List l3 = List.mk(args.length + 5); 15.48/5.60 List temp; 15.48/5.60 15.48/5.60 while (length(l1) > 0) { 15.48/5.60 temp = l1; 15.48/5.60 l1 = l2; 15.48/5.60 l2 = l3; 15.48/5.60 l3 = temp; 15.48/5.60 15.48/5.60 if (length(l2) % 3 == 0) 15.48/5.60 temp = temp.getTail(); 15.48/5.60 15.48/5.60 if (length(l3) % 5 == 0) 15.48/5.60 l3 = l3.getTail(); 15.48/5.60 15.48/5.60 if (length(l1) > length(l2)) 15.48/5.60 l1 = l1.getTail(); 15.48/5.60 else if (length(l1) == length(l2)) 15.48/5.60 l2 = l2.getTail(); 15.48/5.60 else 15.48/5.60 l3 = l3.getTail(); 15.48/5.60 15.48/5.60 test(l1, l2, l3); 15.48/5.60 } 15.48/5.60 } 15.48/5.60 15.48/5.60 private static int length(List list) { 15.48/5.60 int len = 0; 15.48/5.60 15.48/5.60 while (list != null) { 15.48/5.60 list = list.getTail(); 15.48/5.60 len++; 15.48/5.60 } 15.48/5.60 15.48/5.60 return len; 15.48/5.60 } 15.48/5.60 15.48/5.60 private static void test(List l1, List l2, List l3) { 15.48/5.60 while (l1 != null) { 15.48/5.60 l2 = new List(l1, l2); 15.48/5.60 l3 = new List(l2, l3); 15.48/5.60 l1 = l1.getTail(); 15.48/5.61 } 15.48/5.61 } 15.48/5.61 } 15.48/5.61 15.48/5.61 public class List { 15.48/5.61 public Object head; 15.48/5.61 private List tail; 15.48/5.61 15.48/5.61 public List(Object head, List tail) { 15.48/5.61 this.head = head; 15.48/5.61 this.tail = tail; 15.48/5.61 } 15.48/5.61 15.48/5.61 public List getTail() { 15.48/5.61 return tail; 15.48/5.61 } 15.48/5.61 15.48/5.61 public static List mk(int len) { 15.48/5.61 List result = null; 15.48/5.61 15.48/5.61 while (len-- > 0) 15.48/5.61 result = new List(new Object(), result); 15.48/5.61 15.48/5.61 return result; 15.48/5.61 } 15.48/5.61 } 15.48/5.61 15.48/5.61 15.48/5.61 ---------------------------------------- 15.48/5.61 15.48/5.61 (3) JBCToGraph (EQUIVALENT) 15.48/5.61 Constructed TerminationGraph. 15.48/5.61 ---------------------------------------- 15.48/5.61 15.48/5.61 (4) 15.48/5.61 Obligation: 15.48/5.61 Termination Graph based on JBC Program: 15.48/5.61 Test5.main([Ljava/lang/String;)V: Graph of 264 nodes with 1 SCC. 15.48/5.61 15.48/5.61 15.48/5.61 15.48/5.61 List.mk(I)LList;: Graph of 58 nodes with 1 SCC. 15.48/5.61 15.48/5.61 15.48/5.61 15.48/5.61 Test5.length(LList;)I: Graph of 22 nodes with 1 SCC. 15.48/5.61 15.48/5.61 15.48/5.61 15.48/5.61 Test5.test(LList;LList;LList;)V: Graph of 47 nodes with 1 SCC. 15.48/5.61 15.48/5.61 15.48/5.61 15.48/5.61 15.48/5.61 15.48/5.61 ---------------------------------------- 15.48/5.61 15.48/5.61 (5) TerminationGraphToSCCProof (SOUND) 15.48/5.61 Splitted TerminationGraph to 4 SCCss. 15.48/5.61 ---------------------------------------- 15.48/5.61 15.48/5.61 (6) 15.48/5.61 Complex Obligation (AND) 15.48/5.61 15.48/5.61 ---------------------------------------- 15.48/5.61 15.48/5.61 (7) 15.48/5.61 Obligation: 15.48/5.61 SCC of termination graph based on JBC Program. 15.48/5.61 SCC contains nodes from the following methods: Test5.test(LList;LList;LList;)V 15.48/5.61 SCC calls the following helper methods: 15.48/5.61 Performed SCC analyses: 15.48/5.61 *Used field analysis yielded the following read fields: 15.48/5.61 *List: [tail] 15.48/5.61 *Marker field analysis yielded the following relations that could be markers: 15.48/5.61 15.48/5.61 ---------------------------------------- 15.48/5.61 15.48/5.61 (8) SCCToQDPProof (SOUND) 15.48/5.61 Transformed TerminationGraph SCC to QDP. Log: 15.48/5.61 Generated 42 rules for P and 0 rules for R.P rules: 15.48/5.61 f5673_0_test_NULL(EOS(STATIC_5673), java.lang.Object(o1314sub), java.lang.Object(o1314sub)) -> f5676_0_test_NULL(EOS(STATIC_5676), java.lang.Object(o1314sub), java.lang.Object(o1314sub)) :|: TRUE 15.48/5.61 f5676_0_test_NULL(EOS(STATIC_5676), java.lang.Object(o1314sub), java.lang.Object(o1314sub)) -> f5681_0_test_New(EOS(STATIC_5681), java.lang.Object(o1314sub)) :|: TRUE 15.48/5.61 f5681_0_test_New(EOS(STATIC_5681), java.lang.Object(o1314sub)) -> f5686_0_test_Duplicate(EOS(STATIC_5686), java.lang.Object(o1314sub)) :|: TRUE 15.48/5.61 f5686_0_test_Duplicate(EOS(STATIC_5686), java.lang.Object(o1314sub)) -> f5690_0_test_Load(EOS(STATIC_5690), java.lang.Object(o1314sub)) :|: TRUE 15.48/5.61 f5690_0_test_Load(EOS(STATIC_5690), java.lang.Object(o1314sub)) -> f5695_0_test_Load(EOS(STATIC_5695), java.lang.Object(o1314sub), java.lang.Object(o1314sub)) :|: TRUE 15.48/5.61 f5695_0_test_Load(EOS(STATIC_5695), java.lang.Object(o1314sub), java.lang.Object(o1314sub)) -> f5700_0_test_InvokeMethod(EOS(STATIC_5700), java.lang.Object(o1314sub), java.lang.Object(o1314sub)) :|: TRUE 15.48/5.61 f5700_0_test_InvokeMethod(EOS(STATIC_5700), java.lang.Object(o1314sub), java.lang.Object(o1314sub)) -> f5703_0__init__Load(EOS(STATIC_5703), java.lang.Object(o1314sub), java.lang.Object(o1314sub)) :|: TRUE 15.48/5.61 f5703_0__init__Load(EOS(STATIC_5703), java.lang.Object(o1314sub), java.lang.Object(o1314sub)) -> f5712_0__init__InvokeMethod(EOS(STATIC_5712), java.lang.Object(o1314sub), java.lang.Object(o1314sub)) :|: TRUE 15.48/5.61 f5712_0__init__InvokeMethod(EOS(STATIC_5712), java.lang.Object(o1314sub), java.lang.Object(o1314sub)) -> f5715_0__init__Load(EOS(STATIC_5715), java.lang.Object(o1314sub), java.lang.Object(o1314sub)) :|: TRUE 15.48/5.61 f5715_0__init__Load(EOS(STATIC_5715), java.lang.Object(o1314sub), java.lang.Object(o1314sub)) -> f5720_0__init__Load(EOS(STATIC_5720), java.lang.Object(o1314sub), java.lang.Object(o1314sub)) :|: TRUE 15.48/5.61 f5720_0__init__Load(EOS(STATIC_5720), java.lang.Object(o1314sub), java.lang.Object(o1314sub)) -> f5725_0__init__FieldAccess(EOS(STATIC_5725), java.lang.Object(o1314sub), java.lang.Object(o1314sub)) :|: TRUE 15.48/5.61 f5725_0__init__FieldAccess(EOS(STATIC_5725), java.lang.Object(o1314sub), java.lang.Object(o1314sub)) -> f5730_0__init__Load(EOS(STATIC_5730), java.lang.Object(o1314sub)) :|: TRUE 15.48/5.61 f5730_0__init__Load(EOS(STATIC_5730), java.lang.Object(o1314sub)) -> f5735_0__init__Load(EOS(STATIC_5735), java.lang.Object(o1314sub)) :|: TRUE 15.48/5.61 f5735_0__init__Load(EOS(STATIC_5735), java.lang.Object(o1314sub)) -> f5740_0__init__FieldAccess(EOS(STATIC_5740), java.lang.Object(o1314sub)) :|: TRUE 15.48/5.61 f5740_0__init__FieldAccess(EOS(STATIC_5740), java.lang.Object(o1314sub)) -> f5743_0__init__Return(EOS(STATIC_5743), java.lang.Object(o1314sub)) :|: TRUE 15.48/5.61 f5743_0__init__Return(EOS(STATIC_5743), java.lang.Object(o1314sub)) -> f5747_0_test_Store(EOS(STATIC_5747), java.lang.Object(o1314sub)) :|: TRUE 15.48/5.61 f5747_0_test_Store(EOS(STATIC_5747), java.lang.Object(o1314sub)) -> f5750_0_test_New(EOS(STATIC_5750), java.lang.Object(o1314sub)) :|: TRUE 15.48/5.61 f5750_0_test_New(EOS(STATIC_5750), java.lang.Object(o1314sub)) -> f5752_0_test_Duplicate(EOS(STATIC_5752), java.lang.Object(o1314sub)) :|: TRUE 15.48/5.61 f5752_0_test_Duplicate(EOS(STATIC_5752), java.lang.Object(o1314sub)) -> f5755_0_test_Load(EOS(STATIC_5755), java.lang.Object(o1314sub)) :|: TRUE 15.48/5.61 f5755_0_test_Load(EOS(STATIC_5755), java.lang.Object(o1314sub)) -> f5758_0_test_Load(EOS(STATIC_5758), java.lang.Object(o1314sub)) :|: TRUE 15.48/5.61 f5758_0_test_Load(EOS(STATIC_5758), java.lang.Object(o1314sub)) -> f5761_0_test_InvokeMethod(EOS(STATIC_5761), java.lang.Object(o1314sub)) :|: TRUE 15.48/5.61 f5761_0_test_InvokeMethod(EOS(STATIC_5761), java.lang.Object(o1314sub)) -> f5765_0__init__Load(EOS(STATIC_5765), java.lang.Object(o1314sub)) :|: TRUE 15.48/5.61 f5765_0__init__Load(EOS(STATIC_5765), java.lang.Object(o1314sub)) -> f5772_0__init__InvokeMethod(EOS(STATIC_5772), java.lang.Object(o1314sub)) :|: TRUE 15.48/5.61 f5772_0__init__InvokeMethod(EOS(STATIC_5772), java.lang.Object(o1314sub)) -> f5776_0__init__Load(EOS(STATIC_5776), java.lang.Object(o1314sub)) :|: TRUE 15.48/5.61 f5776_0__init__Load(EOS(STATIC_5776), java.lang.Object(o1314sub)) -> f5779_0__init__Load(EOS(STATIC_5779), java.lang.Object(o1314sub)) :|: TRUE 15.48/5.61 f5779_0__init__Load(EOS(STATIC_5779), java.lang.Object(o1314sub)) -> f5782_0__init__FieldAccess(EOS(STATIC_5782), java.lang.Object(o1314sub)) :|: TRUE 15.48/5.61 f5782_0__init__FieldAccess(EOS(STATIC_5782), java.lang.Object(o1314sub)) -> f5785_0__init__Load(EOS(STATIC_5785), java.lang.Object(o1314sub)) :|: TRUE 15.48/5.61 f5785_0__init__Load(EOS(STATIC_5785), java.lang.Object(o1314sub)) -> f5788_0__init__Load(EOS(STATIC_5788), java.lang.Object(o1314sub)) :|: TRUE 15.48/5.61 f5788_0__init__Load(EOS(STATIC_5788), java.lang.Object(o1314sub)) -> f5792_0__init__FieldAccess(EOS(STATIC_5792), java.lang.Object(o1314sub)) :|: TRUE 15.48/5.61 f5792_0__init__FieldAccess(EOS(STATIC_5792), java.lang.Object(o1314sub)) -> f5796_0__init__Return(EOS(STATIC_5796), java.lang.Object(o1314sub)) :|: TRUE 15.48/5.61 f5796_0__init__Return(EOS(STATIC_5796), java.lang.Object(o1314sub)) -> f5799_0_test_Store(EOS(STATIC_5799), java.lang.Object(o1314sub)) :|: TRUE 15.48/5.61 f5799_0_test_Store(EOS(STATIC_5799), java.lang.Object(o1314sub)) -> f5802_0_test_Load(EOS(STATIC_5802), java.lang.Object(o1314sub)) :|: TRUE 15.48/5.61 f5802_0_test_Load(EOS(STATIC_5802), java.lang.Object(o1314sub)) -> f5805_0_test_InvokeMethod(EOS(STATIC_5805), java.lang.Object(o1314sub)) :|: TRUE 15.48/5.61 f5805_0_test_InvokeMethod(EOS(STATIC_5805), java.lang.Object(o1314sub)) -> f5807_0_getTail_Load(EOS(STATIC_5807), java.lang.Object(o1314sub)) :|: TRUE 15.48/5.61 f5807_0_getTail_Load(EOS(STATIC_5807), java.lang.Object(o1314sub)) -> f5809_0_getTail_FieldAccess(EOS(STATIC_5809), java.lang.Object(o1314sub)) :|: TRUE 15.48/5.61 f5809_0_getTail_FieldAccess(EOS(STATIC_5809), java.lang.Object(List(EOC, o1408))) -> f5811_0_getTail_FieldAccess(EOS(STATIC_5811), java.lang.Object(List(EOC, o1408))) :|: TRUE 15.48/5.61 f5811_0_getTail_FieldAccess(EOS(STATIC_5811), java.lang.Object(List(EOC, o1408))) -> f5813_0_getTail_Return(EOS(STATIC_5813), o1408) :|: TRUE 15.48/5.61 f5813_0_getTail_Return(EOS(STATIC_5813), o1408) -> f5817_0_test_Store(EOS(STATIC_5817), o1408) :|: TRUE 15.48/5.61 f5817_0_test_Store(EOS(STATIC_5817), o1408) -> f5821_0_test_JMP(EOS(STATIC_5821), o1408) :|: TRUE 15.48/5.61 f5821_0_test_JMP(EOS(STATIC_5821), o1408) -> f5826_0_test_Load(EOS(STATIC_5826), o1408) :|: TRUE 15.48/5.61 f5826_0_test_Load(EOS(STATIC_5826), o1408) -> f5670_0_test_Load(EOS(STATIC_5670), o1408) :|: TRUE 15.48/5.61 f5670_0_test_Load(EOS(STATIC_5670), o1291) -> f5673_0_test_NULL(EOS(STATIC_5673), o1291, o1291) :|: TRUE 15.48/5.61 R rules: 15.48/5.61 Combined rules. Obtained 1 conditional rules for P and 0 conditional rules for R.P rules: 15.48/5.61 f5673_0_test_NULL(EOS(STATIC_5673), java.lang.Object(List(EOC, o1408:0)), java.lang.Object(List(EOC, o1408:0))) -> f5673_0_test_NULL(EOS(STATIC_5673), o1408:0, o1408:0) :|: TRUE 15.48/5.61 R rules: 15.48/5.61 Filtered ground terms: 15.48/5.61 f5673_0_test_NULL(x1, x2, x3) -> f5673_0_test_NULL(x2, x3) 15.48/5.61 EOS(x1) -> EOS 15.48/5.61 List(x1, x2) -> List(x2) 15.48/5.61 Filtered duplicate args: 15.48/5.61 f5673_0_test_NULL(x1, x2) -> f5673_0_test_NULL(x2) 15.48/5.61 Combined rules. Obtained 1 conditional rules for P and 0 conditional rules for R.P rules: 15.48/5.61 F5673_0_TEST_NULL(java.lang.Object(List(o1408:0:0))) -> F5673_0_TEST_NULL(o1408:0:0) :|: TRUE 15.48/5.61 R rules: 15.48/5.61 15.48/5.61 ---------------------------------------- 15.48/5.61 15.48/5.61 (9) 15.48/5.61 Obligation: 15.48/5.61 Q DP problem: 15.48/5.61 The TRS P consists of the following rules: 15.48/5.61 15.48/5.61 F5673_0_TEST_NULL(java.lang.Object(List(o1408:0:0))) -> F5673_0_TEST_NULL(o1408:0:0) 15.48/5.61 15.48/5.61 R is empty. 15.48/5.61 Q is empty. 15.48/5.61 We have to consider all minimal (P,Q,R)-chains. 15.48/5.61 ---------------------------------------- 15.48/5.61 15.48/5.61 (10) QDPSizeChangeProof (EQUIVALENT) 15.48/5.61 By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. 15.48/5.61 15.48/5.61 From the DPs we obtained the following set of size-change graphs: 15.48/5.61 *F5673_0_TEST_NULL(java.lang.Object(List(o1408:0:0))) -> F5673_0_TEST_NULL(o1408:0:0) 15.48/5.61 The graph contains the following edges 1 > 1 15.48/5.61 15.48/5.61 15.48/5.61 ---------------------------------------- 15.48/5.61 15.48/5.61 (11) 15.48/5.61 YES 15.48/5.61 15.48/5.61 ---------------------------------------- 15.48/5.61 15.48/5.61 (12) 15.48/5.61 Obligation: 15.48/5.61 SCC of termination graph based on JBC Program. 15.48/5.61 SCC contains nodes from the following methods: Test5.length(LList;)I 15.48/5.61 SCC calls the following helper methods: 15.48/5.61 Performed SCC analyses: 15.48/5.61 *Used field analysis yielded the following read fields: 15.48/5.61 *List: [tail] 15.48/5.61 *Marker field analysis yielded the following relations that could be markers: 15.48/5.61 15.48/5.61 ---------------------------------------- 15.48/5.61 15.48/5.61 (13) SCCToQDPProof (SOUND) 15.48/5.61 Transformed TerminationGraph SCC to QDP. Log: 15.48/5.61 Generated 13 rules for P and 0 rules for R.P rules: 15.48/5.61 f5224_0_length_NULL(EOS(STATIC_5224), java.lang.Object(o654sub), java.lang.Object(o654sub)) -> f5226_0_length_NULL(EOS(STATIC_5226), java.lang.Object(o654sub), java.lang.Object(o654sub)) :|: TRUE 15.48/5.61 f5226_0_length_NULL(EOS(STATIC_5226), java.lang.Object(o654sub), java.lang.Object(o654sub)) -> f5229_0_length_Load(EOS(STATIC_5229), java.lang.Object(o654sub)) :|: TRUE 15.48/5.61 f5229_0_length_Load(EOS(STATIC_5229), java.lang.Object(o654sub)) -> f5232_0_length_InvokeMethod(EOS(STATIC_5232), java.lang.Object(o654sub)) :|: TRUE 15.48/5.61 f5232_0_length_InvokeMethod(EOS(STATIC_5232), java.lang.Object(o654sub)) -> f5235_0_getTail_Load(EOS(STATIC_5235), java.lang.Object(o654sub)) :|: TRUE 15.48/5.61 f5235_0_getTail_Load(EOS(STATIC_5235), java.lang.Object(o654sub)) -> f5239_0_getTail_FieldAccess(EOS(STATIC_5239), java.lang.Object(o654sub)) :|: TRUE 15.48/5.61 f5239_0_getTail_FieldAccess(EOS(STATIC_5239), java.lang.Object(List(EOC, o667))) -> f5242_0_getTail_FieldAccess(EOS(STATIC_5242), java.lang.Object(List(EOC, o667))) :|: TRUE 15.48/5.61 f5242_0_getTail_FieldAccess(EOS(STATIC_5242), java.lang.Object(List(EOC, o667))) -> f5244_0_getTail_Return(EOS(STATIC_5244), o667) :|: TRUE 15.48/5.61 f5244_0_getTail_Return(EOS(STATIC_5244), o667) -> f5245_0_length_Store(EOS(STATIC_5245), o667) :|: TRUE 15.48/5.61 f5245_0_length_Store(EOS(STATIC_5245), o667) -> f5246_0_length_Inc(EOS(STATIC_5246), o667) :|: TRUE 15.48/5.61 f5246_0_length_Inc(EOS(STATIC_5246), o667) -> f5247_0_length_JMP(EOS(STATIC_5247), o667) :|: TRUE 15.48/5.61 f5247_0_length_JMP(EOS(STATIC_5247), o667) -> f5249_0_length_Load(EOS(STATIC_5249), o667) :|: TRUE 15.48/5.61 f5249_0_length_Load(EOS(STATIC_5249), o667) -> f5222_0_length_Load(EOS(STATIC_5222), o667) :|: TRUE 15.48/5.61 f5222_0_length_Load(EOS(STATIC_5222), o649) -> f5224_0_length_NULL(EOS(STATIC_5224), o649, o649) :|: TRUE 15.48/5.61 R rules: 15.48/5.61 Combined rules. Obtained 1 conditional rules for P and 0 conditional rules for R.P rules: 15.48/5.61 f5224_0_length_NULL(EOS(STATIC_5224), java.lang.Object(List(EOC, o667:0)), java.lang.Object(List(EOC, o667:0))) -> f5224_0_length_NULL(EOS(STATIC_5224), o667:0, o667:0) :|: TRUE 15.48/5.61 R rules: 15.48/5.61 Filtered ground terms: 15.48/5.61 f5224_0_length_NULL(x1, x2, x3) -> f5224_0_length_NULL(x2, x3) 15.48/5.61 EOS(x1) -> EOS 15.48/5.61 List(x1, x2) -> List(x2) 15.48/5.61 Filtered duplicate args: 15.48/5.61 f5224_0_length_NULL(x1, x2) -> f5224_0_length_NULL(x2) 15.48/5.61 Combined rules. Obtained 1 conditional rules for P and 0 conditional rules for R.P rules: 15.48/5.61 F5224_0_LENGTH_NULL(java.lang.Object(List(o667:0:0))) -> F5224_0_LENGTH_NULL(o667:0:0) :|: TRUE 15.48/5.61 R rules: 15.48/5.61 15.48/5.61 ---------------------------------------- 15.48/5.61 15.48/5.61 (14) 15.48/5.61 Obligation: 15.48/5.61 Q DP problem: 15.48/5.61 The TRS P consists of the following rules: 15.48/5.61 15.48/5.61 F5224_0_LENGTH_NULL(java.lang.Object(List(o667:0:0))) -> F5224_0_LENGTH_NULL(o667:0:0) 15.48/5.61 15.48/5.61 R is empty. 15.48/5.61 Q is empty. 15.48/5.61 We have to consider all minimal (P,Q,R)-chains. 15.48/5.61 ---------------------------------------- 15.48/5.61 15.48/5.61 (15) QDPSizeChangeProof (EQUIVALENT) 15.48/5.61 By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. 15.48/5.61 15.48/5.61 From the DPs we obtained the following set of size-change graphs: 15.48/5.61 *F5224_0_LENGTH_NULL(java.lang.Object(List(o667:0:0))) -> F5224_0_LENGTH_NULL(o667:0:0) 15.48/5.61 The graph contains the following edges 1 > 1 15.48/5.61 15.48/5.61 15.48/5.61 ---------------------------------------- 15.48/5.61 15.48/5.61 (16) 15.48/5.61 YES 15.48/5.61 15.48/5.61 ---------------------------------------- 15.48/5.61 15.48/5.61 (17) 15.48/5.61 Obligation: 15.48/5.61 SCC of termination graph based on JBC Program. 15.48/5.61 SCC contains nodes from the following methods: List.mk(I)LList; 15.48/5.61 SCC calls the following helper methods: 15.48/5.61 Performed SCC analyses: 15.48/5.61 *Used field analysis yielded the following read fields: 15.48/5.61 15.48/5.61 *Marker field analysis yielded the following relations that could be markers: 15.48/5.61 15.48/5.61 ---------------------------------------- 15.48/5.61 15.48/5.61 (18) SCCToIRSProof (SOUND) 15.48/5.61 Transformed FIGraph SCCs to intTRSs. Log: 15.48/5.61 Generated rules. Obtained 23 IRulesP rules: 15.48/5.61 f5108_0_mk_Inc(EOS(STATIC_5108), i515, i515) -> f5110_0_mk_LE(EOS(STATIC_5110), i515 + -1, i515) :|: TRUE 15.48/5.61 f5110_0_mk_LE(EOS(STATIC_5110), i524, i535) -> f5112_0_mk_LE(EOS(STATIC_5112), i524, i535) :|: TRUE 15.48/5.61 f5112_0_mk_LE(EOS(STATIC_5112), i524, i535) -> f5114_0_mk_New(EOS(STATIC_5114), i524) :|: i535 > 0 15.48/5.61 f5114_0_mk_New(EOS(STATIC_5114), i524) -> f5117_0_mk_Duplicate(EOS(STATIC_5117), i524) :|: TRUE 15.48/5.61 f5117_0_mk_Duplicate(EOS(STATIC_5117), i524) -> f5120_0_mk_New(EOS(STATIC_5120), i524) :|: TRUE 15.48/5.61 f5120_0_mk_New(EOS(STATIC_5120), i524) -> f5122_0_mk_Duplicate(EOS(STATIC_5122), i524) :|: TRUE 15.48/5.61 f5122_0_mk_Duplicate(EOS(STATIC_5122), i524) -> f5127_0_mk_InvokeMethod(EOS(STATIC_5127), i524) :|: TRUE 15.48/5.61 f5127_0_mk_InvokeMethod(EOS(STATIC_5127), i524) -> f5130_0_mk_Load(EOS(STATIC_5130), i524) :|: TRUE 15.48/5.61 f5130_0_mk_Load(EOS(STATIC_5130), i524) -> f5133_0_mk_InvokeMethod(EOS(STATIC_5133), i524) :|: TRUE 15.48/5.61 f5133_0_mk_InvokeMethod(EOS(STATIC_5133), i524) -> f5136_0__init__Load(EOS(STATIC_5136), i524) :|: TRUE 15.48/5.61 f5136_0__init__Load(EOS(STATIC_5136), i524) -> f5139_0__init__InvokeMethod(EOS(STATIC_5139), i524) :|: TRUE 15.48/5.61 f5139_0__init__InvokeMethod(EOS(STATIC_5139), i524) -> f5142_0__init__Load(EOS(STATIC_5142), i524) :|: TRUE 15.48/5.61 f5142_0__init__Load(EOS(STATIC_5142), i524) -> f5145_0__init__Load(EOS(STATIC_5145), i524) :|: TRUE 15.48/5.61 f5145_0__init__Load(EOS(STATIC_5145), i524) -> f5148_0__init__FieldAccess(EOS(STATIC_5148), i524) :|: TRUE 15.48/5.61 f5148_0__init__FieldAccess(EOS(STATIC_5148), i524) -> f5151_0__init__Load(EOS(STATIC_5151), i524) :|: TRUE 15.48/5.61 f5151_0__init__Load(EOS(STATIC_5151), i524) -> f5153_0__init__Load(EOS(STATIC_5153), i524) :|: TRUE 15.48/5.61 f5153_0__init__Load(EOS(STATIC_5153), i524) -> f5155_0__init__FieldAccess(EOS(STATIC_5155), i524) :|: TRUE 15.48/5.61 f5155_0__init__FieldAccess(EOS(STATIC_5155), i524) -> f5158_0__init__Return(EOS(STATIC_5158), i524) :|: TRUE 15.48/5.61 f5158_0__init__Return(EOS(STATIC_5158), i524) -> f5160_0_mk_Store(EOS(STATIC_5160), i524) :|: TRUE 15.48/5.61 f5160_0_mk_Store(EOS(STATIC_5160), i524) -> f5163_0_mk_JMP(EOS(STATIC_5163), i524) :|: TRUE 15.48/5.61 f5163_0_mk_JMP(EOS(STATIC_5163), i524) -> f5166_0_mk_Load(EOS(STATIC_5166), i524) :|: TRUE 15.48/5.61 f5166_0_mk_Load(EOS(STATIC_5166), i524) -> f5106_0_mk_Load(EOS(STATIC_5106), i524) :|: TRUE 15.48/5.61 f5106_0_mk_Load(EOS(STATIC_5106), i515) -> f5108_0_mk_Inc(EOS(STATIC_5108), i515, i515) :|: TRUE 15.48/5.61 Combined rules. Obtained 1 IRulesP rules: 15.48/5.61 f5108_0_mk_Inc(EOS(STATIC_5108), i515:0, i515:0) -> f5108_0_mk_Inc(EOS(STATIC_5108), i515:0 - 1, i515:0 - 1) :|: i515:0 > 0 15.48/5.61 Filtered constant ground arguments: 15.48/5.61 f5108_0_mk_Inc(x1, x2, x3) -> f5108_0_mk_Inc(x2, x3) 15.48/5.61 EOS(x1) -> EOS 15.48/5.61 Filtered duplicate arguments: 15.48/5.61 f5108_0_mk_Inc(x1, x2) -> f5108_0_mk_Inc(x2) 15.48/5.61 Finished conversion. Obtained 1 rules.P rules: 15.48/5.61 f5108_0_mk_Inc(i515:0) -> f5108_0_mk_Inc(i515:0 - 1) :|: i515:0 > 0 15.48/5.61 15.48/5.61 ---------------------------------------- 15.48/5.61 15.48/5.61 (19) 15.48/5.61 Obligation: 15.48/5.61 Rules: 15.48/5.61 f5108_0_mk_Inc(i515:0) -> f5108_0_mk_Inc(i515:0 - 1) :|: i515:0 > 0 15.48/5.61 15.48/5.61 ---------------------------------------- 15.48/5.61 15.48/5.61 (20) IRSFormatTransformerProof (EQUIVALENT) 15.48/5.61 Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). 15.48/5.61 ---------------------------------------- 15.48/5.61 15.48/5.61 (21) 15.48/5.61 Obligation: 15.48/5.61 Rules: 15.48/5.61 f5108_0_mk_Inc(i515:0) -> f5108_0_mk_Inc(arith) :|: i515:0 > 0 && arith = i515:0 - 1 15.48/5.61 15.48/5.61 ---------------------------------------- 15.48/5.61 15.48/5.61 (22) IRSwTTerminationDigraphProof (EQUIVALENT) 15.48/5.61 Constructed termination digraph! 15.48/5.61 Nodes: 15.48/5.61 (1) f5108_0_mk_Inc(i515:0) -> f5108_0_mk_Inc(arith) :|: i515:0 > 0 && arith = i515:0 - 1 15.48/5.61 15.48/5.61 Arcs: 15.48/5.61 (1) -> (1) 15.48/5.61 15.48/5.61 This digraph is fully evaluated! 15.48/5.61 ---------------------------------------- 15.48/5.61 15.48/5.61 (23) 15.48/5.61 Obligation: 15.48/5.61 15.48/5.61 Termination digraph: 15.48/5.61 Nodes: 15.48/5.61 (1) f5108_0_mk_Inc(i515:0) -> f5108_0_mk_Inc(arith) :|: i515:0 > 0 && arith = i515:0 - 1 15.48/5.61 15.48/5.61 Arcs: 15.48/5.61 (1) -> (1) 15.48/5.61 15.48/5.61 This digraph is fully evaluated! 15.48/5.61 15.48/5.61 ---------------------------------------- 15.48/5.61 15.48/5.61 (24) IntTRSCompressionProof (EQUIVALENT) 15.48/5.61 Compressed rules. 15.48/5.61 ---------------------------------------- 15.48/5.61 15.48/5.61 (25) 15.48/5.61 Obligation: 15.48/5.61 Rules: 15.48/5.61 f5108_0_mk_Inc(i515:0:0) -> f5108_0_mk_Inc(i515:0:0 - 1) :|: i515:0:0 > 0 15.48/5.61 15.48/5.61 ---------------------------------------- 15.48/5.61 15.48/5.61 (26) TempFilterProof (SOUND) 15.48/5.61 Used the following sort dictionary for filtering: 15.48/5.61 f5108_0_mk_Inc(INTEGER) 15.48/5.61 Replaced non-predefined constructor symbols by 0. 15.48/5.61 ---------------------------------------- 15.48/5.61 15.48/5.61 (27) 15.48/5.61 Obligation: 15.48/5.61 Rules: 15.48/5.61 f5108_0_mk_Inc(i515:0:0) -> f5108_0_mk_Inc(c) :|: c = i515:0:0 - 1 && i515:0:0 > 0 15.48/5.61 15.48/5.61 ---------------------------------------- 15.48/5.61 15.48/5.61 (28) PolynomialOrderProcessor (EQUIVALENT) 15.48/5.61 Found the following polynomial interpretation: 15.48/5.61 [f5108_0_mk_Inc(x)] = x 15.48/5.61 15.48/5.61 The following rules are decreasing: 15.48/5.61 f5108_0_mk_Inc(i515:0:0) -> f5108_0_mk_Inc(c) :|: c = i515:0:0 - 1 && i515:0:0 > 0 15.48/5.61 The following rules are bounded: 15.48/5.61 f5108_0_mk_Inc(i515:0:0) -> f5108_0_mk_Inc(c) :|: c = i515:0:0 - 1 && i515:0:0 > 0 15.48/5.61 15.48/5.61 ---------------------------------------- 15.48/5.61 15.48/5.61 (29) 15.48/5.61 YES 15.48/5.61 15.48/5.61 ---------------------------------------- 15.48/5.61 15.48/5.61 (30) 15.48/5.61 Obligation: 15.48/5.61 SCC of termination graph based on JBC Program. 15.48/5.61 SCC contains nodes from the following methods: Test5.main([Ljava/lang/String;)V 15.48/5.61 SCC calls the following helper methods: Test5.length(LList;)I, Test5.test(LList;LList;LList;)V 15.48/5.61 Performed SCC analyses: 15.48/5.61 *Used field analysis yielded the following read fields: 15.48/5.61 *List: [tail] 15.48/5.61 *Marker field analysis yielded the following relations that could be markers: 15.48/5.61 15.48/5.61 ---------------------------------------- 15.48/5.61 15.48/5.61 (31) SCCToIRSProof (SOUND) 15.48/5.61 Transformed FIGraph SCCs to intTRSs. Log: 15.48/5.61 Generated rules. Obtained 136 IRulesP rules: 15.48/5.61 f5827_0_main_InvokeMethod(EOS(STATIC_5827), o1426, o1427, o1428, o1426) -> f5828_0_length_ConstantStackPush(EOS(STATIC_5828), o1426, o1426) :|: TRUE 15.48/5.61 f5827_0_main_InvokeMethod(EOS(STATIC_5827), o1426, o1427, o1428, o1426) -> f5828_1_length_ConstantStackPush(EOS(STATIC_5828), o1426, o1427, o1428, o1426) :|: TRUE 15.48/5.61 f5828_0_length_ConstantStackPush(EOS(STATIC_5828), o1426, o1426) -> f6216_0_length_ConstantStackPush(EOS(STATIC_6216), o1426, o1426) :|: TRUE 15.48/5.61 f5830_0_length_Return(EOS(STATIC_5830), o1444, o1427, o1428, i612) -> f5831_0_main_LE(EOS(STATIC_5831), o1444, o1427, o1428, i612) :|: TRUE 15.48/5.61 f5831_0_main_LE(EOS(STATIC_5831), o1444, o1427, o1428, i613) -> f5833_0_main_LE(EOS(STATIC_5833), o1444, o1427, o1428, i613) :|: TRUE 15.48/5.61 f5833_0_main_LE(EOS(STATIC_5833), o1444, o1427, o1428, i613) -> f5835_0_main_Load(EOS(STATIC_5835), o1444, o1427, o1428) :|: i613 > 0 15.48/5.61 f5835_0_main_Load(EOS(STATIC_5835), o1444, o1427, o1428) -> f5837_0_main_Store(EOS(STATIC_5837), o1427, o1428, o1444) :|: TRUE 15.48/5.61 f5837_0_main_Store(EOS(STATIC_5837), o1427, o1428, o1444) -> f5838_0_main_Load(EOS(STATIC_5838), o1427, o1428, o1444) :|: TRUE 15.48/5.61 f5838_0_main_Load(EOS(STATIC_5838), o1427, o1428, o1444) -> f5839_0_main_Store(EOS(STATIC_5839), o1428, o1444, o1427) :|: TRUE 15.48/5.61 f5839_0_main_Store(EOS(STATIC_5839), o1428, o1444, o1427) -> f5840_0_main_Load(EOS(STATIC_5840), o1427, o1428, o1444) :|: TRUE 15.48/5.61 f5840_0_main_Load(EOS(STATIC_5840), o1427, o1428, o1444) -> f5841_0_main_Store(EOS(STATIC_5841), o1427, o1444, o1428) :|: TRUE 15.48/5.61 f5841_0_main_Store(EOS(STATIC_5841), o1427, o1444, o1428) -> f5842_0_main_Load(EOS(STATIC_5842), o1427, o1428, o1444) :|: TRUE 15.48/5.61 f5842_0_main_Load(EOS(STATIC_5842), o1427, o1428, o1444) -> f5843_0_main_Store(EOS(STATIC_5843), o1427, o1428, o1444, o1444) :|: TRUE 15.48/5.61 f5843_0_main_Store(EOS(STATIC_5843), o1427, o1428, o1444, o1444) -> f5844_0_main_Load(EOS(STATIC_5844), o1427, o1428, o1444, o1444) :|: TRUE 15.48/5.61 f5844_0_main_Load(EOS(STATIC_5844), o1427, o1428, o1444, o1444) -> f5845_0_main_InvokeMethod(EOS(STATIC_5845), o1427, o1428, o1444, o1444, o1428) :|: TRUE 15.48/5.61 f5845_0_main_InvokeMethod(EOS(STATIC_5845), o1427, o1428, o1444, o1444, o1428) -> f5846_0_length_ConstantStackPush(EOS(STATIC_5846), o1428, o1428) :|: TRUE 15.48/5.61 f5845_0_main_InvokeMethod(EOS(STATIC_5845), o1427, o1428, o1444, o1444, o1428) -> f5846_1_length_ConstantStackPush(EOS(STATIC_5846), o1427, o1428, o1444, o1444, o1428) :|: TRUE 15.48/5.61 f5846_0_length_ConstantStackPush(EOS(STATIC_5846), o1428, o1428) -> f6252_0_length_ConstantStackPush(EOS(STATIC_6252), o1428, o1428) :|: TRUE 15.48/5.61 f5848_0_length_Return(EOS(STATIC_5848), o1427, o1449, o1444, o1444, i614) -> f5849_0_main_ConstantStackPush(EOS(STATIC_5849), o1427, o1449, o1444, o1444, i614) :|: TRUE 15.48/5.61 f5849_0_main_ConstantStackPush(EOS(STATIC_5849), o1427, o1449, o1444, o1444, i614) -> f5850_0_main_IntArithmetic(EOS(STATIC_5850), o1427, o1449, o1444, o1444, i614, 3) :|: TRUE 15.48/5.61 f5850_0_main_IntArithmetic(EOS(STATIC_5850), o1427, o1449, o1444, o1444, i614, matching1) -> f5851_0_main_NE(EOS(STATIC_5851), o1427, o1449, o1444, o1444, i614 % 3) :|: TRUE && matching1 = 3 15.48/5.61 f5851_0_main_NE(EOS(STATIC_5851), o1427, o1449, o1444, o1444, i616) -> f5852_0_main_NE(EOS(STATIC_5852), o1427, o1449, o1444, o1444, i616) :|: TRUE 15.48/5.61 f5851_0_main_NE(EOS(STATIC_5851), o1427, o1449, o1444, o1444, matching1) -> f5853_0_main_NE(EOS(STATIC_5853), o1427, o1449, o1444, o1444, 0) :|: TRUE && matching1 = 0 15.48/5.61 f5852_0_main_NE(EOS(STATIC_5852), o1427, o1449, o1444, o1444, i616) -> f5854_0_main_Load(EOS(STATIC_5854), o1427, o1449, o1444) :|: i616 > 0 15.48/5.61 f5854_0_main_Load(EOS(STATIC_5854), o1427, o1449, o1444) -> f5856_0_main_InvokeMethod(EOS(STATIC_5856), o1427, o1449, o1444, o1444) :|: TRUE 15.48/5.61 f5856_0_main_InvokeMethod(EOS(STATIC_5856), o1427, o1449, o1444, o1444) -> f5858_0_length_ConstantStackPush(EOS(STATIC_5858), o1444, o1444) :|: TRUE 15.48/5.61 f5856_0_main_InvokeMethod(EOS(STATIC_5856), o1427, o1449, o1444, o1444) -> f5858_1_length_ConstantStackPush(EOS(STATIC_5858), o1427, o1449, o1444, o1444) :|: TRUE 15.48/5.61 f5858_0_length_ConstantStackPush(EOS(STATIC_5858), o1444, o1444) -> f6278_0_length_ConstantStackPush(EOS(STATIC_6278), o1444, o1444) :|: TRUE 15.48/5.61 f5868_0_length_Return(EOS(STATIC_5868), o1427, o1449, o1456, i617) -> f5870_0_main_ConstantStackPush(EOS(STATIC_5870), o1427, o1449, o1456, i617) :|: TRUE 15.48/5.61 f5870_0_main_ConstantStackPush(EOS(STATIC_5870), o1427, o1449, o1456, i617) -> f5873_0_main_IntArithmetic(EOS(STATIC_5873), o1427, o1449, o1456, i617, 5) :|: TRUE 15.48/5.61 f5873_0_main_IntArithmetic(EOS(STATIC_5873), o1427, o1449, o1456, i617, matching1) -> f5876_0_main_NE(EOS(STATIC_5876), o1427, o1449, o1456, i617 % 5) :|: TRUE && matching1 = 5 15.48/5.61 f5876_0_main_NE(EOS(STATIC_5876), o1427, o1449, o1456, i619) -> f5878_0_main_NE(EOS(STATIC_5878), o1427, o1449, o1456, i619) :|: TRUE 15.48/5.61 f5876_0_main_NE(EOS(STATIC_5876), o1427, o1449, o1456, matching1) -> f5879_0_main_NE(EOS(STATIC_5879), o1427, o1449, o1456, 0) :|: TRUE && matching1 = 0 15.48/5.61 f5878_0_main_NE(EOS(STATIC_5878), o1427, o1449, o1456, i619) -> f5882_0_main_Load(EOS(STATIC_5882), o1427, o1449, o1456) :|: i619 > 0 15.48/5.61 f5882_0_main_Load(EOS(STATIC_5882), o1427, o1449, o1456) -> f5886_0_main_InvokeMethod(EOS(STATIC_5886), o1427, o1449, o1456, o1427) :|: TRUE 15.48/5.61 f5886_0_main_InvokeMethod(EOS(STATIC_5886), o1427, o1449, o1456, o1427) -> f5888_0_length_ConstantStackPush(EOS(STATIC_5888), o1427, o1427) :|: TRUE 15.48/5.61 f5886_0_main_InvokeMethod(EOS(STATIC_5886), o1427, o1449, o1456, o1427) -> f5888_1_length_ConstantStackPush(EOS(STATIC_5888), o1427, o1449, o1456, o1427) :|: TRUE 15.48/5.61 f5888_0_length_ConstantStackPush(EOS(STATIC_5888), o1427, o1427) -> f6304_0_length_ConstantStackPush(EOS(STATIC_6304), o1427, o1427) :|: TRUE 15.48/5.61 f5906_0_length_Return(EOS(STATIC_5906), o1487, o1449, o1456, i621) -> f5910_0_main_Load(EOS(STATIC_5910), o1487, o1449, o1456, i621) :|: TRUE 15.48/5.61 f5910_0_main_Load(EOS(STATIC_5910), o1487, o1449, o1456, i621) -> f5914_0_main_InvokeMethod(EOS(STATIC_5914), o1487, o1449, o1456, i621, o1449) :|: TRUE 15.48/5.61 f5914_0_main_InvokeMethod(EOS(STATIC_5914), o1487, o1449, o1456, i621, o1449) -> f5918_0_length_ConstantStackPush(EOS(STATIC_5918), o1449, o1449) :|: TRUE 15.48/5.61 f5914_0_main_InvokeMethod(EOS(STATIC_5914), o1487, o1449, o1456, i621, o1449) -> f5918_1_length_ConstantStackPush(EOS(STATIC_5918), o1487, o1449, o1456, i621, o1449) :|: TRUE 15.48/5.61 f5918_0_length_ConstantStackPush(EOS(STATIC_5918), o1449, o1449) -> f6320_0_length_ConstantStackPush(EOS(STATIC_6320), o1449, o1449) :|: TRUE 15.48/5.61 f5928_0_length_Return(EOS(STATIC_5928), o1487, o1507, o1456, i621, i625) -> f5930_0_main_LE(EOS(STATIC_5930), o1487, o1507, o1456, i621, i625) :|: TRUE 15.48/5.61 f5930_0_main_LE(EOS(STATIC_5930), o1487, o1507, o1456, i621, i625) -> f5932_0_main_LE(EOS(STATIC_5932), o1487, o1507, o1456, i621, i625) :|: i621 <= i625 15.48/5.61 f5930_0_main_LE(EOS(STATIC_5930), o1487, o1507, o1456, i621, i625) -> f5933_0_main_LE(EOS(STATIC_5933), o1487, o1507, o1456, i621, i625) :|: i621 > i625 15.48/5.61 f5932_0_main_LE(EOS(STATIC_5932), o1487, o1507, o1456, i621, i625) -> f5935_0_main_Load(EOS(STATIC_5935), o1487, o1507, o1456) :|: i621 <= i625 15.48/5.61 f5935_0_main_Load(EOS(STATIC_5935), o1487, o1507, o1456) -> f5938_0_main_InvokeMethod(EOS(STATIC_5938), o1487, o1507, o1456, o1487) :|: TRUE 15.48/5.61 f5938_0_main_InvokeMethod(EOS(STATIC_5938), o1487, o1507, o1456, o1487) -> f5941_0_length_ConstantStackPush(EOS(STATIC_5941), o1487, o1487) :|: TRUE 15.48/5.61 f5938_0_main_InvokeMethod(EOS(STATIC_5938), o1487, o1507, o1456, o1487) -> f5941_1_length_ConstantStackPush(EOS(STATIC_5941), o1487, o1507, o1456, o1487) :|: TRUE 15.48/5.61 f5941_0_length_ConstantStackPush(EOS(STATIC_5941), o1487, o1487) -> f6342_0_length_ConstantStackPush(EOS(STATIC_6342), o1487, o1487) :|: TRUE 15.48/5.61 f5956_0_length_Return(EOS(STATIC_5956), o1532, o1507, o1456, i626) -> f5959_0_main_Load(EOS(STATIC_5959), o1532, o1507, o1456, i626) :|: TRUE 15.48/5.61 f5959_0_main_Load(EOS(STATIC_5959), o1532, o1507, o1456, i626) -> f5963_0_main_InvokeMethod(EOS(STATIC_5963), o1532, o1507, o1456, i626, o1507) :|: TRUE 15.48/5.61 f5963_0_main_InvokeMethod(EOS(STATIC_5963), o1532, o1507, o1456, i626, o1507) -> f5966_0_length_ConstantStackPush(EOS(STATIC_5966), o1507, o1507) :|: TRUE 15.48/5.61 f5963_0_main_InvokeMethod(EOS(STATIC_5963), o1532, o1507, o1456, i626, o1507) -> f5966_1_length_ConstantStackPush(EOS(STATIC_5966), o1532, o1507, o1456, i626, o1507) :|: TRUE 15.48/5.61 f5966_0_length_ConstantStackPush(EOS(STATIC_5966), o1507, o1507) -> f6358_0_length_ConstantStackPush(EOS(STATIC_6358), o1507, o1507) :|: TRUE 15.48/5.61 f5976_0_length_Return(EOS(STATIC_5976), o1532, o1546, o1456, i626, i627) -> f5979_0_main_NE(EOS(STATIC_5979), o1532, o1546, o1456, i626, i627) :|: TRUE 15.48/5.61 f5979_0_main_NE(EOS(STATIC_5979), o1532, o1546, o1456, i626, i627) -> f5981_0_main_NE(EOS(STATIC_5981), o1532, o1546, o1456, i626, i627) :|: !(i626 = i627) 15.48/5.61 f5979_0_main_NE(EOS(STATIC_5979), o1532, o1546, o1456, i627, i627) -> f5982_0_main_NE(EOS(STATIC_5982), o1532, o1546, o1456, i627, i627) :|: i626 = i627 15.48/5.61 f5981_0_main_NE(EOS(STATIC_5981), o1532, o1546, o1456, i626, i627) -> f5984_0_main_Load(EOS(STATIC_5984), o1532, o1546, o1456) :|: !(i626 = i627) 15.48/5.61 f5984_0_main_Load(EOS(STATIC_5984), o1532, o1546, o1456) -> f5987_0_main_InvokeMethod(EOS(STATIC_5987), o1532, o1546, o1456) :|: TRUE 15.48/5.61 f5987_0_main_InvokeMethod(EOS(STATIC_5987), o1532, o1546, java.lang.Object(o1574sub)) -> f5991_0_main_InvokeMethod(EOS(STATIC_5991), o1532, o1546, java.lang.Object(o1574sub)) :|: TRUE 15.48/5.61 f5991_0_main_InvokeMethod(EOS(STATIC_5991), o1532, o1546, java.lang.Object(o1574sub)) -> f5997_0_getTail_Load(EOS(STATIC_5997), o1532, o1546, java.lang.Object(o1574sub)) :|: TRUE 15.48/5.61 f5997_0_getTail_Load(EOS(STATIC_5997), o1532, o1546, java.lang.Object(o1574sub)) -> f6004_0_getTail_FieldAccess(EOS(STATIC_6004), o1532, o1546, java.lang.Object(o1574sub)) :|: TRUE 15.48/5.61 f6004_0_getTail_FieldAccess(EOS(STATIC_6004), o1532, o1546, java.lang.Object(List(EOC, o1619))) -> f6009_0_getTail_FieldAccess(EOS(STATIC_6009), o1532, o1546, java.lang.Object(List(EOC, o1619))) :|: TRUE 15.48/5.61 f6009_0_getTail_FieldAccess(EOS(STATIC_6009), o1532, o1546, java.lang.Object(List(EOC, o1619))) -> f6014_0_getTail_Return(EOS(STATIC_6014), o1532, o1546, o1619) :|: TRUE 15.48/5.61 f6014_0_getTail_Return(EOS(STATIC_6014), o1532, o1546, o1619) -> f6017_0_main_Store(EOS(STATIC_6017), o1532, o1546, o1619) :|: TRUE 15.48/5.61 f6017_0_main_Store(EOS(STATIC_6017), o1532, o1546, o1619) -> f6022_0_main_Load(EOS(STATIC_6022), o1532, o1546, o1619) :|: TRUE 15.48/5.61 f6022_0_main_Load(EOS(STATIC_6022), o1532, o1546, o1619) -> f5967_0_main_Load(EOS(STATIC_5967), o1532, o1546, o1619) :|: TRUE 15.48/5.61 f5967_0_main_Load(EOS(STATIC_5967), o1535, o1507, o1456) -> f5969_0_main_Load(EOS(STATIC_5969), o1535, o1507, o1456, o1535) :|: TRUE 15.48/5.61 f5969_0_main_Load(EOS(STATIC_5969), o1535, o1507, o1456, o1535) -> f5971_0_main_Load(EOS(STATIC_5971), o1535, o1507, o1456, o1535, o1507) :|: TRUE 15.48/5.61 f5971_0_main_Load(EOS(STATIC_5971), o1535, o1507, o1456, o1535, o1507) -> f5973_0_main_InvokeMethod(EOS(STATIC_5973), o1535, o1507, o1456, o1535, o1507, o1456) :|: TRUE 15.48/5.61 f5973_0_main_InvokeMethod(EOS(STATIC_5973), o1535, o1507, o1456, o1535, o1507, o1456) -> f5974_0_test_Load(EOS(STATIC_5974), o1535, o1507, o1456, o1535, o1507, o1456) :|: TRUE 15.48/5.61 f5973_0_main_InvokeMethod(EOS(STATIC_5973), o1535, o1507, o1456, o1535, o1507, o1456) -> f5974_1_test_Load(EOS(STATIC_5974), o1535, o1507, o1456, o1535, o1507, o1456) :|: TRUE 15.48/5.61 f5974_0_test_Load(EOS(STATIC_5974), o1535, o1507, o1456, o1535, o1507, o1456) -> f6402_0_test_Load(EOS(STATIC_6402), o1535, o1507, o1456, o1535, o1507, o1456) :|: TRUE 15.48/5.61 f5989_0_test_Return(EOS(STATIC_5989), o1569, o1567, o1565) -> f5995_0_main_JMP(EOS(STATIC_5995), o1569, o1567, o1565) :|: TRUE 15.48/5.61 f5995_0_main_JMP(EOS(STATIC_5995), o1569, o1567, o1565) -> f6001_0_main_Load(EOS(STATIC_6001), o1569, o1567, o1565) :|: TRUE 15.48/5.61 f6001_0_main_Load(EOS(STATIC_6001), o1569, o1567, o1565) -> f5825_0_main_Load(EOS(STATIC_5825), o1569, o1567, o1565) :|: TRUE 15.48/5.61 f5825_0_main_Load(EOS(STATIC_5825), o1426, o1427, o1428) -> f5827_0_main_InvokeMethod(EOS(STATIC_5827), o1426, o1427, o1428, o1426) :|: TRUE 15.48/5.61 f5982_0_main_NE(EOS(STATIC_5982), o1532, o1546, o1456, i627, i627) -> f5985_0_main_Load(EOS(STATIC_5985), o1532, o1546, o1456) :|: TRUE 15.48/5.61 f5985_0_main_Load(EOS(STATIC_5985), o1532, o1546, o1456) -> f5988_0_main_InvokeMethod(EOS(STATIC_5988), o1532, o1456, o1546) :|: TRUE 15.48/5.61 f5988_0_main_InvokeMethod(EOS(STATIC_5988), o1532, o1456, java.lang.Object(o1575sub)) -> f5993_0_main_InvokeMethod(EOS(STATIC_5993), o1532, o1456, java.lang.Object(o1575sub)) :|: TRUE 15.48/5.61 f5993_0_main_InvokeMethod(EOS(STATIC_5993), o1532, o1456, java.lang.Object(o1575sub)) -> f5999_0_getTail_Load(EOS(STATIC_5999), o1532, o1456, java.lang.Object(o1575sub)) :|: TRUE 15.48/5.61 f5999_0_getTail_Load(EOS(STATIC_5999), o1532, o1456, java.lang.Object(o1575sub)) -> f6006_0_getTail_FieldAccess(EOS(STATIC_6006), o1532, o1456, java.lang.Object(o1575sub)) :|: TRUE 15.48/5.61 f6006_0_getTail_FieldAccess(EOS(STATIC_6006), o1532, o1456, java.lang.Object(List(EOC, o1622))) -> f6011_0_getTail_FieldAccess(EOS(STATIC_6011), o1532, o1456, java.lang.Object(List(EOC, o1622))) :|: TRUE 15.48/5.61 f6011_0_getTail_FieldAccess(EOS(STATIC_6011), o1532, o1456, java.lang.Object(List(EOC, o1622))) -> f6015_0_getTail_Return(EOS(STATIC_6015), o1532, o1456, o1622) :|: TRUE 15.48/5.61 f6015_0_getTail_Return(EOS(STATIC_6015), o1532, o1456, o1622) -> f6019_0_main_Store(EOS(STATIC_6019), o1532, o1456, o1622) :|: TRUE 15.48/5.61 f6019_0_main_Store(EOS(STATIC_6019), o1532, o1456, o1622) -> f6024_0_main_JMP(EOS(STATIC_6024), o1532, o1622, o1456) :|: TRUE 15.48/5.61 f6024_0_main_JMP(EOS(STATIC_6024), o1532, o1622, o1456) -> f6026_0_main_Load(EOS(STATIC_6026), o1532, o1622, o1456) :|: TRUE 15.48/5.61 f6026_0_main_Load(EOS(STATIC_6026), o1532, o1622, o1456) -> f5967_0_main_Load(EOS(STATIC_5967), o1532, o1622, o1456) :|: TRUE 15.48/5.61 f5933_0_main_LE(EOS(STATIC_5933), o1487, o1507, o1456, i621, i625) -> f5936_0_main_Load(EOS(STATIC_5936), o1487, o1507, o1456) :|: i621 > i625 15.48/5.61 f5936_0_main_Load(EOS(STATIC_5936), o1487, o1507, o1456) -> f5939_0_main_InvokeMethod(EOS(STATIC_5939), o1507, o1456, o1487) :|: TRUE 15.48/5.61 f5939_0_main_InvokeMethod(EOS(STATIC_5939), o1507, o1456, java.lang.Object(o1514sub)) -> f5942_0_main_InvokeMethod(EOS(STATIC_5942), o1507, o1456, java.lang.Object(o1514sub)) :|: TRUE 15.48/5.61 f5942_0_main_InvokeMethod(EOS(STATIC_5942), o1507, o1456, java.lang.Object(o1514sub)) -> f5946_0_getTail_Load(EOS(STATIC_5946), o1507, o1456, java.lang.Object(o1514sub)) :|: TRUE 15.48/5.61 f5946_0_getTail_Load(EOS(STATIC_5946), o1507, o1456, java.lang.Object(o1514sub)) -> f5950_0_getTail_FieldAccess(EOS(STATIC_5950), o1507, o1456, java.lang.Object(o1514sub)) :|: TRUE 15.48/5.61 f5950_0_getTail_FieldAccess(EOS(STATIC_5950), o1507, o1456, java.lang.Object(List(EOC, o1535))) -> f5953_0_getTail_FieldAccess(EOS(STATIC_5953), o1507, o1456, java.lang.Object(List(EOC, o1535))) :|: TRUE 15.48/5.61 f5953_0_getTail_FieldAccess(EOS(STATIC_5953), o1507, o1456, java.lang.Object(List(EOC, o1535))) -> f5957_0_getTail_Return(EOS(STATIC_5957), o1507, o1456, o1535) :|: TRUE 15.48/5.61 f5957_0_getTail_Return(EOS(STATIC_5957), o1507, o1456, o1535) -> f5960_0_main_Store(EOS(STATIC_5960), o1507, o1456, o1535) :|: TRUE 15.48/5.61 f5960_0_main_Store(EOS(STATIC_5960), o1507, o1456, o1535) -> f5964_0_main_JMP(EOS(STATIC_5964), o1535, o1507, o1456) :|: TRUE 15.48/5.61 f5964_0_main_JMP(EOS(STATIC_5964), o1535, o1507, o1456) -> f5967_0_main_Load(EOS(STATIC_5967), o1535, o1507, o1456) :|: TRUE 15.48/5.61 f5879_0_main_NE(EOS(STATIC_5879), o1427, o1449, o1456, matching1) -> f5883_0_main_Load(EOS(STATIC_5883), o1427, o1449, o1456) :|: TRUE && matching1 = 0 15.48/5.61 f5883_0_main_Load(EOS(STATIC_5883), o1427, o1449, o1456) -> f5887_0_main_InvokeMethod(EOS(STATIC_5887), o1427, o1449, o1456) :|: TRUE 15.48/5.61 f5887_0_main_InvokeMethod(EOS(STATIC_5887), o1427, o1449, java.lang.Object(o1466sub)) -> f5889_0_main_InvokeMethod(EOS(STATIC_5889), o1427, o1449, java.lang.Object(o1466sub)) :|: TRUE 15.48/5.61 f5889_0_main_InvokeMethod(EOS(STATIC_5889), o1427, o1449, java.lang.Object(o1466sub)) -> f5893_0_getTail_Load(EOS(STATIC_5893), o1427, o1449, java.lang.Object(o1466sub)) :|: TRUE 15.48/5.61 f5893_0_getTail_Load(EOS(STATIC_5893), o1427, o1449, java.lang.Object(o1466sub)) -> f5898_0_getTail_FieldAccess(EOS(STATIC_5898), o1427, o1449, java.lang.Object(o1466sub)) :|: TRUE 15.48/5.61 f5898_0_getTail_FieldAccess(EOS(STATIC_5898), o1427, o1449, java.lang.Object(List(EOC, o1490))) -> f5902_0_getTail_FieldAccess(EOS(STATIC_5902), o1427, o1449, java.lang.Object(List(EOC, o1490))) :|: TRUE 15.48/5.61 f5902_0_getTail_FieldAccess(EOS(STATIC_5902), o1427, o1449, java.lang.Object(List(EOC, o1490))) -> f5907_0_getTail_Return(EOS(STATIC_5907), o1427, o1449, o1490) :|: TRUE 15.48/5.61 f5907_0_getTail_Return(EOS(STATIC_5907), o1427, o1449, o1490) -> f5911_0_main_Store(EOS(STATIC_5911), o1427, o1449, o1490) :|: TRUE 15.48/5.61 f5911_0_main_Store(EOS(STATIC_5911), o1427, o1449, o1490) -> f5915_0_main_Load(EOS(STATIC_5915), o1427, o1449, o1490) :|: TRUE 15.48/5.61 f5915_0_main_Load(EOS(STATIC_5915), o1427, o1449, o1490) -> f5882_0_main_Load(EOS(STATIC_5882), o1427, o1449, o1490) :|: TRUE 15.48/5.61 f5853_0_main_NE(EOS(STATIC_5853), o1427, o1449, o1444, o1444, matching1) -> f5855_0_main_Load(EOS(STATIC_5855), o1427, o1449, o1444, o1444) :|: TRUE && matching1 = 0 15.48/5.61 f5855_0_main_Load(EOS(STATIC_5855), o1427, o1449, o1444, o1444) -> f5857_0_main_InvokeMethod(EOS(STATIC_5857), o1427, o1449, o1444, o1444) :|: TRUE 15.48/5.61 f5857_0_main_InvokeMethod(EOS(STATIC_5857), o1427, o1449, java.lang.Object(o1450sub), java.lang.Object(o1450sub)) -> f5859_0_main_InvokeMethod(EOS(STATIC_5859), o1427, o1449, java.lang.Object(o1450sub), java.lang.Object(o1450sub)) :|: TRUE 15.48/5.61 f5859_0_main_InvokeMethod(EOS(STATIC_5859), o1427, o1449, java.lang.Object(o1450sub), java.lang.Object(o1450sub)) -> f5862_0_getTail_Load(EOS(STATIC_5862), o1427, o1449, java.lang.Object(o1450sub), java.lang.Object(o1450sub)) :|: TRUE 15.48/5.61 f5862_0_getTail_Load(EOS(STATIC_5862), o1427, o1449, java.lang.Object(o1450sub), java.lang.Object(o1450sub)) -> f5864_0_getTail_FieldAccess(EOS(STATIC_5864), o1427, o1449, java.lang.Object(o1450sub), java.lang.Object(o1450sub)) :|: TRUE 15.48/5.61 f5864_0_getTail_FieldAccess(EOS(STATIC_5864), o1427, o1449, java.lang.Object(List(EOC, o1459)), java.lang.Object(List(EOC, o1459))) -> f5866_0_getTail_FieldAccess(EOS(STATIC_5866), o1427, o1449, java.lang.Object(List(EOC, o1459)), java.lang.Object(List(EOC, o1459))) :|: TRUE 15.48/5.61 f5866_0_getTail_FieldAccess(EOS(STATIC_5866), o1427, o1449, java.lang.Object(List(EOC, o1459)), java.lang.Object(List(EOC, o1459))) -> f5869_0_getTail_Return(EOS(STATIC_5869), o1427, o1449, java.lang.Object(List(EOC, o1459))) :|: TRUE 15.48/5.61 f5869_0_getTail_Return(EOS(STATIC_5869), o1427, o1449, java.lang.Object(List(EOC, o1459))) -> f5871_0_main_Store(EOS(STATIC_5871), o1427, o1449, java.lang.Object(List(EOC, o1459))) :|: TRUE 15.48/5.61 f5871_0_main_Store(EOS(STATIC_5871), o1427, o1449, java.lang.Object(List(EOC, o1459))) -> f5874_0_main_Load(EOS(STATIC_5874), o1427, o1449, java.lang.Object(List(EOC, o1459))) :|: TRUE 15.48/5.61 f5874_0_main_Load(EOS(STATIC_5874), o1427, o1449, java.lang.Object(List(EOC, o1459))) -> f5877_0_main_InvokeMethod(EOS(STATIC_5877), o1427, o1449, java.lang.Object(List(EOC, o1459)), java.lang.Object(List(EOC, o1459))) :|: TRUE 15.48/5.61 f5877_0_main_InvokeMethod(EOS(STATIC_5877), o1427, o1449, java.lang.Object(List(EOC, o1459)), java.lang.Object(List(EOC, o1459))) -> f5880_0_length_ConstantStackPush(EOS(STATIC_5880), java.lang.Object(List(EOC, o1459)), java.lang.Object(List(EOC, o1459))) :|: TRUE 15.48/5.61 f5877_0_main_InvokeMethod(EOS(STATIC_5877), o1427, o1449, java.lang.Object(List(EOC, o1459)), java.lang.Object(List(EOC, o1459))) -> f5880_1_length_ConstantStackPush(EOS(STATIC_5880), o1427, o1449, java.lang.Object(List(EOC, o1459)), java.lang.Object(List(EOC, o1459))) :|: TRUE 15.48/5.61 f5880_0_length_ConstantStackPush(EOS(STATIC_5880), java.lang.Object(List(EOC, o1459)), java.lang.Object(List(EOC, o1459))) -> f6504_0_length_ConstantStackPush(EOS(STATIC_6504), java.lang.Object(List(EOC, o1459)), java.lang.Object(List(EOC, o1459))) :|: TRUE 15.48/5.61 f5896_0_length_Return(EOS(STATIC_5896), o1427, o1449, java.lang.Object(List(EOC, o1459)), i620) -> f5900_0_main_ConstantStackPush(EOS(STATIC_5900), o1427, o1449, java.lang.Object(List(EOC, o1459)), i620) :|: TRUE 15.48/5.61 f5900_0_main_ConstantStackPush(EOS(STATIC_5900), o1427, o1449, java.lang.Object(List(EOC, o1459)), i620) -> f5904_0_main_IntArithmetic(EOS(STATIC_5904), o1427, o1449, java.lang.Object(List(EOC, o1459)), i620, 5) :|: TRUE 15.48/5.61 f5904_0_main_IntArithmetic(EOS(STATIC_5904), o1427, o1449, java.lang.Object(List(EOC, o1459)), i620, matching1) -> f5908_0_main_NE(EOS(STATIC_5908), o1427, o1449, java.lang.Object(List(EOC, o1459)), i620 % 5) :|: TRUE && matching1 = 5 15.48/5.61 f5908_0_main_NE(EOS(STATIC_5908), o1427, o1449, java.lang.Object(List(EOC, o1459)), i622) -> f5876_0_main_NE(EOS(STATIC_5876), o1427, o1449, java.lang.Object(List(EOC, o1459)), i622) :|: TRUE 15.48/5.61 f5828_1_length_ConstantStackPush(EOS(STATIC_5828), o1444, o1427, o1428, o1444) -> f5830_0_length_Return(EOS(STATIC_5830), o1444, o1427, o1428, i612) :|: TRUE 15.48/5.61 f5846_1_length_ConstantStackPush(EOS(STATIC_5846), o1427, o1449, o1444, o1444, o1449) -> f5848_0_length_Return(EOS(STATIC_5848), o1427, o1449, o1444, o1444, i614) :|: TRUE 15.48/5.61 f5858_1_length_ConstantStackPush(EOS(STATIC_5858), o1427, o1449, o1456, o1456) -> f5868_0_length_Return(EOS(STATIC_5868), o1427, o1449, o1456, i617) :|: TRUE 15.48/5.61 f5888_1_length_ConstantStackPush(EOS(STATIC_5888), o1487, o1449, o1456, o1487) -> f5906_0_length_Return(EOS(STATIC_5906), o1487, o1449, o1456, i621) :|: TRUE 15.48/5.61 f5918_1_length_ConstantStackPush(EOS(STATIC_5918), o1487, o1507, o1456, i621, o1507) -> f5928_0_length_Return(EOS(STATIC_5928), o1487, o1507, o1456, i621, i625) :|: TRUE 15.48/5.61 f5941_1_length_ConstantStackPush(EOS(STATIC_5941), o1532, o1507, o1456, o1532) -> f5956_0_length_Return(EOS(STATIC_5956), o1532, o1507, o1456, i626) :|: TRUE 15.48/5.61 f5966_1_length_ConstantStackPush(EOS(STATIC_5966), o1532, o1546, o1456, i626, o1546) -> f5976_0_length_Return(EOS(STATIC_5976), o1532, o1546, o1456, i626, i627) :|: TRUE 15.48/5.61 f5974_1_test_Load(EOS(STATIC_5974), o1569, o1567, o1565, o1569, o1567, o1565) -> f5989_0_test_Return(EOS(STATIC_5989), o1569, o1567, o1565) :|: TRUE 15.48/5.61 f5880_1_length_ConstantStackPush(EOS(STATIC_5880), o1427, o1449, java.lang.Object(List(EOC, o1459)), java.lang.Object(List(EOC, o1459))) -> f5896_0_length_Return(EOS(STATIC_5896), o1427, o1449, java.lang.Object(List(EOC, o1459)), i620) :|: TRUE 15.48/5.61 Combined rules. Obtained 18 IRulesP rules: 15.48/5.61 f5973_0_main_InvokeMethod(EOS(STATIC_5973), o1535:0, o1507:0, o1456:0, o1535:0, o1507:0, o1456:0) -> f5973_0_main_InvokeMethod'(EOS(STATIC_5973), o1535:0, o1507:0, o1456:0, o1535:0, o1507:0, o1456:0) :|: TRUE 15.48/5.61 f5973_0_main_InvokeMethod(EOS(STATIC_5973), java.lang.Object(List(EOC, o1459:0)), o1507:0, o1456:0, java.lang.Object(List(EOC, o1459:0)), o1507:0, o1456:0) -> f5973_0_main_InvokeMethod'(EOS(STATIC_5973), java.lang.Object(List(EOC, o1459:0)), o1507:0, o1456:0, java.lang.Object(List(EOC, o1459:0)), o1507:0, o1456:0) :|: TRUE 15.48/5.61 f5973_0_main_InvokeMethod'(EOS(STATIC_5973), java.lang.Object(List(EOC, o1459:0)), o1507:0, o1456:0, java.lang.Object(List(EOC, o1459:0)), o1507:0, o1456:0) -> f5876_0_main_NE(EOS(STATIC_5876), o1507:0, o1456:0, java.lang.Object(List(EOC, o1459:0)), i620:0 - 5 * div) :|: i614:0 - 3 * div1 = 0 && i612:0 > 0 && i620:0 - 5 * div > -5 && i620:0 - 5 * div < 5 && i614:0 - 3 * div1 < 3 && i614:0 - 3 * div1 > -3 15.48/5.61 f5876_0_main_NE(EOS(STATIC_5876), o1427:0, o1449:0, java.lang.Object(List(EOC, o1490:0)), 0) -> f5886_0_main_InvokeMethod(EOS(STATIC_5886), o1427:0, o1449:0, o1490:0, o1427:0) :|: TRUE 15.48/5.61 f5886_0_main_InvokeMethod(EOS(STATIC_5886), o1427:0, o1449:0, java.lang.Object(List(EOC, o1619:0)), o1427:0) -> f5973_0_main_InvokeMethod(EOS(STATIC_5973), o1427:0, o1449:0, o1619:0, o1427:0, o1449:0, o1619:0) :|: TRUE 15.48/5.61 f5886_0_main_InvokeMethod(EOS(STATIC_5886), java.lang.Object(List(EOC, o1535:0)), o1449:0, o1456:0, java.lang.Object(List(EOC, o1535:0))) -> f5973_0_main_InvokeMethod(EOS(STATIC_5973), o1535:0, o1449:0, o1456:0, o1535:0, o1449:0, o1456:0) :|: TRUE 15.48/5.61 f5886_0_main_InvokeMethod(EOS(STATIC_5886), o1427:0, java.lang.Object(List(EOC, o1622:0)), o1456:0, o1427:0) -> f5973_0_main_InvokeMethod(EOS(STATIC_5973), o1427:0, o1622:0, o1456:0, o1427:0, o1622:0, o1456:0) :|: TRUE 15.48/5.61 f5973_0_main_InvokeMethod'(EOS(STATIC_5973), o1535:0, o1507:0, o1456:0, o1535:0, o1507:0, o1456:0) -> f5876_0_main_NE(EOS(STATIC_5876), o1507:0, o1456:0, o1535:0, i617:0 - 5 * div) :|: i614:0 - 3 * div1 > 0 && i612:0 > 0 && i617:0 - 5 * div > -5 && i614:0 - 3 * div1 < 3 && i617:0 - 5 * div < 5 15.48/5.61 f5876_0_main_NE(EOS(STATIC_5876), o1427:0, o1449:0, o1456:0, i619:0) -> f5886_0_main_InvokeMethod(EOS(STATIC_5886), o1427:0, o1449:0, o1456:0, o1427:0) :|: i619:0 > 0 15.48/5.61 Removed following non-SCC rules: 15.48/5.61 f5886_0_main_InvokeMethod(EOS(STATIC_5886), o1427:0, o1449:0, o1456:0, o1427:0) -> f6304_0_length_ConstantStackPush(EOS(STATIC_6304), o1427:0, o1427:0) :|: TRUE 15.48/5.61 f5973_0_main_InvokeMethod(EOS(STATIC_5973), o1535:0, o1507:0, o1456:0, o1535:0, o1507:0, o1456:0) -> f6402_0_test_Load(EOS(STATIC_6402), o1535:0, o1507:0, o1456:0, o1535:0, o1507:0, o1456:0) :|: TRUE 15.48/5.61 f5973_0_main_InvokeMethod'(EOS(STATIC_5973), o1535:0, o1507:0, o1456:0, o1535:0, o1507:0, o1456:0) -> f6278_0_length_ConstantStackPush(EOS(STATIC_6278), o1535:0, o1535:0) :|: TRUE 15.48/5.61 f5973_0_main_InvokeMethod(EOS(STATIC_5973), o1535:0, o1507:0, o1456:0, o1535:0, o1507:0, o1456:0) -> f6216_0_length_ConstantStackPush(EOS(STATIC_6216), o1535:0, o1535:0) :|: TRUE 15.48/5.61 f5886_0_main_InvokeMethod(EOS(STATIC_5886), o1427:0, o1449:0, o1456:0, o1427:0) -> f6320_0_length_ConstantStackPush(EOS(STATIC_6320), o1449:0, o1449:0) :|: TRUE 15.48/5.61 f5886_0_main_InvokeMethod(EOS(STATIC_5886), o1427:0, o1449:0, o1456:0, o1427:0) -> f6358_0_length_ConstantStackPush(EOS(STATIC_6358), o1449:0, o1449:0) :|: TRUE 15.48/5.61 f5973_0_main_InvokeMethod(EOS(STATIC_5973), o1535:0, o1507:0, o1456:0, o1535:0, o1507:0, o1456:0) -> f6252_0_length_ConstantStackPush(EOS(STATIC_6252), o1456:0, o1456:0) :|: TRUE 15.48/5.61 f5973_0_main_InvokeMethod'(EOS(STATIC_5973), java.lang.Object(List(EOC, o1459:0)), o1507:0, o1456:0, java.lang.Object(List(EOC, o1459:0)), o1507:0, o1456:0) -> f6504_0_length_ConstantStackPush(EOS(STATIC_6504), java.lang.Object(List(EOC, o1459:0)), java.lang.Object(List(EOC, o1459:0))) :|: TRUE 15.48/5.61 f5886_0_main_InvokeMethod(EOS(STATIC_5886), o1427:0, o1449:0, o1456:0, o1427:0) -> f6342_0_length_ConstantStackPush(EOS(STATIC_6342), o1427:0, o1427:0) :|: TRUE 15.48/5.61 Filtered constant ground arguments: 15.48/5.61 f5973_0_main_InvokeMethod(x1, x2, x3, x4, x5, x6, x7) -> f5973_0_main_InvokeMethod(x2, x3, x4, x5, x6, x7) 15.48/5.61 f5973_0_main_InvokeMethod'(x1, x2, x3, x4, x5, x6, x7) -> f5973_0_main_InvokeMethod'(x2, x3, x4, x5, x6, x7) 15.48/5.61 f5876_0_main_NE(x1, x2, x3, x4, x5) -> f5876_0_main_NE(x2, x3, x4, x5) 15.48/5.61 f5886_0_main_InvokeMethod(x1, x2, x3, x4, x5) -> f5886_0_main_InvokeMethod(x2, x3, x4, x5) 15.48/5.61 List(x1, x2) -> List(x2) 15.48/5.61 Filtered duplicate arguments: 15.48/5.61 f5973_0_main_InvokeMethod(x1, x2, x3, x4, x5, x6) -> f5973_0_main_InvokeMethod(x4, x5, x6) 15.48/5.61 f5973_0_main_InvokeMethod'(x1, x2, x3, x4, x5, x6) -> f5973_0_main_InvokeMethod'(x4, x5, x6) 15.48/5.61 f5886_0_main_InvokeMethod(x1, x2, x3, x4) -> f5886_0_main_InvokeMethod(x2, x3, x4) 15.48/5.61 Finished conversion. Obtained 9 rules.P rules: 15.48/5.61 f5973_0_main_InvokeMethod(o1535:0, o1507:0, o1456:0) -> f5973_0_main_InvokeMethod'(o1535:0, o1507:0, o1456:0) :|: TRUE 15.48/5.61 f5973_0_main_InvokeMethod(java.lang.Object(List(o1459:0)), o1507:0, o1456:0) -> f5973_0_main_InvokeMethod'(java.lang.Object(List(o1459:0)), o1507:0, o1456:0) :|: TRUE 15.48/5.61 f5973_0_main_InvokeMethod'(java.lang.Object(List(o1459:0)), o1507:0, o1456:0) -> f5876_0_main_NE(o1507:0, o1456:0, java.lang.Object(List(o1459:0)), i620:0 - 5 * div) :|: i612:0 > 0 && i614:0 - 3 * div1 = 0 && i620:0 - 5 * div > -5 && i620:0 - 5 * div < 5 && i614:0 - 3 * div1 > -3 && i614:0 - 3 * div1 < 3 15.48/5.61 f5876_0_main_NE(o1427:0, o1449:0, java.lang.Object(List(o1490:0)), cons_0) -> f5886_0_main_InvokeMethod(o1449:0, o1490:0, o1427:0) :|: TRUE && cons_0 = 0 15.48/5.61 f5886_0_main_InvokeMethod(o1449:0, java.lang.Object(List(o1619:0)), o1427:0) -> f5973_0_main_InvokeMethod(o1427:0, o1449:0, o1619:0) :|: TRUE 15.48/5.61 f5886_0_main_InvokeMethod(o1449:0, o1456:0, java.lang.Object(List(o1535:0))) -> f5973_0_main_InvokeMethod(o1535:0, o1449:0, o1456:0) :|: TRUE 15.48/5.61 f5886_0_main_InvokeMethod(java.lang.Object(List(o1622:0)), o1456:0, o1427:0) -> f5973_0_main_InvokeMethod(o1427:0, o1622:0, o1456:0) :|: TRUE 15.48/5.61 f5973_0_main_InvokeMethod'(o1535:0, o1507:0, o1456:0) -> f5876_0_main_NE(o1507:0, o1456:0, o1535:0, i617:0 - 5 * div) :|: i612:0 > 0 && i614:0 - 3 * div1 > 0 && i617:0 - 5 * div > -5 && i617:0 - 5 * div < 5 && i614:0 - 3 * div1 < 3 15.48/5.61 f5876_0_main_NE(o1427:0, o1449:0, o1456:0, i619:0) -> f5886_0_main_InvokeMethod(o1449:0, o1456:0, o1427:0) :|: i619:0 > 0 15.48/5.61 15.48/5.61 ---------------------------------------- 15.48/5.61 15.48/5.61 (32) 15.48/5.61 Obligation: 15.48/5.61 Rules: 15.48/5.61 f5973_0_main_InvokeMethod(o1535:0, o1507:0, o1456:0) -> f5973_0_main_InvokeMethod'(o1535:0, o1507:0, o1456:0) :|: TRUE 15.48/5.61 f5973_0_main_InvokeMethod(java.lang.Object(List(x)), x1, x2) -> f5973_0_main_InvokeMethod'(java.lang.Object(List(x)), x1, x2) :|: TRUE 15.48/5.61 f5973_0_main_InvokeMethod'(java.lang.Object(List(x3)), x4, x5) -> f5876_0_main_NE(x4, x5, java.lang.Object(List(x3)), x6 - 5 * x7) :|: x8 > 0 && x9 - 3 * x10 = 0 && x6 - 5 * x7 > -5 && x6 - 5 * x7 < 5 && x9 - 3 * x10 > -3 && x9 - 3 * x10 < 3 15.48/5.61 f5876_0_main_NE(o1427:0, o1449:0, java.lang.Object(List(o1490:0)), cons_0) -> f5886_0_main_InvokeMethod(o1449:0, o1490:0, o1427:0) :|: TRUE && cons_0 = 0 15.48/5.61 f5886_0_main_InvokeMethod(x11, java.lang.Object(List(x12)), x13) -> f5973_0_main_InvokeMethod(x13, x11, x12) :|: TRUE 15.48/5.61 f5886_0_main_InvokeMethod(x14, x15, java.lang.Object(List(x16))) -> f5973_0_main_InvokeMethod(x16, x14, x15) :|: TRUE 15.48/5.61 f5886_0_main_InvokeMethod(java.lang.Object(List(x17)), x18, x19) -> f5973_0_main_InvokeMethod(x19, x17, x18) :|: TRUE 15.48/5.61 f5973_0_main_InvokeMethod'(x20, x21, x22) -> f5876_0_main_NE(x21, x22, x20, x23 - 5 * x24) :|: x25 > 0 && x26 - 3 * x27 > 0 && x23 - 5 * x24 > -5 && x23 - 5 * x24 < 5 && x26 - 3 * x27 < 3 15.48/5.61 f5876_0_main_NE(x28, x29, x30, x31) -> f5886_0_main_InvokeMethod(x29, x30, x28) :|: x31 > 0 15.48/5.61 15.48/5.61 ---------------------------------------- 15.48/5.61 15.48/5.61 (33) IRSFormatTransformerProof (EQUIVALENT) 15.48/5.61 Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). 15.48/5.61 ---------------------------------------- 15.48/5.61 15.48/5.61 (34) 15.48/5.61 Obligation: 15.48/5.61 Rules: 15.48/5.61 f5973_0_main_InvokeMethod(o1535:0, o1507:0, o1456:0) -> f5973_0_main_InvokeMethod'(o1535:0, o1507:0, o1456:0) :|: TRUE 15.48/5.61 f5973_0_main_InvokeMethod(java.lang.Object(List(x)), x1, x2) -> f5973_0_main_InvokeMethod'(java.lang.Object(List(x)), x1, x2) :|: TRUE 15.48/5.61 f5973_0_main_InvokeMethod'(java.lang.Object(List(x3)), x4, x5) -> f5876_0_main_NE(x4, x5, java.lang.Object(List(x3)), arith) :|: x8 > 0 && x9 - 3 * x10 = 0 && x6 - 5 * x7 > -5 && x6 - 5 * x7 < 5 && x9 - 3 * x10 > -3 && x9 - 3 * x10 < 3 && arith = x6 - 5 * x7 15.48/5.61 f5876_0_main_NE(o1427:0, o1449:0, java.lang.Object(List(o1490:0)), cons_0) -> f5886_0_main_InvokeMethod(o1449:0, o1490:0, o1427:0) :|: TRUE && cons_0 = 0 15.48/5.61 f5886_0_main_InvokeMethod(x11, java.lang.Object(List(x12)), x13) -> f5973_0_main_InvokeMethod(x13, x11, x12) :|: TRUE 15.48/5.61 f5886_0_main_InvokeMethod(x14, x15, java.lang.Object(List(x16))) -> f5973_0_main_InvokeMethod(x16, x14, x15) :|: TRUE 15.48/5.61 f5886_0_main_InvokeMethod(java.lang.Object(List(x17)), x18, x19) -> f5973_0_main_InvokeMethod(x19, x17, x18) :|: TRUE 15.48/5.61 f5973_0_main_InvokeMethod'(x32, x33, x34) -> f5876_0_main_NE(x33, x34, x32, x35) :|: x36 > 0 && x37 - 3 * x38 > 0 && x39 - 5 * x40 > -5 && x39 - 5 * x40 < 5 && x37 - 3 * x38 < 3 && x35 = x39 - 5 * x40 15.48/5.61 f5876_0_main_NE(x28, x29, x30, x31) -> f5886_0_main_InvokeMethod(x29, x30, x28) :|: x31 > 0 15.48/5.61 15.48/5.61 ---------------------------------------- 15.48/5.61 15.48/5.61 (35) IRSwTTerminationDigraphProof (EQUIVALENT) 15.48/5.61 Constructed termination digraph! 15.48/5.61 Nodes: 15.48/5.61 (1) f5973_0_main_InvokeMethod(o1535:0, o1507:0, o1456:0) -> f5973_0_main_InvokeMethod'(o1535:0, o1507:0, o1456:0) :|: TRUE 15.48/5.61 (2) f5973_0_main_InvokeMethod(java.lang.Object(List(x)), x1, x2) -> f5973_0_main_InvokeMethod'(java.lang.Object(List(x)), x1, x2) :|: TRUE 15.48/5.61 (3) f5973_0_main_InvokeMethod'(java.lang.Object(List(x3)), x4, x5) -> f5876_0_main_NE(x4, x5, java.lang.Object(List(x3)), arith) :|: x8 > 0 && x9 - 3 * x10 = 0 && x6 - 5 * x7 > -5 && x6 - 5 * x7 < 5 && x9 - 3 * x10 > -3 && x9 - 3 * x10 < 3 && arith = x6 - 5 * x7 15.48/5.61 (4) f5876_0_main_NE(o1427:0, o1449:0, java.lang.Object(List(o1490:0)), cons_0) -> f5886_0_main_InvokeMethod(o1449:0, o1490:0, o1427:0) :|: TRUE && cons_0 = 0 15.48/5.61 (5) f5886_0_main_InvokeMethod(x11, java.lang.Object(List(x12)), x13) -> f5973_0_main_InvokeMethod(x13, x11, x12) :|: TRUE 15.48/5.61 (6) f5886_0_main_InvokeMethod(x14, x15, java.lang.Object(List(x16))) -> f5973_0_main_InvokeMethod(x16, x14, x15) :|: TRUE 15.48/5.61 (7) f5886_0_main_InvokeMethod(java.lang.Object(List(x17)), x18, x19) -> f5973_0_main_InvokeMethod(x19, x17, x18) :|: TRUE 15.48/5.61 (8) f5973_0_main_InvokeMethod'(x32, x33, x34) -> f5876_0_main_NE(x33, x34, x32, x35) :|: x36 > 0 && x37 - 3 * x38 > 0 && x39 - 5 * x40 > -5 && x39 - 5 * x40 < 5 && x37 - 3 * x38 < 3 && x35 = x39 - 5 * x40 15.48/5.61 (9) f5876_0_main_NE(x28, x29, x30, x31) -> f5886_0_main_InvokeMethod(x29, x30, x28) :|: x31 > 0 15.48/5.61 15.48/5.61 Arcs: 15.48/5.61 (1) -> (3), (8) 15.48/5.61 (2) -> (3), (8) 15.48/5.61 (3) -> (4), (9) 15.48/5.61 (4) -> (5), (6), (7) 15.48/5.61 (5) -> (1), (2) 15.48/5.61 (6) -> (1), (2) 15.48/5.61 (7) -> (1), (2) 15.48/5.61 (8) -> (4), (9) 15.48/5.61 (9) -> (5), (6), (7) 15.48/5.61 15.48/5.61 This digraph is fully evaluated! 15.48/5.61 ---------------------------------------- 15.48/5.61 15.48/5.61 (36) 15.48/5.61 Obligation: 15.48/5.61 15.48/5.61 Termination digraph: 15.48/5.61 Nodes: 15.48/5.61 (1) f5973_0_main_InvokeMethod(o1535:0, o1507:0, o1456:0) -> f5973_0_main_InvokeMethod'(o1535:0, o1507:0, o1456:0) :|: TRUE 15.48/5.61 (2) f5886_0_main_InvokeMethod(x11, java.lang.Object(List(x12)), x13) -> f5973_0_main_InvokeMethod(x13, x11, x12) :|: TRUE 15.48/5.61 (3) f5876_0_main_NE(o1427:0, o1449:0, java.lang.Object(List(o1490:0)), cons_0) -> f5886_0_main_InvokeMethod(o1449:0, o1490:0, o1427:0) :|: TRUE && cons_0 = 0 15.48/5.61 (4) f5973_0_main_InvokeMethod'(java.lang.Object(List(x3)), x4, x5) -> f5876_0_main_NE(x4, x5, java.lang.Object(List(x3)), arith) :|: x8 > 0 && x9 - 3 * x10 = 0 && x6 - 5 * x7 > -5 && x6 - 5 * x7 < 5 && x9 - 3 * x10 > -3 && x9 - 3 * x10 < 3 && arith = x6 - 5 * x7 15.48/5.61 (5) f5973_0_main_InvokeMethod(java.lang.Object(List(x)), x1, x2) -> f5973_0_main_InvokeMethod'(java.lang.Object(List(x)), x1, x2) :|: TRUE 15.48/5.61 (6) f5886_0_main_InvokeMethod(java.lang.Object(List(x17)), x18, x19) -> f5973_0_main_InvokeMethod(x19, x17, x18) :|: TRUE 15.48/5.61 (7) f5886_0_main_InvokeMethod(x14, x15, java.lang.Object(List(x16))) -> f5973_0_main_InvokeMethod(x16, x14, x15) :|: TRUE 15.48/5.61 (8) f5876_0_main_NE(x28, x29, x30, x31) -> f5886_0_main_InvokeMethod(x29, x30, x28) :|: x31 > 0 15.48/5.61 (9) f5973_0_main_InvokeMethod'(x32, x33, x34) -> f5876_0_main_NE(x33, x34, x32, x35) :|: x36 > 0 && x37 - 3 * x38 > 0 && x39 - 5 * x40 > -5 && x39 - 5 * x40 < 5 && x37 - 3 * x38 < 3 && x35 = x39 - 5 * x40 15.48/5.61 15.48/5.61 Arcs: 15.48/5.61 (1) -> (4), (9) 15.48/5.61 (2) -> (1), (5) 15.48/5.61 (3) -> (2), (6), (7) 15.48/5.61 (4) -> (3), (8) 15.48/5.61 (5) -> (4), (9) 15.48/5.61 (6) -> (1), (5) 15.48/5.61 (7) -> (1), (5) 15.48/5.61 (8) -> (2), (6), (7) 15.48/5.61 (9) -> (3), (8) 15.48/5.61 15.48/5.61 This digraph is fully evaluated! 15.48/5.61 15.48/5.61 ---------------------------------------- 15.48/5.61 15.48/5.61 (37) IntTRSCompressionProof (EQUIVALENT) 15.48/5.61 Compressed rules. 15.48/5.61 ---------------------------------------- 15.48/5.61 15.48/5.61 (38) 15.48/5.61 Obligation: 15.48/5.61 Rules: 15.48/5.61 f5876_0_main_NE(o1427:0:0, o1449:0:0, java.lang.Object(List(o1490:0:0)), cons_0) -> f5886_0_main_InvokeMethod(o1449:0:0, o1490:0:0, o1427:0:0) :|: TRUE && cons_0 = 0 15.48/5.61 f5973_0_main_InvokeMethod(o1535:0:0, o1507:0:0, o1456:0:0) -> f5973_0_main_InvokeMethod'(o1535:0:0, o1507:0:0, o1456:0:0) :|: TRUE 15.48/5.61 f5886_0_main_InvokeMethod(x11:0, java.lang.Object(List(x12:0)), x13:0) -> f5973_0_main_InvokeMethod(x13:0, x11:0, x12:0) :|: TRUE 15.48/5.61 f5973_0_main_InvokeMethod'(x32:0, x33:0, x34:0) -> f5876_0_main_NE(x33:0, x34:0, x32:0, x39:0 - 5 * x40:0) :|: x39:0 - 5 * x40:0 < 5 && x37:0 - 3 * x38:0 < 3 && x39:0 - 5 * x40:0 > -5 && x37:0 - 3 * x38:0 > 0 && x36:0 > 0 15.48/5.61 f5973_0_main_InvokeMethod'(java.lang.Object(List(x3:0)), x4:0, x5:0) -> f5876_0_main_NE(x4:0, x5:0, java.lang.Object(List(x3:0)), x6:0 - 5 * x7:0) :|: x9:0 - 3 * x10:0 > -3 && x9:0 - 3 * x10:0 < 3 && x6:0 - 5 * x7:0 < 5 && x6:0 - 5 * x7:0 > -5 && x9:0 - 3 * x10:0 = 0 && x8:0 > 0 15.48/5.61 f5973_0_main_InvokeMethod(java.lang.Object(List(x:0)), x1:0, x2:0) -> f5973_0_main_InvokeMethod'(java.lang.Object(List(x:0)), x1:0, x2:0) :|: TRUE 15.48/5.61 f5886_0_main_InvokeMethod(x14:0, x15:0, java.lang.Object(List(x16:0))) -> f5973_0_main_InvokeMethod(x16:0, x14:0, x15:0) :|: TRUE 15.48/5.61 f5876_0_main_NE(x28:0, x29:0, x30:0, x31:0) -> f5886_0_main_InvokeMethod(x29:0, x30:0, x28:0) :|: x31:0 > 0 15.48/5.61 f5886_0_main_InvokeMethod(java.lang.Object(List(x17:0)), x18:0, x19:0) -> f5973_0_main_InvokeMethod(x19:0, x17:0, x18:0) :|: TRUE 15.48/5.61 15.48/5.61 ---------------------------------------- 15.48/5.61 15.48/5.61 (39) TempFilterProof (SOUND) 15.48/5.61 Used the following sort dictionary for filtering: 15.48/5.61 f5876_0_main_NE(VARIABLE, VARIABLE, VARIABLE, INTEGER) 15.48/5.61 java.lang.Object(VARIABLE) 15.48/5.61 List(VARIABLE) 15.48/5.61 f5886_0_main_InvokeMethod(VARIABLE, VARIABLE, VARIABLE) 15.48/5.61 f5973_0_main_InvokeMethod(VARIABLE, VARIABLE, VARIABLE) 15.48/5.61 f5973_0_main_InvokeMethod'(VARIABLE, VARIABLE, VARIABLE) 15.48/5.61 Removed predefined arithmetic. 15.48/5.61 ---------------------------------------- 15.48/5.61 15.48/5.61 (40) 15.48/5.61 Obligation: 15.48/5.61 Rules: 15.48/5.61 f5876_0_main_NE(o1427:0:0, o1449:0:0, java.lang.Object(List(o1490:0:0))) -> f5886_0_main_InvokeMethod(o1449:0:0, o1490:0:0, o1427:0:0) 15.48/5.61 f5973_0_main_InvokeMethod(o1535:0:0, o1507:0:0, o1456:0:0) -> f5973_0_main_InvokeMethod'(o1535:0:0, o1507:0:0, o1456:0:0) 15.48/5.61 f5886_0_main_InvokeMethod(x11:0, java.lang.Object(List(x12:0)), x13:0) -> f5973_0_main_InvokeMethod(x13:0, x11:0, x12:0) 15.48/5.61 f5973_0_main_InvokeMethod'(x32:0, x33:0, x34:0) -> f5876_0_main_NE(x33:0, x34:0, x32:0) 15.48/5.61 f5973_0_main_InvokeMethod'(java.lang.Object(List(x3:0)), x4:0, x5:0) -> f5876_0_main_NE(x4:0, x5:0, java.lang.Object(List(x3:0))) 15.48/5.61 f5973_0_main_InvokeMethod(java.lang.Object(List(x:0)), x1:0, x2:0) -> f5973_0_main_InvokeMethod'(java.lang.Object(List(x:0)), x1:0, x2:0) 15.48/5.61 f5886_0_main_InvokeMethod(x14:0, x15:0, java.lang.Object(List(x16:0))) -> f5973_0_main_InvokeMethod(x16:0, x14:0, x15:0) 15.48/5.61 f5876_0_main_NE(x28:0, x29:0, x30:0) -> f5886_0_main_InvokeMethod(x29:0, x30:0, x28:0) 15.48/5.61 f5886_0_main_InvokeMethod(java.lang.Object(List(x17:0)), x18:0, x19:0) -> f5973_0_main_InvokeMethod(x19:0, x17:0, x18:0) 15.48/5.61 15.48/5.61 ---------------------------------------- 15.48/5.61 15.48/5.61 (41) IRSwTToQDPProof (SOUND) 15.48/5.61 Removed the integers and created a QDP-Problem. 15.48/5.61 ---------------------------------------- 15.48/5.61 15.48/5.61 (42) 15.48/5.61 Obligation: 15.48/5.61 Q DP problem: 15.48/5.61 The TRS P consists of the following rules: 15.48/5.61 15.48/5.61 f5876_0_main_NE(o1427:0:0, o1449:0:0, java.lang.Object(List(o1490:0:0))) -> f5886_0_main_InvokeMethod(o1449:0:0, o1490:0:0, o1427:0:0) 15.48/5.61 f5973_0_main_InvokeMethod(o1535:0:0, o1507:0:0, o1456:0:0) -> f5973_0_main_InvokeMethod'(o1535:0:0, o1507:0:0, o1456:0:0) 15.48/5.61 f5886_0_main_InvokeMethod(x11:0, java.lang.Object(List(x12:0)), x13:0) -> f5973_0_main_InvokeMethod(x13:0, x11:0, x12:0) 15.48/5.61 f5973_0_main_InvokeMethod'(x32:0, x33:0, x34:0) -> f5876_0_main_NE(x33:0, x34:0, x32:0) 15.48/5.61 f5973_0_main_InvokeMethod'(java.lang.Object(List(x3:0)), x4:0, x5:0) -> f5876_0_main_NE(x4:0, x5:0, java.lang.Object(List(x3:0))) 15.48/5.61 f5973_0_main_InvokeMethod(java.lang.Object(List(x:0)), x1:0, x2:0) -> f5973_0_main_InvokeMethod'(java.lang.Object(List(x:0)), x1:0, x2:0) 15.48/5.61 f5886_0_main_InvokeMethod(x14:0, x15:0, java.lang.Object(List(x16:0))) -> f5973_0_main_InvokeMethod(x16:0, x14:0, x15:0) 15.48/5.61 f5876_0_main_NE(x28:0, x29:0, x30:0) -> f5886_0_main_InvokeMethod(x29:0, x30:0, x28:0) 15.48/5.61 f5886_0_main_InvokeMethod(java.lang.Object(List(x17:0)), x18:0, x19:0) -> f5973_0_main_InvokeMethod(x19:0, x17:0, x18:0) 15.48/5.61 15.48/5.61 R is empty. 15.48/5.61 Q is empty. 15.48/5.61 We have to consider all (P,Q,R)-chains. 15.48/5.61 ---------------------------------------- 15.48/5.61 15.48/5.61 (43) QDPSizeChangeProof (EQUIVALENT) 15.48/5.61 By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. 15.48/5.61 15.48/5.61 From the DPs we obtained the following set of size-change graphs: 15.48/5.61 *f5886_0_main_InvokeMethod(x11:0, java.lang.Object(List(x12:0)), x13:0) -> f5973_0_main_InvokeMethod(x13:0, x11:0, x12:0) 15.48/5.61 The graph contains the following edges 3 >= 1, 1 >= 2, 2 > 3 15.48/5.61 15.48/5.61 15.48/5.61 *f5886_0_main_InvokeMethod(x14:0, x15:0, java.lang.Object(List(x16:0))) -> f5973_0_main_InvokeMethod(x16:0, x14:0, x15:0) 15.48/5.61 The graph contains the following edges 3 > 1, 1 >= 2, 2 >= 3 15.48/5.61 15.48/5.61 15.48/5.61 *f5886_0_main_InvokeMethod(java.lang.Object(List(x17:0)), x18:0, x19:0) -> f5973_0_main_InvokeMethod(x19:0, x17:0, x18:0) 15.48/5.61 The graph contains the following edges 3 >= 1, 1 > 2, 2 >= 3 15.48/5.61 15.48/5.61 15.48/5.61 *f5973_0_main_InvokeMethod'(x32:0, x33:0, x34:0) -> f5876_0_main_NE(x33:0, x34:0, x32:0) 15.48/5.61 The graph contains the following edges 2 >= 1, 3 >= 2, 1 >= 3 15.48/5.61 15.48/5.61 15.48/5.61 *f5973_0_main_InvokeMethod'(java.lang.Object(List(x3:0)), x4:0, x5:0) -> f5876_0_main_NE(x4:0, x5:0, java.lang.Object(List(x3:0))) 15.48/5.61 The graph contains the following edges 2 >= 1, 3 >= 2, 1 >= 3 15.48/5.61 15.48/5.61 15.48/5.61 *f5973_0_main_InvokeMethod(o1535:0:0, o1507:0:0, o1456:0:0) -> f5973_0_main_InvokeMethod'(o1535:0:0, o1507:0:0, o1456:0:0) 15.48/5.61 The graph contains the following edges 1 >= 1, 2 >= 2, 3 >= 3 15.48/5.61 15.48/5.61 15.48/5.61 *f5973_0_main_InvokeMethod(java.lang.Object(List(x:0)), x1:0, x2:0) -> f5973_0_main_InvokeMethod'(java.lang.Object(List(x:0)), x1:0, x2:0) 15.48/5.61 The graph contains the following edges 1 >= 1, 2 >= 2, 3 >= 3 15.48/5.61 15.48/5.61 15.48/5.61 *f5876_0_main_NE(o1427:0:0, o1449:0:0, java.lang.Object(List(o1490:0:0))) -> f5886_0_main_InvokeMethod(o1449:0:0, o1490:0:0, o1427:0:0) 15.48/5.61 The graph contains the following edges 2 >= 1, 3 > 2, 1 >= 3 15.48/5.61 15.48/5.61 15.48/5.61 *f5876_0_main_NE(x28:0, x29:0, x30:0) -> f5886_0_main_InvokeMethod(x29:0, x30:0, x28:0) 15.48/5.61 The graph contains the following edges 2 >= 1, 3 >= 2, 1 >= 3 15.48/5.61 15.48/5.61 15.48/5.61 ---------------------------------------- 15.48/5.61 15.48/5.61 (44) 15.48/5.61 YES 15.56/5.71 EOF