/export/starexec/sandbox/solver/bin/starexec_run_standard /export/starexec/sandbox/benchmark/theBenchmark.jar /export/starexec/sandbox/output/output_files -------------------------------------------------------------------------------- YES proof of /export/starexec/sandbox/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, 97 ms] (2) JBC problem (3) JBCToGraph [EQUIVALENT, 814 ms] (4) JBCTerminationGraph (5) TerminationGraphToSCCProof [SOUND, 14 ms] (6) AND (7) JBCTerminationSCC (8) SCCToIRSProof [SOUND, 100 ms] (9) IRSwT (10) IRSFormatTransformerProof [EQUIVALENT, 0 ms] (11) IRSwT (12) IRSwTTerminationDigraphProof [EQUIVALENT, 19 ms] (13) IRSwT (14) IntTRSCompressionProof [EQUIVALENT, 0 ms] (15) IRSwT (16) TempFilterProof [SOUND, 37 ms] (17) IntTRS (18) PolynomialOrderProcessor [EQUIVALENT, 14 ms] (19) YES (20) JBCTerminationSCC (21) SCCToIRSProof [SOUND, 41 ms] (22) IRSwT (23) IRSFormatTransformerProof [EQUIVALENT, 0 ms] (24) IRSwT (25) IRSwTTerminationDigraphProof [EQUIVALENT, 7 ms] (26) IRSwT (27) IntTRSCompressionProof [EQUIVALENT, 0 ms] (28) IRSwT (29) TempFilterProof [SOUND, 8 ms] (30) IntTRS (31) RankingReductionPairProof [EQUIVALENT, 3 ms] (32) YES (33) JBCTerminationSCC (34) SCCToIRSProof [SOUND, 104 ms] (35) IRSwT (36) IRSFormatTransformerProof [EQUIVALENT, 0 ms] (37) IRSwT (38) IRSwTTerminationDigraphProof [EQUIVALENT, 58 ms] (39) IRSwT (40) IntTRSCompressionProof [EQUIVALENT, 0 ms] (41) IRSwT (42) TempFilterProof [SOUND, 25 ms] (43) IntTRS (44) RankingReductionPairProof [EQUIVALENT, 0 ms] (45) YES (46) JBCTerminationSCC (47) SCCToIRSProof [SOUND, 96 ms] (48) IRSwT (49) IRSFormatTransformerProof [EQUIVALENT, 0 ms] (50) IRSwT (51) IRSwTTerminationDigraphProof [EQUIVALENT, 33 ms] (52) IRSwT (53) IntTRSCompressionProof [EQUIVALENT, 0 ms] (54) IRSwT (55) TempFilterProof [SOUND, 18 ms] (56) IntTRS (57) RankingReductionPairProof [EQUIVALENT, 0 ms] (58) YES (59) JBCTerminationSCC (60) SCCToIRSProof [SOUND, 89 ms] (61) IRSwT (62) IRSFormatTransformerProof [EQUIVALENT, 0 ms] (63) IRSwT (64) IRSwTTerminationDigraphProof [EQUIVALENT, 44 ms] (65) IRSwT (66) IntTRSCompressionProof [EQUIVALENT, 0 ms] (67) IRSwT (68) TempFilterProof [SOUND, 10 ms] (69) IntTRS (70) RankingReductionPairProof [EQUIVALENT, 0 ms] (71) YES (72) JBCTerminationSCC (73) SCCToIRSProof [SOUND, 252 ms] (74) IRSwT (75) IRSFormatTransformerProof [EQUIVALENT, 0 ms] (76) IRSwT (77) IRSwTTerminationDigraphProof [EQUIVALENT, 834 ms] (78) IRSwT (79) IntTRSCompressionProof [EQUIVALENT, 0 ms] (80) IRSwT (81) TempFilterProof [SOUND, 158 ms] (82) IntTRS (83) PolynomialOrderProcessor [EQUIVALENT, 20 ms] (84) IntTRS (85) PolynomialOrderProcessor [EQUIVALENT, 0 ms] (86) IntTRS (87) RankingReductionPairProof [EQUIVALENT, 0 ms] (88) IntTRS (89) RankingReductionPairProof [EQUIVALENT, 0 ms] (90) YES ---------------------------------------- (0) Obligation: need to prove termination of the following program: public class TaylorSeriesRec { public static int power(int a, int b) { if (b <= 0) return 1; else return a * power(a, b-1); } public static int fact(int n) { if (n <= 0) return 1; else return n * fact(n-1); } public static int sin(int x, int n) { if (n <= 0) return x; else return power(-1, n) * power(x, 2*n+1) / fact(2*n+1) + sin(x, n-1); } public static int cos(int x, int n) { if (n <= 0) return 1; else return power(-1, n) * power(x, 2*n) / fact(2*n) + cos(x, n-1); } public static int exp(int x, int n) { if (n <= 0) return 1; else return power(x, n) / fact(n) + exp(x, n-1); } public static void main(String args[]) { for (int i = 0; i < args.length; i++) if (i % 2 == 0) sin(args.length, i); else if (i % 3 == 0) cos(args.length, i); else if (i % 5 == 0) exp(args.length, i); else for (int j = 0; j < 100; j++); } } ---------------------------------------- (1) BareJBCToJBCProof (EQUIVALENT) initialized classpath ---------------------------------------- (2) Obligation: need to prove termination of the following program: public class TaylorSeriesRec { public static int power(int a, int b) { if (b <= 0) return 1; else return a * power(a, b-1); } public static int fact(int n) { if (n <= 0) return 1; else return n * fact(n-1); } public static int sin(int x, int n) { if (n <= 0) return x; else return power(-1, n) * power(x, 2*n+1) / fact(2*n+1) + sin(x, n-1); } public static int cos(int x, int n) { if (n <= 0) return 1; else return power(-1, n) * power(x, 2*n) / fact(2*n) + cos(x, n-1); } public static int exp(int x, int n) { if (n <= 0) return 1; else return power(x, n) / fact(n) + exp(x, n-1); } public static void main(String args[]) { for (int i = 0; i < args.length; i++) if (i % 2 == 0) sin(args.length, i); else if (i % 3 == 0) cos(args.length, i); else if (i % 5 == 0) exp(args.length, i); else for (int j = 0; j < 100; j++); } } ---------------------------------------- (3) JBCToGraph (EQUIVALENT) Constructed TerminationGraph. ---------------------------------------- (4) Obligation: Termination Graph based on JBC Program: TaylorSeriesRec.main([Ljava/lang/String;)V: Graph of 95 nodes with 1 SCC. TaylorSeriesRec.sin(II)I: Graph of 55 nodes with 0 SCCs. TaylorSeriesRec.cos(II)I: Graph of 51 nodes with 0 SCCs. TaylorSeriesRec.exp(II)I: Graph of 39 nodes with 0 SCCs. TaylorSeriesRec.power(II)I: Graph of 22 nodes with 0 SCCs. TaylorSeriesRec.fact(I)I: Graph of 21 nodes with 0 SCCs. ---------------------------------------- (5) TerminationGraphToSCCProof (SOUND) Splitted TerminationGraph to 6 SCCss. ---------------------------------------- (6) Complex Obligation (AND) ---------------------------------------- (7) Obligation: SCC of termination graph based on JBC Program. SCC contains nodes from the following methods: TaylorSeriesRec.fact(I)I SCC calls the following helper methods: TaylorSeriesRec.fact(I)I Performed SCC analyses: *Used field analysis yielded the following read fields: *Marker field analysis yielded the following relations that could be markers: ---------------------------------------- (8) SCCToIRSProof (SOUND) Transformed FIGraph SCCs to intTRSs. Log: Generated rules. Obtained 11 IRulesP rules: f4661_0_fact_GT(EOS(STATIC_4661), i350, i396, i396) -> f4674_0_fact_GT(EOS(STATIC_4674), i350, i396, i396) :|: TRUE f4674_0_fact_GT(EOS(STATIC_4674), i350, i396, i396) -> f4706_0_fact_Load(EOS(STATIC_4706), i350, i396) :|: i396 > 0 f4706_0_fact_Load(EOS(STATIC_4706), i350, i396) -> f4735_0_fact_Load(EOS(STATIC_4735), i350, i396, i396) :|: TRUE f4735_0_fact_Load(EOS(STATIC_4735), i350, i396, i396) -> f4751_0_fact_ConstantStackPush(EOS(STATIC_4751), i350, i396, i396) :|: TRUE f4751_0_fact_ConstantStackPush(EOS(STATIC_4751), i350, i396, i396) -> f4824_0_fact_IntArithmetic(EOS(STATIC_4824), i350, i396, i396, 1) :|: TRUE f4824_0_fact_IntArithmetic(EOS(STATIC_4824), i350, i396, i396, matching1) -> f5284_0_fact_InvokeMethod(EOS(STATIC_5284), i350, i396, i396 - 1) :|: i396 > 0 && matching1 = 1 f5284_0_fact_InvokeMethod(EOS(STATIC_5284), i350, i396, i506) -> f5606_0_fact_Load(EOS(STATIC_5606), i506, i506) :|: i396 >= 1 && i506 < i396 f5284_0_fact_InvokeMethod(EOS(STATIC_5284), i350, i396, i506) -> f5606_1_fact_Load(EOS(STATIC_5606), i350, i396, i506) :|: i396 >= 1 && i506 < i396 f5606_0_fact_Load(EOS(STATIC_5606), i506, i506) -> f5623_0_fact_Load(EOS(STATIC_5623), i506, i506) :|: TRUE f5623_0_fact_Load(EOS(STATIC_5623), i506, i506) -> f4658_0_fact_Load(EOS(STATIC_4658), i506, i506) :|: TRUE f4658_0_fact_Load(EOS(STATIC_4658), i350, i351) -> f4661_0_fact_GT(EOS(STATIC_4661), i350, i351, i351) :|: TRUE Combined rules. Obtained 2 IRulesP rules: f4661_0_fact_GT(EOS(STATIC_4661), i350:0, i396:0, i396:0) -> f4661_0_fact_GT(EOS(STATIC_4661), i396:0 - 1, i396:0 - 1, i396:0 - 1) :|: i396:0 > 0 && i396:0 - 1 < i396:0 Removed following non-SCC rules: f4661_0_fact_GT(EOS(STATIC_4661), i350:0, i396:0, i396:0) -> f5606_1_fact_Load(EOS(STATIC_5606), i350:0, i396:0, i396:0 - 1) :|: i396:0 > 0 && i396:0 - 1 < i396:0 Filtered constant ground arguments: f4661_0_fact_GT(x1, x2, x3, x4) -> f4661_0_fact_GT(x2, x3, x4) EOS(x1) -> EOS Filtered duplicate arguments: f4661_0_fact_GT(x1, x2, x3) -> f4661_0_fact_GT(x1, x3) Filtered unneeded arguments: f4661_0_fact_GT(x1, x2) -> f4661_0_fact_GT(x2) Finished conversion. Obtained 1 rules.P rules: f4661_0_fact_GT(i396:0) -> f4661_0_fact_GT(i396:0 - 1) :|: i396:0 > 0 && i396:0 - 1 < i396:0 ---------------------------------------- (9) Obligation: Rules: f4661_0_fact_GT(i396:0) -> f4661_0_fact_GT(i396:0 - 1) :|: i396:0 > 0 && i396:0 - 1 < i396:0 ---------------------------------------- (10) IRSFormatTransformerProof (EQUIVALENT) Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). ---------------------------------------- (11) Obligation: Rules: f4661_0_fact_GT(i396:0) -> f4661_0_fact_GT(arith) :|: i396:0 > 0 && i396:0 - 1 < i396:0 && arith = i396:0 - 1 ---------------------------------------- (12) IRSwTTerminationDigraphProof (EQUIVALENT) Constructed termination digraph! Nodes: (1) f4661_0_fact_GT(i396:0) -> f4661_0_fact_GT(arith) :|: i396:0 > 0 && i396:0 - 1 < i396:0 && arith = i396:0 - 1 Arcs: (1) -> (1) This digraph is fully evaluated! ---------------------------------------- (13) Obligation: Termination digraph: Nodes: (1) f4661_0_fact_GT(i396:0) -> f4661_0_fact_GT(arith) :|: i396:0 > 0 && i396:0 - 1 < i396:0 && arith = i396:0 - 1 Arcs: (1) -> (1) This digraph is fully evaluated! ---------------------------------------- (14) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (15) Obligation: Rules: f4661_0_fact_GT(i396:0:0) -> f4661_0_fact_GT(i396:0:0 - 1) :|: i396:0:0 > 0 && i396:0:0 - 1 < i396:0:0 ---------------------------------------- (16) TempFilterProof (SOUND) Used the following sort dictionary for filtering: f4661_0_fact_GT(INTEGER) Replaced non-predefined constructor symbols by 0. ---------------------------------------- (17) Obligation: Rules: f4661_0_fact_GT(i396:0:0) -> f4661_0_fact_GT(c) :|: c = i396:0:0 - 1 && (i396:0:0 > 0 && i396:0:0 - 1 < i396:0:0) ---------------------------------------- (18) PolynomialOrderProcessor (EQUIVALENT) Found the following polynomial interpretation: [f4661_0_fact_GT(x)] = x The following rules are decreasing: f4661_0_fact_GT(i396:0:0) -> f4661_0_fact_GT(c) :|: c = i396:0:0 - 1 && (i396:0:0 > 0 && i396:0:0 - 1 < i396:0:0) The following rules are bounded: f4661_0_fact_GT(i396:0:0) -> f4661_0_fact_GT(c) :|: c = i396:0:0 - 1 && (i396:0:0 > 0 && i396:0:0 - 1 < i396:0:0) ---------------------------------------- (19) YES ---------------------------------------- (20) Obligation: SCC of termination graph based on JBC Program. SCC contains nodes from the following methods: TaylorSeriesRec.power(II)I SCC calls the following helper methods: TaylorSeriesRec.power(II)I Performed SCC analyses: *Used field analysis yielded the following read fields: *Marker field analysis yielded the following relations that could be markers: ---------------------------------------- (21) SCCToIRSProof (SOUND) Transformed FIGraph SCCs to intTRSs. Log: Generated rules. Obtained 12 IRulesP rules: f3058_0_power_GT(EOS(STATIC_3058), i216, i224, i224) -> f3074_0_power_GT(EOS(STATIC_3074), i216, i224, i224) :|: TRUE f3074_0_power_GT(EOS(STATIC_3074), i216, i224, i224) -> f3080_0_power_Load(EOS(STATIC_3080), i216, i224) :|: i224 > 0 f3080_0_power_Load(EOS(STATIC_3080), i216, i224) -> f3113_0_power_Load(EOS(STATIC_3113), i216, i224) :|: TRUE f3113_0_power_Load(EOS(STATIC_3113), i216, i224) -> f3156_0_power_Load(EOS(STATIC_3156), i216, i224) :|: TRUE f3156_0_power_Load(EOS(STATIC_3156), i216, i224) -> f3682_0_power_ConstantStackPush(EOS(STATIC_3682), i216, i224) :|: TRUE f3682_0_power_ConstantStackPush(EOS(STATIC_3682), i216, i224) -> f3714_0_power_IntArithmetic(EOS(STATIC_3714), i216, i224, 1) :|: TRUE f3714_0_power_IntArithmetic(EOS(STATIC_3714), i216, i224, matching1) -> f3733_0_power_InvokeMethod(EOS(STATIC_3733), i216, i224 - 1) :|: i224 > 0 && matching1 = 1 f3733_0_power_InvokeMethod(EOS(STATIC_3733), i216, i272) -> f3849_0_power_Load(EOS(STATIC_3849), i272, i272) :|: TRUE f3733_0_power_InvokeMethod(EOS(STATIC_3733), i216, i272) -> f3849_1_power_Load(EOS(STATIC_3849), i216, i272) :|: TRUE f3849_0_power_Load(EOS(STATIC_3849), i272, i272) -> f3951_0_power_Load(EOS(STATIC_3951), i272, i272) :|: TRUE f3951_0_power_Load(EOS(STATIC_3951), i272, i272) -> f3029_0_power_Load(EOS(STATIC_3029), i272, i272) :|: TRUE f3029_0_power_Load(EOS(STATIC_3029), i216, i217) -> f3058_0_power_GT(EOS(STATIC_3058), i216, i217, i217) :|: TRUE Combined rules. Obtained 2 IRulesP rules: f3058_0_power_GT(EOS(STATIC_3058), i216:0, i224:0, i224:0) -> f3058_0_power_GT(EOS(STATIC_3058), i224:0 - 1, i224:0 - 1, i224:0 - 1) :|: i224:0 > 0 Removed following non-SCC rules: f3058_0_power_GT(EOS(STATIC_3058), i216:0, i224:0, i224:0) -> f3849_1_power_Load(EOS(STATIC_3849), i216:0, i224:0 - 1) :|: i224:0 > 0 Filtered constant ground arguments: f3058_0_power_GT(x1, x2, x3, x4) -> f3058_0_power_GT(x2, x3, x4) EOS(x1) -> EOS Filtered duplicate arguments: f3058_0_power_GT(x1, x2, x3) -> f3058_0_power_GT(x1, x3) Filtered unneeded arguments: f3058_0_power_GT(x1, x2) -> f3058_0_power_GT(x2) Finished conversion. Obtained 1 rules.P rules: f3058_0_power_GT(i224:0) -> f3058_0_power_GT(i224:0 - 1) :|: i224:0 > 0 ---------------------------------------- (22) Obligation: Rules: f3058_0_power_GT(i224:0) -> f3058_0_power_GT(i224:0 - 1) :|: i224:0 > 0 ---------------------------------------- (23) IRSFormatTransformerProof (EQUIVALENT) Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). ---------------------------------------- (24) Obligation: Rules: f3058_0_power_GT(i224:0) -> f3058_0_power_GT(arith) :|: i224:0 > 0 && arith = i224:0 - 1 ---------------------------------------- (25) IRSwTTerminationDigraphProof (EQUIVALENT) Constructed termination digraph! Nodes: (1) f3058_0_power_GT(i224:0) -> f3058_0_power_GT(arith) :|: i224:0 > 0 && arith = i224:0 - 1 Arcs: (1) -> (1) This digraph is fully evaluated! ---------------------------------------- (26) Obligation: Termination digraph: Nodes: (1) f3058_0_power_GT(i224:0) -> f3058_0_power_GT(arith) :|: i224:0 > 0 && arith = i224:0 - 1 Arcs: (1) -> (1) This digraph is fully evaluated! ---------------------------------------- (27) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (28) Obligation: Rules: f3058_0_power_GT(i224:0:0) -> f3058_0_power_GT(i224:0:0 - 1) :|: i224:0:0 > 0 ---------------------------------------- (29) TempFilterProof (SOUND) Used the following sort dictionary for filtering: f3058_0_power_GT(INTEGER) Replaced non-predefined constructor symbols by 0. ---------------------------------------- (30) Obligation: Rules: f3058_0_power_GT(i224:0:0) -> f3058_0_power_GT(c) :|: c = i224:0:0 - 1 && i224:0:0 > 0 ---------------------------------------- (31) RankingReductionPairProof (EQUIVALENT) Interpretation: [ f3058_0_power_GT ] = f3058_0_power_GT_1 The following rules are decreasing: f3058_0_power_GT(i224:0:0) -> f3058_0_power_GT(c) :|: c = i224:0:0 - 1 && i224:0:0 > 0 The following rules are bounded: f3058_0_power_GT(i224:0:0) -> f3058_0_power_GT(c) :|: c = i224:0:0 - 1 && i224:0:0 > 0 ---------------------------------------- (32) YES ---------------------------------------- (33) Obligation: SCC of termination graph based on JBC Program. SCC contains nodes from the following methods: TaylorSeriesRec.exp(II)I SCC calls the following helper methods: TaylorSeriesRec.power(II)I, TaylorSeriesRec.fact(I)I, TaylorSeriesRec.exp(II)I Performed SCC analyses: *Used field analysis yielded the following read fields: *Marker field analysis yielded the following relations that could be markers: ---------------------------------------- (34) SCCToIRSProof (SOUND) Transformed FIGraph SCCs to intTRSs. Log: Generated rules. Obtained 33 IRulesP rules: f3040_0_exp_GT(EOS(STATIC_3040), i221, i221, i221) -> f3069_0_exp_GT(EOS(STATIC_3069), i221, i221, i221) :|: TRUE f3069_0_exp_GT(EOS(STATIC_3069), i221, i221, i221) -> f3077_0_exp_Load(EOS(STATIC_3077), i221, i221) :|: i221 > 0 f3077_0_exp_Load(EOS(STATIC_3077), i221, i221) -> f3106_0_exp_Load(EOS(STATIC_3106), i221, i221) :|: TRUE f3106_0_exp_Load(EOS(STATIC_3106), i221, i221) -> f3138_0_exp_InvokeMethod(EOS(STATIC_3138), i221, i221, i221) :|: TRUE f3138_0_exp_InvokeMethod(EOS(STATIC_3138), i221, i221, i221) -> f3178_0_power_Load(EOS(STATIC_3178), i221, i221) :|: i222 > 1 && i221 >= 1 && i222 > i221 f3138_0_exp_InvokeMethod(EOS(STATIC_3138), i221, i221, i221) -> f3178_1_power_Load(EOS(STATIC_3178), i221, i221, i221) :|: i222 > 1 && i221 >= 1 && i222 > i221 f3178_0_power_Load(EOS(STATIC_3178), i221, i221) -> f6720_0_power_Load(EOS(STATIC_6720), i221, i221) :|: TRUE f4536_0_power_Return(EOS(STATIC_4536), i292, i292) -> f4554_0_exp_Load(EOS(STATIC_4554), i292, i292) :|: TRUE f4554_0_exp_Load(EOS(STATIC_4554), i292, i292) -> f5503_0_exp_Load(EOS(STATIC_5503), i292, i292) :|: TRUE f5503_0_exp_Load(EOS(STATIC_5503), i480, i480) -> f5612_0_exp_InvokeMethod(EOS(STATIC_5612), i480, i480, i480) :|: TRUE f5612_0_exp_InvokeMethod(EOS(STATIC_5612), i480, i480, i480) -> f5630_0_fact_Load(EOS(STATIC_5630), i480, i480) :|: i479 > 1 && i480 >= 1 && i479 > i480 f5612_0_exp_InvokeMethod(EOS(STATIC_5612), i480, i480, i480) -> f5630_1_fact_Load(EOS(STATIC_5630), i480, i480, i480) :|: i479 > 1 && i480 >= 1 && i479 > i480 f5630_0_fact_Load(EOS(STATIC_5630), i480, i480) -> f6742_0_fact_Load(EOS(STATIC_6742), i480, i480) :|: TRUE f6029_0_fact_Return(EOS(STATIC_6029), i597, i597) -> f6041_0_exp_IntArithmetic(EOS(STATIC_6041), i597, i597) :|: TRUE f6041_0_exp_IntArithmetic(EOS(STATIC_6041), i597, i597) -> f6467_0_exp_IntArithmetic(EOS(STATIC_6467), i597, i597) :|: TRUE f6467_0_exp_IntArithmetic(EOS(STATIC_6467), i633, i633) -> f6475_0_exp_Load(EOS(STATIC_6475), i633, i633) :|: i671 = i478 / i631 f6475_0_exp_Load(EOS(STATIC_6475), i633, i633) -> f6483_0_exp_Load(EOS(STATIC_6483), i633, i633) :|: TRUE f6483_0_exp_Load(EOS(STATIC_6483), i633, i633) -> f6490_0_exp_ConstantStackPush(EOS(STATIC_6490), i633, i633) :|: TRUE f6490_0_exp_ConstantStackPush(EOS(STATIC_6490), i633, i633) -> f6498_0_exp_IntArithmetic(EOS(STATIC_6498), i633, i633, 1) :|: TRUE f6498_0_exp_IntArithmetic(EOS(STATIC_6498), i633, i633, matching1) -> f6503_0_exp_InvokeMethod(EOS(STATIC_6503), i633, i633 - 1) :|: i633 > 0 && matching1 = 1 f6503_0_exp_InvokeMethod(EOS(STATIC_6503), i633, i695) -> f6509_0_exp_Load(EOS(STATIC_6509), i695, i695) :|: i479 > 1 && i633 >= 1 && i633 < i479 && i695 < i633 && i695 < i479 f6503_0_exp_InvokeMethod(EOS(STATIC_6503), i633, i695) -> f6509_1_exp_Load(EOS(STATIC_6509), i633, i695) :|: i479 > 1 && i633 >= 1 && i633 < i479 && i695 < i633 && i695 < i479 f6509_0_exp_Load(EOS(STATIC_6509), i695, i695) -> f6512_0_exp_Load(EOS(STATIC_6512), i695, i695) :|: TRUE f6512_0_exp_Load(EOS(STATIC_6512), i695, i695) -> f2992_0_exp_Load(EOS(STATIC_2992), i695, i695) :|: TRUE f2992_0_exp_Load(EOS(STATIC_2992), i199, i199) -> f3040_0_exp_GT(EOS(STATIC_3040), i199, i199, i199) :|: TRUE f6497_0_fact_Return(EOS(STATIC_6497), i690, i690) -> f6253_0_fact_Return(EOS(STATIC_6253), i690, i690) :|: TRUE f6253_0_fact_Return(EOS(STATIC_6253), i633, i633) -> f6467_0_exp_IntArithmetic(EOS(STATIC_6467), i633, i633) :|: TRUE f5873_0_power_Return(EOS(STATIC_5873), i548, i548) -> f5079_0_power_Return(EOS(STATIC_5079), i548, i548) :|: TRUE f5079_0_power_Return(EOS(STATIC_5079), i480, i480) -> f5503_0_exp_Load(EOS(STATIC_5503), i480, i480) :|: TRUE f3178_1_power_Load(EOS(STATIC_3178), i292, i292, i292) -> f4536_0_power_Return(EOS(STATIC_4536), i292, i292) :|: TRUE f3178_1_power_Load(EOS(STATIC_3178), i548, i548, i548) -> f5873_0_power_Return(EOS(STATIC_5873), i548, i548) :|: TRUE f5630_1_fact_Load(EOS(STATIC_5630), i597, i597, i597) -> f6029_0_fact_Return(EOS(STATIC_6029), i597, i597) :|: TRUE f5630_1_fact_Load(EOS(STATIC_5630), i690, i690, i690) -> f6497_0_fact_Return(EOS(STATIC_6497), i690, i690) :|: TRUE Combined rules. Obtained 7 IRulesP rules: f5612_0_exp_InvokeMethod(EOS(STATIC_5612), i480:0, i480:0, i480:0) -> f5612_0_exp_InvokeMethod'(EOS(STATIC_5612), i480:0, i480:0, i480:0) :|: i480:0 > 0 && i479:0 > 1 && i480:0 < i479:0 f5612_0_exp_InvokeMethod'(EOS(STATIC_5612), i480:0, i480:0, i480:0) -> f6503_0_exp_InvokeMethod(EOS(STATIC_6503), i480:0, i480:0 - 1) :|: i480:0 > 0 && i479:0 > 1 && i480:0 < i479:0 && i631:0 > i478:0 - i631:0 * div && i478:0 - i631:0 * div + i631:0 > 0 f6503_0_exp_InvokeMethod(EOS(STATIC_6503), i633:0, i695:0) -> f5612_0_exp_InvokeMethod(EOS(STATIC_5612), i695:0, i695:0, i695:0) :|: i633:0 > 0 && i479:0 > 1 && i633:0 < i479:0 && i695:0 > 0 && i695:0 < i633:0 && i222:0 > 1 && i695:0 < i222:0 && i695:0 < i479:0 f5612_0_exp_InvokeMethod(EOS(STATIC_5612), i480:0, i480:0, i480:0) -> f5612_0_exp_InvokeMethod'(EOS(STATIC_5612), i480:0, i480:0, i480:0) :|: i480:0 > 0 && i480:0 < i479:0 && i479:0 > 1 Removed following non-SCC rules: f6503_0_exp_InvokeMethod(EOS(STATIC_6503), i633:0, i695:0) -> f6509_1_exp_Load(EOS(STATIC_6509), i633:0, i695:0) :|: i633:0 > 0 && i479:0 > 1 && i633:0 < i479:0 && i695:0 < i479:0 && i695:0 < i633:0 f6503_0_exp_InvokeMethod(EOS(STATIC_6503), i633:0, i695:0) -> f6720_0_power_Load(EOS(STATIC_6720), i695:0, i695:0) :|: i633:0 > 0 && i479:0 > 1 && i633:0 < i479:0 && i695:0 > 0 && i695:0 < i633:0 && i222:0 > 1 && i695:0 < i222:0 && i695:0 < i479:0 f5612_0_exp_InvokeMethod(EOS(STATIC_5612), i480:0, i480:0, i480:0) -> f6742_0_fact_Load(EOS(STATIC_6742), i480:0, i480:0) :|: i480:0 > 0 && i480:0 < i479:0 && i479:0 > 1 Filtered constant ground arguments: f5612_0_exp_InvokeMethod(x1, x2, x3, x4) -> f5612_0_exp_InvokeMethod(x2, x3, x4) f5612_0_exp_InvokeMethod'(x1, x2, x3, x4) -> f5612_0_exp_InvokeMethod'(x2, x3, x4) f6503_0_exp_InvokeMethod(x1, x2, x3) -> f6503_0_exp_InvokeMethod(x2, x3) Filtered duplicate arguments: f5612_0_exp_InvokeMethod(x1, x2, x3) -> f5612_0_exp_InvokeMethod(x3) f5612_0_exp_InvokeMethod'(x1, x2, x3) -> f5612_0_exp_InvokeMethod'(x3) Finished conversion. Obtained 4 rules.P rules: f5612_0_exp_InvokeMethod(i480:0) -> f5612_0_exp_InvokeMethod'(i480:0) :|: i479:0 > 1 && i480:0 < i479:0 && i480:0 > 0 f5612_0_exp_InvokeMethod'(i480:0) -> f6503_0_exp_InvokeMethod(i480:0, i480:0 - 1) :|: i479:0 > 1 && i480:0 > 0 && i480:0 < i479:0 && i478:0 - i631:0 * div + i631:0 > 0 && i631:0 > i478:0 - i631:0 * div f6503_0_exp_InvokeMethod(i633:0, i695:0) -> f5612_0_exp_InvokeMethod(i695:0) :|: i479:0 > 1 && i633:0 > 0 && i633:0 < i479:0 && i695:0 > 0 && i695:0 < i633:0 && i222:0 > 1 && i695:0 < i479:0 && i695:0 < i222:0 f5612_0_exp_InvokeMethod(i480:0) -> f5612_0_exp_InvokeMethod'(i480:0) :|: i480:0 < i479:0 && i479:0 > 1 && i480:0 > 0 ---------------------------------------- (35) Obligation: Rules: f5612_0_exp_InvokeMethod(i480:0) -> f5612_0_exp_InvokeMethod'(i480:0) :|: i479:0 > 1 && i480:0 < i479:0 && i480:0 > 0 f5612_0_exp_InvokeMethod'(x) -> f6503_0_exp_InvokeMethod(x, x - 1) :|: x1 > 1 && x > 0 && x < x1 && x2 - x3 * x4 + x3 > 0 && x3 > x2 - x3 * x4 f6503_0_exp_InvokeMethod(x5, x6) -> f5612_0_exp_InvokeMethod(x6) :|: x7 > 1 && x5 > 0 && x5 < x7 && x6 > 0 && x6 < x5 && x8 > 1 && x6 < x7 && x6 < x8 f5612_0_exp_InvokeMethod(x9) -> f5612_0_exp_InvokeMethod'(x9) :|: x9 < x10 && x10 > 1 && x9 > 0 ---------------------------------------- (36) IRSFormatTransformerProof (EQUIVALENT) Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). ---------------------------------------- (37) Obligation: Rules: f5612_0_exp_InvokeMethod(i480:0) -> f5612_0_exp_InvokeMethod'(i480:0) :|: i479:0 > 1 && i480:0 < i479:0 && i480:0 > 0 f5612_0_exp_InvokeMethod'(x) -> f6503_0_exp_InvokeMethod(x, arith) :|: x1 > 1 && x > 0 && x < x1 && x2 - x3 * x4 + x3 > 0 && x3 > x2 - x3 * x4 && arith = x - 1 f6503_0_exp_InvokeMethod(x5, x6) -> f5612_0_exp_InvokeMethod(x6) :|: x7 > 1 && x5 > 0 && x5 < x7 && x6 > 0 && x6 < x5 && x8 > 1 && x6 < x7 && x6 < x8 f5612_0_exp_InvokeMethod(x9) -> f5612_0_exp_InvokeMethod'(x9) :|: x9 < x10 && x10 > 1 && x9 > 0 ---------------------------------------- (38) IRSwTTerminationDigraphProof (EQUIVALENT) Constructed termination digraph! Nodes: (1) f5612_0_exp_InvokeMethod(i480:0) -> f5612_0_exp_InvokeMethod'(i480:0) :|: i479:0 > 1 && i480:0 < i479:0 && i480:0 > 0 (2) f5612_0_exp_InvokeMethod'(x) -> f6503_0_exp_InvokeMethod(x, arith) :|: x1 > 1 && x > 0 && x < x1 && x2 - x3 * x4 + x3 > 0 && x3 > x2 - x3 * x4 && arith = x - 1 (3) f6503_0_exp_InvokeMethod(x5, x6) -> f5612_0_exp_InvokeMethod(x6) :|: x7 > 1 && x5 > 0 && x5 < x7 && x6 > 0 && x6 < x5 && x8 > 1 && x6 < x7 && x6 < x8 (4) f5612_0_exp_InvokeMethod(x9) -> f5612_0_exp_InvokeMethod'(x9) :|: x9 < x10 && x10 > 1 && x9 > 0 Arcs: (1) -> (2) (2) -> (3) (3) -> (1), (4) (4) -> (2) This digraph is fully evaluated! ---------------------------------------- (39) Obligation: Termination digraph: Nodes: (1) f5612_0_exp_InvokeMethod(i480:0) -> f5612_0_exp_InvokeMethod'(i480:0) :|: i479:0 > 1 && i480:0 < i479:0 && i480:0 > 0 (2) f6503_0_exp_InvokeMethod(x5, x6) -> f5612_0_exp_InvokeMethod(x6) :|: x7 > 1 && x5 > 0 && x5 < x7 && x6 > 0 && x6 < x5 && x8 > 1 && x6 < x7 && x6 < x8 (3) f5612_0_exp_InvokeMethod'(x) -> f6503_0_exp_InvokeMethod(x, arith) :|: x1 > 1 && x > 0 && x < x1 && x2 - x3 * x4 + x3 > 0 && x3 > x2 - x3 * x4 && arith = x - 1 (4) f5612_0_exp_InvokeMethod(x9) -> f5612_0_exp_InvokeMethod'(x9) :|: x9 < x10 && x10 > 1 && x9 > 0 Arcs: (1) -> (3) (2) -> (1), (4) (3) -> (2) (4) -> (3) This digraph is fully evaluated! ---------------------------------------- (40) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (41) Obligation: Rules: f6503_0_exp_InvokeMethod(x5:0, x6:0) -> f6503_0_exp_InvokeMethod(x6:0, x6:0 - 1) :|: x7:0 > x6:0 && x8:0 > x6:0 && x8:0 > 1 && i479:0:0 > 1 && x6:0 < i479:0:0 && x3:0 > x2:0 - x3:0 * x4:0 && x6:0 < x5:0 && x2:0 - x3:0 * x4:0 + x3:0 > 0 && x6:0 < x1:0 && x7:0 > x5:0 && x1:0 > 1 && x6:0 > 0 && x5:0 > 0 && x7:0 > 1 f6503_0_exp_InvokeMethod(x, x1) -> f6503_0_exp_InvokeMethod(x1, x1 - 1) :|: x2 > x1 && x3 > x1 && x3 > 1 && x1 < x4 && x4 > 1 && x5 > x6 - x5 * x7 && x1 < x && x6 - x5 * x7 + x5 > 0 && x1 < x8 && x2 > x && x8 > 1 && x1 > 0 && x > 0 && x2 > 1 ---------------------------------------- (42) TempFilterProof (SOUND) Used the following sort dictionary for filtering: f6503_0_exp_InvokeMethod(INTEGER, INTEGER) Replaced non-predefined constructor symbols by 0. ---------------------------------------- (43) Obligation: Rules: f6503_0_exp_InvokeMethod(x5:0, x6:0) -> f6503_0_exp_InvokeMethod(x6:0, c) :|: c = x6:0 - 1 && (x7:0 > x6:0 && x8:0 > x6:0 && x8:0 > 1 && i479:0:0 > 1 && x6:0 < i479:0:0 && x3:0 > x2:0 - x3:0 * x4:0 && x6:0 < x5:0 && x2:0 - x3:0 * x4:0 + x3:0 > 0 && x6:0 < x1:0 && x7:0 > x5:0 && x1:0 > 1 && x6:0 > 0 && x5:0 > 0 && x7:0 > 1) f6503_0_exp_InvokeMethod(x, x1) -> f6503_0_exp_InvokeMethod(x1, c1) :|: c1 = x1 - 1 && (x2 > x1 && x3 > x1 && x3 > 1 && x1 < x4 && x4 > 1 && x5 > x6 - x5 * x7 && x1 < x && x6 - x5 * x7 + x5 > 0 && x1 < x8 && x2 > x && x8 > 1 && x1 > 0 && x > 0 && x2 > 1) ---------------------------------------- (44) RankingReductionPairProof (EQUIVALENT) Interpretation: [ f6503_0_exp_InvokeMethod ] = f6503_0_exp_InvokeMethod_1 The following rules are decreasing: f6503_0_exp_InvokeMethod(x5:0, x6:0) -> f6503_0_exp_InvokeMethod(x6:0, c) :|: c = x6:0 - 1 && (x7:0 > x6:0 && x8:0 > x6:0 && x8:0 > 1 && i479:0:0 > 1 && x6:0 < i479:0:0 && x3:0 > x2:0 - x3:0 * x4:0 && x6:0 < x5:0 && x2:0 - x3:0 * x4:0 + x3:0 > 0 && x6:0 < x1:0 && x7:0 > x5:0 && x1:0 > 1 && x6:0 > 0 && x5:0 > 0 && x7:0 > 1) f6503_0_exp_InvokeMethod(x, x1) -> f6503_0_exp_InvokeMethod(x1, c1) :|: c1 = x1 - 1 && (x2 > x1 && x3 > x1 && x3 > 1 && x1 < x4 && x4 > 1 && x5 > x6 - x5 * x7 && x1 < x && x6 - x5 * x7 + x5 > 0 && x1 < x8 && x2 > x && x8 > 1 && x1 > 0 && x > 0 && x2 > 1) The following rules are bounded: f6503_0_exp_InvokeMethod(x5:0, x6:0) -> f6503_0_exp_InvokeMethod(x6:0, c) :|: c = x6:0 - 1 && (x7:0 > x6:0 && x8:0 > x6:0 && x8:0 > 1 && i479:0:0 > 1 && x6:0 < i479:0:0 && x3:0 > x2:0 - x3:0 * x4:0 && x6:0 < x5:0 && x2:0 - x3:0 * x4:0 + x3:0 > 0 && x6:0 < x1:0 && x7:0 > x5:0 && x1:0 > 1 && x6:0 > 0 && x5:0 > 0 && x7:0 > 1) f6503_0_exp_InvokeMethod(x, x1) -> f6503_0_exp_InvokeMethod(x1, c1) :|: c1 = x1 - 1 && (x2 > x1 && x3 > x1 && x3 > 1 && x1 < x4 && x4 > 1 && x5 > x6 - x5 * x7 && x1 < x && x6 - x5 * x7 + x5 > 0 && x1 < x8 && x2 > x && x8 > 1 && x1 > 0 && x > 0 && x2 > 1) ---------------------------------------- (45) YES ---------------------------------------- (46) Obligation: SCC of termination graph based on JBC Program. SCC contains nodes from the following methods: TaylorSeriesRec.cos(II)I SCC calls the following helper methods: TaylorSeriesRec.power(II)I, TaylorSeriesRec.fact(I)I, TaylorSeriesRec.cos(II)I Performed SCC analyses: *Used field analysis yielded the following read fields: *Marker field analysis yielded the following relations that could be markers: ---------------------------------------- (47) SCCToIRSProof (SOUND) Transformed FIGraph SCCs to intTRSs. Log: Generated rules. Obtained 47 IRulesP rules: f2536_0_cos_GT(EOS(STATIC_2536), i176, i176, i176) -> f2634_0_cos_GT(EOS(STATIC_2634), i176, i176, i176) :|: TRUE f2634_0_cos_GT(EOS(STATIC_2634), i176, i176, i176) -> f2653_0_cos_ConstantStackPush(EOS(STATIC_2653), i176, i176) :|: i176 > 0 f2653_0_cos_ConstantStackPush(EOS(STATIC_2653), i176, i176) -> f2839_0_cos_Load(EOS(STATIC_2839), i176, i176) :|: TRUE f2839_0_cos_Load(EOS(STATIC_2839), i176, i176) -> f3000_0_cos_InvokeMethod(EOS(STATIC_3000), i176, i176, i176) :|: TRUE f3000_0_cos_InvokeMethod(EOS(STATIC_3000), i176, i176, i176) -> f3053_0_power_Load(EOS(STATIC_3053), i176, i176) :|: i177 > 1 && i176 >= 1 && i177 > i176 f3000_0_cos_InvokeMethod(EOS(STATIC_3000), i176, i176, i176) -> f3053_1_power_Load(EOS(STATIC_3053), i176, i176, i176) :|: i177 > 1 && i176 >= 1 && i177 > i176 f3053_0_power_Load(EOS(STATIC_3053), i176, i176) -> f6924_0_power_Load(EOS(STATIC_6924), i176, i176) :|: TRUE f3712_0_power_Return(EOS(STATIC_3712), i269, i269) -> f3730_0_cos_Load(EOS(STATIC_3730), i269, i269) :|: TRUE f3730_0_cos_Load(EOS(STATIC_3730), i269, i269) -> f5458_0_cos_Load(EOS(STATIC_5458), i269, i269) :|: TRUE f5458_0_cos_Load(EOS(STATIC_5458), i477, i477) -> f5610_0_cos_ConstantStackPush(EOS(STATIC_5610), i477, i477) :|: TRUE f5610_0_cos_ConstantStackPush(EOS(STATIC_5610), i477, i477) -> f5628_0_cos_Load(EOS(STATIC_5628), i477, i477, 2) :|: TRUE f5628_0_cos_Load(EOS(STATIC_5628), i477, i477, matching1) -> f5641_0_cos_IntArithmetic(EOS(STATIC_5641), i477, i477, 2, i477) :|: TRUE && matching1 = 2 f5641_0_cos_IntArithmetic(EOS(STATIC_5641), i477, i477, matching1, i477) -> f5686_0_cos_InvokeMethod(EOS(STATIC_5686), i477, i477, 2 * i477) :|: i477 >= 1 && matching1 = 2 f5686_0_cos_InvokeMethod(EOS(STATIC_5686), i477, i477, i560) -> f5988_0_power_Load(EOS(STATIC_5988), i560, i560) :|: i177 > 1 && i477 >= 1 && i560 > 1 && i177 > i477 f5686_0_cos_InvokeMethod(EOS(STATIC_5686), i477, i477, i560) -> f5988_1_power_Load(EOS(STATIC_5988), i477, i477, i560) :|: i177 > 1 && i477 >= 1 && i560 > 1 && i177 > i477 f5988_0_power_Load(EOS(STATIC_5988), i560, i560) -> f6952_0_power_Load(EOS(STATIC_6952), i560, i560) :|: TRUE f6236_0_power_Return(EOS(STATIC_6236), i477, i477) -> f6281_0_cos_IntArithmetic(EOS(STATIC_6281), i477, i477) :|: TRUE f6281_0_cos_IntArithmetic(EOS(STATIC_6281), i477, i477) -> f6411_0_cos_IntArithmetic(EOS(STATIC_6411), i477, i477) :|: TRUE f6411_0_cos_IntArithmetic(EOS(STATIC_6411), i477, i477) -> f6470_0_cos_ConstantStackPush(EOS(STATIC_6470), i477, i477) :|: TRUE f6470_0_cos_ConstantStackPush(EOS(STATIC_6470), i477, i477) -> f6478_0_cos_Load(EOS(STATIC_6478), i477, i477, 2) :|: TRUE f6478_0_cos_Load(EOS(STATIC_6478), i477, i477, matching1) -> f6485_0_cos_IntArithmetic(EOS(STATIC_6485), i477, i477, 2, i477) :|: TRUE && matching1 = 2 f6485_0_cos_IntArithmetic(EOS(STATIC_6485), i477, i477, matching1, i477) -> f6492_0_cos_InvokeMethod(EOS(STATIC_6492), i477, i477, 2 * i477) :|: i477 >= 1 && matching1 = 2 f6492_0_cos_InvokeMethod(EOS(STATIC_6492), i477, i477, i691) -> f6500_0_fact_Load(EOS(STATIC_6500), i691, i691) :|: i622 > 1 && i477 >= 1 && i691 > 1 && i477 < i622 f6492_0_cos_InvokeMethod(EOS(STATIC_6492), i477, i477, i691) -> f6500_1_fact_Load(EOS(STATIC_6500), i477, i477, i691) :|: i622 > 1 && i477 >= 1 && i691 > 1 && i477 < i622 f6500_0_fact_Load(EOS(STATIC_6500), i691, i691) -> f6980_0_fact_Load(EOS(STATIC_6980), i691, i691) :|: TRUE f6520_0_fact_Return(EOS(STATIC_6520), i477, i477) -> f6524_0_cos_IntArithmetic(EOS(STATIC_6524), i477, i477) :|: TRUE f6524_0_cos_IntArithmetic(EOS(STATIC_6524), i477, i477) -> f6525_0_cos_IntArithmetic(EOS(STATIC_6525), i477, i477) :|: TRUE f6525_0_cos_IntArithmetic(EOS(STATIC_6525), i477, i477) -> f6530_0_cos_Load(EOS(STATIC_6530), i477, i477) :|: i730 = i669 / i715 f6530_0_cos_Load(EOS(STATIC_6530), i477, i477) -> f6533_0_cos_Load(EOS(STATIC_6533), i477, i477) :|: TRUE f6533_0_cos_Load(EOS(STATIC_6533), i477, i477) -> f6538_0_cos_ConstantStackPush(EOS(STATIC_6538), i477, i477) :|: TRUE f6538_0_cos_ConstantStackPush(EOS(STATIC_6538), i477, i477) -> f6543_0_cos_IntArithmetic(EOS(STATIC_6543), i477, i477, 1) :|: TRUE f6543_0_cos_IntArithmetic(EOS(STATIC_6543), i477, i477, matching1) -> f6546_0_cos_InvokeMethod(EOS(STATIC_6546), i477, i477 - 1) :|: i477 > 0 && matching1 = 1 f6546_0_cos_InvokeMethod(EOS(STATIC_6546), i477, i759) -> f6552_0_cos_Load(EOS(STATIC_6552), i759, i759) :|: i622 > 1 && i477 >= 1 && i622 > i477 && i759 < i477 && i759 < i622 f6546_0_cos_InvokeMethod(EOS(STATIC_6546), i477, i759) -> f6552_1_cos_Load(EOS(STATIC_6552), i477, i759) :|: i622 > 1 && i477 >= 1 && i622 > i477 && i759 < i477 && i759 < i622 f6552_0_cos_Load(EOS(STATIC_6552), i759, i759) -> f6557_0_cos_Load(EOS(STATIC_6557), i759, i759) :|: TRUE f6557_0_cos_Load(EOS(STATIC_6557), i759, i759) -> f2515_0_cos_Load(EOS(STATIC_2515), i759, i759) :|: TRUE f2515_0_cos_Load(EOS(STATIC_2515), i159, i159) -> f2536_0_cos_GT(EOS(STATIC_2536), i159, i159, i159) :|: TRUE f6521_0_fact_Return(EOS(STATIC_6521), i477, i477) -> f6525_0_cos_IntArithmetic(EOS(STATIC_6525), i477, i477) :|: TRUE f6238_0_power_Return(EOS(STATIC_6238), i477, i477) -> f6411_0_cos_IntArithmetic(EOS(STATIC_6411), i477, i477) :|: TRUE f5845_0_power_Return(EOS(STATIC_5845), i543, i543) -> f5046_0_power_Return(EOS(STATIC_5046), i543, i543) :|: TRUE f5046_0_power_Return(EOS(STATIC_5046), i477, i477) -> f5458_0_cos_Load(EOS(STATIC_5458), i477, i477) :|: TRUE f3053_1_power_Load(EOS(STATIC_3053), i269, i269, i269) -> f3712_0_power_Return(EOS(STATIC_3712), i269, i269) :|: TRUE f3053_1_power_Load(EOS(STATIC_3053), i543, i543, i543) -> f5845_0_power_Return(EOS(STATIC_5845), i543, i543) :|: TRUE f5988_1_power_Load(EOS(STATIC_5988), i477, i477, i560) -> f6236_0_power_Return(EOS(STATIC_6236), i477, i477) :|: TRUE f5988_1_power_Load(EOS(STATIC_5988), i477, i477, i560) -> f6238_0_power_Return(EOS(STATIC_6238), i477, i477) :|: TRUE f6500_1_fact_Load(EOS(STATIC_6500), i477, i477, i691) -> f6520_0_fact_Return(EOS(STATIC_6520), i477, i477) :|: TRUE f6500_1_fact_Load(EOS(STATIC_6500), i477, i477, i691) -> f6521_0_fact_Return(EOS(STATIC_6521), i477, i477) :|: TRUE Combined rules. Obtained 8 IRulesP rules: f5686_0_cos_InvokeMethod(EOS(STATIC_5686), i477:0, i477:0, i560:0) -> f6492_0_cos_InvokeMethod(EOS(STATIC_6492), i477:0, i477:0, 2 * i477:0) :|: i477:0 > 0 && i177:0 > 1 && i560:0 > 1 && i477:0 < i177:0 f6492_0_cos_InvokeMethod(EOS(STATIC_6492), i477:0, i477:0, i691:0) -> f6492_0_cos_InvokeMethod'(EOS(STATIC_6492), i477:0, i477:0, i691:0) :|: i477:0 > 0 && i622:0 > 1 && i691:0 > 1 && i622:0 > i477:0 f6492_0_cos_InvokeMethod'(EOS(STATIC_6492), i477:0, i477:0, i691:0) -> f6546_0_cos_InvokeMethod(EOS(STATIC_6546), i477:0, i477:0 - 1) :|: i477:0 > 0 && i622:0 > 1 && i691:0 > 1 && i622:0 > i477:0 && i715:0 > i669:0 - i715:0 * div && i669:0 - i715:0 * div + i715:0 > 0 f6546_0_cos_InvokeMethod(EOS(STATIC_6546), i477:0, i759:0) -> f5686_0_cos_InvokeMethod(EOS(STATIC_5686), i759:0, i759:0, 2 * i759:0) :|: i477:0 > 0 && i622:0 > 1 && i622:0 > i477:0 && i759:0 > 0 && i759:0 < i477:0 && i177:0 > 1 && i759:0 < i622:0 && i759:0 < i177:0 Removed following non-SCC rules: f6546_0_cos_InvokeMethod(EOS(STATIC_6546), i477:0, i759:0) -> f6924_0_power_Load(EOS(STATIC_6924), i759:0, i759:0) :|: i477:0 > 0 && i622:0 > 1 && i622:0 > i477:0 && i759:0 > 0 && i759:0 < i477:0 && i177:0 > 1 && i759:0 < i177:0 && i759:0 < i622:0 f5686_0_cos_InvokeMethod(EOS(STATIC_5686), i477:0, i477:0, i560:0) -> f6952_0_power_Load(EOS(STATIC_6952), i560:0, i560:0) :|: i477:0 > 0 && i177:0 > 1 && i477:0 < i177:0 && i560:0 > 1 f6546_0_cos_InvokeMethod(EOS(STATIC_6546), i477:0, i759:0) -> f6552_1_cos_Load(EOS(STATIC_6552), i477:0, i759:0) :|: i477:0 > 0 && i622:0 > 1 && i622:0 > i477:0 && i759:0 < i622:0 && i759:0 < i477:0 f6492_0_cos_InvokeMethod(EOS(STATIC_6492), i477:0, i477:0, i691:0) -> f6980_0_fact_Load(EOS(STATIC_6980), i691:0, i691:0) :|: i477:0 > 0 && i622:0 > 1 && i622:0 > i477:0 && i691:0 > 1 Filtered constant ground arguments: f5686_0_cos_InvokeMethod(x1, x2, x3, x4) -> f5686_0_cos_InvokeMethod(x2, x3, x4) f6492_0_cos_InvokeMethod(x1, x2, x3, x4) -> f6492_0_cos_InvokeMethod(x2, x3, x4) f6492_0_cos_InvokeMethod'(x1, x2, x3, x4) -> f6492_0_cos_InvokeMethod'(x2, x3, x4) f6546_0_cos_InvokeMethod(x1, x2, x3) -> f6546_0_cos_InvokeMethod(x2, x3) Filtered duplicate arguments: f5686_0_cos_InvokeMethod(x1, x2, x3) -> f5686_0_cos_InvokeMethod(x2, x3) f6492_0_cos_InvokeMethod(x1, x2, x3) -> f6492_0_cos_InvokeMethod(x2, x3) f6492_0_cos_InvokeMethod'(x1, x2, x3) -> f6492_0_cos_InvokeMethod'(x2, x3) Finished conversion. Obtained 4 rules.P rules: f5686_0_cos_InvokeMethod(i477:0, i560:0) -> f6492_0_cos_InvokeMethod(i477:0, 2 * i477:0) :|: i177:0 > 1 && i477:0 > 0 && i477:0 < i177:0 && i560:0 > 1 f6492_0_cos_InvokeMethod(i477:0, i691:0) -> f6492_0_cos_InvokeMethod'(i477:0, i691:0) :|: i622:0 > 1 && i477:0 > 0 && i622:0 > i477:0 && i691:0 > 1 f6492_0_cos_InvokeMethod'(i477:0, i691:0) -> f6546_0_cos_InvokeMethod(i477:0, i477:0 - 1) :|: i622:0 > 1 && i477:0 > 0 && i691:0 > 1 && i622:0 > i477:0 && i669:0 - i715:0 * div + i715:0 > 0 && i715:0 > i669:0 - i715:0 * div f6546_0_cos_InvokeMethod(i477:0, i759:0) -> f5686_0_cos_InvokeMethod(i759:0, 2 * i759:0) :|: i622:0 > 1 && i477:0 > 0 && i622:0 > i477:0 && i759:0 > 0 && i759:0 < i477:0 && i177:0 > 1 && i759:0 < i177:0 && i759:0 < i622:0 ---------------------------------------- (48) Obligation: Rules: f5686_0_cos_InvokeMethod(i477:0, i560:0) -> f6492_0_cos_InvokeMethod(i477:0, 2 * i477:0) :|: i177:0 > 1 && i477:0 > 0 && i477:0 < i177:0 && i560:0 > 1 f6492_0_cos_InvokeMethod(x, x1) -> f6492_0_cos_InvokeMethod'(x, x1) :|: x2 > 1 && x > 0 && x2 > x && x1 > 1 f6492_0_cos_InvokeMethod'(x3, x4) -> f6546_0_cos_InvokeMethod(x3, x3 - 1) :|: x5 > 1 && x3 > 0 && x4 > 1 && x5 > x3 && x6 - x7 * x8 + x7 > 0 && x7 > x6 - x7 * x8 f6546_0_cos_InvokeMethod(x9, x10) -> f5686_0_cos_InvokeMethod(x10, 2 * x10) :|: x11 > 1 && x9 > 0 && x11 > x9 && x10 > 0 && x10 < x9 && x12 > 1 && x10 < x12 && x10 < x11 ---------------------------------------- (49) IRSFormatTransformerProof (EQUIVALENT) Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). ---------------------------------------- (50) Obligation: Rules: f5686_0_cos_InvokeMethod(i477:0, i560:0) -> f6492_0_cos_InvokeMethod(i477:0, arith) :|: i177:0 > 1 && i477:0 > 0 && i477:0 < i177:0 && i560:0 > 1 && arith = 2 * i477:0 f6492_0_cos_InvokeMethod(x, x1) -> f6492_0_cos_InvokeMethod'(x, x1) :|: x2 > 1 && x > 0 && x2 > x && x1 > 1 f6492_0_cos_InvokeMethod'(x13, x14) -> f6546_0_cos_InvokeMethod(x13, x15) :|: x16 > 1 && x13 > 0 && x14 > 1 && x16 > x13 && x17 - x18 * x19 + x18 > 0 && x18 > x17 - x18 * x19 && x15 = x13 - 1 f6546_0_cos_InvokeMethod(x20, x21) -> f5686_0_cos_InvokeMethod(x21, x22) :|: x23 > 1 && x20 > 0 && x23 > x20 && x21 > 0 && x21 < x20 && x24 > 1 && x21 < x24 && x21 < x23 && x22 = 2 * x21 ---------------------------------------- (51) IRSwTTerminationDigraphProof (EQUIVALENT) Constructed termination digraph! Nodes: (1) f5686_0_cos_InvokeMethod(i477:0, i560:0) -> f6492_0_cos_InvokeMethod(i477:0, arith) :|: i177:0 > 1 && i477:0 > 0 && i477:0 < i177:0 && i560:0 > 1 && arith = 2 * i477:0 (2) f6492_0_cos_InvokeMethod(x, x1) -> f6492_0_cos_InvokeMethod'(x, x1) :|: x2 > 1 && x > 0 && x2 > x && x1 > 1 (3) f6492_0_cos_InvokeMethod'(x13, x14) -> f6546_0_cos_InvokeMethod(x13, x15) :|: x16 > 1 && x13 > 0 && x14 > 1 && x16 > x13 && x17 - x18 * x19 + x18 > 0 && x18 > x17 - x18 * x19 && x15 = x13 - 1 (4) f6546_0_cos_InvokeMethod(x20, x21) -> f5686_0_cos_InvokeMethod(x21, x22) :|: x23 > 1 && x20 > 0 && x23 > x20 && x21 > 0 && x21 < x20 && x24 > 1 && x21 < x24 && x21 < x23 && x22 = 2 * x21 Arcs: (1) -> (2) (2) -> (3) (3) -> (4) (4) -> (1) This digraph is fully evaluated! ---------------------------------------- (52) Obligation: Termination digraph: Nodes: (1) f5686_0_cos_InvokeMethod(i477:0, i560:0) -> f6492_0_cos_InvokeMethod(i477:0, arith) :|: i177:0 > 1 && i477:0 > 0 && i477:0 < i177:0 && i560:0 > 1 && arith = 2 * i477:0 (2) f6546_0_cos_InvokeMethod(x20, x21) -> f5686_0_cos_InvokeMethod(x21, x22) :|: x23 > 1 && x20 > 0 && x23 > x20 && x21 > 0 && x21 < x20 && x24 > 1 && x21 < x24 && x21 < x23 && x22 = 2 * x21 (3) f6492_0_cos_InvokeMethod'(x13, x14) -> f6546_0_cos_InvokeMethod(x13, x15) :|: x16 > 1 && x13 > 0 && x14 > 1 && x16 > x13 && x17 - x18 * x19 + x18 > 0 && x18 > x17 - x18 * x19 && x15 = x13 - 1 (4) f6492_0_cos_InvokeMethod(x, x1) -> f6492_0_cos_InvokeMethod'(x, x1) :|: x2 > 1 && x > 0 && x2 > x && x1 > 1 Arcs: (1) -> (4) (2) -> (1) (3) -> (2) (4) -> (3) This digraph is fully evaluated! ---------------------------------------- (53) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (54) Obligation: Rules: f6492_0_cos_InvokeMethod'(x13:0, x14:0) -> f6492_0_cos_InvokeMethod'(x13:0 - 1, 2 * (x13:0 - 1)) :|: x17:0 - x18:0 * x19:0 + x18:0 > 0 && x18:0 > x17:0 - x18:0 * x19:0 && x23:0 > x13:0 - 1 && x16:0 > x13:0 && x24:0 > x13:0 - 1 && 2 * (x13:0 - 1) > 1 && x2:0 > x13:0 - 1 && x14:0 > 1 && x24:0 > 1 && x13:0 - 1 < i177:0:0 && x2:0 > 1 && x16:0 > 1 && x13:0 - 1 < x13:0 && i177:0:0 > 1 && x23:0 > x13:0 && x13:0 > 1 && x23:0 > 1 ---------------------------------------- (55) TempFilterProof (SOUND) Used the following sort dictionary for filtering: f6492_0_cos_InvokeMethod'(INTEGER, INTEGER) Replaced non-predefined constructor symbols by 0. ---------------------------------------- (56) Obligation: Rules: f6492_0_cos_InvokeMethod'(x13:0, x14:0) -> f6492_0_cos_InvokeMethod'(c, c1) :|: c1 = 2 * (x13:0 - 1) && c = x13:0 - 1 && (x17:0 - x18:0 * x19:0 + x18:0 > 0 && x18:0 > x17:0 - x18:0 * x19:0 && x23:0 > x13:0 - 1 && x16:0 > x13:0 && x24:0 > x13:0 - 1 && 2 * (x13:0 - 1) > 1 && x2:0 > x13:0 - 1 && x14:0 > 1 && x24:0 > 1 && x13:0 - 1 < i177:0:0 && x2:0 > 1 && x16:0 > 1 && x13:0 - 1 < x13:0 && i177:0:0 > 1 && x23:0 > x13:0 && x13:0 > 1 && x23:0 > 1) ---------------------------------------- (57) RankingReductionPairProof (EQUIVALENT) Interpretation: [ f6492_0_cos_InvokeMethod' ] = f6492_0_cos_InvokeMethod'_1 The following rules are decreasing: f6492_0_cos_InvokeMethod'(x13:0, x14:0) -> f6492_0_cos_InvokeMethod'(c, c1) :|: c1 = 2 * (x13:0 - 1) && c = x13:0 - 1 && (x17:0 - x18:0 * x19:0 + x18:0 > 0 && x18:0 > x17:0 - x18:0 * x19:0 && x23:0 > x13:0 - 1 && x16:0 > x13:0 && x24:0 > x13:0 - 1 && 2 * (x13:0 - 1) > 1 && x2:0 > x13:0 - 1 && x14:0 > 1 && x24:0 > 1 && x13:0 - 1 < i177:0:0 && x2:0 > 1 && x16:0 > 1 && x13:0 - 1 < x13:0 && i177:0:0 > 1 && x23:0 > x13:0 && x13:0 > 1 && x23:0 > 1) The following rules are bounded: f6492_0_cos_InvokeMethod'(x13:0, x14:0) -> f6492_0_cos_InvokeMethod'(c, c1) :|: c1 = 2 * (x13:0 - 1) && c = x13:0 - 1 && (x17:0 - x18:0 * x19:0 + x18:0 > 0 && x18:0 > x17:0 - x18:0 * x19:0 && x23:0 > x13:0 - 1 && x16:0 > x13:0 && x24:0 > x13:0 - 1 && 2 * (x13:0 - 1) > 1 && x2:0 > x13:0 - 1 && x14:0 > 1 && x24:0 > 1 && x13:0 - 1 < i177:0:0 && x2:0 > 1 && x16:0 > 1 && x13:0 - 1 < x13:0 && i177:0:0 > 1 && x23:0 > x13:0 && x13:0 > 1 && x23:0 > 1) ---------------------------------------- (58) YES ---------------------------------------- (59) Obligation: SCC of termination graph based on JBC Program. SCC contains nodes from the following methods: TaylorSeriesRec.sin(II)I SCC calls the following helper methods: TaylorSeriesRec.power(II)I, TaylorSeriesRec.fact(I)I, TaylorSeriesRec.sin(II)I Performed SCC analyses: *Used field analysis yielded the following read fields: *Marker field analysis yielded the following relations that could be markers: ---------------------------------------- (60) SCCToIRSProof (SOUND) Transformed FIGraph SCCs to intTRSs. Log: Generated rules. Obtained 51 IRulesP rules: f1436_0_sin_GT(EOS(STATIC_1436), i106, i106, i106) -> f1468_0_sin_GT(EOS(STATIC_1468), i106, i106, i106) :|: TRUE f1468_0_sin_GT(EOS(STATIC_1468), i106, i106, i106) -> f2413_0_sin_ConstantStackPush(EOS(STATIC_2413), i106, i106) :|: i106 > 0 f2413_0_sin_ConstantStackPush(EOS(STATIC_2413), i106, i106) -> f2428_0_sin_Load(EOS(STATIC_2428), i106, i106) :|: TRUE f2428_0_sin_Load(EOS(STATIC_2428), i106, i106) -> f2523_0_sin_InvokeMethod(EOS(STATIC_2523), i106, i106, i106) :|: TRUE f2523_0_sin_InvokeMethod(EOS(STATIC_2523), i106, i106, i106) -> f2550_0_power_Load(EOS(STATIC_2550), i106, i106) :|: i108 > 1 && i106 >= 1 && i108 > i106 f2523_0_sin_InvokeMethod(EOS(STATIC_2523), i106, i106, i106) -> f2550_1_power_Load(EOS(STATIC_2550), i106, i106, i106) :|: i108 > 1 && i106 >= 1 && i108 > i106 f2550_0_power_Load(EOS(STATIC_2550), i106, i106) -> f7162_0_power_Load(EOS(STATIC_7162), i106, i106) :|: TRUE f3710_0_power_Return(EOS(STATIC_3710), i265, i265) -> f3728_0_sin_Load(EOS(STATIC_3728), i265, i265) :|: TRUE f3728_0_sin_Load(EOS(STATIC_3728), i265, i265) -> f5341_0_sin_Load(EOS(STATIC_5341), i265, i265) :|: TRUE f5341_0_sin_Load(EOS(STATIC_5341), i475, i475) -> f5608_0_sin_ConstantStackPush(EOS(STATIC_5608), i475, i475) :|: TRUE f5608_0_sin_ConstantStackPush(EOS(STATIC_5608), i475, i475) -> f5625_0_sin_Load(EOS(STATIC_5625), i475, i475, 2) :|: TRUE f5625_0_sin_Load(EOS(STATIC_5625), i475, i475, matching1) -> f5639_0_sin_IntArithmetic(EOS(STATIC_5639), i475, i475, 2, i475) :|: TRUE && matching1 = 2 f5639_0_sin_IntArithmetic(EOS(STATIC_5639), i475, i475, matching1, i475) -> f5683_0_sin_ConstantStackPush(EOS(STATIC_5683), i475, i475, 2 * i475) :|: i475 >= 1 && matching1 = 2 f5683_0_sin_ConstantStackPush(EOS(STATIC_5683), i475, i475, i559) -> f5986_0_sin_IntArithmetic(EOS(STATIC_5986), i475, i475, i559, 1) :|: TRUE f5986_0_sin_IntArithmetic(EOS(STATIC_5986), i475, i475, i559, matching1) -> f6002_0_sin_InvokeMethod(EOS(STATIC_6002), i475, i475, i559 + 1) :|: i559 > 0 && matching1 = 1 f6002_0_sin_InvokeMethod(EOS(STATIC_6002), i475, i475, i591) -> f6027_0_power_Load(EOS(STATIC_6027), i591, i591) :|: i108 > 1 && i475 >= 1 && i591 > 1 && i108 > i475 f6002_0_sin_InvokeMethod(EOS(STATIC_6002), i475, i475, i591) -> f6027_1_power_Load(EOS(STATIC_6027), i475, i475, i591) :|: i108 > 1 && i475 >= 1 && i591 > 1 && i108 > i475 f6027_0_power_Load(EOS(STATIC_6027), i591, i591) -> f7194_0_power_Load(EOS(STATIC_7194), i591, i591) :|: TRUE f6468_0_power_Return(EOS(STATIC_6468), i475, i475) -> f6476_0_sin_IntArithmetic(EOS(STATIC_6476), i475, i475) :|: TRUE f6476_0_sin_IntArithmetic(EOS(STATIC_6476), i475, i475) -> f6477_0_sin_IntArithmetic(EOS(STATIC_6477), i475, i475) :|: TRUE f6477_0_sin_IntArithmetic(EOS(STATIC_6477), i475, i475) -> f6484_0_sin_ConstantStackPush(EOS(STATIC_6484), i475, i475) :|: TRUE f6484_0_sin_ConstantStackPush(EOS(STATIC_6484), i475, i475) -> f6491_0_sin_Load(EOS(STATIC_6491), i475, i475, 2) :|: TRUE f6491_0_sin_Load(EOS(STATIC_6491), i475, i475, matching1) -> f6499_0_sin_IntArithmetic(EOS(STATIC_6499), i475, i475, 2, i475) :|: TRUE && matching1 = 2 f6499_0_sin_IntArithmetic(EOS(STATIC_6499), i475, i475, matching1, i475) -> f6504_0_sin_ConstantStackPush(EOS(STATIC_6504), i475, i475, 2 * i475) :|: i475 >= 1 && matching1 = 2 f6504_0_sin_ConstantStackPush(EOS(STATIC_6504), i475, i475, i696) -> f6510_0_sin_IntArithmetic(EOS(STATIC_6510), i475, i475, i696, 1) :|: TRUE f6510_0_sin_IntArithmetic(EOS(STATIC_6510), i475, i475, i696, matching1) -> f6513_0_sin_InvokeMethod(EOS(STATIC_6513), i475, i475, i696 + 1) :|: i696 > 0 && matching1 = 1 f6513_0_sin_InvokeMethod(EOS(STATIC_6513), i475, i475, i707) -> f6516_0_fact_Load(EOS(STATIC_6516), i707, i707) :|: i658 > 1 && i475 >= 1 && i707 > 1 && i475 < i658 f6513_0_sin_InvokeMethod(EOS(STATIC_6513), i475, i475, i707) -> f6516_1_fact_Load(EOS(STATIC_6516), i475, i475, i707) :|: i658 > 1 && i475 >= 1 && i707 > 1 && i475 < i658 f6516_0_fact_Load(EOS(STATIC_6516), i707, i707) -> f7226_0_fact_Load(EOS(STATIC_7226), i707, i707) :|: TRUE f6536_0_fact_Return(EOS(STATIC_6536), i475, i475) -> f6541_0_sin_IntArithmetic(EOS(STATIC_6541), i475, i475) :|: TRUE f6541_0_sin_IntArithmetic(EOS(STATIC_6541), i475, i475) -> f6542_0_sin_IntArithmetic(EOS(STATIC_6542), i475, i475) :|: TRUE f6542_0_sin_IntArithmetic(EOS(STATIC_6542), i475, i475) -> f6545_0_sin_Load(EOS(STATIC_6545), i475, i475) :|: i758 = i681 / i738 f6545_0_sin_Load(EOS(STATIC_6545), i475, i475) -> f6551_0_sin_Load(EOS(STATIC_6551), i475, i475) :|: TRUE f6551_0_sin_Load(EOS(STATIC_6551), i475, i475) -> f6556_0_sin_ConstantStackPush(EOS(STATIC_6556), i475, i475) :|: TRUE f6556_0_sin_ConstantStackPush(EOS(STATIC_6556), i475, i475) -> f6561_0_sin_IntArithmetic(EOS(STATIC_6561), i475, i475, 1) :|: TRUE f6561_0_sin_IntArithmetic(EOS(STATIC_6561), i475, i475, matching1) -> f6566_0_sin_InvokeMethod(EOS(STATIC_6566), i475, i475 - 1) :|: i475 > 0 && matching1 = 1 f6566_0_sin_InvokeMethod(EOS(STATIC_6566), i475, i767) -> f6569_0_sin_Load(EOS(STATIC_6569), i767, i767) :|: i658 > 1 && i475 >= 1 && i658 > i475 && i767 < i475 && i767 < i658 f6566_0_sin_InvokeMethod(EOS(STATIC_6566), i475, i767) -> f6569_1_sin_Load(EOS(STATIC_6569), i475, i767) :|: i658 > 1 && i475 >= 1 && i658 > i475 && i767 < i475 && i767 < i658 f6569_0_sin_Load(EOS(STATIC_6569), i767, i767) -> f6574_0_sin_Load(EOS(STATIC_6574), i767, i767) :|: TRUE f6574_0_sin_Load(EOS(STATIC_6574), i767, i767) -> f1421_0_sin_Load(EOS(STATIC_1421), i767, i767) :|: TRUE f1421_0_sin_Load(EOS(STATIC_1421), i96, i96) -> f1436_0_sin_GT(EOS(STATIC_1436), i96, i96, i96) :|: TRUE f6537_0_fact_Return(EOS(STATIC_6537), i475, i475) -> f6542_0_sin_IntArithmetic(EOS(STATIC_6542), i475, i475) :|: TRUE f6469_0_power_Return(EOS(STATIC_6469), i475, i475) -> f6477_0_sin_IntArithmetic(EOS(STATIC_6477), i475, i475) :|: TRUE f5814_0_power_Return(EOS(STATIC_5814), i538, i538) -> f4892_0_power_Return(EOS(STATIC_4892), i538, i538) :|: TRUE f4892_0_power_Return(EOS(STATIC_4892), i475, i475) -> f5341_0_sin_Load(EOS(STATIC_5341), i475, i475) :|: TRUE f2550_1_power_Load(EOS(STATIC_2550), i265, i265, i265) -> f3710_0_power_Return(EOS(STATIC_3710), i265, i265) :|: TRUE f2550_1_power_Load(EOS(STATIC_2550), i538, i538, i538) -> f5814_0_power_Return(EOS(STATIC_5814), i538, i538) :|: TRUE f6027_1_power_Load(EOS(STATIC_6027), i475, i475, i591) -> f6468_0_power_Return(EOS(STATIC_6468), i475, i475) :|: TRUE f6027_1_power_Load(EOS(STATIC_6027), i475, i475, i591) -> f6469_0_power_Return(EOS(STATIC_6469), i475, i475) :|: TRUE f6516_1_fact_Load(EOS(STATIC_6516), i475, i475, i707) -> f6536_0_fact_Return(EOS(STATIC_6536), i475, i475) :|: TRUE f6516_1_fact_Load(EOS(STATIC_6516), i475, i475, i707) -> f6537_0_fact_Return(EOS(STATIC_6537), i475, i475) :|: TRUE Combined rules. Obtained 8 IRulesP rules: f6513_0_sin_InvokeMethod(EOS(STATIC_6513), i475:0, i475:0, i707:0) -> f6513_0_sin_InvokeMethod'(EOS(STATIC_6513), i475:0, i475:0, i707:0) :|: i475:0 > 0 && i658:0 > 1 && i707:0 > 1 && i658:0 > i475:0 f6513_0_sin_InvokeMethod'(EOS(STATIC_6513), i475:0, i475:0, i707:0) -> f6566_0_sin_InvokeMethod(EOS(STATIC_6566), i475:0, i475:0 - 1) :|: i475:0 > 0 && i658:0 > 1 && i707:0 > 1 && i658:0 > i475:0 && i738:0 > i681:0 - i738:0 * div && i681:0 - i738:0 * div + i738:0 > 0 f6566_0_sin_InvokeMethod(EOS(STATIC_6566), i475:0, i767:0) -> f6002_0_sin_InvokeMethod(EOS(STATIC_6002), i767:0, i767:0, 2 * i767:0 + 1) :|: i475:0 > 0 && i658:0 > 1 && i658:0 > i475:0 && i767:0 > 0 && i767:0 < i475:0 && i108:0 > 1 && i767:0 < i658:0 && 2 * i767:0 > 0 && i767:0 < i108:0 f6002_0_sin_InvokeMethod(EOS(STATIC_6002), i475:0, i475:0, i591:0) -> f6513_0_sin_InvokeMethod(EOS(STATIC_6513), i475:0, i475:0, 2 * i475:0 + 1) :|: i475:0 > 0 && i108:0 > 1 && i591:0 > 1 && i475:0 < i108:0 && 2 * i475:0 > 0 Removed following non-SCC rules: f6513_0_sin_InvokeMethod(EOS(STATIC_6513), i475:0, i475:0, i707:0) -> f7226_0_fact_Load(EOS(STATIC_7226), i707:0, i707:0) :|: i475:0 > 0 && i658:0 > 1 && i658:0 > i475:0 && i707:0 > 1 f6002_0_sin_InvokeMethod(EOS(STATIC_6002), i475:0, i475:0, i591:0) -> f7194_0_power_Load(EOS(STATIC_7194), i591:0, i591:0) :|: i475:0 > 0 && i108:0 > 1 && i475:0 < i108:0 && i591:0 > 1 f6566_0_sin_InvokeMethod(EOS(STATIC_6566), i475:0, i767:0) -> f6569_1_sin_Load(EOS(STATIC_6569), i475:0, i767:0) :|: i475:0 > 0 && i658:0 > 1 && i658:0 > i475:0 && i767:0 < i658:0 && i767:0 < i475:0 f6566_0_sin_InvokeMethod(EOS(STATIC_6566), i475:0, i767:0) -> f7162_0_power_Load(EOS(STATIC_7162), i767:0, i767:0) :|: i475:0 > 0 && i658:0 > 1 && i658:0 > i475:0 && i767:0 > 0 && i767:0 < i475:0 && i108:0 > 1 && i767:0 < i108:0 && i767:0 < i658:0 Filtered constant ground arguments: f6513_0_sin_InvokeMethod(x1, x2, x3, x4) -> f6513_0_sin_InvokeMethod(x2, x3, x4) f6513_0_sin_InvokeMethod'(x1, x2, x3, x4) -> f6513_0_sin_InvokeMethod'(x2, x3, x4) f6566_0_sin_InvokeMethod(x1, x2, x3) -> f6566_0_sin_InvokeMethod(x2, x3) f6002_0_sin_InvokeMethod(x1, x2, x3, x4) -> f6002_0_sin_InvokeMethod(x2, x3, x4) Filtered duplicate arguments: f6513_0_sin_InvokeMethod(x1, x2, x3) -> f6513_0_sin_InvokeMethod(x2, x3) f6513_0_sin_InvokeMethod'(x1, x2, x3) -> f6513_0_sin_InvokeMethod'(x2, x3) f6002_0_sin_InvokeMethod(x1, x2, x3) -> f6002_0_sin_InvokeMethod(x2, x3) Finished conversion. Obtained 4 rules.P rules: f6513_0_sin_InvokeMethod(i475:0, i707:0) -> f6513_0_sin_InvokeMethod'(i475:0, i707:0) :|: i658:0 > 1 && i475:0 > 0 && i658:0 > i475:0 && i707:0 > 1 f6513_0_sin_InvokeMethod'(i475:0, i707:0) -> f6566_0_sin_InvokeMethod(i475:0, i475:0 - 1) :|: i658:0 > 1 && i475:0 > 0 && i707:0 > 1 && i658:0 > i475:0 && i681:0 - i738:0 * div + i738:0 > 0 && i738:0 > i681:0 - i738:0 * div f6566_0_sin_InvokeMethod(i475:0, i767:0) -> f6002_0_sin_InvokeMethod(i767:0, 2 * i767:0 + 1) :|: i658:0 > 1 && i475:0 > 0 && i658:0 > i475:0 && i767:0 > 0 && i767:0 < i475:0 && i108:0 > 1 && i767:0 < i658:0 && i767:0 < i108:0 && 2 * i767:0 > 0 f6002_0_sin_InvokeMethod(i475:0, i591:0) -> f6513_0_sin_InvokeMethod(i475:0, 2 * i475:0 + 1) :|: i108:0 > 1 && i475:0 > 0 && i591:0 > 1 && 2 * i475:0 > 0 && i475:0 < i108:0 ---------------------------------------- (61) Obligation: Rules: f6513_0_sin_InvokeMethod(i475:0, i707:0) -> f6513_0_sin_InvokeMethod'(i475:0, i707:0) :|: i658:0 > 1 && i475:0 > 0 && i658:0 > i475:0 && i707:0 > 1 f6513_0_sin_InvokeMethod'(x, x1) -> f6566_0_sin_InvokeMethod(x, x - 1) :|: x2 > 1 && x > 0 && x1 > 1 && x2 > x && x3 - x4 * x5 + x4 > 0 && x4 > x3 - x4 * x5 f6566_0_sin_InvokeMethod(x6, x7) -> f6002_0_sin_InvokeMethod(x7, 2 * x7 + 1) :|: x8 > 1 && x6 > 0 && x8 > x6 && x7 > 0 && x7 < x6 && x9 > 1 && x7 < x8 && x7 < x9 && 2 * x7 > 0 f6002_0_sin_InvokeMethod(x10, x11) -> f6513_0_sin_InvokeMethod(x10, 2 * x10 + 1) :|: x12 > 1 && x10 > 0 && x11 > 1 && 2 * x10 > 0 && x10 < x12 ---------------------------------------- (62) IRSFormatTransformerProof (EQUIVALENT) Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). ---------------------------------------- (63) Obligation: Rules: f6513_0_sin_InvokeMethod(i475:0, i707:0) -> f6513_0_sin_InvokeMethod'(i475:0, i707:0) :|: i658:0 > 1 && i475:0 > 0 && i658:0 > i475:0 && i707:0 > 1 f6513_0_sin_InvokeMethod'(x, x1) -> f6566_0_sin_InvokeMethod(x, arith) :|: x2 > 1 && x > 0 && x1 > 1 && x2 > x && x3 - x4 * x5 + x4 > 0 && x4 > x3 - x4 * x5 && arith = x - 1 f6566_0_sin_InvokeMethod(x13, x14) -> f6002_0_sin_InvokeMethod(x14, x15) :|: x16 > 1 && x13 > 0 && x16 > x13 && x14 > 0 && x14 < x13 && x17 > 1 && x14 < x16 && x14 < x17 && 2 * x14 > 0 && x15 = 2 * x14 + 1 f6002_0_sin_InvokeMethod(x18, x19) -> f6513_0_sin_InvokeMethod(x18, x20) :|: x21 > 1 && x18 > 0 && x19 > 1 && 2 * x18 > 0 && x18 < x21 && x20 = 2 * x18 + 1 ---------------------------------------- (64) IRSwTTerminationDigraphProof (EQUIVALENT) Constructed termination digraph! Nodes: (1) f6513_0_sin_InvokeMethod(i475:0, i707:0) -> f6513_0_sin_InvokeMethod'(i475:0, i707:0) :|: i658:0 > 1 && i475:0 > 0 && i658:0 > i475:0 && i707:0 > 1 (2) f6513_0_sin_InvokeMethod'(x, x1) -> f6566_0_sin_InvokeMethod(x, arith) :|: x2 > 1 && x > 0 && x1 > 1 && x2 > x && x3 - x4 * x5 + x4 > 0 && x4 > x3 - x4 * x5 && arith = x - 1 (3) f6566_0_sin_InvokeMethod(x13, x14) -> f6002_0_sin_InvokeMethod(x14, x15) :|: x16 > 1 && x13 > 0 && x16 > x13 && x14 > 0 && x14 < x13 && x17 > 1 && x14 < x16 && x14 < x17 && 2 * x14 > 0 && x15 = 2 * x14 + 1 (4) f6002_0_sin_InvokeMethod(x18, x19) -> f6513_0_sin_InvokeMethod(x18, x20) :|: x21 > 1 && x18 > 0 && x19 > 1 && 2 * x18 > 0 && x18 < x21 && x20 = 2 * x18 + 1 Arcs: (1) -> (2) (2) -> (3) (3) -> (4) (4) -> (1) This digraph is fully evaluated! ---------------------------------------- (65) Obligation: Termination digraph: Nodes: (1) f6513_0_sin_InvokeMethod(i475:0, i707:0) -> f6513_0_sin_InvokeMethod'(i475:0, i707:0) :|: i658:0 > 1 && i475:0 > 0 && i658:0 > i475:0 && i707:0 > 1 (2) f6002_0_sin_InvokeMethod(x18, x19) -> f6513_0_sin_InvokeMethod(x18, x20) :|: x21 > 1 && x18 > 0 && x19 > 1 && 2 * x18 > 0 && x18 < x21 && x20 = 2 * x18 + 1 (3) f6566_0_sin_InvokeMethod(x13, x14) -> f6002_0_sin_InvokeMethod(x14, x15) :|: x16 > 1 && x13 > 0 && x16 > x13 && x14 > 0 && x14 < x13 && x17 > 1 && x14 < x16 && x14 < x17 && 2 * x14 > 0 && x15 = 2 * x14 + 1 (4) f6513_0_sin_InvokeMethod'(x, x1) -> f6566_0_sin_InvokeMethod(x, arith) :|: x2 > 1 && x > 0 && x1 > 1 && x2 > x && x3 - x4 * x5 + x4 > 0 && x4 > x3 - x4 * x5 && arith = x - 1 Arcs: (1) -> (4) (2) -> (1) (3) -> (2) (4) -> (3) This digraph is fully evaluated! ---------------------------------------- (66) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (67) Obligation: Rules: f6566_0_sin_InvokeMethod(x13:0, x14:0) -> f6566_0_sin_InvokeMethod(x14:0, x14:0 - 1) :|: x17:0 > x14:0 && x21:0 > x14:0 && x16:0 > x14:0 && x14:0 < i658:0:0 && x4:0 > x3:0 - x4:0 * x5:0 && x17:0 > 1 && i658:0:0 > 1 && x3:0 - x4:0 * x5:0 + x4:0 > 0 && x14:0 < x13:0 && x21:0 > 1 && x2:0 > x14:0 && 2 * x14:0 > 0 && x16:0 > x13:0 && x2:0 > 1 && x14:0 > 0 && x13:0 > 0 && x16:0 > 1 ---------------------------------------- (68) TempFilterProof (SOUND) Used the following sort dictionary for filtering: f6566_0_sin_InvokeMethod(INTEGER, INTEGER) Replaced non-predefined constructor symbols by 0. ---------------------------------------- (69) Obligation: Rules: f6566_0_sin_InvokeMethod(x13:0, x14:0) -> f6566_0_sin_InvokeMethod(x14:0, c) :|: c = x14:0 - 1 && (x17:0 > x14:0 && x21:0 > x14:0 && x16:0 > x14:0 && x14:0 < i658:0:0 && x4:0 > x3:0 - x4:0 * x5:0 && x17:0 > 1 && i658:0:0 > 1 && x3:0 - x4:0 * x5:0 + x4:0 > 0 && x14:0 < x13:0 && x21:0 > 1 && x2:0 > x14:0 && 2 * x14:0 > 0 && x16:0 > x13:0 && x2:0 > 1 && x14:0 > 0 && x13:0 > 0 && x16:0 > 1) ---------------------------------------- (70) RankingReductionPairProof (EQUIVALENT) Interpretation: [ f6566_0_sin_InvokeMethod ] = f6566_0_sin_InvokeMethod_1 The following rules are decreasing: f6566_0_sin_InvokeMethod(x13:0, x14:0) -> f6566_0_sin_InvokeMethod(x14:0, c) :|: c = x14:0 - 1 && (x17:0 > x14:0 && x21:0 > x14:0 && x16:0 > x14:0 && x14:0 < i658:0:0 && x4:0 > x3:0 - x4:0 * x5:0 && x17:0 > 1 && i658:0:0 > 1 && x3:0 - x4:0 * x5:0 + x4:0 > 0 && x14:0 < x13:0 && x21:0 > 1 && x2:0 > x14:0 && 2 * x14:0 > 0 && x16:0 > x13:0 && x2:0 > 1 && x14:0 > 0 && x13:0 > 0 && x16:0 > 1) The following rules are bounded: f6566_0_sin_InvokeMethod(x13:0, x14:0) -> f6566_0_sin_InvokeMethod(x14:0, c) :|: c = x14:0 - 1 && (x17:0 > x14:0 && x21:0 > x14:0 && x16:0 > x14:0 && x14:0 < i658:0:0 && x4:0 > x3:0 - x4:0 * x5:0 && x17:0 > 1 && i658:0:0 > 1 && x3:0 - x4:0 * x5:0 + x4:0 > 0 && x14:0 < x13:0 && x21:0 > 1 && x2:0 > x14:0 && 2 * x14:0 > 0 && x16:0 > x13:0 && x2:0 > 1 && x14:0 > 0 && x13:0 > 0 && x16:0 > 1) ---------------------------------------- (71) YES ---------------------------------------- (72) Obligation: SCC of termination graph based on JBC Program. SCC contains nodes from the following methods: TaylorSeriesRec.main([Ljava/lang/String;)V SCC calls the following helper methods: TaylorSeriesRec.exp(II)I, TaylorSeriesRec.cos(II)I, TaylorSeriesRec.sin(II)I, TaylorSeriesRec.power(II)I, TaylorSeriesRec.fact(I)I Performed SCC analyses: *Used field analysis yielded the following read fields: *Marker field analysis yielded the following relations that could be markers: ---------------------------------------- (73) SCCToIRSProof (SOUND) Transformed FIGraph SCCs to intTRSs. Log: Generated rules. Obtained 97 IRulesP rules: f4650_0_main_Load(EOS(STATIC_4650), java.lang.Object(o14sub), java.lang.Object(o14sub), i331, i331) -> f4654_0_main_ArrayLength(EOS(STATIC_4654), java.lang.Object(o14sub), java.lang.Object(o14sub), i331, i331, java.lang.Object(o14sub)) :|: TRUE f4654_0_main_ArrayLength(EOS(STATIC_4654), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, i331, java.lang.Object(ARRAY(i348))) -> f4657_0_main_ArrayLength(EOS(STATIC_4657), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, i331, java.lang.Object(ARRAY(i348))) :|: i348 >= 0 f4657_0_main_ArrayLength(EOS(STATIC_4657), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, i331, java.lang.Object(ARRAY(i348))) -> f4660_0_main_GE(EOS(STATIC_4660), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, i331, i348) :|: i348 >= 0 f4660_0_main_GE(EOS(STATIC_4660), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, i331, i348) -> f4670_0_main_GE(EOS(STATIC_4670), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, i331, i348) :|: i331 < i348 f4670_0_main_GE(EOS(STATIC_4670), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, i331, i348) -> f4701_0_main_Load(EOS(STATIC_4701), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331) :|: i331 < i348 f4701_0_main_Load(EOS(STATIC_4701), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331) -> f4731_0_main_ConstantStackPush(EOS(STATIC_4731), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, i331) :|: TRUE f4731_0_main_ConstantStackPush(EOS(STATIC_4731), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, i331) -> f4749_0_main_IntArithmetic(EOS(STATIC_4749), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, i331, 2) :|: TRUE f4749_0_main_IntArithmetic(EOS(STATIC_4749), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, i331, matching1) -> f4822_0_main_NE(EOS(STATIC_4822), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, i331 % 2) :|: TRUE && matching1 = 2 f4822_0_main_NE(EOS(STATIC_4822), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, matching1) -> f5278_0_main_NE(EOS(STATIC_5278), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, 1) :|: TRUE && matching1 = 1 f4822_0_main_NE(EOS(STATIC_4822), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, matching1) -> f5279_0_main_NE(EOS(STATIC_5279), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, 0) :|: TRUE && matching1 = 0 f5278_0_main_NE(EOS(STATIC_5278), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, matching1) -> f5600_0_main_Load(EOS(STATIC_5600), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331) :|: 1 > 0 && matching1 = 1 f5600_0_main_Load(EOS(STATIC_5600), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331) -> f5618_0_main_ConstantStackPush(EOS(STATIC_5618), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, i331) :|: TRUE f5618_0_main_ConstantStackPush(EOS(STATIC_5618), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, i331) -> f5634_0_main_IntArithmetic(EOS(STATIC_5634), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, i331, 3) :|: TRUE f5634_0_main_IntArithmetic(EOS(STATIC_5634), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, i331, matching1) -> f5678_0_main_NE(EOS(STATIC_5678), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, i331 % 3) :|: TRUE && matching1 = 3 f5678_0_main_NE(EOS(STATIC_5678), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, i571) -> f5882_0_main_NE(EOS(STATIC_5882), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, i571) :|: TRUE f5678_0_main_NE(EOS(STATIC_5678), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, matching1) -> f5883_0_main_NE(EOS(STATIC_5883), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, 0) :|: TRUE && matching1 = 0 f5882_0_main_NE(EOS(STATIC_5882), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, i571) -> f5992_0_main_Load(EOS(STATIC_5992), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331) :|: i571 > 0 f5992_0_main_Load(EOS(STATIC_5992), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331) -> f6020_0_main_ConstantStackPush(EOS(STATIC_6020), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, i331) :|: TRUE f6020_0_main_ConstantStackPush(EOS(STATIC_6020), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, i331) -> f6031_0_main_IntArithmetic(EOS(STATIC_6031), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, i331, 5) :|: TRUE f6031_0_main_IntArithmetic(EOS(STATIC_6031), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, i331, matching1) -> f6044_0_main_NE(EOS(STATIC_6044), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, i331 % 5) :|: TRUE && matching1 = 5 f6044_0_main_NE(EOS(STATIC_6044), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, i625) -> f6213_0_main_NE(EOS(STATIC_6213), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, i625) :|: TRUE f6044_0_main_NE(EOS(STATIC_6044), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, matching1) -> f6214_0_main_NE(EOS(STATIC_6214), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, 0) :|: TRUE && matching1 = 0 f6213_0_main_NE(EOS(STATIC_6213), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, i625) -> f6243_0_main_ConstantStackPush(EOS(STATIC_6243), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331) :|: i625 > 0 f6243_0_main_ConstantStackPush(EOS(STATIC_6243), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331) -> f6417_0_main_Store(EOS(STATIC_6417), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, 0) :|: TRUE f6417_0_main_Store(EOS(STATIC_6417), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, matching1) -> f6471_0_main_Load(EOS(STATIC_6471), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, 0) :|: TRUE && matching1 = 0 f6471_0_main_Load(EOS(STATIC_6471), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, matching1) -> f6507_0_main_Load(EOS(STATIC_6507), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, 0) :|: TRUE && matching1 = 0 f6507_0_main_Load(EOS(STATIC_6507), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, i697) -> f6527_0_main_Load(EOS(STATIC_6527), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, i697) :|: TRUE f6527_0_main_Load(EOS(STATIC_6527), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, i727) -> f6548_0_main_Load(EOS(STATIC_6548), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, i727) :|: TRUE f6548_0_main_Load(EOS(STATIC_6548), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, i760) -> f6553_0_main_ConstantStackPush(EOS(STATIC_6553), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, i760, i760) :|: TRUE f6553_0_main_ConstantStackPush(EOS(STATIC_6553), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, i760, i760) -> f6558_0_main_GE(EOS(STATIC_6558), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, i760, i760, 100) :|: TRUE f6558_0_main_GE(EOS(STATIC_6558), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, i765, i765, matching1) -> f6562_0_main_GE(EOS(STATIC_6562), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, i765, i765, 100) :|: TRUE && matching1 = 100 f6558_0_main_GE(EOS(STATIC_6558), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, i766, i766, matching1) -> f6563_0_main_GE(EOS(STATIC_6563), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, i766, i766, 100) :|: TRUE && matching1 = 100 f6562_0_main_GE(EOS(STATIC_6562), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, i765, i765, matching1) -> f6567_0_main_Inc(EOS(STATIC_6567), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, i765) :|: i765 < 100 && matching1 = 100 f6567_0_main_Inc(EOS(STATIC_6567), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, i765) -> f6570_0_main_JMP(EOS(STATIC_6570), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, i765 + 1) :|: TRUE f6570_0_main_JMP(EOS(STATIC_6570), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, i793) -> f6576_0_main_Load(EOS(STATIC_6576), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, i793) :|: TRUE f6576_0_main_Load(EOS(STATIC_6576), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, i793) -> f6548_0_main_Load(EOS(STATIC_6548), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, i793) :|: TRUE f6563_0_main_GE(EOS(STATIC_6563), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, i766, i766, matching1) -> f6568_0_main_Inc(EOS(STATIC_6568), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331) :|: i766 >= 100 && matching1 = 100 f6568_0_main_Inc(EOS(STATIC_6568), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331) -> f6571_0_main_JMP(EOS(STATIC_6571), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331 + 1) :|: TRUE f6571_0_main_JMP(EOS(STATIC_6571), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i794) -> f6577_0_main_Load(EOS(STATIC_6577), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i794) :|: TRUE f6577_0_main_Load(EOS(STATIC_6577), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i794) -> f4641_0_main_Load(EOS(STATIC_4641), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i794) :|: TRUE f4641_0_main_Load(EOS(STATIC_4641), java.lang.Object(o14sub), java.lang.Object(o14sub), i331) -> f4650_0_main_Load(EOS(STATIC_4650), java.lang.Object(o14sub), java.lang.Object(o14sub), i331, i331) :|: TRUE f6214_0_main_NE(EOS(STATIC_6214), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, matching1) -> f6245_0_main_Load(EOS(STATIC_6245), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331) :|: TRUE && matching1 = 0 f6245_0_main_Load(EOS(STATIC_6245), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331) -> f6420_0_main_ArrayLength(EOS(STATIC_6420), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, java.lang.Object(ARRAY(i348))) :|: TRUE f6420_0_main_ArrayLength(EOS(STATIC_6420), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, java.lang.Object(ARRAY(i348))) -> f6472_0_main_Load(EOS(STATIC_6472), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, i348) :|: i348 >= 0 f6472_0_main_Load(EOS(STATIC_6472), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, i348) -> f6480_0_main_InvokeMethod(EOS(STATIC_6480), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, i348, i331) :|: TRUE f6480_0_main_InvokeMethod(EOS(STATIC_6480), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, i348, i331) -> f6487_0_exp_Load(EOS(STATIC_6487), i348, i331, i348, i331) :|: i348 >= 1 && i331 < i348 f6480_0_main_InvokeMethod(EOS(STATIC_6480), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, i348, i331) -> f6487_1_exp_Load(EOS(STATIC_6487), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, i348, i331) :|: i348 >= 1 && i331 < i348 f6487_0_exp_Load(EOS(STATIC_6487), i348, i331, i348, i331) -> f7500_0_exp_Load(EOS(STATIC_7500), i348, i331, i348, i331) :|: TRUE f6515_0_exp_Return(EOS(STATIC_6515), java.lang.Object(ARRAY(i706)), java.lang.Object(ARRAY(i706)), matching1) -> f6518_0_main_StackPop(EOS(STATIC_6518), java.lang.Object(ARRAY(i706)), java.lang.Object(ARRAY(i706)), 0) :|: TRUE && matching1 = 0 f6518_0_main_StackPop(EOS(STATIC_6518), java.lang.Object(ARRAY(i706)), java.lang.Object(ARRAY(i706)), matching1) -> f6523_0_main_JMP(EOS(STATIC_6523), java.lang.Object(ARRAY(i706)), java.lang.Object(ARRAY(i706)), 0) :|: TRUE && matching1 = 0 f6523_0_main_JMP(EOS(STATIC_6523), java.lang.Object(ARRAY(i706)), java.lang.Object(ARRAY(i706)), matching1) -> f6528_0_main_Inc(EOS(STATIC_6528), java.lang.Object(ARRAY(i706)), java.lang.Object(ARRAY(i706)), 0) :|: TRUE && matching1 = 0 f6528_0_main_Inc(EOS(STATIC_6528), java.lang.Object(ARRAY(i706)), java.lang.Object(ARRAY(i706)), matching1) -> f6473_0_main_Inc(EOS(STATIC_6473), java.lang.Object(ARRAY(i706)), java.lang.Object(ARRAY(i706)), 0) :|: TRUE && matching1 = 0 f6473_0_main_Inc(EOS(STATIC_6473), java.lang.Object(ARRAY(i606)), java.lang.Object(ARRAY(i606)), matching1) -> f6568_0_main_Inc(EOS(STATIC_6568), java.lang.Object(ARRAY(i606)), java.lang.Object(ARRAY(i606)), 0) :|: TRUE && matching1 = 0 f6572_0_exp_Return(EOS(STATIC_6572), java.lang.Object(ARRAY(i778)), java.lang.Object(ARRAY(i778)), i776) -> f6549_0_exp_Return(EOS(STATIC_6549), java.lang.Object(ARRAY(i778)), java.lang.Object(ARRAY(i778)), i776) :|: TRUE f6549_0_exp_Return(EOS(STATIC_6549), java.lang.Object(ARRAY(i750)), java.lang.Object(ARRAY(i750)), i748) -> f6554_0_main_StackPop(EOS(STATIC_6554), java.lang.Object(ARRAY(i750)), java.lang.Object(ARRAY(i750)), i748) :|: TRUE f6554_0_main_StackPop(EOS(STATIC_6554), java.lang.Object(ARRAY(i750)), java.lang.Object(ARRAY(i750)), i748) -> f6559_0_main_JMP(EOS(STATIC_6559), java.lang.Object(ARRAY(i750)), java.lang.Object(ARRAY(i750)), i748) :|: TRUE f6559_0_main_JMP(EOS(STATIC_6559), java.lang.Object(ARRAY(i750)), java.lang.Object(ARRAY(i750)), i748) -> f6564_0_main_Inc(EOS(STATIC_6564), java.lang.Object(ARRAY(i750)), java.lang.Object(ARRAY(i750)), i748) :|: TRUE f6564_0_main_Inc(EOS(STATIC_6564), java.lang.Object(ARRAY(i750)), java.lang.Object(ARRAY(i750)), i748) -> f6568_0_main_Inc(EOS(STATIC_6568), java.lang.Object(ARRAY(i750)), java.lang.Object(ARRAY(i750)), i748) :|: TRUE f5883_0_main_NE(EOS(STATIC_5883), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, matching1) -> f5994_0_main_Load(EOS(STATIC_5994), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331) :|: TRUE && matching1 = 0 f5994_0_main_Load(EOS(STATIC_5994), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331) -> f6022_0_main_ArrayLength(EOS(STATIC_6022), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, java.lang.Object(ARRAY(i348))) :|: TRUE f6022_0_main_ArrayLength(EOS(STATIC_6022), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, java.lang.Object(ARRAY(i348))) -> f6033_0_main_Load(EOS(STATIC_6033), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, i348) :|: i348 >= 0 f6033_0_main_Load(EOS(STATIC_6033), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, i348) -> f6046_0_main_InvokeMethod(EOS(STATIC_6046), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, i348, i331) :|: TRUE f6046_0_main_InvokeMethod(EOS(STATIC_6046), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, i348, i331) -> f6216_0_cos_Load(EOS(STATIC_6216), i348, i331, i348, i331) :|: i348 >= 1 && i331 < i348 f6046_0_main_InvokeMethod(EOS(STATIC_6046), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, i348, i331) -> f6216_1_cos_Load(EOS(STATIC_6216), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, i348, i331) :|: i348 >= 1 && i331 < i348 f6216_0_cos_Load(EOS(STATIC_6216), i348, i331, i348, i331) -> f7544_0_cos_Load(EOS(STATIC_7544), i348, i331, i348, i331) :|: TRUE f6488_0_cos_Return(EOS(STATIC_6488), java.lang.Object(ARRAY(i680)), java.lang.Object(ARRAY(i680)), matching1) -> f6495_0_main_StackPop(EOS(STATIC_6495), java.lang.Object(ARRAY(i680)), java.lang.Object(ARRAY(i680)), 0) :|: TRUE && matching1 = 0 f6495_0_main_StackPop(EOS(STATIC_6495), java.lang.Object(ARRAY(i680)), java.lang.Object(ARRAY(i680)), matching1) -> f6502_0_main_JMP(EOS(STATIC_6502), java.lang.Object(ARRAY(i680)), java.lang.Object(ARRAY(i680)), 0) :|: TRUE && matching1 = 0 f6502_0_main_JMP(EOS(STATIC_6502), java.lang.Object(ARRAY(i680)), java.lang.Object(ARRAY(i680)), matching1) -> f6508_0_main_Inc(EOS(STATIC_6508), java.lang.Object(ARRAY(i680)), java.lang.Object(ARRAY(i680)), 0) :|: TRUE && matching1 = 0 f6508_0_main_Inc(EOS(STATIC_6508), java.lang.Object(ARRAY(i680)), java.lang.Object(ARRAY(i680)), matching1) -> f6473_0_main_Inc(EOS(STATIC_6473), java.lang.Object(ARRAY(i680)), java.lang.Object(ARRAY(i680)), 0) :|: TRUE && matching1 = 0 f6599_0_cos_Return(EOS(STATIC_6599), java.lang.Object(ARRAY(i849)), java.lang.Object(ARRAY(i849)), i847) -> f6583_0_cos_Return(EOS(STATIC_6583), java.lang.Object(ARRAY(i849)), java.lang.Object(ARRAY(i849)), i847) :|: TRUE f6583_0_cos_Return(EOS(STATIC_6583), java.lang.Object(ARRAY(i816)), java.lang.Object(ARRAY(i816)), i814) -> f6586_0_main_StackPop(EOS(STATIC_6586), java.lang.Object(ARRAY(i816)), java.lang.Object(ARRAY(i816)), i814) :|: TRUE f6586_0_main_StackPop(EOS(STATIC_6586), java.lang.Object(ARRAY(i816)), java.lang.Object(ARRAY(i816)), i814) -> f6589_0_main_JMP(EOS(STATIC_6589), java.lang.Object(ARRAY(i816)), java.lang.Object(ARRAY(i816)), i814) :|: TRUE f6589_0_main_JMP(EOS(STATIC_6589), java.lang.Object(ARRAY(i816)), java.lang.Object(ARRAY(i816)), i814) -> f6591_0_main_Inc(EOS(STATIC_6591), java.lang.Object(ARRAY(i816)), java.lang.Object(ARRAY(i816)), i814) :|: TRUE f6591_0_main_Inc(EOS(STATIC_6591), java.lang.Object(ARRAY(i816)), java.lang.Object(ARRAY(i816)), i814) -> f6595_0_main_JMP(EOS(STATIC_6595), java.lang.Object(ARRAY(i816)), java.lang.Object(ARRAY(i816)), i814 + 1) :|: TRUE f6595_0_main_JMP(EOS(STATIC_6595), java.lang.Object(ARRAY(i816)), java.lang.Object(ARRAY(i816)), i842) -> f6598_0_main_Load(EOS(STATIC_6598), java.lang.Object(ARRAY(i816)), java.lang.Object(ARRAY(i816)), i842) :|: TRUE f6598_0_main_Load(EOS(STATIC_6598), java.lang.Object(ARRAY(i816)), java.lang.Object(ARRAY(i816)), i842) -> f4641_0_main_Load(EOS(STATIC_4641), java.lang.Object(ARRAY(i816)), java.lang.Object(ARRAY(i816)), i842) :|: TRUE f5279_0_main_NE(EOS(STATIC_5279), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, matching1) -> f5603_0_main_Load(EOS(STATIC_5603), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331) :|: TRUE && matching1 = 0 f5603_0_main_Load(EOS(STATIC_5603), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331) -> f5620_0_main_ArrayLength(EOS(STATIC_5620), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, java.lang.Object(ARRAY(i348))) :|: TRUE f5620_0_main_ArrayLength(EOS(STATIC_5620), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, java.lang.Object(ARRAY(i348))) -> f5636_0_main_Load(EOS(STATIC_5636), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, i348) :|: i348 >= 0 f5636_0_main_Load(EOS(STATIC_5636), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, i348) -> f5680_0_main_InvokeMethod(EOS(STATIC_5680), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, i348, i331) :|: TRUE f5680_0_main_InvokeMethod(EOS(STATIC_5680), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, i348, i331) -> f5885_0_sin_Load(EOS(STATIC_5885), i348, i331, i348, i331) :|: i348 >= 1 && i331 < i348 f5680_0_main_InvokeMethod(EOS(STATIC_5680), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, i348, i331) -> f5885_1_sin_Load(EOS(STATIC_5885), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i331, i348, i331) :|: i348 >= 1 && i331 < i348 f5885_0_sin_Load(EOS(STATIC_5885), i348, i331, i348, i331) -> f7590_0_sin_Load(EOS(STATIC_7590), i348, i331, i348, i331) :|: TRUE f6218_0_sin_Return(EOS(STATIC_6218), java.lang.Object(ARRAY(i606)), java.lang.Object(ARRAY(i606)), matching1, i606) -> f6250_0_main_StackPop(EOS(STATIC_6250), java.lang.Object(ARRAY(i606)), java.lang.Object(ARRAY(i606)), 0, i606) :|: TRUE && matching1 = 0 f6250_0_main_StackPop(EOS(STATIC_6250), java.lang.Object(ARRAY(i606)), java.lang.Object(ARRAY(i606)), matching1, i606) -> f6422_0_main_JMP(EOS(STATIC_6422), java.lang.Object(ARRAY(i606)), java.lang.Object(ARRAY(i606)), 0) :|: TRUE && matching1 = 0 f6422_0_main_JMP(EOS(STATIC_6422), java.lang.Object(ARRAY(i606)), java.lang.Object(ARRAY(i606)), matching1) -> f6473_0_main_Inc(EOS(STATIC_6473), java.lang.Object(ARRAY(i606)), java.lang.Object(ARRAY(i606)), 0) :|: TRUE && matching1 = 0 f6605_0_sin_Return(EOS(STATIC_6605), java.lang.Object(ARRAY(i874)), java.lang.Object(ARRAY(i874)), i872, i870) -> f6593_0_sin_Return(EOS(STATIC_6593), java.lang.Object(ARRAY(i874)), java.lang.Object(ARRAY(i874)), i872, i870) :|: TRUE f6593_0_sin_Return(EOS(STATIC_6593), java.lang.Object(ARRAY(i834)), java.lang.Object(ARRAY(i834)), i832, i830) -> f6596_0_main_StackPop(EOS(STATIC_6596), java.lang.Object(ARRAY(i834)), java.lang.Object(ARRAY(i834)), i832, i830) :|: TRUE f6596_0_main_StackPop(EOS(STATIC_6596), java.lang.Object(ARRAY(i834)), java.lang.Object(ARRAY(i834)), i832, i830) -> f6601_0_main_JMP(EOS(STATIC_6601), java.lang.Object(ARRAY(i834)), java.lang.Object(ARRAY(i834)), i832) :|: TRUE f6601_0_main_JMP(EOS(STATIC_6601), java.lang.Object(ARRAY(i834)), java.lang.Object(ARRAY(i834)), i832) -> f6603_0_main_Inc(EOS(STATIC_6603), java.lang.Object(ARRAY(i834)), java.lang.Object(ARRAY(i834)), i832) :|: TRUE f6603_0_main_Inc(EOS(STATIC_6603), java.lang.Object(ARRAY(i834)), java.lang.Object(ARRAY(i834)), i832) -> f6591_0_main_Inc(EOS(STATIC_6591), java.lang.Object(ARRAY(i834)), java.lang.Object(ARRAY(i834)), i832) :|: TRUE f6487_1_exp_Load(EOS(STATIC_6487), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), matching1, i706, matching2) -> f6515_0_exp_Return(EOS(STATIC_6515), java.lang.Object(ARRAY(i706)), java.lang.Object(ARRAY(i706)), 0) :|: TRUE && matching1 = 0 && matching2 = 0 f6487_1_exp_Load(EOS(STATIC_6487), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i776, i778, i776) -> f6572_0_exp_Return(EOS(STATIC_6572), java.lang.Object(ARRAY(i778)), java.lang.Object(ARRAY(i778)), i776) :|: TRUE f6216_1_cos_Load(EOS(STATIC_6216), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), matching1, i680, matching2) -> f6488_0_cos_Return(EOS(STATIC_6488), java.lang.Object(ARRAY(i680)), java.lang.Object(ARRAY(i680)), 0) :|: TRUE && matching1 = 0 && matching2 = 0 f6216_1_cos_Load(EOS(STATIC_6216), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i847, i849, i847) -> f6599_0_cos_Return(EOS(STATIC_6599), java.lang.Object(ARRAY(i849)), java.lang.Object(ARRAY(i849)), i847) :|: TRUE f5885_1_sin_Load(EOS(STATIC_5885), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), matching1, i606, matching2) -> f6218_0_sin_Return(EOS(STATIC_6218), java.lang.Object(ARRAY(i606)), java.lang.Object(ARRAY(i606)), 0, i606) :|: TRUE && matching1 = 0 && matching2 = 0 f5885_1_sin_Load(EOS(STATIC_5885), java.lang.Object(ARRAY(i348)), java.lang.Object(ARRAY(i348)), i872, i874, i872) -> f6605_0_sin_Return(EOS(STATIC_6605), java.lang.Object(ARRAY(i874)), java.lang.Object(ARRAY(i874)), i872, i870) :|: TRUE Combined rules. Obtained 19 IRulesP rules: f4650_0_main_Load(EOS(STATIC_4650), java.lang.Object(ARRAY(i348:0)), java.lang.Object(ARRAY(i348:0)), 0, 0) -> f4650_0_main_Load'(EOS(STATIC_4650), java.lang.Object(ARRAY(i348:0)), java.lang.Object(ARRAY(i348:0)), 0, 0) :|: i348:0 > 0 && 2 * div = -1 && 3 * div1 = 0 f4650_0_main_Load'(EOS(STATIC_4650), java.lang.Object(ARRAY(i348:0)), java.lang.Object(ARRAY(i348:0)), 0, 0) -> f4650_0_main_Load(EOS(STATIC_4650), java.lang.Object(ARRAY(i348:0)), java.lang.Object(ARRAY(i348:0)), 1, 1) :|: i348:0 > 0 && 2 * div = -1 && 3 * div1 = 0 && 2 * div < 2 && 2 * div > -2 && 3 * div1 > -3 && 3 * div1 < 3 f4650_0_main_Load(EOS(STATIC_4650), java.lang.Object(ARRAY(i348:0)), java.lang.Object(ARRAY(i348:0)), 0, 0) -> f4650_0_main_Load'(EOS(STATIC_4650), java.lang.Object(ARRAY(i348:0)), java.lang.Object(ARRAY(i348:0)), 0, 0) :|: i348:0 > 0 && 2 * div = 0 f4650_0_main_Load'(EOS(STATIC_4650), java.lang.Object(ARRAY(i348:0)), java.lang.Object(ARRAY(i348:0)), 0, 0) -> f4650_0_main_Load(EOS(STATIC_4650), java.lang.Object(ARRAY(i348:0)), java.lang.Object(ARRAY(i348:0)), 1, 1) :|: i348:0 > 0 && 2 * div = 0 && 2 * div > -2 && 2 * div < 2 f4650_0_main_Load(EOS(STATIC_4650), java.lang.Object(ARRAY(i348:0)), java.lang.Object(ARRAY(i348:0)), i331:0, i331:0) -> f4650_0_main_Load'(EOS(STATIC_4650), java.lang.Object(ARRAY(i348:0)), java.lang.Object(ARRAY(i348:0)), i331:0, i331:0) :|: i348:0 > -1 && i348:0 > i331:0 && i331:0 - 2 * div = 1 && i331:0 - 5 * div2 > 0 && i331:0 - 3 * div1 > 0 f4650_0_main_Load'(EOS(STATIC_4650), java.lang.Object(ARRAY(i348:0)), java.lang.Object(ARRAY(i348:0)), i331:0, i331:0) -> f6558_0_main_GE(EOS(STATIC_6558), java.lang.Object(ARRAY(i348:0)), java.lang.Object(ARRAY(i348:0)), i331:0, 0, 0, 100) :|: i331:0 - 3 * div1 > 0 && i331:0 - 5 * div2 > 0 && i348:0 > -1 && i348:0 > i331:0 && i331:0 - 2 * div = 1 && i331:0 - 2 * div > -2 && i331:0 - 2 * div < 2 && i331:0 - 5 * div2 < 5 && i331:0 - 3 * div1 < 3 f4650_0_main_Load(EOS(STATIC_4650), java.lang.Object(ARRAY(i348:0)), java.lang.Object(ARRAY(i348:0)), i331:0, i331:0) -> f4650_0_main_Load'(EOS(STATIC_4650), java.lang.Object(ARRAY(i348:0)), java.lang.Object(ARRAY(i348:0)), i331:0, i331:0) :|: i348:0 > 0 && i348:0 > i331:0 && i331:0 - 2 * div = 1 && i331:0 - 3 * div1 > 0 && i331:0 - 5 * div2 = 0 f4650_0_main_Load'(EOS(STATIC_4650), java.lang.Object(ARRAY(i348:0)), java.lang.Object(ARRAY(i348:0)), i331:0, i331:0) -> f4650_0_main_Load(EOS(STATIC_4650), java.lang.Object(ARRAY(i348:0)), java.lang.Object(ARRAY(i348:0)), i331:0 + 1, i331:0 + 1) :|: i331:0 - 3 * div1 > 0 && i348:0 > 0 && i348:0 > i331:0 && i331:0 - 2 * div = 1 && i331:0 - 5 * div2 = 0 && i331:0 - 2 * div > -2 && i331:0 - 2 * div < 2 && i331:0 - 3 * div1 < 3 && i331:0 - 5 * div2 < 5 && i331:0 - 5 * div2 > -5 f4650_0_main_Load(EOS(STATIC_4650), java.lang.Object(ARRAY(i348:0)), java.lang.Object(ARRAY(i348:0)), i331:0, i331:0) -> f4650_0_main_Load'(EOS(STATIC_4650), java.lang.Object(ARRAY(i348:0)), java.lang.Object(ARRAY(i348:0)), i331:0, i331:0) :|: i348:0 > 0 && i348:0 > i331:0 && i331:0 - 2 * div = 1 && i331:0 - 3 * div1 = 0 f4650_0_main_Load'(EOS(STATIC_4650), java.lang.Object(ARRAY(i348:0)), java.lang.Object(ARRAY(i348:0)), i331:0, i331:0) -> f4650_0_main_Load(EOS(STATIC_4650), java.lang.Object(ARRAY(i348:0)), java.lang.Object(ARRAY(i348:0)), i331:0 + 1, i331:0 + 1) :|: i348:0 > 0 && i348:0 > i331:0 && i331:0 - 2 * div = 1 && i331:0 - 3 * div1 = 0 && i331:0 - 2 * div > -2 && i331:0 - 2 * div < 2 && i331:0 - 3 * div1 < 3 && i331:0 - 3 * div1 > -3 f6558_0_main_GE(EOS(STATIC_6558), java.lang.Object(ARRAY(i348:0)), java.lang.Object(ARRAY(i348:0)), i331:0, i766:0, i766:0, 100) -> f4650_0_main_Load(EOS(STATIC_4650), java.lang.Object(ARRAY(i348:0)), java.lang.Object(ARRAY(i348:0)), i331:0 + 1, i331:0 + 1) :|: i766:0 > 99 f6558_0_main_GE(EOS(STATIC_6558), java.lang.Object(ARRAY(i348:0)), java.lang.Object(ARRAY(i348:0)), i331:0, i765:0, i765:0, 100) -> f6558_0_main_GE(EOS(STATIC_6558), java.lang.Object(ARRAY(i348:0)), java.lang.Object(ARRAY(i348:0)), i331:0, i765:0 + 1, i765:0 + 1, 100) :|: i765:0 < 100 f4650_0_main_Load(EOS(STATIC_4650), java.lang.Object(ARRAY(i348:0)), java.lang.Object(ARRAY(i348:0)), 0, 0) -> f4650_0_main_Load'(EOS(STATIC_4650), java.lang.Object(ARRAY(i348:0)), java.lang.Object(ARRAY(i348:0)), 0, 0) :|: i348:0 > 0 && 2 * div = -1 && 3 * div1 < 0 && 5 * div2 = 0 f4650_0_main_Load'(EOS(STATIC_4650), java.lang.Object(ARRAY(i348:0)), java.lang.Object(ARRAY(i348:0)), 0, 0) -> f4650_0_main_Load(EOS(STATIC_4650), java.lang.Object(ARRAY(i348:0)), java.lang.Object(ARRAY(i348:0)), 1, 1) :|: 3 * div1 < 0 && i348:0 > 0 && 2 * div = -1 && 5 * div2 = 0 && 2 * div < 2 && 2 * div > -2 && 3 * div1 > -3 && 5 * div2 > -5 && 5 * div2 < 5 f4650_0_main_Load(EOS(STATIC_4650), java.lang.Object(ARRAY(i348:0)), java.lang.Object(ARRAY(i348:0)), i331:0, i331:0) -> f4650_0_main_Load'(EOS(STATIC_4650), java.lang.Object(ARRAY(i348:0)), java.lang.Object(ARRAY(i348:0)), i331:0, i331:0) :|: i348:0 > 0 && i348:0 > i331:0 && i331:0 - 2 * div = 0 f4650_0_main_Load'(EOS(STATIC_4650), java.lang.Object(ARRAY(i348:0)), java.lang.Object(ARRAY(i348:0)), i331:0, i331:0) -> f4650_0_main_Load(EOS(STATIC_4650), java.lang.Object(ARRAY(i348:0)), java.lang.Object(ARRAY(i348:0)), i331:0 + 1, i331:0 + 1) :|: i348:0 > 0 && i348:0 > i331:0 && i331:0 - 2 * div = 0 && i331:0 - 2 * div < 2 && i331:0 - 2 * div > -2 Removed following non-SCC rules: f4650_0_main_Load'(EOS(STATIC_4650), java.lang.Object(ARRAY(i348:0)), java.lang.Object(ARRAY(i348:0)), i331:0, i331:0) -> f7544_0_cos_Load(EOS(STATIC_7544), i348:0, i331:0, i348:0, i331:0) :|: i348:0 > 0 && i348:0 > i331:0 && i331:0 - 2 * div = 1 && i331:0 - 3 * div1 = 0 && i331:0 - 2 * div > -2 && i331:0 - 2 * div < 2 && i331:0 - 3 * div1 < 3 && i331:0 - 3 * div1 > -3 f4650_0_main_Load'(EOS(STATIC_4650), java.lang.Object(ARRAY(i348:0)), java.lang.Object(ARRAY(i348:0)), i331:0, i331:0) -> f7590_0_sin_Load(EOS(STATIC_7590), i348:0, i331:0, i348:0, i331:0) :|: i348:0 > 0 && i348:0 > i331:0 && i331:0 - 2 * div = 0 && i331:0 - 2 * div < 2 && i331:0 - 2 * div > -2 f4650_0_main_Load'(EOS(STATIC_4650), java.lang.Object(ARRAY(i348:0)), java.lang.Object(ARRAY(i348:0)), i331:0, i331:0) -> f7500_0_exp_Load(EOS(STATIC_7500), i348:0, i331:0, i348:0, i331:0) :|: i331:0 - 3 * div1 > 0 && i348:0 > 0 && i348:0 > i331:0 && i331:0 - 2 * div = 1 && i331:0 - 5 * div2 = 0 && i331:0 - 2 * div > -2 && i331:0 - 2 * div < 2 && i331:0 - 3 * div1 < 3 && i331:0 - 5 * div2 < 5 && i331:0 - 5 * div2 > -5 Filtered constant ground arguments: f4650_0_main_Load(x1, x2, x3, x4, x5) -> f4650_0_main_Load(x2, x3, x4, x5) f4650_0_main_Load'(x1, x2, x3, x4, x5) -> f4650_0_main_Load'(x2, x3, x4, x5) f6558_0_main_GE(x1, x2, x3, x4, x5, x6, x7) -> f6558_0_main_GE(x2, x3, x4, x5, x6) Filtered duplicate arguments: f4650_0_main_Load(x1, x2, x3, x4) -> f4650_0_main_Load(x2, x4) f4650_0_main_Load'(x1, x2, x3, x4) -> f4650_0_main_Load'(x2, x4) f6558_0_main_GE(x1, x2, x3, x4, x5) -> f6558_0_main_GE(x2, x3, x5) Finished conversion. Obtained 16 rules.P rules: f4650_0_main_Load(java.lang.Object(ARRAY(i348:0)), cons_0, i348:0) -> f4650_0_main_Load'(java.lang.Object(ARRAY(i348:0)), 0, i348:0) :|: 2 * div = -1 && 3 * div1 = 0 && i348:0 > 0 && cons_0 = 0 f4650_0_main_Load'(java.lang.Object(ARRAY(i348:0)), cons_0, i348:0) -> f4650_0_main_Load(java.lang.Object(ARRAY(i348:0)), 1, i348:0) :|: 2 * div = -1 && i348:0 > 0 && 3 * div1 = 0 && 2 * div < 2 && 2 * div > -2 && 3 * div1 < 3 && 3 * div1 > -3 && cons_0 = 0 f4650_0_main_Load(java.lang.Object(ARRAY(i348:0)), cons_0, i348:0) -> f4650_0_main_Load'(java.lang.Object(ARRAY(i348:0)), 0, i348:0) :|: i348:0 > 0 && 2 * div = 0 && cons_0 = 0 f4650_0_main_Load'(java.lang.Object(ARRAY(i348:0)), cons_0, i348:0) -> f4650_0_main_Load(java.lang.Object(ARRAY(i348:0)), 1, i348:0) :|: 2 * div = 0 && i348:0 > 0 && 2 * div < 2 && 2 * div > -2 && cons_0 = 0 f4650_0_main_Load(java.lang.Object(ARRAY(i348:0)), i331:0, i348:0) -> f4650_0_main_Load'(java.lang.Object(ARRAY(i348:0)), i331:0, i348:0) :|: i348:0 > i331:0 && i348:0 > -1 && i331:0 - 2 * div = 1 && i331:0 - 3 * div1 > 0 && i331:0 - 5 * div2 > 0 f4650_0_main_Load'(java.lang.Object(ARRAY(i348:0)), i331:0, i348:0) -> f6558_0_main_GE(java.lang.Object(ARRAY(i348:0)), i331:0, 0, i348:0) :|: i331:0 - 5 * div2 > 0 && i331:0 - 3 * div1 > 0 && i348:0 > -1 && i348:0 > i331:0 && i331:0 - 2 * div = 1 && i331:0 - 2 * div > -2 && i331:0 - 2 * div < 2 && i331:0 - 3 * div1 < 3 && i331:0 - 5 * div2 < 5 f4650_0_main_Load(java.lang.Object(ARRAY(i348:0)), i331:0, i348:0) -> f4650_0_main_Load'(java.lang.Object(ARRAY(i348:0)), i331:0, i348:0) :|: i348:0 > i331:0 && i348:0 > 0 && i331:0 - 2 * div = 1 && i331:0 - 5 * div2 = 0 && i331:0 - 3 * div1 > 0 f4650_0_main_Load'(java.lang.Object(ARRAY(i348:0)), i331:0, i348:0) -> f4650_0_main_Load(java.lang.Object(ARRAY(i348:0)), i331:0 + 1, i348:0) :|: i348:0 > 0 && i331:0 - 3 * div1 > 0 && i348:0 > i331:0 && i331:0 - 2 * div = 1 && i331:0 - 5 * div2 = 0 && i331:0 - 2 * div > -2 && i331:0 - 2 * div < 2 && i331:0 - 3 * div1 < 3 && i331:0 - 5 * div2 > -5 && i331:0 - 5 * div2 < 5 f4650_0_main_Load(java.lang.Object(ARRAY(i348:0)), i331:0, i348:0) -> f4650_0_main_Load'(java.lang.Object(ARRAY(i348:0)), i331:0, i348:0) :|: i348:0 > i331:0 && i348:0 > 0 && i331:0 - 3 * div1 = 0 && i331:0 - 2 * div = 1 f4650_0_main_Load'(java.lang.Object(ARRAY(i348:0)), i331:0, i348:0) -> f4650_0_main_Load(java.lang.Object(ARRAY(i348:0)), i331:0 + 1, i348:0) :|: i348:0 > i331:0 && i348:0 > 0 && i331:0 - 2 * div = 1 && i331:0 - 3 * div1 = 0 && i331:0 - 2 * div > -2 && i331:0 - 2 * div < 2 && i331:0 - 3 * div1 > -3 && i331:0 - 3 * div1 < 3 f6558_0_main_GE(java.lang.Object(ARRAY(i348:0)), i331:0, i766:0, i348:0) -> f4650_0_main_Load(java.lang.Object(ARRAY(i348:0)), i331:0 + 1, i348:0) :|: i766:0 > 99 f6558_0_main_GE(java.lang.Object(ARRAY(i348:0)), i331:0, i765:0, i348:0) -> f6558_0_main_GE(java.lang.Object(ARRAY(i348:0)), i331:0, i765:0 + 1, i348:0) :|: i765:0 < 100 f4650_0_main_Load(java.lang.Object(ARRAY(i348:0)), cons_0, i348:0) -> f4650_0_main_Load'(java.lang.Object(ARRAY(i348:0)), 0, i348:0) :|: 2 * div = -1 && i348:0 > 0 && 5 * div2 = 0 && 3 * div1 < 0 && cons_0 = 0 f4650_0_main_Load'(java.lang.Object(ARRAY(i348:0)), cons_0, i348:0) -> f4650_0_main_Load(java.lang.Object(ARRAY(i348:0)), 1, i348:0) :|: i348:0 > 0 && 3 * div1 < 0 && 2 * div = -1 && 5 * div2 = 0 && 2 * div < 2 && 2 * div > -2 && 3 * div1 > -3 && 5 * div2 < 5 && 5 * div2 > -5 && cons_0 = 0 f4650_0_main_Load(java.lang.Object(ARRAY(i348:0)), i331:0, i348:0) -> f4650_0_main_Load'(java.lang.Object(ARRAY(i348:0)), i331:0, i348:0) :|: i348:0 > i331:0 && i331:0 - 2 * div = 0 && i348:0 > 0 f4650_0_main_Load'(java.lang.Object(ARRAY(i348:0)), i331:0, i348:0) -> f4650_0_main_Load(java.lang.Object(ARRAY(i348:0)), i331:0 + 1, i348:0) :|: i348:0 > i331:0 && i348:0 > 0 && i331:0 - 2 * div = 0 && i331:0 - 2 * div > -2 && i331:0 - 2 * div < 2 ---------------------------------------- (74) Obligation: Rules: f4650_0_main_Load(java.lang.Object(ARRAY(x)), x1, x) -> f4650_0_main_Load'(java.lang.Object(ARRAY(x)), 0, x) :|: 2 * x2 = -1 && 3 * x3 = 0 && x > 0 && x1 = 0 f4650_0_main_Load'(java.lang.Object(ARRAY(x4)), x5, x4) -> f4650_0_main_Load(java.lang.Object(ARRAY(x4)), 1, x4) :|: 2 * x6 = -1 && x4 > 0 && 3 * x7 = 0 && 2 * x6 < 2 && 2 * x6 > -2 && 3 * x7 < 3 && 3 * x7 > -3 && x5 = 0 f4650_0_main_Load(java.lang.Object(ARRAY(x8)), x9, x8) -> f4650_0_main_Load'(java.lang.Object(ARRAY(x8)), 0, x8) :|: x8 > 0 && 2 * x10 = 0 && x9 = 0 f4650_0_main_Load'(java.lang.Object(ARRAY(x11)), x12, x11) -> f4650_0_main_Load(java.lang.Object(ARRAY(x11)), 1, x11) :|: 2 * x13 = 0 && x11 > 0 && 2 * x13 < 2 && 2 * x13 > -2 && x12 = 0 f4650_0_main_Load(java.lang.Object(ARRAY(x14)), x15, x14) -> f4650_0_main_Load'(java.lang.Object(ARRAY(x14)), x15, x14) :|: x14 > x15 && x14 > -1 && x15 - 2 * x16 = 1 && x15 - 3 * x17 > 0 && x15 - 5 * x18 > 0 f4650_0_main_Load'(java.lang.Object(ARRAY(x19)), x20, x19) -> f6558_0_main_GE(java.lang.Object(ARRAY(x19)), x20, 0, x19) :|: x20 - 5 * x21 > 0 && x20 - 3 * x22 > 0 && x19 > -1 && x19 > x20 && x20 - 2 * x23 = 1 && x20 - 2 * x23 > -2 && x20 - 2 * x23 < 2 && x20 - 3 * x22 < 3 && x20 - 5 * x21 < 5 f4650_0_main_Load(java.lang.Object(ARRAY(x24)), x25, x24) -> f4650_0_main_Load'(java.lang.Object(ARRAY(x24)), x25, x24) :|: x24 > x25 && x24 > 0 && x25 - 2 * x26 = 1 && x25 - 5 * x27 = 0 && x25 - 3 * x28 > 0 f4650_0_main_Load'(java.lang.Object(ARRAY(x29)), x30, x29) -> f4650_0_main_Load(java.lang.Object(ARRAY(x29)), x30 + 1, x29) :|: x29 > 0 && x30 - 3 * x31 > 0 && x29 > x30 && x30 - 2 * x32 = 1 && x30 - 5 * x33 = 0 && x30 - 2 * x32 > -2 && x30 - 2 * x32 < 2 && x30 - 3 * x31 < 3 && x30 - 5 * x33 > -5 && x30 - 5 * x33 < 5 f4650_0_main_Load(java.lang.Object(ARRAY(x34)), x35, x34) -> f4650_0_main_Load'(java.lang.Object(ARRAY(x34)), x35, x34) :|: x34 > x35 && x34 > 0 && x35 - 3 * x36 = 0 && x35 - 2 * x37 = 1 f4650_0_main_Load'(java.lang.Object(ARRAY(x38)), x39, x38) -> f4650_0_main_Load(java.lang.Object(ARRAY(x38)), x39 + 1, x38) :|: x38 > x39 && x38 > 0 && x39 - 2 * x40 = 1 && x39 - 3 * x41 = 0 && x39 - 2 * x40 > -2 && x39 - 2 * x40 < 2 && x39 - 3 * x41 > -3 && x39 - 3 * x41 < 3 f6558_0_main_GE(java.lang.Object(ARRAY(i348:0)), i331:0, i766:0, i348:0) -> f4650_0_main_Load(java.lang.Object(ARRAY(i348:0)), i331:0 + 1, i348:0) :|: i766:0 > 99 f6558_0_main_GE(java.lang.Object(ARRAY(x42)), x43, x44, x42) -> f6558_0_main_GE(java.lang.Object(ARRAY(x42)), x43, x44 + 1, x42) :|: x44 < 100 f4650_0_main_Load(java.lang.Object(ARRAY(x45)), x46, x45) -> f4650_0_main_Load'(java.lang.Object(ARRAY(x45)), 0, x45) :|: 2 * x47 = -1 && x45 > 0 && 5 * x48 = 0 && 3 * x49 < 0 && x46 = 0 f4650_0_main_Load'(java.lang.Object(ARRAY(x50)), x51, x50) -> f4650_0_main_Load(java.lang.Object(ARRAY(x50)), 1, x50) :|: x50 > 0 && 3 * x52 < 0 && 2 * x53 = -1 && 5 * x54 = 0 && 2 * x53 < 2 && 2 * x53 > -2 && 3 * x52 > -3 && 5 * x54 < 5 && 5 * x54 > -5 && x51 = 0 f4650_0_main_Load(java.lang.Object(ARRAY(x55)), x56, x55) -> f4650_0_main_Load'(java.lang.Object(ARRAY(x55)), x56, x55) :|: x55 > x56 && x56 - 2 * x57 = 0 && x55 > 0 f4650_0_main_Load'(java.lang.Object(ARRAY(x58)), x59, x58) -> f4650_0_main_Load(java.lang.Object(ARRAY(x58)), x59 + 1, x58) :|: x58 > x59 && x58 > 0 && x59 - 2 * x60 = 0 && x59 - 2 * x60 > -2 && x59 - 2 * x60 < 2 ---------------------------------------- (75) IRSFormatTransformerProof (EQUIVALENT) Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). ---------------------------------------- (76) Obligation: Rules: f4650_0_main_Load(java.lang.Object(ARRAY(x)), x1, x) -> f4650_0_main_Load'(java.lang.Object(ARRAY(x)), 0, x) :|: 2 * x2 = -1 && 3 * x3 = 0 && x > 0 && x1 = 0 f4650_0_main_Load'(java.lang.Object(ARRAY(x4)), x5, x4) -> f4650_0_main_Load(java.lang.Object(ARRAY(x4)), 1, x4) :|: 2 * x6 = -1 && x4 > 0 && 3 * x7 = 0 && 2 * x6 < 2 && 2 * x6 > -2 && 3 * x7 < 3 && 3 * x7 > -3 && x5 = 0 f4650_0_main_Load(java.lang.Object(ARRAY(x8)), x9, x8) -> f4650_0_main_Load'(java.lang.Object(ARRAY(x8)), 0, x8) :|: x8 > 0 && 2 * x10 = 0 && x9 = 0 f4650_0_main_Load'(java.lang.Object(ARRAY(x11)), x12, x11) -> f4650_0_main_Load(java.lang.Object(ARRAY(x11)), 1, x11) :|: 2 * x13 = 0 && x11 > 0 && 2 * x13 < 2 && 2 * x13 > -2 && x12 = 0 f4650_0_main_Load(java.lang.Object(ARRAY(x14)), x15, x14) -> f4650_0_main_Load'(java.lang.Object(ARRAY(x14)), x15, x14) :|: x14 > x15 && x14 > -1 && x15 - 2 * x16 = 1 && x15 - 3 * x17 > 0 && x15 - 5 * x18 > 0 f4650_0_main_Load'(java.lang.Object(ARRAY(x19)), x20, x19) -> f6558_0_main_GE(java.lang.Object(ARRAY(x19)), x20, 0, x19) :|: x20 - 5 * x21 > 0 && x20 - 3 * x22 > 0 && x19 > -1 && x19 > x20 && x20 - 2 * x23 = 1 && x20 - 2 * x23 > -2 && x20 - 2 * x23 < 2 && x20 - 3 * x22 < 3 && x20 - 5 * x21 < 5 f4650_0_main_Load(java.lang.Object(ARRAY(x24)), x25, x24) -> f4650_0_main_Load'(java.lang.Object(ARRAY(x24)), x25, x24) :|: x24 > x25 && x24 > 0 && x25 - 2 * x26 = 1 && x25 - 5 * x27 = 0 && x25 - 3 * x28 > 0 f4650_0_main_Load'(java.lang.Object(ARRAY(x29)), x30, x29) -> f4650_0_main_Load(java.lang.Object(ARRAY(x29)), arith, x29) :|: x29 > 0 && x30 - 3 * x31 > 0 && x29 > x30 && x30 - 2 * x32 = 1 && x30 - 5 * x33 = 0 && x30 - 2 * x32 > -2 && x30 - 2 * x32 < 2 && x30 - 3 * x31 < 3 && x30 - 5 * x33 > -5 && x30 - 5 * x33 < 5 && arith = x30 + 1 f4650_0_main_Load(java.lang.Object(ARRAY(x34)), x35, x34) -> f4650_0_main_Load'(java.lang.Object(ARRAY(x34)), x35, x34) :|: x34 > x35 && x34 > 0 && x35 - 3 * x36 = 0 && x35 - 2 * x37 = 1 f4650_0_main_Load'(java.lang.Object(ARRAY(x61)), x62, x61) -> f4650_0_main_Load(java.lang.Object(ARRAY(x61)), x63, x61) :|: x61 > x62 && x61 > 0 && x62 - 2 * x64 = 1 && x62 - 3 * x65 = 0 && x62 - 2 * x64 > -2 && x62 - 2 * x64 < 2 && x62 - 3 * x65 > -3 && x62 - 3 * x65 < 3 && x63 = x62 + 1 f6558_0_main_GE(java.lang.Object(ARRAY(x66)), x67, x68, x66) -> f4650_0_main_Load(java.lang.Object(ARRAY(x66)), x69, x66) :|: x68 > 99 && x69 = x67 + 1 f6558_0_main_GE(java.lang.Object(ARRAY(x70)), x71, x72, x70) -> f6558_0_main_GE(java.lang.Object(ARRAY(x70)), x71, x73, x70) :|: x72 < 100 && x73 = x72 + 1 f4650_0_main_Load(java.lang.Object(ARRAY(x45)), x46, x45) -> f4650_0_main_Load'(java.lang.Object(ARRAY(x45)), 0, x45) :|: 2 * x47 = -1 && x45 > 0 && 5 * x48 = 0 && 3 * x49 < 0 && x46 = 0 f4650_0_main_Load'(java.lang.Object(ARRAY(x50)), x51, x50) -> f4650_0_main_Load(java.lang.Object(ARRAY(x50)), 1, x50) :|: x50 > 0 && 3 * x52 < 0 && 2 * x53 = -1 && 5 * x54 = 0 && 2 * x53 < 2 && 2 * x53 > -2 && 3 * x52 > -3 && 5 * x54 < 5 && 5 * x54 > -5 && x51 = 0 f4650_0_main_Load(java.lang.Object(ARRAY(x55)), x56, x55) -> f4650_0_main_Load'(java.lang.Object(ARRAY(x55)), x56, x55) :|: x55 > x56 && x56 - 2 * x57 = 0 && x55 > 0 f4650_0_main_Load'(java.lang.Object(ARRAY(x74)), x75, x74) -> f4650_0_main_Load(java.lang.Object(ARRAY(x74)), x76, x74) :|: x74 > x75 && x74 > 0 && x75 - 2 * x77 = 0 && x75 - 2 * x77 > -2 && x75 - 2 * x77 < 2 && x76 = x75 + 1 ---------------------------------------- (77) IRSwTTerminationDigraphProof (EQUIVALENT) Constructed termination digraph! Nodes: (1) f4650_0_main_Load(java.lang.Object(ARRAY(x)), x1, x) -> f4650_0_main_Load'(java.lang.Object(ARRAY(x)), 0, x) :|: 2 * x2 = -1 && 3 * x3 = 0 && x > 0 && x1 = 0 (2) f4650_0_main_Load'(java.lang.Object(ARRAY(x4)), x5, x4) -> f4650_0_main_Load(java.lang.Object(ARRAY(x4)), 1, x4) :|: 2 * x6 = -1 && x4 > 0 && 3 * x7 = 0 && 2 * x6 < 2 && 2 * x6 > -2 && 3 * x7 < 3 && 3 * x7 > -3 && x5 = 0 (3) f4650_0_main_Load(java.lang.Object(ARRAY(x8)), x9, x8) -> f4650_0_main_Load'(java.lang.Object(ARRAY(x8)), 0, x8) :|: x8 > 0 && 2 * x10 = 0 && x9 = 0 (4) f4650_0_main_Load'(java.lang.Object(ARRAY(x11)), x12, x11) -> f4650_0_main_Load(java.lang.Object(ARRAY(x11)), 1, x11) :|: 2 * x13 = 0 && x11 > 0 && 2 * x13 < 2 && 2 * x13 > -2 && x12 = 0 (5) f4650_0_main_Load(java.lang.Object(ARRAY(x14)), x15, x14) -> f4650_0_main_Load'(java.lang.Object(ARRAY(x14)), x15, x14) :|: x14 > x15 && x14 > -1 && x15 - 2 * x16 = 1 && x15 - 3 * x17 > 0 && x15 - 5 * x18 > 0 (6) f4650_0_main_Load'(java.lang.Object(ARRAY(x19)), x20, x19) -> f6558_0_main_GE(java.lang.Object(ARRAY(x19)), x20, 0, x19) :|: x20 - 5 * x21 > 0 && x20 - 3 * x22 > 0 && x19 > -1 && x19 > x20 && x20 - 2 * x23 = 1 && x20 - 2 * x23 > -2 && x20 - 2 * x23 < 2 && x20 - 3 * x22 < 3 && x20 - 5 * x21 < 5 (7) f4650_0_main_Load(java.lang.Object(ARRAY(x24)), x25, x24) -> f4650_0_main_Load'(java.lang.Object(ARRAY(x24)), x25, x24) :|: x24 > x25 && x24 > 0 && x25 - 2 * x26 = 1 && x25 - 5 * x27 = 0 && x25 - 3 * x28 > 0 (8) f4650_0_main_Load'(java.lang.Object(ARRAY(x29)), x30, x29) -> f4650_0_main_Load(java.lang.Object(ARRAY(x29)), arith, x29) :|: x29 > 0 && x30 - 3 * x31 > 0 && x29 > x30 && x30 - 2 * x32 = 1 && x30 - 5 * x33 = 0 && x30 - 2 * x32 > -2 && x30 - 2 * x32 < 2 && x30 - 3 * x31 < 3 && x30 - 5 * x33 > -5 && x30 - 5 * x33 < 5 && arith = x30 + 1 (9) f4650_0_main_Load(java.lang.Object(ARRAY(x34)), x35, x34) -> f4650_0_main_Load'(java.lang.Object(ARRAY(x34)), x35, x34) :|: x34 > x35 && x34 > 0 && x35 - 3 * x36 = 0 && x35 - 2 * x37 = 1 (10) f4650_0_main_Load'(java.lang.Object(ARRAY(x61)), x62, x61) -> f4650_0_main_Load(java.lang.Object(ARRAY(x61)), x63, x61) :|: x61 > x62 && x61 > 0 && x62 - 2 * x64 = 1 && x62 - 3 * x65 = 0 && x62 - 2 * x64 > -2 && x62 - 2 * x64 < 2 && x62 - 3 * x65 > -3 && x62 - 3 * x65 < 3 && x63 = x62 + 1 (11) f6558_0_main_GE(java.lang.Object(ARRAY(x66)), x67, x68, x66) -> f4650_0_main_Load(java.lang.Object(ARRAY(x66)), x69, x66) :|: x68 > 99 && x69 = x67 + 1 (12) f6558_0_main_GE(java.lang.Object(ARRAY(x70)), x71, x72, x70) -> f6558_0_main_GE(java.lang.Object(ARRAY(x70)), x71, x73, x70) :|: x72 < 100 && x73 = x72 + 1 (13) f4650_0_main_Load(java.lang.Object(ARRAY(x45)), x46, x45) -> f4650_0_main_Load'(java.lang.Object(ARRAY(x45)), 0, x45) :|: 2 * x47 = -1 && x45 > 0 && 5 * x48 = 0 && 3 * x49 < 0 && x46 = 0 (14) f4650_0_main_Load'(java.lang.Object(ARRAY(x50)), x51, x50) -> f4650_0_main_Load(java.lang.Object(ARRAY(x50)), 1, x50) :|: x50 > 0 && 3 * x52 < 0 && 2 * x53 = -1 && 5 * x54 = 0 && 2 * x53 < 2 && 2 * x53 > -2 && 3 * x52 > -3 && 5 * x54 < 5 && 5 * x54 > -5 && x51 = 0 (15) f4650_0_main_Load(java.lang.Object(ARRAY(x55)), x56, x55) -> f4650_0_main_Load'(java.lang.Object(ARRAY(x55)), x56, x55) :|: x55 > x56 && x56 - 2 * x57 = 0 && x55 > 0 (16) f4650_0_main_Load'(java.lang.Object(ARRAY(x74)), x75, x74) -> f4650_0_main_Load(java.lang.Object(ARRAY(x74)), x76, x74) :|: x74 > x75 && x74 > 0 && x75 - 2 * x77 = 0 && x75 - 2 * x77 > -2 && x75 - 2 * x77 < 2 && x76 = x75 + 1 Arcs: (3) -> (4), (16) (4) -> (5) (5) -> (6), (8), (10) (6) -> (12) (7) -> (8), (10) (8) -> (15) (9) -> (10) (10) -> (15) (11) -> (3), (5), (7), (9), (15) (12) -> (11), (12) (15) -> (4), (16) (16) -> (5), (7), (9) This digraph is fully evaluated! ---------------------------------------- (78) Obligation: Termination digraph: Nodes: (1) f4650_0_main_Load(java.lang.Object(ARRAY(x8)), x9, x8) -> f4650_0_main_Load'(java.lang.Object(ARRAY(x8)), 0, x8) :|: x8 > 0 && 2 * x10 = 0 && x9 = 0 (2) f6558_0_main_GE(java.lang.Object(ARRAY(x66)), x67, x68, x66) -> f4650_0_main_Load(java.lang.Object(ARRAY(x66)), x69, x66) :|: x68 > 99 && x69 = x67 + 1 (3) f6558_0_main_GE(java.lang.Object(ARRAY(x70)), x71, x72, x70) -> f6558_0_main_GE(java.lang.Object(ARRAY(x70)), x71, x73, x70) :|: x72 < 100 && x73 = x72 + 1 (4) f4650_0_main_Load'(java.lang.Object(ARRAY(x19)), x20, x19) -> f6558_0_main_GE(java.lang.Object(ARRAY(x19)), x20, 0, x19) :|: x20 - 5 * x21 > 0 && x20 - 3 * x22 > 0 && x19 > -1 && x19 > x20 && x20 - 2 * x23 = 1 && x20 - 2 * x23 > -2 && x20 - 2 * x23 < 2 && x20 - 3 * x22 < 3 && x20 - 5 * x21 < 5 (5) f4650_0_main_Load(java.lang.Object(ARRAY(x14)), x15, x14) -> f4650_0_main_Load'(java.lang.Object(ARRAY(x14)), x15, x14) :|: x14 > x15 && x14 > -1 && x15 - 2 * x16 = 1 && x15 - 3 * x17 > 0 && x15 - 5 * x18 > 0 (6) f4650_0_main_Load'(java.lang.Object(ARRAY(x11)), x12, x11) -> f4650_0_main_Load(java.lang.Object(ARRAY(x11)), 1, x11) :|: 2 * x13 = 0 && x11 > 0 && 2 * x13 < 2 && 2 * x13 > -2 && x12 = 0 (7) f4650_0_main_Load(java.lang.Object(ARRAY(x55)), x56, x55) -> f4650_0_main_Load'(java.lang.Object(ARRAY(x55)), x56, x55) :|: x55 > x56 && x56 - 2 * x57 = 0 && x55 > 0 (8) f4650_0_main_Load'(java.lang.Object(ARRAY(x61)), x62, x61) -> f4650_0_main_Load(java.lang.Object(ARRAY(x61)), x63, x61) :|: x61 > x62 && x61 > 0 && x62 - 2 * x64 = 1 && x62 - 3 * x65 = 0 && x62 - 2 * x64 > -2 && x62 - 2 * x64 < 2 && x62 - 3 * x65 > -3 && x62 - 3 * x65 < 3 && x63 = x62 + 1 (9) f4650_0_main_Load(java.lang.Object(ARRAY(x34)), x35, x34) -> f4650_0_main_Load'(java.lang.Object(ARRAY(x34)), x35, x34) :|: x34 > x35 && x34 > 0 && x35 - 3 * x36 = 0 && x35 - 2 * x37 = 1 (10) f4650_0_main_Load'(java.lang.Object(ARRAY(x29)), x30, x29) -> f4650_0_main_Load(java.lang.Object(ARRAY(x29)), arith, x29) :|: x29 > 0 && x30 - 3 * x31 > 0 && x29 > x30 && x30 - 2 * x32 = 1 && x30 - 5 * x33 = 0 && x30 - 2 * x32 > -2 && x30 - 2 * x32 < 2 && x30 - 3 * x31 < 3 && x30 - 5 * x33 > -5 && x30 - 5 * x33 < 5 && arith = x30 + 1 (11) f4650_0_main_Load(java.lang.Object(ARRAY(x24)), x25, x24) -> f4650_0_main_Load'(java.lang.Object(ARRAY(x24)), x25, x24) :|: x24 > x25 && x24 > 0 && x25 - 2 * x26 = 1 && x25 - 5 * x27 = 0 && x25 - 3 * x28 > 0 (12) f4650_0_main_Load'(java.lang.Object(ARRAY(x74)), x75, x74) -> f4650_0_main_Load(java.lang.Object(ARRAY(x74)), x76, x74) :|: x74 > x75 && x74 > 0 && x75 - 2 * x77 = 0 && x75 - 2 * x77 > -2 && x75 - 2 * x77 < 2 && x76 = x75 + 1 Arcs: (1) -> (6), (12) (2) -> (1), (5), (7), (9), (11) (3) -> (2), (3) (4) -> (3) (5) -> (4), (8), (10) (6) -> (5) (7) -> (6), (12) (8) -> (7) (9) -> (8) (10) -> (7) (11) -> (8), (10) (12) -> (5), (9), (11) This digraph is fully evaluated! ---------------------------------------- (79) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (80) Obligation: Rules: f4650_0_main_Load(java.lang.Object(ARRAY(x8:0)), cons_0, x8:0) -> f4650_0_main_Load'(java.lang.Object(ARRAY(x8:0)), 0, x8:0) :|: x8:0 > 0 && 2 * x10:0 = 0 && cons_0 = 0 f4650_0_main_Load(java.lang.Object(ARRAY(x55:0)), x56:0, x55:0) -> f4650_0_main_Load'(java.lang.Object(ARRAY(x55:0)), x56:0, x55:0) :|: x56:0 < x55:0 && x56:0 - 2 * x57:0 = 0 && x55:0 > 0 f4650_0_main_Load'(java.lang.Object(ARRAY(x61:0)), x62:0, x61:0) -> f4650_0_main_Load(java.lang.Object(ARRAY(x61:0)), x62:0 + 1, x61:0) :|: x62:0 - 3 * x65:0 > -3 && x62:0 - 3 * x65:0 < 3 && x62:0 - 2 * x64:0 < 2 && x62:0 - 2 * x64:0 > -2 && x62:0 - 3 * x65:0 = 0 && x62:0 - 2 * x64:0 = 1 && x61:0 > 0 && x62:0 < x61:0 f4650_0_main_Load'(java.lang.Object(ARRAY(x74:0)), x75:0, x74:0) -> f4650_0_main_Load(java.lang.Object(ARRAY(x74:0)), x75:0 + 1, x74:0) :|: x75:0 - 2 * x77:0 > -2 && x75:0 - 2 * x77:0 < 2 && x75:0 - 2 * x77:0 = 0 && x74:0 > 0 && x75:0 < x74:0 f4650_0_main_Load'(java.lang.Object(ARRAY(x19:0)), x20:0, x19:0) -> f6558_0_main_GE(java.lang.Object(ARRAY(x19:0)), x20:0, 0, x19:0) :|: x20:0 - 3 * x22:0 < 3 && x20:0 - 5 * x21:0 < 5 && x20:0 - 2 * x23:0 < 2 && x20:0 - 2 * x23:0 > -2 && x20:0 - 2 * x23:0 = 1 && x20:0 < x19:0 && x19:0 > -1 && x20:0 - 3 * x22:0 > 0 && x20:0 - 5 * x21:0 > 0 f4650_0_main_Load'(java.lang.Object(ARRAY(x29:0)), x30:0, x29:0) -> f4650_0_main_Load(java.lang.Object(ARRAY(x29:0)), x30:0 + 1, x29:0) :|: x30:0 - 5 * x33:0 > -5 && x30:0 - 5 * x33:0 < 5 && x30:0 - 3 * x31:0 < 3 && x30:0 - 2 * x32:0 < 2 && x30:0 - 2 * x32:0 > -2 && x30:0 - 5 * x33:0 = 0 && x30:0 - 2 * x32:0 = 1 && x30:0 < x29:0 && x30:0 - 3 * x31:0 > 0 && x29:0 > 0 f6558_0_main_GE(java.lang.Object(ARRAY(x70:0)), x71:0, x72:0, x70:0) -> f6558_0_main_GE(java.lang.Object(ARRAY(x70:0)), x71:0, x72:0 + 1, x70:0) :|: x72:0 < 100 f6558_0_main_GE(java.lang.Object(ARRAY(x66:0)), x67:0, x68:0, x66:0) -> f4650_0_main_Load(java.lang.Object(ARRAY(x66:0)), x67:0 + 1, x66:0) :|: x68:0 > 99 f4650_0_main_Load(java.lang.Object(ARRAY(x34:0)), x35:0, x34:0) -> f4650_0_main_Load'(java.lang.Object(ARRAY(x34:0)), x35:0, x34:0) :|: x35:0 - 3 * x36:0 = 0 && x35:0 - 2 * x37:0 = 1 && x34:0 > 0 && x35:0 < x34:0 f4650_0_main_Load(java.lang.Object(ARRAY(x14:0)), x15:0, x14:0) -> f4650_0_main_Load'(java.lang.Object(ARRAY(x14:0)), x15:0, x14:0) :|: x15:0 - 3 * x17:0 > 0 && x15:0 - 5 * x18:0 > 0 && x15:0 - 2 * x16:0 = 1 && x14:0 > -1 && x15:0 < x14:0 f4650_0_main_Load'(java.lang.Object(ARRAY(x)), x1, x) -> f4650_0_main_Load(java.lang.Object(ARRAY(x)), 1, x) :|: 2 * x2 < 2 && 2 * x2 > -2 && x > 0 && 2 * x2 = 0 && x1 = 0 f4650_0_main_Load(java.lang.Object(ARRAY(x24:0)), x25:0, x24:0) -> f4650_0_main_Load'(java.lang.Object(ARRAY(x24:0)), x25:0, x24:0) :|: x25:0 - 5 * x27:0 = 0 && x25:0 - 3 * x28:0 > 0 && x25:0 - 2 * x26:0 = 1 && x24:0 > 0 && x25:0 < x24:0 ---------------------------------------- (81) TempFilterProof (SOUND) Used the following sort dictionary for filtering: f4650_0_main_Load(VARIABLE, VARIABLE, VARIABLE) java.lang.Object(VARIABLE) ARRAY(VARIABLE) f4650_0_main_Load'(VARIABLE, VARIABLE, INTEGER) f6558_0_main_GE(VARIABLE, VARIABLE, VARIABLE, VARIABLE) Replaced non-predefined constructor symbols by 0. ---------------------------------------- (82) Obligation: Rules: f4650_0_main_Load(c, c1, x8:0) -> f4650_0_main_Load'(c2, c3, x8:0) :|: c3 = 0 && (c2 = 0 && (c1 = 0 && c = 0)) && (x8:0 > 0 && 2 * x10:0 = 0 && cons_0 = 0) f4650_0_main_Load(c4, x56:0, x55:0) -> f4650_0_main_Load'(c5, x56:0, x55:0) :|: c5 = 0 && c4 = 0 && (x56:0 < x55:0 && x56:0 - 2 * x57:0 = 0 && x55:0 > 0) f4650_0_main_Load'(c6, x62:0, x61:0) -> f4650_0_main_Load(c7, c8, x61:0) :|: c8 = x62:0 + 1 && (c7 = 0 && c6 = 0) && (x62:0 - 3 * x65:0 > -3 && x62:0 - 3 * x65:0 < 3 && x62:0 - 2 * x64:0 < 2 && x62:0 - 2 * x64:0 > -2 && x62:0 - 3 * x65:0 = 0 && x62:0 - 2 * x64:0 = 1 && x61:0 > 0 && x62:0 < x61:0) f4650_0_main_Load'(c9, x75:0, x74:0) -> f4650_0_main_Load(c10, c11, x74:0) :|: c11 = x75:0 + 1 && (c10 = 0 && c9 = 0) && (x75:0 - 2 * x77:0 > -2 && x75:0 - 2 * x77:0 < 2 && x75:0 - 2 * x77:0 = 0 && x74:0 > 0 && x75:0 < x74:0) f4650_0_main_Load'(c12, x20:0, x19:0) -> f6558_0_main_GE(c13, x20:0, c14, x19:0) :|: c14 = 0 && (c13 = 0 && c12 = 0) && (x20:0 - 3 * x22:0 < 3 && x20:0 - 5 * x21:0 < 5 && x20:0 - 2 * x23:0 < 2 && x20:0 - 2 * x23:0 > -2 && x20:0 - 2 * x23:0 = 1 && x20:0 < x19:0 && x19:0 > -1 && x20:0 - 3 * x22:0 > 0 && x20:0 - 5 * x21:0 > 0) f4650_0_main_Load'(c15, x30:0, x29:0) -> f4650_0_main_Load(c16, c17, x29:0) :|: c17 = x30:0 + 1 && (c16 = 0 && c15 = 0) && (x30:0 - 5 * x33:0 > -5 && x30:0 - 5 * x33:0 < 5 && x30:0 - 3 * x31:0 < 3 && x30:0 - 2 * x32:0 < 2 && x30:0 - 2 * x32:0 > -2 && x30:0 - 5 * x33:0 = 0 && x30:0 - 2 * x32:0 = 1 && x30:0 < x29:0 && x30:0 - 3 * x31:0 > 0 && x29:0 > 0) f6558_0_main_GE(c18, x71:0, x72:0, x70:0) -> f6558_0_main_GE(c19, x71:0, c20, x70:0) :|: c20 = x72:0 + 1 && (c19 = 0 && c18 = 0) && x72:0 < 100 f6558_0_main_GE(c21, x67:0, x68:0, x66:0) -> f4650_0_main_Load(c22, c23, x66:0) :|: c23 = x67:0 + 1 && (c22 = 0 && c21 = 0) && x68:0 > 99 f4650_0_main_Load(c24, x35:0, x34:0) -> f4650_0_main_Load'(c25, x35:0, x34:0) :|: c25 = 0 && c24 = 0 && (x35:0 - 3 * x36:0 = 0 && x35:0 - 2 * x37:0 = 1 && x34:0 > 0 && x35:0 < x34:0) f4650_0_main_Load(c26, x15:0, x14:0) -> f4650_0_main_Load'(c27, x15:0, x14:0) :|: c27 = 0 && c26 = 0 && (x15:0 - 3 * x17:0 > 0 && x15:0 - 5 * x18:0 > 0 && x15:0 - 2 * x16:0 = 1 && x14:0 > -1 && x15:0 < x14:0) f4650_0_main_Load'(c28, c29, x) -> f4650_0_main_Load(c30, c31, x) :|: c31 = 1 && (c30 = 0 && (c29 = 0 && c28 = 0)) && (2 * x2 < 2 && 2 * x2 > -2 && x > 0 && 2 * x2 = 0 && x1 = 0) f4650_0_main_Load(c32, x25:0, x24:0) -> f4650_0_main_Load'(c33, x25:0, x24:0) :|: c33 = 0 && c32 = 0 && (x25:0 - 5 * x27:0 = 0 && x25:0 - 3 * x28:0 > 0 && x25:0 - 2 * x26:0 = 1 && x24:0 > 0 && x25:0 < x24:0) ---------------------------------------- (83) PolynomialOrderProcessor (EQUIVALENT) Found the following polynomial interpretation: [f4650_0_main_Load(x, x1, x2)] = c*x - x1 + x2 [f4650_0_main_Load'(x3, x4, x5)] = -1 + c3*x3 - x4 + x5 [f6558_0_main_GE(x6, x7, x8, x9)] = -1 + c6*x6 - x7 + x9 The following rules are decreasing: f4650_0_main_Load(c, c1, x8:0) -> f4650_0_main_Load'(c2, c3, x8:0) :|: c3 = 0 && (c2 = 0 && (c1 = 0 && c = 0)) && (x8:0 > 0 && 2 * x10:0 = 0 && cons_0 = 0) f4650_0_main_Load(c4, x56:0, x55:0) -> f4650_0_main_Load'(c5, x56:0, x55:0) :|: c5 = 0 && c4 = 0 && (x56:0 < x55:0 && x56:0 - 2 * x57:0 = 0 && x55:0 > 0) f4650_0_main_Load(c24, x35:0, x34:0) -> f4650_0_main_Load'(c25, x35:0, x34:0) :|: c25 = 0 && c24 = 0 && (x35:0 - 3 * x36:0 = 0 && x35:0 - 2 * x37:0 = 1 && x34:0 > 0 && x35:0 < x34:0) f4650_0_main_Load(c26, x15:0, x14:0) -> f4650_0_main_Load'(c27, x15:0, x14:0) :|: c27 = 0 && c26 = 0 && (x15:0 - 3 * x17:0 > 0 && x15:0 - 5 * x18:0 > 0 && x15:0 - 2 * x16:0 = 1 && x14:0 > -1 && x15:0 < x14:0) f4650_0_main_Load(c32, x25:0, x24:0) -> f4650_0_main_Load'(c33, x25:0, x24:0) :|: c33 = 0 && c32 = 0 && (x25:0 - 5 * x27:0 = 0 && x25:0 - 3 * x28:0 > 0 && x25:0 - 2 * x26:0 = 1 && x24:0 > 0 && x25:0 < x24:0) The following rules are bounded: f4650_0_main_Load(c, c1, x8:0) -> f4650_0_main_Load'(c2, c3, x8:0) :|: c3 = 0 && (c2 = 0 && (c1 = 0 && c = 0)) && (x8:0 > 0 && 2 * x10:0 = 0 && cons_0 = 0) f4650_0_main_Load(c4, x56:0, x55:0) -> f4650_0_main_Load'(c5, x56:0, x55:0) :|: c5 = 0 && c4 = 0 && (x56:0 < x55:0 && x56:0 - 2 * x57:0 = 0 && x55:0 > 0) f4650_0_main_Load'(c6, x62:0, x61:0) -> f4650_0_main_Load(c7, c8, x61:0) :|: c8 = x62:0 + 1 && (c7 = 0 && c6 = 0) && (x62:0 - 3 * x65:0 > -3 && x62:0 - 3 * x65:0 < 3 && x62:0 - 2 * x64:0 < 2 && x62:0 - 2 * x64:0 > -2 && x62:0 - 3 * x65:0 = 0 && x62:0 - 2 * x64:0 = 1 && x61:0 > 0 && x62:0 < x61:0) f4650_0_main_Load'(c9, x75:0, x74:0) -> f4650_0_main_Load(c10, c11, x74:0) :|: c11 = x75:0 + 1 && (c10 = 0 && c9 = 0) && (x75:0 - 2 * x77:0 > -2 && x75:0 - 2 * x77:0 < 2 && x75:0 - 2 * x77:0 = 0 && x74:0 > 0 && x75:0 < x74:0) f4650_0_main_Load'(c12, x20:0, x19:0) -> f6558_0_main_GE(c13, x20:0, c14, x19:0) :|: c14 = 0 && (c13 = 0 && c12 = 0) && (x20:0 - 3 * x22:0 < 3 && x20:0 - 5 * x21:0 < 5 && x20:0 - 2 * x23:0 < 2 && x20:0 - 2 * x23:0 > -2 && x20:0 - 2 * x23:0 = 1 && x20:0 < x19:0 && x19:0 > -1 && x20:0 - 3 * x22:0 > 0 && x20:0 - 5 * x21:0 > 0) f4650_0_main_Load'(c15, x30:0, x29:0) -> f4650_0_main_Load(c16, c17, x29:0) :|: c17 = x30:0 + 1 && (c16 = 0 && c15 = 0) && (x30:0 - 5 * x33:0 > -5 && x30:0 - 5 * x33:0 < 5 && x30:0 - 3 * x31:0 < 3 && x30:0 - 2 * x32:0 < 2 && x30:0 - 2 * x32:0 > -2 && x30:0 - 5 * x33:0 = 0 && x30:0 - 2 * x32:0 = 1 && x30:0 < x29:0 && x30:0 - 3 * x31:0 > 0 && x29:0 > 0) f4650_0_main_Load(c24, x35:0, x34:0) -> f4650_0_main_Load'(c25, x35:0, x34:0) :|: c25 = 0 && c24 = 0 && (x35:0 - 3 * x36:0 = 0 && x35:0 - 2 * x37:0 = 1 && x34:0 > 0 && x35:0 < x34:0) f4650_0_main_Load(c26, x15:0, x14:0) -> f4650_0_main_Load'(c27, x15:0, x14:0) :|: c27 = 0 && c26 = 0 && (x15:0 - 3 * x17:0 > 0 && x15:0 - 5 * x18:0 > 0 && x15:0 - 2 * x16:0 = 1 && x14:0 > -1 && x15:0 < x14:0) f4650_0_main_Load'(c28, c29, x) -> f4650_0_main_Load(c30, c31, x) :|: c31 = 1 && (c30 = 0 && (c29 = 0 && c28 = 0)) && (2 * x2 < 2 && 2 * x2 > -2 && x > 0 && 2 * x2 = 0 && x1 = 0) f4650_0_main_Load(c32, x25:0, x24:0) -> f4650_0_main_Load'(c33, x25:0, x24:0) :|: c33 = 0 && c32 = 0 && (x25:0 - 5 * x27:0 = 0 && x25:0 - 3 * x28:0 > 0 && x25:0 - 2 * x26:0 = 1 && x24:0 > 0 && x25:0 < x24:0) ---------------------------------------- (84) Obligation: Rules: f4650_0_main_Load'(c6, x62:0, x61:0) -> f4650_0_main_Load(c7, c8, x61:0) :|: c8 = x62:0 + 1 && (c7 = 0 && c6 = 0) && (x62:0 - 3 * x65:0 > -3 && x62:0 - 3 * x65:0 < 3 && x62:0 - 2 * x64:0 < 2 && x62:0 - 2 * x64:0 > -2 && x62:0 - 3 * x65:0 = 0 && x62:0 - 2 * x64:0 = 1 && x61:0 > 0 && x62:0 < x61:0) f4650_0_main_Load'(c9, x75:0, x74:0) -> f4650_0_main_Load(c10, c11, x74:0) :|: c11 = x75:0 + 1 && (c10 = 0 && c9 = 0) && (x75:0 - 2 * x77:0 > -2 && x75:0 - 2 * x77:0 < 2 && x75:0 - 2 * x77:0 = 0 && x74:0 > 0 && x75:0 < x74:0) f4650_0_main_Load'(c12, x20:0, x19:0) -> f6558_0_main_GE(c13, x20:0, c14, x19:0) :|: c14 = 0 && (c13 = 0 && c12 = 0) && (x20:0 - 3 * x22:0 < 3 && x20:0 - 5 * x21:0 < 5 && x20:0 - 2 * x23:0 < 2 && x20:0 - 2 * x23:0 > -2 && x20:0 - 2 * x23:0 = 1 && x20:0 < x19:0 && x19:0 > -1 && x20:0 - 3 * x22:0 > 0 && x20:0 - 5 * x21:0 > 0) f4650_0_main_Load'(c15, x30:0, x29:0) -> f4650_0_main_Load(c16, c17, x29:0) :|: c17 = x30:0 + 1 && (c16 = 0 && c15 = 0) && (x30:0 - 5 * x33:0 > -5 && x30:0 - 5 * x33:0 < 5 && x30:0 - 3 * x31:0 < 3 && x30:0 - 2 * x32:0 < 2 && x30:0 - 2 * x32:0 > -2 && x30:0 - 5 * x33:0 = 0 && x30:0 - 2 * x32:0 = 1 && x30:0 < x29:0 && x30:0 - 3 * x31:0 > 0 && x29:0 > 0) f6558_0_main_GE(c18, x71:0, x72:0, x70:0) -> f6558_0_main_GE(c19, x71:0, c20, x70:0) :|: c20 = x72:0 + 1 && (c19 = 0 && c18 = 0) && x72:0 < 100 f6558_0_main_GE(c21, x67:0, x68:0, x66:0) -> f4650_0_main_Load(c22, c23, x66:0) :|: c23 = x67:0 + 1 && (c22 = 0 && c21 = 0) && x68:0 > 99 f4650_0_main_Load'(c28, c29, x) -> f4650_0_main_Load(c30, c31, x) :|: c31 = 1 && (c30 = 0 && (c29 = 0 && c28 = 0)) && (2 * x2 < 2 && 2 * x2 > -2 && x > 0 && 2 * x2 = 0 && x1 = 0) ---------------------------------------- (85) PolynomialOrderProcessor (EQUIVALENT) Found the following polynomial interpretation: [f4650_0_main_Load'(x, x1, x2)] = c*x + x2 [f4650_0_main_Load(x3, x4, x5)] = c3*x3 [f6558_0_main_GE(x6, x7, x8, x9)] = c6*x6 The following rules are decreasing: f4650_0_main_Load'(c6, x62:0, x61:0) -> f4650_0_main_Load(c7, c8, x61:0) :|: c8 = x62:0 + 1 && (c7 = 0 && c6 = 0) && (x62:0 - 3 * x65:0 > -3 && x62:0 - 3 * x65:0 < 3 && x62:0 - 2 * x64:0 < 2 && x62:0 - 2 * x64:0 > -2 && x62:0 - 3 * x65:0 = 0 && x62:0 - 2 * x64:0 = 1 && x61:0 > 0 && x62:0 < x61:0) f4650_0_main_Load'(c9, x75:0, x74:0) -> f4650_0_main_Load(c10, c11, x74:0) :|: c11 = x75:0 + 1 && (c10 = 0 && c9 = 0) && (x75:0 - 2 * x77:0 > -2 && x75:0 - 2 * x77:0 < 2 && x75:0 - 2 * x77:0 = 0 && x74:0 > 0 && x75:0 < x74:0) f4650_0_main_Load'(c15, x30:0, x29:0) -> f4650_0_main_Load(c16, c17, x29:0) :|: c17 = x30:0 + 1 && (c16 = 0 && c15 = 0) && (x30:0 - 5 * x33:0 > -5 && x30:0 - 5 * x33:0 < 5 && x30:0 - 3 * x31:0 < 3 && x30:0 - 2 * x32:0 < 2 && x30:0 - 2 * x32:0 > -2 && x30:0 - 5 * x33:0 = 0 && x30:0 - 2 * x32:0 = 1 && x30:0 < x29:0 && x30:0 - 3 * x31:0 > 0 && x29:0 > 0) f4650_0_main_Load'(c28, c29, x) -> f4650_0_main_Load(c30, c31, x) :|: c31 = 1 && (c30 = 0 && (c29 = 0 && c28 = 0)) && (2 * x2 < 2 && 2 * x2 > -2 && x > 0 && 2 * x2 = 0 && x1 = 0) The following rules are bounded: f4650_0_main_Load'(c6, x62:0, x61:0) -> f4650_0_main_Load(c7, c8, x61:0) :|: c8 = x62:0 + 1 && (c7 = 0 && c6 = 0) && (x62:0 - 3 * x65:0 > -3 && x62:0 - 3 * x65:0 < 3 && x62:0 - 2 * x64:0 < 2 && x62:0 - 2 * x64:0 > -2 && x62:0 - 3 * x65:0 = 0 && x62:0 - 2 * x64:0 = 1 && x61:0 > 0 && x62:0 < x61:0) f4650_0_main_Load'(c9, x75:0, x74:0) -> f4650_0_main_Load(c10, c11, x74:0) :|: c11 = x75:0 + 1 && (c10 = 0 && c9 = 0) && (x75:0 - 2 * x77:0 > -2 && x75:0 - 2 * x77:0 < 2 && x75:0 - 2 * x77:0 = 0 && x74:0 > 0 && x75:0 < x74:0) f4650_0_main_Load'(c12, x20:0, x19:0) -> f6558_0_main_GE(c13, x20:0, c14, x19:0) :|: c14 = 0 && (c13 = 0 && c12 = 0) && (x20:0 - 3 * x22:0 < 3 && x20:0 - 5 * x21:0 < 5 && x20:0 - 2 * x23:0 < 2 && x20:0 - 2 * x23:0 > -2 && x20:0 - 2 * x23:0 = 1 && x20:0 < x19:0 && x19:0 > -1 && x20:0 - 3 * x22:0 > 0 && x20:0 - 5 * x21:0 > 0) f4650_0_main_Load'(c15, x30:0, x29:0) -> f4650_0_main_Load(c16, c17, x29:0) :|: c17 = x30:0 + 1 && (c16 = 0 && c15 = 0) && (x30:0 - 5 * x33:0 > -5 && x30:0 - 5 * x33:0 < 5 && x30:0 - 3 * x31:0 < 3 && x30:0 - 2 * x32:0 < 2 && x30:0 - 2 * x32:0 > -2 && x30:0 - 5 * x33:0 = 0 && x30:0 - 2 * x32:0 = 1 && x30:0 < x29:0 && x30:0 - 3 * x31:0 > 0 && x29:0 > 0) f6558_0_main_GE(c18, x71:0, x72:0, x70:0) -> f6558_0_main_GE(c19, x71:0, c20, x70:0) :|: c20 = x72:0 + 1 && (c19 = 0 && c18 = 0) && x72:0 < 100 f6558_0_main_GE(c21, x67:0, x68:0, x66:0) -> f4650_0_main_Load(c22, c23, x66:0) :|: c23 = x67:0 + 1 && (c22 = 0 && c21 = 0) && x68:0 > 99 f4650_0_main_Load'(c28, c29, x) -> f4650_0_main_Load(c30, c31, x) :|: c31 = 1 && (c30 = 0 && (c29 = 0 && c28 = 0)) && (2 * x2 < 2 && 2 * x2 > -2 && x > 0 && 2 * x2 = 0 && x1 = 0) ---------------------------------------- (86) Obligation: Rules: f4650_0_main_Load'(c12, x20:0, x19:0) -> f6558_0_main_GE(c13, x20:0, c14, x19:0) :|: c14 = 0 && (c13 = 0 && c12 = 0) && (x20:0 - 3 * x22:0 < 3 && x20:0 - 5 * x21:0 < 5 && x20:0 - 2 * x23:0 < 2 && x20:0 - 2 * x23:0 > -2 && x20:0 - 2 * x23:0 = 1 && x20:0 < x19:0 && x19:0 > -1 && x20:0 - 3 * x22:0 > 0 && x20:0 - 5 * x21:0 > 0) f6558_0_main_GE(c18, x71:0, x72:0, x70:0) -> f6558_0_main_GE(c19, x71:0, c20, x70:0) :|: c20 = x72:0 + 1 && (c19 = 0 && c18 = 0) && x72:0 < 100 f6558_0_main_GE(c21, x67:0, x68:0, x66:0) -> f4650_0_main_Load(c22, c23, x66:0) :|: c23 = x67:0 + 1 && (c22 = 0 && c21 = 0) && x68:0 > 99 ---------------------------------------- (87) RankingReductionPairProof (EQUIVALENT) Interpretation: [ f4650_0_main_Load' ] = 2 [ f6558_0_main_GE ] = 1 [ f4650_0_main_Load ] = 0 The following rules are decreasing: f4650_0_main_Load'(c12, x20:0, x19:0) -> f6558_0_main_GE(c13, x20:0, c14, x19:0) :|: c14 = 0 && (c13 = 0 && c12 = 0) && (x20:0 - 3 * x22:0 < 3 && x20:0 - 5 * x21:0 < 5 && x20:0 - 2 * x23:0 < 2 && x20:0 - 2 * x23:0 > -2 && x20:0 - 2 * x23:0 = 1 && x20:0 < x19:0 && x19:0 > -1 && x20:0 - 3 * x22:0 > 0 && x20:0 - 5 * x21:0 > 0) f6558_0_main_GE(c21, x67:0, x68:0, x66:0) -> f4650_0_main_Load(c22, c23, x66:0) :|: c23 = x67:0 + 1 && (c22 = 0 && c21 = 0) && x68:0 > 99 The following rules are bounded: f4650_0_main_Load'(c12, x20:0, x19:0) -> f6558_0_main_GE(c13, x20:0, c14, x19:0) :|: c14 = 0 && (c13 = 0 && c12 = 0) && (x20:0 - 3 * x22:0 < 3 && x20:0 - 5 * x21:0 < 5 && x20:0 - 2 * x23:0 < 2 && x20:0 - 2 * x23:0 > -2 && x20:0 - 2 * x23:0 = 1 && x20:0 < x19:0 && x19:0 > -1 && x20:0 - 3 * x22:0 > 0 && x20:0 - 5 * x21:0 > 0) f6558_0_main_GE(c18, x71:0, x72:0, x70:0) -> f6558_0_main_GE(c19, x71:0, c20, x70:0) :|: c20 = x72:0 + 1 && (c19 = 0 && c18 = 0) && x72:0 < 100 f6558_0_main_GE(c21, x67:0, x68:0, x66:0) -> f4650_0_main_Load(c22, c23, x66:0) :|: c23 = x67:0 + 1 && (c22 = 0 && c21 = 0) && x68:0 > 99 ---------------------------------------- (88) Obligation: Rules: f6558_0_main_GE(c18, x71:0, x72:0, x70:0) -> f6558_0_main_GE(c19, x71:0, c20, x70:0) :|: c20 = x72:0 + 1 && (c19 = 0 && c18 = 0) && x72:0 < 100 ---------------------------------------- (89) RankingReductionPairProof (EQUIVALENT) Interpretation: [ f6558_0_main_GE ] = -1*f6558_0_main_GE_3 The following rules are decreasing: f6558_0_main_GE(c18, x71:0, x72:0, x70:0) -> f6558_0_main_GE(c19, x71:0, c20, x70:0) :|: c20 = x72:0 + 1 && (c19 = 0 && c18 = 0) && x72:0 < 100 The following rules are bounded: f6558_0_main_GE(c18, x71:0, x72:0, x70:0) -> f6558_0_main_GE(c19, x71:0, c20, x70:0) :|: c20 = x72:0 + 1 && (c19 = 0 && c18 = 0) && x72:0 < 100 ---------------------------------------- (90) YES