/export/starexec/sandbox2/solver/bin/starexec_run_c /export/starexec/sandbox2/benchmark/theBenchmark.c /export/starexec/sandbox2/output/output_files -------------------------------------------------------------------------------- YES proof of /export/starexec/sandbox2/benchmark/theBenchmark.c # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty Termination of the given C Problem could be proven: (0) C Problem (1) CToIRSProof [EQUIVALENT, 0 ms] (2) IntTRS (3) TerminationGraphProcessor [SOUND, 59 ms] (4) IntTRS (5) IntTRSCompressionProof [EQUIVALENT, 0 ms] (6) IntTRS (7) CaseAnalysis [EQUIVALENT, 20 ms] (8) AND (9) IntTRS (10) TerminationGraphProcessor [EQUIVALENT, 17 ms] (11) IntTRS (12) IntTRSCompressionProof [EQUIVALENT, 4 ms] (13) IntTRS (14) RankingReductionPairProof [EQUIVALENT, 0 ms] (15) YES (16) IntTRS (17) TerminationGraphProcessor [EQUIVALENT, 12 ms] (18) IntTRS (19) IntTRSCompressionProof [EQUIVALENT, 0 ms] (20) IntTRS (21) PolynomialOrderProcessor [EQUIVALENT, 1 ms] (22) YES ---------------------------------------- (0) Obligation: c file /export/starexec/sandbox2/benchmark/theBenchmark.c ---------------------------------------- (1) CToIRSProof (EQUIVALENT) Parsed C Integer Program as IRS. ---------------------------------------- (2) Obligation: Rules: f1(x) -> f2(x_1) :|: TRUE f4(x1) -> f7(arith) :|: TRUE && arith = x1 - 1 f5(x10) -> f8(x11) :|: TRUE && x11 = x10 + 1 f3(x3) -> f4(x3) :|: x3 > 0 f3(x4) -> f5(x4) :|: x4 <= 0 f7(x5) -> f6(x5) :|: TRUE f8(x6) -> f6(x6) :|: TRUE f2(x7) -> f3(x7) :|: x7 < 0 f2(x12) -> f3(x12) :|: x12 > 0 f6(x8) -> f2(x8) :|: TRUE f2(x9) -> f9(x9) :|: x9 = 0 Start term: f1(x) ---------------------------------------- (3) TerminationGraphProcessor (SOUND) Constructed the termination graph and obtained one non-trivial SCC. ---------------------------------------- (4) Obligation: Rules: f2(x7) -> f3(x7) :|: x7 < 0 f6(x8) -> f2(x8) :|: TRUE f7(x5) -> f6(x5) :|: TRUE f4(x1) -> f7(arith) :|: TRUE && arith = x1 - 1 f3(x3) -> f4(x3) :|: x3 > 0 f2(x12) -> f3(x12) :|: x12 > 0 f8(x6) -> f6(x6) :|: TRUE f5(x10) -> f8(x11) :|: TRUE && x11 = x10 + 1 f3(x4) -> f5(x4) :|: x4 <= 0 ---------------------------------------- (5) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (6) Obligation: Rules: f6(x8:0) -> f3(x8:0) :|: x8:0 < 0 f6(x) -> f3(x) :|: x > 0 f3(x4:0) -> f6(x4:0 + 1) :|: x4:0 < 1 f3(x3:0) -> f6(x3:0 - 1) :|: x3:0 > 0 ---------------------------------------- (7) CaseAnalysis (EQUIVALENT) Found the following inductive condition: f6(x): 3 - 3*x>=0 f3(x1): 3 - 3*x1>=0 ---------------------------------------- (8) Complex Obligation (AND) ---------------------------------------- (9) Obligation: Rules: f6(x8:0) -> f3(x8:0) :|: x8:0 < 0 && 3 + -3 * x8:0 >= 0 f6(x) -> f3(x) :|: x > 0 && 3 + -3 * x >= 0 f3(x4:0) -> f6(x4:0 + 1) :|: x4:0 < 1 && 3 + -3 * x4:0 >= 0 f3(x3:0) -> f6(x3:0 - 1) :|: x3:0 > 0 && 3 + -3 * x3:0 >= 0 ---------------------------------------- (10) TerminationGraphProcessor (EQUIVALENT) Constructed the termination graph and obtained one non-trivial SCC. ---------------------------------------- (11) Obligation: Rules: f6(x8:0) -> f3(x8:0) :|: x8:0 < 0 && 3 + -3 * x8:0 >= 0 f3(x4:0) -> f6(x4:0 + 1) :|: x4:0 < 1 && 3 + -3 * x4:0 >= 0 f6(x) -> f3(x) :|: x > 0 && 3 + -3 * x >= 0 ---------------------------------------- (12) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (13) Obligation: Rules: f6(x:0) -> f6(x:0 + 1) :|: x:0 > 0 && -3 * x:0 >= -3 && x:0 < 1 f6(x8:0:0) -> f6(x8:0:0 + 1) :|: x8:0:0 < 0 && -3 * x8:0:0 >= -3 && x8:0:0 < 1 ---------------------------------------- (14) RankingReductionPairProof (EQUIVALENT) Interpretation: [ f6 ] = -1*f6_1 The following rules are decreasing: f6(x:0) -> f6(x:0 + 1) :|: x:0 > 0 && -3 * x:0 >= -3 && x:0 < 1 f6(x8:0:0) -> f6(x8:0:0 + 1) :|: x8:0:0 < 0 && -3 * x8:0:0 >= -3 && x8:0:0 < 1 The following rules are bounded: f6(x:0) -> f6(x:0 + 1) :|: x:0 > 0 && -3 * x:0 >= -3 && x:0 < 1 f6(x8:0:0) -> f6(x8:0:0 + 1) :|: x8:0:0 < 0 && -3 * x8:0:0 >= -3 && x8:0:0 < 1 ---------------------------------------- (15) YES ---------------------------------------- (16) Obligation: Rules: f6(x8:0) -> f3(x8:0) :|: x8:0 < 0 && 3 + -3 * x8:0 < 0 f6(x) -> f3(x) :|: x > 0 && 3 + -3 * x < 0 f3(x4:0) -> f6(x4:0 + 1) :|: x4:0 < 1 && 3 + -3 * x4:0 < 0 f3(x3:0) -> f6(x3:0 - 1) :|: x3:0 > 0 && 3 + -3 * x3:0 < 0 ---------------------------------------- (17) TerminationGraphProcessor (EQUIVALENT) Constructed the termination graph and obtained one non-trivial SCC. ---------------------------------------- (18) Obligation: Rules: f6(x) -> f3(x) :|: x > 0 && 3 + -3 * x < 0 f3(x3:0) -> f6(x3:0 - 1) :|: x3:0 > 0 && 3 + -3 * x3:0 < 0 ---------------------------------------- (19) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (20) Obligation: Rules: f6(x:0) -> f6(x:0 - 1) :|: -3 * x:0 < -3 && x:0 > 0 ---------------------------------------- (21) PolynomialOrderProcessor (EQUIVALENT) Found the following polynomial interpretation: [f6(x)] = x The following rules are decreasing: f6(x:0) -> f6(x:0 - 1) :|: -3 * x:0 < -3 && x:0 > 0 The following rules are bounded: f6(x:0) -> f6(x:0 - 1) :|: -3 * x:0 < -3 && x:0 > 0 ---------------------------------------- (22) YES