/export/starexec/sandbox2/solver/bin/starexec_run_standard /export/starexec/sandbox2/benchmark/theBenchmark.jar /export/starexec/sandbox2/output/output_files -------------------------------------------------------------------------------- YES proof of /export/starexec/sandbox2/benchmark/theBenchmark.jar # AProVE Commit ID: 794c25de1cacf0d048858bcd21c9a779e1221865 marcel 20200619 unpublished dirty termination of the given Bare JBC problem could be proven: (0) Bare JBC problem (1) BareJBCToJBCProof [EQUIVALENT, 96 ms] (2) JBC problem (3) JBCToGraph [EQUIVALENT, 635 ms] (4) JBCTerminationGraph (5) TerminationGraphToSCCProof [SOUND, 0 ms] (6) JBCTerminationSCC (7) SCCToIRSProof [SOUND, 240 ms] (8) IRSwT (9) IRSFormatTransformerProof [EQUIVALENT, 0 ms] (10) IRSwT (11) IRSwTTerminationDigraphProof [EQUIVALENT, 255 ms] (12) IRSwT (13) IntTRSCompressionProof [EQUIVALENT, 0 ms] (14) IRSwT (15) TempFilterProof [SOUND, 463 ms] (16) IntTRS (17) PolynomialOrderProcessor [EQUIVALENT, 39 ms] (18) IntTRS (19) PolynomialOrderProcessor [EQUIVALENT, 0 ms] (20) IntTRS (21) PolynomialOrderProcessor [EQUIVALENT, 18 ms] (22) IntTRS (23) PolynomialOrderProcessor [EQUIVALENT, 0 ms] (24) AND (25) IntTRS (26) RankingReductionPairProof [EQUIVALENT, 19 ms] (27) IntTRS (28) PolynomialOrderProcessor [EQUIVALENT, 0 ms] (29) AND (30) IntTRS (31) RankingReductionPairProof [EQUIVALENT, 7 ms] (32) YES (33) IntTRS (34) RankingReductionPairProof [EQUIVALENT, 0 ms] (35) IntTRS (36) RankingReductionPairProof [EQUIVALENT, 0 ms] (37) YES (38) IntTRS (39) PolynomialOrderProcessor [EQUIVALENT, 13 ms] (40) IntTRS (41) RankingReductionPairProof [EQUIVALENT, 0 ms] (42) IntTRS (43) RankingReductionPairProof [EQUIVALENT, 9 ms] (44) IntTRS (45) PolynomialOrderProcessor [EQUIVALENT, 0 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: f381_0_main_Load(EOS(STATIC_381), java.lang.Object(o12sub), java.lang.Object(o12sub), i18, i18) -> f383_0_main_ArrayLength(EOS(STATIC_383), java.lang.Object(o12sub), java.lang.Object(o12sub), i18, i18, java.lang.Object(o12sub)) :|: TRUE f383_0_main_ArrayLength(EOS(STATIC_383), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i18, java.lang.Object(ARRAY(i20))) -> f386_0_main_ArrayLength(EOS(STATIC_386), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i18, java.lang.Object(ARRAY(i20))) :|: i20 >= 0 f386_0_main_ArrayLength(EOS(STATIC_386), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i18, java.lang.Object(ARRAY(i20))) -> f388_0_main_GE(EOS(STATIC_388), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i18, i20) :|: i20 >= 0 f388_0_main_GE(EOS(STATIC_388), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i18, i20) -> f405_0_main_GE(EOS(STATIC_405), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i18, i20) :|: i18 < i20 f405_0_main_GE(EOS(STATIC_405), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i18, i20) -> f429_0_main_ConstantStackPush(EOS(STATIC_429), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18) :|: i18 < i20 f429_0_main_ConstantStackPush(EOS(STATIC_429), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18) -> f433_0_main_Load(EOS(STATIC_433), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, 2) :|: TRUE f433_0_main_Load(EOS(STATIC_433), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, matching1) -> f435_0_main_IntArithmetic(EOS(STATIC_435), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, 2, i18) :|: TRUE && matching1 = 2 f435_0_main_IntArithmetic(EOS(STATIC_435), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, matching1, i18) -> f438_0_main_Store(EOS(STATIC_438), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, 2 * i18) :|: TRUE && matching1 = 2 f438_0_main_Store(EOS(STATIC_438), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i21) -> f441_0_main_ConstantStackPush(EOS(STATIC_441), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i21) :|: TRUE f441_0_main_ConstantStackPush(EOS(STATIC_441), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i21) -> f443_0_main_Store(EOS(STATIC_443), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i21, 0) :|: TRUE f443_0_main_Store(EOS(STATIC_443), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i21, matching1) -> f446_0_main_Load(EOS(STATIC_446), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i21, 0) :|: TRUE && matching1 = 0 f446_0_main_Load(EOS(STATIC_446), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i21, matching1) -> f2250_0_main_Load(EOS(STATIC_2250), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i21, 0) :|: TRUE && matching1 = 0 f2250_0_main_Load(EOS(STATIC_2250), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i35, i36) -> f3189_0_main_Load(EOS(STATIC_3189), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i35, i36) :|: TRUE f3189_0_main_Load(EOS(STATIC_3189), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i56, i57) -> f3638_0_main_Load(EOS(STATIC_3638), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i56, i57) :|: TRUE f3638_0_main_Load(EOS(STATIC_3638), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78) -> f3646_0_main_Load(EOS(STATIC_3646), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i78) :|: TRUE f3646_0_main_Load(EOS(STATIC_3646), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i78) -> f3649_0_main_GE(EOS(STATIC_3649), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i78, i77) :|: TRUE f3649_0_main_GE(EOS(STATIC_3649), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i78, i77) -> f3650_0_main_GE(EOS(STATIC_3650), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i78, i77) :|: i78 >= i77 f3649_0_main_GE(EOS(STATIC_3649), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i78, i77) -> f3651_0_main_GE(EOS(STATIC_3651), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i78, i77) :|: i78 < i77 f3650_0_main_GE(EOS(STATIC_3650), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i78, i77) -> f3761_0_main_Inc(EOS(STATIC_3761), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18) :|: i78 >= i77 f3761_0_main_Inc(EOS(STATIC_3761), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18) -> f3763_0_main_JMP(EOS(STATIC_3763), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18 + 1) :|: TRUE f3763_0_main_JMP(EOS(STATIC_3763), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i82) -> f3765_0_main_Load(EOS(STATIC_3765), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i82) :|: TRUE f3765_0_main_Load(EOS(STATIC_3765), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i82) -> f376_0_main_Load(EOS(STATIC_376), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i82) :|: TRUE f376_0_main_Load(EOS(STATIC_376), java.lang.Object(o12sub), java.lang.Object(o12sub), i18) -> f381_0_main_Load(EOS(STATIC_381), java.lang.Object(o12sub), java.lang.Object(o12sub), i18, i18) :|: TRUE f3651_0_main_GE(EOS(STATIC_3651), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i78, i77) -> f3762_0_main_Load(EOS(STATIC_3762), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78) :|: i78 < i77 f3762_0_main_Load(EOS(STATIC_3762), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78) -> f3764_0_main_Load(EOS(STATIC_3764), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i18) :|: TRUE f3764_0_main_Load(EOS(STATIC_3764), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i18) -> f3766_0_main_IntArithmetic(EOS(STATIC_3766), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i18, i78) :|: TRUE f3766_0_main_IntArithmetic(EOS(STATIC_3766), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i18, i78) -> f3812_0_main_Store(EOS(STATIC_3812), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i18 + i78) :|: i18 >= 0 && i78 >= 0 f3812_0_main_Store(EOS(STATIC_3812), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i84) -> f3813_0_main_Load(EOS(STATIC_3813), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i84) :|: TRUE f3813_0_main_Load(EOS(STATIC_3813), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i84) -> f3998_0_main_Load(EOS(STATIC_3998), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i84) :|: TRUE f3998_0_main_Load(EOS(STATIC_3998), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i92) -> f4006_0_main_LT(EOS(STATIC_4006), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i92, i92) :|: TRUE f4006_0_main_LT(EOS(STATIC_4006), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i94, i94) -> f4014_0_main_LT(EOS(STATIC_4014), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i94, i94) :|: TRUE f4006_0_main_LT(EOS(STATIC_4006), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i95) -> f4015_0_main_LT(EOS(STATIC_4015), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i95) :|: TRUE f4014_0_main_LT(EOS(STATIC_4014), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i94, i94) -> f4017_0_main_Inc(EOS(STATIC_4017), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78) :|: i94 < 0 f4017_0_main_Inc(EOS(STATIC_4017), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78) -> f4019_0_main_JMP(EOS(STATIC_4019), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78 + 1) :|: TRUE f4019_0_main_JMP(EOS(STATIC_4019), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i96) -> f4189_0_main_Load(EOS(STATIC_4189), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i96) :|: TRUE f4189_0_main_Load(EOS(STATIC_4189), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i96) -> f3638_0_main_Load(EOS(STATIC_3638), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i96) :|: TRUE f4015_0_main_LT(EOS(STATIC_4015), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i95) -> f4018_0_main_ConstantStackPush(EOS(STATIC_4018), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95) :|: i95 >= 0 f4018_0_main_ConstantStackPush(EOS(STATIC_4018), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95) -> f4020_0_main_Load(EOS(STATIC_4020), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, 2) :|: TRUE f4020_0_main_Load(EOS(STATIC_4020), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, matching1) -> f4193_0_main_IntArithmetic(EOS(STATIC_4193), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, 2, i18) :|: TRUE && matching1 = 2 f4193_0_main_IntArithmetic(EOS(STATIC_4193), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, matching1, i18) -> f4197_0_main_ConstantStackPush(EOS(STATIC_4197), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, 2 * i18) :|: TRUE && matching1 = 2 f4197_0_main_ConstantStackPush(EOS(STATIC_4197), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i99) -> f4200_0_main_Load(EOS(STATIC_4200), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i99, 3) :|: TRUE f4200_0_main_Load(EOS(STATIC_4200), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i99, matching1) -> f4203_0_main_IntArithmetic(EOS(STATIC_4203), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i99, 3, i78) :|: TRUE && matching1 = 3 f4203_0_main_IntArithmetic(EOS(STATIC_4203), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i99, matching1, i78) -> f4206_0_main_IntArithmetic(EOS(STATIC_4206), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i99, 3 * i78) :|: TRUE && matching1 = 3 f4206_0_main_IntArithmetic(EOS(STATIC_4206), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i99, i100) -> f4209_0_main_ConstantStackPush(EOS(STATIC_4209), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i99 + i100) :|: i99 >= 0 && i100 >= 0 f4209_0_main_ConstantStackPush(EOS(STATIC_4209), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i101) -> f4213_0_main_Load(EOS(STATIC_4213), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i101, 4) :|: TRUE f4213_0_main_Load(EOS(STATIC_4213), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i101, matching1) -> f4216_0_main_IntArithmetic(EOS(STATIC_4216), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i101, 4, i95) :|: TRUE && matching1 = 4 f4216_0_main_IntArithmetic(EOS(STATIC_4216), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i101, matching1, i95) -> f4220_0_main_IntArithmetic(EOS(STATIC_4220), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i101, 4 * i95) :|: TRUE && matching1 = 4 f4220_0_main_IntArithmetic(EOS(STATIC_4220), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i101, i102) -> f4223_0_main_Store(EOS(STATIC_4223), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i101 + i102) :|: i101 >= 0 && i102 >= 0 f4223_0_main_Store(EOS(STATIC_4223), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i103) -> f4225_0_main_ConstantStackPush(EOS(STATIC_4225), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i103) :|: TRUE f4225_0_main_ConstantStackPush(EOS(STATIC_4225), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i103) -> f4228_0_main_Store(EOS(STATIC_4228), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i103, 0) :|: TRUE f4228_0_main_Store(EOS(STATIC_4228), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i103, matching1) -> f4231_0_main_Load(EOS(STATIC_4231), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i103, 0) :|: TRUE && matching1 = 0 f4231_0_main_Load(EOS(STATIC_4231), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i103, matching1) -> f4980_0_main_Load(EOS(STATIC_4980), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i103, 0) :|: TRUE && matching1 = 0 f4980_0_main_Load(EOS(STATIC_4980), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i119, i120) -> f6095_0_main_Load(EOS(STATIC_6095), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i119, i120) :|: TRUE f6095_0_main_Load(EOS(STATIC_6095), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i140, i141) -> f6826_0_main_Load(EOS(STATIC_6826), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i140, i141) :|: TRUE f6826_0_main_Load(EOS(STATIC_6826), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162) -> f6834_0_main_Load(EOS(STATIC_6834), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i162) :|: TRUE f6834_0_main_Load(EOS(STATIC_6834), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i162) -> f6835_0_main_GE(EOS(STATIC_6835), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i162, i161) :|: TRUE f6835_0_main_GE(EOS(STATIC_6835), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i162, i161) -> f6871_0_main_GE(EOS(STATIC_6871), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i162, i161) :|: i162 >= i161 f6835_0_main_GE(EOS(STATIC_6835), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i162, i161) -> f6872_0_main_GE(EOS(STATIC_6872), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i162, i161) :|: i162 < i161 f6871_0_main_GE(EOS(STATIC_6871), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i162, i161) -> f6884_0_main_Inc(EOS(STATIC_6884), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95) :|: i162 >= i161 f6884_0_main_Inc(EOS(STATIC_6884), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95) -> f6896_0_main_JMP(EOS(STATIC_6896), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95 + -1) :|: TRUE f6896_0_main_JMP(EOS(STATIC_6896), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i166) -> f6929_0_main_Load(EOS(STATIC_6929), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i166) :|: TRUE f6929_0_main_Load(EOS(STATIC_6929), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i166) -> f3998_0_main_Load(EOS(STATIC_3998), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i166) :|: TRUE f6872_0_main_GE(EOS(STATIC_6872), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i162, i161) -> f6895_0_main_ConstantStackPush(EOS(STATIC_6895), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162) :|: i162 < i161 f6895_0_main_ConstantStackPush(EOS(STATIC_6895), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162) -> f6897_0_main_Load(EOS(STATIC_6897), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, 1000) :|: TRUE f6897_0_main_Load(EOS(STATIC_6897), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, matching1) -> f6932_0_main_IntArithmetic(EOS(STATIC_6932), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, 1000, i18) :|: TRUE && matching1 = 1000 f6932_0_main_IntArithmetic(EOS(STATIC_6932), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, matching1, i18) -> f6935_0_main_ConstantStackPush(EOS(STATIC_6935), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, 1000 * i18) :|: TRUE && matching1 = 1000 f6935_0_main_ConstantStackPush(EOS(STATIC_6935), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i168) -> f6938_0_main_Load(EOS(STATIC_6938), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i168, 100) :|: TRUE f6938_0_main_Load(EOS(STATIC_6938), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i168, matching1) -> f6940_0_main_IntArithmetic(EOS(STATIC_6940), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i168, 100, i78) :|: TRUE && matching1 = 100 f6940_0_main_IntArithmetic(EOS(STATIC_6940), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i168, matching1, i78) -> f6943_0_main_IntArithmetic(EOS(STATIC_6943), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i168, 100 * i78) :|: TRUE && matching1 = 100 f6943_0_main_IntArithmetic(EOS(STATIC_6943), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i168, i169) -> f6946_0_main_ConstantStackPush(EOS(STATIC_6946), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i168 + i169) :|: i168 >= 0 && i169 >= 0 f6946_0_main_ConstantStackPush(EOS(STATIC_6946), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i170) -> f6949_0_main_Load(EOS(STATIC_6949), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i170, 10) :|: TRUE f6949_0_main_Load(EOS(STATIC_6949), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i170, matching1) -> f6951_0_main_IntArithmetic(EOS(STATIC_6951), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i170, 10, i95) :|: TRUE && matching1 = 10 f6951_0_main_IntArithmetic(EOS(STATIC_6951), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i170, matching1, i95) -> f6954_0_main_IntArithmetic(EOS(STATIC_6954), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i170, 10 * i95) :|: TRUE && matching1 = 10 f6954_0_main_IntArithmetic(EOS(STATIC_6954), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i170, i171) -> f6956_0_main_Load(EOS(STATIC_6956), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i170 + i171) :|: i170 >= 0 && i171 >= 0 f6956_0_main_Load(EOS(STATIC_6956), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i172) -> f6996_0_main_IntArithmetic(EOS(STATIC_6996), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i172, i162) :|: TRUE f6996_0_main_IntArithmetic(EOS(STATIC_6996), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i172, i162) -> f6997_0_main_Store(EOS(STATIC_6997), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i172 + i162) :|: i172 >= 0 && i162 >= 0 f6997_0_main_Store(EOS(STATIC_6997), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i173) -> f6998_0_main_Load(EOS(STATIC_6998), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i173) :|: TRUE f6998_0_main_Load(EOS(STATIC_6998), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i173) -> f7051_0_main_Load(EOS(STATIC_7051), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i173) :|: TRUE f7051_0_main_Load(EOS(STATIC_7051), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i175) -> f7052_0_main_LT(EOS(STATIC_7052), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i175, i175) :|: TRUE f7052_0_main_LT(EOS(STATIC_7052), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i177, i177) -> f7053_0_main_LT(EOS(STATIC_7053), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i177, i177) :|: TRUE f7052_0_main_LT(EOS(STATIC_7052), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i178, i178) -> f7054_0_main_LT(EOS(STATIC_7054), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i178, i178) :|: TRUE f7053_0_main_LT(EOS(STATIC_7053), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i177, i177) -> f7055_0_main_Inc(EOS(STATIC_7055), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162) :|: i177 < 0 f7055_0_main_Inc(EOS(STATIC_7055), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162) -> f7057_0_main_JMP(EOS(STATIC_7057), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162 + 1) :|: TRUE f7057_0_main_JMP(EOS(STATIC_7057), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i179) -> f7171_0_main_Load(EOS(STATIC_7171), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i179) :|: TRUE f7171_0_main_Load(EOS(STATIC_7171), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i179) -> f6826_0_main_Load(EOS(STATIC_6826), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i179) :|: TRUE f7054_0_main_LT(EOS(STATIC_7054), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i178, i178) -> f7056_0_main_Inc(EOS(STATIC_7056), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i178) :|: i178 >= 0 f7056_0_main_Inc(EOS(STATIC_7056), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i178) -> f7058_0_main_JMP(EOS(STATIC_7058), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i178 + -1) :|: TRUE f7058_0_main_JMP(EOS(STATIC_7058), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i180) -> f7223_0_main_Load(EOS(STATIC_7223), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i180) :|: TRUE f7223_0_main_Load(EOS(STATIC_7223), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i180) -> f7051_0_main_Load(EOS(STATIC_7051), java.lang.Object(ARRAY(i20)), java.lang.Object(ARRAY(i20)), i18, i77, i78, i95, i161, i162, i180) :|: TRUE Combined rules. Obtained 8 IRulesP rules: f4006_0_main_LT(EOS(STATIC_4006), java.lang.Object(ARRAY(i20:0)), java.lang.Object(ARRAY(i20:0)), i18:0, i77:0, i78:0, i94:0, i94:0) -> f3649_0_main_GE(EOS(STATIC_3649), 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 f7052_0_main_LT(EOS(STATIC_7052), 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) -> f7052_0_main_LT(EOS(STATIC_7052), 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 f4006_0_main_LT(EOS(STATIC_4006), java.lang.Object(ARRAY(i20:0)), java.lang.Object(ARRAY(i20:0)), i18:0, i77:0, i78:0, i95:0, i95:0) -> f6835_0_main_GE(EOS(STATIC_6835), 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 f3649_0_main_GE(EOS(STATIC_3649), java.lang.Object(ARRAY(i20:0)), java.lang.Object(ARRAY(i20:0)), i18:0, i77:0, i78:0, i78:0, i77:0) -> f3649_0_main_GE(EOS(STATIC_3649), 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 f6835_0_main_GE(EOS(STATIC_6835), 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) -> f4006_0_main_LT(EOS(STATIC_4006), 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 f6835_0_main_GE(EOS(STATIC_6835), 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) -> f7052_0_main_LT(EOS(STATIC_7052), 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 f3649_0_main_GE(EOS(STATIC_3649), java.lang.Object(ARRAY(i20:0)), java.lang.Object(ARRAY(i20:0)), i18:0, i77:0, i78:0, i78:0, i77:0) -> f4006_0_main_LT(EOS(STATIC_4006), 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 f7052_0_main_LT(EOS(STATIC_7052), 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) -> f6835_0_main_GE(EOS(STATIC_6835), 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 Filtered constant ground arguments: f4006_0_main_LT(x1, x2, x3, x4, x5, x6, x7, x8) -> f4006_0_main_LT(x2, x3, x4, x5, x6, x7, x8) f3649_0_main_GE(x1, x2, x3, x4, x5, x6, x7, x8) -> f3649_0_main_GE(x2, x3, x4, x5, x6, x7, x8) f7052_0_main_LT(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) -> f7052_0_main_LT(x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) f6835_0_main_GE(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) -> f6835_0_main_GE(x2, x3, x4, x5, x6, x7, x8, x9, x10, x11) Filtered duplicate arguments: f4006_0_main_LT(x1, x2, x3, x4, x5, x6, x7) -> f4006_0_main_LT(x2, x3, x4, x5, x7) f3649_0_main_GE(x1, x2, x3, x4, x5, x6, x7) -> f3649_0_main_GE(x2, x3, x6, x7) f7052_0_main_LT(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) -> f7052_0_main_LT(x2, x3, x4, x5, x6, x7, x8, x10) f6835_0_main_GE(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) -> f6835_0_main_GE(x2, x3, x4, x5, x6, x9, x10) Finished conversion. Obtained 8 rules.P rules: f4006_0_main_LT(java.lang.Object(ARRAY(i20:0)), i18:0, i77:0, i78:0, i94:0, i20:0) -> f3649_0_main_GE(java.lang.Object(ARRAY(i20:0)), i18:0, i78:0 + 1, i77:0, i20:0) :|: i94:0 < 0 f7052_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) -> f7052_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 f4006_0_main_LT(java.lang.Object(ARRAY(i20:0)), i18:0, i77:0, i78:0, i95:0, i20:0) -> f6835_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 f3649_0_main_GE(java.lang.Object(ARRAY(i20:0)), i18:0, i78:0, i77:0, i20:0) -> f3649_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 f6835_0_main_GE(java.lang.Object(ARRAY(i20:0)), i18:0, i77:0, i78:0, i95:0, i162:0, i161:0, i20:0) -> f4006_0_main_LT(java.lang.Object(ARRAY(i20:0)), i18:0, i77:0, i78:0, i95:0 - 1, i20:0) :|: i162:0 >= i161:0 f6835_0_main_GE(java.lang.Object(ARRAY(i20:0)), i18:0, i77:0, i78:0, i95:0, i162:0, i161:0, i20:0) -> f7052_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 f3649_0_main_GE(java.lang.Object(ARRAY(i20:0)), i18:0, i78:0, i77:0, i20:0) -> f4006_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 f7052_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) -> f6835_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 ---------------------------------------- (8) Obligation: Rules: f4006_0_main_LT(java.lang.Object(ARRAY(i20:0)), i18:0, i77:0, i78:0, i94:0, i20:0) -> f3649_0_main_GE(java.lang.Object(ARRAY(i20:0)), i18:0, i78:0 + 1, i77:0, i20:0) :|: i94:0 < 0 f7052_0_main_LT(java.lang.Object(ARRAY(x)), x1, x2, x3, x4, x5, x6, x7, x) -> f7052_0_main_LT(java.lang.Object(ARRAY(x)), x1, x2, x3, x4, x5, x6, x7 - 1, x) :|: x7 > -1 f4006_0_main_LT(java.lang.Object(ARRAY(x8)), x9, x10, x11, x12, x8) -> f6835_0_main_GE(java.lang.Object(ARRAY(x8)), x9, x10, x11, x12, 0, 2 * x9 + 3 * x11 + 4 * x12, x8) :|: 3 * x11 >= 0 && x12 > -1 && 2 * x9 >= 0 && 4 * x12 >= 0 && 2 * x9 + 3 * x11 >= 0 f3649_0_main_GE(java.lang.Object(ARRAY(x13)), x14, x15, x16, x13) -> f3649_0_main_GE(java.lang.Object(ARRAY(x13)), x14 + 1, 0, 2 * x14 + 2, x13) :|: x13 > x14 + 1 && x15 >= x16 && x13 > -1 f6835_0_main_GE(java.lang.Object(ARRAY(x17)), x18, x19, x20, x21, x22, x23, x17) -> f4006_0_main_LT(java.lang.Object(ARRAY(x17)), x18, x19, x20, x21 - 1, x17) :|: x22 >= x23 f6835_0_main_GE(java.lang.Object(ARRAY(x24)), x25, x26, x27, x28, x29, x30, x24) -> f7052_0_main_LT(java.lang.Object(ARRAY(x24)), x25, x26, x27, x28, x30, x29, 1000 * x25 + 100 * x27 + 10 * x28 + x29, x24) :|: 100 * x27 >= 0 && x29 < x30 && 1000 * x25 >= 0 && 10 * x28 >= 0 && 1000 * x25 + 100 * x27 >= 0 && x29 > -1 && 1000 * x25 + 100 * x27 + 10 * x28 >= 0 f3649_0_main_GE(java.lang.Object(ARRAY(x31)), x32, x33, x34, x31) -> f4006_0_main_LT(java.lang.Object(ARRAY(x31)), x32, x34, x33, x32 + x33, x31) :|: x32 > -1 && x33 > -1 && x33 < x34 f7052_0_main_LT(java.lang.Object(ARRAY(x35)), x36, x37, x38, x39, x40, x41, x42, x35) -> f6835_0_main_GE(java.lang.Object(ARRAY(x35)), x36, x37, x38, x39, x41 + 1, x40, x35) :|: x42 < 0 ---------------------------------------- (9) IRSFormatTransformerProof (EQUIVALENT) Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). ---------------------------------------- (10) Obligation: Rules: f4006_0_main_LT(java.lang.Object(ARRAY(i20:0)), i18:0, i77:0, i78:0, i94:0, i20:0) -> f3649_0_main_GE(java.lang.Object(ARRAY(i20:0)), i18:0, arith, i77:0, i20:0) :|: i94:0 < 0 && arith = i78:0 + 1 f7052_0_main_LT(java.lang.Object(ARRAY(x43)), x44, x45, x46, x47, x48, x49, x50, x43) -> f7052_0_main_LT(java.lang.Object(ARRAY(x43)), x44, x45, x46, x47, x48, x49, x51, x43) :|: x50 > -1 && x51 = x50 - 1 f4006_0_main_LT(java.lang.Object(ARRAY(x52)), x53, x54, x55, x56, x52) -> f6835_0_main_GE(java.lang.Object(ARRAY(x52)), x53, x54, x55, x56, 0, x57, x52) :|: 3 * x55 >= 0 && x56 > -1 && 2 * x53 >= 0 && 4 * x56 >= 0 && 2 * x53 + 3 * x55 >= 0 && x57 = 2 * x53 + 3 * x55 + 4 * x56 f3649_0_main_GE(java.lang.Object(ARRAY(x58)), x59, x60, x61, x58) -> f3649_0_main_GE(java.lang.Object(ARRAY(x58)), x62, 0, x63, x58) :|: x58 > x59 + 1 && x60 >= x61 && x58 > -1 && x62 = x59 + 1 && x63 = 2 * x59 + 2 f6835_0_main_GE(java.lang.Object(ARRAY(x64)), x65, x66, x67, x68, x69, x70, x64) -> f4006_0_main_LT(java.lang.Object(ARRAY(x64)), x65, x66, x67, x71, x64) :|: x69 >= x70 && x71 = x68 - 1 f6835_0_main_GE(java.lang.Object(ARRAY(x72)), x73, x74, x75, x76, x77, x78, x72) -> f7052_0_main_LT(java.lang.Object(ARRAY(x72)), x73, x74, x75, x76, x78, x77, x79, x72) :|: 100 * x75 >= 0 && x77 < x78 && 1000 * x73 >= 0 && 10 * x76 >= 0 && 1000 * x73 + 100 * x75 >= 0 && x77 > -1 && 1000 * x73 + 100 * x75 + 10 * x76 >= 0 && x79 = 1000 * x73 + 100 * x75 + 10 * x76 + x77 f3649_0_main_GE(java.lang.Object(ARRAY(x80)), x81, x82, x83, x80) -> f4006_0_main_LT(java.lang.Object(ARRAY(x80)), x81, x83, x82, x84, x80) :|: x81 > -1 && x82 > -1 && x82 < x83 && x84 = x81 + x82 f7052_0_main_LT(java.lang.Object(ARRAY(x85)), x86, x87, x88, x89, x90, x91, x92, x85) -> f6835_0_main_GE(java.lang.Object(ARRAY(x85)), x86, x87, x88, x89, x93, x90, x85) :|: x92 < 0 && x93 = x91 + 1 ---------------------------------------- (11) IRSwTTerminationDigraphProof (EQUIVALENT) Constructed termination digraph! Nodes: (1) f4006_0_main_LT(java.lang.Object(ARRAY(i20:0)), i18:0, i77:0, i78:0, i94:0, i20:0) -> f3649_0_main_GE(java.lang.Object(ARRAY(i20:0)), i18:0, arith, i77:0, i20:0) :|: i94:0 < 0 && arith = i78:0 + 1 (2) f7052_0_main_LT(java.lang.Object(ARRAY(x43)), x44, x45, x46, x47, x48, x49, x50, x43) -> f7052_0_main_LT(java.lang.Object(ARRAY(x43)), x44, x45, x46, x47, x48, x49, x51, x43) :|: x50 > -1 && x51 = x50 - 1 (3) f4006_0_main_LT(java.lang.Object(ARRAY(x52)), x53, x54, x55, x56, x52) -> f6835_0_main_GE(java.lang.Object(ARRAY(x52)), x53, x54, x55, x56, 0, x57, x52) :|: 3 * x55 >= 0 && x56 > -1 && 2 * x53 >= 0 && 4 * x56 >= 0 && 2 * x53 + 3 * x55 >= 0 && x57 = 2 * x53 + 3 * x55 + 4 * x56 (4) f3649_0_main_GE(java.lang.Object(ARRAY(x58)), x59, x60, x61, x58) -> f3649_0_main_GE(java.lang.Object(ARRAY(x58)), x62, 0, x63, x58) :|: x58 > x59 + 1 && x60 >= x61 && x58 > -1 && x62 = x59 + 1 && x63 = 2 * x59 + 2 (5) f6835_0_main_GE(java.lang.Object(ARRAY(x64)), x65, x66, x67, x68, x69, x70, x64) -> f4006_0_main_LT(java.lang.Object(ARRAY(x64)), x65, x66, x67, x71, x64) :|: x69 >= x70 && x71 = x68 - 1 (6) f6835_0_main_GE(java.lang.Object(ARRAY(x72)), x73, x74, x75, x76, x77, x78, x72) -> f7052_0_main_LT(java.lang.Object(ARRAY(x72)), x73, x74, x75, x76, x78, x77, x79, x72) :|: 100 * x75 >= 0 && x77 < x78 && 1000 * x73 >= 0 && 10 * x76 >= 0 && 1000 * x73 + 100 * x75 >= 0 && x77 > -1 && 1000 * x73 + 100 * x75 + 10 * x76 >= 0 && x79 = 1000 * x73 + 100 * x75 + 10 * x76 + x77 (7) f3649_0_main_GE(java.lang.Object(ARRAY(x80)), x81, x82, x83, x80) -> f4006_0_main_LT(java.lang.Object(ARRAY(x80)), x81, x83, x82, x84, x80) :|: x81 > -1 && x82 > -1 && x82 < x83 && x84 = x81 + x82 (8) f7052_0_main_LT(java.lang.Object(ARRAY(x85)), x86, x87, x88, x89, x90, x91, x92, x85) -> f6835_0_main_GE(java.lang.Object(ARRAY(x85)), x86, x87, x88, x89, x93, x90, x85) :|: x92 < 0 && x93 = x91 + 1 Arcs: (1) -> (4), (7) (2) -> (2), (8) (3) -> (5), (6) (4) -> (4), (7) (5) -> (1), (3) (6) -> (2) (7) -> (3) (8) -> (5), (6) This digraph is fully evaluated! ---------------------------------------- (12) Obligation: Termination digraph: Nodes: (1) f4006_0_main_LT(java.lang.Object(ARRAY(i20:0)), i18:0, i77:0, i78:0, i94:0, i20:0) -> f3649_0_main_GE(java.lang.Object(ARRAY(i20:0)), i18:0, arith, i77:0, i20:0) :|: i94:0 < 0 && arith = i78:0 + 1 (2) f6835_0_main_GE(java.lang.Object(ARRAY(x64)), x65, x66, x67, x68, x69, x70, x64) -> f4006_0_main_LT(java.lang.Object(ARRAY(x64)), x65, x66, x67, x71, x64) :|: x69 >= x70 && x71 = x68 - 1 (3) f7052_0_main_LT(java.lang.Object(ARRAY(x85)), x86, x87, x88, x89, x90, x91, x92, x85) -> f6835_0_main_GE(java.lang.Object(ARRAY(x85)), x86, x87, x88, x89, x93, x90, x85) :|: x92 < 0 && x93 = x91 + 1 (4) f7052_0_main_LT(java.lang.Object(ARRAY(x43)), x44, x45, x46, x47, x48, x49, x50, x43) -> f7052_0_main_LT(java.lang.Object(ARRAY(x43)), x44, x45, x46, x47, x48, x49, x51, x43) :|: x50 > -1 && x51 = x50 - 1 (5) f6835_0_main_GE(java.lang.Object(ARRAY(x72)), x73, x74, x75, x76, x77, x78, x72) -> f7052_0_main_LT(java.lang.Object(ARRAY(x72)), x73, x74, x75, x76, x78, x77, x79, x72) :|: 100 * x75 >= 0 && x77 < x78 && 1000 * x73 >= 0 && 10 * x76 >= 0 && 1000 * x73 + 100 * x75 >= 0 && x77 > -1 && 1000 * x73 + 100 * x75 + 10 * x76 >= 0 && x79 = 1000 * x73 + 100 * x75 + 10 * x76 + x77 (6) f4006_0_main_LT(java.lang.Object(ARRAY(x52)), x53, x54, x55, x56, x52) -> f6835_0_main_GE(java.lang.Object(ARRAY(x52)), x53, x54, x55, x56, 0, x57, x52) :|: 3 * x55 >= 0 && x56 > -1 && 2 * x53 >= 0 && 4 * x56 >= 0 && 2 * x53 + 3 * x55 >= 0 && x57 = 2 * x53 + 3 * x55 + 4 * x56 (7) f3649_0_main_GE(java.lang.Object(ARRAY(x80)), x81, x82, x83, x80) -> f4006_0_main_LT(java.lang.Object(ARRAY(x80)), x81, x83, x82, x84, x80) :|: x81 > -1 && x82 > -1 && x82 < x83 && x84 = x81 + x82 (8) f3649_0_main_GE(java.lang.Object(ARRAY(x58)), x59, x60, x61, x58) -> f3649_0_main_GE(java.lang.Object(ARRAY(x58)), x62, 0, x63, x58) :|: x58 > x59 + 1 && x60 >= x61 && x58 > -1 && x62 = x59 + 1 && x63 = 2 * x59 + 2 Arcs: (1) -> (7), (8) (2) -> (1), (6) (3) -> (2), (5) (4) -> (3), (4) (5) -> (4) (6) -> (2), (5) (7) -> (6) (8) -> (7), (8) This digraph is fully evaluated! ---------------------------------------- (13) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (14) Obligation: Rules: f4006_0_main_LT(java.lang.Object(ARRAY(x52:0)), x53:0, x54:0, x55:0, x56:0, x52:0) -> f6835_0_main_GE(java.lang.Object(ARRAY(x52:0)), x53:0, x54:0, x55:0, x56:0, 0, 2 * x53:0 + 3 * x55:0 + 4 * x56:0, x52:0) :|: 4 * x56:0 >= 0 && 2 * x53:0 + 3 * x55:0 >= 0 && 2 * x53:0 >= 0 && x56:0 > -1 && 3 * x55:0 >= 0 f7052_0_main_LT(java.lang.Object(ARRAY(x43:0)), x44:0, x45:0, x46:0, x47:0, x48:0, x49:0, x50:0, x43:0) -> f7052_0_main_LT(java.lang.Object(ARRAY(x43:0)), x44:0, x45:0, x46:0, x47:0, x48:0, x49:0, x50:0 - 1, x43:0) :|: x50:0 > -1 f4006_0_main_LT(java.lang.Object(ARRAY(i20:0:0)), i18:0:0, i77:0:0, i78:0:0, i94:0:0, i20:0:0) -> f3649_0_main_GE(java.lang.Object(ARRAY(i20:0:0)), i18:0:0, i78:0:0 + 1, i77:0:0, i20:0:0) :|: i94:0:0 < 0 f3649_0_main_GE(java.lang.Object(ARRAY(x58:0)), x59:0, x60:0, x61:0, x58:0) -> f3649_0_main_GE(java.lang.Object(ARRAY(x58:0)), x59:0 + 1, 0, 2 * x59:0 + 2, x58:0) :|: x59:0 + 1 < x58:0 && x61:0 <= x60:0 && x58:0 > -1 f3649_0_main_GE(java.lang.Object(ARRAY(x80:0)), x81:0, x82:0, x83:0, x80:0) -> f4006_0_main_LT(java.lang.Object(ARRAY(x80:0)), x81:0, x83:0, x82:0, x81:0 + x82:0, x80:0) :|: x81:0 > -1 && x82:0 > -1 && x83:0 > x82:0 f6835_0_main_GE(java.lang.Object(ARRAY(x64:0)), x65:0, x66:0, x67:0, x68:0, x69:0, x70:0, x64:0) -> f4006_0_main_LT(java.lang.Object(ARRAY(x64:0)), x65:0, x66:0, x67:0, x68:0 - 1, x64:0) :|: x70:0 <= x69:0 f7052_0_main_LT(java.lang.Object(ARRAY(x85:0)), x86:0, x87:0, x88:0, x89:0, x90:0, x91:0, x92:0, x85:0) -> f6835_0_main_GE(java.lang.Object(ARRAY(x85:0)), x86:0, x87:0, x88:0, x89:0, x91:0 + 1, x90:0, x85:0) :|: x92:0 < 0 f6835_0_main_GE(java.lang.Object(ARRAY(x72:0)), x73:0, x74:0, x75:0, x76:0, x77:0, x78:0, x72:0) -> f7052_0_main_LT(java.lang.Object(ARRAY(x72:0)), x73:0, x74:0, x75:0, x76:0, x78:0, x77:0, 1000 * x73:0 + 100 * x75:0 + 10 * x76:0 + x77:0, x72:0) :|: x77:0 > -1 && 1000 * x73:0 + 100 * x75:0 + 10 * x76:0 >= 0 && 1000 * x73:0 + 100 * x75:0 >= 0 && 10 * x76:0 >= 0 && 1000 * x73:0 >= 0 && x78:0 > x77:0 && 100 * x75:0 >= 0 ---------------------------------------- (15) TempFilterProof (SOUND) Used the following sort dictionary for filtering: f4006_0_main_LT(VARIABLE, VARIABLE, VARIABLE, VARIABLE, INTEGER, VARIABLE) java.lang.Object(VARIABLE) ARRAY(VARIABLE) f6835_0_main_GE(VARIABLE, VARIABLE, VARIABLE, VARIABLE, VARIABLE, VARIABLE, VARIABLE, VARIABLE) f7052_0_main_LT(VARIABLE, VARIABLE, VARIABLE, VARIABLE, VARIABLE, VARIABLE, VARIABLE, INTEGER, VARIABLE) f3649_0_main_GE(VARIABLE, VARIABLE, VARIABLE, VARIABLE, VARIABLE) Replaced non-predefined constructor symbols by 0. ---------------------------------------- (16) Obligation: Rules: f4006_0_main_LT(c, x53:0, x54:0, x55:0, x56:0, x52:0) -> f6835_0_main_GE(c1, x53:0, x54:0, x55:0, x56:0, c2, c3, x52:0) :|: c3 = 2 * x53:0 + 3 * x55:0 + 4 * x56:0 && (c2 = 0 && (c1 = 0 && c = 0)) && (4 * x56:0 >= 0 && 2 * x53:0 + 3 * x55:0 >= 0 && 2 * x53:0 >= 0 && x56:0 > -1 && 3 * x55:0 >= 0) f7052_0_main_LT(c4, x44:0, x45:0, x46:0, x47:0, x48:0, x49:0, x50:0, x43:0) -> f7052_0_main_LT(c5, x44:0, x45:0, x46:0, x47:0, x48:0, x49:0, c6, x43:0) :|: c6 = x50:0 - 1 && (c5 = 0 && c4 = 0) && x50:0 > -1 f4006_0_main_LT(c7, i18:0:0, i77:0:0, i78:0:0, i94:0:0, i20:0:0) -> f3649_0_main_GE(c8, i18:0:0, c9, i77:0:0, i20:0:0) :|: c9 = i78:0:0 + 1 && (c8 = 0 && c7 = 0) && i94:0:0 < 0 f3649_0_main_GE(c10, x59:0, x60:0, x61:0, x58:0) -> f3649_0_main_GE(c11, c12, c13, c14, x58:0) :|: c14 = 2 * x59:0 + 2 && (c13 = 0 && (c12 = x59:0 + 1 && (c11 = 0 && c10 = 0))) && (x59:0 + 1 < x58:0 && x61:0 <= x60:0 && x58:0 > -1) f3649_0_main_GE(c15, x81:0, x82:0, x83:0, x80:0) -> f4006_0_main_LT(c16, x81:0, x83:0, x82:0, c17, x80:0) :|: c17 = x81:0 + x82:0 && (c16 = 0 && c15 = 0) && (x81:0 > -1 && x82:0 > -1 && x83:0 > x82:0) f6835_0_main_GE(c18, x65:0, x66:0, x67:0, x68:0, x69:0, x70:0, x64:0) -> f4006_0_main_LT(c19, x65:0, x66:0, x67:0, c20, x64:0) :|: c20 = x68:0 - 1 && (c19 = 0 && c18 = 0) && x70:0 <= x69:0 f7052_0_main_LT(c21, x86:0, x87:0, x88:0, x89:0, x90:0, x91:0, x92:0, x85:0) -> f6835_0_main_GE(c22, x86:0, x87:0, x88:0, x89:0, c23, x90:0, x85:0) :|: c23 = x91:0 + 1 && (c22 = 0 && c21 = 0) && x92:0 < 0 f6835_0_main_GE(c24, x73:0, x74:0, x75:0, x76:0, x77:0, x78:0, x72:0) -> f7052_0_main_LT(c25, x73:0, x74:0, x75:0, x76:0, x78:0, x77:0, c26, x72:0) :|: c26 = 1000 * x73:0 + 100 * x75:0 + 10 * x76:0 + x77:0 && (c25 = 0 && c24 = 0) && (x77:0 > -1 && 1000 * x73:0 + 100 * x75:0 + 10 * x76:0 >= 0 && 1000 * x73:0 + 100 * x75:0 >= 0 && 10 * x76:0 >= 0 && 1000 * x73:0 >= 0 && x78:0 > x77:0 && 100 * x75:0 >= 0) ---------------------------------------- (17) PolynomialOrderProcessor (EQUIVALENT) Found the following polynomial interpretation: [f4006_0_main_LT(x, x1, x2, x3, x4, x5)] = -1 + c*x - x1 + x5 [f6835_0_main_GE(x6, x7, x8, x9, x10, x11, x12, x13)] = -1 + x13 + c6*x6 - x7 [f7052_0_main_LT(x14, x15, x16, x17, x18, x19, x20, x21, x22)] = -1 + c14*x14 - x15 + x22 [f3649_0_main_GE(x23, x24, x25, x26, x27)] = -1 + c23*x23 - x24 + x27 The following rules are decreasing: f3649_0_main_GE(c10, x59:0, x60:0, x61:0, x58:0) -> f3649_0_main_GE(c11, c12, c13, c14, x58:0) :|: c14 = 2 * x59:0 + 2 && (c13 = 0 && (c12 = x59:0 + 1 && (c11 = 0 && c10 = 0))) && (x59:0 + 1 < x58:0 && x61:0 <= x60:0 && x58:0 > -1) The following rules are bounded: f3649_0_main_GE(c10, x59:0, x60:0, x61:0, x58:0) -> f3649_0_main_GE(c11, c12, c13, c14, x58:0) :|: c14 = 2 * x59:0 + 2 && (c13 = 0 && (c12 = x59:0 + 1 && (c11 = 0 && c10 = 0))) && (x59:0 + 1 < x58:0 && x61:0 <= x60:0 && x58:0 > -1) ---------------------------------------- (18) Obligation: Rules: f4006_0_main_LT(c, x53:0, x54:0, x55:0, x56:0, x52:0) -> f6835_0_main_GE(c1, x53:0, x54:0, x55:0, x56:0, c2, c3, x52:0) :|: c3 = 2 * x53:0 + 3 * x55:0 + 4 * x56:0 && (c2 = 0 && (c1 = 0 && c = 0)) && (4 * x56:0 >= 0 && 2 * x53:0 + 3 * x55:0 >= 0 && 2 * x53:0 >= 0 && x56:0 > -1 && 3 * x55:0 >= 0) f7052_0_main_LT(c4, x44:0, x45:0, x46:0, x47:0, x48:0, x49:0, x50:0, x43:0) -> f7052_0_main_LT(c5, x44:0, x45:0, x46:0, x47:0, x48:0, x49:0, c6, x43:0) :|: c6 = x50:0 - 1 && (c5 = 0 && c4 = 0) && x50:0 > -1 f4006_0_main_LT(c7, i18:0:0, i77:0:0, i78:0:0, i94:0:0, i20:0:0) -> f3649_0_main_GE(c8, i18:0:0, c9, i77:0:0, i20:0:0) :|: c9 = i78:0:0 + 1 && (c8 = 0 && c7 = 0) && i94:0:0 < 0 f3649_0_main_GE(c15, x81:0, x82:0, x83:0, x80:0) -> f4006_0_main_LT(c16, x81:0, x83:0, x82:0, c17, x80:0) :|: c17 = x81:0 + x82:0 && (c16 = 0 && c15 = 0) && (x81:0 > -1 && x82:0 > -1 && x83:0 > x82:0) f6835_0_main_GE(c18, x65:0, x66:0, x67:0, x68:0, x69:0, x70:0, x64:0) -> f4006_0_main_LT(c19, x65:0, x66:0, x67:0, c20, x64:0) :|: c20 = x68:0 - 1 && (c19 = 0 && c18 = 0) && x70:0 <= x69:0 f7052_0_main_LT(c21, x86:0, x87:0, x88:0, x89:0, x90:0, x91:0, x92:0, x85:0) -> f6835_0_main_GE(c22, x86:0, x87:0, x88:0, x89:0, c23, x90:0, x85:0) :|: c23 = x91:0 + 1 && (c22 = 0 && c21 = 0) && x92:0 < 0 f6835_0_main_GE(c24, x73:0, x74:0, x75:0, x76:0, x77:0, x78:0, x72:0) -> f7052_0_main_LT(c25, x73:0, x74:0, x75:0, x76:0, x78:0, x77:0, c26, x72:0) :|: c26 = 1000 * x73:0 + 100 * x75:0 + 10 * x76:0 + x77:0 && (c25 = 0 && c24 = 0) && (x77:0 > -1 && 1000 * x73:0 + 100 * x75:0 + 10 * x76:0 >= 0 && 1000 * x73:0 + 100 * x75:0 >= 0 && 10 * x76:0 >= 0 && 1000 * x73:0 >= 0 && x78:0 > x77:0 && 100 * x75:0 >= 0) ---------------------------------------- (19) PolynomialOrderProcessor (EQUIVALENT) Found the following polynomial interpretation: [f4006_0_main_LT(x, x1, x2, x3, x4, x5)] = -1 + c*x + x1 + x2 - x3 [f6835_0_main_GE(x6, x7, x8, x9, x10, x11, x12, x13)] = -1 + c6*x6 + x7 + x8 - x9 [f7052_0_main_LT(x14, x15, x16, x17, x18, x19, x20, x21, x22)] = -1 + c14*x14 + x15 + x16 - x17 [f3649_0_main_GE(x23, x24, x25, x26, x27)] = c23*x23 + x24 - x25 + x26 The following rules are decreasing: f3649_0_main_GE(c15, x81:0, x82:0, x83:0, x80:0) -> f4006_0_main_LT(c16, x81:0, x83:0, x82:0, c17, x80:0) :|: c17 = x81:0 + x82:0 && (c16 = 0 && c15 = 0) && (x81:0 > -1 && x82:0 > -1 && x83:0 > x82:0) The following rules are bounded: f3649_0_main_GE(c15, x81:0, x82:0, x83:0, x80:0) -> f4006_0_main_LT(c16, x81:0, x83:0, x82:0, c17, x80:0) :|: c17 = x81:0 + x82:0 && (c16 = 0 && c15 = 0) && (x81:0 > -1 && x82:0 > -1 && x83:0 > x82:0) ---------------------------------------- (20) Obligation: Rules: f4006_0_main_LT(c, x53:0, x54:0, x55:0, x56:0, x52:0) -> f6835_0_main_GE(c1, x53:0, x54:0, x55:0, x56:0, c2, c3, x52:0) :|: c3 = 2 * x53:0 + 3 * x55:0 + 4 * x56:0 && (c2 = 0 && (c1 = 0 && c = 0)) && (4 * x56:0 >= 0 && 2 * x53:0 + 3 * x55:0 >= 0 && 2 * x53:0 >= 0 && x56:0 > -1 && 3 * x55:0 >= 0) f7052_0_main_LT(c4, x44:0, x45:0, x46:0, x47:0, x48:0, x49:0, x50:0, x43:0) -> f7052_0_main_LT(c5, x44:0, x45:0, x46:0, x47:0, x48:0, x49:0, c6, x43:0) :|: c6 = x50:0 - 1 && (c5 = 0 && c4 = 0) && x50:0 > -1 f4006_0_main_LT(c7, i18:0:0, i77:0:0, i78:0:0, i94:0:0, i20:0:0) -> f3649_0_main_GE(c8, i18:0:0, c9, i77:0:0, i20:0:0) :|: c9 = i78:0:0 + 1 && (c8 = 0 && c7 = 0) && i94:0:0 < 0 f6835_0_main_GE(c18, x65:0, x66:0, x67:0, x68:0, x69:0, x70:0, x64:0) -> f4006_0_main_LT(c19, x65:0, x66:0, x67:0, c20, x64:0) :|: c20 = x68:0 - 1 && (c19 = 0 && c18 = 0) && x70:0 <= x69:0 f7052_0_main_LT(c21, x86:0, x87:0, x88:0, x89:0, x90:0, x91:0, x92:0, x85:0) -> f6835_0_main_GE(c22, x86:0, x87:0, x88:0, x89:0, c23, x90:0, x85:0) :|: c23 = x91:0 + 1 && (c22 = 0 && c21 = 0) && x92:0 < 0 f6835_0_main_GE(c24, x73:0, x74:0, x75:0, x76:0, x77:0, x78:0, x72:0) -> f7052_0_main_LT(c25, x73:0, x74:0, x75:0, x76:0, x78:0, x77:0, c26, x72:0) :|: c26 = 1000 * x73:0 + 100 * x75:0 + 10 * x76:0 + x77:0 && (c25 = 0 && c24 = 0) && (x77:0 > -1 && 1000 * x73:0 + 100 * x75:0 + 10 * x76:0 >= 0 && 1000 * x73:0 + 100 * x75:0 >= 0 && 10 * x76:0 >= 0 && 1000 * x73:0 >= 0 && x78:0 > x77:0 && 100 * x75:0 >= 0) ---------------------------------------- (21) PolynomialOrderProcessor (EQUIVALENT) Found the following polynomial interpretation: [f4006_0_main_LT(x, x1, x2, x3, x4, x5)] = c*x [f6835_0_main_GE(x6, x7, x8, x9, x10, x11, x12, x13)] = c6*x6 [f7052_0_main_LT(x14, x15, x16, x17, x18, x19, x20, x21, x22)] = c14*x14 [f3649_0_main_GE(x23, x24, x25, x26, x27)] = -1 + c23*x23 The following rules are decreasing: f4006_0_main_LT(c7, i18:0:0, i77:0:0, i78:0:0, i94:0:0, i20:0:0) -> f3649_0_main_GE(c8, i18:0:0, c9, i77:0:0, i20:0:0) :|: c9 = i78:0:0 + 1 && (c8 = 0 && c7 = 0) && i94:0:0 < 0 The following rules are bounded: f4006_0_main_LT(c, x53:0, x54:0, x55:0, x56:0, x52:0) -> f6835_0_main_GE(c1, x53:0, x54:0, x55:0, x56:0, c2, c3, x52:0) :|: c3 = 2 * x53:0 + 3 * x55:0 + 4 * x56:0 && (c2 = 0 && (c1 = 0 && c = 0)) && (4 * x56:0 >= 0 && 2 * x53:0 + 3 * x55:0 >= 0 && 2 * x53:0 >= 0 && x56:0 > -1 && 3 * x55:0 >= 0) f7052_0_main_LT(c4, x44:0, x45:0, x46:0, x47:0, x48:0, x49:0, x50:0, x43:0) -> f7052_0_main_LT(c5, x44:0, x45:0, x46:0, x47:0, x48:0, x49:0, c6, x43:0) :|: c6 = x50:0 - 1 && (c5 = 0 && c4 = 0) && x50:0 > -1 f4006_0_main_LT(c7, i18:0:0, i77:0:0, i78:0:0, i94:0:0, i20:0:0) -> f3649_0_main_GE(c8, i18:0:0, c9, i77:0:0, i20:0:0) :|: c9 = i78:0:0 + 1 && (c8 = 0 && c7 = 0) && i94:0:0 < 0 f6835_0_main_GE(c18, x65:0, x66:0, x67:0, x68:0, x69:0, x70:0, x64:0) -> f4006_0_main_LT(c19, x65:0, x66:0, x67:0, c20, x64:0) :|: c20 = x68:0 - 1 && (c19 = 0 && c18 = 0) && x70:0 <= x69:0 f7052_0_main_LT(c21, x86:0, x87:0, x88:0, x89:0, x90:0, x91:0, x92:0, x85:0) -> f6835_0_main_GE(c22, x86:0, x87:0, x88:0, x89:0, c23, x90:0, x85:0) :|: c23 = x91:0 + 1 && (c22 = 0 && c21 = 0) && x92:0 < 0 f6835_0_main_GE(c24, x73:0, x74:0, x75:0, x76:0, x77:0, x78:0, x72:0) -> f7052_0_main_LT(c25, x73:0, x74:0, x75:0, x76:0, x78:0, x77:0, c26, x72:0) :|: c26 = 1000 * x73:0 + 100 * x75:0 + 10 * x76:0 + x77:0 && (c25 = 0 && c24 = 0) && (x77:0 > -1 && 1000 * x73:0 + 100 * x75:0 + 10 * x76:0 >= 0 && 1000 * x73:0 + 100 * x75:0 >= 0 && 10 * x76:0 >= 0 && 1000 * x73:0 >= 0 && x78:0 > x77:0 && 100 * x75:0 >= 0) ---------------------------------------- (22) Obligation: Rules: f4006_0_main_LT(c, x53:0, x54:0, x55:0, x56:0, x52:0) -> f6835_0_main_GE(c1, x53:0, x54:0, x55:0, x56:0, c2, c3, x52:0) :|: c3 = 2 * x53:0 + 3 * x55:0 + 4 * x56:0 && (c2 = 0 && (c1 = 0 && c = 0)) && (4 * x56:0 >= 0 && 2 * x53:0 + 3 * x55:0 >= 0 && 2 * x53:0 >= 0 && x56:0 > -1 && 3 * x55:0 >= 0) f7052_0_main_LT(c4, x44:0, x45:0, x46:0, x47:0, x48:0, x49:0, x50:0, x43:0) -> f7052_0_main_LT(c5, x44:0, x45:0, x46:0, x47:0, x48:0, x49:0, c6, x43:0) :|: c6 = x50:0 - 1 && (c5 = 0 && c4 = 0) && x50:0 > -1 f6835_0_main_GE(c18, x65:0, x66:0, x67:0, x68:0, x69:0, x70:0, x64:0) -> f4006_0_main_LT(c19, x65:0, x66:0, x67:0, c20, x64:0) :|: c20 = x68:0 - 1 && (c19 = 0 && c18 = 0) && x70:0 <= x69:0 f7052_0_main_LT(c21, x86:0, x87:0, x88:0, x89:0, x90:0, x91:0, x92:0, x85:0) -> f6835_0_main_GE(c22, x86:0, x87:0, x88:0, x89:0, c23, x90:0, x85:0) :|: c23 = x91:0 + 1 && (c22 = 0 && c21 = 0) && x92:0 < 0 f6835_0_main_GE(c24, x73:0, x74:0, x75:0, x76:0, x77:0, x78:0, x72:0) -> f7052_0_main_LT(c25, x73:0, x74:0, x75:0, x76:0, x78:0, x77:0, c26, x72:0) :|: c26 = 1000 * x73:0 + 100 * x75:0 + 10 * x76:0 + x77:0 && (c25 = 0 && c24 = 0) && (x77:0 > -1 && 1000 * x73:0 + 100 * x75:0 + 10 * x76:0 >= 0 && 1000 * x73:0 + 100 * x75:0 >= 0 && 10 * x76:0 >= 0 && 1000 * x73:0 >= 0 && x78:0 > x77:0 && 100 * x75:0 >= 0) ---------------------------------------- (23) PolynomialOrderProcessor (EQUIVALENT) Found the following polynomial interpretation: [f4006_0_main_LT(x, x1, x2, x3, x4, x5)] = c*x + 9*x1 + x3 + x4 [f6835_0_main_GE(x6, x7, x8, x9, x10, x11, x12, x13)] = x10 + c6*x6 + 9*x7 + x9 [f7052_0_main_LT(x14, x15, x16, x17, x18, x19, x20, x21, x22)] = c14*x14 + 9*x15 + x17 + x18 The following rules are decreasing: f6835_0_main_GE(c18, x65:0, x66:0, x67:0, x68:0, x69:0, x70:0, x64:0) -> f4006_0_main_LT(c19, x65:0, x66:0, x67:0, c20, x64:0) :|: c20 = x68:0 - 1 && (c19 = 0 && c18 = 0) && x70:0 <= x69:0 The following rules are bounded: f4006_0_main_LT(c, x53:0, x54:0, x55:0, x56:0, x52:0) -> f6835_0_main_GE(c1, x53:0, x54:0, x55:0, x56:0, c2, c3, x52:0) :|: c3 = 2 * x53:0 + 3 * x55:0 + 4 * x56:0 && (c2 = 0 && (c1 = 0 && c = 0)) && (4 * x56:0 >= 0 && 2 * x53:0 + 3 * x55:0 >= 0 && 2 * x53:0 >= 0 && x56:0 > -1 && 3 * x55:0 >= 0) ---------------------------------------- (24) Complex Obligation (AND) ---------------------------------------- (25) Obligation: Rules: f4006_0_main_LT(c, x53:0, x54:0, x55:0, x56:0, x52:0) -> f6835_0_main_GE(c1, x53:0, x54:0, x55:0, x56:0, c2, c3, x52:0) :|: c3 = 2 * x53:0 + 3 * x55:0 + 4 * x56:0 && (c2 = 0 && (c1 = 0 && c = 0)) && (4 * x56:0 >= 0 && 2 * x53:0 + 3 * x55:0 >= 0 && 2 * x53:0 >= 0 && x56:0 > -1 && 3 * x55:0 >= 0) f7052_0_main_LT(c4, x44:0, x45:0, x46:0, x47:0, x48:0, x49:0, x50:0, x43:0) -> f7052_0_main_LT(c5, x44:0, x45:0, x46:0, x47:0, x48:0, x49:0, c6, x43:0) :|: c6 = x50:0 - 1 && (c5 = 0 && c4 = 0) && x50:0 > -1 f7052_0_main_LT(c21, x86:0, x87:0, x88:0, x89:0, x90:0, x91:0, x92:0, x85:0) -> f6835_0_main_GE(c22, x86:0, x87:0, x88:0, x89:0, c23, x90:0, x85:0) :|: c23 = x91:0 + 1 && (c22 = 0 && c21 = 0) && x92:0 < 0 f6835_0_main_GE(c24, x73:0, x74:0, x75:0, x76:0, x77:0, x78:0, x72:0) -> f7052_0_main_LT(c25, x73:0, x74:0, x75:0, x76:0, x78:0, x77:0, c26, x72:0) :|: c26 = 1000 * x73:0 + 100 * x75:0 + 10 * x76:0 + x77:0 && (c25 = 0 && c24 = 0) && (x77:0 > -1 && 1000 * x73:0 + 100 * x75:0 + 10 * x76:0 >= 0 && 1000 * x73:0 + 100 * x75:0 >= 0 && 10 * x76:0 >= 0 && 1000 * x73:0 >= 0 && x78:0 > x77:0 && 100 * x75:0 >= 0) ---------------------------------------- (26) RankingReductionPairProof (EQUIVALENT) Interpretation: [ f4006_0_main_LT ] = 1 [ f6835_0_main_GE ] = 0 [ f7052_0_main_LT ] = 0 The following rules are decreasing: f4006_0_main_LT(c, x53:0, x54:0, x55:0, x56:0, x52:0) -> f6835_0_main_GE(c1, x53:0, x54:0, x55:0, x56:0, c2, c3, x52:0) :|: c3 = 2 * x53:0 + 3 * x55:0 + 4 * x56:0 && (c2 = 0 && (c1 = 0 && c = 0)) && (4 * x56:0 >= 0 && 2 * x53:0 + 3 * x55:0 >= 0 && 2 * x53:0 >= 0 && x56:0 > -1 && 3 * x55:0 >= 0) The following rules are bounded: f4006_0_main_LT(c, x53:0, x54:0, x55:0, x56:0, x52:0) -> f6835_0_main_GE(c1, x53:0, x54:0, x55:0, x56:0, c2, c3, x52:0) :|: c3 = 2 * x53:0 + 3 * x55:0 + 4 * x56:0 && (c2 = 0 && (c1 = 0 && c = 0)) && (4 * x56:0 >= 0 && 2 * x53:0 + 3 * x55:0 >= 0 && 2 * x53:0 >= 0 && x56:0 > -1 && 3 * x55:0 >= 0) f7052_0_main_LT(c4, x44:0, x45:0, x46:0, x47:0, x48:0, x49:0, x50:0, x43:0) -> f7052_0_main_LT(c5, x44:0, x45:0, x46:0, x47:0, x48:0, x49:0, c6, x43:0) :|: c6 = x50:0 - 1 && (c5 = 0 && c4 = 0) && x50:0 > -1 f7052_0_main_LT(c21, x86:0, x87:0, x88:0, x89:0, x90:0, x91:0, x92:0, x85:0) -> f6835_0_main_GE(c22, x86:0, x87:0, x88:0, x89:0, c23, x90:0, x85:0) :|: c23 = x91:0 + 1 && (c22 = 0 && c21 = 0) && x92:0 < 0 f6835_0_main_GE(c24, x73:0, x74:0, x75:0, x76:0, x77:0, x78:0, x72:0) -> f7052_0_main_LT(c25, x73:0, x74:0, x75:0, x76:0, x78:0, x77:0, c26, x72:0) :|: c26 = 1000 * x73:0 + 100 * x75:0 + 10 * x76:0 + x77:0 && (c25 = 0 && c24 = 0) && (x77:0 > -1 && 1000 * x73:0 + 100 * x75:0 + 10 * x76:0 >= 0 && 1000 * x73:0 + 100 * x75:0 >= 0 && 10 * x76:0 >= 0 && 1000 * x73:0 >= 0 && x78:0 > x77:0 && 100 * x75:0 >= 0) ---------------------------------------- (27) Obligation: Rules: f7052_0_main_LT(c4, x44:0, x45:0, x46:0, x47:0, x48:0, x49:0, x50:0, x43:0) -> f7052_0_main_LT(c5, x44:0, x45:0, x46:0, x47:0, x48:0, x49:0, c6, x43:0) :|: c6 = x50:0 - 1 && (c5 = 0 && c4 = 0) && x50:0 > -1 f7052_0_main_LT(c21, x86:0, x87:0, x88:0, x89:0, x90:0, x91:0, x92:0, x85:0) -> f6835_0_main_GE(c22, x86:0, x87:0, x88:0, x89:0, c23, x90:0, x85:0) :|: c23 = x91:0 + 1 && (c22 = 0 && c21 = 0) && x92:0 < 0 f6835_0_main_GE(c24, x73:0, x74:0, x75:0, x76:0, x77:0, x78:0, x72:0) -> f7052_0_main_LT(c25, x73:0, x74:0, x75:0, x76:0, x78:0, x77:0, c26, x72:0) :|: c26 = 1000 * x73:0 + 100 * x75:0 + 10 * x76:0 + x77:0 && (c25 = 0 && c24 = 0) && (x77:0 > -1 && 1000 * x73:0 + 100 * x75:0 + 10 * x76:0 >= 0 && 1000 * x73:0 + 100 * x75:0 >= 0 && 10 * x76:0 >= 0 && 1000 * x73:0 >= 0 && x78:0 > x77:0 && 100 * x75:0 >= 0) ---------------------------------------- (28) PolynomialOrderProcessor (EQUIVALENT) Found the following polynomial interpretation: [f7052_0_main_LT(x, x1, x2, x3, x4, x5, x6, x7, x8)] = -1 + c*x + 100*x1 + 10*x3 + x4 + x5 - x6 [f6835_0_main_GE(x9, x10, x11, x12, x13, x14, x15, x16)] = -1 + 100*x10 + 10*x12 + x13 - x14 + x15 + c9*x9 The following rules are decreasing: f7052_0_main_LT(c21, x86:0, x87:0, x88:0, x89:0, x90:0, x91:0, x92:0, x85:0) -> f6835_0_main_GE(c22, x86:0, x87:0, x88:0, x89:0, c23, x90:0, x85:0) :|: c23 = x91:0 + 1 && (c22 = 0 && c21 = 0) && x92:0 < 0 The following rules are bounded: f6835_0_main_GE(c24, x73:0, x74:0, x75:0, x76:0, x77:0, x78:0, x72:0) -> f7052_0_main_LT(c25, x73:0, x74:0, x75:0, x76:0, x78:0, x77:0, c26, x72:0) :|: c26 = 1000 * x73:0 + 100 * x75:0 + 10 * x76:0 + x77:0 && (c25 = 0 && c24 = 0) && (x77:0 > -1 && 1000 * x73:0 + 100 * x75:0 + 10 * x76:0 >= 0 && 1000 * x73:0 + 100 * x75:0 >= 0 && 10 * x76:0 >= 0 && 1000 * x73:0 >= 0 && x78:0 > x77:0 && 100 * x75:0 >= 0) ---------------------------------------- (29) Complex Obligation (AND) ---------------------------------------- (30) Obligation: Rules: f7052_0_main_LT(c4, x44:0, x45:0, x46:0, x47:0, x48:0, x49:0, x50:0, x43:0) -> f7052_0_main_LT(c5, x44:0, x45:0, x46:0, x47:0, x48:0, x49:0, c6, x43:0) :|: c6 = x50:0 - 1 && (c5 = 0 && c4 = 0) && x50:0 > -1 f6835_0_main_GE(c24, x73:0, x74:0, x75:0, x76:0, x77:0, x78:0, x72:0) -> f7052_0_main_LT(c25, x73:0, x74:0, x75:0, x76:0, x78:0, x77:0, c26, x72:0) :|: c26 = 1000 * x73:0 + 100 * x75:0 + 10 * x76:0 + x77:0 && (c25 = 0 && c24 = 0) && (x77:0 > -1 && 1000 * x73:0 + 100 * x75:0 + 10 * x76:0 >= 0 && 1000 * x73:0 + 100 * x75:0 >= 0 && 10 * x76:0 >= 0 && 1000 * x73:0 >= 0 && x78:0 > x77:0 && 100 * x75:0 >= 0) ---------------------------------------- (31) RankingReductionPairProof (EQUIVALENT) Interpretation: [ f7052_0_main_LT ] = f7052_0_main_LT_8 [ f6835_0_main_GE ] = f6835_0_main_GE_6 + 1000*f6835_0_main_GE_2 + 100*f6835_0_main_GE_4 + 10*f6835_0_main_GE_5 + 1 The following rules are decreasing: f7052_0_main_LT(c4, x44:0, x45:0, x46:0, x47:0, x48:0, x49:0, x50:0, x43:0) -> f7052_0_main_LT(c5, x44:0, x45:0, x46:0, x47:0, x48:0, x49:0, c6, x43:0) :|: c6 = x50:0 - 1 && (c5 = 0 && c4 = 0) && x50:0 > -1 f6835_0_main_GE(c24, x73:0, x74:0, x75:0, x76:0, x77:0, x78:0, x72:0) -> f7052_0_main_LT(c25, x73:0, x74:0, x75:0, x76:0, x78:0, x77:0, c26, x72:0) :|: c26 = 1000 * x73:0 + 100 * x75:0 + 10 * x76:0 + x77:0 && (c25 = 0 && c24 = 0) && (x77:0 > -1 && 1000 * x73:0 + 100 * x75:0 + 10 * x76:0 >= 0 && 1000 * x73:0 + 100 * x75:0 >= 0 && 10 * x76:0 >= 0 && 1000 * x73:0 >= 0 && x78:0 > x77:0 && 100 * x75:0 >= 0) The following rules are bounded: f7052_0_main_LT(c4, x44:0, x45:0, x46:0, x47:0, x48:0, x49:0, x50:0, x43:0) -> f7052_0_main_LT(c5, x44:0, x45:0, x46:0, x47:0, x48:0, x49:0, c6, x43:0) :|: c6 = x50:0 - 1 && (c5 = 0 && c4 = 0) && x50:0 > -1 f6835_0_main_GE(c24, x73:0, x74:0, x75:0, x76:0, x77:0, x78:0, x72:0) -> f7052_0_main_LT(c25, x73:0, x74:0, x75:0, x76:0, x78:0, x77:0, c26, x72:0) :|: c26 = 1000 * x73:0 + 100 * x75:0 + 10 * x76:0 + x77:0 && (c25 = 0 && c24 = 0) && (x77:0 > -1 && 1000 * x73:0 + 100 * x75:0 + 10 * x76:0 >= 0 && 1000 * x73:0 + 100 * x75:0 >= 0 && 10 * x76:0 >= 0 && 1000 * x73:0 >= 0 && x78:0 > x77:0 && 100 * x75:0 >= 0) ---------------------------------------- (32) YES ---------------------------------------- (33) Obligation: Rules: f7052_0_main_LT(c4, x44:0, x45:0, x46:0, x47:0, x48:0, x49:0, x50:0, x43:0) -> f7052_0_main_LT(c5, x44:0, x45:0, x46:0, x47:0, x48:0, x49:0, c6, x43:0) :|: c6 = x50:0 - 1 && (c5 = 0 && c4 = 0) && x50:0 > -1 f7052_0_main_LT(c21, x86:0, x87:0, x88:0, x89:0, x90:0, x91:0, x92:0, x85:0) -> f6835_0_main_GE(c22, x86:0, x87:0, x88:0, x89:0, c23, x90:0, x85:0) :|: c23 = x91:0 + 1 && (c22 = 0 && c21 = 0) && x92:0 < 0 ---------------------------------------- (34) RankingReductionPairProof (EQUIVALENT) Interpretation: [ f7052_0_main_LT ] = 0 [ f6835_0_main_GE ] = -1 The following rules are decreasing: f7052_0_main_LT(c21, x86:0, x87:0, x88:0, x89:0, x90:0, x91:0, x92:0, x85:0) -> f6835_0_main_GE(c22, x86:0, x87:0, x88:0, x89:0, c23, x90:0, x85:0) :|: c23 = x91:0 + 1 && (c22 = 0 && c21 = 0) && x92:0 < 0 The following rules are bounded: f7052_0_main_LT(c4, x44:0, x45:0, x46:0, x47:0, x48:0, x49:0, x50:0, x43:0) -> f7052_0_main_LT(c5, x44:0, x45:0, x46:0, x47:0, x48:0, x49:0, c6, x43:0) :|: c6 = x50:0 - 1 && (c5 = 0 && c4 = 0) && x50:0 > -1 f7052_0_main_LT(c21, x86:0, x87:0, x88:0, x89:0, x90:0, x91:0, x92:0, x85:0) -> f6835_0_main_GE(c22, x86:0, x87:0, x88:0, x89:0, c23, x90:0, x85:0) :|: c23 = x91:0 + 1 && (c22 = 0 && c21 = 0) && x92:0 < 0 ---------------------------------------- (35) Obligation: Rules: f7052_0_main_LT(c4, x44:0, x45:0, x46:0, x47:0, x48:0, x49:0, x50:0, x43:0) -> f7052_0_main_LT(c5, x44:0, x45:0, x46:0, x47:0, x48:0, x49:0, c6, x43:0) :|: c6 = x50:0 - 1 && (c5 = 0 && c4 = 0) && x50:0 > -1 ---------------------------------------- (36) RankingReductionPairProof (EQUIVALENT) Interpretation: [ f7052_0_main_LT ] = f7052_0_main_LT_8 The following rules are decreasing: f7052_0_main_LT(c4, x44:0, x45:0, x46:0, x47:0, x48:0, x49:0, x50:0, x43:0) -> f7052_0_main_LT(c5, x44:0, x45:0, x46:0, x47:0, x48:0, x49:0, c6, x43:0) :|: c6 = x50:0 - 1 && (c5 = 0 && c4 = 0) && x50:0 > -1 The following rules are bounded: f7052_0_main_LT(c4, x44:0, x45:0, x46:0, x47:0, x48:0, x49:0, x50:0, x43:0) -> f7052_0_main_LT(c5, x44:0, x45:0, x46:0, x47:0, x48:0, x49:0, c6, x43:0) :|: c6 = x50:0 - 1 && (c5 = 0 && c4 = 0) && x50:0 > -1 ---------------------------------------- (37) YES ---------------------------------------- (38) Obligation: Rules: f7052_0_main_LT(c4, x44:0, x45:0, x46:0, x47:0, x48:0, x49:0, x50:0, x43:0) -> f7052_0_main_LT(c5, x44:0, x45:0, x46:0, x47:0, x48:0, x49:0, c6, x43:0) :|: c6 = x50:0 - 1 && (c5 = 0 && c4 = 0) && x50:0 > -1 f6835_0_main_GE(c18, x65:0, x66:0, x67:0, x68:0, x69:0, x70:0, x64:0) -> f4006_0_main_LT(c19, x65:0, x66:0, x67:0, c20, x64:0) :|: c20 = x68:0 - 1 && (c19 = 0 && c18 = 0) && x70:0 <= x69:0 f7052_0_main_LT(c21, x86:0, x87:0, x88:0, x89:0, x90:0, x91:0, x92:0, x85:0) -> f6835_0_main_GE(c22, x86:0, x87:0, x88:0, x89:0, c23, x90:0, x85:0) :|: c23 = x91:0 + 1 && (c22 = 0 && c21 = 0) && x92:0 < 0 f6835_0_main_GE(c24, x73:0, x74:0, x75:0, x76:0, x77:0, x78:0, x72:0) -> f7052_0_main_LT(c25, x73:0, x74:0, x75:0, x76:0, x78:0, x77:0, c26, x72:0) :|: c26 = 1000 * x73:0 + 100 * x75:0 + 10 * x76:0 + x77:0 && (c25 = 0 && c24 = 0) && (x77:0 > -1 && 1000 * x73:0 + 100 * x75:0 + 10 * x76:0 >= 0 && 1000 * x73:0 + 100 * x75:0 >= 0 && 10 * x76:0 >= 0 && 1000 * x73:0 >= 0 && x78:0 > x77:0 && 100 * x75:0 >= 0) ---------------------------------------- (39) PolynomialOrderProcessor (EQUIVALENT) Found the following polynomial interpretation: [f7052_0_main_LT(x, x1, x2, x3, x4, x5, x6, x7, x8)] = c*x [f6835_0_main_GE(x9, x10, x11, x12, x13, x14, x15, x16)] = c9*x9 [f4006_0_main_LT(x17, x18, x19, x20, x21, x22)] = -1 + c17*x17 The following rules are decreasing: f6835_0_main_GE(c18, x65:0, x66:0, x67:0, x68:0, x69:0, x70:0, x64:0) -> f4006_0_main_LT(c19, x65:0, x66:0, x67:0, c20, x64:0) :|: c20 = x68:0 - 1 && (c19 = 0 && c18 = 0) && x70:0 <= x69:0 The following rules are bounded: f7052_0_main_LT(c4, x44:0, x45:0, x46:0, x47:0, x48:0, x49:0, x50:0, x43:0) -> f7052_0_main_LT(c5, x44:0, x45:0, x46:0, x47:0, x48:0, x49:0, c6, x43:0) :|: c6 = x50:0 - 1 && (c5 = 0 && c4 = 0) && x50:0 > -1 f6835_0_main_GE(c18, x65:0, x66:0, x67:0, x68:0, x69:0, x70:0, x64:0) -> f4006_0_main_LT(c19, x65:0, x66:0, x67:0, c20, x64:0) :|: c20 = x68:0 - 1 && (c19 = 0 && c18 = 0) && x70:0 <= x69:0 f7052_0_main_LT(c21, x86:0, x87:0, x88:0, x89:0, x90:0, x91:0, x92:0, x85:0) -> f6835_0_main_GE(c22, x86:0, x87:0, x88:0, x89:0, c23, x90:0, x85:0) :|: c23 = x91:0 + 1 && (c22 = 0 && c21 = 0) && x92:0 < 0 f6835_0_main_GE(c24, x73:0, x74:0, x75:0, x76:0, x77:0, x78:0, x72:0) -> f7052_0_main_LT(c25, x73:0, x74:0, x75:0, x76:0, x78:0, x77:0, c26, x72:0) :|: c26 = 1000 * x73:0 + 100 * x75:0 + 10 * x76:0 + x77:0 && (c25 = 0 && c24 = 0) && (x77:0 > -1 && 1000 * x73:0 + 100 * x75:0 + 10 * x76:0 >= 0 && 1000 * x73:0 + 100 * x75:0 >= 0 && 10 * x76:0 >= 0 && 1000 * x73:0 >= 0 && x78:0 > x77:0 && 100 * x75:0 >= 0) ---------------------------------------- (40) Obligation: Rules: f7052_0_main_LT(c4, x44:0, x45:0, x46:0, x47:0, x48:0, x49:0, x50:0, x43:0) -> f7052_0_main_LT(c5, x44:0, x45:0, x46:0, x47:0, x48:0, x49:0, c6, x43:0) :|: c6 = x50:0 - 1 && (c5 = 0 && c4 = 0) && x50:0 > -1 f7052_0_main_LT(c21, x86:0, x87:0, x88:0, x89:0, x90:0, x91:0, x92:0, x85:0) -> f6835_0_main_GE(c22, x86:0, x87:0, x88:0, x89:0, c23, x90:0, x85:0) :|: c23 = x91:0 + 1 && (c22 = 0 && c21 = 0) && x92:0 < 0 f6835_0_main_GE(c24, x73:0, x74:0, x75:0, x76:0, x77:0, x78:0, x72:0) -> f7052_0_main_LT(c25, x73:0, x74:0, x75:0, x76:0, x78:0, x77:0, c26, x72:0) :|: c26 = 1000 * x73:0 + 100 * x75:0 + 10 * x76:0 + x77:0 && (c25 = 0 && c24 = 0) && (x77:0 > -1 && 1000 * x73:0 + 100 * x75:0 + 10 * x76:0 >= 0 && 1000 * x73:0 + 100 * x75:0 >= 0 && 10 * x76:0 >= 0 && 1000 * x73:0 >= 0 && x78:0 > x77:0 && 100 * x75:0 >= 0) ---------------------------------------- (41) RankingReductionPairProof (EQUIVALENT) Interpretation: [ f7052_0_main_LT ] = 2*f7052_0_main_LT_2 + 2*f7052_0_main_LT_4 + 2*f7052_0_main_LT_5 + 2*f7052_0_main_LT_6 + -2*f7052_0_main_LT_7 + -1 [ f6835_0_main_GE ] = 2*f6835_0_main_GE_2 + 2*f6835_0_main_GE_4 + 2*f6835_0_main_GE_5 + 2*f6835_0_main_GE_7 + -2*f6835_0_main_GE_6 The following rules are decreasing: f7052_0_main_LT(c21, x86:0, x87:0, x88:0, x89:0, x90:0, x91:0, x92:0, x85:0) -> f6835_0_main_GE(c22, x86:0, x87:0, x88:0, x89:0, c23, x90:0, x85:0) :|: c23 = x91:0 + 1 && (c22 = 0 && c21 = 0) && x92:0 < 0 f6835_0_main_GE(c24, x73:0, x74:0, x75:0, x76:0, x77:0, x78:0, x72:0) -> f7052_0_main_LT(c25, x73:0, x74:0, x75:0, x76:0, x78:0, x77:0, c26, x72:0) :|: c26 = 1000 * x73:0 + 100 * x75:0 + 10 * x76:0 + x77:0 && (c25 = 0 && c24 = 0) && (x77:0 > -1 && 1000 * x73:0 + 100 * x75:0 + 10 * x76:0 >= 0 && 1000 * x73:0 + 100 * x75:0 >= 0 && 10 * x76:0 >= 0 && 1000 * x73:0 >= 0 && x78:0 > x77:0 && 100 * x75:0 >= 0) The following rules are bounded: f6835_0_main_GE(c24, x73:0, x74:0, x75:0, x76:0, x77:0, x78:0, x72:0) -> f7052_0_main_LT(c25, x73:0, x74:0, x75:0, x76:0, x78:0, x77:0, c26, x72:0) :|: c26 = 1000 * x73:0 + 100 * x75:0 + 10 * x76:0 + x77:0 && (c25 = 0 && c24 = 0) && (x77:0 > -1 && 1000 * x73:0 + 100 * x75:0 + 10 * x76:0 >= 0 && 1000 * x73:0 + 100 * x75:0 >= 0 && 10 * x76:0 >= 0 && 1000 * x73:0 >= 0 && x78:0 > x77:0 && 100 * x75:0 >= 0) ---------------------------------------- (42) Obligation: Rules: f7052_0_main_LT(c4, x44:0, x45:0, x46:0, x47:0, x48:0, x49:0, x50:0, x43:0) -> f7052_0_main_LT(c5, x44:0, x45:0, x46:0, x47:0, x48:0, x49:0, c6, x43:0) :|: c6 = x50:0 - 1 && (c5 = 0 && c4 = 0) && x50:0 > -1 f7052_0_main_LT(c21, x86:0, x87:0, x88:0, x89:0, x90:0, x91:0, x92:0, x85:0) -> f6835_0_main_GE(c22, x86:0, x87:0, x88:0, x89:0, c23, x90:0, x85:0) :|: c23 = x91:0 + 1 && (c22 = 0 && c21 = 0) && x92:0 < 0 ---------------------------------------- (43) RankingReductionPairProof (EQUIVALENT) Interpretation: [ f7052_0_main_LT ] = 0 [ f6835_0_main_GE ] = -1 The following rules are decreasing: f7052_0_main_LT(c21, x86:0, x87:0, x88:0, x89:0, x90:0, x91:0, x92:0, x85:0) -> f6835_0_main_GE(c22, x86:0, x87:0, x88:0, x89:0, c23, x90:0, x85:0) :|: c23 = x91:0 + 1 && (c22 = 0 && c21 = 0) && x92:0 < 0 The following rules are bounded: f7052_0_main_LT(c4, x44:0, x45:0, x46:0, x47:0, x48:0, x49:0, x50:0, x43:0) -> f7052_0_main_LT(c5, x44:0, x45:0, x46:0, x47:0, x48:0, x49:0, c6, x43:0) :|: c6 = x50:0 - 1 && (c5 = 0 && c4 = 0) && x50:0 > -1 f7052_0_main_LT(c21, x86:0, x87:0, x88:0, x89:0, x90:0, x91:0, x92:0, x85:0) -> f6835_0_main_GE(c22, x86:0, x87:0, x88:0, x89:0, c23, x90:0, x85:0) :|: c23 = x91:0 + 1 && (c22 = 0 && c21 = 0) && x92:0 < 0 ---------------------------------------- (44) Obligation: Rules: f7052_0_main_LT(c4, x44:0, x45:0, x46:0, x47:0, x48:0, x49:0, x50:0, x43:0) -> f7052_0_main_LT(c5, x44:0, x45:0, x46:0, x47:0, x48:0, x49:0, c6, x43:0) :|: c6 = x50:0 - 1 && (c5 = 0 && c4 = 0) && x50:0 > -1 ---------------------------------------- (45) PolynomialOrderProcessor (EQUIVALENT) Found the following polynomial interpretation: [f7052_0_main_LT(x, x1, x2, x3, x4, x5, x6, x7, x8)] = c*x + x7 The following rules are decreasing: f7052_0_main_LT(c4, x44:0, x45:0, x46:0, x47:0, x48:0, x49:0, x50:0, x43:0) -> f7052_0_main_LT(c5, x44:0, x45:0, x46:0, x47:0, x48:0, x49:0, c6, x43:0) :|: c6 = x50:0 - 1 && (c5 = 0 && c4 = 0) && x50:0 > -1 The following rules are bounded: f7052_0_main_LT(c4, x44:0, x45:0, x46:0, x47:0, x48:0, x49:0, x50:0, x43:0) -> f7052_0_main_LT(c5, x44:0, x45:0, x46:0, x47:0, x48:0, x49:0, c6, x43:0) :|: c6 = x50:0 - 1 && (c5 = 0 && c4 = 0) && x50:0 > -1 ---------------------------------------- (46) YES