6.38/2.43 YES 6.52/2.44 proof of /export/starexec/sandbox/benchmark/theBenchmark.c 6.52/2.44 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 6.52/2.44 6.52/2.44 6.52/2.44 Termination of the given C Problem could be proven: 6.52/2.44 6.52/2.44 (0) C Problem 6.52/2.44 (1) CToIRSProof [EQUIVALENT, 0 ms] 6.52/2.44 (2) IntTRS 6.52/2.44 (3) TerminationGraphProcessor [SOUND, 66 ms] 6.52/2.44 (4) IntTRS 6.52/2.44 (5) IntTRSCompressionProof [EQUIVALENT, 16 ms] 6.52/2.44 (6) IntTRS 6.52/2.44 (7) RankingReductionPairProof [EQUIVALENT, 8 ms] 6.52/2.44 (8) IntTRS 6.52/2.44 (9) PolynomialOrderProcessor [EQUIVALENT, 2 ms] 6.52/2.44 (10) YES 6.52/2.44 6.52/2.44 6.52/2.44 ---------------------------------------- 6.52/2.44 6.52/2.44 (0) 6.52/2.44 Obligation: 6.52/2.44 c file /export/starexec/sandbox/benchmark/theBenchmark.c 6.52/2.44 ---------------------------------------- 6.52/2.44 6.52/2.44 (1) CToIRSProof (EQUIVALENT) 6.52/2.44 Parsed C Integer Program as IRS. 6.52/2.44 ---------------------------------------- 6.52/2.44 6.52/2.44 (2) 6.52/2.44 Obligation: 6.52/2.44 Rules: 6.52/2.44 f1(x, y) -> f2(x_1, y) :|: TRUE 6.52/2.44 f2(x1, x2) -> f3(x1, x3) :|: TRUE 6.52/2.44 f5(x4, x5) -> f8(arith, x5) :|: TRUE && arith = x4 - 1 6.52/2.44 f8(x6, x7) -> f9(x6, x8) :|: TRUE 6.52/2.44 f6(x27, x28) -> f10(x27, x29) :|: TRUE && x29 = x28 - 1 6.52/2.44 f4(x11, x12) -> f5(x11, x12) :|: x13 < 0 6.52/2.44 f4(x30, x31) -> f5(x30, x31) :|: x32 > 0 6.52/2.44 f4(x14, x15) -> f6(x14, x15) :|: x16 = 0 6.52/2.44 f9(x17, x18) -> f7(x17, x18) :|: TRUE 6.52/2.44 f10(x19, x20) -> f7(x19, x20) :|: TRUE 6.52/2.44 f3(x21, x22) -> f4(x21, x22) :|: x21 > 0 && x22 > 0 6.52/2.44 f7(x23, x24) -> f3(x23, x24) :|: TRUE 6.52/2.44 f3(x25, x26) -> f11(x25, x26) :|: x25 <= 0 6.52/2.44 f3(x33, x34) -> f11(x33, x34) :|: x34 <= 0 6.52/2.44 Start term: f1(x, y) 6.52/2.44 6.52/2.44 ---------------------------------------- 6.52/2.44 6.52/2.44 (3) TerminationGraphProcessor (SOUND) 6.52/2.44 Constructed the termination graph and obtained one non-trivial SCC. 6.52/2.44 6.52/2.44 ---------------------------------------- 6.52/2.44 6.52/2.44 (4) 6.52/2.44 Obligation: 6.52/2.44 Rules: 6.52/2.44 f3(x21, x22) -> f4(x21, x22) :|: x21 > 0 && x22 > 0 6.52/2.44 f7(x23, x24) -> f3(x23, x24) :|: TRUE 6.52/2.44 f9(x17, x18) -> f7(x17, x18) :|: TRUE 6.52/2.44 f8(x6, x7) -> f9(x6, x8) :|: TRUE 6.52/2.44 f5(x4, x5) -> f8(arith, x5) :|: TRUE && arith = x4 - 1 6.52/2.44 f4(x11, x12) -> f5(x11, x12) :|: x13 < 0 6.52/2.44 f4(x30, x31) -> f5(x30, x31) :|: x32 > 0 6.52/2.44 f10(x19, x20) -> f7(x19, x20) :|: TRUE 6.52/2.44 f6(x27, x28) -> f10(x27, x29) :|: TRUE && x29 = x28 - 1 6.52/2.44 f4(x14, x15) -> f6(x14, x15) :|: x16 = 0 6.52/2.44 6.52/2.44 ---------------------------------------- 6.52/2.44 6.52/2.44 (5) IntTRSCompressionProof (EQUIVALENT) 6.52/2.44 Compressed rules. 6.52/2.44 ---------------------------------------- 6.52/2.44 6.52/2.44 (6) 6.52/2.44 Obligation: 6.52/2.44 Rules: 6.52/2.44 f7(x23:0, x24:0) -> f7(x23:0, x24:0 - 1) :|: x23:0 > 0 && x24:0 > 0 6.52/2.44 f7(x, x1) -> f7(x - 1, x2) :|: x > 0 && x1 > 0 && x3 < 0 6.52/2.44 f7(x4, x5) -> f7(x4 - 1, x6) :|: x4 > 0 && x5 > 0 && x7 > 0 6.52/2.44 6.52/2.44 ---------------------------------------- 6.52/2.44 6.52/2.44 (7) RankingReductionPairProof (EQUIVALENT) 6.52/2.44 Interpretation: 6.52/2.44 [ f7 ] = f7_1 6.52/2.44 6.52/2.44 The following rules are decreasing: 6.52/2.44 f7(x, x1) -> f7(x - 1, x2) :|: x > 0 && x1 > 0 && x3 < 0 6.52/2.44 f7(x4, x5) -> f7(x4 - 1, x6) :|: x4 > 0 && x5 > 0 && x7 > 0 6.52/2.44 6.52/2.44 The following rules are bounded: 6.52/2.44 f7(x23:0, x24:0) -> f7(x23:0, x24:0 - 1) :|: x23:0 > 0 && x24:0 > 0 6.52/2.44 f7(x, x1) -> f7(x - 1, x2) :|: x > 0 && x1 > 0 && x3 < 0 6.52/2.44 f7(x4, x5) -> f7(x4 - 1, x6) :|: x4 > 0 && x5 > 0 && x7 > 0 6.52/2.44 6.52/2.44 6.52/2.44 ---------------------------------------- 6.52/2.44 6.52/2.44 (8) 6.52/2.44 Obligation: 6.52/2.44 Rules: 6.52/2.44 f7(x23:0, x24:0) -> f7(x23:0, x24:0 - 1) :|: x23:0 > 0 && x24:0 > 0 6.52/2.44 6.52/2.44 ---------------------------------------- 6.52/2.44 6.52/2.44 (9) PolynomialOrderProcessor (EQUIVALENT) 6.52/2.44 Found the following polynomial interpretation: 6.52/2.44 [f7(x, x1)] = x1 6.52/2.44 6.52/2.44 The following rules are decreasing: 6.52/2.44 f7(x23:0, x24:0) -> f7(x23:0, x24:0 - 1) :|: x23:0 > 0 && x24:0 > 0 6.52/2.44 The following rules are bounded: 6.52/2.44 f7(x23:0, x24:0) -> f7(x23:0, x24:0 - 1) :|: x23:0 > 0 && x24:0 > 0 6.52/2.44 6.52/2.44 ---------------------------------------- 6.52/2.44 6.52/2.44 (10) 6.52/2.44 YES 6.52/2.47 EOF