5.36/2.31 YES 5.71/2.32 proof of /export/starexec/sandbox/benchmark/theBenchmark.c 5.71/2.32 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 5.71/2.32 5.71/2.32 5.71/2.32 Termination of the given C Problem could be proven: 5.71/2.32 5.71/2.32 (0) C Problem 5.71/2.32 (1) CToIRSProof [EQUIVALENT, 0 ms] 5.71/2.32 (2) IntTRS 5.71/2.32 (3) TerminationGraphProcessor [SOUND, 53 ms] 5.71/2.32 (4) IntTRS 5.71/2.32 (5) IntTRSCompressionProof [EQUIVALENT, 0 ms] 5.71/2.32 (6) IntTRS 5.71/2.32 (7) PolynomialOrderProcessor [EQUIVALENT, 0 ms] 5.71/2.32 (8) IntTRS 5.71/2.32 (9) PolynomialOrderProcessor [EQUIVALENT, 3 ms] 5.71/2.32 (10) YES 5.71/2.32 5.71/2.32 5.71/2.32 ---------------------------------------- 5.71/2.32 5.71/2.32 (0) 5.71/2.32 Obligation: 5.71/2.32 c file /export/starexec/sandbox/benchmark/theBenchmark.c 5.71/2.32 ---------------------------------------- 5.71/2.32 5.71/2.32 (1) CToIRSProof (EQUIVALENT) 5.71/2.32 Parsed C Integer Program as IRS. 5.71/2.32 ---------------------------------------- 5.71/2.32 5.71/2.32 (2) 5.71/2.32 Obligation: 5.71/2.32 Rules: 5.71/2.32 f1(x, y) -> f2(x_1, y) :|: TRUE 5.71/2.32 f3(x1, x2) -> f4(x1, 0) :|: TRUE 5.71/2.32 f5(x3, x4) -> f6(x3, arith) :|: TRUE && arith = x4 + 1 5.71/2.32 f4(x5, x6) -> f5(x5, x6) :|: x6 < x5 5.71/2.32 f6(x7, x8) -> f4(x7, x8) :|: TRUE 5.71/2.32 f4(x9, x10) -> f7(x9, x10) :|: x10 >= x9 5.71/2.32 f7(x19, x20) -> f8(x21, x20) :|: TRUE && x21 = x19 - 1 5.71/2.32 f2(x13, x14) -> f3(x13, x14) :|: x13 > 0 5.71/2.32 f8(x15, x16) -> f2(x15, x16) :|: TRUE 5.71/2.32 f2(x17, x18) -> f9(x17, x18) :|: x17 <= 0 5.71/2.32 Start term: f1(x, y) 5.71/2.32 5.71/2.32 ---------------------------------------- 5.71/2.32 5.71/2.32 (3) TerminationGraphProcessor (SOUND) 5.71/2.32 Constructed the termination graph and obtained one non-trivial SCC. 5.71/2.32 5.71/2.32 ---------------------------------------- 5.71/2.32 5.71/2.32 (4) 5.71/2.32 Obligation: 5.71/2.32 Rules: 5.71/2.32 f2(x13, x14) -> f3(x13, x14) :|: x13 > 0 5.71/2.32 f8(x15, x16) -> f2(x15, x16) :|: TRUE 5.71/2.32 f7(x19, x20) -> f8(x21, x20) :|: TRUE && x21 = x19 - 1 5.71/2.32 f4(x9, x10) -> f7(x9, x10) :|: x10 >= x9 5.71/2.32 f3(x1, x2) -> f4(x1, 0) :|: TRUE 5.71/2.32 f6(x7, x8) -> f4(x7, x8) :|: TRUE 5.71/2.32 f5(x3, x4) -> f6(x3, arith) :|: TRUE && arith = x4 + 1 5.71/2.32 f4(x5, x6) -> f5(x5, x6) :|: x6 < x5 5.71/2.32 5.71/2.32 ---------------------------------------- 5.71/2.32 5.71/2.32 (5) IntTRSCompressionProof (EQUIVALENT) 5.71/2.32 Compressed rules. 5.71/2.32 ---------------------------------------- 5.71/2.32 5.71/2.32 (6) 5.71/2.32 Obligation: 5.71/2.32 Rules: 5.71/2.32 f4(x9:0, x10:0) -> f4(x9:0 - 1, 0) :|: x9:0 <= x10:0 && x9:0 > 1 5.71/2.32 f4(x5:0, x6:0) -> f4(x5:0, x6:0 + 1) :|: x6:0 < x5:0 5.71/2.32 5.71/2.32 ---------------------------------------- 5.71/2.32 5.71/2.32 (7) PolynomialOrderProcessor (EQUIVALENT) 5.71/2.32 Found the following polynomial interpretation: 5.71/2.32 [f4(x, x1)] = x^2 5.71/2.32 5.71/2.32 The following rules are decreasing: 5.71/2.32 f4(x9:0, x10:0) -> f4(x9:0 - 1, 0) :|: x9:0 <= x10:0 && x9:0 > 1 5.71/2.32 The following rules are bounded: 5.71/2.32 f4(x9:0, x10:0) -> f4(x9:0 - 1, 0) :|: x9:0 <= x10:0 && x9:0 > 1 5.71/2.32 f4(x5:0, x6:0) -> f4(x5:0, x6:0 + 1) :|: x6:0 < x5:0 5.71/2.32 5.71/2.32 ---------------------------------------- 5.71/2.32 5.71/2.32 (8) 5.71/2.32 Obligation: 5.71/2.32 Rules: 5.71/2.32 f4(x5:0, x6:0) -> f4(x5:0, x6:0 + 1) :|: x6:0 < x5:0 5.71/2.32 5.71/2.32 ---------------------------------------- 5.71/2.32 5.71/2.32 (9) PolynomialOrderProcessor (EQUIVALENT) 5.71/2.32 Found the following polynomial interpretation: 5.71/2.32 [f4(x, x1)] = x - x1 5.71/2.32 5.71/2.32 The following rules are decreasing: 5.71/2.32 f4(x5:0, x6:0) -> f4(x5:0, x6:0 + 1) :|: x6:0 < x5:0 5.71/2.32 The following rules are bounded: 5.71/2.32 f4(x5:0, x6:0) -> f4(x5:0, x6:0 + 1) :|: x6:0 < x5:0 5.71/2.32 5.71/2.32 ---------------------------------------- 5.71/2.32 5.71/2.32 (10) 5.71/2.32 YES 5.76/2.36 EOF