8.28/3.23 YES 8.28/3.25 proof of /export/starexec/sandbox/benchmark/theBenchmark.jar 8.28/3.25 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 8.28/3.25 8.28/3.25 8.28/3.25 termination of the given Bare JBC problem could be proven: 8.28/3.25 8.28/3.25 (0) Bare JBC problem 8.28/3.25 (1) BareJBCToJBCProof [EQUIVALENT, 95 ms] 8.28/3.25 (2) JBC problem 8.28/3.25 (3) JBCToGraph [EQUIVALENT, 451 ms] 8.28/3.25 (4) JBCTerminationGraph 8.28/3.25 (5) TerminationGraphToSCCProof [SOUND, 0 ms] 8.28/3.25 (6) AND 8.28/3.25 (7) JBCTerminationSCC 8.28/3.25 (8) SCCToIRSProof [SOUND, 3 ms] 8.28/3.25 (9) IRSwT 8.28/3.25 (10) IRSFormatTransformerProof [EQUIVALENT, 0 ms] 8.28/3.25 (11) IRSwT 8.28/3.25 (12) IRSwTTerminationDigraphProof [EQUIVALENT, 1 ms] 8.28/3.25 (13) IRSwT 8.28/3.25 (14) IntTRSCompressionProof [EQUIVALENT, 0 ms] 8.28/3.25 (15) IRSwT 8.28/3.25 (16) TempFilterProof [SOUND, 35 ms] 8.28/3.25 (17) IntTRS 8.28/3.25 (18) RankingReductionPairProof [EQUIVALENT, 20 ms] 8.28/3.25 (19) YES 8.28/3.25 (20) JBCTerminationSCC 8.28/3.25 (21) SCCToQDPProof [SOUND, 351 ms] 8.28/3.25 (22) QDP 8.28/3.25 (23) MRRProof [EQUIVALENT, 0 ms] 8.28/3.25 (24) QDP 8.28/3.25 (25) PisEmptyProof [EQUIVALENT, 0 ms] 8.28/3.25 (26) YES 8.28/3.25 8.28/3.25 8.28/3.25 ---------------------------------------- 8.28/3.25 8.28/3.25 (0) 8.28/3.25 Obligation: 8.28/3.25 need to prove termination of the following program: 8.28/3.25 package AlternatingGrowReduce; 8.28/3.25 8.28/3.25 public class AlternatingGrowReduce { 8.28/3.25 AlternatingGrowReduce next; 8.28/3.25 8.28/3.25 public static void main(String[] argv) { 8.28/3.25 Random.args = argv; 8.28/3.25 AlternatingGrowReduce list = createList(Random.random()); 8.28/3.25 8.28/3.25 int mode = 0; 8.28/3.25 while (list != null) { 8.28/3.25 if (mode == 0) { 8.28/3.25 list = list.next.next.next.next; 8.28/3.25 } else if (mode == 1) { 8.28/3.25 list = new AlternatingGrowReduce(list); 8.28/3.25 } else if (mode > 1) { 8.28/3.25 list = new AlternatingGrowReduce(new AlternatingGrowReduce(list)); 8.28/3.25 } 8.28/3.25 8.28/3.25 mode++; 8.28/3.25 if (mode > 2) { 8.28/3.25 mode = 0; 8.28/3.25 } 8.28/3.25 } 8.28/3.25 } 8.28/3.25 8.28/3.25 public AlternatingGrowReduce(AlternatingGrowReduce old) { 8.28/3.25 this.next = old; 8.28/3.25 } 8.28/3.25 8.28/3.25 public static AlternatingGrowReduce createList(int length) { 8.28/3.25 AlternatingGrowReduce res = new AlternatingGrowReduce(null); 8.28/3.25 while (length > 0) { 8.28/3.25 res = new AlternatingGrowReduce(res); 8.28/3.25 length--; 8.28/3.25 } 8.28/3.25 return res; 8.28/3.25 } 8.28/3.25 } 8.28/3.25 8.28/3.25 8.28/3.25 package AlternatingGrowReduce; 8.28/3.25 8.28/3.25 public class Random { 8.28/3.25 static String[] args; 8.28/3.25 static int index = 0; 8.28/3.25 8.28/3.25 public static int random() { 8.28/3.25 String string = args[index]; 8.28/3.25 index++; 8.28/3.25 return string.length(); 8.28/3.25 } 8.28/3.25 } 8.28/3.25 8.28/3.25 8.28/3.25 8.28/3.25 ---------------------------------------- 8.28/3.25 8.28/3.25 (1) BareJBCToJBCProof (EQUIVALENT) 8.28/3.25 initialized classpath 8.28/3.25 ---------------------------------------- 8.28/3.25 8.28/3.25 (2) 8.28/3.25 Obligation: 8.28/3.25 need to prove termination of the following program: 8.28/3.25 package AlternatingGrowReduce; 8.28/3.25 8.28/3.25 public class AlternatingGrowReduce { 8.28/3.25 AlternatingGrowReduce next; 8.28/3.25 8.28/3.25 public static void main(String[] argv) { 8.28/3.25 Random.args = argv; 8.28/3.25 AlternatingGrowReduce list = createList(Random.random()); 8.28/3.25 8.28/3.25 int mode = 0; 8.28/3.25 while (list != null) { 8.28/3.25 if (mode == 0) { 8.28/3.25 list = list.next.next.next.next; 8.28/3.25 } else if (mode == 1) { 8.28/3.25 list = new AlternatingGrowReduce(list); 8.28/3.25 } else if (mode > 1) { 8.28/3.25 list = new AlternatingGrowReduce(new AlternatingGrowReduce(list)); 8.28/3.25 } 8.28/3.25 8.28/3.25 mode++; 8.28/3.25 if (mode > 2) { 8.28/3.25 mode = 0; 8.28/3.25 } 8.28/3.25 } 8.28/3.25 } 8.28/3.25 8.28/3.25 public AlternatingGrowReduce(AlternatingGrowReduce old) { 8.28/3.25 this.next = old; 8.28/3.25 } 8.28/3.25 8.28/3.25 public static AlternatingGrowReduce createList(int length) { 8.28/3.25 AlternatingGrowReduce res = new AlternatingGrowReduce(null); 8.28/3.25 while (length > 0) { 8.28/3.25 res = new AlternatingGrowReduce(res); 8.28/3.25 length--; 8.28/3.25 } 8.28/3.25 return res; 8.28/3.25 } 8.28/3.25 } 8.28/3.25 8.28/3.25 8.28/3.25 package AlternatingGrowReduce; 8.28/3.25 8.28/3.25 public class Random { 8.28/3.25 static String[] args; 8.28/3.25 static int index = 0; 8.28/3.25 8.28/3.25 public static int random() { 8.28/3.25 String string = args[index]; 8.28/3.25 index++; 8.28/3.25 return string.length(); 8.28/3.25 } 8.28/3.25 } 8.28/3.25 8.28/3.25 8.28/3.25 8.28/3.25 ---------------------------------------- 8.28/3.25 8.28/3.25 (3) JBCToGraph (EQUIVALENT) 8.28/3.25 Constructed TerminationGraph. 8.28/3.25 ---------------------------------------- 8.28/3.25 8.28/3.25 (4) 8.28/3.25 Obligation: 8.28/3.25 Termination Graph based on JBC Program: 8.28/3.25 AlternatingGrowReduce.AlternatingGrowReduce.main([Ljava/lang/String;)V: Graph of 253 nodes with 1 SCC. 8.28/3.25 8.28/3.25 8.28/3.25 8.28/3.25 AlternatingGrowReduce.AlternatingGrowReduce.createList(I)LAlternatingGrowReduce/AlternatingGrowReduce;: Graph of 34 nodes with 1 SCC. 8.28/3.25 8.28/3.25 8.28/3.25 8.28/3.25 8.28/3.25 8.28/3.25 ---------------------------------------- 8.28/3.25 8.28/3.25 (5) TerminationGraphToSCCProof (SOUND) 8.28/3.25 Splitted TerminationGraph to 2 SCCss. 8.28/3.25 ---------------------------------------- 8.28/3.25 8.28/3.25 (6) 8.28/3.25 Complex Obligation (AND) 8.28/3.25 8.28/3.25 ---------------------------------------- 8.28/3.25 8.28/3.25 (7) 8.28/3.25 Obligation: 8.28/3.25 SCC of termination graph based on JBC Program. 8.28/3.25 SCC contains nodes from the following methods: AlternatingGrowReduce.AlternatingGrowReduce.createList(I)LAlternatingGrowReduce/AlternatingGrowReduce; 8.28/3.25 SCC calls the following helper methods: 8.28/3.25 Performed SCC analyses: 8.28/3.25 *Used field analysis yielded the following read fields: 8.28/3.25 8.28/3.25 *Marker field analysis yielded the following relations that could be markers: 8.28/3.25 8.28/3.25 ---------------------------------------- 8.28/3.25 8.28/3.25 (8) SCCToIRSProof (SOUND) 8.28/3.25 Transformed FIGraph SCCs to intTRSs. Log: 8.28/3.25 Generated rules. Obtained 17 IRulesP rules: 8.28/3.25 f690_0_createList_LE(EOS(STATIC_690), i71, i71) -> f696_0_createList_LE(EOS(STATIC_696), i71, i71) :|: TRUE 8.28/3.25 f696_0_createList_LE(EOS(STATIC_696), i71, i71) -> f702_0_createList_New(EOS(STATIC_702), i71) :|: i71 > 0 8.28/3.25 f702_0_createList_New(EOS(STATIC_702), i71) -> f724_0_createList_Duplicate(EOS(STATIC_724), i71) :|: TRUE 8.28/3.25 f724_0_createList_Duplicate(EOS(STATIC_724), i71) -> f731_0_createList_Load(EOS(STATIC_731), i71) :|: TRUE 8.28/3.25 f731_0_createList_Load(EOS(STATIC_731), i71) -> f753_0_createList_InvokeMethod(EOS(STATIC_753), i71) :|: TRUE 8.28/3.25 f753_0_createList_InvokeMethod(EOS(STATIC_753), i71) -> f778_0__init__Load(EOS(STATIC_778), i71) :|: TRUE 8.28/3.25 f778_0__init__Load(EOS(STATIC_778), i71) -> f787_0__init__InvokeMethod(EOS(STATIC_787), i71) :|: TRUE 8.28/3.25 f787_0__init__InvokeMethod(EOS(STATIC_787), i71) -> f794_0__init__Load(EOS(STATIC_794), i71) :|: TRUE 8.28/3.25 f794_0__init__Load(EOS(STATIC_794), i71) -> f799_0__init__Load(EOS(STATIC_799), i71) :|: TRUE 8.28/3.25 f799_0__init__Load(EOS(STATIC_799), i71) -> f805_0__init__FieldAccess(EOS(STATIC_805), i71) :|: TRUE 8.28/3.25 f805_0__init__FieldAccess(EOS(STATIC_805), i71) -> f814_0__init__Return(EOS(STATIC_814), i71) :|: TRUE 8.28/3.25 f814_0__init__Return(EOS(STATIC_814), i71) -> f816_0_createList_Store(EOS(STATIC_816), i71) :|: TRUE 8.28/3.25 f816_0_createList_Store(EOS(STATIC_816), i71) -> f818_0_createList_Inc(EOS(STATIC_818), i71) :|: TRUE 8.28/3.25 f818_0_createList_Inc(EOS(STATIC_818), i71) -> f821_0_createList_JMP(EOS(STATIC_821), i71 + -1) :|: TRUE 8.28/3.25 f821_0_createList_JMP(EOS(STATIC_821), i88) -> f825_0_createList_Load(EOS(STATIC_825), i88) :|: TRUE 8.28/3.25 f825_0_createList_Load(EOS(STATIC_825), i88) -> f686_0_createList_Load(EOS(STATIC_686), i88) :|: TRUE 8.28/3.25 f686_0_createList_Load(EOS(STATIC_686), i64) -> f690_0_createList_LE(EOS(STATIC_690), i64, i64) :|: TRUE 8.28/3.25 Combined rules. Obtained 1 IRulesP rules: 8.28/3.25 f690_0_createList_LE(EOS(STATIC_690), i71:0, i71:0) -> f690_0_createList_LE(EOS(STATIC_690), i71:0 - 1, i71:0 - 1) :|: i71:0 > 0 8.28/3.25 Filtered constant ground arguments: 8.28/3.25 f690_0_createList_LE(x1, x2, x3) -> f690_0_createList_LE(x2, x3) 8.28/3.25 EOS(x1) -> EOS 8.28/3.25 Filtered duplicate arguments: 8.28/3.25 f690_0_createList_LE(x1, x2) -> f690_0_createList_LE(x2) 8.28/3.25 Finished conversion. Obtained 1 rules.P rules: 8.28/3.25 f690_0_createList_LE(i71:0) -> f690_0_createList_LE(i71:0 - 1) :|: i71:0 > 0 8.28/3.25 8.28/3.25 ---------------------------------------- 8.28/3.25 8.28/3.25 (9) 8.28/3.25 Obligation: 8.28/3.25 Rules: 8.28/3.25 f690_0_createList_LE(i71:0) -> f690_0_createList_LE(i71:0 - 1) :|: i71:0 > 0 8.28/3.25 8.28/3.25 ---------------------------------------- 8.28/3.25 8.28/3.25 (10) IRSFormatTransformerProof (EQUIVALENT) 8.28/3.25 Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). 8.28/3.25 ---------------------------------------- 8.28/3.25 8.28/3.25 (11) 8.28/3.25 Obligation: 8.28/3.25 Rules: 8.28/3.25 f690_0_createList_LE(i71:0) -> f690_0_createList_LE(arith) :|: i71:0 > 0 && arith = i71:0 - 1 8.28/3.25 8.28/3.25 ---------------------------------------- 8.28/3.25 8.28/3.25 (12) IRSwTTerminationDigraphProof (EQUIVALENT) 8.28/3.25 Constructed termination digraph! 8.28/3.25 Nodes: 8.28/3.25 (1) f690_0_createList_LE(i71:0) -> f690_0_createList_LE(arith) :|: i71:0 > 0 && arith = i71:0 - 1 8.28/3.25 8.28/3.25 Arcs: 8.28/3.25 (1) -> (1) 8.28/3.25 8.28/3.25 This digraph is fully evaluated! 8.28/3.25 ---------------------------------------- 8.28/3.25 8.28/3.25 (13) 8.28/3.25 Obligation: 8.28/3.25 8.28/3.25 Termination digraph: 8.28/3.25 Nodes: 8.28/3.25 (1) f690_0_createList_LE(i71:0) -> f690_0_createList_LE(arith) :|: i71:0 > 0 && arith = i71:0 - 1 8.28/3.25 8.28/3.25 Arcs: 8.28/3.25 (1) -> (1) 8.28/3.25 8.28/3.25 This digraph is fully evaluated! 8.28/3.25 8.28/3.25 ---------------------------------------- 8.28/3.25 8.28/3.25 (14) IntTRSCompressionProof (EQUIVALENT) 8.28/3.25 Compressed rules. 8.28/3.25 ---------------------------------------- 8.28/3.25 8.28/3.25 (15) 8.28/3.25 Obligation: 8.28/3.25 Rules: 8.28/3.25 f690_0_createList_LE(i71:0:0) -> f690_0_createList_LE(i71:0:0 - 1) :|: i71:0:0 > 0 8.28/3.25 8.28/3.25 ---------------------------------------- 8.28/3.25 8.28/3.25 (16) TempFilterProof (SOUND) 8.28/3.25 Used the following sort dictionary for filtering: 8.28/3.25 f690_0_createList_LE(INTEGER) 8.28/3.25 Replaced non-predefined constructor symbols by 0. 8.28/3.25 ---------------------------------------- 8.28/3.25 8.28/3.25 (17) 8.28/3.25 Obligation: 8.28/3.25 Rules: 8.28/3.25 f690_0_createList_LE(i71:0:0) -> f690_0_createList_LE(c) :|: c = i71:0:0 - 1 && i71:0:0 > 0 8.28/3.25 8.28/3.25 ---------------------------------------- 8.28/3.25 8.28/3.25 (18) RankingReductionPairProof (EQUIVALENT) 8.28/3.25 Interpretation: 8.28/3.25 [ f690_0_createList_LE ] = f690_0_createList_LE_1 8.28/3.25 8.28/3.25 The following rules are decreasing: 8.28/3.25 f690_0_createList_LE(i71:0:0) -> f690_0_createList_LE(c) :|: c = i71:0:0 - 1 && i71:0:0 > 0 8.28/3.25 8.28/3.25 The following rules are bounded: 8.28/3.25 f690_0_createList_LE(i71:0:0) -> f690_0_createList_LE(c) :|: c = i71:0:0 - 1 && i71:0:0 > 0 8.28/3.25 8.28/3.25 8.28/3.25 ---------------------------------------- 8.28/3.25 8.28/3.25 (19) 8.28/3.25 YES 8.28/3.25 8.28/3.25 ---------------------------------------- 8.28/3.25 8.28/3.25 (20) 8.28/3.25 Obligation: 8.28/3.25 SCC of termination graph based on JBC Program. 8.28/3.25 SCC contains nodes from the following methods: AlternatingGrowReduce.AlternatingGrowReduce.main([Ljava/lang/String;)V 8.28/3.25 SCC calls the following helper methods: 8.28/3.25 Performed SCC analyses: 8.28/3.25 *Used field analysis yielded the following read fields: 8.28/3.25 *AlternatingGrowReduce.AlternatingGrowReduce: [next] 8.28/3.25 *Marker field analysis yielded the following relations that could be markers: 8.28/3.25 8.28/3.25 ---------------------------------------- 8.28/3.25 8.28/3.25 (21) SCCToQDPProof (SOUND) 8.28/3.25 Transformed TerminationGraph SCC to QDP. Log: 8.28/3.25 Generated rules. Obtained 81 IRulesP rules: 8.28/3.25 f1192_0_main_NULL(EOS(STATIC_1192), java.lang.Object(o216sub), i122, java.lang.Object(o216sub)) -> f1195_0_main_NULL(EOS(STATIC_1195), java.lang.Object(o216sub), i122, java.lang.Object(o216sub)) :|: TRUE 8.28/3.25 f1195_0_main_NULL(EOS(STATIC_1195), java.lang.Object(o216sub), i122, java.lang.Object(o216sub)) -> f1198_0_main_Load(EOS(STATIC_1198), java.lang.Object(o216sub), i122) :|: TRUE 8.28/3.25 f1198_0_main_Load(EOS(STATIC_1198), java.lang.Object(o216sub), i122) -> f1202_0_main_NE(EOS(STATIC_1202), java.lang.Object(o216sub), i122, i122) :|: TRUE 8.28/3.25 f1202_0_main_NE(EOS(STATIC_1202), java.lang.Object(o216sub), i125, i125) -> f1207_0_main_NE(EOS(STATIC_1207), java.lang.Object(o216sub), i125, i125) :|: TRUE 8.28/3.25 f1202_0_main_NE(EOS(STATIC_1202), java.lang.Object(o216sub), matching1, matching2) -> f1208_0_main_NE(EOS(STATIC_1208), java.lang.Object(o216sub), 0, 0) :|: TRUE && matching1 = 0 && matching2 = 0 8.28/3.25 f1207_0_main_NE(EOS(STATIC_1207), java.lang.Object(o216sub), i125, i125) -> f1209_0_main_Load(EOS(STATIC_1209), java.lang.Object(o216sub), i125) :|: i125 > 0 8.28/3.25 f1209_0_main_Load(EOS(STATIC_1209), java.lang.Object(o216sub), i125) -> f1211_0_main_ConstantStackPush(EOS(STATIC_1211), java.lang.Object(o216sub), i125, i125) :|: TRUE 8.28/3.25 f1211_0_main_ConstantStackPush(EOS(STATIC_1211), java.lang.Object(o216sub), i125, i125) -> f1219_0_main_NE(EOS(STATIC_1219), java.lang.Object(o216sub), i125, i125, 1) :|: TRUE 8.28/3.25 f1219_0_main_NE(EOS(STATIC_1219), java.lang.Object(o216sub), matching1, matching2, matching3) -> f1232_0_main_NE(EOS(STATIC_1232), java.lang.Object(o216sub), 1, 1, 1) :|: i125 = 1 && matching1 = 1 && matching2 = 1 && matching3 = 1 8.28/3.25 f1219_0_main_NE(EOS(STATIC_1219), java.lang.Object(o216sub), matching1, matching2, matching3) -> f1233_0_main_NE(EOS(STATIC_1233), java.lang.Object(o216sub), 2, 2, 1) :|: i125 = 2 && matching1 = 2 && matching2 = 2 && matching3 = 1 8.28/3.25 f1232_0_main_NE(EOS(STATIC_1232), java.lang.Object(o216sub), matching1, matching2, matching3) -> f1235_0_main_New(EOS(STATIC_1235), java.lang.Object(o216sub), 1) :|: TRUE && matching1 = 1 && matching2 = 1 && matching3 = 1 8.28/3.25 f1235_0_main_New(EOS(STATIC_1235), java.lang.Object(o216sub), matching1) -> f1239_0_main_Duplicate(EOS(STATIC_1239), java.lang.Object(o216sub), 1, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL))) :|: TRUE && matching1 = 1 8.28/3.25 f1239_0_main_Duplicate(EOS(STATIC_1239), java.lang.Object(o216sub), matching1, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL))) -> f1243_0_main_Load(EOS(STATIC_1243), java.lang.Object(o216sub), 1, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL))) :|: TRUE && matching1 = 1 8.28/3.25 f1243_0_main_Load(EOS(STATIC_1243), java.lang.Object(o216sub), matching1, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL))) -> f1246_0_main_InvokeMethod(EOS(STATIC_1246), 1, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(o216sub)) :|: TRUE && matching1 = 1 8.28/3.25 f1246_0_main_InvokeMethod(EOS(STATIC_1246), matching1, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(o216sub)) -> f1260_0__init__Load(EOS(STATIC_1260), 1, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(o216sub)) :|: TRUE && matching1 = 1 8.28/3.25 f1260_0__init__Load(EOS(STATIC_1260), matching1, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(o216sub)) -> f1276_0__init__InvokeMethod(EOS(STATIC_1276), 1, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(o216sub), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL))) :|: TRUE && matching1 = 1 8.28/3.25 f1276_0__init__InvokeMethod(EOS(STATIC_1276), matching1, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(o216sub), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL))) -> f1282_0__init__Load(EOS(STATIC_1282), 1, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(o216sub)) :|: TRUE && matching1 = 1 8.28/3.25 f1282_0__init__Load(EOS(STATIC_1282), matching1, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(o216sub)) -> f1291_0__init__Load(EOS(STATIC_1291), 1, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(o216sub), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL))) :|: TRUE && matching1 = 1 8.28/3.25 f1291_0__init__Load(EOS(STATIC_1291), matching1, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(o216sub), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL))) -> f1295_0__init__FieldAccess(EOS(STATIC_1295), 1, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(o216sub)) :|: TRUE && matching1 = 1 8.28/3.25 f1295_0__init__FieldAccess(EOS(STATIC_1295), matching1, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(o216sub)) -> f1312_0__init__Return(EOS(STATIC_1312), 1, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(o216sub)))) :|: TRUE && matching1 = 1 8.28/3.25 f1312_0__init__Return(EOS(STATIC_1312), matching1, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(o216sub)))) -> f1317_0_main_Store(EOS(STATIC_1317), 1, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(o216sub)))) :|: TRUE && matching1 = 1 8.28/3.25 f1317_0_main_Store(EOS(STATIC_1317), matching1, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(o216sub)))) -> f1320_0_main_JMP(EOS(STATIC_1320), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(o216sub))), 1) :|: TRUE && matching1 = 1 8.28/3.25 f1320_0_main_JMP(EOS(STATIC_1320), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(o216sub))), matching1) -> f1326_0_main_Inc(EOS(STATIC_1326), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(o216sub))), 1) :|: TRUE && matching1 = 1 8.28/3.25 f1326_0_main_Inc(EOS(STATIC_1326), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(o216sub))), matching1) -> f1332_0_main_Load(EOS(STATIC_1332), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(o216sub))), 2) :|: TRUE && matching1 = 1 8.28/3.25 f1332_0_main_Load(EOS(STATIC_1332), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(o216sub))), matching1) -> f1348_0_main_ConstantStackPush(EOS(STATIC_1348), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(o216sub))), 2, 2) :|: TRUE && matching1 = 2 8.28/3.25 f1348_0_main_ConstantStackPush(EOS(STATIC_1348), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(o216sub))), matching1, matching2) -> f1383_0_main_LE(EOS(STATIC_1383), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(o216sub))), 2, 2, 2) :|: TRUE && matching1 = 2 && matching2 = 2 8.28/3.25 f1383_0_main_LE(EOS(STATIC_1383), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(o216sub))), matching1, matching2, matching3) -> f1389_0_main_Load(EOS(STATIC_1389), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(o216sub))), 2) :|: TRUE && matching1 = 2 && matching2 = 2 && matching3 = 2 8.28/3.25 f1389_0_main_Load(EOS(STATIC_1389), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(o216sub))), matching1) -> f1189_0_main_Load(EOS(STATIC_1189), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(o216sub))), 2) :|: TRUE && matching1 = 2 8.28/3.25 f1189_0_main_Load(EOS(STATIC_1189), o212, i122) -> f1192_0_main_NULL(EOS(STATIC_1192), o212, i122, o212) :|: TRUE 8.28/3.25 f1233_0_main_NE(EOS(STATIC_1233), java.lang.Object(o216sub), matching1, matching2, matching3) -> f1236_0_main_Load(EOS(STATIC_1236), java.lang.Object(o216sub), 2) :|: TRUE && matching1 = 2 && matching2 = 2 && matching3 = 1 8.28/3.25 f1236_0_main_Load(EOS(STATIC_1236), java.lang.Object(o216sub), matching1) -> f1240_0_main_ConstantStackPush(EOS(STATIC_1240), java.lang.Object(o216sub), 2, 2) :|: TRUE && matching1 = 2 8.28/3.25 f1240_0_main_ConstantStackPush(EOS(STATIC_1240), java.lang.Object(o216sub), matching1, matching2) -> f1244_0_main_LE(EOS(STATIC_1244), java.lang.Object(o216sub), 2, 2) :|: TRUE && matching1 = 2 && matching2 = 2 8.28/3.25 f1244_0_main_LE(EOS(STATIC_1244), java.lang.Object(o216sub), matching1, matching2) -> f1251_0_main_New(EOS(STATIC_1251), java.lang.Object(o216sub), 2) :|: TRUE && matching1 = 2 && matching2 = 2 8.28/3.25 f1251_0_main_New(EOS(STATIC_1251), java.lang.Object(o216sub), matching1) -> f1262_0_main_Duplicate(EOS(STATIC_1262), java.lang.Object(o216sub), 2, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL))) :|: TRUE && matching1 = 2 8.28/3.25 f1262_0_main_Duplicate(EOS(STATIC_1262), java.lang.Object(o216sub), matching1, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL))) -> f1272_0_main_New(EOS(STATIC_1272), java.lang.Object(o216sub), 2, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL))) :|: TRUE && matching1 = 2 8.28/3.25 f1272_0_main_New(EOS(STATIC_1272), java.lang.Object(o216sub), matching1, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL))) -> f1277_0_main_Duplicate(EOS(STATIC_1277), java.lang.Object(o216sub), 2, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL))) :|: TRUE && matching1 = 2 8.28/3.25 f1277_0_main_Duplicate(EOS(STATIC_1277), java.lang.Object(o216sub), matching1, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL))) -> f1283_0_main_Load(EOS(STATIC_1283), java.lang.Object(o216sub), 2, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL))) :|: TRUE && matching1 = 2 8.28/3.25 f1283_0_main_Load(EOS(STATIC_1283), java.lang.Object(o216sub), matching1, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL))) -> f1292_0_main_InvokeMethod(EOS(STATIC_1292), 2, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(o216sub)) :|: TRUE && matching1 = 2 8.28/3.25 f1292_0_main_InvokeMethod(EOS(STATIC_1292), matching1, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(o216sub)) -> f1296_0__init__Load(EOS(STATIC_1296), 2, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(o216sub)) :|: TRUE && matching1 = 2 8.28/3.25 f1296_0__init__Load(EOS(STATIC_1296), matching1, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(o216sub)) -> f1318_0__init__InvokeMethod(EOS(STATIC_1318), 2, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(o216sub), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL))) :|: TRUE && matching1 = 2 8.28/3.25 f1318_0__init__InvokeMethod(EOS(STATIC_1318), matching1, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(o216sub), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL))) -> f1321_0__init__Load(EOS(STATIC_1321), 2, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(o216sub)) :|: TRUE && matching1 = 2 8.28/3.25 f1321_0__init__Load(EOS(STATIC_1321), matching1, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(o216sub)) -> f1327_0__init__Load(EOS(STATIC_1327), 2, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(o216sub), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL))) :|: TRUE && matching1 = 2 8.28/3.25 f1327_0__init__Load(EOS(STATIC_1327), matching1, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(o216sub), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL))) -> f1333_0__init__FieldAccess(EOS(STATIC_1333), 2, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(o216sub)) :|: TRUE && matching1 = 2 8.28/3.25 f1333_0__init__FieldAccess(EOS(STATIC_1333), matching1, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(o216sub)) -> f1354_0__init__Return(EOS(STATIC_1354), 2, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(o216sub)))) :|: TRUE && matching1 = 2 8.28/3.25 f1354_0__init__Return(EOS(STATIC_1354), matching1, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(o216sub)))) -> f1384_0_main_InvokeMethod(EOS(STATIC_1384), 2, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(o216sub)))) :|: TRUE && matching1 = 2 8.28/3.25 f1384_0_main_InvokeMethod(EOS(STATIC_1384), matching1, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(o216sub)))) -> f1390_0__init__Load(EOS(STATIC_1390), 2, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(o216sub)))) :|: TRUE && matching1 = 2 8.28/3.25 f1390_0__init__Load(EOS(STATIC_1390), matching1, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(o216sub)))) -> f1415_0__init__InvokeMethod(EOS(STATIC_1415), 2, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(o216sub))), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL))) :|: TRUE && matching1 = 2 8.28/3.25 f1415_0__init__InvokeMethod(EOS(STATIC_1415), matching1, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(o216sub))), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL))) -> f1419_0__init__Load(EOS(STATIC_1419), 2, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(o216sub)))) :|: TRUE && matching1 = 2 8.28/3.25 f1419_0__init__Load(EOS(STATIC_1419), matching1, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(o216sub)))) -> f1453_0__init__Load(EOS(STATIC_1453), 2, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(o216sub))), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL))) :|: TRUE && matching1 = 2 8.28/3.25 f1453_0__init__Load(EOS(STATIC_1453), matching1, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(o216sub))), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL))) -> f1475_0__init__FieldAccess(EOS(STATIC_1475), 2, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(o216sub)))) :|: TRUE && matching1 = 2 8.28/3.25 f1475_0__init__FieldAccess(EOS(STATIC_1475), matching1, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, NULL)), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(o216sub)))) -> f1490_0__init__Return(EOS(STATIC_1490), 2, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(o216sub)))))) :|: TRUE && matching1 = 2 8.28/3.25 f1490_0__init__Return(EOS(STATIC_1490), matching1, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(o216sub)))))) -> f1497_0_main_Store(EOS(STATIC_1497), 2, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(o216sub)))))) :|: TRUE && matching1 = 2 8.28/3.25 f1497_0_main_Store(EOS(STATIC_1497), matching1, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(o216sub)))))) -> f1513_0_main_Inc(EOS(STATIC_1513), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(o216sub))))), 2) :|: TRUE && matching1 = 2 8.28/3.25 f1513_0_main_Inc(EOS(STATIC_1513), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(o216sub))))), matching1) -> f1528_0_main_Load(EOS(STATIC_1528), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(o216sub)))))) :|: TRUE && matching1 = 2 8.28/3.25 f1528_0_main_Load(EOS(STATIC_1528), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(o216sub)))))) -> f1543_0_main_ConstantStackPush(EOS(STATIC_1543), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(o216sub)))))) :|: TRUE 8.28/3.25 f1543_0_main_ConstantStackPush(EOS(STATIC_1543), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(o216sub)))))) -> f1556_0_main_LE(EOS(STATIC_1556), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(o216sub)))))) :|: TRUE 8.28/3.25 f1556_0_main_LE(EOS(STATIC_1556), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(o216sub)))))) -> f1570_0_main_ConstantStackPush(EOS(STATIC_1570), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(o216sub)))))) :|: TRUE 8.28/3.25 f1570_0_main_ConstantStackPush(EOS(STATIC_1570), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(o216sub)))))) -> f1574_0_main_Store(EOS(STATIC_1574), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(o216sub))))), 0) :|: TRUE 8.28/3.25 f1574_0_main_Store(EOS(STATIC_1574), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(o216sub))))), matching1) -> f1577_0_main_JMP(EOS(STATIC_1577), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(o216sub))))), 0) :|: TRUE && matching1 = 0 8.28/3.25 f1577_0_main_JMP(EOS(STATIC_1577), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(o216sub))))), matching1) -> f1587_0_main_Load(EOS(STATIC_1587), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(o216sub))))), 0) :|: TRUE && matching1 = 0 8.28/3.25 f1587_0_main_Load(EOS(STATIC_1587), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(o216sub))))), matching1) -> f1189_0_main_Load(EOS(STATIC_1189), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(o216sub))))), 0) :|: TRUE && matching1 = 0 8.28/3.25 f1208_0_main_NE(EOS(STATIC_1208), java.lang.Object(o216sub), matching1, matching2) -> f1210_0_main_Load(EOS(STATIC_1210), java.lang.Object(o216sub), 0) :|: TRUE && matching1 = 0 && matching2 = 0 8.28/3.25 f1210_0_main_Load(EOS(STATIC_1210), java.lang.Object(o216sub), matching1) -> f1213_0_main_FieldAccess(EOS(STATIC_1213), 0, java.lang.Object(o216sub)) :|: TRUE && matching1 = 0 8.28/3.25 f1213_0_main_FieldAccess(EOS(STATIC_1213), matching1, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, o218))) -> f1223_0_main_FieldAccess(EOS(STATIC_1223), 0, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, o218))) :|: TRUE && matching1 = 0 8.28/3.25 f1223_0_main_FieldAccess(EOS(STATIC_1223), matching1, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, o218))) -> f1234_0_main_FieldAccess(EOS(STATIC_1234), 0, o218) :|: TRUE && matching1 = 0 8.28/3.25 f1234_0_main_FieldAccess(EOS(STATIC_1234), matching1, java.lang.Object(o219sub)) -> f1237_0_main_FieldAccess(EOS(STATIC_1237), 0, java.lang.Object(o219sub)) :|: TRUE && matching1 = 0 8.28/3.25 f1237_0_main_FieldAccess(EOS(STATIC_1237), matching1, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, o222))) -> f1241_0_main_FieldAccess(EOS(STATIC_1241), 0, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, o222))) :|: TRUE && matching1 = 0 8.28/3.25 f1241_0_main_FieldAccess(EOS(STATIC_1241), matching1, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, o222))) -> f1245_0_main_FieldAccess(EOS(STATIC_1245), 0, o222) :|: TRUE && matching1 = 0 8.28/3.25 f1245_0_main_FieldAccess(EOS(STATIC_1245), matching1, java.lang.Object(o224sub)) -> f1253_0_main_FieldAccess(EOS(STATIC_1253), 0, java.lang.Object(o224sub)) :|: TRUE && matching1 = 0 8.28/3.25 f1253_0_main_FieldAccess(EOS(STATIC_1253), matching1, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, o228))) -> f1265_0_main_FieldAccess(EOS(STATIC_1265), 0, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, o228))) :|: TRUE && matching1 = 0 8.28/3.25 f1265_0_main_FieldAccess(EOS(STATIC_1265), matching1, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, o228))) -> f1274_0_main_FieldAccess(EOS(STATIC_1274), 0, o228) :|: TRUE && matching1 = 0 8.28/3.25 f1274_0_main_FieldAccess(EOS(STATIC_1274), matching1, java.lang.Object(o231sub)) -> f1278_0_main_FieldAccess(EOS(STATIC_1278), 0, java.lang.Object(o231sub)) :|: TRUE && matching1 = 0 8.28/3.25 f1278_0_main_FieldAccess(EOS(STATIC_1278), matching1, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, o234))) -> f1286_0_main_FieldAccess(EOS(STATIC_1286), 0, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, o234))) :|: TRUE && matching1 = 0 8.28/3.25 f1286_0_main_FieldAccess(EOS(STATIC_1286), matching1, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, o234))) -> f1293_0_main_Store(EOS(STATIC_1293), 0, o234) :|: TRUE && matching1 = 0 8.28/3.25 f1293_0_main_Store(EOS(STATIC_1293), matching1, o234) -> f1297_0_main_JMP(EOS(STATIC_1297), o234, 0) :|: TRUE && matching1 = 0 8.28/3.25 f1297_0_main_JMP(EOS(STATIC_1297), o234, matching1) -> f1313_0_main_Inc(EOS(STATIC_1313), o234, 0) :|: TRUE && matching1 = 0 8.28/3.25 f1313_0_main_Inc(EOS(STATIC_1313), o234, matching1) -> f1319_0_main_Load(EOS(STATIC_1319), o234, 1) :|: TRUE && matching1 = 0 8.28/3.25 f1319_0_main_Load(EOS(STATIC_1319), o234, matching1) -> f1322_0_main_ConstantStackPush(EOS(STATIC_1322), o234, 1, 1) :|: TRUE && matching1 = 1 8.28/3.25 f1322_0_main_ConstantStackPush(EOS(STATIC_1322), o234, matching1, matching2) -> f1328_0_main_LE(EOS(STATIC_1328), o234, 1, 1) :|: TRUE && matching1 = 1 && matching2 = 1 8.28/3.25 f1328_0_main_LE(EOS(STATIC_1328), o234, matching1, matching2) -> f1344_0_main_Load(EOS(STATIC_1344), o234, 1) :|: TRUE && matching1 = 1 && matching2 = 1 8.28/3.25 f1344_0_main_Load(EOS(STATIC_1344), o234, matching1) -> f1189_0_main_Load(EOS(STATIC_1189), o234, 1) :|: TRUE && matching1 = 1 8.28/3.25 Combined rules. Obtained 3 IRulesP rules: 8.28/3.25 f1192_0_main_NULL(EOS(STATIC_1192), java.lang.Object(o216sub:0), 1, java.lang.Object(o216sub:0)) -> f1192_0_main_NULL(EOS(STATIC_1192), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(o216sub:0))), 2, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(o216sub:0)))) :|: TRUE 8.28/3.25 f1192_0_main_NULL(EOS(STATIC_1192), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, o234:0)))))))), 0, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, o234:0))))))))) -> f1192_0_main_NULL(EOS(STATIC_1192), o234:0, 1, o234:0) :|: TRUE 8.28/3.25 f1192_0_main_NULL(EOS(STATIC_1192), java.lang.Object(o216sub:0), 2, java.lang.Object(o216sub:0)) -> f1192_0_main_NULL(EOS(STATIC_1192), java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(o216sub:0))))), 0, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(EOC, java.lang.Object(o216sub:0)))))) :|: TRUE 8.28/3.25 Filtered constant ground arguments: 8.28/3.25 f1192_0_main_NULL(x1, x2, x3, x4) -> f1192_0_main_NULL(x2, x3, x4) 8.28/3.25 EOS(x1) -> EOS 8.28/3.25 AlternatingGrowReduce.AlternatingGrowReduce(x1, x2) -> AlternatingGrowReduce.AlternatingGrowReduce(x2) 8.28/3.25 Filtered duplicate arguments: 8.28/3.25 f1192_0_main_NULL(x1, x2, x3) -> f1192_0_main_NULL(x2, x3) 8.28/3.25 8.28/3.25 ---------------------------------------- 8.28/3.25 8.28/3.25 (22) 8.28/3.25 Obligation: 8.28/3.25 Q DP problem: 8.28/3.25 The TRS P consists of the following rules: 8.28/3.25 8.28/3.25 f1192_0_main_NULL(1, java.lang.Object(o216sub:0)) -> f1192_0_main_NULL(2, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(java.lang.Object(o216sub:0)))) 8.28/3.25 f1192_0_main_NULL(0, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(o234:0))))))))) -> f1192_0_main_NULL(1, o234:0) 8.28/3.25 f1192_0_main_NULL(2, java.lang.Object(o216sub:0)) -> f1192_0_main_NULL(0, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(java.lang.Object(o216sub:0)))))) 8.28/3.25 8.28/3.25 R is empty. 8.28/3.25 Q is empty. 8.28/3.25 We have to consider all minimal (P,Q,R)-chains. 8.28/3.25 ---------------------------------------- 8.28/3.25 8.28/3.25 (23) MRRProof (EQUIVALENT) 8.28/3.25 By using the rule removal processor [LPAR04] with the following ordering, at least one Dependency Pair or term rewrite system rule of this QDP problem can be strictly oriented. 8.28/3.25 8.28/3.25 Strictly oriented dependency pairs: 8.28/3.25 8.28/3.25 f1192_0_main_NULL(1, java.lang.Object(o216sub:0)) -> f1192_0_main_NULL(2, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(java.lang.Object(o216sub:0)))) 8.28/3.25 f1192_0_main_NULL(0, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(o234:0))))))))) -> f1192_0_main_NULL(1, o234:0) 8.28/3.25 f1192_0_main_NULL(2, java.lang.Object(o216sub:0)) -> f1192_0_main_NULL(0, java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(java.lang.Object(AlternatingGrowReduce.AlternatingGrowReduce(java.lang.Object(o216sub:0)))))) 8.28/3.25 8.28/3.25 8.28/3.25 Used ordering: Knuth-Bendix order [KBO] with precedence:0 > AlternatingGrowReduce.AlternatingGrowReduce_1 > 2 > java.lang.Object_1 > 1 > f1192_0_main_NULL_2 8.28/3.25 8.28/3.25 and weight map: 8.28/3.25 8.28/3.25 1=12 8.28/3.25 2=8 8.28/3.25 0=1 8.28/3.25 java.lang.Object_1=1 8.28/3.25 AlternatingGrowReduce.AlternatingGrowReduce_1=2 8.28/3.25 f1192_0_main_NULL_2=0 8.28/3.25 8.28/3.25 The variable weight is 1 8.28/3.25 8.28/3.25 ---------------------------------------- 8.28/3.25 8.28/3.25 (24) 8.28/3.25 Obligation: 8.28/3.25 Q DP problem: 8.28/3.25 P is empty. 8.28/3.25 R is empty. 8.28/3.25 Q is empty. 8.28/3.25 We have to consider all minimal (P,Q,R)-chains. 8.28/3.25 ---------------------------------------- 8.28/3.25 8.28/3.25 (25) PisEmptyProof (EQUIVALENT) 8.28/3.25 The TRS P is empty. Hence, there is no (P,Q,R) chain. 8.28/3.25 ---------------------------------------- 8.28/3.25 8.28/3.25 (26) 8.28/3.25 YES 8.58/3.28 EOF