/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, 639 ms] (4) JBCTerminationGraph (5) TerminationGraphToSCCProof [SOUND, 0 ms] (6) JBCTerminationSCC (7) SCCToIRSProof [SOUND, 195 ms] (8) IRSwT (9) IRSFormatTransformerProof [EQUIVALENT, 5 ms] (10) IRSwT (11) IRSwTTerminationDigraphProof [EQUIVALENT, 199 ms] (12) IRSwT (13) IntTRSCompressionProof [EQUIVALENT, 0 ms] (14) IRSwT (15) TempFilterProof [SOUND, 546 ms] (16) IntTRS (17) PolynomialOrderProcessor [EQUIVALENT, 42 ms] (18) IntTRS (19) PolynomialOrderProcessor [EQUIVALENT, 0 ms] (20) AND (21) IntTRS (22) PolynomialOrderProcessor [EQUIVALENT, 0 ms] (23) IntTRS (24) RankingReductionPairProof [EQUIVALENT, 16 ms] (25) IntTRS (26) PolynomialOrderProcessor [EQUIVALENT, 0 ms] (27) IntTRS (28) RankingReductionPairProof [EQUIVALENT, 0 ms] (29) IntTRS (30) RankingReductionPairProof [EQUIVALENT, 12 ms] (31) IntTRS (32) RankingReductionPairProof [EQUIVALENT, 0 ms] (33) YES (34) IntTRS (35) RankingReductionPairProof [EQUIVALENT, 0 ms] (36) IntTRS (37) RankingReductionPairProof [EQUIVALENT, 10 ms] (38) IntTRS (39) PolynomialOrderProcessor [EQUIVALENT, 0 ms] (40) IntTRS (41) RankingReductionPairProof [EQUIVALENT, 0 ms] (42) IntTRS (43) PolynomialOrderProcessor [EQUIVALENT, 0 ms] (44) IntTRS (45) PolynomialOrderProcessor [EQUIVALENT, 3 ms] (46) YES ---------------------------------------- (0) Obligation: need to prove termination of the following program: public class Iterations { public static void main(String args[]) { for (int i = 0; i < args.length; i++) { int a = 2*i; for (int j = 0; j < a; j++) for (int k = i+j; k >= 0; k--) { int b = 2*i+3*j+4*k; for (int l = 0; l < b; l++) for (int m = 1000*i+100*j+10*k+l; m >= 0; m--); } } } } ---------------------------------------- (1) BareJBCToJBCProof (EQUIVALENT) initialized classpath ---------------------------------------- (2) Obligation: need to prove termination of the following program: public class Iterations { public static void main(String args[]) { for (int i = 0; i < args.length; i++) { int a = 2*i; for (int j = 0; j < a; j++) for (int k = i+j; k >= 0; k--) { int b = 2*i+3*j+4*k; for (int l = 0; l < b; l++) for (int m = 1000*i+100*j+10*k+l; m >= 0; m--); } } } } ---------------------------------------- (3) JBCToGraph (EQUIVALENT) Constructed TerminationGraph. ---------------------------------------- (4) Obligation: Termination Graph based on JBC Program: Iterations.main([Ljava/lang/String;)V: Graph of 93 nodes with 1 SCC. ---------------------------------------- (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: Iterations.main([Ljava/lang/String;)V SCC calls the following helper methods: Performed SCC analyses: *Used field analysis yielded the following read fields: *Marker field analysis yielded the following relations that could be markers: ---------------------------------------- (7) SCCToIRSProof (SOUND) Transformed FIGraph SCCs to intTRSs. Log: Generated rules. Obtained 89 IRulesP rules: f434_0_main_Load(EOS(STATIC_434), java.lang.Object(o12sub), java.lang.Object(o12sub), i18, i18) -> f436_0_main_ArrayLength(EOS(STATIC_436), java.lang.Object(o12sub), java.lang.Object(o12sub), i18, i18, java.lang.Object(o12sub)) :|: TRUE f436_0_main_ArrayLength(EOS(STATIC_436), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i18, java.lang.Object(ARRAY(i20))) -> f439_0_main_ArrayLength(EOS(STATIC_439), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i18, java.lang.Object(ARRAY(i20))) :|: i20 >= 0 f439_0_main_ArrayLength(EOS(STATIC_439), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i18, java.lang.Object(ARRAY(i20))) -> f441_0_main_GE(EOS(STATIC_441), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i18, i20) :|: i20 >= 0 f441_0_main_GE(EOS(STATIC_441), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i18, i20) -> f457_0_main_GE(EOS(STATIC_457), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i18, i20) :|: i18 < i20 f457_0_main_GE(EOS(STATIC_457), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i18, i20) -> f472_0_main_ConstantStackPush(EOS(STATIC_472), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18) :|: i18 < i20 f472_0_main_ConstantStackPush(EOS(STATIC_472), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18) -> f476_0_main_Load(EOS(STATIC_476), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, 2) :|: TRUE f476_0_main_Load(EOS(STATIC_476), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, matching1) -> f478_0_main_IntArithmetic(EOS(STATIC_478), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, 2, i18) :|: TRUE && matching1 = 2 f478_0_main_IntArithmetic(EOS(STATIC_478), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, matching1, i18) -> f481_0_main_Store(EOS(STATIC_481), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, 2 * i18) :|: TRUE && matching1 = 2 f481_0_main_Store(EOS(STATIC_481), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i21) -> f483_0_main_ConstantStackPush(EOS(STATIC_483), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i21) :|: TRUE f483_0_main_ConstantStackPush(EOS(STATIC_483), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i21) -> f486_0_main_Store(EOS(STATIC_486), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i21, 0) :|: TRUE f486_0_main_Store(EOS(STATIC_486), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i21, matching1) -> f488_0_main_Load(EOS(STATIC_488), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i21, 0) :|: TRUE && matching1 = 0 f488_0_main_Load(EOS(STATIC_488), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i21, matching1) -> f1022_0_main_Load(EOS(STATIC_1022), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i21, 0) :|: TRUE && matching1 = 0 f1022_0_main_Load(EOS(STATIC_1022), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i35, i36) -> f1455_0_main_Load(EOS(STATIC_1455), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i35, i36) :|: TRUE f1455_0_main_Load(EOS(STATIC_1455), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i56, i57) -> f2092_0_main_Load(EOS(STATIC_2092), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i56, i57) :|: TRUE f2092_0_main_Load(EOS(STATIC_2092), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78) -> f2099_0_main_Load(EOS(STATIC_2099), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i78) :|: TRUE f2099_0_main_Load(EOS(STATIC_2099), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i78) -> f2102_0_main_GE(EOS(STATIC_2102), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i78, i77) :|: TRUE f2102_0_main_GE(EOS(STATIC_2102), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i78, i77) -> f2283_0_main_GE(EOS(STATIC_2283), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i78, i77) :|: i78 >= i77 f2102_0_main_GE(EOS(STATIC_2102), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i78, i77) -> f2285_0_main_GE(EOS(STATIC_2285), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i78, i77) :|: i78 < i77 f2283_0_main_GE(EOS(STATIC_2283), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i78, i77) -> f2297_0_main_Inc(EOS(STATIC_2297), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18) :|: i78 >= i77 f2297_0_main_Inc(EOS(STATIC_2297), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18) -> f2311_0_main_JMP(EOS(STATIC_2311), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18 + 1) :|: TRUE f2311_0_main_JMP(EOS(STATIC_2311), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i82) -> f2326_0_main_Load(EOS(STATIC_2326), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i82) :|: TRUE f2326_0_main_Load(EOS(STATIC_2326), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i82) -> f429_0_main_Load(EOS(STATIC_429), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i82) :|: TRUE f429_0_main_Load(EOS(STATIC_429), java.lang.Object(o12sub), java.lang.Object(o12sub), i18) -> f434_0_main_Load(EOS(STATIC_434), java.lang.Object(o12sub), java.lang.Object(o12sub), i18, i18) :|: TRUE f2285_0_main_GE(EOS(STATIC_2285), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i78, i77) -> f2307_0_main_Load(EOS(STATIC_2307), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78) :|: i78 < i77 f2307_0_main_Load(EOS(STATIC_2307), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78) -> f2313_0_main_Load(EOS(STATIC_2313), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i18) :|: TRUE f2313_0_main_Load(EOS(STATIC_2313), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i18) -> f2328_0_main_IntArithmetic(EOS(STATIC_2328), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i18, i78) :|: TRUE f2328_0_main_IntArithmetic(EOS(STATIC_2328), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i18, i78) -> f2331_0_main_Store(EOS(STATIC_2331), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i18 + i78) :|: i18 >= 0 && i78 >= 0 f2331_0_main_Store(EOS(STATIC_2331), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i84) -> f2333_0_main_Load(EOS(STATIC_2333), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i84) :|: TRUE f2333_0_main_Load(EOS(STATIC_2333), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i84) -> f2637_0_main_Load(EOS(STATIC_2637), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i84) :|: TRUE f2637_0_main_Load(EOS(STATIC_2637), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i92) -> f2644_0_main_LT(EOS(STATIC_2644), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i92, i92) :|: TRUE f2644_0_main_LT(EOS(STATIC_2644), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i94, i94) -> f2649_0_main_LT(EOS(STATIC_2649), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i94, i94) :|: TRUE f2644_0_main_LT(EOS(STATIC_2644), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i95) -> f2650_0_main_LT(EOS(STATIC_2650), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i95) :|: TRUE f2649_0_main_LT(EOS(STATIC_2649), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i94, i94) -> f2653_0_main_Inc(EOS(STATIC_2653), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78) :|: i94 < 0 f2653_0_main_Inc(EOS(STATIC_2653), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78) -> f2659_0_main_JMP(EOS(STATIC_2659), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78 + 1) :|: TRUE f2659_0_main_JMP(EOS(STATIC_2659), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i96) -> f2717_0_main_Load(EOS(STATIC_2717), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i96) :|: TRUE f2717_0_main_Load(EOS(STATIC_2717), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i96) -> f2092_0_main_Load(EOS(STATIC_2092), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i96) :|: TRUE f2650_0_main_LT(EOS(STATIC_2650), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i95) -> f2656_0_main_ConstantStackPush(EOS(STATIC_2656), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95) :|: i95 >= 0 f2656_0_main_ConstantStackPush(EOS(STATIC_2656), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95) -> f2662_0_main_Load(EOS(STATIC_2662), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, 2) :|: TRUE f2662_0_main_Load(EOS(STATIC_2662), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, matching1) -> f2720_0_main_IntArithmetic(EOS(STATIC_2720), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, 2, i18) :|: TRUE && matching1 = 2 f2720_0_main_IntArithmetic(EOS(STATIC_2720), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, matching1, i18) -> f2723_0_main_ConstantStackPush(EOS(STATIC_2723), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, 2 * i18) :|: TRUE && matching1 = 2 f2723_0_main_ConstantStackPush(EOS(STATIC_2723), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i99) -> f2726_0_main_Load(EOS(STATIC_2726), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i99, 3) :|: TRUE f2726_0_main_Load(EOS(STATIC_2726), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i99, matching1) -> f2729_0_main_IntArithmetic(EOS(STATIC_2729), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i99, 3, i78) :|: TRUE && matching1 = 3 f2729_0_main_IntArithmetic(EOS(STATIC_2729), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i99, matching1, i78) -> f2732_0_main_IntArithmetic(EOS(STATIC_2732), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i99, 3 * i78) :|: TRUE && matching1 = 3 f2732_0_main_IntArithmetic(EOS(STATIC_2732), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i99, i100) -> f2734_0_main_ConstantStackPush(EOS(STATIC_2734), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i99 + i100) :|: i99 >= 0 && i100 >= 0 f2734_0_main_ConstantStackPush(EOS(STATIC_2734), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i101) -> f2738_0_main_Load(EOS(STATIC_2738), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i101, 4) :|: TRUE f2738_0_main_Load(EOS(STATIC_2738), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i101, matching1) -> f2741_0_main_IntArithmetic(EOS(STATIC_2741), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i101, 4, i95) :|: TRUE && matching1 = 4 f2741_0_main_IntArithmetic(EOS(STATIC_2741), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i101, matching1, i95) -> f2744_0_main_IntArithmetic(EOS(STATIC_2744), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i101, 4 * i95) :|: TRUE && matching1 = 4 f2744_0_main_IntArithmetic(EOS(STATIC_2744), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i101, i102) -> f2747_0_main_Store(EOS(STATIC_2747), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i101 + i102) :|: i101 >= 0 && i102 >= 0 f2747_0_main_Store(EOS(STATIC_2747), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i103) -> f2749_0_main_ConstantStackPush(EOS(STATIC_2749), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i103) :|: TRUE f2749_0_main_ConstantStackPush(EOS(STATIC_2749), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i103) -> f2752_0_main_Store(EOS(STATIC_2752), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i103, 0) :|: TRUE f2752_0_main_Store(EOS(STATIC_2752), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i103, matching1) -> f2755_0_main_Load(EOS(STATIC_2755), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i103, 0) :|: TRUE && matching1 = 0 f2755_0_main_Load(EOS(STATIC_2755), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i103, matching1) -> f4085_0_main_Load(EOS(STATIC_4085), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i103, 0) :|: TRUE && matching1 = 0 f4085_0_main_Load(EOS(STATIC_4085), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i119, i120) -> f5154_0_main_Load(EOS(STATIC_5154), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i119, i120) :|: TRUE f5154_0_main_Load(EOS(STATIC_5154), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i140, i141) -> f5948_0_main_Load(EOS(STATIC_5948), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i140, i141) :|: TRUE f5948_0_main_Load(EOS(STATIC_5948), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162) -> f5957_0_main_Load(EOS(STATIC_5957), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i162) :|: TRUE f5957_0_main_Load(EOS(STATIC_5957), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i162) -> f5959_0_main_GE(EOS(STATIC_5959), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i162, i161) :|: TRUE f5959_0_main_GE(EOS(STATIC_5959), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i162, i161) -> f5999_0_main_GE(EOS(STATIC_5999), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i162, i161) :|: i162 >= i161 f5959_0_main_GE(EOS(STATIC_5959), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i162, i161) -> f6000_0_main_GE(EOS(STATIC_6000), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i162, i161) :|: i162 < i161 f5999_0_main_GE(EOS(STATIC_5999), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i162, i161) -> f6017_0_main_Inc(EOS(STATIC_6017), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95) :|: i162 >= i161 f6017_0_main_Inc(EOS(STATIC_6017), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95) -> f6035_0_main_JMP(EOS(STATIC_6035), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95 + -1) :|: TRUE f6035_0_main_JMP(EOS(STATIC_6035), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i166) -> f6094_0_main_Load(EOS(STATIC_6094), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i166) :|: TRUE f6094_0_main_Load(EOS(STATIC_6094), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i166) -> f2637_0_main_Load(EOS(STATIC_2637), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i166) :|: TRUE f6000_0_main_GE(EOS(STATIC_6000), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i162, i161) -> f6031_0_main_ConstantStackPush(EOS(STATIC_6031), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162) :|: i162 < i161 f6031_0_main_ConstantStackPush(EOS(STATIC_6031), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162) -> f6038_0_main_Load(EOS(STATIC_6038), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, 1000) :|: TRUE f6038_0_main_Load(EOS(STATIC_6038), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, matching1) -> f6097_0_main_IntArithmetic(EOS(STATIC_6097), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, 1000, i18) :|: TRUE && matching1 = 1000 f6097_0_main_IntArithmetic(EOS(STATIC_6097), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, matching1, i18) -> f6101_0_main_ConstantStackPush(EOS(STATIC_6101), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, 1000 * i18) :|: TRUE && matching1 = 1000 f6101_0_main_ConstantStackPush(EOS(STATIC_6101), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i168) -> f6104_0_main_Load(EOS(STATIC_6104), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i168, 100) :|: TRUE f6104_0_main_Load(EOS(STATIC_6104), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i168, matching1) -> f6107_0_main_IntArithmetic(EOS(STATIC_6107), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i168, 100, i78) :|: TRUE && matching1 = 100 f6107_0_main_IntArithmetic(EOS(STATIC_6107), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i168, matching1, i78) -> f6110_0_main_IntArithmetic(EOS(STATIC_6110), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i168, 100 * i78) :|: TRUE && matching1 = 100 f6110_0_main_IntArithmetic(EOS(STATIC_6110), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i168, i169) -> f6113_0_main_ConstantStackPush(EOS(STATIC_6113), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i168 + i169) :|: i168 >= 0 && i169 >= 0 f6113_0_main_ConstantStackPush(EOS(STATIC_6113), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i170) -> f6116_0_main_Load(EOS(STATIC_6116), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i170, 10) :|: TRUE f6116_0_main_Load(EOS(STATIC_6116), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i170, matching1) -> f6118_0_main_IntArithmetic(EOS(STATIC_6118), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i170, 10, i95) :|: TRUE && matching1 = 10 f6118_0_main_IntArithmetic(EOS(STATIC_6118), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i170, matching1, i95) -> f6122_0_main_IntArithmetic(EOS(STATIC_6122), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i170, 10 * i95) :|: TRUE && matching1 = 10 f6122_0_main_IntArithmetic(EOS(STATIC_6122), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i170, i171) -> f6125_0_main_Load(EOS(STATIC_6125), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i170 + i171) :|: i170 >= 0 && i171 >= 0 f6125_0_main_Load(EOS(STATIC_6125), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i172) -> f6128_0_main_IntArithmetic(EOS(STATIC_6128), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i172, i162) :|: TRUE f6128_0_main_IntArithmetic(EOS(STATIC_6128), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i172, i162) -> f6129_0_main_Store(EOS(STATIC_6129), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i172 + i162) :|: i172 >= 0 && i162 >= 0 f6129_0_main_Store(EOS(STATIC_6129), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i173) -> f6130_0_main_Load(EOS(STATIC_6130), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i173) :|: TRUE f6130_0_main_Load(EOS(STATIC_6130), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i173) -> f6368_0_main_Load(EOS(STATIC_6368), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i173) :|: TRUE f6368_0_main_Load(EOS(STATIC_6368), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i175) -> f6372_0_main_LT(EOS(STATIC_6372), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i175, i175) :|: TRUE f6372_0_main_LT(EOS(STATIC_6372), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i177, i177) -> f6378_0_main_LT(EOS(STATIC_6378), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i177, i177) :|: TRUE f6372_0_main_LT(EOS(STATIC_6372), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i178, i178) -> f6380_0_main_LT(EOS(STATIC_6380), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i178, i178) :|: TRUE f6378_0_main_LT(EOS(STATIC_6378), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i177, i177) -> f6383_0_main_Inc(EOS(STATIC_6383), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162) :|: i177 < 0 f6383_0_main_Inc(EOS(STATIC_6383), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162) -> f6390_0_main_JMP(EOS(STATIC_6390), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162 + 1) :|: TRUE f6390_0_main_JMP(EOS(STATIC_6390), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i179) -> f6611_0_main_Load(EOS(STATIC_6611), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i179) :|: TRUE f6611_0_main_Load(EOS(STATIC_6611), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i179) -> f5948_0_main_Load(EOS(STATIC_5948), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i179) :|: TRUE f6380_0_main_LT(EOS(STATIC_6380), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i178, i178) -> f6386_0_main_Inc(EOS(STATIC_6386), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i178) :|: i178 >= 0 f6386_0_main_Inc(EOS(STATIC_6386), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i178) -> f6536_0_main_JMP(EOS(STATIC_6536), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i178 + -1) :|: TRUE f6536_0_main_JMP(EOS(STATIC_6536), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i180) -> f6824_0_main_Load(EOS(STATIC_6824), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i180) :|: TRUE f6824_0_main_Load(EOS(STATIC_6824), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i180) -> f6368_0_main_Load(EOS(STATIC_6368), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i180) :|: TRUE Combined rules. Obtained 8 IRulesP rules: f2102_0_main_GE(EOS(STATIC_2102), java.lang.Object(ARRAY(i20:0)), java.lang.Object(ARRAY(i20:0)), i18:0, i77:0, i78:0, i78:0, i77:0) -> f2644_0_main_LT(EOS(STATIC_2644), java.lang.Object(ARRAY(i20:0)), java.lang.Object(ARRAY(i20:0)), i18:0, i77:0, i78:0, i18:0 + i78:0, i18:0 + i78:0) :|: i78:0 < i77:0 && i18:0 > -1 && i78:0 > -1 f2644_0_main_LT(EOS(STATIC_2644), java.lang.Object(ARRAY(i20:0)), java.lang.Object(ARRAY(i20:0)), i18:0, i77:0, i78:0, i95:0, i95:0) -> f5959_0_main_GE(EOS(STATIC_5959), java.lang.Object(ARRAY(i20:0)), java.lang.Object(ARRAY(i20:0)), i18:0, i77:0, i78:0, i95:0, 2 * i18:0 + 3 * i78:0 + 4 * i95:0, 0, 0, 2 * i18:0 + 3 * i78:0 + 4 * i95:0) :|: i95:0 > -1 && 3 * i78:0 >= 0 && 2 * i18:0 >= 0 && 2 * i18:0 + 3 * i78:0 >= 0 && 4 * i95:0 >= 0 f5959_0_main_GE(EOS(STATIC_5959), java.lang.Object(ARRAY(i20:0)), java.lang.Object(ARRAY(i20:0)), i18:0, i77:0, i78:0, i95:0, i161:0, i162:0, i162:0, i161:0) -> f6372_0_main_LT(EOS(STATIC_6372), java.lang.Object(ARRAY(i20:0)), java.lang.Object(ARRAY(i20:0)), i18:0, i77:0, i78:0, i95:0, i161:0, i162:0, 1000 * i18:0 + 100 * i78:0 + 10 * i95:0 + i162:0, 1000 * i18:0 + 100 * i78:0 + 10 * i95:0 + i162:0) :|: i162:0 < i161:0 && 100 * i78:0 >= 0 && 1000 * i18:0 >= 0 && 10 * i95:0 >= 0 && 1000 * i18:0 + 100 * i78:0 >= 0 && 1000 * i18:0 + 100 * i78:0 + 10 * i95:0 >= 0 && i162:0 > -1 f2644_0_main_LT(EOS(STATIC_2644), java.lang.Object(ARRAY(i20:0)), java.lang.Object(ARRAY(i20:0)), i18:0, i77:0, i78:0, i94:0, i94:0) -> f2102_0_main_GE(EOS(STATIC_2102), java.lang.Object(ARRAY(i20:0)), java.lang.Object(ARRAY(i20:0)), i18:0, i77:0, i78:0 + 1, i78:0 + 1, i77:0) :|: i94:0 < 0 f6372_0_main_LT(EOS(STATIC_6372), java.lang.Object(ARRAY(i20:0)), java.lang.Object(ARRAY(i20:0)), i18:0, i77:0, i78:0, i95:0, i161:0, i162:0, i177:0, i177:0) -> f5959_0_main_GE(EOS(STATIC_5959), java.lang.Object(ARRAY(i20:0)), java.lang.Object(ARRAY(i20:0)), i18:0, i77:0, i78:0, i95:0, i161:0, i162:0 + 1, i162:0 + 1, i161:0) :|: i177:0 < 0 f6372_0_main_LT(EOS(STATIC_6372), java.lang.Object(ARRAY(i20:0)), java.lang.Object(ARRAY(i20:0)), i18:0, i77:0, i78:0, i95:0, i161:0, i162:0, i178:0, i178:0) -> f6372_0_main_LT(EOS(STATIC_6372), java.lang.Object(ARRAY(i20:0)), java.lang.Object(ARRAY(i20:0)), i18:0, i77:0, i78:0, i95:0, i161:0, i162:0, i178:0 - 1, i178:0 - 1) :|: i178:0 > -1 f2102_0_main_GE(EOS(STATIC_2102), java.lang.Object(ARRAY(i20:0)), java.lang.Object(ARRAY(i20:0)), i18:0, i77:0, i78:0, i78:0, i77:0) -> f2102_0_main_GE(EOS(STATIC_2102), java.lang.Object(ARRAY(i20:0)), java.lang.Object(ARRAY(i20:0)), i18:0 + 1, 2 * (i18:0 + 1), 0, 0, 2 * (i18:0 + 1)) :|: i20:0 > -1 && i20:0 > i18:0 + 1 && i78:0 >= i77:0 f5959_0_main_GE(EOS(STATIC_5959), java.lang.Object(ARRAY(i20:0)), java.lang.Object(ARRAY(i20:0)), i18:0, i77:0, i78:0, i95:0, i161:0, i162:0, i162:0, i161:0) -> f2644_0_main_LT(EOS(STATIC_2644), java.lang.Object(ARRAY(i20:0)), java.lang.Object(ARRAY(i20:0)), i18:0, i77:0, i78:0, i95:0 - 1, i95:0 - 1) :|: i162:0 >= i161:0 Filtered constant ground arguments: f2102_0_main_GE(x1, x2, x3, x4, x5, x6, x7, x8) -> f2102_0_main_GE(x2, x3, x4, x5, x6, x7, x8) f2644_0_main_LT(x1, x2, x3, x4, x5, x6, x7, x8) -> f2644_0_main_LT(x2, x3, x4, x5, x6, x7, x8) f5959_0_main_GE(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) -> f5959_0_main_GE(x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) f6372_0_main_LT(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) -> f6372_0_main_LT(x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) Filtered duplicate arguments: f2102_0_main_GE(x1, x2, x3, x4, x5, x6, x7) -> f2102_0_main_GE(x2, x3, x6, x7) f2644_0_main_LT(x1, x2, x3, x4, x5, x6, x7) -> f2644_0_main_LT(x2, x3, x4, x5, x7) f5959_0_main_GE(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) -> f5959_0_main_GE(x2, x3, x4, x5, x6, x9, x10) f6372_0_main_LT(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) -> f6372_0_main_LT(x2, x3, x4, x5, x6, x7, x8, x10) Finished conversion. Obtained 8 rules.P rules: f2102_0_main_GE(java.lang.Object(ARRAY(i20:0)), i18:0, i78:0, i77:0, i20:0) -> f2644_0_main_LT(java.lang.Object(ARRAY(i20:0)), i18:0, i77:0, i78:0, i18:0 + i78:0, i20:0) :|: i18:0 > -1 && i78:0 > -1 && i78:0 < i77:0 f2644_0_main_LT(java.lang.Object(ARRAY(i20:0)), i18:0, i77:0, i78:0, i95:0, i20:0) -> f5959_0_main_GE(java.lang.Object(ARRAY(i20:0)), i18:0, i77:0, i78:0, i95:0, 0, 2 * i18:0 + 3 * i78:0 + 4 * i95:0, i20:0) :|: 3 * i78:0 >= 0 && i95:0 > -1 && 2 * i18:0 >= 0 && 4 * i95:0 >= 0 && 2 * i18:0 + 3 * i78:0 >= 0 f5959_0_main_GE(java.lang.Object(ARRAY(i20:0)), i18:0, i77:0, i78:0, i95:0, i162:0, i161:0, i20:0) -> f6372_0_main_LT(java.lang.Object(ARRAY(i20:0)), i18:0, i77:0, i78:0, i95:0, i161:0, i162:0, 1000 * i18:0 + 100 * i78:0 + 10 * i95:0 + i162:0, i20:0) :|: 100 * i78:0 >= 0 && i162:0 < i161:0 && 1000 * i18:0 >= 0 && 10 * i95:0 >= 0 && 1000 * i18:0 + 100 * i78:0 >= 0 && i162:0 > -1 && 1000 * i18:0 + 100 * i78:0 + 10 * i95:0 >= 0 f2644_0_main_LT(java.lang.Object(ARRAY(i20:0)), i18:0, i77:0, i78:0, i94:0, i20:0) -> f2102_0_main_GE(java.lang.Object(ARRAY(i20:0)), i18:0, i78:0 + 1, i77:0, i20:0) :|: i94:0 < 0 f6372_0_main_LT(java.lang.Object(ARRAY(i20:0)), i18:0, i77:0, i78:0, i95:0, i161:0, i162:0, i177:0, i20:0) -> f5959_0_main_GE(java.lang.Object(ARRAY(i20:0)), i18:0, i77:0, i78:0, i95:0, i162:0 + 1, i161:0, i20:0) :|: i177:0 < 0 f6372_0_main_LT(java.lang.Object(ARRAY(i20:0)), i18:0, i77:0, i78:0, i95:0, i161:0, i162:0, i178:0, i20:0) -> f6372_0_main_LT(java.lang.Object(ARRAY(i20:0)), i18:0, i77:0, i78:0, i95:0, i161:0, i162:0, i178:0 - 1, i20:0) :|: i178:0 > -1 f2102_0_main_GE(java.lang.Object(ARRAY(i20:0)), i18:0, i78:0, i77:0, i20:0) -> f2102_0_main_GE(java.lang.Object(ARRAY(i20:0)), i18:0 + 1, 0, 2 * i18:0 + 2, i20:0) :|: i20:0 > i18:0 + 1 && i78:0 >= i77:0 && i20:0 > -1 f5959_0_main_GE(java.lang.Object(ARRAY(i20:0)), i18:0, i77:0, i78:0, i95:0, i162:0, i161:0, i20:0) -> f2644_0_main_LT(java.lang.Object(ARRAY(i20:0)), i18:0, i77:0, i78:0, i95:0 - 1, i20:0) :|: i162:0 >= i161:0 ---------------------------------------- (8) Obligation: Rules: f2102_0_main_GE(java.lang.Object(ARRAY(i20:0)), i18:0, i78:0, i77:0, i20:0) -> f2644_0_main_LT(java.lang.Object(ARRAY(i20:0)), i18:0, i77:0, i78:0, i18:0 + i78:0, i20:0) :|: i18:0 > -1 && i78:0 > -1 && i78:0 < i77:0 f2644_0_main_LT(java.lang.Object(ARRAY(x)), x1, x2, x3, x4, x) -> f5959_0_main_GE(java.lang.Object(ARRAY(x)), x1, x2, x3, x4, 0, 2 * x1 + 3 * x3 + 4 * x4, x) :|: 3 * x3 >= 0 && x4 > -1 && 2 * x1 >= 0 && 4 * x4 >= 0 && 2 * x1 + 3 * x3 >= 0 f5959_0_main_GE(java.lang.Object(ARRAY(x5)), x6, x7, x8, x9, x10, x11, x5) -> f6372_0_main_LT(java.lang.Object(ARRAY(x5)), x6, x7, x8, x9, x11, x10, 1000 * x6 + 100 * x8 + 10 * x9 + x10, x5) :|: 100 * x8 >= 0 && x10 < x11 && 1000 * x6 >= 0 && 10 * x9 >= 0 && 1000 * x6 + 100 * x8 >= 0 && x10 > -1 && 1000 * x6 + 100 * x8 + 10 * x9 >= 0 f2644_0_main_LT(java.lang.Object(ARRAY(x12)), x13, x14, x15, x16, x12) -> f2102_0_main_GE(java.lang.Object(ARRAY(x12)), x13, x15 + 1, x14, x12) :|: x16 < 0 f6372_0_main_LT(java.lang.Object(ARRAY(x17)), x18, x19, x20, x21, x22, x23, x24, x17) -> f5959_0_main_GE(java.lang.Object(ARRAY(x17)), x18, x19, x20, x21, x23 + 1, x22, x17) :|: x24 < 0 f6372_0_main_LT(java.lang.Object(ARRAY(x25)), x26, x27, x28, x29, x30, x31, x32, x25) -> f6372_0_main_LT(java.lang.Object(ARRAY(x25)), x26, x27, x28, x29, x30, x31, x32 - 1, x25) :|: x32 > -1 f2102_0_main_GE(java.lang.Object(ARRAY(x33)), x34, x35, x36, x33) -> f2102_0_main_GE(java.lang.Object(ARRAY(x33)), x34 + 1, 0, 2 * x34 + 2, x33) :|: x33 > x34 + 1 && x35 >= x36 && x33 > -1 f5959_0_main_GE(java.lang.Object(ARRAY(x37)), x38, x39, x40, x41, x42, x43, x37) -> f2644_0_main_LT(java.lang.Object(ARRAY(x37)), x38, x39, x40, x41 - 1, x37) :|: x42 >= x43 ---------------------------------------- (9) IRSFormatTransformerProof (EQUIVALENT) Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). ---------------------------------------- (10) Obligation: Rules: f2102_0_main_GE(java.lang.Object(ARRAY(i20:0)), i18:0, i78:0, i77:0, i20:0) -> f2644_0_main_LT(java.lang.Object(ARRAY(i20:0)), i18:0, i77:0, i78:0, arith, i20:0) :|: i18:0 > -1 && i78:0 > -1 && i78:0 < i77:0 && arith = i18:0 + i78:0 f2644_0_main_LT(java.lang.Object(ARRAY(x44)), x45, x46, x47, x48, x44) -> f5959_0_main_GE(java.lang.Object(ARRAY(x44)), x45, x46, x47, x48, 0, x49, x44) :|: 3 * x47 >= 0 && x48 > -1 && 2 * x45 >= 0 && 4 * x48 >= 0 && 2 * x45 + 3 * x47 >= 0 && x49 = 2 * x45 + 3 * x47 + 4 * x48 f5959_0_main_GE(java.lang.Object(ARRAY(x50)), x51, x52, x53, x54, x55, x56, x50) -> f6372_0_main_LT(java.lang.Object(ARRAY(x50)), x51, x52, x53, x54, x56, x55, x57, x50) :|: 100 * x53 >= 0 && x55 < x56 && 1000 * x51 >= 0 && 10 * x54 >= 0 && 1000 * x51 + 100 * x53 >= 0 && x55 > -1 && 1000 * x51 + 100 * x53 + 10 * x54 >= 0 && x57 = 1000 * x51 + 100 * x53 + 10 * x54 + x55 f2644_0_main_LT(java.lang.Object(ARRAY(x58)), x59, x60, x61, x62, x58) -> f2102_0_main_GE(java.lang.Object(ARRAY(x58)), x59, x63, x60, x58) :|: x62 < 0 && x63 = x61 + 1 f6372_0_main_LT(java.lang.Object(ARRAY(x64)), x65, x66, x67, x68, x69, x70, x71, x64) -> f5959_0_main_GE(java.lang.Object(ARRAY(x64)), x65, x66, x67, x68, x72, x69, x64) :|: x71 < 0 && x72 = x70 + 1 f6372_0_main_LT(java.lang.Object(ARRAY(x73)), x74, x75, x76, x77, x78, x79, x80, x73) -> f6372_0_main_LT(java.lang.Object(ARRAY(x73)), x74, x75, x76, x77, x78, x79, x81, x73) :|: x80 > -1 && x81 = x80 - 1 f2102_0_main_GE(java.lang.Object(ARRAY(x82)), x83, x84, x85, x82) -> f2102_0_main_GE(java.lang.Object(ARRAY(x82)), x86, 0, x87, x82) :|: x82 > x83 + 1 && x84 >= x85 && x82 > -1 && x86 = x83 + 1 && x87 = 2 * x83 + 2 f5959_0_main_GE(java.lang.Object(ARRAY(x88)), x89, x90, x91, x92, x93, x94, x88) -> f2644_0_main_LT(java.lang.Object(ARRAY(x88)), x89, x90, x91, x95, x88) :|: x93 >= x94 && x95 = x92 - 1 ---------------------------------------- (11) IRSwTTerminationDigraphProof (EQUIVALENT) Constructed termination digraph! Nodes: (1) f2102_0_main_GE(java.lang.Object(ARRAY(i20:0)), i18:0, i78:0, i77:0, i20:0) -> f2644_0_main_LT(java.lang.Object(ARRAY(i20:0)), i18:0, i77:0, i78:0, arith, i20:0) :|: i18:0 > -1 && i78:0 > -1 && i78:0 < i77:0 && arith = i18:0 + i78:0 (2) f2644_0_main_LT(java.lang.Object(ARRAY(x44)), x45, x46, x47, x48, x44) -> f5959_0_main_GE(java.lang.Object(ARRAY(x44)), x45, x46, x47, x48, 0, x49, x44) :|: 3 * x47 >= 0 && x48 > -1 && 2 * x45 >= 0 && 4 * x48 >= 0 && 2 * x45 + 3 * x47 >= 0 && x49 = 2 * x45 + 3 * x47 + 4 * x48 (3) f5959_0_main_GE(java.lang.Object(ARRAY(x50)), x51, x52, x53, x54, x55, x56, x50) -> f6372_0_main_LT(java.lang.Object(ARRAY(x50)), x51, x52, x53, x54, x56, x55, x57, x50) :|: 100 * x53 >= 0 && x55 < x56 && 1000 * x51 >= 0 && 10 * x54 >= 0 && 1000 * x51 + 100 * x53 >= 0 && x55 > -1 && 1000 * x51 + 100 * x53 + 10 * x54 >= 0 && x57 = 1000 * x51 + 100 * x53 + 10 * x54 + x55 (4) f2644_0_main_LT(java.lang.Object(ARRAY(x58)), x59, x60, x61, x62, x58) -> f2102_0_main_GE(java.lang.Object(ARRAY(x58)), x59, x63, x60, x58) :|: x62 < 0 && x63 = x61 + 1 (5) f6372_0_main_LT(java.lang.Object(ARRAY(x64)), x65, x66, x67, x68, x69, x70, x71, x64) -> f5959_0_main_GE(java.lang.Object(ARRAY(x64)), x65, x66, x67, x68, x72, x69, x64) :|: x71 < 0 && x72 = x70 + 1 (6) f6372_0_main_LT(java.lang.Object(ARRAY(x73)), x74, x75, x76, x77, x78, x79, x80, x73) -> f6372_0_main_LT(java.lang.Object(ARRAY(x73)), x74, x75, x76, x77, x78, x79, x81, x73) :|: x80 > -1 && x81 = x80 - 1 (7) f2102_0_main_GE(java.lang.Object(ARRAY(x82)), x83, x84, x85, x82) -> f2102_0_main_GE(java.lang.Object(ARRAY(x82)), x86, 0, x87, x82) :|: x82 > x83 + 1 && x84 >= x85 && x82 > -1 && x86 = x83 + 1 && x87 = 2 * x83 + 2 (8) f5959_0_main_GE(java.lang.Object(ARRAY(x88)), x89, x90, x91, x92, x93, x94, x88) -> f2644_0_main_LT(java.lang.Object(ARRAY(x88)), x89, x90, x91, x95, x88) :|: x93 >= x94 && x95 = x92 - 1 Arcs: (1) -> (2) (2) -> (3), (8) (3) -> (6) (4) -> (1), (7) (5) -> (3), (8) (6) -> (5), (6) (7) -> (1), (7) (8) -> (2), (4) This digraph is fully evaluated! ---------------------------------------- (12) Obligation: Termination digraph: Nodes: (1) f2102_0_main_GE(java.lang.Object(ARRAY(i20:0)), i18:0, i78:0, i77:0, i20:0) -> f2644_0_main_LT(java.lang.Object(ARRAY(i20:0)), i18:0, i77:0, i78:0, arith, i20:0) :|: i18:0 > -1 && i78:0 > -1 && i78:0 < i77:0 && arith = i18:0 + i78:0 (2) f2102_0_main_GE(java.lang.Object(ARRAY(x82)), x83, x84, x85, x82) -> f2102_0_main_GE(java.lang.Object(ARRAY(x82)), x86, 0, x87, x82) :|: x82 > x83 + 1 && x84 >= x85 && x82 > -1 && x86 = x83 + 1 && x87 = 2 * x83 + 2 (3) f2644_0_main_LT(java.lang.Object(ARRAY(x58)), x59, x60, x61, x62, x58) -> f2102_0_main_GE(java.lang.Object(ARRAY(x58)), x59, x63, x60, x58) :|: x62 < 0 && x63 = x61 + 1 (4) f5959_0_main_GE(java.lang.Object(ARRAY(x88)), x89, x90, x91, x92, x93, x94, x88) -> f2644_0_main_LT(java.lang.Object(ARRAY(x88)), x89, x90, x91, x95, x88) :|: x93 >= x94 && x95 = x92 - 1 (5) f6372_0_main_LT(java.lang.Object(ARRAY(x64)), x65, x66, x67, x68, x69, x70, x71, x64) -> f5959_0_main_GE(java.lang.Object(ARRAY(x64)), x65, x66, x67, x68, x72, x69, x64) :|: x71 < 0 && x72 = x70 + 1 (6) f6372_0_main_LT(java.lang.Object(ARRAY(x73)), x74, x75, x76, x77, x78, x79, x80, x73) -> f6372_0_main_LT(java.lang.Object(ARRAY(x73)), x74, x75, x76, x77, x78, x79, x81, x73) :|: x80 > -1 && x81 = x80 - 1 (7) f5959_0_main_GE(java.lang.Object(ARRAY(x50)), x51, x52, x53, x54, x55, x56, x50) -> f6372_0_main_LT(java.lang.Object(ARRAY(x50)), x51, x52, x53, x54, x56, x55, x57, x50) :|: 100 * x53 >= 0 && x55 < x56 && 1000 * x51 >= 0 && 10 * x54 >= 0 && 1000 * x51 + 100 * x53 >= 0 && x55 > -1 && 1000 * x51 + 100 * x53 + 10 * x54 >= 0 && x57 = 1000 * x51 + 100 * x53 + 10 * x54 + x55 (8) f2644_0_main_LT(java.lang.Object(ARRAY(x44)), x45, x46, x47, x48, x44) -> f5959_0_main_GE(java.lang.Object(ARRAY(x44)), x45, x46, x47, x48, 0, x49, x44) :|: 3 * x47 >= 0 && x48 > -1 && 2 * x45 >= 0 && 4 * x48 >= 0 && 2 * x45 + 3 * x47 >= 0 && x49 = 2 * x45 + 3 * x47 + 4 * x48 Arcs: (1) -> (8) (2) -> (1), (2) (3) -> (1), (2) (4) -> (3), (8) (5) -> (4), (7) (6) -> (5), (6) (7) -> (6) (8) -> (4), (7) This digraph is fully evaluated! ---------------------------------------- (13) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (14) Obligation: Rules: f6372_0_main_LT(java.lang.Object(ARRAY(x64:0)), x65:0, x66:0, x67:0, x68:0, x69:0, x70:0, x71:0, x64:0) -> f5959_0_main_GE(java.lang.Object(ARRAY(x64:0)), x65:0, x66:0, x67:0, x68:0, x70:0 + 1, x69:0, x64:0) :|: x71:0 < 0 f2644_0_main_LT(java.lang.Object(ARRAY(x58:0)), x59:0, x60:0, x61:0, x62:0, x58:0) -> f2102_0_main_GE(java.lang.Object(ARRAY(x58:0)), x59:0, x61:0 + 1, x60:0, x58:0) :|: x62:0 < 0 f2102_0_main_GE(java.lang.Object(ARRAY(x82:0)), x83:0, x84:0, x85:0, x82:0) -> f2102_0_main_GE(java.lang.Object(ARRAY(x82:0)), x83:0 + 1, 0, 2 * x83:0 + 2, x82:0) :|: x83:0 + 1 < x82:0 && x85:0 <= x84:0 && x82:0 > -1 f2644_0_main_LT(java.lang.Object(ARRAY(x44:0)), x45:0, x46:0, x47:0, x48:0, x44:0) -> f5959_0_main_GE(java.lang.Object(ARRAY(x44:0)), x45:0, x46:0, x47:0, x48:0, 0, 2 * x45:0 + 3 * x47:0 + 4 * x48:0, x44:0) :|: 4 * x48:0 >= 0 && 2 * x45:0 + 3 * x47:0 >= 0 && 2 * x45:0 >= 0 && x48:0 > -1 && 3 * x47:0 >= 0 f6372_0_main_LT(java.lang.Object(ARRAY(x73:0)), x74:0, x75:0, x76:0, x77:0, x78:0, x79:0, x80:0, x73:0) -> f6372_0_main_LT(java.lang.Object(ARRAY(x73:0)), x74:0, x75:0, x76:0, x77:0, x78:0, x79:0, x80:0 - 1, x73:0) :|: x80:0 > -1 f2102_0_main_GE(java.lang.Object(ARRAY(i20:0:0)), i18:0:0, i78:0:0, i77:0:0, i20:0:0) -> f2644_0_main_LT(java.lang.Object(ARRAY(i20:0:0)), i18:0:0, i77:0:0, i78:0:0, i18:0:0 + i78:0:0, i20:0:0) :|: i18:0:0 > -1 && i78:0:0 > -1 && i78:0:0 < i77:0:0 f5959_0_main_GE(java.lang.Object(ARRAY(x50:0)), x51:0, x52:0, x53:0, x54:0, x55:0, x56:0, x50:0) -> f6372_0_main_LT(java.lang.Object(ARRAY(x50:0)), x51:0, x52:0, x53:0, x54:0, x56:0, x55:0, 1000 * x51:0 + 100 * x53:0 + 10 * x54:0 + x55:0, x50:0) :|: x55:0 > -1 && 1000 * x51:0 + 100 * x53:0 + 10 * x54:0 >= 0 && 1000 * x51:0 + 100 * x53:0 >= 0 && 10 * x54:0 >= 0 && 1000 * x51:0 >= 0 && x56:0 > x55:0 && 100 * x53:0 >= 0 f5959_0_main_GE(java.lang.Object(ARRAY(x88:0)), x89:0, x90:0, x91:0, x92:0, x93:0, x94:0, x88:0) -> f2644_0_main_LT(java.lang.Object(ARRAY(x88:0)), x89:0, x90:0, x91:0, x92:0 - 1, x88:0) :|: x94:0 <= x93:0 ---------------------------------------- (15) TempFilterProof (SOUND) Used the following sort dictionary for filtering: f6372_0_main_LT(VARIABLE, VARIABLE, VARIABLE, VARIABLE, VARIABLE, VARIABLE, VARIABLE, INTEGER, VARIABLE) java.lang.Object(VARIABLE) ARRAY(VARIABLE) f5959_0_main_GE(VARIABLE, VARIABLE, VARIABLE, VARIABLE, VARIABLE, VARIABLE, VARIABLE, VARIABLE) f2644_0_main_LT(VARIABLE, VARIABLE, VARIABLE, VARIABLE, INTEGER, VARIABLE) f2102_0_main_GE(VARIABLE, VARIABLE, VARIABLE, VARIABLE, VARIABLE) Replaced non-predefined constructor symbols by 0. ---------------------------------------- (16) Obligation: Rules: f6372_0_main_LT(c, x65:0, x66:0, x67:0, x68:0, x69:0, x70:0, x71:0, x64:0) -> f5959_0_main_GE(c1, x65:0, x66:0, x67:0, x68:0, c2, x69:0, x64:0) :|: c2 = x70:0 + 1 && (c1 = 0 && c = 0) && x71:0 < 0 f2644_0_main_LT(c3, x59:0, x60:0, x61:0, x62:0, x58:0) -> f2102_0_main_GE(c4, x59:0, c5, x60:0, x58:0) :|: c5 = x61:0 + 1 && (c4 = 0 && c3 = 0) && x62:0 < 0 f2102_0_main_GE(c6, x83:0, x84:0, x85:0, x82:0) -> f2102_0_main_GE(c7, c8, c9, c10, x82:0) :|: c10 = 2 * x83:0 + 2 && (c9 = 0 && (c8 = x83:0 + 1 && (c7 = 0 && c6 = 0))) && (x83:0 + 1 < x82:0 && x85:0 <= x84:0 && x82:0 > -1) f2644_0_main_LT(c11, x45:0, x46:0, x47:0, x48:0, x44:0) -> f5959_0_main_GE(c12, x45:0, x46:0, x47:0, x48:0, c13, c14, x44:0) :|: c14 = 2 * x45:0 + 3 * x47:0 + 4 * x48:0 && (c13 = 0 && (c12 = 0 && c11 = 0)) && (4 * x48:0 >= 0 && 2 * x45:0 + 3 * x47:0 >= 0 && 2 * x45:0 >= 0 && x48:0 > -1 && 3 * x47:0 >= 0) f6372_0_main_LT(c15, x74:0, x75:0, x76:0, x77:0, x78:0, x79:0, x80:0, x73:0) -> f6372_0_main_LT(c16, x74:0, x75:0, x76:0, x77:0, x78:0, x79:0, c17, x73:0) :|: c17 = x80:0 - 1 && (c16 = 0 && c15 = 0) && x80:0 > -1 f2102_0_main_GE(c18, i18:0:0, i78:0:0, i77:0:0, i20:0:0) -> f2644_0_main_LT(c19, i18:0:0, i77:0:0, i78:0:0, c20, i20:0:0) :|: c20 = i18:0:0 + i78:0:0 && (c19 = 0 && c18 = 0) && (i18:0:0 > -1 && i78:0:0 > -1 && i78:0:0 < i77:0:0) f5959_0_main_GE(c21, x51:0, x52:0, x53:0, x54:0, x55:0, x56:0, x50:0) -> f6372_0_main_LT(c22, x51:0, x52:0, x53:0, x54:0, x56:0, x55:0, c23, x50:0) :|: c23 = 1000 * x51:0 + 100 * x53:0 + 10 * x54:0 + x55:0 && (c22 = 0 && c21 = 0) && (x55:0 > -1 && 1000 * x51:0 + 100 * x53:0 + 10 * x54:0 >= 0 && 1000 * x51:0 + 100 * x53:0 >= 0 && 10 * x54:0 >= 0 && 1000 * x51:0 >= 0 && x56:0 > x55:0 && 100 * x53:0 >= 0) f5959_0_main_GE(c24, x89:0, x90:0, x91:0, x92:0, x93:0, x94:0, x88:0) -> f2644_0_main_LT(c25, x89:0, x90:0, x91:0, c26, x88:0) :|: c26 = x92:0 - 1 && (c25 = 0 && c24 = 0) && x94:0 <= x93:0 ---------------------------------------- (17) PolynomialOrderProcessor (EQUIVALENT) Found the following polynomial interpretation: [f6372_0_main_LT(x, x1, x2, x3, x4, x5, x6, x7, x8)] = -1 + c*x - x1 + x8 [f5959_0_main_GE(x9, x10, x11, x12, x13, x14, x15, x16)] = -1 - x10 + x16 + c9*x9 [f2644_0_main_LT(x17, x18, x19, x20, x21, x22)] = -1 + c17*x17 - x18 + x22 [f2102_0_main_GE(x23, x24, x25, x26, x27)] = -1 + c23*x23 - x24 + x27 The following rules are decreasing: f2102_0_main_GE(c6, x83:0, x84:0, x85:0, x82:0) -> f2102_0_main_GE(c7, c8, c9, c10, x82:0) :|: c10 = 2 * x83:0 + 2 && (c9 = 0 && (c8 = x83:0 + 1 && (c7 = 0 && c6 = 0))) && (x83:0 + 1 < x82:0 && x85:0 <= x84:0 && x82:0 > -1) The following rules are bounded: f2102_0_main_GE(c6, x83:0, x84:0, x85:0, x82:0) -> f2102_0_main_GE(c7, c8, c9, c10, x82:0) :|: c10 = 2 * x83:0 + 2 && (c9 = 0 && (c8 = x83:0 + 1 && (c7 = 0 && c6 = 0))) && (x83:0 + 1 < x82:0 && x85:0 <= x84:0 && x82:0 > -1) ---------------------------------------- (18) Obligation: Rules: f6372_0_main_LT(c, x65:0, x66:0, x67:0, x68:0, x69:0, x70:0, x71:0, x64:0) -> f5959_0_main_GE(c1, x65:0, x66:0, x67:0, x68:0, c2, x69:0, x64:0) :|: c2 = x70:0 + 1 && (c1 = 0 && c = 0) && x71:0 < 0 f2644_0_main_LT(c3, x59:0, x60:0, x61:0, x62:0, x58:0) -> f2102_0_main_GE(c4, x59:0, c5, x60:0, x58:0) :|: c5 = x61:0 + 1 && (c4 = 0 && c3 = 0) && x62:0 < 0 f2644_0_main_LT(c11, x45:0, x46:0, x47:0, x48:0, x44:0) -> f5959_0_main_GE(c12, x45:0, x46:0, x47:0, x48:0, c13, c14, x44:0) :|: c14 = 2 * x45:0 + 3 * x47:0 + 4 * x48:0 && (c13 = 0 && (c12 = 0 && c11 = 0)) && (4 * x48:0 >= 0 && 2 * x45:0 + 3 * x47:0 >= 0 && 2 * x45:0 >= 0 && x48:0 > -1 && 3 * x47:0 >= 0) f6372_0_main_LT(c15, x74:0, x75:0, x76:0, x77:0, x78:0, x79:0, x80:0, x73:0) -> f6372_0_main_LT(c16, x74:0, x75:0, x76:0, x77:0, x78:0, x79:0, c17, x73:0) :|: c17 = x80:0 - 1 && (c16 = 0 && c15 = 0) && x80:0 > -1 f2102_0_main_GE(c18, i18:0:0, i78:0:0, i77:0:0, i20:0:0) -> f2644_0_main_LT(c19, i18:0:0, i77:0:0, i78:0:0, c20, i20:0:0) :|: c20 = i18:0:0 + i78:0:0 && (c19 = 0 && c18 = 0) && (i18:0:0 > -1 && i78:0:0 > -1 && i78:0:0 < i77:0:0) f5959_0_main_GE(c21, x51:0, x52:0, x53:0, x54:0, x55:0, x56:0, x50:0) -> f6372_0_main_LT(c22, x51:0, x52:0, x53:0, x54:0, x56:0, x55:0, c23, x50:0) :|: c23 = 1000 * x51:0 + 100 * x53:0 + 10 * x54:0 + x55:0 && (c22 = 0 && c21 = 0) && (x55:0 > -1 && 1000 * x51:0 + 100 * x53:0 + 10 * x54:0 >= 0 && 1000 * x51:0 + 100 * x53:0 >= 0 && 10 * x54:0 >= 0 && 1000 * x51:0 >= 0 && x56:0 > x55:0 && 100 * x53:0 >= 0) f5959_0_main_GE(c24, x89:0, x90:0, x91:0, x92:0, x93:0, x94:0, x88:0) -> f2644_0_main_LT(c25, x89:0, x90:0, x91:0, c26, x88:0) :|: c26 = x92:0 - 1 && (c25 = 0 && c24 = 0) && x94:0 <= x93:0 ---------------------------------------- (19) PolynomialOrderProcessor (EQUIVALENT) Found the following polynomial interpretation: [f6372_0_main_LT(x, x1, x2, x3, x4, x5, x6, x7, x8)] = -1 + c*x + x1 + x2 - x3 [f5959_0_main_GE(x9, x10, x11, x12, x13, x14, x15, x16)] = -1 + x10 + x11 - x12 + c9*x9 [f2644_0_main_LT(x17, x18, x19, x20, x21, x22)] = -1 + c17*x17 + x18 + x19 - x20 [f2102_0_main_GE(x23, x24, x25, x26, x27)] = -1 + c23*x23 + x24 - x25 + x26 The following rules are decreasing: f2644_0_main_LT(c3, x59:0, x60:0, x61:0, x62:0, x58:0) -> f2102_0_main_GE(c4, x59:0, c5, x60:0, x58:0) :|: c5 = x61:0 + 1 && (c4 = 0 && c3 = 0) && x62:0 < 0 The following rules are bounded: f2102_0_main_GE(c18, i18:0:0, i78:0:0, i77:0:0, i20:0:0) -> f2644_0_main_LT(c19, i18:0:0, i77:0:0, i78:0:0, c20, i20:0:0) :|: c20 = i18:0:0 + i78:0:0 && (c19 = 0 && c18 = 0) && (i18:0:0 > -1 && i78:0:0 > -1 && i78:0:0 < i77:0:0) ---------------------------------------- (20) Complex Obligation (AND) ---------------------------------------- (21) Obligation: Rules: f6372_0_main_LT(c, x65:0, x66:0, x67:0, x68:0, x69:0, x70:0, x71:0, x64:0) -> f5959_0_main_GE(c1, x65:0, x66:0, x67:0, x68:0, c2, x69:0, x64:0) :|: c2 = x70:0 + 1 && (c1 = 0 && c = 0) && x71:0 < 0 f2644_0_main_LT(c11, x45:0, x46:0, x47:0, x48:0, x44:0) -> f5959_0_main_GE(c12, x45:0, x46:0, x47:0, x48:0, c13, c14, x44:0) :|: c14 = 2 * x45:0 + 3 * x47:0 + 4 * x48:0 && (c13 = 0 && (c12 = 0 && c11 = 0)) && (4 * x48:0 >= 0 && 2 * x45:0 + 3 * x47:0 >= 0 && 2 * x45:0 >= 0 && x48:0 > -1 && 3 * x47:0 >= 0) f6372_0_main_LT(c15, x74:0, x75:0, x76:0, x77:0, x78:0, x79:0, x80:0, x73:0) -> f6372_0_main_LT(c16, x74:0, x75:0, x76:0, x77:0, x78:0, x79:0, c17, x73:0) :|: c17 = x80:0 - 1 && (c16 = 0 && c15 = 0) && x80:0 > -1 f2102_0_main_GE(c18, i18:0:0, i78:0:0, i77:0:0, i20:0:0) -> f2644_0_main_LT(c19, i18:0:0, i77:0:0, i78:0:0, c20, i20:0:0) :|: c20 = i18:0:0 + i78:0:0 && (c19 = 0 && c18 = 0) && (i18:0:0 > -1 && i78:0:0 > -1 && i78:0:0 < i77:0:0) f5959_0_main_GE(c21, x51:0, x52:0, x53:0, x54:0, x55:0, x56:0, x50:0) -> f6372_0_main_LT(c22, x51:0, x52:0, x53:0, x54:0, x56:0, x55:0, c23, x50:0) :|: c23 = 1000 * x51:0 + 100 * x53:0 + 10 * x54:0 + x55:0 && (c22 = 0 && c21 = 0) && (x55:0 > -1 && 1000 * x51:0 + 100 * x53:0 + 10 * x54:0 >= 0 && 1000 * x51:0 + 100 * x53:0 >= 0 && 10 * x54:0 >= 0 && 1000 * x51:0 >= 0 && x56:0 > x55:0 && 100 * x53:0 >= 0) f5959_0_main_GE(c24, x89:0, x90:0, x91:0, x92:0, x93:0, x94:0, x88:0) -> f2644_0_main_LT(c25, x89:0, x90:0, x91:0, c26, x88:0) :|: c26 = x92:0 - 1 && (c25 = 0 && c24 = 0) && x94:0 <= x93:0 ---------------------------------------- (22) PolynomialOrderProcessor (EQUIVALENT) Found the following polynomial interpretation: [f6372_0_main_LT(x, x1, x2, x3, x4, x5, x6, x7, x8)] = c*x [f5959_0_main_GE(x9, x10, x11, x12, x13, x14, x15, x16)] = c9*x9 [f2644_0_main_LT(x17, x18, x19, x20, x21, x22)] = c17*x17 [f2102_0_main_GE(x23, x24, x25, x26, x27)] = 1 + c23*x23 The following rules are decreasing: f2102_0_main_GE(c18, i18:0:0, i78:0:0, i77:0:0, i20:0:0) -> f2644_0_main_LT(c19, i18:0:0, i77:0:0, i78:0:0, c20, i20:0:0) :|: c20 = i18:0:0 + i78:0:0 && (c19 = 0 && c18 = 0) && (i18:0:0 > -1 && i78:0:0 > -1 && i78:0:0 < i77:0:0) The following rules are bounded: f6372_0_main_LT(c, x65:0, x66:0, x67:0, x68:0, x69:0, x70:0, x71:0, x64:0) -> f5959_0_main_GE(c1, x65:0, x66:0, x67:0, x68:0, c2, x69:0, x64:0) :|: c2 = x70:0 + 1 && (c1 = 0 && c = 0) && x71:0 < 0 f2644_0_main_LT(c11, x45:0, x46:0, x47:0, x48:0, x44:0) -> f5959_0_main_GE(c12, x45:0, x46:0, x47:0, x48:0, c13, c14, x44:0) :|: c14 = 2 * x45:0 + 3 * x47:0 + 4 * x48:0 && (c13 = 0 && (c12 = 0 && c11 = 0)) && (4 * x48:0 >= 0 && 2 * x45:0 + 3 * x47:0 >= 0 && 2 * x45:0 >= 0 && x48:0 > -1 && 3 * x47:0 >= 0) f6372_0_main_LT(c15, x74:0, x75:0, x76:0, x77:0, x78:0, x79:0, x80:0, x73:0) -> f6372_0_main_LT(c16, x74:0, x75:0, x76:0, x77:0, x78:0, x79:0, c17, x73:0) :|: c17 = x80:0 - 1 && (c16 = 0 && c15 = 0) && x80:0 > -1 f2102_0_main_GE(c18, i18:0:0, i78:0:0, i77:0:0, i20:0:0) -> f2644_0_main_LT(c19, i18:0:0, i77:0:0, i78:0:0, c20, i20:0:0) :|: c20 = i18:0:0 + i78:0:0 && (c19 = 0 && c18 = 0) && (i18:0:0 > -1 && i78:0:0 > -1 && i78:0:0 < i77:0:0) f5959_0_main_GE(c21, x51:0, x52:0, x53:0, x54:0, x55:0, x56:0, x50:0) -> f6372_0_main_LT(c22, x51:0, x52:0, x53:0, x54:0, x56:0, x55:0, c23, x50:0) :|: c23 = 1000 * x51:0 + 100 * x53:0 + 10 * x54:0 + x55:0 && (c22 = 0 && c21 = 0) && (x55:0 > -1 && 1000 * x51:0 + 100 * x53:0 + 10 * x54:0 >= 0 && 1000 * x51:0 + 100 * x53:0 >= 0 && 10 * x54:0 >= 0 && 1000 * x51:0 >= 0 && x56:0 > x55:0 && 100 * x53:0 >= 0) f5959_0_main_GE(c24, x89:0, x90:0, x91:0, x92:0, x93:0, x94:0, x88:0) -> f2644_0_main_LT(c25, x89:0, x90:0, x91:0, c26, x88:0) :|: c26 = x92:0 - 1 && (c25 = 0 && c24 = 0) && x94:0 <= x93:0 ---------------------------------------- (23) Obligation: Rules: f6372_0_main_LT(c, x65:0, x66:0, x67:0, x68:0, x69:0, x70:0, x71:0, x64:0) -> f5959_0_main_GE(c1, x65:0, x66:0, x67:0, x68:0, c2, x69:0, x64:0) :|: c2 = x70:0 + 1 && (c1 = 0 && c = 0) && x71:0 < 0 f2644_0_main_LT(c11, x45:0, x46:0, x47:0, x48:0, x44:0) -> f5959_0_main_GE(c12, x45:0, x46:0, x47:0, x48:0, c13, c14, x44:0) :|: c14 = 2 * x45:0 + 3 * x47:0 + 4 * x48:0 && (c13 = 0 && (c12 = 0 && c11 = 0)) && (4 * x48:0 >= 0 && 2 * x45:0 + 3 * x47:0 >= 0 && 2 * x45:0 >= 0 && x48:0 > -1 && 3 * x47:0 >= 0) f6372_0_main_LT(c15, x74:0, x75:0, x76:0, x77:0, x78:0, x79:0, x80:0, x73:0) -> f6372_0_main_LT(c16, x74:0, x75:0, x76:0, x77:0, x78:0, x79:0, c17, x73:0) :|: c17 = x80:0 - 1 && (c16 = 0 && c15 = 0) && x80:0 > -1 f5959_0_main_GE(c21, x51:0, x52:0, x53:0, x54:0, x55:0, x56:0, x50:0) -> f6372_0_main_LT(c22, x51:0, x52:0, x53:0, x54:0, x56:0, x55:0, c23, x50:0) :|: c23 = 1000 * x51:0 + 100 * x53:0 + 10 * x54:0 + x55:0 && (c22 = 0 && c21 = 0) && (x55:0 > -1 && 1000 * x51:0 + 100 * x53:0 + 10 * x54:0 >= 0 && 1000 * x51:0 + 100 * x53:0 >= 0 && 10 * x54:0 >= 0 && 1000 * x51:0 >= 0 && x56:0 > x55:0 && 100 * x53:0 >= 0) f5959_0_main_GE(c24, x89:0, x90:0, x91:0, x92:0, x93:0, x94:0, x88:0) -> f2644_0_main_LT(c25, x89:0, x90:0, x91:0, c26, x88:0) :|: c26 = x92:0 - 1 && (c25 = 0 && c24 = 0) && x94:0 <= x93:0 ---------------------------------------- (24) RankingReductionPairProof (EQUIVALENT) Interpretation: [ f6372_0_main_LT ] = 2*f6372_0_main_LT_2 + 2*f6372_0_main_LT_4 + 2*f6372_0_main_LT_5 + -1 [ f5959_0_main_GE ] = 2*f5959_0_main_GE_2 + 2*f5959_0_main_GE_4 + 2*f5959_0_main_GE_5 + -1 [ f2644_0_main_LT ] = 2*f2644_0_main_LT_5 + 2*f2644_0_main_LT_2 + 2*f2644_0_main_LT_4 The following rules are decreasing: f2644_0_main_LT(c11, x45:0, x46:0, x47:0, x48:0, x44:0) -> f5959_0_main_GE(c12, x45:0, x46:0, x47:0, x48:0, c13, c14, x44:0) :|: c14 = 2 * x45:0 + 3 * x47:0 + 4 * x48:0 && (c13 = 0 && (c12 = 0 && c11 = 0)) && (4 * x48:0 >= 0 && 2 * x45:0 + 3 * x47:0 >= 0 && 2 * x45:0 >= 0 && x48:0 > -1 && 3 * x47:0 >= 0) f5959_0_main_GE(c24, x89:0, x90:0, x91:0, x92:0, x93:0, x94:0, x88:0) -> f2644_0_main_LT(c25, x89:0, x90:0, x91:0, c26, x88:0) :|: c26 = x92:0 - 1 && (c25 = 0 && c24 = 0) && x94:0 <= x93:0 The following rules are bounded: f2644_0_main_LT(c11, x45:0, x46:0, x47:0, x48:0, x44:0) -> f5959_0_main_GE(c12, x45:0, x46:0, x47:0, x48:0, c13, c14, x44:0) :|: c14 = 2 * x45:0 + 3 * x47:0 + 4 * x48:0 && (c13 = 0 && (c12 = 0 && c11 = 0)) && (4 * x48:0 >= 0 && 2 * x45:0 + 3 * x47:0 >= 0 && 2 * x45:0 >= 0 && x48:0 > -1 && 3 * x47:0 >= 0) ---------------------------------------- (25) Obligation: Rules: f6372_0_main_LT(c, x65:0, x66:0, x67:0, x68:0, x69:0, x70:0, x71:0, x64:0) -> f5959_0_main_GE(c1, x65:0, x66:0, x67:0, x68:0, c2, x69:0, x64:0) :|: c2 = x70:0 + 1 && (c1 = 0 && c = 0) && x71:0 < 0 f6372_0_main_LT(c15, x74:0, x75:0, x76:0, x77:0, x78:0, x79:0, x80:0, x73:0) -> f6372_0_main_LT(c16, x74:0, x75:0, x76:0, x77:0, x78:0, x79:0, c17, x73:0) :|: c17 = x80:0 - 1 && (c16 = 0 && c15 = 0) && x80:0 > -1 f5959_0_main_GE(c21, x51:0, x52:0, x53:0, x54:0, x55:0, x56:0, x50:0) -> f6372_0_main_LT(c22, x51:0, x52:0, x53:0, x54:0, x56:0, x55:0, c23, x50:0) :|: c23 = 1000 * x51:0 + 100 * x53:0 + 10 * x54:0 + x55:0 && (c22 = 0 && c21 = 0) && (x55:0 > -1 && 1000 * x51:0 + 100 * x53:0 + 10 * x54:0 >= 0 && 1000 * x51:0 + 100 * x53:0 >= 0 && 10 * x54:0 >= 0 && 1000 * x51:0 >= 0 && x56:0 > x55:0 && 100 * x53:0 >= 0) f5959_0_main_GE(c24, x89:0, x90:0, x91:0, x92:0, x93:0, x94:0, x88:0) -> f2644_0_main_LT(c25, x89:0, x90:0, x91:0, c26, x88:0) :|: c26 = x92:0 - 1 && (c25 = 0 && c24 = 0) && x94:0 <= x93:0 ---------------------------------------- (26) PolynomialOrderProcessor (EQUIVALENT) Found the following polynomial interpretation: [f6372_0_main_LT(x, x1, x2, x3, x4, x5, x6, x7, x8)] = 1 + c*x [f5959_0_main_GE(x9, x10, x11, x12, x13, x14, x15, x16)] = 1 + c9*x9 [f2644_0_main_LT(x17, x18, x19, x20, x21, x22)] = c17*x17 The following rules are decreasing: f5959_0_main_GE(c24, x89:0, x90:0, x91:0, x92:0, x93:0, x94:0, x88:0) -> f2644_0_main_LT(c25, x89:0, x90:0, x91:0, c26, x88:0) :|: c26 = x92:0 - 1 && (c25 = 0 && c24 = 0) && x94:0 <= x93:0 The following rules are bounded: f6372_0_main_LT(c, x65:0, x66:0, x67:0, x68:0, x69:0, x70:0, x71:0, x64:0) -> f5959_0_main_GE(c1, x65:0, x66:0, x67:0, x68:0, c2, x69:0, x64:0) :|: c2 = x70:0 + 1 && (c1 = 0 && c = 0) && x71:0 < 0 f6372_0_main_LT(c15, x74:0, x75:0, x76:0, x77:0, x78:0, x79:0, x80:0, x73:0) -> f6372_0_main_LT(c16, x74:0, x75:0, x76:0, x77:0, x78:0, x79:0, c17, x73:0) :|: c17 = x80:0 - 1 && (c16 = 0 && c15 = 0) && x80:0 > -1 f5959_0_main_GE(c21, x51:0, x52:0, x53:0, x54:0, x55:0, x56:0, x50:0) -> f6372_0_main_LT(c22, x51:0, x52:0, x53:0, x54:0, x56:0, x55:0, c23, x50:0) :|: c23 = 1000 * x51:0 + 100 * x53:0 + 10 * x54:0 + x55:0 && (c22 = 0 && c21 = 0) && (x55:0 > -1 && 1000 * x51:0 + 100 * x53:0 + 10 * x54:0 >= 0 && 1000 * x51:0 + 100 * x53:0 >= 0 && 10 * x54:0 >= 0 && 1000 * x51:0 >= 0 && x56:0 > x55:0 && 100 * x53:0 >= 0) f5959_0_main_GE(c24, x89:0, x90:0, x91:0, x92:0, x93:0, x94:0, x88:0) -> f2644_0_main_LT(c25, x89:0, x90:0, x91:0, c26, x88:0) :|: c26 = x92:0 - 1 && (c25 = 0 && c24 = 0) && x94:0 <= x93:0 ---------------------------------------- (27) Obligation: Rules: f6372_0_main_LT(c, x65:0, x66:0, x67:0, x68:0, x69:0, x70:0, x71:0, x64:0) -> f5959_0_main_GE(c1, x65:0, x66:0, x67:0, x68:0, c2, x69:0, x64:0) :|: c2 = x70:0 + 1 && (c1 = 0 && c = 0) && x71:0 < 0 f6372_0_main_LT(c15, x74:0, x75:0, x76:0, x77:0, x78:0, x79:0, x80:0, x73:0) -> f6372_0_main_LT(c16, x74:0, x75:0, x76:0, x77:0, x78:0, x79:0, c17, x73:0) :|: c17 = x80:0 - 1 && (c16 = 0 && c15 = 0) && x80:0 > -1 f5959_0_main_GE(c21, x51:0, x52:0, x53:0, x54:0, x55:0, x56:0, x50:0) -> f6372_0_main_LT(c22, x51:0, x52:0, x53:0, x54:0, x56:0, x55:0, c23, x50:0) :|: c23 = 1000 * x51:0 + 100 * x53:0 + 10 * x54:0 + x55:0 && (c22 = 0 && c21 = 0) && (x55:0 > -1 && 1000 * x51:0 + 100 * x53:0 + 10 * x54:0 >= 0 && 1000 * x51:0 + 100 * x53:0 >= 0 && 10 * x54:0 >= 0 && 1000 * x51:0 >= 0 && x56:0 > x55:0 && 100 * x53:0 >= 0) ---------------------------------------- (28) RankingReductionPairProof (EQUIVALENT) Interpretation: [ f6372_0_main_LT ] = 2*f6372_0_main_LT_2 + 2*f6372_0_main_LT_4 + 2*f6372_0_main_LT_5 + 2*f6372_0_main_LT_6 + -2*f6372_0_main_LT_7 + -1 [ f5959_0_main_GE ] = 2*f5959_0_main_GE_2 + 2*f5959_0_main_GE_4 + 2*f5959_0_main_GE_5 + 2*f5959_0_main_GE_7 + -2*f5959_0_main_GE_6 The following rules are decreasing: f6372_0_main_LT(c, x65:0, x66:0, x67:0, x68:0, x69:0, x70:0, x71:0, x64:0) -> f5959_0_main_GE(c1, x65:0, x66:0, x67:0, x68:0, c2, x69:0, x64:0) :|: c2 = x70:0 + 1 && (c1 = 0 && c = 0) && x71:0 < 0 f5959_0_main_GE(c21, x51:0, x52:0, x53:0, x54:0, x55:0, x56:0, x50:0) -> f6372_0_main_LT(c22, x51:0, x52:0, x53:0, x54:0, x56:0, x55:0, c23, x50:0) :|: c23 = 1000 * x51:0 + 100 * x53:0 + 10 * x54:0 + x55:0 && (c22 = 0 && c21 = 0) && (x55:0 > -1 && 1000 * x51:0 + 100 * x53:0 + 10 * x54:0 >= 0 && 1000 * x51:0 + 100 * x53:0 >= 0 && 10 * x54:0 >= 0 && 1000 * x51:0 >= 0 && x56:0 > x55:0 && 100 * x53:0 >= 0) The following rules are bounded: f5959_0_main_GE(c21, x51:0, x52:0, x53:0, x54:0, x55:0, x56:0, x50:0) -> f6372_0_main_LT(c22, x51:0, x52:0, x53:0, x54:0, x56:0, x55:0, c23, x50:0) :|: c23 = 1000 * x51:0 + 100 * x53:0 + 10 * x54:0 + x55:0 && (c22 = 0 && c21 = 0) && (x55:0 > -1 && 1000 * x51:0 + 100 * x53:0 + 10 * x54:0 >= 0 && 1000 * x51:0 + 100 * x53:0 >= 0 && 10 * x54:0 >= 0 && 1000 * x51:0 >= 0 && x56:0 > x55:0 && 100 * x53:0 >= 0) ---------------------------------------- (29) Obligation: Rules: f6372_0_main_LT(c, x65:0, x66:0, x67:0, x68:0, x69:0, x70:0, x71:0, x64:0) -> f5959_0_main_GE(c1, x65:0, x66:0, x67:0, x68:0, c2, x69:0, x64:0) :|: c2 = x70:0 + 1 && (c1 = 0 && c = 0) && x71:0 < 0 f6372_0_main_LT(c15, x74:0, x75:0, x76:0, x77:0, x78:0, x79:0, x80:0, x73:0) -> f6372_0_main_LT(c16, x74:0, x75:0, x76:0, x77:0, x78:0, x79:0, c17, x73:0) :|: c17 = x80:0 - 1 && (c16 = 0 && c15 = 0) && x80:0 > -1 ---------------------------------------- (30) RankingReductionPairProof (EQUIVALENT) Interpretation: [ f6372_0_main_LT ] = 0 [ f5959_0_main_GE ] = -1 The following rules are decreasing: f6372_0_main_LT(c, x65:0, x66:0, x67:0, x68:0, x69:0, x70:0, x71:0, x64:0) -> f5959_0_main_GE(c1, x65:0, x66:0, x67:0, x68:0, c2, x69:0, x64:0) :|: c2 = x70:0 + 1 && (c1 = 0 && c = 0) && x71:0 < 0 The following rules are bounded: f6372_0_main_LT(c, x65:0, x66:0, x67:0, x68:0, x69:0, x70:0, x71:0, x64:0) -> f5959_0_main_GE(c1, x65:0, x66:0, x67:0, x68:0, c2, x69:0, x64:0) :|: c2 = x70:0 + 1 && (c1 = 0 && c = 0) && x71:0 < 0 f6372_0_main_LT(c15, x74:0, x75:0, x76:0, x77:0, x78:0, x79:0, x80:0, x73:0) -> f6372_0_main_LT(c16, x74:0, x75:0, x76:0, x77:0, x78:0, x79:0, c17, x73:0) :|: c17 = x80:0 - 1 && (c16 = 0 && c15 = 0) && x80:0 > -1 ---------------------------------------- (31) Obligation: Rules: f6372_0_main_LT(c15, x74:0, x75:0, x76:0, x77:0, x78:0, x79:0, x80:0, x73:0) -> f6372_0_main_LT(c16, x74:0, x75:0, x76:0, x77:0, x78:0, x79:0, c17, x73:0) :|: c17 = x80:0 - 1 && (c16 = 0 && c15 = 0) && x80:0 > -1 ---------------------------------------- (32) RankingReductionPairProof (EQUIVALENT) Interpretation: [ f6372_0_main_LT ] = f6372_0_main_LT_8 The following rules are decreasing: f6372_0_main_LT(c15, x74:0, x75:0, x76:0, x77:0, x78:0, x79:0, x80:0, x73:0) -> f6372_0_main_LT(c16, x74:0, x75:0, x76:0, x77:0, x78:0, x79:0, c17, x73:0) :|: c17 = x80:0 - 1 && (c16 = 0 && c15 = 0) && x80:0 > -1 The following rules are bounded: f6372_0_main_LT(c15, x74:0, x75:0, x76:0, x77:0, x78:0, x79:0, x80:0, x73:0) -> f6372_0_main_LT(c16, x74:0, x75:0, x76:0, x77:0, x78:0, x79:0, c17, x73:0) :|: c17 = x80:0 - 1 && (c16 = 0 && c15 = 0) && x80:0 > -1 ---------------------------------------- (33) YES ---------------------------------------- (34) Obligation: Rules: f6372_0_main_LT(c, x65:0, x66:0, x67:0, x68:0, x69:0, x70:0, x71:0, x64:0) -> f5959_0_main_GE(c1, x65:0, x66:0, x67:0, x68:0, c2, x69:0, x64:0) :|: c2 = x70:0 + 1 && (c1 = 0 && c = 0) && x71:0 < 0 f2644_0_main_LT(c3, x59:0, x60:0, x61:0, x62:0, x58:0) -> f2102_0_main_GE(c4, x59:0, c5, x60:0, x58:0) :|: c5 = x61:0 + 1 && (c4 = 0 && c3 = 0) && x62:0 < 0 f2644_0_main_LT(c11, x45:0, x46:0, x47:0, x48:0, x44:0) -> f5959_0_main_GE(c12, x45:0, x46:0, x47:0, x48:0, c13, c14, x44:0) :|: c14 = 2 * x45:0 + 3 * x47:0 + 4 * x48:0 && (c13 = 0 && (c12 = 0 && c11 = 0)) && (4 * x48:0 >= 0 && 2 * x45:0 + 3 * x47:0 >= 0 && 2 * x45:0 >= 0 && x48:0 > -1 && 3 * x47:0 >= 0) f6372_0_main_LT(c15, x74:0, x75:0, x76:0, x77:0, x78:0, x79:0, x80:0, x73:0) -> f6372_0_main_LT(c16, x74:0, x75:0, x76:0, x77:0, x78:0, x79:0, c17, x73:0) :|: c17 = x80:0 - 1 && (c16 = 0 && c15 = 0) && x80:0 > -1 f5959_0_main_GE(c21, x51:0, x52:0, x53:0, x54:0, x55:0, x56:0, x50:0) -> f6372_0_main_LT(c22, x51:0, x52:0, x53:0, x54:0, x56:0, x55:0, c23, x50:0) :|: c23 = 1000 * x51:0 + 100 * x53:0 + 10 * x54:0 + x55:0 && (c22 = 0 && c21 = 0) && (x55:0 > -1 && 1000 * x51:0 + 100 * x53:0 + 10 * x54:0 >= 0 && 1000 * x51:0 + 100 * x53:0 >= 0 && 10 * x54:0 >= 0 && 1000 * x51:0 >= 0 && x56:0 > x55:0 && 100 * x53:0 >= 0) f5959_0_main_GE(c24, x89:0, x90:0, x91:0, x92:0, x93:0, x94:0, x88:0) -> f2644_0_main_LT(c25, x89:0, x90:0, x91:0, c26, x88:0) :|: c26 = x92:0 - 1 && (c25 = 0 && c24 = 0) && x94:0 <= x93:0 ---------------------------------------- (35) RankingReductionPairProof (EQUIVALENT) Interpretation: [ f6372_0_main_LT ] = 1 [ f5959_0_main_GE ] = 1 [ f2644_0_main_LT ] = 1 [ f2102_0_main_GE ] = 0 The following rules are decreasing: f2644_0_main_LT(c3, x59:0, x60:0, x61:0, x62:0, x58:0) -> f2102_0_main_GE(c4, x59:0, c5, x60:0, x58:0) :|: c5 = x61:0 + 1 && (c4 = 0 && c3 = 0) && x62:0 < 0 The following rules are bounded: f6372_0_main_LT(c, x65:0, x66:0, x67:0, x68:0, x69:0, x70:0, x71:0, x64:0) -> f5959_0_main_GE(c1, x65:0, x66:0, x67:0, x68:0, c2, x69:0, x64:0) :|: c2 = x70:0 + 1 && (c1 = 0 && c = 0) && x71:0 < 0 f2644_0_main_LT(c3, x59:0, x60:0, x61:0, x62:0, x58:0) -> f2102_0_main_GE(c4, x59:0, c5, x60:0, x58:0) :|: c5 = x61:0 + 1 && (c4 = 0 && c3 = 0) && x62:0 < 0 f2644_0_main_LT(c11, x45:0, x46:0, x47:0, x48:0, x44:0) -> f5959_0_main_GE(c12, x45:0, x46:0, x47:0, x48:0, c13, c14, x44:0) :|: c14 = 2 * x45:0 + 3 * x47:0 + 4 * x48:0 && (c13 = 0 && (c12 = 0 && c11 = 0)) && (4 * x48:0 >= 0 && 2 * x45:0 + 3 * x47:0 >= 0 && 2 * x45:0 >= 0 && x48:0 > -1 && 3 * x47:0 >= 0) f6372_0_main_LT(c15, x74:0, x75:0, x76:0, x77:0, x78:0, x79:0, x80:0, x73:0) -> f6372_0_main_LT(c16, x74:0, x75:0, x76:0, x77:0, x78:0, x79:0, c17, x73:0) :|: c17 = x80:0 - 1 && (c16 = 0 && c15 = 0) && x80:0 > -1 f5959_0_main_GE(c21, x51:0, x52:0, x53:0, x54:0, x55:0, x56:0, x50:0) -> f6372_0_main_LT(c22, x51:0, x52:0, x53:0, x54:0, x56:0, x55:0, c23, x50:0) :|: c23 = 1000 * x51:0 + 100 * x53:0 + 10 * x54:0 + x55:0 && (c22 = 0 && c21 = 0) && (x55:0 > -1 && 1000 * x51:0 + 100 * x53:0 + 10 * x54:0 >= 0 && 1000 * x51:0 + 100 * x53:0 >= 0 && 10 * x54:0 >= 0 && 1000 * x51:0 >= 0 && x56:0 > x55:0 && 100 * x53:0 >= 0) f5959_0_main_GE(c24, x89:0, x90:0, x91:0, x92:0, x93:0, x94:0, x88:0) -> f2644_0_main_LT(c25, x89:0, x90:0, x91:0, c26, x88:0) :|: c26 = x92:0 - 1 && (c25 = 0 && c24 = 0) && x94:0 <= x93:0 ---------------------------------------- (36) Obligation: Rules: f6372_0_main_LT(c, x65:0, x66:0, x67:0, x68:0, x69:0, x70:0, x71:0, x64:0) -> f5959_0_main_GE(c1, x65:0, x66:0, x67:0, x68:0, c2, x69:0, x64:0) :|: c2 = x70:0 + 1 && (c1 = 0 && c = 0) && x71:0 < 0 f2644_0_main_LT(c11, x45:0, x46:0, x47:0, x48:0, x44:0) -> f5959_0_main_GE(c12, x45:0, x46:0, x47:0, x48:0, c13, c14, x44:0) :|: c14 = 2 * x45:0 + 3 * x47:0 + 4 * x48:0 && (c13 = 0 && (c12 = 0 && c11 = 0)) && (4 * x48:0 >= 0 && 2 * x45:0 + 3 * x47:0 >= 0 && 2 * x45:0 >= 0 && x48:0 > -1 && 3 * x47:0 >= 0) f6372_0_main_LT(c15, x74:0, x75:0, x76:0, x77:0, x78:0, x79:0, x80:0, x73:0) -> f6372_0_main_LT(c16, x74:0, x75:0, x76:0, x77:0, x78:0, x79:0, c17, x73:0) :|: c17 = x80:0 - 1 && (c16 = 0 && c15 = 0) && x80:0 > -1 f5959_0_main_GE(c21, x51:0, x52:0, x53:0, x54:0, x55:0, x56:0, x50:0) -> f6372_0_main_LT(c22, x51:0, x52:0, x53:0, x54:0, x56:0, x55:0, c23, x50:0) :|: c23 = 1000 * x51:0 + 100 * x53:0 + 10 * x54:0 + x55:0 && (c22 = 0 && c21 = 0) && (x55:0 > -1 && 1000 * x51:0 + 100 * x53:0 + 10 * x54:0 >= 0 && 1000 * x51:0 + 100 * x53:0 >= 0 && 10 * x54:0 >= 0 && 1000 * x51:0 >= 0 && x56:0 > x55:0 && 100 * x53:0 >= 0) f5959_0_main_GE(c24, x89:0, x90:0, x91:0, x92:0, x93:0, x94:0, x88:0) -> f2644_0_main_LT(c25, x89:0, x90:0, x91:0, c26, x88:0) :|: c26 = x92:0 - 1 && (c25 = 0 && c24 = 0) && x94:0 <= x93:0 ---------------------------------------- (37) RankingReductionPairProof (EQUIVALENT) Interpretation: [ f6372_0_main_LT ] = 2*f6372_0_main_LT_2 + 2*f6372_0_main_LT_4 + 2*f6372_0_main_LT_5 + -1 [ f5959_0_main_GE ] = 2*f5959_0_main_GE_2 + 2*f5959_0_main_GE_4 + 2*f5959_0_main_GE_5 + -1 [ f2644_0_main_LT ] = 2*f2644_0_main_LT_5 + 2*f2644_0_main_LT_2 + 2*f2644_0_main_LT_4 The following rules are decreasing: f2644_0_main_LT(c11, x45:0, x46:0, x47:0, x48:0, x44:0) -> f5959_0_main_GE(c12, x45:0, x46:0, x47:0, x48:0, c13, c14, x44:0) :|: c14 = 2 * x45:0 + 3 * x47:0 + 4 * x48:0 && (c13 = 0 && (c12 = 0 && c11 = 0)) && (4 * x48:0 >= 0 && 2 * x45:0 + 3 * x47:0 >= 0 && 2 * x45:0 >= 0 && x48:0 > -1 && 3 * x47:0 >= 0) f5959_0_main_GE(c24, x89:0, x90:0, x91:0, x92:0, x93:0, x94:0, x88:0) -> f2644_0_main_LT(c25, x89:0, x90:0, x91:0, c26, x88:0) :|: c26 = x92:0 - 1 && (c25 = 0 && c24 = 0) && x94:0 <= x93:0 The following rules are bounded: f2644_0_main_LT(c11, x45:0, x46:0, x47:0, x48:0, x44:0) -> f5959_0_main_GE(c12, x45:0, x46:0, x47:0, x48:0, c13, c14, x44:0) :|: c14 = 2 * x45:0 + 3 * x47:0 + 4 * x48:0 && (c13 = 0 && (c12 = 0 && c11 = 0)) && (4 * x48:0 >= 0 && 2 * x45:0 + 3 * x47:0 >= 0 && 2 * x45:0 >= 0 && x48:0 > -1 && 3 * x47:0 >= 0) ---------------------------------------- (38) Obligation: Rules: f6372_0_main_LT(c, x65:0, x66:0, x67:0, x68:0, x69:0, x70:0, x71:0, x64:0) -> f5959_0_main_GE(c1, x65:0, x66:0, x67:0, x68:0, c2, x69:0, x64:0) :|: c2 = x70:0 + 1 && (c1 = 0 && c = 0) && x71:0 < 0 f6372_0_main_LT(c15, x74:0, x75:0, x76:0, x77:0, x78:0, x79:0, x80:0, x73:0) -> f6372_0_main_LT(c16, x74:0, x75:0, x76:0, x77:0, x78:0, x79:0, c17, x73:0) :|: c17 = x80:0 - 1 && (c16 = 0 && c15 = 0) && x80:0 > -1 f5959_0_main_GE(c21, x51:0, x52:0, x53:0, x54:0, x55:0, x56:0, x50:0) -> f6372_0_main_LT(c22, x51:0, x52:0, x53:0, x54:0, x56:0, x55:0, c23, x50:0) :|: c23 = 1000 * x51:0 + 100 * x53:0 + 10 * x54:0 + x55:0 && (c22 = 0 && c21 = 0) && (x55:0 > -1 && 1000 * x51:0 + 100 * x53:0 + 10 * x54:0 >= 0 && 1000 * x51:0 + 100 * x53:0 >= 0 && 10 * x54:0 >= 0 && 1000 * x51:0 >= 0 && x56:0 > x55:0 && 100 * x53:0 >= 0) f5959_0_main_GE(c24, x89:0, x90:0, x91:0, x92:0, x93:0, x94:0, x88:0) -> f2644_0_main_LT(c25, x89:0, x90:0, x91:0, c26, x88:0) :|: c26 = x92:0 - 1 && (c25 = 0 && c24 = 0) && x94:0 <= x93:0 ---------------------------------------- (39) PolynomialOrderProcessor (EQUIVALENT) Found the following polynomial interpretation: [f6372_0_main_LT(x, x1, x2, x3, x4, x5, x6, x7, x8)] = 1 + c*x [f5959_0_main_GE(x9, x10, x11, x12, x13, x14, x15, x16)] = 1 + c9*x9 [f2644_0_main_LT(x17, x18, x19, x20, x21, x22)] = c17*x17 The following rules are decreasing: f5959_0_main_GE(c24, x89:0, x90:0, x91:0, x92:0, x93:0, x94:0, x88:0) -> f2644_0_main_LT(c25, x89:0, x90:0, x91:0, c26, x88:0) :|: c26 = x92:0 - 1 && (c25 = 0 && c24 = 0) && x94:0 <= x93:0 The following rules are bounded: f6372_0_main_LT(c, x65:0, x66:0, x67:0, x68:0, x69:0, x70:0, x71:0, x64:0) -> f5959_0_main_GE(c1, x65:0, x66:0, x67:0, x68:0, c2, x69:0, x64:0) :|: c2 = x70:0 + 1 && (c1 = 0 && c = 0) && x71:0 < 0 f6372_0_main_LT(c15, x74:0, x75:0, x76:0, x77:0, x78:0, x79:0, x80:0, x73:0) -> f6372_0_main_LT(c16, x74:0, x75:0, x76:0, x77:0, x78:0, x79:0, c17, x73:0) :|: c17 = x80:0 - 1 && (c16 = 0 && c15 = 0) && x80:0 > -1 f5959_0_main_GE(c21, x51:0, x52:0, x53:0, x54:0, x55:0, x56:0, x50:0) -> f6372_0_main_LT(c22, x51:0, x52:0, x53:0, x54:0, x56:0, x55:0, c23, x50:0) :|: c23 = 1000 * x51:0 + 100 * x53:0 + 10 * x54:0 + x55:0 && (c22 = 0 && c21 = 0) && (x55:0 > -1 && 1000 * x51:0 + 100 * x53:0 + 10 * x54:0 >= 0 && 1000 * x51:0 + 100 * x53:0 >= 0 && 10 * x54:0 >= 0 && 1000 * x51:0 >= 0 && x56:0 > x55:0 && 100 * x53:0 >= 0) f5959_0_main_GE(c24, x89:0, x90:0, x91:0, x92:0, x93:0, x94:0, x88:0) -> f2644_0_main_LT(c25, x89:0, x90:0, x91:0, c26, x88:0) :|: c26 = x92:0 - 1 && (c25 = 0 && c24 = 0) && x94:0 <= x93:0 ---------------------------------------- (40) Obligation: Rules: f6372_0_main_LT(c, x65:0, x66:0, x67:0, x68:0, x69:0, x70:0, x71:0, x64:0) -> f5959_0_main_GE(c1, x65:0, x66:0, x67:0, x68:0, c2, x69:0, x64:0) :|: c2 = x70:0 + 1 && (c1 = 0 && c = 0) && x71:0 < 0 f6372_0_main_LT(c15, x74:0, x75:0, x76:0, x77:0, x78:0, x79:0, x80:0, x73:0) -> f6372_0_main_LT(c16, x74:0, x75:0, x76:0, x77:0, x78:0, x79:0, c17, x73:0) :|: c17 = x80:0 - 1 && (c16 = 0 && c15 = 0) && x80:0 > -1 f5959_0_main_GE(c21, x51:0, x52:0, x53:0, x54:0, x55:0, x56:0, x50:0) -> f6372_0_main_LT(c22, x51:0, x52:0, x53:0, x54:0, x56:0, x55:0, c23, x50:0) :|: c23 = 1000 * x51:0 + 100 * x53:0 + 10 * x54:0 + x55:0 && (c22 = 0 && c21 = 0) && (x55:0 > -1 && 1000 * x51:0 + 100 * x53:0 + 10 * x54:0 >= 0 && 1000 * x51:0 + 100 * x53:0 >= 0 && 10 * x54:0 >= 0 && 1000 * x51:0 >= 0 && x56:0 > x55:0 && 100 * x53:0 >= 0) ---------------------------------------- (41) RankingReductionPairProof (EQUIVALENT) Interpretation: [ f6372_0_main_LT ] = 2*f6372_0_main_LT_2 + 2*f6372_0_main_LT_4 + 2*f6372_0_main_LT_5 + 2*f6372_0_main_LT_6 + -2*f6372_0_main_LT_7 + -1 [ f5959_0_main_GE ] = 2*f5959_0_main_GE_2 + 2*f5959_0_main_GE_4 + 2*f5959_0_main_GE_5 + 2*f5959_0_main_GE_7 + -2*f5959_0_main_GE_6 The following rules are decreasing: f6372_0_main_LT(c, x65:0, x66:0, x67:0, x68:0, x69:0, x70:0, x71:0, x64:0) -> f5959_0_main_GE(c1, x65:0, x66:0, x67:0, x68:0, c2, x69:0, x64:0) :|: c2 = x70:0 + 1 && (c1 = 0 && c = 0) && x71:0 < 0 f5959_0_main_GE(c21, x51:0, x52:0, x53:0, x54:0, x55:0, x56:0, x50:0) -> f6372_0_main_LT(c22, x51:0, x52:0, x53:0, x54:0, x56:0, x55:0, c23, x50:0) :|: c23 = 1000 * x51:0 + 100 * x53:0 + 10 * x54:0 + x55:0 && (c22 = 0 && c21 = 0) && (x55:0 > -1 && 1000 * x51:0 + 100 * x53:0 + 10 * x54:0 >= 0 && 1000 * x51:0 + 100 * x53:0 >= 0 && 10 * x54:0 >= 0 && 1000 * x51:0 >= 0 && x56:0 > x55:0 && 100 * x53:0 >= 0) The following rules are bounded: f5959_0_main_GE(c21, x51:0, x52:0, x53:0, x54:0, x55:0, x56:0, x50:0) -> f6372_0_main_LT(c22, x51:0, x52:0, x53:0, x54:0, x56:0, x55:0, c23, x50:0) :|: c23 = 1000 * x51:0 + 100 * x53:0 + 10 * x54:0 + x55:0 && (c22 = 0 && c21 = 0) && (x55:0 > -1 && 1000 * x51:0 + 100 * x53:0 + 10 * x54:0 >= 0 && 1000 * x51:0 + 100 * x53:0 >= 0 && 10 * x54:0 >= 0 && 1000 * x51:0 >= 0 && x56:0 > x55:0 && 100 * x53:0 >= 0) ---------------------------------------- (42) Obligation: Rules: f6372_0_main_LT(c, x65:0, x66:0, x67:0, x68:0, x69:0, x70:0, x71:0, x64:0) -> f5959_0_main_GE(c1, x65:0, x66:0, x67:0, x68:0, c2, x69:0, x64:0) :|: c2 = x70:0 + 1 && (c1 = 0 && c = 0) && x71:0 < 0 f6372_0_main_LT(c15, x74:0, x75:0, x76:0, x77:0, x78:0, x79:0, x80:0, x73:0) -> f6372_0_main_LT(c16, x74:0, x75:0, x76:0, x77:0, x78:0, x79:0, c17, x73:0) :|: c17 = x80:0 - 1 && (c16 = 0 && c15 = 0) && x80:0 > -1 ---------------------------------------- (43) PolynomialOrderProcessor (EQUIVALENT) Found the following polynomial interpretation: [f6372_0_main_LT(x, x1, x2, x3, x4, x5, x6, x7, x8)] = 1 + c*x [f5959_0_main_GE(x9, x10, x11, x12, x13, x14, x15, x16)] = c9*x9 The following rules are decreasing: f6372_0_main_LT(c, x65:0, x66:0, x67:0, x68:0, x69:0, x70:0, x71:0, x64:0) -> f5959_0_main_GE(c1, x65:0, x66:0, x67:0, x68:0, c2, x69:0, x64:0) :|: c2 = x70:0 + 1 && (c1 = 0 && c = 0) && x71:0 < 0 The following rules are bounded: f6372_0_main_LT(c, x65:0, x66:0, x67:0, x68:0, x69:0, x70:0, x71:0, x64:0) -> f5959_0_main_GE(c1, x65:0, x66:0, x67:0, x68:0, c2, x69:0, x64:0) :|: c2 = x70:0 + 1 && (c1 = 0 && c = 0) && x71:0 < 0 f6372_0_main_LT(c15, x74:0, x75:0, x76:0, x77:0, x78:0, x79:0, x80:0, x73:0) -> f6372_0_main_LT(c16, x74:0, x75:0, x76:0, x77:0, x78:0, x79:0, c17, x73:0) :|: c17 = x80:0 - 1 && (c16 = 0 && c15 = 0) && x80:0 > -1 ---------------------------------------- (44) Obligation: Rules: f6372_0_main_LT(c15, x74:0, x75:0, x76:0, x77:0, x78:0, x79:0, x80:0, x73:0) -> f6372_0_main_LT(c16, x74:0, x75:0, x76:0, x77:0, x78:0, x79:0, c17, x73:0) :|: c17 = x80:0 - 1 && (c16 = 0 && c15 = 0) && x80:0 > -1 ---------------------------------------- (45) PolynomialOrderProcessor (EQUIVALENT) Found the following polynomial interpretation: [f6372_0_main_LT(x, x1, x2, x3, x4, x5, x6, x7, x8)] = c*x + x7 The following rules are decreasing: f6372_0_main_LT(c15, x74:0, x75:0, x76:0, x77:0, x78:0, x79:0, x80:0, x73:0) -> f6372_0_main_LT(c16, x74:0, x75:0, x76:0, x77:0, x78:0, x79:0, c17, x73:0) :|: c17 = x80:0 - 1 && (c16 = 0 && c15 = 0) && x80:0 > -1 The following rules are bounded: f6372_0_main_LT(c15, x74:0, x75:0, x76:0, x77:0, x78:0, x79:0, x80:0, x73:0) -> f6372_0_main_LT(c16, x74:0, x75:0, x76:0, x77:0, x78:0, x79:0, c17, x73:0) :|: c17 = x80:0 - 1 && (c16 = 0 && c15 = 0) && x80:0 > -1 ---------------------------------------- (46) YES