28.64/8.21 YES 28.64/8.21 proof of /export/starexec/sandbox/benchmark/theBenchmark.c 28.64/8.21 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 28.64/8.21 28.64/8.21 28.64/8.21 Termination of the given C Problem could be proven: 28.64/8.21 28.64/8.21 (0) C Problem 28.64/8.21 (1) CToIRSProof [EQUIVALENT, 0 ms] 28.64/8.21 (2) IntTRS 28.64/8.21 (3) TerminationGraphProcessor [SOUND, 47 ms] 28.64/8.21 (4) IntTRS 28.64/8.21 (5) IntTRSCompressionProof [EQUIVALENT, 25 ms] 28.64/8.21 (6) IntTRS 28.64/8.21 (7) CaseAnalysis [EQUIVALENT, 21 ms] 28.64/8.21 (8) AND 28.64/8.21 (9) IntTRS 28.64/8.21 (10) IntTRSCompressionProof [EQUIVALENT, 3 ms] 28.64/8.21 (11) IntTRS 28.64/8.21 (12) TerminationGraphProcessor [EQUIVALENT, 20 ms] 28.64/8.21 (13) IntTRS 28.64/8.21 (14) IntTRSCompressionProof [EQUIVALENT, 0 ms] 28.64/8.21 (15) IntTRS 28.64/8.21 (16) RankingReductionPairProof [EQUIVALENT, 5 ms] 28.64/8.21 (17) IntTRS 28.64/8.21 (18) PolynomialOrderProcessor [EQUIVALENT, 0 ms] 28.64/8.21 (19) IntTRS 28.64/8.21 (20) RankingReductionPairProof [EQUIVALENT, 1 ms] 28.64/8.21 (21) YES 28.64/8.21 (22) IntTRS 28.64/8.21 (23) TerminationGraphProcessor [EQUIVALENT, 16 ms] 28.64/8.21 (24) IntTRS 28.64/8.21 (25) IntTRSCompressionProof [EQUIVALENT, 0 ms] 28.64/8.21 (26) IntTRS 28.64/8.21 (27) RankingReductionPairProof [EQUIVALENT, 0 ms] 28.64/8.21 (28) YES 28.64/8.21 28.64/8.21 28.64/8.21 ---------------------------------------- 28.64/8.21 28.64/8.21 (0) 28.64/8.21 Obligation: 28.64/8.21 c file /export/starexec/sandbox/benchmark/theBenchmark.c 28.64/8.21 ---------------------------------------- 28.64/8.21 28.64/8.21 (1) CToIRSProof (EQUIVALENT) 28.64/8.21 Parsed C Integer Program as IRS. 28.64/8.21 ---------------------------------------- 28.64/8.21 28.64/8.21 (2) 28.64/8.21 Obligation: 28.64/8.21 Rules: 28.64/8.21 f1(x, y) -> f2(x_1, y) :|: TRUE 28.64/8.21 f2(x1, x2) -> f3(x1, x3) :|: TRUE 28.64/8.21 f5(x4, x5) -> f8(x4, arith) :|: TRUE && arith = x5 + 1 28.64/8.21 f6(x22, x23) -> f9(x24, x23) :|: TRUE && x24 = x22 + 1 28.64/8.21 f4(x8, x9) -> f5(x8, x9) :|: x8 > x9 28.64/8.21 f4(x10, x11) -> f6(x10, x11) :|: x10 <= x11 28.64/8.21 f8(x12, x13) -> f7(x12, x13) :|: TRUE 28.64/8.21 f9(x14, x15) -> f7(x14, x15) :|: TRUE 28.64/8.21 f3(x16, x17) -> f4(x16, x17) :|: x16 < x17 28.64/8.21 f3(x25, x26) -> f4(x25, x26) :|: x25 > x26 28.64/8.21 f7(x18, x19) -> f3(x18, x19) :|: TRUE 28.64/8.21 f3(x20, x21) -> f10(x20, x21) :|: x20 = x21 28.64/8.21 Start term: f1(x, y) 28.64/8.21 28.64/8.21 ---------------------------------------- 28.64/8.21 28.64/8.21 (3) TerminationGraphProcessor (SOUND) 28.64/8.21 Constructed the termination graph and obtained one non-trivial SCC. 28.64/8.22 28.64/8.22 ---------------------------------------- 28.64/8.22 28.64/8.22 (4) 28.64/8.22 Obligation: 28.64/8.22 Rules: 28.64/8.22 f3(x16, x17) -> f4(x16, x17) :|: x16 < x17 28.64/8.22 f7(x18, x19) -> f3(x18, x19) :|: TRUE 28.64/8.22 f8(x12, x13) -> f7(x12, x13) :|: TRUE 28.64/8.22 f5(x4, x5) -> f8(x4, arith) :|: TRUE && arith = x5 + 1 28.64/8.22 f4(x8, x9) -> f5(x8, x9) :|: x8 > x9 28.64/8.22 f3(x25, x26) -> f4(x25, x26) :|: x25 > x26 28.64/8.22 f9(x14, x15) -> f7(x14, x15) :|: TRUE 28.64/8.22 f6(x22, x23) -> f9(x24, x23) :|: TRUE && x24 = x22 + 1 28.64/8.22 f4(x10, x11) -> f6(x10, x11) :|: x10 <= x11 28.64/8.22 28.64/8.22 ---------------------------------------- 28.64/8.22 28.64/8.22 (5) IntTRSCompressionProof (EQUIVALENT) 28.64/8.22 Compressed rules. 28.64/8.22 ---------------------------------------- 28.64/8.22 28.64/8.22 (6) 28.64/8.22 Obligation: 28.64/8.22 Rules: 28.64/8.22 f4(x10:0, x11:0) -> f7(x10:0 + 1, x11:0) :|: x11:0 >= x10:0 28.64/8.22 f7(x18:0, x19:0) -> f4(x18:0, x19:0) :|: x19:0 < x18:0 28.64/8.22 f4(x8:0, x9:0) -> f7(x8:0, x9:0 + 1) :|: x9:0 < x8:0 28.64/8.22 f7(x, x1) -> f4(x, x1) :|: x1 > x 28.64/8.22 28.64/8.22 ---------------------------------------- 28.64/8.22 28.64/8.22 (7) CaseAnalysis (EQUIVALENT) 28.64/8.22 Found the following inductive condition: 28.64/8.22 f4(x, x1): 3 - 3*x + 3*x1>=0 28.64/8.22 f7(x2, x3): 3 - 3*x2 + 3*x3>=0 28.64/8.22 28.64/8.22 ---------------------------------------- 28.64/8.22 28.64/8.22 (8) 28.64/8.22 Complex Obligation (AND) 28.64/8.22 28.64/8.22 ---------------------------------------- 28.64/8.22 28.64/8.22 (9) 28.64/8.22 Obligation: 28.64/8.22 Rules: 28.64/8.22 f4(x10:0, x11:0) -> f7(x10:0 + 1, x11:0) :|: x11:0 >= x10:0 && 3 + -3 * x10:0 + 3 * x11:0 >= 0 28.64/8.22 f7(x18:0, x19:0) -> f4(x18:0, x19:0) :|: x19:0 < x18:0 && 3 + -3 * x18:0 + 3 * x19:0 >= 0 28.64/8.22 f4(x8:0, x9:0) -> f7(x8:0, x9:0 + 1) :|: x9:0 < x8:0 && 3 + -3 * x8:0 + 3 * x9:0 >= 0 28.64/8.22 f7(x, x1) -> f4(x, x1) :|: x1 > x && 3 + -3 * x + 3 * x1 >= 0 28.64/8.22 28.64/8.22 ---------------------------------------- 28.64/8.22 28.64/8.22 (10) IntTRSCompressionProof (EQUIVALENT) 28.64/8.22 Compressed rules. 28.64/8.22 ---------------------------------------- 28.64/8.22 28.64/8.22 (11) 28.64/8.22 Obligation: 28.64/8.22 Rules: 28.64/8.22 f7(x18:0:0, x19:0:0) -> f4(x18:0:0, x19:0:0) :|: x19:0:0 < x18:0:0 && 3 + -3 * x18:0:0 + 3 * x19:0:0 >= 0 28.64/8.22 f4(x8:0:0, x9:0:0) -> f7(x8:0:0, x9:0:0 + 1) :|: x9:0:0 < x8:0:0 && 3 + -3 * x8:0:0 + 3 * x9:0:0 >= 0 28.64/8.22 f4(x10:0:0, x11:0:0) -> f7(x10:0:0 + 1, x11:0:0) :|: x11:0:0 >= x10:0:0 && 3 + -3 * x10:0:0 + 3 * x11:0:0 >= 0 28.64/8.22 f7(x:0, x1:0) -> f4(x:0, x1:0) :|: x:0 < x1:0 && 3 + -3 * x:0 + 3 * x1:0 >= 0 28.64/8.22 28.64/8.22 ---------------------------------------- 28.64/8.22 28.64/8.22 (12) TerminationGraphProcessor (EQUIVALENT) 28.64/8.22 Constructed the termination graph and obtained one non-trivial SCC. 28.64/8.22 28.64/8.22 f7(x18:0:0, x19:0:0) -> f4(x18:0:0, x19:0:0) :|: x19:0:0 < x18:0:0 && 3 + -3 * x18:0:0 + 3 * x19:0:0 >= 0 and 28.64/8.22 f4(x8:0:0, x9:0:0) -> f7(x8:0:0, x9:0:0 + 1) :|: x9:0:0 < x8:0:0 && 3 + -3 * x8:0:0 + 3 * x9:0:0 >= 0 28.64/8.22 have been merged into the new rule 28.64/8.22 f7(x12, x13) -> f7(x12, x13 + 1) :|: x13 < x12 && 3 + -3 * x12 + 3 * x13 >= 0 && (x13 < x12 && 3 + -3 * x12 + 3 * x13 >= 0) 28.64/8.22 28.64/8.22 f7(x18:0:0, x19:0:0) -> f4(x18:0:0, x19:0:0) :|: x19:0:0 < x18:0:0 && 3 + -3 * x18:0:0 + 3 * x19:0:0 >= 0 and 28.64/8.22 f4(x10:0:0, x11:0:0) -> f7(x10:0:0 + 1, x11:0:0) :|: x11:0:0 >= x10:0:0 && 3 + -3 * x10:0:0 + 3 * x11:0:0 >= 0 28.64/8.22 have been merged into the new rule 28.64/8.22 f7(x20, x21) -> f7(x20 + 1, x21) :|: x21 < x20 && 3 + -3 * x20 + 3 * x21 >= 0 && (x21 >= x20 && 3 + -3 * x20 + 3 * x21 >= 0) 28.64/8.22 28.64/8.22 28.64/8.22 ---------------------------------------- 28.64/8.22 28.64/8.22 (13) 28.64/8.22 Obligation: 28.64/8.22 Rules: 28.64/8.22 f7(x14, x15) -> f7(x14, x15 + 1) :|: TRUE && x15 + -1 * x14 <= -1 && -1 * x14 + x15 >= -1 28.64/8.22 f4(x8:0:0, x9:0:0) -> f7(x8:0:0, x9:0:0 + 1) :|: TRUE && x9:0:0 + -1 * x8:0:0 <= -1 && -1 * x8:0:0 + x9:0:0 >= -1 28.64/8.22 f7(x:0, x1:0) -> f4(x:0, x1:0) :|: TRUE && x:0 + -1 * x1:0 <= -1 28.64/8.22 f4(x10:0:0, x11:0:0) -> f7(x10:0:0 + 1, x11:0:0) :|: TRUE && x11:0:0 + -1 * x10:0:0 >= 0 28.64/8.22 28.64/8.22 ---------------------------------------- 28.64/8.22 28.64/8.22 (14) IntTRSCompressionProof (EQUIVALENT) 28.64/8.22 Compressed rules. 28.64/8.22 ---------------------------------------- 28.64/8.22 28.64/8.22 (15) 28.64/8.22 Obligation: 28.64/8.22 Rules: 28.64/8.22 f7(x:0:0, x1:0:0) -> f7(x:0:0 + 1, x1:0:0) :|: x:0:0 + -1 * x1:0:0 <= -1 && x1:0:0 + -1 * x:0:0 >= 0 28.64/8.22 f7(x, x1) -> f7(x, x1 + 1) :|: -1 * x + x1 >= -1 && x1 + -1 * x <= -1 && x + -1 * x1 <= -1 28.64/8.22 f7(x14:0, x15:0) -> f7(x14:0, x15:0 + 1) :|: -1 * x14:0 + x15:0 >= -1 && x15:0 + -1 * x14:0 <= -1 28.64/8.22 28.64/8.22 ---------------------------------------- 28.64/8.22 28.64/8.22 (16) RankingReductionPairProof (EQUIVALENT) 28.64/8.22 Interpretation: 28.64/8.22 [ f7 ] = 0 28.64/8.22 28.64/8.22 The following rules are decreasing: 28.64/8.22 f7(x, x1) -> f7(x, x1 + 1) :|: -1 * x + x1 >= -1 && x1 + -1 * x <= -1 && x + -1 * x1 <= -1 28.64/8.22 28.64/8.22 The following rules are bounded: 28.64/8.22 f7(x:0:0, x1:0:0) -> f7(x:0:0 + 1, x1:0:0) :|: x:0:0 + -1 * x1:0:0 <= -1 && x1:0:0 + -1 * x:0:0 >= 0 28.64/8.22 f7(x, x1) -> f7(x, x1 + 1) :|: -1 * x + x1 >= -1 && x1 + -1 * x <= -1 && x + -1 * x1 <= -1 28.64/8.22 f7(x14:0, x15:0) -> f7(x14:0, x15:0 + 1) :|: -1 * x14:0 + x15:0 >= -1 && x15:0 + -1 * x14:0 <= -1 28.64/8.22 28.64/8.22 28.64/8.22 ---------------------------------------- 28.64/8.22 28.64/8.22 (17) 28.64/8.22 Obligation: 28.64/8.22 Rules: 28.64/8.22 f7(x:0:0, x1:0:0) -> f7(x:0:0 + 1, x1:0:0) :|: x:0:0 + -1 * x1:0:0 <= -1 && x1:0:0 + -1 * x:0:0 >= 0 28.64/8.22 f7(x14:0, x15:0) -> f7(x14:0, x15:0 + 1) :|: -1 * x14:0 + x15:0 >= -1 && x15:0 + -1 * x14:0 <= -1 28.64/8.22 28.64/8.22 ---------------------------------------- 28.64/8.22 28.64/8.22 (18) PolynomialOrderProcessor (EQUIVALENT) 28.64/8.22 Found the following polynomial interpretation: 28.64/8.22 [f7(x, x1)] = -1 + x - 2*x*x1 + x^2 - x1 + x1^2 28.64/8.22 28.64/8.22 The following rules are decreasing: 28.64/8.22 f7(x14:0, x15:0) -> f7(x14:0, x15:0 + 1) :|: -1 * x14:0 + x15:0 >= -1 && x15:0 + -1 * x14:0 <= -1 28.64/8.22 The following rules are bounded: 28.64/8.22 f7(x14:0, x15:0) -> f7(x14:0, x15:0 + 1) :|: -1 * x14:0 + x15:0 >= -1 && x15:0 + -1 * x14:0 <= -1 28.64/8.22 28.64/8.22 ---------------------------------------- 28.64/8.22 28.64/8.22 (19) 28.64/8.22 Obligation: 28.64/8.22 Rules: 28.64/8.22 f7(x:0:0, x1:0:0) -> f7(x:0:0 + 1, x1:0:0) :|: x:0:0 + -1 * x1:0:0 <= -1 && x1:0:0 + -1 * x:0:0 >= 0 28.64/8.22 28.64/8.22 ---------------------------------------- 28.64/8.22 28.64/8.22 (20) RankingReductionPairProof (EQUIVALENT) 28.64/8.22 Interpretation: 28.64/8.22 [ f7 ] = -1*f7_1 + f7_2 28.64/8.22 28.64/8.22 The following rules are decreasing: 28.64/8.22 f7(x:0:0, x1:0:0) -> f7(x:0:0 + 1, x1:0:0) :|: x:0:0 + -1 * x1:0:0 <= -1 && x1:0:0 + -1 * x:0:0 >= 0 28.64/8.22 28.64/8.22 The following rules are bounded: 28.64/8.22 f7(x:0:0, x1:0:0) -> f7(x:0:0 + 1, x1:0:0) :|: x:0:0 + -1 * x1:0:0 <= -1 && x1:0:0 + -1 * x:0:0 >= 0 28.64/8.22 28.64/8.22 28.64/8.22 ---------------------------------------- 28.64/8.22 28.64/8.22 (21) 28.64/8.22 YES 28.64/8.22 28.64/8.22 ---------------------------------------- 28.64/8.22 28.64/8.22 (22) 28.64/8.22 Obligation: 28.64/8.22 Rules: 28.64/8.22 f4(x10:0, x11:0) -> f7(x10:0 + 1, x11:0) :|: x11:0 >= x10:0 && 3 + -3 * x10:0 + 3 * x11:0 < 0 28.64/8.22 f7(x18:0, x19:0) -> f4(x18:0, x19:0) :|: x19:0 < x18:0 && 3 + -3 * x18:0 + 3 * x19:0 < 0 28.64/8.22 f4(x8:0, x9:0) -> f7(x8:0, x9:0 + 1) :|: x9:0 < x8:0 && 3 + -3 * x8:0 + 3 * x9:0 < 0 28.64/8.22 f7(x, x1) -> f4(x, x1) :|: x1 > x && 3 + -3 * x + 3 * x1 < 0 28.64/8.22 28.64/8.22 ---------------------------------------- 28.64/8.22 28.64/8.22 (23) TerminationGraphProcessor (EQUIVALENT) 28.64/8.22 Constructed the termination graph and obtained one non-trivial SCC. 28.64/8.22 28.64/8.22 ---------------------------------------- 28.64/8.22 28.64/8.22 (24) 28.64/8.22 Obligation: 28.64/8.22 Rules: 28.64/8.22 f7(x18:0, x19:0) -> f4(x18:0, x19:0) :|: x19:0 < x18:0 && 3 + -3 * x18:0 + 3 * x19:0 < 0 28.64/8.22 f4(x8:0, x9:0) -> f7(x8:0, x9:0 + 1) :|: x9:0 < x8:0 && 3 + -3 * x8:0 + 3 * x9:0 < 0 28.64/8.22 28.64/8.22 ---------------------------------------- 28.64/8.22 28.64/8.22 (25) IntTRSCompressionProof (EQUIVALENT) 28.64/8.22 Compressed rules. 28.64/8.22 ---------------------------------------- 28.64/8.22 28.64/8.22 (26) 28.64/8.22 Obligation: 28.64/8.22 Rules: 28.64/8.22 f7(x18:0:0, x19:0:0) -> f7(x18:0:0, x19:0:0 + 1) :|: 3 + -3 * x18:0:0 + 3 * x19:0:0 < 0 && x19:0:0 < x18:0:0 28.64/8.22 28.64/8.22 ---------------------------------------- 28.64/8.22 28.64/8.22 (27) RankingReductionPairProof (EQUIVALENT) 28.64/8.22 Interpretation: 28.64/8.22 [ f7 ] = f7_1 + -1*f7_2 28.64/8.22 28.64/8.22 The following rules are decreasing: 28.64/8.22 f7(x18:0:0, x19:0:0) -> f7(x18:0:0, x19:0:0 + 1) :|: 3 + -3 * x18:0:0 + 3 * x19:0:0 < 0 && x19:0:0 < x18:0:0 28.64/8.22 28.64/8.22 The following rules are bounded: 28.64/8.22 f7(x18:0:0, x19:0:0) -> f7(x18:0:0, x19:0:0 + 1) :|: 3 + -3 * x18:0:0 + 3 * x19:0:0 < 0 && x19:0:0 < x18:0:0 28.64/8.22 28.64/8.22 28.64/8.22 ---------------------------------------- 28.64/8.22 28.64/8.22 (28) 28.64/8.22 YES 28.93/8.30 EOF