11.14/3.92 YES 11.27/3.93 proof of /export/starexec/sandbox/benchmark/theBenchmark.jar 11.27/3.93 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 11.27/3.93 11.27/3.93 11.27/3.93 termination of the given Bare JBC problem could be proven: 11.27/3.93 11.27/3.93 (0) Bare JBC problem 11.27/3.93 (1) BareJBCToJBCProof [EQUIVALENT, 94 ms] 11.27/3.93 (2) JBC problem 11.27/3.93 (3) JBCToGraph [EQUIVALENT, 674 ms] 11.27/3.93 (4) JBCTerminationGraph 11.27/3.93 (5) TerminationGraphToSCCProof [SOUND, 0 ms] 11.27/3.93 (6) JBCTerminationSCC 11.27/3.93 (7) SCCToIRSProof [SOUND, 196 ms] 11.27/3.93 (8) IRSwT 11.27/3.93 (9) IRSFormatTransformerProof [EQUIVALENT, 0 ms] 11.27/3.93 (10) IRSwT 11.27/3.93 (11) IRSwTTerminationDigraphProof [EQUIVALENT, 198 ms] 11.27/3.93 (12) AND 11.27/3.93 (13) IRSwT 11.27/3.93 (14) IntTRSCompressionProof [EQUIVALENT, 0 ms] 11.27/3.93 (15) IRSwT 11.27/3.93 (16) TempFilterProof [SOUND, 11 ms] 11.27/3.93 (17) IntTRS 11.27/3.93 (18) PolynomialOrderProcessor [EQUIVALENT, 0 ms] 11.27/3.93 (19) YES 11.27/3.93 (20) IRSwT 11.27/3.93 (21) IntTRSCompressionProof [EQUIVALENT, 0 ms] 11.27/3.93 (22) IRSwT 11.27/3.93 (23) TempFilterProof [SOUND, 26 ms] 11.27/3.93 (24) IntTRS 11.27/3.93 (25) RankingReductionPairProof [EQUIVALENT, 0 ms] 11.27/3.93 (26) YES 11.27/3.93 11.27/3.93 11.27/3.93 ---------------------------------------- 11.27/3.93 11.27/3.93 (0) 11.27/3.93 Obligation: 11.27/3.93 need to prove termination of the following program: 11.27/3.93 public class Test11 { 11.27/3.93 public static void main(String[] args) { 11.27/3.93 Random.args = args; 11.27/3.93 11.27/3.93 int x = args.length * 100, y = args.length * 200 / 13; 11.27/3.93 11.27/3.93 while (x + y > 0) { 11.27/3.93 if (Random.random() * Random.random() > 9) 11.27/3.93 x--; 11.27/3.93 else 11.27/3.93 y--; 11.27/3.93 } 11.27/3.93 } 11.27/3.93 } 11.27/3.93 11.27/3.93 public class Random { 11.27/3.93 static String[] args; 11.27/3.93 static int index = 0; 11.27/3.93 11.27/3.93 public static int random() { 11.27/3.93 if (index >= args.length) 11.27/3.93 return 0; 11.27/3.93 11.27/3.93 String string = args[index]; 11.27/3.93 index++; 11.27/3.93 return string.length(); 11.27/3.93 } 11.27/3.93 } 11.27/3.93 11.27/3.93 11.27/3.93 11.27/3.93 ---------------------------------------- 11.27/3.93 11.27/3.93 (1) BareJBCToJBCProof (EQUIVALENT) 11.27/3.93 initialized classpath 11.27/3.93 ---------------------------------------- 11.27/3.93 11.27/3.93 (2) 11.27/3.93 Obligation: 11.27/3.93 need to prove termination of the following program: 11.27/3.93 public class Test11 { 11.27/3.93 public static void main(String[] args) { 11.27/3.93 Random.args = args; 11.27/3.93 11.27/3.93 int x = args.length * 100, y = args.length * 200 / 13; 11.27/3.93 11.27/3.93 while (x + y > 0) { 11.27/3.93 if (Random.random() * Random.random() > 9) 11.27/3.93 x--; 11.27/3.93 else 11.27/3.93 y--; 11.27/3.93 } 11.27/3.93 } 11.27/3.93 } 11.27/3.93 11.27/3.93 public class Random { 11.27/3.93 static String[] args; 11.27/3.93 static int index = 0; 11.27/3.93 11.27/3.93 public static int random() { 11.27/3.93 if (index >= args.length) 11.27/3.93 return 0; 11.27/3.93 11.27/3.93 String string = args[index]; 11.27/3.93 index++; 11.27/3.93 return string.length(); 11.27/3.93 } 11.27/3.93 } 11.27/3.93 11.27/3.93 11.27/3.93 11.27/3.93 ---------------------------------------- 11.27/3.93 11.27/3.93 (3) JBCToGraph (EQUIVALENT) 11.27/3.93 Constructed TerminationGraph. 11.27/3.93 ---------------------------------------- 11.27/3.93 11.27/3.93 (4) 11.27/3.93 Obligation: 11.27/3.93 Termination Graph based on JBC Program: 11.27/3.93 Test11.main([Ljava/lang/String;)V: Graph of 236 nodes with 1 SCC. 11.27/3.93 11.27/3.93 11.27/3.93 11.27/3.93 11.27/3.93 11.27/3.93 ---------------------------------------- 11.27/3.93 11.27/3.93 (5) TerminationGraphToSCCProof (SOUND) 11.27/3.93 Splitted TerminationGraph to 1 SCCs. 11.27/3.93 ---------------------------------------- 11.27/3.93 11.27/3.93 (6) 11.27/3.93 Obligation: 11.27/3.93 SCC of termination graph based on JBC Program. 11.27/3.93 SCC contains nodes from the following methods: Test11.main([Ljava/lang/String;)V 11.27/3.93 SCC calls the following helper methods: 11.27/3.93 Performed SCC analyses: 11.27/3.93 *Used field analysis yielded the following read fields: 11.27/3.93 *java.lang.String: [count] 11.27/3.93 *Marker field analysis yielded the following relations that could be markers: 11.27/3.93 11.27/3.93 ---------------------------------------- 11.27/3.93 11.27/3.93 (7) SCCToIRSProof (SOUND) 11.27/3.93 Transformed FIGraph SCCs to intTRSs. Log: 11.27/3.93 Generated rules. Obtained 94 IRulesP rules: 11.27/3.93 f2438_0_main_Load(EOS(STATIC_2438(java.lang.Object(ARRAY(i493)), i494)), java.lang.Object(ARRAY(i493)), i495, i149, i495) -> f2439_0_main_IntArithmetic(EOS(STATIC_2439(java.lang.Object(ARRAY(i493)), i494)), java.lang.Object(ARRAY(i493)), i495, i149, i495, i149) :|: TRUE 11.27/3.93 f2439_0_main_IntArithmetic(EOS(STATIC_2439(java.lang.Object(ARRAY(i493)), i494)), java.lang.Object(ARRAY(i493)), i495, i149, i495, i149) -> f2440_0_main_LE(EOS(STATIC_2440(java.lang.Object(ARRAY(i493)), i494)), java.lang.Object(ARRAY(i493)), i495, i149, i495 + i149) :|: TRUE 11.27/3.93 f2440_0_main_LE(EOS(STATIC_2440(java.lang.Object(ARRAY(i493)), i494)), java.lang.Object(ARRAY(i493)), i495, i149, i503) -> f2442_0_main_LE(EOS(STATIC_2442(java.lang.Object(ARRAY(i493)), i494)), java.lang.Object(ARRAY(i493)), i495, i149, i503) :|: TRUE 11.27/3.93 f2442_0_main_LE(EOS(STATIC_2442(java.lang.Object(ARRAY(i493)), i494)), java.lang.Object(ARRAY(i493)), i495, i149, i503) -> f2444_0_main_InvokeMethod(EOS(STATIC_2444(java.lang.Object(ARRAY(i493)), i494)), java.lang.Object(ARRAY(i493)), i495, i149) :|: i503 > 0 11.27/3.93 f2444_0_main_InvokeMethod(EOS(STATIC_2444(java.lang.Object(ARRAY(i493)), i494)), java.lang.Object(ARRAY(i493)), i495, i149) -> f2446_0_random_FieldAccess(EOS(STATIC_2446(java.lang.Object(ARRAY(i493)), i494)), java.lang.Object(ARRAY(i493)), i495, i149) :|: TRUE 11.27/3.93 f2446_0_random_FieldAccess(EOS(STATIC_2446(java.lang.Object(ARRAY(i493)), i494)), java.lang.Object(ARRAY(i493)), i495, i149) -> f2447_0_random_FieldAccess(EOS(STATIC_2447(java.lang.Object(ARRAY(i493)), i494)), java.lang.Object(ARRAY(i493)), i495, i149, i494) :|: TRUE 11.27/3.93 f2447_0_random_FieldAccess(EOS(STATIC_2447(java.lang.Object(ARRAY(i493)), i494)), java.lang.Object(ARRAY(i493)), i495, i149, i494) -> f2448_0_random_ArrayLength(EOS(STATIC_2448(java.lang.Object(ARRAY(i493)), i494)), java.lang.Object(ARRAY(i493)), i495, i149, i494, java.lang.Object(ARRAY(i493))) :|: TRUE 11.27/3.93 f2448_0_random_ArrayLength(EOS(STATIC_2448(java.lang.Object(ARRAY(i493)), i494)), java.lang.Object(ARRAY(i493)), i495, i149, i494, java.lang.Object(ARRAY(i493))) -> f2450_0_random_LT(EOS(STATIC_2450(java.lang.Object(ARRAY(i493)), i494)), java.lang.Object(ARRAY(i493)), i495, i149, i494, i493) :|: i493 >= 0 11.27/3.93 f2450_0_random_LT(EOS(STATIC_2450(java.lang.Object(ARRAY(i493)), i494)), java.lang.Object(ARRAY(i493)), i495, i149, i494, i493) -> f2455_0_random_LT(EOS(STATIC_2455(java.lang.Object(ARRAY(i493)), i494)), java.lang.Object(ARRAY(i493)), i495, i149, i494, i493) :|: i494 < i493 11.27/3.93 f2450_0_random_LT(EOS(STATIC_2450(java.lang.Object(ARRAY(i493)), i494)), java.lang.Object(ARRAY(i493)), i495, i149, i494, i493) -> f2456_0_random_LT(EOS(STATIC_2456(java.lang.Object(ARRAY(i493)), i494)), java.lang.Object(ARRAY(i493)), i495, i149, i494, i493) :|: i494 >= i493 11.27/3.93 f2455_0_random_LT(EOS(STATIC_2455(java.lang.Object(ARRAY(i493)), i494)), java.lang.Object(ARRAY(i493)), i495, i149, i494, i493) -> f2463_0_random_FieldAccess(EOS(STATIC_2463(java.lang.Object(ARRAY(i493)), i494)), java.lang.Object(ARRAY(i493)), i495, i149) :|: i494 < i493 11.27/3.93 f2463_0_random_FieldAccess(EOS(STATIC_2463(java.lang.Object(ARRAY(i493)), i494)), java.lang.Object(ARRAY(i493)), i495, i149) -> f2465_0_random_FieldAccess(EOS(STATIC_2465(java.lang.Object(ARRAY(i493)), i494)), java.lang.Object(ARRAY(i493)), i495, i149, java.lang.Object(ARRAY(i493))) :|: TRUE 11.27/3.93 f2465_0_random_FieldAccess(EOS(STATIC_2465(java.lang.Object(ARRAY(i493)), i494)), java.lang.Object(ARRAY(i493)), i495, i149, java.lang.Object(ARRAY(i493))) -> f2467_0_random_ArrayAccess(EOS(STATIC_2467(java.lang.Object(ARRAY(i493)), i494)), java.lang.Object(ARRAY(i493)), i495, i149, java.lang.Object(ARRAY(i493)), i494) :|: TRUE 11.27/3.93 f2467_0_random_ArrayAccess(EOS(STATIC_2467(java.lang.Object(ARRAY(i493)), i506)), java.lang.Object(ARRAY(i493)), i495, i149, java.lang.Object(ARRAY(i493)), i506) -> f2475_0_random_ArrayAccess(EOS(STATIC_2475(java.lang.Object(ARRAY(i493)), i506)), java.lang.Object(ARRAY(i493)), i495, i149, java.lang.Object(ARRAY(i493)), i506) :|: TRUE 11.27/3.93 f2475_0_random_ArrayAccess(EOS(STATIC_2475(java.lang.Object(ARRAY(i493)), i506)), java.lang.Object(ARRAY(i493)), i495, i149, java.lang.Object(ARRAY(i493)), i506) -> f2478_0_random_ArrayAccess(EOS(STATIC_2478(java.lang.Object(ARRAY(i493)), i506)), java.lang.Object(ARRAY(i493)), i495, i149, java.lang.Object(ARRAY(i493)), i506) :|: TRUE 11.27/3.93 f2478_0_random_ArrayAccess(EOS(STATIC_2478(java.lang.Object(ARRAY(i493)), i506)), java.lang.Object(ARRAY(i493)), i495, i149, java.lang.Object(ARRAY(i493)), i506) -> f2480_0_random_Store(EOS(STATIC_2480(java.lang.Object(ARRAY(i493)), i506)), java.lang.Object(ARRAY(i493)), i495, i149, o171) :|: TRUE 11.27/3.93 f2480_0_random_Store(EOS(STATIC_2480(java.lang.Object(ARRAY(i493)), i506)), java.lang.Object(ARRAY(i493)), i495, i149, o171) -> f2484_0_random_FieldAccess(EOS(STATIC_2484(java.lang.Object(ARRAY(i493)), i506)), java.lang.Object(ARRAY(i493)), i495, i149, o171) :|: TRUE 11.27/3.93 f2484_0_random_FieldAccess(EOS(STATIC_2484(java.lang.Object(ARRAY(i493)), i506)), java.lang.Object(ARRAY(i493)), i495, i149, o171) -> f2487_0_random_ConstantStackPush(EOS(STATIC_2487(java.lang.Object(ARRAY(i493)), i506)), java.lang.Object(ARRAY(i493)), i495, i149, o171, i506) :|: TRUE 11.27/3.93 f2487_0_random_ConstantStackPush(EOS(STATIC_2487(java.lang.Object(ARRAY(i493)), i506)), java.lang.Object(ARRAY(i493)), i495, i149, o171, i506) -> f2490_0_random_IntArithmetic(EOS(STATIC_2490(java.lang.Object(ARRAY(i493)), i506)), java.lang.Object(ARRAY(i493)), i495, i149, o171, i506, 1) :|: TRUE 11.27/3.93 f2490_0_random_IntArithmetic(EOS(STATIC_2490(java.lang.Object(ARRAY(i493)), i506)), java.lang.Object(ARRAY(i493)), i495, i149, o171, i506, matching1) -> f2494_0_random_FieldAccess(EOS(STATIC_2494(java.lang.Object(ARRAY(i493)), i506)), java.lang.Object(ARRAY(i493)), i495, i149, o171, i506 + 1) :|: i506 >= 0 && matching1 = 1 11.27/3.93 f2494_0_random_FieldAccess(EOS(STATIC_2494(java.lang.Object(ARRAY(i493)), i506)), java.lang.Object(ARRAY(i493)), i495, i149, o171, i509) -> f2538_0_random_Load(EOS(STATIC_2538(java.lang.Object(ARRAY(i493)), i509)), java.lang.Object(ARRAY(i493)), i495, i149, o171) :|: TRUE 11.27/3.93 f2538_0_random_Load(EOS(STATIC_2538(java.lang.Object(ARRAY(i493)), i509)), java.lang.Object(ARRAY(i493)), i495, i149, o171) -> f2541_0_random_InvokeMethod(EOS(STATIC_2541(java.lang.Object(ARRAY(i493)), i509)), java.lang.Object(ARRAY(i493)), i495, i149, o171) :|: TRUE 11.27/3.93 f2541_0_random_InvokeMethod(EOS(STATIC_2541(java.lang.Object(ARRAY(i493)), i509)), java.lang.Object(ARRAY(i493)), i495, i149, java.lang.Object(o173sub)) -> f2545_0_random_InvokeMethod(EOS(STATIC_2545(java.lang.Object(ARRAY(i493)), i509)), java.lang.Object(ARRAY(i493)), i495, i149, java.lang.Object(o173sub)) :|: TRUE 11.27/3.93 f2545_0_random_InvokeMethod(EOS(STATIC_2545(java.lang.Object(ARRAY(i493)), i509)), java.lang.Object(ARRAY(i493)), i495, i149, java.lang.Object(o174sub)) -> f2549_0_random_InvokeMethod(EOS(STATIC_2549(java.lang.Object(ARRAY(i493)), i509)), java.lang.Object(ARRAY(i493)), i495, i149, java.lang.Object(o174sub)) :|: TRUE 11.27/3.93 f2549_0_random_InvokeMethod(EOS(STATIC_2549(java.lang.Object(ARRAY(i493)), i509)), java.lang.Object(ARRAY(i493)), i495, i149, java.lang.Object(o174sub)) -> f2553_0_length_Load(EOS(STATIC_2553(java.lang.Object(ARRAY(i493)), i509)), java.lang.Object(ARRAY(i493)), i495, i149, java.lang.Object(o174sub)) :|: TRUE 11.27/3.93 f2553_0_length_Load(EOS(STATIC_2553(java.lang.Object(ARRAY(i493)), i509)), java.lang.Object(ARRAY(i493)), i495, i149, java.lang.Object(o174sub)) -> f2560_0_length_FieldAccess(EOS(STATIC_2560(java.lang.Object(ARRAY(i493)), i509)), java.lang.Object(ARRAY(i493)), i495, i149, java.lang.Object(o174sub)) :|: TRUE 11.27/3.93 f2560_0_length_FieldAccess(EOS(STATIC_2560(java.lang.Object(ARRAY(i493)), i509)), java.lang.Object(ARRAY(i493)), i495, i149, java.lang.Object(java.lang.String(EOC, i517))) -> f2564_0_length_FieldAccess(EOS(STATIC_2564(java.lang.Object(ARRAY(i493)), i509)), java.lang.Object(ARRAY(i493)), i495, i149, java.lang.Object(java.lang.String(EOC, i517))) :|: i517 >= 0 11.27/3.93 f2564_0_length_FieldAccess(EOS(STATIC_2564(java.lang.Object(ARRAY(i493)), i509)), java.lang.Object(ARRAY(i493)), i495, i149, java.lang.Object(java.lang.String(EOC, i517))) -> f2569_0_length_Return(EOS(STATIC_2569(java.lang.Object(ARRAY(i493)), i509)), java.lang.Object(ARRAY(i493)), i495, i149, i517) :|: TRUE 11.27/3.93 f2569_0_length_Return(EOS(STATIC_2569(java.lang.Object(ARRAY(i493)), i509)), java.lang.Object(ARRAY(i493)), i495, i149, i517) -> f2572_0_random_Return(EOS(STATIC_2572(java.lang.Object(ARRAY(i493)), i509)), java.lang.Object(ARRAY(i493)), i495, i149, i517) :|: TRUE 11.27/3.93 f2572_0_random_Return(EOS(STATIC_2572(java.lang.Object(ARRAY(i493)), i509)), java.lang.Object(ARRAY(i493)), i495, i149, i517) -> f2577_0_main_InvokeMethod(EOS(STATIC_2577(java.lang.Object(ARRAY(i493)), i509)), java.lang.Object(ARRAY(i493)), i495, i149, i517) :|: TRUE 11.27/3.93 f2577_0_main_InvokeMethod(EOS(STATIC_2577(java.lang.Object(ARRAY(i493)), i509)), java.lang.Object(ARRAY(i493)), i495, i149, i517) -> f2582_0_random_FieldAccess(EOS(STATIC_2582(java.lang.Object(ARRAY(i493)), i509)), java.lang.Object(ARRAY(i493)), i495, i149, i517) :|: TRUE 11.27/3.93 f2582_0_random_FieldAccess(EOS(STATIC_2582(java.lang.Object(ARRAY(i493)), i509)), java.lang.Object(ARRAY(i493)), i495, i149, i517) -> f2593_0_random_FieldAccess(EOS(STATIC_2593(java.lang.Object(ARRAY(i493)), i509)), java.lang.Object(ARRAY(i493)), i495, i149, i517, i509) :|: TRUE 11.27/3.93 f2593_0_random_FieldAccess(EOS(STATIC_2593(java.lang.Object(ARRAY(i493)), i509)), java.lang.Object(ARRAY(i493)), i495, i149, i517, i509) -> f2601_0_random_ArrayLength(EOS(STATIC_2601(java.lang.Object(ARRAY(i493)), i509)), java.lang.Object(ARRAY(i493)), i495, i149, i517, i509, java.lang.Object(ARRAY(i493))) :|: TRUE 11.27/3.93 f2601_0_random_ArrayLength(EOS(STATIC_2601(java.lang.Object(ARRAY(i493)), i509)), java.lang.Object(ARRAY(i493)), i495, i149, i517, i509, java.lang.Object(ARRAY(i493))) -> f2608_0_random_LT(EOS(STATIC_2608(java.lang.Object(ARRAY(i493)), i509)), java.lang.Object(ARRAY(i493)), i495, i149, i517, i509, i493) :|: i493 >= 0 11.27/3.93 f2608_0_random_LT(EOS(STATIC_2608(java.lang.Object(ARRAY(i493)), i509)), java.lang.Object(ARRAY(i493)), i495, i149, i517, i509, i493) -> f2615_0_random_LT(EOS(STATIC_2615(java.lang.Object(ARRAY(i493)), i509)), java.lang.Object(ARRAY(i493)), i495, i149, i517, i509, i493) :|: i509 < i493 11.27/3.93 f2608_0_random_LT(EOS(STATIC_2608(java.lang.Object(ARRAY(i493)), i509)), java.lang.Object(ARRAY(i493)), i495, i149, i517, i509, i493) -> f2616_0_random_LT(EOS(STATIC_2616(java.lang.Object(ARRAY(i493)), i509)), java.lang.Object(ARRAY(i493)), i495, i149, i517, i509, i493) :|: i509 >= i493 11.27/3.93 f2615_0_random_LT(EOS(STATIC_2615(java.lang.Object(ARRAY(i493)), i509)), java.lang.Object(ARRAY(i493)), i495, i149, i517, i509, i493) -> f2628_0_random_FieldAccess(EOS(STATIC_2628(java.lang.Object(ARRAY(i493)), i509)), java.lang.Object(ARRAY(i493)), i495, i149, i517) :|: i509 < i493 11.27/3.93 f2628_0_random_FieldAccess(EOS(STATIC_2628(java.lang.Object(ARRAY(i493)), i509)), java.lang.Object(ARRAY(i493)), i495, i149, i517) -> f2642_0_random_FieldAccess(EOS(STATIC_2642(java.lang.Object(ARRAY(i493)), i509)), java.lang.Object(ARRAY(i493)), i495, i149, i517, java.lang.Object(ARRAY(i493))) :|: TRUE 11.27/3.93 f2642_0_random_FieldAccess(EOS(STATIC_2642(java.lang.Object(ARRAY(i493)), i509)), java.lang.Object(ARRAY(i493)), i495, i149, i517, java.lang.Object(ARRAY(i493))) -> f2664_0_random_ArrayAccess(EOS(STATIC_2664(java.lang.Object(ARRAY(i493)), i509)), java.lang.Object(ARRAY(i493)), i495, i149, i517, java.lang.Object(ARRAY(i493)), i509) :|: TRUE 11.27/3.93 f2664_0_random_ArrayAccess(EOS(STATIC_2664(java.lang.Object(ARRAY(i493)), i509)), java.lang.Object(ARRAY(i493)), i495, i149, i517, java.lang.Object(ARRAY(i493)), i509) -> f2673_0_random_ArrayAccess(EOS(STATIC_2673(java.lang.Object(ARRAY(i493)), i509)), java.lang.Object(ARRAY(i493)), i495, i149, i517, java.lang.Object(ARRAY(i493)), i509) :|: TRUE 11.27/3.93 f2673_0_random_ArrayAccess(EOS(STATIC_2673(java.lang.Object(ARRAY(i493)), i509)), java.lang.Object(ARRAY(i493)), i495, i149, i517, java.lang.Object(ARRAY(i493)), i509) -> f2724_0_random_Store(EOS(STATIC_2724(java.lang.Object(ARRAY(i493)), i509)), java.lang.Object(ARRAY(i493)), i495, i149, i517, o186) :|: TRUE 11.27/3.93 f2724_0_random_Store(EOS(STATIC_2724(java.lang.Object(ARRAY(i493)), i509)), java.lang.Object(ARRAY(i493)), i495, i149, i517, o186) -> f2732_0_random_FieldAccess(EOS(STATIC_2732(java.lang.Object(ARRAY(i493)), i509)), java.lang.Object(ARRAY(i493)), i495, i149, i517, o186) :|: TRUE 11.27/3.93 f2732_0_random_FieldAccess(EOS(STATIC_2732(java.lang.Object(ARRAY(i493)), i509)), java.lang.Object(ARRAY(i493)), i495, i149, i517, o186) -> f2740_0_random_ConstantStackPush(EOS(STATIC_2740(java.lang.Object(ARRAY(i493)), i509)), java.lang.Object(ARRAY(i493)), i495, i149, i517, o186, i509) :|: TRUE 11.27/3.93 f2740_0_random_ConstantStackPush(EOS(STATIC_2740(java.lang.Object(ARRAY(i493)), i509)), java.lang.Object(ARRAY(i493)), i495, i149, i517, o186, i509) -> f2756_0_random_IntArithmetic(EOS(STATIC_2756(java.lang.Object(ARRAY(i493)), i509)), java.lang.Object(ARRAY(i493)), i495, i149, i517, o186, i509, 1) :|: TRUE 11.27/3.93 f2756_0_random_IntArithmetic(EOS(STATIC_2756(java.lang.Object(ARRAY(i493)), i509)), java.lang.Object(ARRAY(i493)), i495, i149, i517, o186, i509, matching1) -> f2858_0_random_FieldAccess(EOS(STATIC_2858(java.lang.Object(ARRAY(i493)), i509)), java.lang.Object(ARRAY(i493)), i495, i149, i517, o186, i509 + 1) :|: i509 > 0 && matching1 = 1 11.27/3.93 f2858_0_random_FieldAccess(EOS(STATIC_2858(java.lang.Object(ARRAY(i493)), i509)), java.lang.Object(ARRAY(i493)), i495, i149, i517, o186, i548) -> f2865_0_random_Load(EOS(STATIC_2865(java.lang.Object(ARRAY(i493)), i548)), java.lang.Object(ARRAY(i493)), i495, i149, i517, o186) :|: TRUE 11.27/3.93 f2865_0_random_Load(EOS(STATIC_2865(java.lang.Object(ARRAY(i493)), i548)), java.lang.Object(ARRAY(i493)), i495, i149, i517, o186) -> f2886_0_random_InvokeMethod(EOS(STATIC_2886(java.lang.Object(ARRAY(i493)), i548)), java.lang.Object(ARRAY(i493)), i495, i149, i517, o186) :|: TRUE 11.27/3.93 f2886_0_random_InvokeMethod(EOS(STATIC_2886(java.lang.Object(ARRAY(i493)), i548)), java.lang.Object(ARRAY(i493)), i495, i149, i517, java.lang.Object(o191sub)) -> f2889_0_random_InvokeMethod(EOS(STATIC_2889(java.lang.Object(ARRAY(i493)), i548)), java.lang.Object(ARRAY(i493)), i495, i149, i517, java.lang.Object(o191sub)) :|: TRUE 11.27/3.93 f2889_0_random_InvokeMethod(EOS(STATIC_2889(java.lang.Object(ARRAY(i493)), i548)), java.lang.Object(ARRAY(i493)), i495, i149, i517, java.lang.Object(o192sub)) -> f2891_0_random_InvokeMethod(EOS(STATIC_2891(java.lang.Object(ARRAY(i493)), i548)), java.lang.Object(ARRAY(i493)), i495, i149, i517, java.lang.Object(o192sub)) :|: TRUE 11.27/3.93 f2891_0_random_InvokeMethod(EOS(STATIC_2891(java.lang.Object(ARRAY(i493)), i548)), java.lang.Object(ARRAY(i493)), i495, i149, i517, java.lang.Object(o192sub)) -> f2894_0_length_Load(EOS(STATIC_2894(java.lang.Object(ARRAY(i493)), i548)), java.lang.Object(ARRAY(i493)), i495, i149, i517, java.lang.Object(o192sub)) :|: TRUE 11.27/3.93 f2894_0_length_Load(EOS(STATIC_2894(java.lang.Object(ARRAY(i493)), i548)), java.lang.Object(ARRAY(i493)), i495, i149, i517, java.lang.Object(o192sub)) -> f2902_0_length_FieldAccess(EOS(STATIC_2902(java.lang.Object(ARRAY(i493)), i548)), java.lang.Object(ARRAY(i493)), i495, i149, i517, java.lang.Object(o192sub)) :|: TRUE 11.27/3.93 f2902_0_length_FieldAccess(EOS(STATIC_2902(java.lang.Object(ARRAY(i493)), i548)), java.lang.Object(ARRAY(i493)), i495, i149, i517, java.lang.Object(java.lang.String(EOC, i567))) -> f2906_0_length_FieldAccess(EOS(STATIC_2906(java.lang.Object(ARRAY(i493)), i548)), java.lang.Object(ARRAY(i493)), i495, i149, i517, java.lang.Object(java.lang.String(EOC, i567))) :|: i567 >= 0 11.27/3.93 f2906_0_length_FieldAccess(EOS(STATIC_2906(java.lang.Object(ARRAY(i493)), i548)), java.lang.Object(ARRAY(i493)), i495, i149, i517, java.lang.Object(java.lang.String(EOC, i567))) -> f2911_0_length_Return(EOS(STATIC_2911(java.lang.Object(ARRAY(i493)), i548)), java.lang.Object(ARRAY(i493)), i495, i149, i517, i567) :|: TRUE 11.27/3.93 f2911_0_length_Return(EOS(STATIC_2911(java.lang.Object(ARRAY(i493)), i548)), java.lang.Object(ARRAY(i493)), i495, i149, i517, i567) -> f2916_0_random_Return(EOS(STATIC_2916(java.lang.Object(ARRAY(i493)), i548)), java.lang.Object(ARRAY(i493)), i495, i149, i517, i567) :|: TRUE 11.27/3.93 f2916_0_random_Return(EOS(STATIC_2916(java.lang.Object(ARRAY(i493)), i548)), java.lang.Object(ARRAY(i493)), i495, i149, i517, i567) -> f2919_0_main_IntArithmetic(EOS(STATIC_2919(java.lang.Object(ARRAY(i493)), i548)), java.lang.Object(ARRAY(i493)), i495, i149, i517, i567) :|: TRUE 11.27/3.93 f2919_0_main_IntArithmetic(EOS(STATIC_2919(java.lang.Object(ARRAY(i493)), i548)), java.lang.Object(ARRAY(i493)), i495, i149, i517, i567) -> f2924_0_main_ConstantStackPush(EOS(STATIC_2924(java.lang.Object(ARRAY(i493)), i548)), java.lang.Object(ARRAY(i493)), i495, i149, i517 * i567) :|: TRUE 11.27/3.93 f2924_0_main_ConstantStackPush(EOS(STATIC_2924(java.lang.Object(ARRAY(i493)), i548)), java.lang.Object(ARRAY(i493)), i495, i149, i571) -> f2933_0_main_LE(EOS(STATIC_2933(java.lang.Object(ARRAY(i493)), i548)), java.lang.Object(ARRAY(i493)), i495, i149, i571, 9) :|: TRUE 11.27/3.93 f2933_0_main_LE(EOS(STATIC_2933(java.lang.Object(ARRAY(i493)), i548)), java.lang.Object(ARRAY(i493)), i495, i149, i586, matching1) -> f2943_0_main_LE(EOS(STATIC_2943(java.lang.Object(ARRAY(i493)), i548)), java.lang.Object(ARRAY(i493)), i495, i149, i586, 9) :|: TRUE && matching1 = 9 11.27/3.93 f2933_0_main_LE(EOS(STATIC_2933(java.lang.Object(ARRAY(i493)), i548)), java.lang.Object(ARRAY(i493)), i495, i149, i588, matching1) -> f2944_0_main_LE(EOS(STATIC_2944(java.lang.Object(ARRAY(i493)), i548)), java.lang.Object(ARRAY(i493)), i495, i149, i588, 9) :|: TRUE && matching1 = 9 11.27/3.93 f2943_0_main_LE(EOS(STATIC_2943(java.lang.Object(ARRAY(i493)), i548)), java.lang.Object(ARRAY(i493)), i495, i149, i586, matching1) -> f2952_0_main_Inc(EOS(STATIC_2952(java.lang.Object(ARRAY(i493)), i548)), java.lang.Object(ARRAY(i493)), i495, i149) :|: i586 <= 9 && matching1 = 9 11.27/3.93 f2952_0_main_Inc(EOS(STATIC_2952(java.lang.Object(ARRAY(i493)), i548)), java.lang.Object(ARRAY(i493)), i495, i149) -> f2965_0_main_JMP(EOS(STATIC_2965(java.lang.Object(ARRAY(i493)), i548)), java.lang.Object(ARRAY(i493)), i495, i149 + -1) :|: TRUE 11.27/3.93 f2965_0_main_JMP(EOS(STATIC_2965(java.lang.Object(ARRAY(i493)), i548)), java.lang.Object(ARRAY(i493)), i495, i594) -> f2982_0_main_Load(EOS(STATIC_2982(java.lang.Object(ARRAY(i493)), i548)), java.lang.Object(ARRAY(i493)), i495, i594) :|: TRUE 11.27/3.93 f2982_0_main_Load(EOS(STATIC_2982(java.lang.Object(ARRAY(i493)), i548)), java.lang.Object(ARRAY(i493)), i495, i594) -> f2428_0_main_Load(EOS(STATIC_2428(java.lang.Object(ARRAY(i493)), i548)), java.lang.Object(ARRAY(i493)), i495, i594) :|: TRUE 11.27/3.93 f2428_0_main_Load(EOS(STATIC_2428(java.lang.Object(ARRAY(i493)), i494)), java.lang.Object(ARRAY(i493)), i495, i149) -> f2438_0_main_Load(EOS(STATIC_2438(java.lang.Object(ARRAY(i493)), i494)), java.lang.Object(ARRAY(i493)), i495, i149, i495) :|: TRUE 11.27/3.93 f2944_0_main_LE(EOS(STATIC_2944(java.lang.Object(ARRAY(i493)), i548)), java.lang.Object(ARRAY(i493)), i495, i149, i588, matching1) -> f2956_0_main_Inc(EOS(STATIC_2956(java.lang.Object(ARRAY(i493)), i548)), java.lang.Object(ARRAY(i493)), i495, i149) :|: i588 > 9 && matching1 = 9 11.27/3.93 f2956_0_main_Inc(EOS(STATIC_2956(java.lang.Object(ARRAY(i493)), i548)), java.lang.Object(ARRAY(i493)), i495, i149) -> f2966_0_main_JMP(EOS(STATIC_2966(java.lang.Object(ARRAY(i493)), i548)), java.lang.Object(ARRAY(i493)), i495 + -1, i149) :|: TRUE 11.27/3.93 f2966_0_main_JMP(EOS(STATIC_2966(java.lang.Object(ARRAY(i493)), i548)), java.lang.Object(ARRAY(i493)), i595, i149) -> f3000_0_main_Load(EOS(STATIC_3000(java.lang.Object(ARRAY(i493)), i548)), java.lang.Object(ARRAY(i493)), i595, i149) :|: TRUE 11.27/3.93 f3000_0_main_Load(EOS(STATIC_3000(java.lang.Object(ARRAY(i493)), i548)), java.lang.Object(ARRAY(i493)), i595, i149) -> f2428_0_main_Load(EOS(STATIC_2428(java.lang.Object(ARRAY(i493)), i548)), java.lang.Object(ARRAY(i493)), i595, i149) :|: TRUE 11.27/3.93 f2616_0_random_LT(EOS(STATIC_2616(java.lang.Object(ARRAY(i493)), i509)), java.lang.Object(ARRAY(i493)), i495, i149, i517, i509, i493) -> f2633_0_random_ConstantStackPush(EOS(STATIC_2633(java.lang.Object(ARRAY(i493)), i509)), java.lang.Object(ARRAY(i493)), i495, i149, i517) :|: i509 >= i493 11.27/3.93 f2633_0_random_ConstantStackPush(EOS(STATIC_2633(java.lang.Object(ARRAY(i493)), i509)), java.lang.Object(ARRAY(i493)), i495, i149, i517) -> f2646_0_random_Return(EOS(STATIC_2646(java.lang.Object(ARRAY(i493)), i509)), java.lang.Object(ARRAY(i493)), i495, i149, i517) :|: TRUE 11.27/3.93 f2646_0_random_Return(EOS(STATIC_2646(java.lang.Object(ARRAY(i493)), i509)), java.lang.Object(ARRAY(i493)), i495, i149, i517) -> f2667_0_main_IntArithmetic(EOS(STATIC_2667(java.lang.Object(ARRAY(i493)), i509)), java.lang.Object(ARRAY(i493)), i495, i149, i517) :|: TRUE 11.27/3.93 f2667_0_main_IntArithmetic(EOS(STATIC_2667(java.lang.Object(ARRAY(i493)), i509)), java.lang.Object(ARRAY(i493)), i495, i149, i517) -> f2675_0_main_ConstantStackPush(EOS(STATIC_2675(java.lang.Object(ARRAY(i493)), i509)), java.lang.Object(ARRAY(i493)), i495, i149) :|: TRUE 11.27/3.93 f2675_0_main_ConstantStackPush(EOS(STATIC_2675(java.lang.Object(ARRAY(i493)), i509)), java.lang.Object(ARRAY(i493)), i495, i149) -> f2727_0_main_LE(EOS(STATIC_2727(java.lang.Object(ARRAY(i493)), i509)), java.lang.Object(ARRAY(i493)), i495, i149) :|: TRUE 11.27/3.93 f2727_0_main_LE(EOS(STATIC_2727(java.lang.Object(ARRAY(i493)), i509)), java.lang.Object(ARRAY(i493)), i495, i149) -> f2733_0_main_Inc(EOS(STATIC_2733(java.lang.Object(ARRAY(i493)), i509)), java.lang.Object(ARRAY(i493)), i495, i149) :|: TRUE 11.27/3.93 f2733_0_main_Inc(EOS(STATIC_2733(java.lang.Object(ARRAY(i493)), i509)), java.lang.Object(ARRAY(i493)), i495, i149) -> f2747_0_main_JMP(EOS(STATIC_2747(java.lang.Object(ARRAY(i493)), i509)), java.lang.Object(ARRAY(i493)), i495, i149 + -1) :|: TRUE 11.27/3.93 f2747_0_main_JMP(EOS(STATIC_2747(java.lang.Object(ARRAY(i493)), i509)), java.lang.Object(ARRAY(i493)), i495, i534) -> f2851_0_main_Load(EOS(STATIC_2851(java.lang.Object(ARRAY(i493)), i509)), java.lang.Object(ARRAY(i493)), i495, i534) :|: TRUE 11.27/3.93 f2851_0_main_Load(EOS(STATIC_2851(java.lang.Object(ARRAY(i493)), i509)), java.lang.Object(ARRAY(i493)), i495, i534) -> f2428_0_main_Load(EOS(STATIC_2428(java.lang.Object(ARRAY(i493)), i509)), java.lang.Object(ARRAY(i493)), i495, i534) :|: TRUE 11.27/3.93 f2456_0_random_LT(EOS(STATIC_2456(java.lang.Object(ARRAY(i493)), i494)), java.lang.Object(ARRAY(i493)), i495, i149, i494, i493) -> f2464_0_random_ConstantStackPush(EOS(STATIC_2464(java.lang.Object(ARRAY(i493)), i494)), java.lang.Object(ARRAY(i493)), i495, i149) :|: i494 >= i493 11.27/3.93 f2464_0_random_ConstantStackPush(EOS(STATIC_2464(java.lang.Object(ARRAY(i493)), i494)), java.lang.Object(ARRAY(i493)), i495, i149) -> f2466_0_random_Return(EOS(STATIC_2466(java.lang.Object(ARRAY(i493)), i494)), java.lang.Object(ARRAY(i493)), i495, i149) :|: TRUE 11.27/3.93 f2466_0_random_Return(EOS(STATIC_2466(java.lang.Object(ARRAY(i493)), i494)), java.lang.Object(ARRAY(i493)), i495, i149) -> f2468_0_main_InvokeMethod(EOS(STATIC_2468(java.lang.Object(ARRAY(i493)), i494)), java.lang.Object(ARRAY(i493)), i495, i149) :|: TRUE 11.27/3.93 f2468_0_main_InvokeMethod(EOS(STATIC_2468(java.lang.Object(ARRAY(i493)), i494)), java.lang.Object(ARRAY(i493)), i495, i149) -> f2476_0_random_FieldAccess(EOS(STATIC_2476(java.lang.Object(ARRAY(i493)), i494)), java.lang.Object(ARRAY(i493)), i495, i149) :|: TRUE 11.27/3.93 f2476_0_random_FieldAccess(EOS(STATIC_2476(java.lang.Object(ARRAY(i493)), i494)), java.lang.Object(ARRAY(i493)), i495, i149) -> f2482_0_random_FieldAccess(EOS(STATIC_2482(java.lang.Object(ARRAY(i493)), i494)), java.lang.Object(ARRAY(i493)), i495, i149, i494) :|: TRUE 11.27/3.93 f2482_0_random_FieldAccess(EOS(STATIC_2482(java.lang.Object(ARRAY(i493)), i494)), java.lang.Object(ARRAY(i493)), i495, i149, i494) -> f2485_0_random_ArrayLength(EOS(STATIC_2485(java.lang.Object(ARRAY(i493)), i494)), java.lang.Object(ARRAY(i493)), i495, i149, i494, java.lang.Object(ARRAY(i493))) :|: TRUE 11.27/3.93 f2485_0_random_ArrayLength(EOS(STATIC_2485(java.lang.Object(ARRAY(i493)), i494)), java.lang.Object(ARRAY(i493)), i495, i149, i494, java.lang.Object(ARRAY(i493))) -> f2489_0_random_LT(EOS(STATIC_2489(java.lang.Object(ARRAY(i493)), i494)), java.lang.Object(ARRAY(i493)), i495, i149, i494, i493) :|: i493 >= 0 11.27/3.93 f2489_0_random_LT(EOS(STATIC_2489(java.lang.Object(ARRAY(i493)), i494)), java.lang.Object(ARRAY(i493)), i495, i149, i494, i493) -> f2492_0_random_LT(EOS(STATIC_2492(java.lang.Object(ARRAY(i493)), i494)), java.lang.Object(ARRAY(i493)), i495, i149, i494, i493) :|: i494 >= i493 11.27/3.93 f2492_0_random_LT(EOS(STATIC_2492(java.lang.Object(ARRAY(i493)), i494)), java.lang.Object(ARRAY(i493)), i495, i149, i494, i493) -> f2505_0_random_ConstantStackPush(EOS(STATIC_2505(java.lang.Object(ARRAY(i493)), i494)), java.lang.Object(ARRAY(i493)), i495, i149) :|: i494 >= i493 11.27/3.93 f2505_0_random_ConstantStackPush(EOS(STATIC_2505(java.lang.Object(ARRAY(i493)), i494)), java.lang.Object(ARRAY(i493)), i495, i149) -> f2540_0_random_Return(EOS(STATIC_2540(java.lang.Object(ARRAY(i493)), i494)), java.lang.Object(ARRAY(i493)), i495, i149) :|: TRUE 11.27/3.93 f2540_0_random_Return(EOS(STATIC_2540(java.lang.Object(ARRAY(i493)), i494)), java.lang.Object(ARRAY(i493)), i495, i149) -> f2543_0_main_IntArithmetic(EOS(STATIC_2543(java.lang.Object(ARRAY(i493)), i494)), java.lang.Object(ARRAY(i493)), i495, i149) :|: TRUE 11.27/3.93 f2543_0_main_IntArithmetic(EOS(STATIC_2543(java.lang.Object(ARRAY(i493)), i494)), java.lang.Object(ARRAY(i493)), i495, i149) -> f2547_0_main_ConstantStackPush(EOS(STATIC_2547(java.lang.Object(ARRAY(i493)), i494)), java.lang.Object(ARRAY(i493)), i495, i149) :|: TRUE 11.27/3.93 f2547_0_main_ConstantStackPush(EOS(STATIC_2547(java.lang.Object(ARRAY(i493)), i494)), java.lang.Object(ARRAY(i493)), i495, i149) -> f2552_0_main_LE(EOS(STATIC_2552(java.lang.Object(ARRAY(i493)), i494)), java.lang.Object(ARRAY(i493)), i495, i149) :|: TRUE 11.27/3.93 f2552_0_main_LE(EOS(STATIC_2552(java.lang.Object(ARRAY(i493)), i494)), java.lang.Object(ARRAY(i493)), i495, i149) -> f2555_0_main_Inc(EOS(STATIC_2555(java.lang.Object(ARRAY(i493)), i494)), java.lang.Object(ARRAY(i493)), i495, i149) :|: TRUE 11.27/3.93 f2555_0_main_Inc(EOS(STATIC_2555(java.lang.Object(ARRAY(i493)), i494)), java.lang.Object(ARRAY(i493)), i495, i149) -> f2558_0_main_JMP(EOS(STATIC_2558(java.lang.Object(ARRAY(i493)), i494)), java.lang.Object(ARRAY(i493)), i495, i149 + -1) :|: TRUE 11.27/3.93 f2558_0_main_JMP(EOS(STATIC_2558(java.lang.Object(ARRAY(i493)), i494)), java.lang.Object(ARRAY(i493)), i495, i511) -> f2563_0_main_Load(EOS(STATIC_2563(java.lang.Object(ARRAY(i493)), i494)), java.lang.Object(ARRAY(i493)), i495, i511) :|: TRUE 11.27/3.93 f2563_0_main_Load(EOS(STATIC_2563(java.lang.Object(ARRAY(i493)), i494)), java.lang.Object(ARRAY(i493)), i495, i511) -> f2428_0_main_Load(EOS(STATIC_2428(java.lang.Object(ARRAY(i493)), i494)), java.lang.Object(ARRAY(i493)), i495, i511) :|: TRUE 11.27/3.93 Combined rules. Obtained 4 IRulesP rules: 11.27/3.93 f2438_0_main_Load(EOS(STATIC_2438(java.lang.Object(ARRAY(i493:0)), i494:0)), java.lang.Object(ARRAY(i493:0)), i495:0, i149:0, i495:0) -> f2438_0_main_Load(EOS(STATIC_2438(java.lang.Object(ARRAY(i493:0)), i494:0 + 2)), java.lang.Object(ARRAY(i493:0)), i495:0, i149:0 - 1, i495:0) :|: i494:0 + 1 < i493:0 && i495:0 + i149:0 > 0 && i493:0 > -1 && i494:0 > -1 && i517:0 > -1 && i517:0 * i567:0 <= 9 && i567:0 > -1 11.27/3.93 f2438_0_main_Load(EOS(STATIC_2438(java.lang.Object(ARRAY(i493:0)), i494:0)), java.lang.Object(ARRAY(i493:0)), i495:0, i149:0, i495:0) -> f2438_0_main_Load(EOS(STATIC_2438(java.lang.Object(ARRAY(i493:0)), i494:0 + 2)), java.lang.Object(ARRAY(i493:0)), i495:0 - 1, i149:0, i495:0 - 1) :|: i494:0 + 1 < i493:0 && i495:0 + i149:0 > 0 && i493:0 > -1 && i494:0 > -1 && i517:0 > -1 && i517:0 * i567:0 > 9 && i567:0 > -1 11.27/3.93 f2438_0_main_Load(EOS(STATIC_2438(java.lang.Object(ARRAY(i493:0)), i494:0)), java.lang.Object(ARRAY(i493:0)), i495:0, i149:0, i495:0) -> f2438_0_main_Load(EOS(STATIC_2438(java.lang.Object(ARRAY(i493:0)), i494:0)), java.lang.Object(ARRAY(i493:0)), i495:0, i149:0 - 1, i495:0) :|: i495:0 + i149:0 > 0 && i493:0 > -1 && i494:0 >= i493:0 11.27/3.93 f2438_0_main_Load(EOS(STATIC_2438(java.lang.Object(ARRAY(i493:0)), i494:0)), java.lang.Object(ARRAY(i493:0)), i495:0, i149:0, i495:0) -> f2438_0_main_Load(EOS(STATIC_2438(java.lang.Object(ARRAY(i493:0)), i494:0 + 1)), java.lang.Object(ARRAY(i493:0)), i495:0, i149:0 - 1, i495:0) :|: i495:0 + i149:0 > 0 && i493:0 > -1 && i494:0 < i493:0 && i494:0 > -1 && i517:0 > -1 && i494:0 + 1 >= i493:0 11.27/3.93 Filtered duplicate arguments: 11.27/3.93 f2438_0_main_Load(x1, x2, x3, x4, x5) -> f2438_0_main_Load(x1, x2, x4, x5) 11.27/3.93 Finished conversion. Obtained 4 rules.P rules: 11.27/3.93 f2438_0_main_Load(java.lang.Object(ARRAY(i493:0)), i149:0, i495:0, i493:0, i494:0, i493:0) -> f2438_0_main_Load(java.lang.Object(ARRAY(i493:0)), i149:0 - 1, i495:0, i493:0, i494:0 + 2, i493:0) :|: i495:0 + i149:0 > 0 && i494:0 + 1 < i493:0 && i493:0 > -1 && i494:0 > -1 && i517:0 > -1 && i567:0 > -1 && i517:0 * i567:0 <= 9 11.27/3.93 f2438_0_main_Load(java.lang.Object(ARRAY(i493:0)), i149:0, i495:0, i493:0, i494:0, i493:0) -> f2438_0_main_Load(java.lang.Object(ARRAY(i493:0)), i149:0, i495:0 - 1, i493:0, i494:0 + 2, i493:0) :|: i495:0 + i149:0 > 0 && i494:0 + 1 < i493:0 && i493:0 > -1 && i494:0 > -1 && i517:0 > -1 && i567:0 > -1 && i517:0 * i567:0 > 9 11.27/3.93 f2438_0_main_Load(java.lang.Object(ARRAY(i493:0)), i149:0, i495:0, i493:0, i494:0, i493:0) -> f2438_0_main_Load(java.lang.Object(ARRAY(i493:0)), i149:0 - 1, i495:0, i493:0, i494:0, i493:0) :|: i493:0 > -1 && i494:0 >= i493:0 && i495:0 + i149:0 > 0 11.27/3.93 f2438_0_main_Load(java.lang.Object(ARRAY(i493:0)), i149:0, i495:0, i493:0, i494:0, i493:0) -> f2438_0_main_Load(java.lang.Object(ARRAY(i493:0)), i149:0 - 1, i495:0, i493:0, i494:0 + 1, i493:0) :|: i493:0 > -1 && i495:0 + i149:0 > 0 && i494:0 < i493:0 && i494:0 > -1 && i494:0 + 1 >= i493:0 && i517:0 > -1 11.27/3.93 11.27/3.93 ---------------------------------------- 11.27/3.93 11.27/3.93 (8) 11.27/3.93 Obligation: 11.27/3.93 Rules: 11.27/3.93 f2438_0_main_Load(java.lang.Object(ARRAY(i493:0)), i149:0, i495:0, i493:0, i494:0, i493:0) -> f2438_0_main_Load(java.lang.Object(ARRAY(i493:0)), i149:0 - 1, i495:0, i493:0, i494:0 + 2, i493:0) :|: i495:0 + i149:0 > 0 && i494:0 + 1 < i493:0 && i493:0 > -1 && i494:0 > -1 && i517:0 > -1 && i567:0 > -1 && i517:0 * i567:0 <= 9 11.27/3.93 f2438_0_main_Load(java.lang.Object(ARRAY(x)), x1, x2, x, x3, x) -> f2438_0_main_Load(java.lang.Object(ARRAY(x)), x1, x2 - 1, x, x3 + 2, x) :|: x2 + x1 > 0 && x3 + 1 < x && x > -1 && x3 > -1 && x4 > -1 && x5 > -1 && x4 * x5 > 9 11.27/3.93 f2438_0_main_Load(java.lang.Object(ARRAY(x6)), x7, x8, x6, x9, x6) -> f2438_0_main_Load(java.lang.Object(ARRAY(x6)), x7 - 1, x8, x6, x9, x6) :|: x6 > -1 && x9 >= x6 && x8 + x7 > 0 11.27/3.93 f2438_0_main_Load(java.lang.Object(ARRAY(x10)), x11, x12, x10, x13, x10) -> f2438_0_main_Load(java.lang.Object(ARRAY(x10)), x11 - 1, x12, x10, x13 + 1, x10) :|: x10 > -1 && x12 + x11 > 0 && x13 < x10 && x13 > -1 && x13 + 1 >= x10 && x14 > -1 11.27/3.93 11.27/3.93 ---------------------------------------- 11.27/3.93 11.27/3.93 (9) IRSFormatTransformerProof (EQUIVALENT) 11.27/3.93 Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). 11.27/3.93 ---------------------------------------- 11.27/3.93 11.27/3.93 (10) 11.27/3.93 Obligation: 11.27/3.93 Rules: 11.27/3.93 f2438_0_main_Load(java.lang.Object(ARRAY(i493:0)), i149:0, i495:0, i493:0, i494:0, i493:0) -> f2438_0_main_Load(java.lang.Object(ARRAY(i493:0)), arith, i495:0, i493:0, arith1, i493:0) :|: i495:0 + i149:0 > 0 && i494:0 + 1 < i493:0 && i493:0 > -1 && i494:0 > -1 && i517:0 > -1 && i567:0 > -1 && i517:0 * i567:0 <= 9 && arith = i149:0 - 1 && arith1 = i494:0 + 2 11.27/3.93 f2438_0_main_Load(java.lang.Object(ARRAY(x15)), x16, x17, x15, x18, x15) -> f2438_0_main_Load(java.lang.Object(ARRAY(x15)), x16, x19, x15, x20, x15) :|: x17 + x16 > 0 && x18 + 1 < x15 && x15 > -1 && x18 > -1 && x21 > -1 && x22 > -1 && x21 * x22 > 9 && x19 = x17 - 1 && x20 = x18 + 2 11.27/3.93 f2438_0_main_Load(java.lang.Object(ARRAY(x23)), x24, x25, x23, x26, x23) -> f2438_0_main_Load(java.lang.Object(ARRAY(x23)), x27, x25, x23, x26, x23) :|: x23 > -1 && x26 >= x23 && x25 + x24 > 0 && x27 = x24 - 1 11.27/3.93 f2438_0_main_Load(java.lang.Object(ARRAY(x28)), x29, x30, x28, x31, x28) -> f2438_0_main_Load(java.lang.Object(ARRAY(x28)), x32, x30, x28, x33, x28) :|: x28 > -1 && x30 + x29 > 0 && x31 < x28 && x31 > -1 && x31 + 1 >= x28 && x34 > -1 && x32 = x29 - 1 && x33 = x31 + 1 11.27/3.93 11.27/3.93 ---------------------------------------- 11.27/3.93 11.27/3.93 (11) IRSwTTerminationDigraphProof (EQUIVALENT) 11.27/3.93 Constructed termination digraph! 11.27/3.93 Nodes: 11.27/3.93 (1) f2438_0_main_Load(java.lang.Object(ARRAY(i493:0)), i149:0, i495:0, i493:0, i494:0, i493:0) -> f2438_0_main_Load(java.lang.Object(ARRAY(i493:0)), arith, i495:0, i493:0, arith1, i493:0) :|: i495:0 + i149:0 > 0 && i494:0 + 1 < i493:0 && i493:0 > -1 && i494:0 > -1 && i517:0 > -1 && i567:0 > -1 && i517:0 * i567:0 <= 9 && arith = i149:0 - 1 && arith1 = i494:0 + 2 11.27/3.93 (2) f2438_0_main_Load(java.lang.Object(ARRAY(x15)), x16, x17, x15, x18, x15) -> f2438_0_main_Load(java.lang.Object(ARRAY(x15)), x16, x19, x15, x20, x15) :|: x17 + x16 > 0 && x18 + 1 < x15 && x15 > -1 && x18 > -1 && x21 > -1 && x22 > -1 && x21 * x22 > 9 && x19 = x17 - 1 && x20 = x18 + 2 11.27/3.93 (3) f2438_0_main_Load(java.lang.Object(ARRAY(x23)), x24, x25, x23, x26, x23) -> f2438_0_main_Load(java.lang.Object(ARRAY(x23)), x27, x25, x23, x26, x23) :|: x23 > -1 && x26 >= x23 && x25 + x24 > 0 && x27 = x24 - 1 11.27/3.93 (4) f2438_0_main_Load(java.lang.Object(ARRAY(x28)), x29, x30, x28, x31, x28) -> f2438_0_main_Load(java.lang.Object(ARRAY(x28)), x32, x30, x28, x33, x28) :|: x28 > -1 && x30 + x29 > 0 && x31 < x28 && x31 > -1 && x31 + 1 >= x28 && x34 > -1 && x32 = x29 - 1 && x33 = x31 + 1 11.27/3.93 11.27/3.93 Arcs: 11.27/3.93 (1) -> (1), (2), (3), (4) 11.27/3.93 (2) -> (1), (2), (3), (4) 11.27/3.93 (3) -> (3) 11.27/3.93 (4) -> (3) 11.27/3.93 11.27/3.93 This digraph is fully evaluated! 11.27/3.93 ---------------------------------------- 11.27/3.93 11.27/3.93 (12) 11.27/3.93 Complex Obligation (AND) 11.27/3.93 11.27/3.93 ---------------------------------------- 11.27/3.93 11.27/3.93 (13) 11.27/3.93 Obligation: 11.27/3.93 11.27/3.93 Termination digraph: 11.27/3.93 Nodes: 11.27/3.93 (1) f2438_0_main_Load(java.lang.Object(ARRAY(i493:0)), i149:0, i495:0, i493:0, i494:0, i493:0) -> f2438_0_main_Load(java.lang.Object(ARRAY(i493:0)), arith, i495:0, i493:0, arith1, i493:0) :|: i495:0 + i149:0 > 0 && i494:0 + 1 < i493:0 && i493:0 > -1 && i494:0 > -1 && i517:0 > -1 && i567:0 > -1 && i517:0 * i567:0 <= 9 && arith = i149:0 - 1 && arith1 = i494:0 + 2 11.27/3.93 (2) f2438_0_main_Load(java.lang.Object(ARRAY(x15)), x16, x17, x15, x18, x15) -> f2438_0_main_Load(java.lang.Object(ARRAY(x15)), x16, x19, x15, x20, x15) :|: x17 + x16 > 0 && x18 + 1 < x15 && x15 > -1 && x18 > -1 && x21 > -1 && x22 > -1 && x21 * x22 > 9 && x19 = x17 - 1 && x20 = x18 + 2 11.27/3.93 11.27/3.93 Arcs: 11.27/3.93 (1) -> (1), (2) 11.27/3.93 (2) -> (1), (2) 11.27/3.93 11.27/3.93 This digraph is fully evaluated! 11.27/3.93 11.27/3.93 ---------------------------------------- 11.27/3.93 11.27/3.93 (14) IntTRSCompressionProof (EQUIVALENT) 11.27/3.93 Compressed rules. 11.27/3.93 ---------------------------------------- 11.27/3.93 11.27/3.93 (15) 11.27/3.93 Obligation: 11.27/3.93 Rules: 11.27/3.93 f2438_0_main_Load(java.lang.Object(ARRAY(x15:0)), x16:0, x17:0, x15:0, x18:0, x15:0) -> f2438_0_main_Load(java.lang.Object(ARRAY(x15:0)), x16:0, x17:0 - 1, x15:0, x18:0 + 2, x15:0) :|: x22:0 > -1 && x21:0 * x22:0 > 9 && x21:0 > -1 && x18:0 > -1 && x15:0 > -1 && x18:0 + 1 < x15:0 && x17:0 + x16:0 > 0 11.27/3.93 f2438_0_main_Load(java.lang.Object(ARRAY(i493:0:0)), i149:0:0, i495:0:0, i493:0:0, i494:0:0, i493:0:0) -> f2438_0_main_Load(java.lang.Object(ARRAY(i493:0:0)), i149:0:0 - 1, i495:0:0, i493:0:0, i494:0:0 + 2, i493:0:0) :|: i567:0:0 > -1 && i517:0:0 * i567:0:0 <= 9 && i517:0:0 > -1 && i494:0:0 > -1 && i493:0:0 > -1 && i494:0:0 + 1 < i493:0:0 && i495:0:0 + i149:0:0 > 0 11.27/3.93 11.27/3.93 ---------------------------------------- 11.27/3.93 11.27/3.93 (16) TempFilterProof (SOUND) 11.27/3.93 Used the following sort dictionary for filtering: 11.27/3.93 f2438_0_main_Load(VARIABLE, INTEGER, INTEGER, INTEGER, INTEGER, INTEGER) 11.27/3.93 java.lang.Object(VARIABLE) 11.27/3.93 ARRAY(INTEGER) 11.27/3.93 Replaced non-predefined constructor symbols by 0. 11.27/3.93 ---------------------------------------- 11.27/3.93 11.27/3.93 (17) 11.27/3.93 Obligation: 11.27/3.93 Rules: 11.27/3.93 f2438_0_main_Load(c, x16:0, x17:0, x15:0, x18:0, x15:0) -> f2438_0_main_Load(c1, x16:0, c2, x15:0, c3, x15:0) :|: c3 = x18:0 + 2 && (c2 = x17:0 - 1 && (c1 = 0 && c = 0)) && (x22:0 > -1 && x21:0 * x22:0 > 9 && x21:0 > -1 && x18:0 > -1 && x15:0 > -1 && x18:0 + 1 < x15:0 && x17:0 + x16:0 > 0) 11.27/3.93 f2438_0_main_Load(c4, i149:0:0, i495:0:0, i493:0:0, i494:0:0, i493:0:0) -> f2438_0_main_Load(c5, c6, i495:0:0, i493:0:0, c7, i493:0:0) :|: c7 = i494:0:0 + 2 && (c6 = i149:0:0 - 1 && (c5 = 0 && c4 = 0)) && (i567:0:0 > -1 && i517:0:0 * i567:0:0 <= 9 && i517:0:0 > -1 && i494:0:0 > -1 && i493:0:0 > -1 && i494:0:0 + 1 < i493:0:0 && i495:0:0 + i149:0:0 > 0) 11.27/3.93 11.27/3.93 ---------------------------------------- 11.27/3.93 11.27/3.93 (18) PolynomialOrderProcessor (EQUIVALENT) 11.27/3.93 Found the following polynomial interpretation: 11.27/3.93 [f2438_0_main_Load(x, x1, x2, x3, x4, x5)] = -1 + c*x + x1 + x2 11.27/3.93 11.27/3.93 The following rules are decreasing: 11.27/3.93 f2438_0_main_Load(c, x16:0, x17:0, x15:0, x18:0, x15:0) -> f2438_0_main_Load(c1, x16:0, c2, x15:0, c3, x15:0) :|: c3 = x18:0 + 2 && (c2 = x17:0 - 1 && (c1 = 0 && c = 0)) && (x22:0 > -1 && x21:0 * x22:0 > 9 && x21:0 > -1 && x18:0 > -1 && x15:0 > -1 && x18:0 + 1 < x15:0 && x17:0 + x16:0 > 0) 11.27/3.93 f2438_0_main_Load(c4, i149:0:0, i495:0:0, i493:0:0, i494:0:0, i493:0:0) -> f2438_0_main_Load(c5, c6, i495:0:0, i493:0:0, c7, i493:0:0) :|: c7 = i494:0:0 + 2 && (c6 = i149:0:0 - 1 && (c5 = 0 && c4 = 0)) && (i567:0:0 > -1 && i517:0:0 * i567:0:0 <= 9 && i517:0:0 > -1 && i494:0:0 > -1 && i493:0:0 > -1 && i494:0:0 + 1 < i493:0:0 && i495:0:0 + i149:0:0 > 0) 11.27/3.93 The following rules are bounded: 11.27/3.93 f2438_0_main_Load(c, x16:0, x17:0, x15:0, x18:0, x15:0) -> f2438_0_main_Load(c1, x16:0, c2, x15:0, c3, x15:0) :|: c3 = x18:0 + 2 && (c2 = x17:0 - 1 && (c1 = 0 && c = 0)) && (x22:0 > -1 && x21:0 * x22:0 > 9 && x21:0 > -1 && x18:0 > -1 && x15:0 > -1 && x18:0 + 1 < x15:0 && x17:0 + x16:0 > 0) 11.27/3.93 f2438_0_main_Load(c4, i149:0:0, i495:0:0, i493:0:0, i494:0:0, i493:0:0) -> f2438_0_main_Load(c5, c6, i495:0:0, i493:0:0, c7, i493:0:0) :|: c7 = i494:0:0 + 2 && (c6 = i149:0:0 - 1 && (c5 = 0 && c4 = 0)) && (i567:0:0 > -1 && i517:0:0 * i567:0:0 <= 9 && i517:0:0 > -1 && i494:0:0 > -1 && i493:0:0 > -1 && i494:0:0 + 1 < i493:0:0 && i495:0:0 + i149:0:0 > 0) 11.27/3.93 11.27/3.93 ---------------------------------------- 11.27/3.93 11.27/3.93 (19) 11.27/3.93 YES 11.27/3.93 11.27/3.93 ---------------------------------------- 11.27/3.93 11.27/3.93 (20) 11.27/3.93 Obligation: 11.27/3.93 11.27/3.93 Termination digraph: 11.27/3.93 Nodes: 11.27/3.93 (1) f2438_0_main_Load(java.lang.Object(ARRAY(x23)), x24, x25, x23, x26, x23) -> f2438_0_main_Load(java.lang.Object(ARRAY(x23)), x27, x25, x23, x26, x23) :|: x23 > -1 && x26 >= x23 && x25 + x24 > 0 && x27 = x24 - 1 11.27/3.93 11.27/3.93 Arcs: 11.27/3.93 (1) -> (1) 11.27/3.93 11.27/3.93 This digraph is fully evaluated! 11.27/3.93 11.27/3.93 ---------------------------------------- 11.27/3.93 11.27/3.93 (21) IntTRSCompressionProof (EQUIVALENT) 11.27/3.93 Compressed rules. 11.27/3.93 ---------------------------------------- 11.27/3.93 11.27/3.93 (22) 11.27/3.93 Obligation: 11.27/3.93 Rules: 11.27/3.93 f2438_0_main_Load(java.lang.Object(ARRAY(x23:0)), x24:0, x25:0, x23:0, x26:0, x23:0) -> f2438_0_main_Load(java.lang.Object(ARRAY(x23:0)), x24:0 - 1, x25:0, x23:0, x26:0, x23:0) :|: x23:0 > -1 && x26:0 >= x23:0 && x25:0 + x24:0 > 0 11.27/3.93 11.27/3.93 ---------------------------------------- 11.27/3.93 11.27/3.93 (23) TempFilterProof (SOUND) 11.27/3.93 Used the following sort dictionary for filtering: 11.27/3.93 f2438_0_main_Load(VARIABLE, INTEGER, INTEGER, INTEGER, INTEGER, INTEGER) 11.27/3.93 java.lang.Object(VARIABLE) 11.27/3.93 ARRAY(INTEGER) 11.27/3.93 Replaced non-predefined constructor symbols by 0. 11.27/3.93 ---------------------------------------- 11.27/3.93 11.27/3.93 (24) 11.27/3.93 Obligation: 11.27/3.93 Rules: 11.27/3.93 f2438_0_main_Load(c, x24:0, x25:0, x23:0, x26:0, x23:0) -> f2438_0_main_Load(c1, c2, x25:0, x23:0, x26:0, x23:0) :|: c2 = x24:0 - 1 && (c1 = 0 && c = 0) && (x23:0 > -1 && x26:0 >= x23:0 && x25:0 + x24:0 > 0) 11.27/3.93 11.27/3.93 ---------------------------------------- 11.27/3.93 11.27/3.93 (25) RankingReductionPairProof (EQUIVALENT) 11.27/3.93 Interpretation: 11.27/3.93 [ f2438_0_main_Load ] = f2438_0_main_Load_3 + f2438_0_main_Load_2 11.27/3.93 11.27/3.93 The following rules are decreasing: 11.27/3.93 f2438_0_main_Load(c, x24:0, x25:0, x23:0, x26:0, x23:0) -> f2438_0_main_Load(c1, c2, x25:0, x23:0, x26:0, x23:0) :|: c2 = x24:0 - 1 && (c1 = 0 && c = 0) && (x23:0 > -1 && x26:0 >= x23:0 && x25:0 + x24:0 > 0) 11.27/3.93 11.27/3.93 The following rules are bounded: 11.27/3.93 f2438_0_main_Load(c, x24:0, x25:0, x23:0, x26:0, x23:0) -> f2438_0_main_Load(c1, c2, x25:0, x23:0, x26:0, x23:0) :|: c2 = x24:0 - 1 && (c1 = 0 && c = 0) && (x23:0 > -1 && x26:0 >= x23:0 && x25:0 + x24:0 > 0) 11.27/3.93 11.27/3.93 11.27/3.93 ---------------------------------------- 11.27/3.93 11.27/3.93 (26) 11.27/3.93 YES 11.32/4.00 EOF