/export/starexec/sandbox2/solver/bin/starexec_run_standard /export/starexec/sandbox2/benchmark/theBenchmark.jar /export/starexec/sandbox2/output/output_files -------------------------------------------------------------------------------- YES proof of /export/starexec/sandbox2/benchmark/theBenchmark.jar # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty termination of the given Bare JBC problem could be proven: (0) Bare JBC problem (1) BareJBCToJBCProof [EQUIVALENT, 96 ms] (2) JBC problem (3) JBCToGraph [EQUIVALENT, 1371 ms] (4) JBCTerminationGraph (5) TerminationGraphToSCCProof [SOUND, 0 ms] (6) JBCTerminationSCC (7) SCCToIRSProof [SOUND, 377 ms] (8) IRSwT (9) IRSFormatTransformerProof [EQUIVALENT, 0 ms] (10) IRSwT (11) IRSwTTerminationDigraphProof [EQUIVALENT, 206 ms] (12) AND (13) IRSwT (14) IntTRSCompressionProof [EQUIVALENT, 0 ms] (15) IRSwT (16) TempFilterProof [SOUND, 33 ms] (17) IntTRS (18) RankingReductionPairProof [EQUIVALENT, 3 ms] (19) YES (20) IRSwT (21) IntTRSCompressionProof [EQUIVALENT, 0 ms] (22) IRSwT (23) TempFilterProof [SOUND, 33 ms] (24) IntTRS (25) PolynomialOrderProcessor [EQUIVALENT, 12 ms] (26) YES ---------------------------------------- (0) Obligation: need to prove termination of the following program: public class Test12 { public static void main(String[] args) { Random.args = args; int x = args.length * 100, y = args.length * 200 / 13; rec(x, y); } private static void rec(int x, int y) { if (x + y > 0) { if (Random.random() * Random.random() > 9) rec(x - 1, y); else rec(x, y - 1); } } } public class Random { static String[] args; static int index = 0; public static int random() { if (index >= args.length) return 0; String string = args[index]; index++; return string.length(); } } ---------------------------------------- (1) BareJBCToJBCProof (EQUIVALENT) initialized classpath ---------------------------------------- (2) Obligation: need to prove termination of the following program: public class Test12 { public static void main(String[] args) { Random.args = args; int x = args.length * 100, y = args.length * 200 / 13; rec(x, y); } private static void rec(int x, int y) { if (x + y > 0) { if (Random.random() * Random.random() > 9) rec(x - 1, y); else rec(x, y - 1); } } } public class Random { static String[] args; static int index = 0; public static int random() { if (index >= args.length) return 0; String string = args[index]; index++; return string.length(); } } ---------------------------------------- (3) JBCToGraph (EQUIVALENT) Constructed TerminationGraph. ---------------------------------------- (4) Obligation: Termination Graph based on JBC Program: Test12.main([Ljava/lang/String;)V: Graph of 47 nodes with 0 SCCs. Test12.rec(II)V: Graph of 309 nodes with 0 SCCs. ---------------------------------------- (5) TerminationGraphToSCCProof (SOUND) Splitted TerminationGraph to 1 SCCs. ---------------------------------------- (6) Obligation: SCC of termination graph based on JBC Program. SCC contains nodes from the following methods: Test12.rec(II)V SCC calls the following helper methods: Test12.rec(II)V Performed SCC analyses: *Used field analysis yielded the following read fields: *java.lang.String: [count] *Marker field analysis yielded the following relations that could be markers: ---------------------------------------- (7) SCCToIRSProof (SOUND) Transformed FIGraph SCCs to intTRSs. Log: Generated rules. Obtained 115 IRulesP rules: f4714_0_rec_Load(EOS(STATIC_4714(java.lang.Object(o790sub), i2314)), i2315, i140, i2315, i140, i2315) -> f4715_0_rec_IntArithmetic(EOS(STATIC_4715(java.lang.Object(o790sub), i2314)), i2315, i140, i2315, i140, i2315, i140) :|: TRUE f4715_0_rec_IntArithmetic(EOS(STATIC_4715(java.lang.Object(o790sub), i2314)), i2315, i140, i2315, i140, i2315, i140) -> f4716_0_rec_LE(EOS(STATIC_4716(java.lang.Object(o790sub), i2314)), i2315, i140, i2315, i140, i2315 + i140) :|: TRUE f4716_0_rec_LE(EOS(STATIC_4716(java.lang.Object(o790sub), i2314)), i2315, i140, i2315, i140, i2318) -> f4718_0_rec_LE(EOS(STATIC_4718(java.lang.Object(o790sub), i2314)), i2315, i140, i2315, i140, i2318) :|: TRUE f4718_0_rec_LE(EOS(STATIC_4718(java.lang.Object(o790sub), i2314)), i2315, i140, i2315, i140, i2318) -> f4720_0_rec_InvokeMethod(EOS(STATIC_4720(java.lang.Object(o790sub), i2314)), i2315, i140, i2315, i140) :|: i2318 > 0 f4720_0_rec_InvokeMethod(EOS(STATIC_4720(java.lang.Object(o790sub), i2314)), i2315, i140, i2315, i140) -> f4722_0_random_FieldAccess(EOS(STATIC_4722(java.lang.Object(o790sub), i2314)), i2315, i140, i2315, i140) :|: TRUE f4722_0_random_FieldAccess(EOS(STATIC_4722(java.lang.Object(o790sub), i2314)), i2315, i140, i2315, i140) -> f4724_0_random_FieldAccess(EOS(STATIC_4724(java.lang.Object(o790sub), i2314)), i2315, i140, i2315, i140, i2314) :|: TRUE f4724_0_random_FieldAccess(EOS(STATIC_4724(java.lang.Object(o790sub), i2314)), i2315, i140, i2315, i140, i2314) -> f4725_0_random_ArrayLength(EOS(STATIC_4725(java.lang.Object(o790sub), i2314)), i2315, i140, i2315, i140, i2314, java.lang.Object(o790sub)) :|: TRUE f4725_0_random_ArrayLength(EOS(STATIC_4725(java.lang.Object(ARRAY(i2330)), i2314)), i2315, i140, i2315, i140, i2314, java.lang.Object(ARRAY(i2330))) -> f4726_0_random_ArrayLength(EOS(STATIC_4726(java.lang.Object(ARRAY(i2330)), i2314)), i2315, i140, i2315, i140, i2314, java.lang.Object(ARRAY(i2330))) :|: i2330 >= 0 f4726_0_random_ArrayLength(EOS(STATIC_4726(java.lang.Object(ARRAY(i2330)), i2314)), i2315, i140, i2315, i140, i2314, java.lang.Object(ARRAY(i2330))) -> f4727_0_random_LT(EOS(STATIC_4727(java.lang.Object(ARRAY(i2330)), i2314)), i2315, i140, i2315, i140, i2314, i2330) :|: i2330 >= 0 f4727_0_random_LT(EOS(STATIC_4727(java.lang.Object(ARRAY(i2330)), i2314)), i2315, i140, i2315, i140, i2314, i2330) -> f4728_0_random_LT(EOS(STATIC_4728(java.lang.Object(ARRAY(i2330)), i2314)), i2315, i140, i2315, i140, i2314, i2330) :|: i2314 < i2330 f4727_0_random_LT(EOS(STATIC_4727(java.lang.Object(ARRAY(i2330)), i2314)), i2315, i140, i2315, i140, i2314, i2330) -> f4729_0_random_LT(EOS(STATIC_4729(java.lang.Object(ARRAY(i2330)), i2314)), i2315, i140, i2315, i140, i2314, i2330) :|: i2314 >= i2330 f4728_0_random_LT(EOS(STATIC_4728(java.lang.Object(ARRAY(i2330)), i2314)), i2315, i140, i2315, i140, i2314, i2330) -> f4730_0_random_FieldAccess(EOS(STATIC_4730(java.lang.Object(ARRAY(i2330)), i2314)), i2315, i140, i2315, i140) :|: i2314 < i2330 f4730_0_random_FieldAccess(EOS(STATIC_4730(java.lang.Object(ARRAY(i2330)), i2314)), i2315, i140, i2315, i140) -> f4732_0_random_FieldAccess(EOS(STATIC_4732(java.lang.Object(ARRAY(i2330)), i2314)), i2315, i140, i2315, i140, java.lang.Object(ARRAY(i2330))) :|: TRUE f4732_0_random_FieldAccess(EOS(STATIC_4732(java.lang.Object(ARRAY(i2330)), i2314)), i2315, i140, i2315, i140, java.lang.Object(ARRAY(i2330))) -> f4734_0_random_ArrayAccess(EOS(STATIC_4734(java.lang.Object(ARRAY(i2330)), i2314)), i2315, i140, i2315, i140, java.lang.Object(ARRAY(i2330)), i2314) :|: TRUE f4734_0_random_ArrayAccess(EOS(STATIC_4734(java.lang.Object(ARRAY(i2330)), i2332)), i2315, i140, i2315, i140, java.lang.Object(ARRAY(i2330)), i2332) -> f4737_0_random_ArrayAccess(EOS(STATIC_4737(java.lang.Object(ARRAY(i2330)), i2332)), i2315, i140, i2315, i140, java.lang.Object(ARRAY(i2330)), i2332) :|: TRUE f4737_0_random_ArrayAccess(EOS(STATIC_4737(java.lang.Object(ARRAY(i2330)), i2332)), i2315, i140, i2315, i140, java.lang.Object(ARRAY(i2330)), i2332) -> f4740_0_random_ArrayAccess(EOS(STATIC_4740(java.lang.Object(ARRAY(i2330)), i2332)), i2315, i140, i2315, i140, java.lang.Object(ARRAY(i2330)), i2332) :|: TRUE f4740_0_random_ArrayAccess(EOS(STATIC_4740(java.lang.Object(ARRAY(i2330)), i2332)), i2315, i140, i2315, i140, java.lang.Object(ARRAY(i2330)), i2332) -> f4742_0_random_Store(EOS(STATIC_4742(java.lang.Object(ARRAY(i2330)), i2332)), i2315, i140, i2315, i140, o795) :|: TRUE f4742_0_random_Store(EOS(STATIC_4742(java.lang.Object(ARRAY(i2330)), i2332)), i2315, i140, i2315, i140, o795) -> f4746_0_random_FieldAccess(EOS(STATIC_4746(java.lang.Object(ARRAY(i2330)), i2332)), i2315, i140, i2315, i140, o795) :|: TRUE f4746_0_random_FieldAccess(EOS(STATIC_4746(java.lang.Object(ARRAY(i2330)), i2332)), i2315, i140, i2315, i140, o795) -> f4749_0_random_ConstantStackPush(EOS(STATIC_4749(java.lang.Object(ARRAY(i2330)), i2332)), i2315, i140, i2315, i140, o795, i2332) :|: TRUE f4749_0_random_ConstantStackPush(EOS(STATIC_4749(java.lang.Object(ARRAY(i2330)), i2332)), i2315, i140, i2315, i140, o795, i2332) -> f4752_0_random_IntArithmetic(EOS(STATIC_4752(java.lang.Object(ARRAY(i2330)), i2332)), i2315, i140, i2315, i140, o795, i2332, 1) :|: TRUE f4752_0_random_IntArithmetic(EOS(STATIC_4752(java.lang.Object(ARRAY(i2330)), i2332)), i2315, i140, i2315, i140, o795, i2332, matching1) -> f4756_0_random_FieldAccess(EOS(STATIC_4756(java.lang.Object(ARRAY(i2330)), i2332)), i2315, i140, i2315, i140, o795, i2332 + 1) :|: i2332 >= 0 && matching1 = 1 f4756_0_random_FieldAccess(EOS(STATIC_4756(java.lang.Object(ARRAY(i2330)), i2332)), i2315, i140, i2315, i140, o795, i2335) -> f4759_0_random_Load(EOS(STATIC_4759(java.lang.Object(ARRAY(i2330)), i2335)), i2315, i140, i2315, i140, o795) :|: TRUE f4759_0_random_Load(EOS(STATIC_4759(java.lang.Object(ARRAY(i2330)), i2335)), i2315, i140, i2315, i140, o795) -> f4762_0_random_InvokeMethod(EOS(STATIC_4762(java.lang.Object(ARRAY(i2330)), i2335)), i2315, i140, i2315, i140, o795) :|: TRUE f4762_0_random_InvokeMethod(EOS(STATIC_4762(java.lang.Object(ARRAY(i2330)), i2335)), i2315, i140, i2315, i140, java.lang.Object(o797sub)) -> f4766_0_random_InvokeMethod(EOS(STATIC_4766(java.lang.Object(ARRAY(i2330)), i2335)), i2315, i140, i2315, i140, java.lang.Object(o797sub)) :|: TRUE f4766_0_random_InvokeMethod(EOS(STATIC_4766(java.lang.Object(ARRAY(i2330)), i2335)), i2315, i140, i2315, i140, java.lang.Object(o798sub)) -> f4770_0_random_InvokeMethod(EOS(STATIC_4770(java.lang.Object(ARRAY(i2330)), i2335)), i2315, i140, i2315, i140, java.lang.Object(o798sub)) :|: TRUE f4770_0_random_InvokeMethod(EOS(STATIC_4770(java.lang.Object(ARRAY(i2330)), i2335)), i2315, i140, i2315, i140, java.lang.Object(o798sub)) -> f4774_0_length_Load(EOS(STATIC_4774(java.lang.Object(ARRAY(i2330)), i2335)), i2315, i140, i2315, i140, java.lang.Object(o798sub)) :|: TRUE f4774_0_length_Load(EOS(STATIC_4774(java.lang.Object(ARRAY(i2330)), i2335)), i2315, i140, i2315, i140, java.lang.Object(o798sub)) -> f4781_0_length_FieldAccess(EOS(STATIC_4781(java.lang.Object(ARRAY(i2330)), i2335)), i2315, i140, i2315, i140, java.lang.Object(o798sub)) :|: TRUE f4781_0_length_FieldAccess(EOS(STATIC_4781(java.lang.Object(ARRAY(i2330)), i2335)), i2315, i140, i2315, i140, java.lang.Object(java.lang.String(EOC, i2339))) -> f4785_0_length_FieldAccess(EOS(STATIC_4785(java.lang.Object(ARRAY(i2330)), i2335)), i2315, i140, i2315, i140, java.lang.Object(java.lang.String(EOC, i2339))) :|: i2339 >= 0 f4785_0_length_FieldAccess(EOS(STATIC_4785(java.lang.Object(ARRAY(i2330)), i2335)), i2315, i140, i2315, i140, java.lang.Object(java.lang.String(EOC, i2339))) -> f4789_0_length_Return(EOS(STATIC_4789(java.lang.Object(ARRAY(i2330)), i2335)), i2315, i140, i2315, i140, i2339) :|: TRUE f4789_0_length_Return(EOS(STATIC_4789(java.lang.Object(ARRAY(i2330)), i2335)), i2315, i140, i2315, i140, i2339) -> f4793_0_random_Return(EOS(STATIC_4793(java.lang.Object(ARRAY(i2330)), i2335)), i2315, i140, i2315, i140, i2339) :|: TRUE f4793_0_random_Return(EOS(STATIC_4793(java.lang.Object(ARRAY(i2330)), i2335)), i2315, i140, i2315, i140, i2339) -> f4798_0_rec_InvokeMethod(EOS(STATIC_4798(java.lang.Object(ARRAY(i2330)), i2335)), i2315, i140, i2315, i140, i2339) :|: TRUE f4798_0_rec_InvokeMethod(EOS(STATIC_4798(java.lang.Object(ARRAY(i2330)), i2335)), i2315, i140, i2315, i140, i2339) -> f4802_0_random_FieldAccess(EOS(STATIC_4802(java.lang.Object(ARRAY(i2330)), i2335)), i2315, i140, i2315, i140, i2339) :|: TRUE f4802_0_random_FieldAccess(EOS(STATIC_4802(java.lang.Object(ARRAY(i2330)), i2335)), i2315, i140, i2315, i140, i2339) -> f4809_0_random_FieldAccess(EOS(STATIC_4809(java.lang.Object(ARRAY(i2330)), i2335)), i2315, i140, i2315, i140, i2339, i2335) :|: TRUE f4809_0_random_FieldAccess(EOS(STATIC_4809(java.lang.Object(ARRAY(i2330)), i2335)), i2315, i140, i2315, i140, i2339, i2335) -> f4812_0_random_ArrayLength(EOS(STATIC_4812(java.lang.Object(ARRAY(i2330)), i2335)), i2315, i140, i2315, i140, i2339, i2335, java.lang.Object(ARRAY(i2330))) :|: TRUE f4812_0_random_ArrayLength(EOS(STATIC_4812(java.lang.Object(ARRAY(i2330)), i2335)), i2315, i140, i2315, i140, i2339, i2335, java.lang.Object(ARRAY(i2330))) -> f4817_0_random_LT(EOS(STATIC_4817(java.lang.Object(ARRAY(i2330)), i2335)), i2315, i140, i2315, i140, i2339, i2335, i2330) :|: i2330 >= 0 f4817_0_random_LT(EOS(STATIC_4817(java.lang.Object(ARRAY(i2330)), i2335)), i2315, i140, i2315, i140, i2339, i2335, i2330) -> f4822_0_random_LT(EOS(STATIC_4822(java.lang.Object(ARRAY(i2330)), i2335)), i2315, i140, i2315, i140, i2339, i2335, i2330) :|: i2335 < i2330 f4817_0_random_LT(EOS(STATIC_4817(java.lang.Object(ARRAY(i2330)), i2335)), i2315, i140, i2315, i140, i2339, i2335, i2330) -> f4823_0_random_LT(EOS(STATIC_4823(java.lang.Object(ARRAY(i2330)), i2335)), i2315, i140, i2315, i140, i2339, i2335, i2330) :|: i2335 >= i2330 f4822_0_random_LT(EOS(STATIC_4822(java.lang.Object(ARRAY(i2330)), i2335)), i2315, i140, i2315, i140, i2339, i2335, i2330) -> f4828_0_random_FieldAccess(EOS(STATIC_4828(java.lang.Object(ARRAY(i2330)), i2335)), i2315, i140, i2315, i140, i2339) :|: i2335 < i2330 f4828_0_random_FieldAccess(EOS(STATIC_4828(java.lang.Object(ARRAY(i2330)), i2335)), i2315, i140, i2315, i140, i2339) -> f4833_0_random_FieldAccess(EOS(STATIC_4833(java.lang.Object(ARRAY(i2330)), i2335)), i2315, i140, i2315, i140, i2339, java.lang.Object(ARRAY(i2330))) :|: TRUE f4833_0_random_FieldAccess(EOS(STATIC_4833(java.lang.Object(ARRAY(i2330)), i2335)), i2315, i140, i2315, i140, i2339, java.lang.Object(ARRAY(i2330))) -> f4840_0_random_ArrayAccess(EOS(STATIC_4840(java.lang.Object(ARRAY(i2330)), i2335)), i2315, i140, i2315, i140, i2339, java.lang.Object(ARRAY(i2330)), i2335) :|: TRUE f4840_0_random_ArrayAccess(EOS(STATIC_4840(java.lang.Object(ARRAY(i2330)), i2335)), i2315, i140, i2315, i140, i2339, java.lang.Object(ARRAY(i2330)), i2335) -> f4845_0_random_ArrayAccess(EOS(STATIC_4845(java.lang.Object(ARRAY(i2330)), i2335)), i2315, i140, i2315, i140, i2339, java.lang.Object(ARRAY(i2330)), i2335) :|: TRUE f4845_0_random_ArrayAccess(EOS(STATIC_4845(java.lang.Object(ARRAY(i2330)), i2335)), i2315, i140, i2315, i140, i2339, java.lang.Object(ARRAY(i2330)), i2335) -> f4851_0_random_Store(EOS(STATIC_4851(java.lang.Object(ARRAY(i2330)), i2335)), i2315, i140, i2315, i140, i2339, o814) :|: TRUE f4851_0_random_Store(EOS(STATIC_4851(java.lang.Object(ARRAY(i2330)), i2335)), i2315, i140, i2315, i140, i2339, o814) -> f4857_0_random_FieldAccess(EOS(STATIC_4857(java.lang.Object(ARRAY(i2330)), i2335)), i2315, i140, i2315, i140, i2339, o814) :|: TRUE f4857_0_random_FieldAccess(EOS(STATIC_4857(java.lang.Object(ARRAY(i2330)), i2335)), i2315, i140, i2315, i140, i2339, o814) -> f4861_0_random_ConstantStackPush(EOS(STATIC_4861(java.lang.Object(ARRAY(i2330)), i2335)), i2315, i140, i2315, i140, i2339, o814, i2335) :|: TRUE f4861_0_random_ConstantStackPush(EOS(STATIC_4861(java.lang.Object(ARRAY(i2330)), i2335)), i2315, i140, i2315, i140, i2339, o814, i2335) -> f4868_0_random_IntArithmetic(EOS(STATIC_4868(java.lang.Object(ARRAY(i2330)), i2335)), i2315, i140, i2315, i140, i2339, o814, i2335, 1) :|: TRUE f4868_0_random_IntArithmetic(EOS(STATIC_4868(java.lang.Object(ARRAY(i2330)), i2335)), i2315, i140, i2315, i140, i2339, o814, i2335, matching1) -> f4872_0_random_FieldAccess(EOS(STATIC_4872(java.lang.Object(ARRAY(i2330)), i2335)), i2315, i140, i2315, i140, i2339, o814, i2335 + 1) :|: i2335 > 0 && matching1 = 1 f4872_0_random_FieldAccess(EOS(STATIC_4872(java.lang.Object(ARRAY(i2330)), i2335)), i2315, i140, i2315, i140, i2339, o814, i2444) -> f4877_0_random_Load(EOS(STATIC_4877(java.lang.Object(ARRAY(i2330)), i2444)), i2315, i140, i2315, i140, i2339, o814) :|: TRUE f4877_0_random_Load(EOS(STATIC_4877(java.lang.Object(ARRAY(i2330)), i2444)), i2315, i140, i2315, i140, i2339, o814) -> f4882_0_random_InvokeMethod(EOS(STATIC_4882(java.lang.Object(ARRAY(i2330)), i2444)), i2315, i140, i2315, i140, i2339, o814) :|: TRUE f4882_0_random_InvokeMethod(EOS(STATIC_4882(java.lang.Object(ARRAY(i2330)), i2444)), i2315, i140, i2315, i140, i2339, java.lang.Object(o833sub)) -> f4887_0_random_InvokeMethod(EOS(STATIC_4887(java.lang.Object(ARRAY(i2330)), i2444)), i2315, i140, i2315, i140, i2339, java.lang.Object(o833sub)) :|: TRUE f4887_0_random_InvokeMethod(EOS(STATIC_4887(java.lang.Object(ARRAY(i2330)), i2444)), i2315, i140, i2315, i140, i2339, java.lang.Object(o846sub)) -> f4890_0_random_InvokeMethod(EOS(STATIC_4890(java.lang.Object(ARRAY(i2330)), i2444)), i2315, i140, i2315, i140, i2339, java.lang.Object(o846sub)) :|: TRUE f4890_0_random_InvokeMethod(EOS(STATIC_4890(java.lang.Object(ARRAY(i2330)), i2444)), i2315, i140, i2315, i140, i2339, java.lang.Object(o846sub)) -> f4898_0_length_Load(EOS(STATIC_4898(java.lang.Object(ARRAY(i2330)), i2444)), i2315, i140, i2315, i140, i2339, java.lang.Object(o846sub)) :|: TRUE f4898_0_length_Load(EOS(STATIC_4898(java.lang.Object(ARRAY(i2330)), i2444)), i2315, i140, i2315, i140, i2339, java.lang.Object(o846sub)) -> f4905_0_length_FieldAccess(EOS(STATIC_4905(java.lang.Object(ARRAY(i2330)), i2444)), i2315, i140, i2315, i140, i2339, java.lang.Object(o846sub)) :|: TRUE f4905_0_length_FieldAccess(EOS(STATIC_4905(java.lang.Object(ARRAY(i2330)), i2444)), i2315, i140, i2315, i140, i2339, java.lang.Object(java.lang.String(EOC, i2671))) -> f4914_0_length_FieldAccess(EOS(STATIC_4914(java.lang.Object(ARRAY(i2330)), i2444)), i2315, i140, i2315, i140, i2339, java.lang.Object(java.lang.String(EOC, i2671))) :|: i2671 >= 0 f4914_0_length_FieldAccess(EOS(STATIC_4914(java.lang.Object(ARRAY(i2330)), i2444)), i2315, i140, i2315, i140, i2339, java.lang.Object(java.lang.String(EOC, i2671))) -> f4925_0_length_Return(EOS(STATIC_4925(java.lang.Object(ARRAY(i2330)), i2444)), i2315, i140, i2315, i140, i2339, i2671) :|: TRUE f4925_0_length_Return(EOS(STATIC_4925(java.lang.Object(ARRAY(i2330)), i2444)), i2315, i140, i2315, i140, i2339, i2671) -> f4931_0_random_Return(EOS(STATIC_4931(java.lang.Object(ARRAY(i2330)), i2444)), i2315, i140, i2315, i140, i2339, i2671) :|: TRUE f4931_0_random_Return(EOS(STATIC_4931(java.lang.Object(ARRAY(i2330)), i2444)), i2315, i140, i2315, i140, i2339, i2671) -> f4934_0_rec_IntArithmetic(EOS(STATIC_4934(java.lang.Object(ARRAY(i2330)), i2444)), i2315, i140, i2315, i140, i2339, i2671) :|: TRUE f4934_0_rec_IntArithmetic(EOS(STATIC_4934(java.lang.Object(ARRAY(i2330)), i2444)), i2315, i140, i2315, i140, i2339, i2671) -> f4943_0_rec_ConstantStackPush(EOS(STATIC_4943(java.lang.Object(ARRAY(i2330)), i2444)), i2315, i140, i2315, i140, i2339 * i2671) :|: TRUE f4943_0_rec_ConstantStackPush(EOS(STATIC_4943(java.lang.Object(ARRAY(i2330)), i2444)), i2315, i140, i2315, i140, i2798) -> f4947_0_rec_LE(EOS(STATIC_4947(java.lang.Object(ARRAY(i2330)), i2444)), i2315, i140, i2315, i140, i2798, 9) :|: TRUE f4947_0_rec_LE(EOS(STATIC_4947(java.lang.Object(ARRAY(i2330)), i2444)), i2315, i140, i2315, i140, i2809, matching1) -> f4951_0_rec_LE(EOS(STATIC_4951(java.lang.Object(ARRAY(i2330)), i2444)), i2315, i140, i2315, i140, i2809, 9) :|: TRUE && matching1 = 9 f4947_0_rec_LE(EOS(STATIC_4947(java.lang.Object(ARRAY(i2330)), i2444)), i2315, i140, i2315, i140, i2810, matching1) -> f4952_0_rec_LE(EOS(STATIC_4952(java.lang.Object(ARRAY(i2330)), i2444)), i2315, i140, i2315, i140, i2810, 9) :|: TRUE && matching1 = 9 f4951_0_rec_LE(EOS(STATIC_4951(java.lang.Object(ARRAY(i2330)), i2444)), i2315, i140, i2315, i140, i2809, matching1) -> f4954_0_rec_Load(EOS(STATIC_4954(java.lang.Object(ARRAY(i2330)), i2444)), i2315, i140, i2315, i140) :|: i2809 <= 9 && matching1 = 9 f4954_0_rec_Load(EOS(STATIC_4954(java.lang.Object(ARRAY(i2330)), i2444)), i2315, i140, i2315, i140) -> f4961_0_rec_Load(EOS(STATIC_4961(java.lang.Object(ARRAY(i2330)), i2444)), i2315, i140, i140, i2315) :|: TRUE f4961_0_rec_Load(EOS(STATIC_4961(java.lang.Object(ARRAY(i2330)), i2444)), i2315, i140, i140, i2315) -> f4965_0_rec_ConstantStackPush(EOS(STATIC_4965(java.lang.Object(ARRAY(i2330)), i2444)), i2315, i140, i2315, i140) :|: TRUE f4965_0_rec_ConstantStackPush(EOS(STATIC_4965(java.lang.Object(ARRAY(i2330)), i2444)), i2315, i140, i2315, i140) -> f4969_0_rec_IntArithmetic(EOS(STATIC_4969(java.lang.Object(ARRAY(i2330)), i2444)), i2315, i140, i2315, i140, 1) :|: TRUE f4969_0_rec_IntArithmetic(EOS(STATIC_4969(java.lang.Object(ARRAY(i2330)), i2444)), i2315, i140, i2315, i140, matching1) -> f4973_0_rec_InvokeMethod(EOS(STATIC_4973(java.lang.Object(ARRAY(i2330)), i2444)), i2315, i140, i2315, i140 - 1) :|: TRUE && matching1 = 1 f4973_0_rec_InvokeMethod(EOS(STATIC_4973(java.lang.Object(ARRAY(i2330)), i2444)), i2315, i140, i2315, i2850) -> f4977_0_rec_Load(EOS(STATIC_4977(java.lang.Object(ARRAY(i2330)), i2444)), i2315, i2850, i2315, i2850) :|: i2444 > 1 && i2330 > 1 && i2444 <= i2330 && i2850 < i140 f4973_0_rec_InvokeMethod(EOS(STATIC_4973(java.lang.Object(ARRAY(i2330)), i2444)), i2315, i140, i2315, i2850) -> f4977_1_rec_Load(EOS(STATIC_4977(java.lang.Object(ARRAY(i2330)), i2444)), i2315, i140, i2315, i2850) :|: i2444 > 1 && i2330 > 1 && i2444 <= i2330 && i2850 < i140 f4977_0_rec_Load(EOS(STATIC_4977(java.lang.Object(ARRAY(i2330)), i2444)), i2315, i2850, i2315, i2850) -> f4981_0_rec_Load(EOS(STATIC_4981(java.lang.Object(ARRAY(i2330)), i2444)), i2315, i2850, i2315, i2850) :|: TRUE f4981_0_rec_Load(EOS(STATIC_4981(java.lang.Object(ARRAY(i2330)), i2444)), i2315, i2850, i2315, i2850) -> f4713_0_rec_Load(EOS(STATIC_4713(java.lang.Object(ARRAY(i2330)), i2444)), i2315, i2850, i2315, i2850) :|: TRUE f4713_0_rec_Load(EOS(STATIC_4713(java.lang.Object(o790sub), i2314)), i2315, i140, i2315, i140) -> f4714_0_rec_Load(EOS(STATIC_4714(java.lang.Object(o790sub), i2314)), i2315, i140, i2315, i140, i2315) :|: TRUE f4952_0_rec_LE(EOS(STATIC_4952(java.lang.Object(ARRAY(i2330)), i2444)), i2315, i140, i2315, i140, i2810, matching1) -> f4955_0_rec_Load(EOS(STATIC_4955(java.lang.Object(ARRAY(i2330)), i2444)), i2315, i140, i2315, i140) :|: i2810 > 9 && matching1 = 9 f4955_0_rec_Load(EOS(STATIC_4955(java.lang.Object(ARRAY(i2330)), i2444)), i2315, i140, i2315, i140) -> f4962_0_rec_ConstantStackPush(EOS(STATIC_4962(java.lang.Object(ARRAY(i2330)), i2444)), i2315, i140, i140, i2315) :|: TRUE f4962_0_rec_ConstantStackPush(EOS(STATIC_4962(java.lang.Object(ARRAY(i2330)), i2444)), i2315, i140, i140, i2315) -> f4966_0_rec_IntArithmetic(EOS(STATIC_4966(java.lang.Object(ARRAY(i2330)), i2444)), i2315, i140, i140, i2315, 1) :|: TRUE f4966_0_rec_IntArithmetic(EOS(STATIC_4966(java.lang.Object(ARRAY(i2330)), i2444)), i2315, i140, i140, i2315, matching1) -> f4970_0_rec_Load(EOS(STATIC_4970(java.lang.Object(ARRAY(i2330)), i2444)), i2315, i140, i140, i2315 - 1) :|: TRUE && matching1 = 1 f4970_0_rec_Load(EOS(STATIC_4970(java.lang.Object(ARRAY(i2330)), i2444)), i2315, i140, i140, i2849) -> f4974_0_rec_InvokeMethod(EOS(STATIC_4974(java.lang.Object(ARRAY(i2330)), i2444)), i2315, i140, i2849, i140) :|: TRUE f4974_0_rec_InvokeMethod(EOS(STATIC_4974(java.lang.Object(ARRAY(i2330)), i2444)), i2315, i140, i2849, i140) -> f4978_0_rec_Load(EOS(STATIC_4978(java.lang.Object(ARRAY(i2330)), i2444)), i2849, i140, i2849, i140) :|: i2444 > 1 && i2330 > 1 && i2444 <= i2330 && i2849 < i2315 f4974_0_rec_InvokeMethod(EOS(STATIC_4974(java.lang.Object(ARRAY(i2330)), i2444)), i2315, i140, i2849, i140) -> f4978_1_rec_Load(EOS(STATIC_4978(java.lang.Object(ARRAY(i2330)), i2444)), i2315, i140, i2849, i140) :|: i2444 > 1 && i2330 > 1 && i2444 <= i2330 && i2849 < i2315 f4978_0_rec_Load(EOS(STATIC_4978(java.lang.Object(ARRAY(i2330)), i2444)), i2849, i140, i2849, i140) -> f4982_0_rec_Load(EOS(STATIC_4982(java.lang.Object(ARRAY(i2330)), i2444)), i2849, i140, i2849, i140) :|: TRUE f4982_0_rec_Load(EOS(STATIC_4982(java.lang.Object(ARRAY(i2330)), i2444)), i2849, i140, i2849, i140) -> f4713_0_rec_Load(EOS(STATIC_4713(java.lang.Object(ARRAY(i2330)), i2444)), i2849, i140, i2849, i140) :|: TRUE f4823_0_random_LT(EOS(STATIC_4823(java.lang.Object(ARRAY(i2330)), i2335)), i2315, i140, i2315, i140, i2339, i2335, i2330) -> f4829_0_random_ConstantStackPush(EOS(STATIC_4829(java.lang.Object(ARRAY(i2330)), i2335)), i2315, i140, i2315, i140, i2339) :|: i2335 >= i2330 f4829_0_random_ConstantStackPush(EOS(STATIC_4829(java.lang.Object(ARRAY(i2330)), i2335)), i2315, i140, i2315, i140, i2339) -> f4834_0_random_Return(EOS(STATIC_4834(java.lang.Object(ARRAY(i2330)), i2335)), i2315, i140, i2315, i140, i2339) :|: TRUE f4834_0_random_Return(EOS(STATIC_4834(java.lang.Object(ARRAY(i2330)), i2335)), i2315, i140, i2315, i140, i2339) -> f4841_0_rec_IntArithmetic(EOS(STATIC_4841(java.lang.Object(ARRAY(i2330)), i2335)), i2315, i140, i2315, i140, i2339) :|: TRUE f4841_0_rec_IntArithmetic(EOS(STATIC_4841(java.lang.Object(ARRAY(i2330)), i2335)), i2315, i140, i2315, i140, i2339) -> f4847_0_rec_ConstantStackPush(EOS(STATIC_4847(java.lang.Object(ARRAY(i2330)), i2335)), i2315, i140, i2315, i140) :|: TRUE f4847_0_rec_ConstantStackPush(EOS(STATIC_4847(java.lang.Object(ARRAY(i2330)), i2335)), i2315, i140, i2315, i140) -> f4853_0_rec_LE(EOS(STATIC_4853(java.lang.Object(ARRAY(i2330)), i2335)), i2315, i140, i2315, i140) :|: TRUE f4853_0_rec_LE(EOS(STATIC_4853(java.lang.Object(ARRAY(i2330)), i2335)), i2315, i140, i2315, i140) -> f4858_0_rec_Load(EOS(STATIC_4858(java.lang.Object(ARRAY(i2330)), i2335)), i2315, i140, i2315, i140) :|: TRUE f4858_0_rec_Load(EOS(STATIC_4858(java.lang.Object(ARRAY(i2330)), i2335)), i2315, i140, i2315, i140) -> f4863_0_rec_Load(EOS(STATIC_4863(java.lang.Object(ARRAY(i2330)), i2335)), i2315, i140, i140, i2315) :|: TRUE f4863_0_rec_Load(EOS(STATIC_4863(java.lang.Object(ARRAY(i2330)), i2335)), i2315, i140, i140, i2315) -> f4870_0_rec_ConstantStackPush(EOS(STATIC_4870(java.lang.Object(ARRAY(i2330)), i2335)), i2315, i140, i2315, i140) :|: TRUE f4870_0_rec_ConstantStackPush(EOS(STATIC_4870(java.lang.Object(ARRAY(i2330)), i2335)), i2315, i140, i2315, i140) -> f4873_0_rec_IntArithmetic(EOS(STATIC_4873(java.lang.Object(ARRAY(i2330)), i2335)), i2315, i140, i2315, i140, 1) :|: TRUE f4873_0_rec_IntArithmetic(EOS(STATIC_4873(java.lang.Object(ARRAY(i2330)), i2335)), i2315, i140, i2315, i140, matching1) -> f4879_0_rec_InvokeMethod(EOS(STATIC_4879(java.lang.Object(ARRAY(i2330)), i2335)), i2315, i140, i2315, i140 - 1) :|: TRUE && matching1 = 1 f4879_0_rec_InvokeMethod(EOS(STATIC_4879(java.lang.Object(ARRAY(i2330)), i2335)), i2315, i140, i2315, i2449) -> f4884_0_rec_Load(EOS(STATIC_4884(java.lang.Object(ARRAY(i2330)), i2335)), i2315, i2449, i2315, i2449) :|: i2335 >= 1 && i2335 = i2330 && i2449 < i140 f4879_0_rec_InvokeMethod(EOS(STATIC_4879(java.lang.Object(ARRAY(i2330)), i2335)), i2315, i140, i2315, i2449) -> f4884_1_rec_Load(EOS(STATIC_4884(java.lang.Object(ARRAY(i2330)), i2335)), i2315, i140, i2315, i2449) :|: i2335 >= 1 && i2335 = i2330 && i2449 < i140 f4884_0_rec_Load(EOS(STATIC_4884(java.lang.Object(ARRAY(i2330)), i2335)), i2315, i2449, i2315, i2449) -> f4889_0_rec_Load(EOS(STATIC_4889(java.lang.Object(ARRAY(i2330)), i2335)), i2315, i2449, i2315, i2449) :|: TRUE f4889_0_rec_Load(EOS(STATIC_4889(java.lang.Object(ARRAY(i2330)), i2335)), i2315, i2449, i2315, i2449) -> f4713_0_rec_Load(EOS(STATIC_4713(java.lang.Object(ARRAY(i2330)), i2335)), i2315, i2449, i2315, i2449) :|: TRUE f4729_0_random_LT(EOS(STATIC_4729(java.lang.Object(ARRAY(i2330)), i2314)), i2315, i140, i2315, i140, i2314, i2330) -> f4731_0_random_ConstantStackPush(EOS(STATIC_4731(java.lang.Object(ARRAY(i2330)), i2314)), i2315, i140, i2315, i140) :|: i2314 >= i2330 f4731_0_random_ConstantStackPush(EOS(STATIC_4731(java.lang.Object(ARRAY(i2330)), i2314)), i2315, i140, i2315, i140) -> f4733_0_random_Return(EOS(STATIC_4733(java.lang.Object(ARRAY(i2330)), i2314)), i2315, i140, i2315, i140) :|: TRUE f4733_0_random_Return(EOS(STATIC_4733(java.lang.Object(ARRAY(i2330)), i2314)), i2315, i140, i2315, i140) -> f4735_0_rec_InvokeMethod(EOS(STATIC_4735(java.lang.Object(ARRAY(i2330)), i2314)), i2315, i140, i2315, i140) :|: TRUE f4735_0_rec_InvokeMethod(EOS(STATIC_4735(java.lang.Object(ARRAY(i2330)), i2314)), i2315, i140, i2315, i140) -> f4738_0_random_FieldAccess(EOS(STATIC_4738(java.lang.Object(ARRAY(i2330)), i2314)), i2315, i140, i2315, i140) :|: TRUE f4738_0_random_FieldAccess(EOS(STATIC_4738(java.lang.Object(ARRAY(i2330)), i2314)), i2315, i140, i2315, i140) -> f4744_0_random_FieldAccess(EOS(STATIC_4744(java.lang.Object(ARRAY(i2330)), i2314)), i2315, i140, i2315, i140, i2314) :|: TRUE f4744_0_random_FieldAccess(EOS(STATIC_4744(java.lang.Object(ARRAY(i2330)), i2314)), i2315, i140, i2315, i140, i2314) -> f4747_0_random_ArrayLength(EOS(STATIC_4747(java.lang.Object(ARRAY(i2330)), i2314)), i2315, i140, i2315, i140, i2314, java.lang.Object(ARRAY(i2330))) :|: TRUE f4747_0_random_ArrayLength(EOS(STATIC_4747(java.lang.Object(ARRAY(i2330)), i2314)), i2315, i140, i2315, i140, i2314, java.lang.Object(ARRAY(i2330))) -> f4751_0_random_LT(EOS(STATIC_4751(java.lang.Object(ARRAY(i2330)), i2314)), i2315, i140, i2315, i140, i2314, i2330) :|: i2330 >= 0 f4751_0_random_LT(EOS(STATIC_4751(java.lang.Object(ARRAY(i2330)), i2314)), i2315, i140, i2315, i140, i2314, i2330) -> f4754_0_random_LT(EOS(STATIC_4754(java.lang.Object(ARRAY(i2330)), i2314)), i2315, i140, i2315, i140, i2314, i2330) :|: i2314 >= i2330 f4754_0_random_LT(EOS(STATIC_4754(java.lang.Object(ARRAY(i2330)), i2314)), i2315, i140, i2315, i140, i2314, i2330) -> f4757_0_random_ConstantStackPush(EOS(STATIC_4757(java.lang.Object(ARRAY(i2330)), i2314)), i2315, i140, i2315, i140) :|: i2314 >= i2330 f4757_0_random_ConstantStackPush(EOS(STATIC_4757(java.lang.Object(ARRAY(i2330)), i2314)), i2315, i140, i2315, i140) -> f4761_0_random_Return(EOS(STATIC_4761(java.lang.Object(ARRAY(i2330)), i2314)), i2315, i140, i2315, i140) :|: TRUE f4761_0_random_Return(EOS(STATIC_4761(java.lang.Object(ARRAY(i2330)), i2314)), i2315, i140, i2315, i140) -> f4764_0_rec_IntArithmetic(EOS(STATIC_4764(java.lang.Object(ARRAY(i2330)), i2314)), i2315, i140, i2315, i140) :|: TRUE f4764_0_rec_IntArithmetic(EOS(STATIC_4764(java.lang.Object(ARRAY(i2330)), i2314)), i2315, i140, i2315, i140) -> f4768_0_rec_ConstantStackPush(EOS(STATIC_4768(java.lang.Object(ARRAY(i2330)), i2314)), i2315, i140, i2315, i140) :|: TRUE f4768_0_rec_ConstantStackPush(EOS(STATIC_4768(java.lang.Object(ARRAY(i2330)), i2314)), i2315, i140, i2315, i140) -> f4773_0_rec_LE(EOS(STATIC_4773(java.lang.Object(ARRAY(i2330)), i2314)), i2315, i140, i2315, i140) :|: TRUE f4773_0_rec_LE(EOS(STATIC_4773(java.lang.Object(ARRAY(i2330)), i2314)), i2315, i140, i2315, i140) -> f4776_0_rec_Load(EOS(STATIC_4776(java.lang.Object(ARRAY(i2330)), i2314)), i2315, i140, i2315, i140) :|: TRUE f4776_0_rec_Load(EOS(STATIC_4776(java.lang.Object(ARRAY(i2330)), i2314)), i2315, i140, i2315, i140) -> f4779_0_rec_Load(EOS(STATIC_4779(java.lang.Object(ARRAY(i2330)), i2314)), i2315, i140, i140, i2315) :|: TRUE f4779_0_rec_Load(EOS(STATIC_4779(java.lang.Object(ARRAY(i2330)), i2314)), i2315, i140, i140, i2315) -> f4784_0_rec_ConstantStackPush(EOS(STATIC_4784(java.lang.Object(ARRAY(i2330)), i2314)), i2315, i140, i2315, i140) :|: TRUE f4784_0_rec_ConstantStackPush(EOS(STATIC_4784(java.lang.Object(ARRAY(i2330)), i2314)), i2315, i140, i2315, i140) -> f4787_0_rec_IntArithmetic(EOS(STATIC_4787(java.lang.Object(ARRAY(i2330)), i2314)), i2315, i140, i2315, i140, 1) :|: TRUE f4787_0_rec_IntArithmetic(EOS(STATIC_4787(java.lang.Object(ARRAY(i2330)), i2314)), i2315, i140, i2315, i140, matching1) -> f4791_0_rec_InvokeMethod(EOS(STATIC_4791(java.lang.Object(ARRAY(i2330)), i2314)), i2315, i140, i2315, i140 - 1) :|: TRUE && matching1 = 1 f4791_0_rec_InvokeMethod(EOS(STATIC_4791(java.lang.Object(ARRAY(i2330)), i2314)), i2315, i140, i2315, i2341) -> f4796_0_rec_Load(EOS(STATIC_4796(java.lang.Object(ARRAY(i2330)), i2314)), i2315, i2341, i2315, i2341) :|: i2314 >= i2330 && i2341 < i140 f4791_0_rec_InvokeMethod(EOS(STATIC_4791(java.lang.Object(ARRAY(i2330)), i2314)), i2315, i140, i2315, i2341) -> f4796_1_rec_Load(EOS(STATIC_4796(java.lang.Object(ARRAY(i2330)), i2314)), i2315, i140, i2315, i2341) :|: i2314 >= i2330 && i2341 < i140 f4796_0_rec_Load(EOS(STATIC_4796(java.lang.Object(ARRAY(i2330)), i2314)), i2315, i2341, i2315, i2341) -> f4800_0_rec_Load(EOS(STATIC_4800(java.lang.Object(ARRAY(i2330)), i2314)), i2315, i2341, i2315, i2341) :|: TRUE f4800_0_rec_Load(EOS(STATIC_4800(java.lang.Object(ARRAY(i2330)), i2314)), i2315, i2341, i2315, i2341) -> f4713_0_rec_Load(EOS(STATIC_4713(java.lang.Object(ARRAY(i2330)), i2314)), i2315, i2341, i2315, i2341) :|: TRUE Combined rules. Obtained 8 IRulesP rules: f4714_0_rec_Load(EOS(STATIC_4714(java.lang.Object(ARRAY(i2330:0)), i2314:0)), i2315:0, i140:0, i2315:0, i140:0, i2315:0) -> f4714_0_rec_Load(EOS(STATIC_4714(java.lang.Object(ARRAY(i2330:0)), i2314:0 + 2)), i2315:0, i140:0 - 1, i2315:0, i140:0 - 1, i2315:0) :|: i2330:0 > i2314:0 + 1 && i2330:0 > 1 && i2315:0 + i140:0 > 0 && i2314:0 > -1 && i2339:0 > -1 && i2671:0 > -1 && i2339:0 * i2671:0 <= 9 && i140:0 - 1 < i140:0 && i2330:0 >= i2314:0 + 2 f4714_0_rec_Load(EOS(STATIC_4714(java.lang.Object(ARRAY(i2314:0 + 1)), i2314:0)), i2315:0, i140:0, i2315:0, i140:0, i2315:0) -> f4714_0_rec_Load(EOS(STATIC_4714(java.lang.Object(ARRAY(i2314:0 + 1)), i2314:0 + 1)), i2315:0, i140:0 - 1, i2315:0, i140:0 - 1, i2315:0) :|: i2314:0 > -1 && i2315:0 + i140:0 > 0 && i2314:0 + 1 > i2314:0 && i140:0 - 1 < i140:0 && i2339:0 > -1 f4714_0_rec_Load(EOS(STATIC_4714(java.lang.Object(ARRAY(i2330:0)), i2314:0)), i2315:0, i140:0, i2315:0, i140:0, i2315:0) -> f4714_0_rec_Load(EOS(STATIC_4714(java.lang.Object(ARRAY(i2330:0)), i2314:0)), i2315:0, i140:0 - 1, i2315:0, i140:0 - 1, i2315:0) :|: i2315:0 + i140:0 > 0 && i2330:0 > -1 && i2330:0 <= i2314:0 && i140:0 - 1 < i140:0 f4714_0_rec_Load(EOS(STATIC_4714(java.lang.Object(ARRAY(i2330:0)), i2314:0)), i2315:0, i140:0, i2315:0, i140:0, i2315:0) -> f4714_0_rec_Load(EOS(STATIC_4714(java.lang.Object(ARRAY(i2330:0)), i2314:0 + 2)), i2315:0 - 1, i140:0, i2315:0 - 1, i140:0, i2315:0 - 1) :|: i2330:0 > i2314:0 + 1 && i2330:0 > 1 && i2315:0 + i140:0 > 0 && i2314:0 > -1 && i2339:0 > -1 && i2671:0 > -1 && i2339:0 * i2671:0 > 9 && i2315:0 - 1 < i2315:0 && i2330:0 >= i2314:0 + 2 Removed following non-SCC rules: f4714_0_rec_Load(EOS(STATIC_4714(java.lang.Object(ARRAY(i2330:0)), i2314:0)), i2315:0, i140:0, i2315:0, i140:0, i2315:0) -> f4978_1_rec_Load(EOS(STATIC_4978(java.lang.Object(ARRAY(i2330:0)), i2314:0 + 2)), i2315:0, i140:0, i2315:0 - 1, i140:0) :|: i2330:0 > i2314:0 + 1 && i2330:0 > 1 && i2315:0 + i140:0 > 0 && i2314:0 > -1 && i2339:0 > -1 && i2671:0 > -1 && i2339:0 * i2671:0 > 9 && i2315:0 - 1 < i2315:0 && i2330:0 >= i2314:0 + 2 f4714_0_rec_Load(EOS(STATIC_4714(java.lang.Object(ARRAY(i2330:0)), i2314:0)), i2315:0, i140:0, i2315:0, i140:0, i2315:0) -> f4977_1_rec_Load(EOS(STATIC_4977(java.lang.Object(ARRAY(i2330:0)), i2314:0 + 2)), i2315:0, i140:0, i2315:0, i140:0 - 1) :|: i2330:0 > i2314:0 + 1 && i2330:0 > 1 && i2315:0 + i140:0 > 0 && i2314:0 > -1 && i2339:0 > -1 && i2671:0 > -1 && i2339:0 * i2671:0 <= 9 && i140:0 - 1 < i140:0 && i2330:0 >= i2314:0 + 2 f4714_0_rec_Load(EOS(STATIC_4714(java.lang.Object(ARRAY(i2330:0)), i2314:0)), i2315:0, i140:0, i2315:0, i140:0, i2315:0) -> f4796_1_rec_Load(EOS(STATIC_4796(java.lang.Object(ARRAY(i2330:0)), i2314:0)), i2315:0, i140:0, i2315:0, i140:0 - 1) :|: i2315:0 + i140:0 > 0 && i2330:0 > -1 && i2330:0 <= i2314:0 && i140:0 - 1 < i140:0 f4714_0_rec_Load(EOS(STATIC_4714(java.lang.Object(ARRAY(i2314:0 + 1)), i2314:0)), i2315:0, i140:0, i2315:0, i140:0, i2315:0) -> f4884_1_rec_Load(EOS(STATIC_4884(java.lang.Object(ARRAY(i2314:0 + 1)), i2314:0 + 1)), i2315:0, i140:0, i2315:0, i140:0 - 1) :|: i2314:0 > -1 && i2315:0 + i140:0 > 0 && i2314:0 + 1 > i2314:0 && i140:0 - 1 < i140:0 && i2339:0 > -1 Filtered duplicate arguments: f4714_0_rec_Load(x1, x2, x3, x4, x5, x6) -> f4714_0_rec_Load(x1, x5, x6) Finished conversion. Obtained 4 rules.P rules: f4714_0_rec_Load(i140:0, i2315:0, i2330:0, i2314:0) -> f4714_0_rec_Load(i140:0 - 1, i2315:0, i2330:0, i2314:0 + 2) :|: i2330:0 > 1 && i2330:0 > i2314:0 + 1 && i2315:0 + i140:0 > 0 && i2314:0 > -1 && i2339:0 > -1 && i2671:0 > -1 && i2339:0 * i2671:0 <= 9 && i2330:0 >= i2314:0 + 2 && i140:0 - 1 < i140:0 f4714_0_rec_Load(i140:0, i2315:0, sum~i2314:0~cons_11, i2314:0) -> f4714_0_rec_Load(i140:0 - 1, i2315:0, i2314:0 + 1, i2314:0 + 1) :|: i2315:0 + i140:0 > 0 && i2314:0 > -1 && i2314:0 + 1 > i2314:0 && i2339:0 > -1 && i140:0 - 1 < i140:0 && sum~i2314:0~cons_1 = i2314:0 + 1 && sum~i2314:0~cons_11 = i2314:0 + 1 f4714_0_rec_Load(i140:0, i2315:0, i2330:0, i2314:0) -> f4714_0_rec_Load(i140:0 - 1, i2315:0, i2330:0, i2314:0) :|: i2330:0 > -1 && i2315:0 + i140:0 > 0 && i140:0 - 1 < i140:0 && i2330:0 <= i2314:0 f4714_0_rec_Load(i140:0, i2315:0, i2330:0, i2314:0) -> f4714_0_rec_Load(i140:0, i2315:0 - 1, i2330:0, i2314:0 + 2) :|: i2330:0 > 1 && i2330:0 > i2314:0 + 1 && i2315:0 + i140:0 > 0 && i2314:0 > -1 && i2339:0 > -1 && i2671:0 > -1 && i2339:0 * i2671:0 > 9 && i2330:0 >= i2314:0 + 2 && i2315:0 - 1 < i2315:0 ---------------------------------------- (8) Obligation: Rules: f4714_0_rec_Load(i140:0, i2315:0, i2330:0, i2314:0) -> f4714_0_rec_Load(i140:0 - 1, i2315:0, i2330:0, i2314:0 + 2) :|: i2330:0 > 1 && i2330:0 > i2314:0 + 1 && i2315:0 + i140:0 > 0 && i2314:0 > -1 && i2339:0 > -1 && i2671:0 > -1 && i2339:0 * i2671:0 <= 9 && i2330:0 >= i2314:0 + 2 && i140:0 - 1 < i140:0 f4714_0_rec_Load(x, x1, x2, x3) -> f4714_0_rec_Load(x - 1, x1, x3 + 1, x3 + 1) :|: x1 + x > 0 && x3 > -1 && x3 + 1 > x3 && x4 > -1 && x - 1 < x && x5 = x3 + 1 && x2 = x3 + 1 f4714_0_rec_Load(x6, x7, x8, x9) -> f4714_0_rec_Load(x6 - 1, x7, x8, x9) :|: x8 > -1 && x7 + x6 > 0 && x6 - 1 < x6 && x8 <= x9 f4714_0_rec_Load(x10, x11, x12, x13) -> f4714_0_rec_Load(x10, x11 - 1, x12, x13 + 2) :|: x12 > 1 && x12 > x13 + 1 && x11 + x10 > 0 && x13 > -1 && x14 > -1 && x15 > -1 && x14 * x15 > 9 && x12 >= x13 + 2 && x11 - 1 < x11 ---------------------------------------- (9) IRSFormatTransformerProof (EQUIVALENT) Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). ---------------------------------------- (10) Obligation: Rules: f4714_0_rec_Load(i140:0, i2315:0, i2330:0, i2314:0) -> f4714_0_rec_Load(arith, i2315:0, i2330:0, arith1) :|: i2330:0 > 1 && i2330:0 > i2314:0 + 1 && i2315:0 + i140:0 > 0 && i2314:0 > -1 && i2339:0 > -1 && i2671:0 > -1 && i2339:0 * i2671:0 <= 9 && i2330:0 >= i2314:0 + 2 && i140:0 - 1 < i140:0 && arith = i140:0 - 1 && arith1 = i2314:0 + 2 f4714_0_rec_Load(x16, x17, x18, x19) -> f4714_0_rec_Load(x20, x17, x21, x21) :|: x17 + x16 > 0 && x19 > -1 && x19 + 1 > x19 && x22 > -1 && x16 - 1 < x16 && x23 = x19 + 1 && x18 = x19 + 1 && x20 = x16 - 1 && x21 = x19 + 1 && x21 = x19 + 1 f4714_0_rec_Load(x24, x25, x26, x27) -> f4714_0_rec_Load(x28, x25, x26, x27) :|: x26 > -1 && x25 + x24 > 0 && x24 - 1 < x24 && x26 <= x27 && x28 = x24 - 1 f4714_0_rec_Load(x29, x30, x31, x32) -> f4714_0_rec_Load(x29, x33, x31, x34) :|: x31 > 1 && x31 > x32 + 1 && x30 + x29 > 0 && x32 > -1 && x35 > -1 && x36 > -1 && x35 * x36 > 9 && x31 >= x32 + 2 && x30 - 1 < x30 && x33 = x30 - 1 && x34 = x32 + 2 ---------------------------------------- (11) IRSwTTerminationDigraphProof (EQUIVALENT) Constructed termination digraph! Nodes: (1) f4714_0_rec_Load(i140:0, i2315:0, i2330:0, i2314:0) -> f4714_0_rec_Load(arith, i2315:0, i2330:0, arith1) :|: i2330:0 > 1 && i2330:0 > i2314:0 + 1 && i2315:0 + i140:0 > 0 && i2314:0 > -1 && i2339:0 > -1 && i2671:0 > -1 && i2339:0 * i2671:0 <= 9 && i2330:0 >= i2314:0 + 2 && i140:0 - 1 < i140:0 && arith = i140:0 - 1 && arith1 = i2314:0 + 2 (2) f4714_0_rec_Load(x16, x17, x18, x19) -> f4714_0_rec_Load(x20, x17, x21, x21) :|: x17 + x16 > 0 && x19 > -1 && x19 + 1 > x19 && x22 > -1 && x16 - 1 < x16 && x23 = x19 + 1 && x18 = x19 + 1 && x20 = x16 - 1 && x21 = x19 + 1 && x21 = x19 + 1 (3) f4714_0_rec_Load(x24, x25, x26, x27) -> f4714_0_rec_Load(x28, x25, x26, x27) :|: x26 > -1 && x25 + x24 > 0 && x24 - 1 < x24 && x26 <= x27 && x28 = x24 - 1 (4) f4714_0_rec_Load(x29, x30, x31, x32) -> f4714_0_rec_Load(x29, x33, x31, x34) :|: x31 > 1 && x31 > x32 + 1 && x30 + x29 > 0 && x32 > -1 && x35 > -1 && x36 > -1 && x35 * x36 > 9 && x31 >= x32 + 2 && x30 - 1 < x30 && x33 = x30 - 1 && x34 = x32 + 2 Arcs: (1) -> (1), (2), (3), (4) (2) -> (3) (3) -> (3) (4) -> (1), (2), (3), (4) This digraph is fully evaluated! ---------------------------------------- (12) Complex Obligation (AND) ---------------------------------------- (13) Obligation: Termination digraph: Nodes: (1) f4714_0_rec_Load(i140:0, i2315:0, i2330:0, i2314:0) -> f4714_0_rec_Load(arith, i2315:0, i2330:0, arith1) :|: i2330:0 > 1 && i2330:0 > i2314:0 + 1 && i2315:0 + i140:0 > 0 && i2314:0 > -1 && i2339:0 > -1 && i2671:0 > -1 && i2339:0 * i2671:0 <= 9 && i2330:0 >= i2314:0 + 2 && i140:0 - 1 < i140:0 && arith = i140:0 - 1 && arith1 = i2314:0 + 2 (2) f4714_0_rec_Load(x29, x30, x31, x32) -> f4714_0_rec_Load(x29, x33, x31, x34) :|: x31 > 1 && x31 > x32 + 1 && x30 + x29 > 0 && x32 > -1 && x35 > -1 && x36 > -1 && x35 * x36 > 9 && x31 >= x32 + 2 && x30 - 1 < x30 && x33 = x30 - 1 && x34 = x32 + 2 Arcs: (1) -> (1), (2) (2) -> (1), (2) This digraph is fully evaluated! ---------------------------------------- (14) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (15) Obligation: Rules: f4714_0_rec_Load(i140:0:0, i2315:0:0, i2330:0:0, i2314:0:0) -> f4714_0_rec_Load(i140:0:0 - 1, i2315:0:0, i2330:0:0, i2314:0:0 + 2) :|: i2330:0:0 >= i2314:0:0 + 2 && i140:0:0 - 1 < i140:0:0 && i2339:0:0 * i2671:0:0 <= 9 && i2671:0:0 > -1 && i2339:0:0 > -1 && i2314:0:0 > -1 && i2315:0:0 + i140:0:0 > 0 && i2330:0:0 > i2314:0:0 + 1 && i2330:0:0 > 1 f4714_0_rec_Load(x29:0, x30:0, x31:0, x32:0) -> f4714_0_rec_Load(x29:0, x30:0 - 1, x31:0, x32:0 + 2) :|: x32:0 + 2 <= x31:0 && x30:0 - 1 < x30:0 && x35:0 * x36:0 > 9 && x36:0 > -1 && x35:0 > -1 && x32:0 > -1 && x30:0 + x29:0 > 0 && x32:0 + 1 < x31:0 && x31:0 > 1 ---------------------------------------- (16) TempFilterProof (SOUND) Used the following sort dictionary for filtering: f4714_0_rec_Load(INTEGER, INTEGER, INTEGER, INTEGER) Replaced non-predefined constructor symbols by 0. ---------------------------------------- (17) Obligation: Rules: f4714_0_rec_Load(i140:0:0, i2315:0:0, i2330:0:0, i2314:0:0) -> f4714_0_rec_Load(c, i2315:0:0, i2330:0:0, c1) :|: c1 = i2314:0:0 + 2 && c = i140:0:0 - 1 && (i2330:0:0 >= i2314:0:0 + 2 && i140:0:0 - 1 < i140:0:0 && i2339:0:0 * i2671:0:0 <= 9 && i2671:0:0 > -1 && i2339:0:0 > -1 && i2314:0:0 > -1 && i2315:0:0 + i140:0:0 > 0 && i2330:0:0 > i2314:0:0 + 1 && i2330:0:0 > 1) f4714_0_rec_Load(x29:0, x30:0, x31:0, x32:0) -> f4714_0_rec_Load(x29:0, c2, x31:0, c3) :|: c3 = x32:0 + 2 && c2 = x30:0 - 1 && (x32:0 + 2 <= x31:0 && x30:0 - 1 < x30:0 && x35:0 * x36:0 > 9 && x36:0 > -1 && x35:0 > -1 && x32:0 > -1 && x30:0 + x29:0 > 0 && x32:0 + 1 < x31:0 && x31:0 > 1) ---------------------------------------- (18) RankingReductionPairProof (EQUIVALENT) Interpretation: [ f4714_0_rec_Load ] = f4714_0_rec_Load_1 + f4714_0_rec_Load_2 The following rules are decreasing: f4714_0_rec_Load(i140:0:0, i2315:0:0, i2330:0:0, i2314:0:0) -> f4714_0_rec_Load(c, i2315:0:0, i2330:0:0, c1) :|: c1 = i2314:0:0 + 2 && c = i140:0:0 - 1 && (i2330:0:0 >= i2314:0:0 + 2 && i140:0:0 - 1 < i140:0:0 && i2339:0:0 * i2671:0:0 <= 9 && i2671:0:0 > -1 && i2339:0:0 > -1 && i2314:0:0 > -1 && i2315:0:0 + i140:0:0 > 0 && i2330:0:0 > i2314:0:0 + 1 && i2330:0:0 > 1) f4714_0_rec_Load(x29:0, x30:0, x31:0, x32:0) -> f4714_0_rec_Load(x29:0, c2, x31:0, c3) :|: c3 = x32:0 + 2 && c2 = x30:0 - 1 && (x32:0 + 2 <= x31:0 && x30:0 - 1 < x30:0 && x35:0 * x36:0 > 9 && x36:0 > -1 && x35:0 > -1 && x32:0 > -1 && x30:0 + x29:0 > 0 && x32:0 + 1 < x31:0 && x31:0 > 1) The following rules are bounded: f4714_0_rec_Load(i140:0:0, i2315:0:0, i2330:0:0, i2314:0:0) -> f4714_0_rec_Load(c, i2315:0:0, i2330:0:0, c1) :|: c1 = i2314:0:0 + 2 && c = i140:0:0 - 1 && (i2330:0:0 >= i2314:0:0 + 2 && i140:0:0 - 1 < i140:0:0 && i2339:0:0 * i2671:0:0 <= 9 && i2671:0:0 > -1 && i2339:0:0 > -1 && i2314:0:0 > -1 && i2315:0:0 + i140:0:0 > 0 && i2330:0:0 > i2314:0:0 + 1 && i2330:0:0 > 1) f4714_0_rec_Load(x29:0, x30:0, x31:0, x32:0) -> f4714_0_rec_Load(x29:0, c2, x31:0, c3) :|: c3 = x32:0 + 2 && c2 = x30:0 - 1 && (x32:0 + 2 <= x31:0 && x30:0 - 1 < x30:0 && x35:0 * x36:0 > 9 && x36:0 > -1 && x35:0 > -1 && x32:0 > -1 && x30:0 + x29:0 > 0 && x32:0 + 1 < x31:0 && x31:0 > 1) ---------------------------------------- (19) YES ---------------------------------------- (20) Obligation: Termination digraph: Nodes: (1) f4714_0_rec_Load(x24, x25, x26, x27) -> f4714_0_rec_Load(x28, x25, x26, x27) :|: x26 > -1 && x25 + x24 > 0 && x24 - 1 < x24 && x26 <= x27 && x28 = x24 - 1 Arcs: (1) -> (1) This digraph is fully evaluated! ---------------------------------------- (21) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (22) Obligation: Rules: f4714_0_rec_Load(x24:0, x25:0, x26:0, x27:0) -> f4714_0_rec_Load(x24:0 - 1, x25:0, x26:0, x27:0) :|: x24:0 - 1 < x24:0 && x27:0 >= x26:0 && x25:0 + x24:0 > 0 && x26:0 > -1 ---------------------------------------- (23) TempFilterProof (SOUND) Used the following sort dictionary for filtering: f4714_0_rec_Load(INTEGER, INTEGER, INTEGER, INTEGER) Replaced non-predefined constructor symbols by 0. ---------------------------------------- (24) Obligation: Rules: f4714_0_rec_Load(x24:0, x25:0, x26:0, x27:0) -> f4714_0_rec_Load(c, x25:0, x26:0, x27:0) :|: c = x24:0 - 1 && (x24:0 - 1 < x24:0 && x27:0 >= x26:0 && x25:0 + x24:0 > 0 && x26:0 > -1) ---------------------------------------- (25) PolynomialOrderProcessor (EQUIVALENT) Found the following polynomial interpretation: [f4714_0_rec_Load(x, x1, x2, x3)] = x + x1 The following rules are decreasing: f4714_0_rec_Load(x24:0, x25:0, x26:0, x27:0) -> f4714_0_rec_Load(c, x25:0, x26:0, x27:0) :|: c = x24:0 - 1 && (x24:0 - 1 < x24:0 && x27:0 >= x26:0 && x25:0 + x24:0 > 0 && x26:0 > -1) The following rules are bounded: f4714_0_rec_Load(x24:0, x25:0, x26:0, x27:0) -> f4714_0_rec_Load(c, x25:0, x26:0, x27:0) :|: c = x24:0 - 1 && (x24:0 - 1 < x24:0 && x27:0 >= x26:0 && x25:0 + x24:0 > 0 && x26:0 > -1) ---------------------------------------- (26) YES