/export/starexec/sandbox2/solver/bin/starexec_run_standard /export/starexec/sandbox2/benchmark/theBenchmark.jar /export/starexec/sandbox2/output/output_files -------------------------------------------------------------------------------- YES proof of /export/starexec/sandbox2/benchmark/theBenchmark.jar # AProVE Commit ID: 794c25de1cacf0d048858bcd21c9a779e1221865 marcel 20200619 unpublished dirty termination of the given Bare JBC problem could be proven: (0) Bare JBC problem (1) BareJBCToJBCProof [EQUIVALENT, 96 ms] (2) JBC problem (3) JBCToGraph [EQUIVALENT, 1016 ms] (4) JBCTerminationGraph (5) TerminationGraphToSCCProof [SOUND, 6 ms] (6) AND (7) JBCTerminationSCC (8) SCCToQDPProof [SOUND, 85 ms] (9) QDP (10) QDPSizeChangeProof [EQUIVALENT, 0 ms] (11) YES (12) JBCTerminationSCC (13) SCCToIRSProof [SOUND, 0 ms] (14) IRSwT (15) IRSFormatTransformerProof [EQUIVALENT, 0 ms] (16) IRSwT (17) IRSwTTerminationDigraphProof [EQUIVALENT, 0 ms] (18) IRSwT (19) IntTRSCompressionProof [EQUIVALENT, 0 ms] (20) IRSwT (21) TempFilterProof [SOUND, 25 ms] (22) IntTRS (23) PolynomialOrderProcessor [EQUIVALENT, 14 ms] (24) YES (25) JBCTerminationSCC (26) SCCToIRSProof [SOUND, 391 ms] (27) IRSwT (28) IRSFormatTransformerProof [EQUIVALENT, 0 ms] (29) IRSwT (30) IRSwTTerminationDigraphProof [EQUIVALENT, 39 ms] (31) IRSwT (32) TempFilterProof [SOUND, 6 ms] (33) IRSwT (34) IRSwTToQDPProof [SOUND, 0 ms] (35) QDP (36) QDPSizeChangeProof [EQUIVALENT, 0 ms] (37) YES ---------------------------------------- (0) Obligation: need to prove termination of the following program: public class Test3 { public static void main(String[] args) { List l1 = List.mk(args.length); List l2 = List.mk(args.length); List l3 = (args.length % 2 == 0) ? List.mk(args.length * args.length) : l2; while (length(l1) + length(l2) + length(l3) * 5 > 0) if (length(l1) % 2 == 1) l1 = l1.getTail(); else if (length(l2) > length(l3)) l2 = l2.getTail(); else if (l3 == null) break; else { l1 = new List(new Object(), l1); l2 = new List(new Object(), l2); l3 = l3.getTail(); } } private static int length(List list) { int len = 0; while (list != null) { list = list.getTail(); len++; } return len; } } public class List { public Object head; private List tail; public List(Object head, List tail) { this.head = head; this.tail = tail; } public List getTail() { return tail; } public static List mk(int len) { List result = null; while (len-- > 0) result = new List(new Object(), result); return result; } } ---------------------------------------- (1) BareJBCToJBCProof (EQUIVALENT) initialized classpath ---------------------------------------- (2) Obligation: need to prove termination of the following program: public class Test3 { public static void main(String[] args) { List l1 = List.mk(args.length); List l2 = List.mk(args.length); List l3 = (args.length % 2 == 0) ? List.mk(args.length * args.length) : l2; while (length(l1) + length(l2) + length(l3) * 5 > 0) if (length(l1) % 2 == 1) l1 = l1.getTail(); else if (length(l2) > length(l3)) l2 = l2.getTail(); else if (l3 == null) break; else { l1 = new List(new Object(), l1); l2 = new List(new Object(), l2); l3 = l3.getTail(); } } private static int length(List list) { int len = 0; while (list != null) { list = list.getTail(); len++; } return len; } } public class List { public Object head; private List tail; public List(Object head, List tail) { this.head = head; this.tail = tail; } public List getTail() { return tail; } public static List mk(int len) { List result = null; while (len-- > 0) result = new List(new Object(), result); return result; } } ---------------------------------------- (3) JBCToGraph (EQUIVALENT) Constructed TerminationGraph. ---------------------------------------- (4) Obligation: Termination Graph based on JBC Program: Test3.main([Ljava/lang/String;)V: Graph of 212 nodes with 1 SCC. List.mk(I)LList;: Graph of 58 nodes with 1 SCC. Test3.length(LList;)I: Graph of 22 nodes with 1 SCC. ---------------------------------------- (5) TerminationGraphToSCCProof (SOUND) Splitted TerminationGraph to 3 SCCss. ---------------------------------------- (6) Complex Obligation (AND) ---------------------------------------- (7) Obligation: SCC of termination graph based on JBC Program. SCC contains nodes from the following methods: Test3.length(LList;)I SCC calls the following helper methods: Performed SCC analyses: *Used field analysis yielded the following read fields: *List: [tail] *Marker field analysis yielded the following relations that could be markers: ---------------------------------------- (8) SCCToQDPProof (SOUND) Transformed TerminationGraph SCC to QDP. Log: Generated 13 rules for P and 0 rules for R.P rules: f6516_0_length_NULL(EOS(STATIC_6516), java.lang.Object(o2402sub), java.lang.Object(o2402sub)) -> f6517_0_length_NULL(EOS(STATIC_6517), java.lang.Object(o2402sub), java.lang.Object(o2402sub)) :|: TRUE f6517_0_length_NULL(EOS(STATIC_6517), java.lang.Object(o2402sub), java.lang.Object(o2402sub)) -> f6519_0_length_Load(EOS(STATIC_6519), java.lang.Object(o2402sub)) :|: TRUE f6519_0_length_Load(EOS(STATIC_6519), java.lang.Object(o2402sub)) -> f6522_0_length_InvokeMethod(EOS(STATIC_6522), java.lang.Object(o2402sub)) :|: TRUE f6522_0_length_InvokeMethod(EOS(STATIC_6522), java.lang.Object(o2402sub)) -> f6524_0_getTail_Load(EOS(STATIC_6524), java.lang.Object(o2402sub)) :|: TRUE f6524_0_getTail_Load(EOS(STATIC_6524), java.lang.Object(o2402sub)) -> f6526_0_getTail_FieldAccess(EOS(STATIC_6526), java.lang.Object(o2402sub)) :|: TRUE f6526_0_getTail_FieldAccess(EOS(STATIC_6526), java.lang.Object(List(EOC, o2428))) -> f6530_0_getTail_FieldAccess(EOS(STATIC_6530), java.lang.Object(List(EOC, o2428))) :|: TRUE f6530_0_getTail_FieldAccess(EOS(STATIC_6530), java.lang.Object(List(EOC, o2428))) -> f6532_0_getTail_Return(EOS(STATIC_6532), o2428) :|: TRUE f6532_0_getTail_Return(EOS(STATIC_6532), o2428) -> f6534_0_length_Store(EOS(STATIC_6534), o2428) :|: TRUE f6534_0_length_Store(EOS(STATIC_6534), o2428) -> f6536_0_length_Inc(EOS(STATIC_6536), o2428) :|: TRUE f6536_0_length_Inc(EOS(STATIC_6536), o2428) -> f6538_0_length_JMP(EOS(STATIC_6538), o2428) :|: TRUE f6538_0_length_JMP(EOS(STATIC_6538), o2428) -> f6541_0_length_Load(EOS(STATIC_6541), o2428) :|: TRUE f6541_0_length_Load(EOS(STATIC_6541), o2428) -> f6515_0_length_Load(EOS(STATIC_6515), o2428) :|: TRUE f6515_0_length_Load(EOS(STATIC_6515), o2389) -> f6516_0_length_NULL(EOS(STATIC_6516), o2389, o2389) :|: TRUE R rules: Combined rules. Obtained 1 conditional rules for P and 0 conditional rules for R.P rules: f6516_0_length_NULL(EOS(STATIC_6516), java.lang.Object(List(EOC, o2428:0)), java.lang.Object(List(EOC, o2428:0))) -> f6516_0_length_NULL(EOS(STATIC_6516), o2428:0, o2428:0) :|: TRUE R rules: Filtered ground terms: f6516_0_length_NULL(x1, x2, x3) -> f6516_0_length_NULL(x2, x3) EOS(x1) -> EOS List(x1, x2) -> List(x2) Filtered duplicate args: f6516_0_length_NULL(x1, x2) -> f6516_0_length_NULL(x2) Combined rules. Obtained 1 conditional rules for P and 0 conditional rules for R.P rules: F6516_0_LENGTH_NULL(java.lang.Object(List(o2428:0:0))) -> F6516_0_LENGTH_NULL(o2428:0:0) :|: TRUE R rules: ---------------------------------------- (9) Obligation: Q DP problem: The TRS P consists of the following rules: F6516_0_LENGTH_NULL(java.lang.Object(List(o2428:0:0))) -> F6516_0_LENGTH_NULL(o2428:0:0) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (10) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *F6516_0_LENGTH_NULL(java.lang.Object(List(o2428:0:0))) -> F6516_0_LENGTH_NULL(o2428:0:0) The graph contains the following edges 1 > 1 ---------------------------------------- (11) YES ---------------------------------------- (12) Obligation: SCC of termination graph based on JBC Program. SCC contains nodes from the following methods: List.mk(I)LList; SCC calls the following helper methods: Performed SCC analyses: *Used field analysis yielded the following read fields: *Marker field analysis yielded the following relations that could be markers: ---------------------------------------- (13) SCCToIRSProof (SOUND) Transformed FIGraph SCCs to intTRSs. Log: Generated rules. Obtained 23 IRulesP rules: f3556_0_mk_Inc(EOS(STATIC_3556), i322, i322) -> f3571_0_mk_LE(EOS(STATIC_3571), i322 + -1, i322) :|: TRUE f3571_0_mk_LE(EOS(STATIC_3571), i335, i348) -> f3576_0_mk_LE(EOS(STATIC_3576), i335, i348) :|: TRUE f3576_0_mk_LE(EOS(STATIC_3576), i335, i348) -> f3586_0_mk_New(EOS(STATIC_3586), i335) :|: i348 > 0 f3586_0_mk_New(EOS(STATIC_3586), i335) -> f3596_0_mk_Duplicate(EOS(STATIC_3596), i335) :|: TRUE f3596_0_mk_Duplicate(EOS(STATIC_3596), i335) -> f3605_0_mk_New(EOS(STATIC_3605), i335) :|: TRUE f3605_0_mk_New(EOS(STATIC_3605), i335) -> f3623_0_mk_Duplicate(EOS(STATIC_3623), i335) :|: TRUE f3623_0_mk_Duplicate(EOS(STATIC_3623), i335) -> f3644_0_mk_InvokeMethod(EOS(STATIC_3644), i335) :|: TRUE f3644_0_mk_InvokeMethod(EOS(STATIC_3644), i335) -> f3646_0_mk_Load(EOS(STATIC_3646), i335) :|: TRUE f3646_0_mk_Load(EOS(STATIC_3646), i335) -> f3719_0_mk_InvokeMethod(EOS(STATIC_3719), i335) :|: TRUE f3719_0_mk_InvokeMethod(EOS(STATIC_3719), i335) -> f3732_0__init__Load(EOS(STATIC_3732), i335) :|: TRUE f3732_0__init__Load(EOS(STATIC_3732), i335) -> f3743_0__init__InvokeMethod(EOS(STATIC_3743), i335) :|: TRUE f3743_0__init__InvokeMethod(EOS(STATIC_3743), i335) -> f3768_0__init__Load(EOS(STATIC_3768), i335) :|: TRUE f3768_0__init__Load(EOS(STATIC_3768), i335) -> f3775_0__init__Load(EOS(STATIC_3775), i335) :|: TRUE f3775_0__init__Load(EOS(STATIC_3775), i335) -> f3822_0__init__FieldAccess(EOS(STATIC_3822), i335) :|: TRUE f3822_0__init__FieldAccess(EOS(STATIC_3822), i335) -> f3836_0__init__Load(EOS(STATIC_3836), i335) :|: TRUE f3836_0__init__Load(EOS(STATIC_3836), i335) -> f3848_0__init__Load(EOS(STATIC_3848), i335) :|: TRUE f3848_0__init__Load(EOS(STATIC_3848), i335) -> f3852_0__init__FieldAccess(EOS(STATIC_3852), i335) :|: TRUE f3852_0__init__FieldAccess(EOS(STATIC_3852), i335) -> f3855_0__init__Return(EOS(STATIC_3855), i335) :|: TRUE f3855_0__init__Return(EOS(STATIC_3855), i335) -> f3858_0_mk_Store(EOS(STATIC_3858), i335) :|: TRUE f3858_0_mk_Store(EOS(STATIC_3858), i335) -> f3866_0_mk_JMP(EOS(STATIC_3866), i335) :|: TRUE f3866_0_mk_JMP(EOS(STATIC_3866), i335) -> f3903_0_mk_Load(EOS(STATIC_3903), i335) :|: TRUE f3903_0_mk_Load(EOS(STATIC_3903), i335) -> f3260_0_mk_Load(EOS(STATIC_3260), i335) :|: TRUE f3260_0_mk_Load(EOS(STATIC_3260), i322) -> f3556_0_mk_Inc(EOS(STATIC_3556), i322, i322) :|: TRUE Combined rules. Obtained 1 IRulesP rules: f3556_0_mk_Inc(EOS(STATIC_3556), i322:0, i322:0) -> f3556_0_mk_Inc(EOS(STATIC_3556), i322:0 - 1, i322:0 - 1) :|: i322:0 > 0 Filtered constant ground arguments: f3556_0_mk_Inc(x1, x2, x3) -> f3556_0_mk_Inc(x2, x3) EOS(x1) -> EOS Filtered duplicate arguments: f3556_0_mk_Inc(x1, x2) -> f3556_0_mk_Inc(x2) Finished conversion. Obtained 1 rules.P rules: f3556_0_mk_Inc(i322:0) -> f3556_0_mk_Inc(i322:0 - 1) :|: i322:0 > 0 ---------------------------------------- (14) Obligation: Rules: f3556_0_mk_Inc(i322:0) -> f3556_0_mk_Inc(i322:0 - 1) :|: i322:0 > 0 ---------------------------------------- (15) IRSFormatTransformerProof (EQUIVALENT) Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). ---------------------------------------- (16) Obligation: Rules: f3556_0_mk_Inc(i322:0) -> f3556_0_mk_Inc(arith) :|: i322:0 > 0 && arith = i322:0 - 1 ---------------------------------------- (17) IRSwTTerminationDigraphProof (EQUIVALENT) Constructed termination digraph! Nodes: (1) f3556_0_mk_Inc(i322:0) -> f3556_0_mk_Inc(arith) :|: i322:0 > 0 && arith = i322:0 - 1 Arcs: (1) -> (1) This digraph is fully evaluated! ---------------------------------------- (18) Obligation: Termination digraph: Nodes: (1) f3556_0_mk_Inc(i322:0) -> f3556_0_mk_Inc(arith) :|: i322:0 > 0 && arith = i322:0 - 1 Arcs: (1) -> (1) This digraph is fully evaluated! ---------------------------------------- (19) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (20) Obligation: Rules: f3556_0_mk_Inc(i322:0:0) -> f3556_0_mk_Inc(i322:0:0 - 1) :|: i322:0:0 > 0 ---------------------------------------- (21) TempFilterProof (SOUND) Used the following sort dictionary for filtering: f3556_0_mk_Inc(INTEGER) Replaced non-predefined constructor symbols by 0. ---------------------------------------- (22) Obligation: Rules: f3556_0_mk_Inc(i322:0:0) -> f3556_0_mk_Inc(c) :|: c = i322:0:0 - 1 && i322:0:0 > 0 ---------------------------------------- (23) PolynomialOrderProcessor (EQUIVALENT) Found the following polynomial interpretation: [f3556_0_mk_Inc(x)] = x The following rules are decreasing: f3556_0_mk_Inc(i322:0:0) -> f3556_0_mk_Inc(c) :|: c = i322:0:0 - 1 && i322:0:0 > 0 The following rules are bounded: f3556_0_mk_Inc(i322:0:0) -> f3556_0_mk_Inc(c) :|: c = i322:0:0 - 1 && i322:0:0 > 0 ---------------------------------------- (24) YES ---------------------------------------- (25) Obligation: SCC of termination graph based on JBC Program. SCC contains nodes from the following methods: Test3.main([Ljava/lang/String;)V SCC calls the following helper methods: Test3.length(LList;)I Performed SCC analyses: *Used field analysis yielded the following read fields: *List: [tail] *Marker field analysis yielded the following relations that could be markers: ---------------------------------------- (26) SCCToIRSProof (SOUND) Transformed FIGraph SCCs to intTRSs. Log: Generated rules. Obtained 121 IRulesP rules: f6405_0_main_InvokeMethod(EOS(STATIC_6405), o2202, o2203, o2204, o2202) -> f6407_0_length_ConstantStackPush(EOS(STATIC_6407), o2202, o2202) :|: TRUE f6405_0_main_InvokeMethod(EOS(STATIC_6405), o2202, o2203, o2204, o2202) -> f6407_1_length_ConstantStackPush(EOS(STATIC_6407), o2202, o2203, o2204, o2202) :|: TRUE f6407_0_length_ConstantStackPush(EOS(STATIC_6407), o2202, o2202) -> f6757_0_length_ConstantStackPush(EOS(STATIC_6757), o2202, o2202) :|: TRUE f6527_0_length_Return(EOS(STATIC_6527), o2411, o2203, o2204, i853) -> f6425_0_length_Return(EOS(STATIC_6425), o2411, o2203, o2204, i853) :|: TRUE f6425_0_length_Return(EOS(STATIC_6425), o2250, o2203, o2204, i827) -> f6427_0_main_Load(EOS(STATIC_6427), o2250, o2203, o2204, i827) :|: TRUE f6427_0_main_Load(EOS(STATIC_6427), o2250, o2203, o2204, i827) -> f6429_0_main_InvokeMethod(EOS(STATIC_6429), o2250, o2203, o2204, i827, o2203) :|: TRUE f6429_0_main_InvokeMethod(EOS(STATIC_6429), o2250, o2203, o2204, i827, o2203) -> f6431_0_length_ConstantStackPush(EOS(STATIC_6431), o2203, o2204, o2203) :|: TRUE f6429_0_main_InvokeMethod(EOS(STATIC_6429), o2250, o2203, o2204, i827, o2203) -> f6431_1_length_ConstantStackPush(EOS(STATIC_6431), o2250, o2203, o2204, i827, o2203) :|: TRUE f6431_0_length_ConstantStackPush(EOS(STATIC_6431), o2203, o2204, o2203) -> f6777_0_length_ConstantStackPush(EOS(STATIC_6777), o2203, o2204, o2203) :|: TRUE f6528_0_length_Return(EOS(STATIC_6528), o2250, o2415, o2204, i827, i854) -> f6503_0_length_Return(EOS(STATIC_6503), o2250, o2415, o2204, i827, i854) :|: TRUE f6503_0_length_Return(EOS(STATIC_6503), o2369, o2370, o2371, i827, i846) -> f6505_0_main_IntArithmetic(EOS(STATIC_6505), o2369, o2370, o2371, i827, i846) :|: TRUE f6505_0_main_IntArithmetic(EOS(STATIC_6505), o2369, o2370, o2371, i827, i846) -> f6507_0_main_Load(EOS(STATIC_6507), o2369, o2370, o2371, i827 + i846) :|: i827 >= 0 && i846 >= 0 f6507_0_main_Load(EOS(STATIC_6507), o2369, o2370, o2371, i849) -> f6509_0_main_InvokeMethod(EOS(STATIC_6509), o2369, o2370, o2371, i849, o2371) :|: TRUE f6509_0_main_InvokeMethod(EOS(STATIC_6509), o2369, o2370, o2371, i849, o2371) -> f6511_0_length_ConstantStackPush(EOS(STATIC_6511), o2371, o2370, o2371) :|: TRUE f6509_0_main_InvokeMethod(EOS(STATIC_6509), o2369, o2370, o2371, i849, o2371) -> f6511_1_length_ConstantStackPush(EOS(STATIC_6511), o2369, o2370, o2371, i849, o2371) :|: TRUE f6511_0_length_ConstantStackPush(EOS(STATIC_6511), o2371, o2370, o2371) -> f6799_0_length_ConstantStackPush(EOS(STATIC_6799), o2371, o2370, o2371) :|: TRUE f6529_0_length_Return(EOS(STATIC_6529), o2369, o2370, o2419, i849, i855) -> f6531_0_main_ConstantStackPush(EOS(STATIC_6531), o2369, o2370, o2419, i849, i855) :|: TRUE f6531_0_main_ConstantStackPush(EOS(STATIC_6531), o2369, o2370, o2419, i849, i855) -> f6533_0_main_IntArithmetic(EOS(STATIC_6533), o2369, o2370, o2419, i849, i855, 5) :|: TRUE f6533_0_main_IntArithmetic(EOS(STATIC_6533), o2369, o2370, o2419, i849, i855, matching1) -> f6535_0_main_IntArithmetic(EOS(STATIC_6535), o2369, o2370, o2419, i849, i855 * 5) :|: TRUE && matching1 = 5 f6535_0_main_IntArithmetic(EOS(STATIC_6535), o2369, o2370, o2419, i849, i858) -> f6537_0_main_LE(EOS(STATIC_6537), o2369, o2370, o2419, i849 + i858) :|: i849 >= 0 && i858 >= 0 f6537_0_main_LE(EOS(STATIC_6537), o2369, o2370, o2419, i861) -> f6540_0_main_LE(EOS(STATIC_6540), o2369, o2370, o2419, i861) :|: TRUE f6540_0_main_LE(EOS(STATIC_6540), o2369, o2370, o2419, i861) -> f6543_0_main_Load(EOS(STATIC_6543), o2369, o2370, o2419) :|: i861 > 0 f6543_0_main_Load(EOS(STATIC_6543), o2369, o2370, o2419) -> f6545_0_main_InvokeMethod(EOS(STATIC_6545), o2369, o2370, o2419, o2369) :|: TRUE f6545_0_main_InvokeMethod(EOS(STATIC_6545), o2369, o2370, o2419, o2369) -> f6546_0_length_ConstantStackPush(EOS(STATIC_6546), o2369, o2369) :|: TRUE f6545_0_main_InvokeMethod(EOS(STATIC_6545), o2369, o2370, o2419, o2369) -> f6546_1_length_ConstantStackPush(EOS(STATIC_6546), o2369, o2370, o2419, o2369) :|: TRUE f6546_0_length_ConstantStackPush(EOS(STATIC_6546), o2369, o2369) -> f6827_0_length_ConstantStackPush(EOS(STATIC_6827), o2369, o2369) :|: TRUE f6549_0_length_Return(EOS(STATIC_6549), o2443, o2370, o2419, i863) -> f6550_0_main_ConstantStackPush(EOS(STATIC_6550), o2443, o2370, o2419, i863) :|: TRUE f6550_0_main_ConstantStackPush(EOS(STATIC_6550), o2443, o2370, o2419, i863) -> f6551_0_main_IntArithmetic(EOS(STATIC_6551), o2443, o2370, o2419, i863, 2) :|: TRUE f6551_0_main_IntArithmetic(EOS(STATIC_6551), o2443, o2370, o2419, i863, matching1) -> f6552_0_main_ConstantStackPush(EOS(STATIC_6552), o2443, o2370, o2419, i863 % 2) :|: TRUE && matching1 = 2 f6552_0_main_ConstantStackPush(EOS(STATIC_6552), o2443, o2370, o2419, i864) -> f6553_0_main_NE(EOS(STATIC_6553), o2443, o2370, o2419, i864, 1) :|: TRUE f6553_0_main_NE(EOS(STATIC_6553), o2443, o2370, o2419, matching1, matching2) -> f6554_0_main_NE(EOS(STATIC_6554), o2443, o2370, o2419, 0, 1) :|: i864 = 0 && matching1 = 0 && matching2 = 1 f6553_0_main_NE(EOS(STATIC_6553), o2443, o2370, o2419, matching1, matching2) -> f6555_0_main_NE(EOS(STATIC_6555), o2443, o2370, o2419, 1, 1) :|: i864 = 1 && matching1 = 1 && matching2 = 1 f6554_0_main_NE(EOS(STATIC_6554), o2443, o2370, o2419, matching1, matching2) -> f6556_0_main_Load(EOS(STATIC_6556), o2443, o2370, o2419) :|: TRUE && matching1 = 0 && matching2 = 1 f6556_0_main_Load(EOS(STATIC_6556), o2443, o2370, o2419) -> f6558_0_main_InvokeMethod(EOS(STATIC_6558), o2443, o2370, o2419, o2370) :|: TRUE f6558_0_main_InvokeMethod(EOS(STATIC_6558), o2443, o2370, o2419, o2370) -> f6560_0_length_ConstantStackPush(EOS(STATIC_6560), o2370, o2419, o2370) :|: TRUE f6558_0_main_InvokeMethod(EOS(STATIC_6558), o2443, o2370, o2419, o2370) -> f6560_1_length_ConstantStackPush(EOS(STATIC_6560), o2443, o2370, o2419, o2370) :|: TRUE f6560_0_length_ConstantStackPush(EOS(STATIC_6560), o2370, o2419, o2370) -> f6857_0_length_ConstantStackPush(EOS(STATIC_6857), o2370, o2419, o2370) :|: TRUE f6571_0_length_Return(EOS(STATIC_6571), o2443, o2455, o2419, i865) -> f6573_0_main_Load(EOS(STATIC_6573), o2443, o2455, o2419, i865) :|: TRUE f6573_0_main_Load(EOS(STATIC_6573), o2443, o2455, o2419, i865) -> f6576_0_main_InvokeMethod(EOS(STATIC_6576), o2443, o2455, o2419, i865, o2419) :|: TRUE f6576_0_main_InvokeMethod(EOS(STATIC_6576), o2443, o2455, o2419, i865, o2419) -> f6579_0_length_ConstantStackPush(EOS(STATIC_6579), o2419, o2455, o2419) :|: TRUE f6576_0_main_InvokeMethod(EOS(STATIC_6576), o2443, o2455, o2419, i865, o2419) -> f6579_1_length_ConstantStackPush(EOS(STATIC_6579), o2443, o2455, o2419, i865, o2419) :|: TRUE f6579_0_length_ConstantStackPush(EOS(STATIC_6579), o2419, o2455, o2419) -> f6875_0_length_ConstantStackPush(EOS(STATIC_6875), o2419, o2455, o2419) :|: TRUE f6586_0_length_Return(EOS(STATIC_6586), o2443, o2455, o2471, i865, i866) -> f6588_0_main_LE(EOS(STATIC_6588), o2443, o2455, o2471, i865, i866) :|: TRUE f6588_0_main_LE(EOS(STATIC_6588), o2443, o2455, o2471, i865, i866) -> f6590_0_main_LE(EOS(STATIC_6590), o2443, o2455, o2471, i865, i866) :|: i865 <= i866 f6588_0_main_LE(EOS(STATIC_6588), o2443, o2455, o2471, i865, i866) -> f6591_0_main_LE(EOS(STATIC_6591), o2443, o2455, o2471, i865, i866) :|: i865 > i866 f6590_0_main_LE(EOS(STATIC_6590), o2443, o2455, o2471, i865, i866) -> f6593_0_main_Load(EOS(STATIC_6593), o2443, o2455, o2471) :|: i865 <= i866 f6593_0_main_Load(EOS(STATIC_6593), o2443, o2455, o2471) -> f6596_0_main_NONNULL(EOS(STATIC_6596), o2443, o2455, o2471, o2471) :|: TRUE f6596_0_main_NONNULL(EOS(STATIC_6596), o2443, o2455, java.lang.Object(o2472sub), java.lang.Object(o2472sub)) -> f6599_0_main_NONNULL(EOS(STATIC_6599), o2443, o2455, java.lang.Object(o2472sub), java.lang.Object(o2472sub)) :|: TRUE f6599_0_main_NONNULL(EOS(STATIC_6599), o2443, o2455, java.lang.Object(o2472sub), java.lang.Object(o2472sub)) -> f6604_0_main_New(EOS(STATIC_6604), o2443, o2455, java.lang.Object(o2472sub)) :|: TRUE f6604_0_main_New(EOS(STATIC_6604), o2443, o2455, java.lang.Object(o2472sub)) -> f6609_0_main_Duplicate(EOS(STATIC_6609), o2443, o2455, java.lang.Object(o2472sub), java.lang.Object(List(EOC, NULL))) :|: TRUE f6609_0_main_Duplicate(EOS(STATIC_6609), o2443, o2455, java.lang.Object(o2472sub), java.lang.Object(List(EOC, NULL))) -> f6612_0_main_New(EOS(STATIC_6612), o2443, o2455, java.lang.Object(o2472sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL))) :|: TRUE f6612_0_main_New(EOS(STATIC_6612), o2443, o2455, java.lang.Object(o2472sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL))) -> f6616_0_main_Duplicate(EOS(STATIC_6616), o2443, o2455, java.lang.Object(o2472sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC)) :|: TRUE f6616_0_main_Duplicate(EOS(STATIC_6616), o2443, o2455, java.lang.Object(o2472sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC)) -> f6620_0_main_InvokeMethod(EOS(STATIC_6620), o2443, o2455, java.lang.Object(o2472sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), java.lang.Object(EOC)) :|: TRUE f6620_0_main_InvokeMethod(EOS(STATIC_6620), o2443, o2455, java.lang.Object(o2472sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), java.lang.Object(EOC)) -> f6623_0_main_Load(EOS(STATIC_6623), o2443, o2455, java.lang.Object(o2472sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC)) :|: TRUE f6623_0_main_Load(EOS(STATIC_6623), o2443, o2455, java.lang.Object(o2472sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC)) -> f6627_0_main_InvokeMethod(EOS(STATIC_6627), o2455, java.lang.Object(o2472sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), o2443) :|: TRUE f6627_0_main_InvokeMethod(EOS(STATIC_6627), o2455, java.lang.Object(o2472sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), o2443) -> f6630_0__init__Load(EOS(STATIC_6630), o2455, java.lang.Object(o2472sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), o2443) :|: TRUE f6630_0__init__Load(EOS(STATIC_6630), o2455, java.lang.Object(o2472sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), o2443) -> f6633_0__init__InvokeMethod(EOS(STATIC_6633), o2455, java.lang.Object(o2472sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), o2443, java.lang.Object(List(EOC, NULL))) :|: TRUE f6633_0__init__InvokeMethod(EOS(STATIC_6633), o2455, java.lang.Object(o2472sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), o2443, java.lang.Object(List(EOC, NULL))) -> f6635_0__init__Load(EOS(STATIC_6635), o2455, java.lang.Object(o2472sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), o2443) :|: TRUE f6635_0__init__Load(EOS(STATIC_6635), o2455, java.lang.Object(o2472sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), o2443) -> f6636_0__init__Load(EOS(STATIC_6636), o2455, java.lang.Object(o2472sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), o2443, java.lang.Object(List(EOC, NULL))) :|: TRUE f6636_0__init__Load(EOS(STATIC_6636), o2455, java.lang.Object(o2472sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), o2443, java.lang.Object(List(EOC, NULL))) -> f6638_0__init__FieldAccess(EOS(STATIC_6638), o2455, java.lang.Object(o2472sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), o2443, java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC)) :|: TRUE f6638_0__init__FieldAccess(EOS(STATIC_6638), o2455, java.lang.Object(o2472sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), o2443, java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC)) -> f6640_0__init__Load(EOS(STATIC_6640), o2455, java.lang.Object(o2472sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), o2443) :|: TRUE f6640_0__init__Load(EOS(STATIC_6640), o2455, java.lang.Object(o2472sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), o2443) -> f6642_0__init__Load(EOS(STATIC_6642), o2455, java.lang.Object(o2472sub), java.lang.Object(List(EOC, NULL)), o2443, java.lang.Object(List(EOC, NULL))) :|: TRUE f6642_0__init__Load(EOS(STATIC_6642), o2455, java.lang.Object(o2472sub), java.lang.Object(List(EOC, NULL)), o2443, java.lang.Object(List(EOC, NULL))) -> f6644_0__init__FieldAccess(EOS(STATIC_6644), o2455, java.lang.Object(o2472sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), o2443) :|: TRUE f6644_0__init__FieldAccess(EOS(STATIC_6644), o2455, java.lang.Object(o2472sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), o2443) -> f6646_0__init__Return(EOS(STATIC_6646), o2455, java.lang.Object(o2472sub), java.lang.Object(List(EOC, o2443))) :|: TRUE f6646_0__init__Return(EOS(STATIC_6646), o2455, java.lang.Object(o2472sub), java.lang.Object(List(EOC, o2443))) -> f6648_0_main_Store(EOS(STATIC_6648), o2455, java.lang.Object(o2472sub), java.lang.Object(List(EOC, o2443))) :|: TRUE f6648_0_main_Store(EOS(STATIC_6648), o2455, java.lang.Object(o2472sub), java.lang.Object(List(EOC, o2443))) -> f6650_0_main_New(EOS(STATIC_6650), java.lang.Object(List(EOC, o2443)), o2455, java.lang.Object(o2472sub)) :|: TRUE f6650_0_main_New(EOS(STATIC_6650), java.lang.Object(List(EOC, o2443)), o2455, java.lang.Object(o2472sub)) -> f6652_0_main_Duplicate(EOS(STATIC_6652), java.lang.Object(List(EOC, o2443)), o2455, java.lang.Object(o2472sub), java.lang.Object(List(EOC, NULL))) :|: TRUE f6652_0_main_Duplicate(EOS(STATIC_6652), java.lang.Object(List(EOC, o2443)), o2455, java.lang.Object(o2472sub), java.lang.Object(List(EOC, NULL))) -> f6654_0_main_New(EOS(STATIC_6654), java.lang.Object(List(EOC, o2443)), o2455, java.lang.Object(o2472sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL))) :|: TRUE f6654_0_main_New(EOS(STATIC_6654), java.lang.Object(List(EOC, o2443)), o2455, java.lang.Object(o2472sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL))) -> f6656_0_main_Duplicate(EOS(STATIC_6656), java.lang.Object(List(EOC, o2443)), o2455, java.lang.Object(o2472sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC)) :|: TRUE f6656_0_main_Duplicate(EOS(STATIC_6656), java.lang.Object(List(EOC, o2443)), o2455, java.lang.Object(o2472sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC)) -> f6658_0_main_InvokeMethod(EOS(STATIC_6658), java.lang.Object(List(EOC, o2443)), o2455, java.lang.Object(o2472sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), java.lang.Object(EOC)) :|: TRUE f6658_0_main_InvokeMethod(EOS(STATIC_6658), java.lang.Object(List(EOC, o2443)), o2455, java.lang.Object(o2472sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), java.lang.Object(EOC)) -> f6660_0_main_Load(EOS(STATIC_6660), java.lang.Object(List(EOC, o2443)), o2455, java.lang.Object(o2472sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC)) :|: TRUE f6660_0_main_Load(EOS(STATIC_6660), java.lang.Object(List(EOC, o2443)), o2455, java.lang.Object(o2472sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC)) -> f6662_0_main_InvokeMethod(EOS(STATIC_6662), java.lang.Object(List(EOC, o2443)), java.lang.Object(o2472sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), o2455) :|: TRUE f6662_0_main_InvokeMethod(EOS(STATIC_6662), java.lang.Object(List(EOC, o2443)), java.lang.Object(o2472sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), o2455) -> f6663_0__init__Load(EOS(STATIC_6663), java.lang.Object(List(EOC, o2443)), java.lang.Object(o2472sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), o2455) :|: TRUE f6663_0__init__Load(EOS(STATIC_6663), java.lang.Object(List(EOC, o2443)), java.lang.Object(o2472sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), o2455) -> f6664_0__init__InvokeMethod(EOS(STATIC_6664), java.lang.Object(List(EOC, o2443)), java.lang.Object(o2472sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), o2455, java.lang.Object(List(EOC, NULL))) :|: TRUE f6664_0__init__InvokeMethod(EOS(STATIC_6664), java.lang.Object(List(EOC, o2443)), java.lang.Object(o2472sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), o2455, java.lang.Object(List(EOC, NULL))) -> f6665_0__init__Load(EOS(STATIC_6665), java.lang.Object(List(EOC, o2443)), java.lang.Object(o2472sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), o2455) :|: TRUE f6665_0__init__Load(EOS(STATIC_6665), java.lang.Object(List(EOC, o2443)), java.lang.Object(o2472sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), o2455) -> f6666_0__init__Load(EOS(STATIC_6666), java.lang.Object(List(EOC, o2443)), java.lang.Object(o2472sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), o2455, java.lang.Object(List(EOC, NULL))) :|: TRUE f6666_0__init__Load(EOS(STATIC_6666), java.lang.Object(List(EOC, o2443)), java.lang.Object(o2472sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC), o2455, java.lang.Object(List(EOC, NULL))) -> f6667_0__init__FieldAccess(EOS(STATIC_6667), java.lang.Object(List(EOC, o2443)), java.lang.Object(o2472sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), o2455, java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC)) :|: TRUE f6667_0__init__FieldAccess(EOS(STATIC_6667), java.lang.Object(List(EOC, o2443)), java.lang.Object(o2472sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), o2455, java.lang.Object(List(EOC, NULL)), java.lang.Object(EOC)) -> f6668_0__init__Load(EOS(STATIC_6668), java.lang.Object(List(EOC, o2443)), java.lang.Object(o2472sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), o2455) :|: TRUE f6668_0__init__Load(EOS(STATIC_6668), java.lang.Object(List(EOC, o2443)), java.lang.Object(o2472sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), o2455) -> f6669_0__init__Load(EOS(STATIC_6669), java.lang.Object(List(EOC, o2443)), java.lang.Object(o2472sub), java.lang.Object(List(EOC, NULL)), o2455, java.lang.Object(List(EOC, NULL))) :|: TRUE f6669_0__init__Load(EOS(STATIC_6669), java.lang.Object(List(EOC, o2443)), java.lang.Object(o2472sub), java.lang.Object(List(EOC, NULL)), o2455, java.lang.Object(List(EOC, NULL))) -> f6670_0__init__FieldAccess(EOS(STATIC_6670), java.lang.Object(List(EOC, o2443)), java.lang.Object(o2472sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), o2455) :|: TRUE f6670_0__init__FieldAccess(EOS(STATIC_6670), java.lang.Object(List(EOC, o2443)), java.lang.Object(o2472sub), java.lang.Object(List(EOC, NULL)), java.lang.Object(List(EOC, NULL)), o2455) -> f6671_0__init__Return(EOS(STATIC_6671), java.lang.Object(List(EOC, o2443)), java.lang.Object(o2472sub), java.lang.Object(List(EOC, o2455))) :|: TRUE f6671_0__init__Return(EOS(STATIC_6671), java.lang.Object(List(EOC, o2443)), java.lang.Object(o2472sub), java.lang.Object(List(EOC, o2455))) -> f6672_0_main_Store(EOS(STATIC_6672), java.lang.Object(List(EOC, o2443)), java.lang.Object(o2472sub), java.lang.Object(List(EOC, o2455))) :|: TRUE f6672_0_main_Store(EOS(STATIC_6672), java.lang.Object(List(EOC, o2443)), java.lang.Object(o2472sub), java.lang.Object(List(EOC, o2455))) -> f6673_0_main_Load(EOS(STATIC_6673), java.lang.Object(List(EOC, o2443)), java.lang.Object(List(EOC, o2455)), java.lang.Object(o2472sub)) :|: TRUE f6673_0_main_Load(EOS(STATIC_6673), java.lang.Object(List(EOC, o2443)), java.lang.Object(List(EOC, o2455)), java.lang.Object(o2472sub)) -> f6674_0_main_InvokeMethod(EOS(STATIC_6674), java.lang.Object(List(EOC, o2443)), java.lang.Object(List(EOC, o2455)), java.lang.Object(o2472sub)) :|: TRUE f6674_0_main_InvokeMethod(EOS(STATIC_6674), java.lang.Object(List(EOC, o2443)), java.lang.Object(List(EOC, o2455)), java.lang.Object(o2472sub)) -> f6675_0_getTail_Load(EOS(STATIC_6675), java.lang.Object(List(EOC, o2443)), java.lang.Object(List(EOC, o2455)), java.lang.Object(o2472sub)) :|: TRUE f6675_0_getTail_Load(EOS(STATIC_6675), java.lang.Object(List(EOC, o2443)), java.lang.Object(List(EOC, o2455)), java.lang.Object(o2472sub)) -> f6676_0_getTail_FieldAccess(EOS(STATIC_6676), java.lang.Object(List(EOC, o2443)), java.lang.Object(List(EOC, o2455)), java.lang.Object(o2472sub)) :|: TRUE f6676_0_getTail_FieldAccess(EOS(STATIC_6676), java.lang.Object(List(EOC, o2443)), java.lang.Object(List(EOC, o2455)), java.lang.Object(List(EOC, o2534))) -> f6677_0_getTail_FieldAccess(EOS(STATIC_6677), java.lang.Object(List(EOC, o2443)), java.lang.Object(List(EOC, o2455)), java.lang.Object(List(EOC, o2534))) :|: TRUE f6677_0_getTail_FieldAccess(EOS(STATIC_6677), java.lang.Object(List(EOC, o2443)), java.lang.Object(List(EOC, o2455)), java.lang.Object(List(EOC, o2534))) -> f6678_0_getTail_Return(EOS(STATIC_6678), java.lang.Object(List(EOC, o2443)), java.lang.Object(List(EOC, o2455)), o2534) :|: TRUE f6678_0_getTail_Return(EOS(STATIC_6678), java.lang.Object(List(EOC, o2443)), java.lang.Object(List(EOC, o2455)), o2534) -> f6679_0_main_Store(EOS(STATIC_6679), java.lang.Object(List(EOC, o2443)), java.lang.Object(List(EOC, o2455)), o2534) :|: TRUE f6679_0_main_Store(EOS(STATIC_6679), java.lang.Object(List(EOC, o2443)), java.lang.Object(List(EOC, o2455)), o2534) -> f6680_0_main_JMP(EOS(STATIC_6680), java.lang.Object(List(EOC, o2443)), java.lang.Object(List(EOC, o2455)), o2534) :|: TRUE f6680_0_main_JMP(EOS(STATIC_6680), java.lang.Object(List(EOC, o2443)), java.lang.Object(List(EOC, o2455)), o2534) -> f6681_0_main_Load(EOS(STATIC_6681), java.lang.Object(List(EOC, o2443)), java.lang.Object(List(EOC, o2455)), o2534) :|: TRUE f6681_0_main_Load(EOS(STATIC_6681), java.lang.Object(List(EOC, o2443)), java.lang.Object(List(EOC, o2455)), o2534) -> f6403_0_main_Load(EOS(STATIC_6403), java.lang.Object(List(EOC, o2443)), java.lang.Object(List(EOC, o2455)), o2534) :|: TRUE f6403_0_main_Load(EOS(STATIC_6403), o2202, o2203, o2204) -> f6405_0_main_InvokeMethod(EOS(STATIC_6405), o2202, o2203, o2204, o2202) :|: TRUE f6591_0_main_LE(EOS(STATIC_6591), o2443, o2455, o2471, i865, i866) -> f6594_0_main_Load(EOS(STATIC_6594), o2443, o2455, o2471) :|: i865 > i866 f6594_0_main_Load(EOS(STATIC_6594), o2443, o2455, o2471) -> f6597_0_main_InvokeMethod(EOS(STATIC_6597), o2443, o2471, o2455) :|: TRUE f6597_0_main_InvokeMethod(EOS(STATIC_6597), o2443, o2471, java.lang.Object(o2473sub)) -> f6601_0_main_InvokeMethod(EOS(STATIC_6601), o2443, o2471, java.lang.Object(o2473sub)) :|: TRUE f6601_0_main_InvokeMethod(EOS(STATIC_6601), o2443, o2471, java.lang.Object(o2473sub)) -> f6606_0_getTail_Load(EOS(STATIC_6606), o2443, o2471, java.lang.Object(o2473sub)) :|: TRUE f6606_0_getTail_Load(EOS(STATIC_6606), o2443, o2471, java.lang.Object(o2473sub)) -> f6613_0_getTail_FieldAccess(EOS(STATIC_6613), o2443, o2471, java.lang.Object(o2473sub)) :|: TRUE f6613_0_getTail_FieldAccess(EOS(STATIC_6613), o2443, o2471, java.lang.Object(List(EOC, o2486))) -> f6617_0_getTail_FieldAccess(EOS(STATIC_6617), o2443, o2471, java.lang.Object(List(EOC, o2486))) :|: TRUE f6617_0_getTail_FieldAccess(EOS(STATIC_6617), o2443, o2471, java.lang.Object(List(EOC, o2486))) -> f6621_0_getTail_Return(EOS(STATIC_6621), o2443, o2471, o2486) :|: TRUE f6621_0_getTail_Return(EOS(STATIC_6621), o2443, o2471, o2486) -> f6624_0_main_Store(EOS(STATIC_6624), o2443, o2471, o2486) :|: TRUE f6624_0_main_Store(EOS(STATIC_6624), o2443, o2471, o2486) -> f6628_0_main_JMP(EOS(STATIC_6628), o2443, o2486, o2471) :|: TRUE f6628_0_main_JMP(EOS(STATIC_6628), o2443, o2486, o2471) -> f6631_0_main_Load(EOS(STATIC_6631), o2443, o2486, o2471) :|: TRUE f6631_0_main_Load(EOS(STATIC_6631), o2443, o2486, o2471) -> f6403_0_main_Load(EOS(STATIC_6403), o2443, o2486, o2471) :|: TRUE f6555_0_main_NE(EOS(STATIC_6555), o2443, o2370, o2419, matching1, matching2) -> f6557_0_main_Load(EOS(STATIC_6557), o2443, o2370, o2419) :|: TRUE && matching1 = 1 && matching2 = 1 f6557_0_main_Load(EOS(STATIC_6557), o2443, o2370, o2419) -> f6559_0_main_InvokeMethod(EOS(STATIC_6559), o2370, o2419, o2443) :|: TRUE f6559_0_main_InvokeMethod(EOS(STATIC_6559), o2370, o2419, java.lang.Object(o2444sub)) -> f6561_0_main_InvokeMethod(EOS(STATIC_6561), o2370, o2419, java.lang.Object(o2444sub)) :|: TRUE f6561_0_main_InvokeMethod(EOS(STATIC_6561), o2370, o2419, java.lang.Object(o2444sub)) -> f6564_0_getTail_Load(EOS(STATIC_6564), o2370, o2419, java.lang.Object(o2444sub)) :|: TRUE f6564_0_getTail_Load(EOS(STATIC_6564), o2370, o2419, java.lang.Object(o2444sub)) -> f6566_0_getTail_FieldAccess(EOS(STATIC_6566), o2370, o2419, java.lang.Object(o2444sub)) :|: TRUE f6566_0_getTail_FieldAccess(EOS(STATIC_6566), o2370, o2419, java.lang.Object(List(EOC, o2458))) -> f6568_0_getTail_FieldAccess(EOS(STATIC_6568), o2370, o2419, java.lang.Object(List(EOC, o2458))) :|: TRUE f6568_0_getTail_FieldAccess(EOS(STATIC_6568), o2370, o2419, java.lang.Object(List(EOC, o2458))) -> f6572_0_getTail_Return(EOS(STATIC_6572), o2370, o2419, o2458) :|: TRUE f6572_0_getTail_Return(EOS(STATIC_6572), o2370, o2419, o2458) -> f6574_0_main_Store(EOS(STATIC_6574), o2370, o2419, o2458) :|: TRUE f6574_0_main_Store(EOS(STATIC_6574), o2370, o2419, o2458) -> f6577_0_main_JMP(EOS(STATIC_6577), o2458, o2370, o2419) :|: TRUE f6577_0_main_JMP(EOS(STATIC_6577), o2458, o2370, o2419) -> f6580_0_main_Load(EOS(STATIC_6580), o2458, o2370, o2419) :|: TRUE f6580_0_main_Load(EOS(STATIC_6580), o2458, o2370, o2419) -> f6403_0_main_Load(EOS(STATIC_6403), o2458, o2370, o2419) :|: TRUE f6407_1_length_ConstantStackPush(EOS(STATIC_6407), o2411, o2203, o2204, o2411) -> f6527_0_length_Return(EOS(STATIC_6527), o2411, o2203, o2204, i853) :|: TRUE f6431_1_length_ConstantStackPush(EOS(STATIC_6431), o2250, o2415, o2204, i827, o2415) -> f6528_0_length_Return(EOS(STATIC_6528), o2250, o2415, o2204, i827, i854) :|: TRUE f6511_1_length_ConstantStackPush(EOS(STATIC_6511), o2369, o2370, o2419, i849, o2419) -> f6529_0_length_Return(EOS(STATIC_6529), o2369, o2370, o2419, i849, i855) :|: TRUE f6546_1_length_ConstantStackPush(EOS(STATIC_6546), o2443, o2370, o2419, o2443) -> f6549_0_length_Return(EOS(STATIC_6549), o2443, o2370, o2419, i863) :|: TRUE f6560_1_length_ConstantStackPush(EOS(STATIC_6560), o2443, o2455, o2419, o2455) -> f6571_0_length_Return(EOS(STATIC_6571), o2443, o2455, o2419, i865) :|: TRUE f6579_1_length_ConstantStackPush(EOS(STATIC_6579), o2443, o2455, o2471, i865, o2471) -> f6586_0_length_Return(EOS(STATIC_6586), o2443, o2455, o2471, i865, i866) :|: TRUE Combined rules. Obtained 13 IRulesP rules: f6405_0_main_InvokeMethod(EOS(STATIC_6405), o2202:0, o2203:0, java.lang.Object(List(EOC, o2534:0)), o2202:0) -> f6405_0_main_InvokeMethod'(EOS(STATIC_6405), o2202:0, o2203:0, java.lang.Object(List(EOC, o2534:0)), o2202:0) :|: TRUE f6405_0_main_InvokeMethod'(EOS(STATIC_6405), o2202:0, o2203:0, java.lang.Object(List(EOC, o2534:0)), o2202:0) -> f6405_0_main_InvokeMethod(EOS(STATIC_6405), java.lang.Object(List(EOC, o2202:0)), java.lang.Object(List(EOC, o2203:0)), o2534:0, java.lang.Object(List(EOC, o2202:0))) :|: TRUE f6405_0_main_InvokeMethod(EOS(STATIC_6405), o2202:0, java.lang.Object(List(EOC, o2486:0)), o2204:0, o2202:0) -> f6405_0_main_InvokeMethod'(EOS(STATIC_6405), o2202:0, java.lang.Object(List(EOC, o2486:0)), o2204:0, o2202:0) :|: TRUE f6405_0_main_InvokeMethod'(EOS(STATIC_6405), o2202:0, java.lang.Object(List(EOC, o2486:0)), o2204:0, o2202:0) -> f6405_0_main_InvokeMethod(EOS(STATIC_6405), o2202:0, o2486:0, o2204:0, o2202:0) :|: TRUE f6405_0_main_InvokeMethod(EOS(STATIC_6405), java.lang.Object(List(EOC, o2458:0)), o2203:0, o2204:0, java.lang.Object(List(EOC, o2458:0))) -> f6405_0_main_InvokeMethod'(EOS(STATIC_6405), java.lang.Object(List(EOC, o2458:0)), o2203:0, o2204:0, java.lang.Object(List(EOC, o2458:0))) :|: TRUE f6405_0_main_InvokeMethod'(EOS(STATIC_6405), java.lang.Object(List(EOC, o2458:0)), o2203:0, o2204:0, java.lang.Object(List(EOC, o2458:0))) -> f6405_0_main_InvokeMethod(EOS(STATIC_6405), o2458:0, o2203:0, o2204:0, o2458:0) :|: TRUE f6405_0_main_InvokeMethod(EOS(STATIC_6405), o2202:0, o2203:0, o2204:0, o2202:0) -> f6405_0_main_InvokeMethod'(EOS(STATIC_6405), o2202:0, o2203:0, o2204:0, o2202:0) :|: TRUE Removed following non-SCC rules: f6405_0_main_InvokeMethod(EOS(STATIC_6405), o2202:0, o2203:0, o2204:0, o2202:0) -> f6799_0_length_ConstantStackPush(EOS(STATIC_6799), o2204:0, o2203:0, o2204:0) :|: TRUE f6405_0_main_InvokeMethod(EOS(STATIC_6405), o2202:0, o2203:0, o2204:0, o2202:0) -> f6757_0_length_ConstantStackPush(EOS(STATIC_6757), o2202:0, o2202:0) :|: TRUE f6405_0_main_InvokeMethod'(EOS(STATIC_6405), o2202:0, o2203:0, o2204:0, o2202:0) -> f6857_0_length_ConstantStackPush(EOS(STATIC_6857), o2203:0, o2204:0, o2203:0) :|: TRUE f6405_0_main_InvokeMethod(EOS(STATIC_6405), o2202:0, o2203:0, o2204:0, o2202:0) -> f6777_0_length_ConstantStackPush(EOS(STATIC_6777), o2203:0, o2204:0, o2203:0) :|: TRUE f6405_0_main_InvokeMethod(EOS(STATIC_6405), o2202:0, o2203:0, o2204:0, o2202:0) -> f6827_0_length_ConstantStackPush(EOS(STATIC_6827), o2202:0, o2202:0) :|: TRUE f6405_0_main_InvokeMethod'(EOS(STATIC_6405), o2202:0, o2203:0, o2204:0, o2202:0) -> f6875_0_length_ConstantStackPush(EOS(STATIC_6875), o2204:0, o2203:0, o2204:0) :|: TRUE Filtered constant ground arguments: f6405_0_main_InvokeMethod(x1, x2, x3, x4, x5) -> f6405_0_main_InvokeMethod(x2, x3, x4, x5) f6405_0_main_InvokeMethod'(x1, x2, x3, x4, x5) -> f6405_0_main_InvokeMethod'(x2, x3, x4, x5) EOS(x1) -> EOS List(x1, x2) -> List(x2) Filtered duplicate arguments: f6405_0_main_InvokeMethod(x1, x2, x3, x4) -> f6405_0_main_InvokeMethod(x2, x3, x4) f6405_0_main_InvokeMethod'(x1, x2, x3, x4) -> f6405_0_main_InvokeMethod'(x2, x3, x4) Finished conversion. Obtained 7 rules.P rules: f6405_0_main_InvokeMethod(o2203:0, java.lang.Object(List(o2534:0)), o2202:0) -> f6405_0_main_InvokeMethod'(o2203:0, java.lang.Object(List(o2534:0)), o2202:0) :|: TRUE f6405_0_main_InvokeMethod'(o2203:0, java.lang.Object(List(o2534:0)), o2202:0) -> f6405_0_main_InvokeMethod(java.lang.Object(List(o2203:0)), o2534:0, java.lang.Object(List(o2202:0))) :|: TRUE f6405_0_main_InvokeMethod(java.lang.Object(List(o2486:0)), o2204:0, o2202:0) -> f6405_0_main_InvokeMethod'(java.lang.Object(List(o2486:0)), o2204:0, o2202:0) :|: TRUE f6405_0_main_InvokeMethod'(java.lang.Object(List(o2486:0)), o2204:0, o2202:0) -> f6405_0_main_InvokeMethod(o2486:0, o2204:0, o2202:0) :|: TRUE f6405_0_main_InvokeMethod(o2203:0, o2204:0, java.lang.Object(List(o2458:0))) -> f6405_0_main_InvokeMethod'(o2203:0, o2204:0, java.lang.Object(List(o2458:0))) :|: TRUE f6405_0_main_InvokeMethod'(o2203:0, o2204:0, java.lang.Object(List(o2458:0))) -> f6405_0_main_InvokeMethod(o2203:0, o2204:0, o2458:0) :|: TRUE f6405_0_main_InvokeMethod(o2203:0, o2204:0, o2202:0) -> f6405_0_main_InvokeMethod'(o2203:0, o2204:0, o2202:0) :|: TRUE ---------------------------------------- (27) Obligation: Rules: f6405_0_main_InvokeMethod(o2203:0, java.lang.Object(List(o2534:0)), o2202:0) -> f6405_0_main_InvokeMethod'(o2203:0, java.lang.Object(List(o2534:0)), o2202:0) :|: TRUE f6405_0_main_InvokeMethod'(x, java.lang.Object(List(x1)), x2) -> f6405_0_main_InvokeMethod(java.lang.Object(List(x)), x1, java.lang.Object(List(x2))) :|: TRUE f6405_0_main_InvokeMethod(java.lang.Object(List(x3)), x4, x5) -> f6405_0_main_InvokeMethod'(java.lang.Object(List(x3)), x4, x5) :|: TRUE f6405_0_main_InvokeMethod'(java.lang.Object(List(x6)), x7, x8) -> f6405_0_main_InvokeMethod(x6, x7, x8) :|: TRUE f6405_0_main_InvokeMethod(x9, x10, java.lang.Object(List(x11))) -> f6405_0_main_InvokeMethod'(x9, x10, java.lang.Object(List(x11))) :|: TRUE f6405_0_main_InvokeMethod'(x12, x13, java.lang.Object(List(x14))) -> f6405_0_main_InvokeMethod(x12, x13, x14) :|: TRUE f6405_0_main_InvokeMethod(x15, x16, x17) -> f6405_0_main_InvokeMethod'(x15, x16, x17) :|: TRUE ---------------------------------------- (28) IRSFormatTransformerProof (EQUIVALENT) Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). ---------------------------------------- (29) Obligation: Rules: f6405_0_main_InvokeMethod(o2203:0, java.lang.Object(List(o2534:0)), o2202:0) -> f6405_0_main_InvokeMethod'(o2203:0, java.lang.Object(List(o2534:0)), o2202:0) :|: TRUE f6405_0_main_InvokeMethod'(x, java.lang.Object(List(x1)), x2) -> f6405_0_main_InvokeMethod(java.lang.Object(List(x)), x1, java.lang.Object(List(x2))) :|: TRUE f6405_0_main_InvokeMethod(java.lang.Object(List(x3)), x4, x5) -> f6405_0_main_InvokeMethod'(java.lang.Object(List(x3)), x4, x5) :|: TRUE f6405_0_main_InvokeMethod'(java.lang.Object(List(x6)), x7, x8) -> f6405_0_main_InvokeMethod(x6, x7, x8) :|: TRUE f6405_0_main_InvokeMethod(x9, x10, java.lang.Object(List(x11))) -> f6405_0_main_InvokeMethod'(x9, x10, java.lang.Object(List(x11))) :|: TRUE f6405_0_main_InvokeMethod'(x12, x13, java.lang.Object(List(x14))) -> f6405_0_main_InvokeMethod(x12, x13, x14) :|: TRUE f6405_0_main_InvokeMethod(x15, x16, x17) -> f6405_0_main_InvokeMethod'(x15, x16, x17) :|: TRUE ---------------------------------------- (30) IRSwTTerminationDigraphProof (EQUIVALENT) Constructed termination digraph! Nodes: (1) f6405_0_main_InvokeMethod(o2203:0, java.lang.Object(List(o2534:0)), o2202:0) -> f6405_0_main_InvokeMethod'(o2203:0, java.lang.Object(List(o2534:0)), o2202:0) :|: TRUE (2) f6405_0_main_InvokeMethod'(x, java.lang.Object(List(x1)), x2) -> f6405_0_main_InvokeMethod(java.lang.Object(List(x)), x1, java.lang.Object(List(x2))) :|: TRUE (3) f6405_0_main_InvokeMethod(java.lang.Object(List(x3)), x4, x5) -> f6405_0_main_InvokeMethod'(java.lang.Object(List(x3)), x4, x5) :|: TRUE (4) f6405_0_main_InvokeMethod'(java.lang.Object(List(x6)), x7, x8) -> f6405_0_main_InvokeMethod(x6, x7, x8) :|: TRUE (5) f6405_0_main_InvokeMethod(x9, x10, java.lang.Object(List(x11))) -> f6405_0_main_InvokeMethod'(x9, x10, java.lang.Object(List(x11))) :|: TRUE (6) f6405_0_main_InvokeMethod'(x12, x13, java.lang.Object(List(x14))) -> f6405_0_main_InvokeMethod(x12, x13, x14) :|: TRUE (7) f6405_0_main_InvokeMethod(x15, x16, x17) -> f6405_0_main_InvokeMethod'(x15, x16, x17) :|: TRUE Arcs: (1) -> (2), (4), (6) (2) -> (1), (3), (5), (7) (3) -> (2), (4), (6) (4) -> (1), (3), (5), (7) (5) -> (2), (4), (6) (6) -> (1), (3), (5), (7) (7) -> (2), (4), (6) This digraph is fully evaluated! ---------------------------------------- (31) Obligation: Termination digraph: Nodes: (1) f6405_0_main_InvokeMethod(o2203:0, java.lang.Object(List(o2534:0)), o2202:0) -> f6405_0_main_InvokeMethod'(o2203:0, java.lang.Object(List(o2534:0)), o2202:0) :|: TRUE (2) f6405_0_main_InvokeMethod'(x, java.lang.Object(List(x1)), x2) -> f6405_0_main_InvokeMethod(java.lang.Object(List(x)), x1, java.lang.Object(List(x2))) :|: TRUE (3) f6405_0_main_InvokeMethod(java.lang.Object(List(x3)), x4, x5) -> f6405_0_main_InvokeMethod'(java.lang.Object(List(x3)), x4, x5) :|: TRUE (4) f6405_0_main_InvokeMethod'(java.lang.Object(List(x6)), x7, x8) -> f6405_0_main_InvokeMethod(x6, x7, x8) :|: TRUE (5) f6405_0_main_InvokeMethod(x9, x10, java.lang.Object(List(x11))) -> f6405_0_main_InvokeMethod'(x9, x10, java.lang.Object(List(x11))) :|: TRUE (6) f6405_0_main_InvokeMethod'(x12, x13, java.lang.Object(List(x14))) -> f6405_0_main_InvokeMethod(x12, x13, x14) :|: TRUE (7) f6405_0_main_InvokeMethod(x15, x16, x17) -> f6405_0_main_InvokeMethod'(x15, x16, x17) :|: TRUE Arcs: (1) -> (2), (4), (6) (2) -> (1), (3), (5), (7) (3) -> (2), (4), (6) (4) -> (1), (3), (5), (7) (5) -> (2), (4), (6) (6) -> (1), (3), (5), (7) (7) -> (2), (4), (6) This digraph is fully evaluated! ---------------------------------------- (32) TempFilterProof (SOUND) Used the following sort dictionary for filtering: f6405_0_main_InvokeMethod(VARIABLE, VARIABLE, VARIABLE) java.lang.Object(VARIABLE) List(VARIABLE) f6405_0_main_InvokeMethod'(VARIABLE, VARIABLE, VARIABLE) Removed predefined arithmetic. ---------------------------------------- (33) Obligation: Rules: f6405_0_main_InvokeMethod(o2203:0, java.lang.Object(List(o2534:0)), o2202:0) -> f6405_0_main_InvokeMethod'(o2203:0, java.lang.Object(List(o2534:0)), o2202:0) f6405_0_main_InvokeMethod'(x, java.lang.Object(List(x1)), x2) -> f6405_0_main_InvokeMethod(java.lang.Object(List(x)), x1, java.lang.Object(List(x2))) f6405_0_main_InvokeMethod(java.lang.Object(List(x3)), x4, x5) -> f6405_0_main_InvokeMethod'(java.lang.Object(List(x3)), x4, x5) f6405_0_main_InvokeMethod'(java.lang.Object(List(x6)), x7, x8) -> f6405_0_main_InvokeMethod(x6, x7, x8) f6405_0_main_InvokeMethod(x9, x10, java.lang.Object(List(x11))) -> f6405_0_main_InvokeMethod'(x9, x10, java.lang.Object(List(x11))) f6405_0_main_InvokeMethod'(x12, x13, java.lang.Object(List(x14))) -> f6405_0_main_InvokeMethod(x12, x13, x14) f6405_0_main_InvokeMethod(x15, x16, x17) -> f6405_0_main_InvokeMethod'(x15, x16, x17) ---------------------------------------- (34) IRSwTToQDPProof (SOUND) Removed the integers and created a QDP-Problem. ---------------------------------------- (35) Obligation: Q DP problem: The TRS P consists of the following rules: f6405_0_main_InvokeMethod(o2203:0, java.lang.Object(List(o2534:0)), o2202:0) -> f6405_0_main_InvokeMethod'(o2203:0, java.lang.Object(List(o2534:0)), o2202:0) f6405_0_main_InvokeMethod'(x, java.lang.Object(List(x1)), x2) -> f6405_0_main_InvokeMethod(java.lang.Object(List(x)), x1, java.lang.Object(List(x2))) f6405_0_main_InvokeMethod(java.lang.Object(List(x3)), x4, x5) -> f6405_0_main_InvokeMethod'(java.lang.Object(List(x3)), x4, x5) f6405_0_main_InvokeMethod'(java.lang.Object(List(x6)), x7, x8) -> f6405_0_main_InvokeMethod(x6, x7, x8) f6405_0_main_InvokeMethod(x9, x10, java.lang.Object(List(x11))) -> f6405_0_main_InvokeMethod'(x9, x10, java.lang.Object(List(x11))) f6405_0_main_InvokeMethod'(x12, x13, java.lang.Object(List(x14))) -> f6405_0_main_InvokeMethod(x12, x13, x14) f6405_0_main_InvokeMethod(x15, x16, x17) -> f6405_0_main_InvokeMethod'(x15, x16, x17) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (36) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *f6405_0_main_InvokeMethod'(x, java.lang.Object(List(x1)), x2) -> f6405_0_main_InvokeMethod(java.lang.Object(List(x)), x1, java.lang.Object(List(x2))) The graph contains the following edges 2 > 2 *f6405_0_main_InvokeMethod'(java.lang.Object(List(x6)), x7, x8) -> f6405_0_main_InvokeMethod(x6, x7, x8) The graph contains the following edges 1 > 1, 2 >= 2, 3 >= 3 *f6405_0_main_InvokeMethod'(x12, x13, java.lang.Object(List(x14))) -> f6405_0_main_InvokeMethod(x12, x13, x14) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3 *f6405_0_main_InvokeMethod(o2203:0, java.lang.Object(List(o2534:0)), o2202:0) -> f6405_0_main_InvokeMethod'(o2203:0, java.lang.Object(List(o2534:0)), o2202:0) The graph contains the following edges 1 >= 1, 2 >= 2, 3 >= 3 *f6405_0_main_InvokeMethod(java.lang.Object(List(x3)), x4, x5) -> f6405_0_main_InvokeMethod'(java.lang.Object(List(x3)), x4, x5) The graph contains the following edges 1 >= 1, 2 >= 2, 3 >= 3 *f6405_0_main_InvokeMethod(x9, x10, java.lang.Object(List(x11))) -> f6405_0_main_InvokeMethod'(x9, x10, java.lang.Object(List(x11))) The graph contains the following edges 1 >= 1, 2 >= 2, 3 >= 3 *f6405_0_main_InvokeMethod(x15, x16, x17) -> f6405_0_main_InvokeMethod'(x15, x16, x17) The graph contains the following edges 1 >= 1, 2 >= 2, 3 >= 3 ---------------------------------------- (37) YES