6.38/2.41 YES 6.38/2.42 proof of /export/starexec/sandbox2/benchmark/theBenchmark.c 6.38/2.42 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 6.38/2.42 6.38/2.42 6.38/2.42 Termination of the given C Problem could be proven: 6.38/2.42 6.38/2.42 (0) C Problem 6.38/2.42 (1) CToIRSProof [EQUIVALENT, 0 ms] 6.38/2.42 (2) IntTRS 6.38/2.42 (3) TerminationGraphProcessor [SOUND, 39 ms] 6.38/2.42 (4) IntTRS 6.38/2.42 (5) IntTRSCompressionProof [EQUIVALENT, 13 ms] 6.38/2.42 (6) IntTRS 6.38/2.42 (7) PolynomialOrderProcessor [EQUIVALENT, 0 ms] 6.38/2.42 (8) IntTRS 6.38/2.42 (9) IntTRSCompressionProof [EQUIVALENT, 0 ms] 6.38/2.42 (10) IntTRS 6.38/2.42 (11) RankingReductionPairProof [EQUIVALENT, 13 ms] 6.38/2.42 (12) YES 6.38/2.42 6.38/2.42 6.38/2.42 ---------------------------------------- 6.38/2.42 6.38/2.42 (0) 6.38/2.42 Obligation: 6.38/2.42 c file /export/starexec/sandbox2/benchmark/theBenchmark.c 6.38/2.42 ---------------------------------------- 6.38/2.42 6.38/2.42 (1) CToIRSProof (EQUIVALENT) 6.38/2.42 Parsed C Integer Program as IRS. 6.38/2.42 ---------------------------------------- 6.38/2.42 6.38/2.42 (2) 6.38/2.42 Obligation: 6.38/2.42 Rules: 6.38/2.42 f1(x, y, random) -> f2(x_1, y, random) :|: TRUE 6.38/2.42 f2(x1, x2, x3) -> f3(x1, x4, x3) :|: TRUE 6.38/2.42 f4(x5, x6, x7) -> f5(x5, x6, x8) :|: TRUE 6.38/2.42 f6(x9, x10, x11) -> f9(arith, x10, x11) :|: TRUE && arith = x9 - 1 6.38/2.42 f9(x12, x13, x14) -> f10(x12, x13, x15) :|: TRUE 6.38/2.42 f10(x16, x17, x18) -> f11(x16, x18, x18) :|: TRUE 6.38/2.42 f7(x43, x44, x45) -> f12(x43, x46, x45) :|: TRUE && x46 = x44 - 1 6.38/2.42 f5(x22, x23, x24) -> f6(x22, x23, x24) :|: x24 < 42 6.38/2.42 f5(x25, x26, x27) -> f7(x25, x26, x27) :|: x27 >= 42 6.38/2.42 f11(x28, x29, x30) -> f8(x28, x29, x30) :|: TRUE 6.38/2.42 f12(x31, x32, x33) -> f8(x31, x32, x33) :|: TRUE 6.38/2.42 f3(x34, x35, x36) -> f4(x34, x35, x36) :|: x34 > 0 && x35 > 0 6.38/2.42 f8(x37, x38, x39) -> f3(x37, x38, x39) :|: TRUE 6.38/2.42 f3(x40, x41, x42) -> f13(x40, x41, x42) :|: x40 <= 0 6.38/2.42 f3(x47, x48, x49) -> f13(x47, x48, x49) :|: x48 <= 0 6.38/2.42 Start term: f1(x, y, random) 6.38/2.42 6.38/2.42 ---------------------------------------- 6.38/2.42 6.38/2.42 (3) TerminationGraphProcessor (SOUND) 6.38/2.42 Constructed the termination graph and obtained one non-trivial SCC. 6.38/2.42 6.38/2.42 ---------------------------------------- 6.38/2.42 6.38/2.42 (4) 6.38/2.42 Obligation: 6.38/2.42 Rules: 6.38/2.42 f3(x34, x35, x36) -> f4(x34, x35, x36) :|: x34 > 0 && x35 > 0 6.38/2.42 f8(x37, x38, x39) -> f3(x37, x38, x39) :|: TRUE 6.38/2.42 f11(x28, x29, x30) -> f8(x28, x29, x30) :|: TRUE 6.38/2.42 f10(x16, x17, x18) -> f11(x16, x18, x18) :|: TRUE 6.38/2.42 f9(x12, x13, x14) -> f10(x12, x13, x15) :|: TRUE 6.38/2.42 f6(x9, x10, x11) -> f9(arith, x10, x11) :|: TRUE && arith = x9 - 1 6.38/2.42 f5(x22, x23, x24) -> f6(x22, x23, x24) :|: x24 < 42 6.38/2.42 f4(x5, x6, x7) -> f5(x5, x6, x8) :|: TRUE 6.38/2.42 f12(x31, x32, x33) -> f8(x31, x32, x33) :|: TRUE 6.38/2.42 f7(x43, x44, x45) -> f12(x43, x46, x45) :|: TRUE && x46 = x44 - 1 6.38/2.42 f5(x25, x26, x27) -> f7(x25, x26, x27) :|: x27 >= 42 6.38/2.42 6.38/2.42 ---------------------------------------- 6.38/2.42 6.38/2.42 (5) IntTRSCompressionProof (EQUIVALENT) 6.38/2.42 Compressed rules. 6.38/2.42 ---------------------------------------- 6.38/2.42 6.38/2.42 (6) 6.38/2.42 Obligation: 6.38/2.42 Rules: 6.38/2.42 f5(x25:0, x26:0, x27:0) -> f5(x25:0, x26:0 - 1, x8:0) :|: x25:0 > 0 && x26:0 > 1 && x27:0 > 41 6.38/2.42 f5(x, x1, x2) -> f5(x - 1, x3, x4) :|: x > 1 && x3 > 0 && x2 < 42 6.38/2.42 6.38/2.42 ---------------------------------------- 6.38/2.42 6.38/2.42 (7) PolynomialOrderProcessor (EQUIVALENT) 6.38/2.42 Found the following polynomial interpretation: 6.38/2.42 [f5(x, x1, x2)] = x 6.38/2.42 6.38/2.42 The following rules are decreasing: 6.38/2.42 f5(x, x1, x2) -> f5(x - 1, x3, x4) :|: x > 1 && x3 > 0 && x2 < 42 6.38/2.42 The following rules are bounded: 6.38/2.42 f5(x25:0, x26:0, x27:0) -> f5(x25:0, x26:0 - 1, x8:0) :|: x25:0 > 0 && x26:0 > 1 && x27:0 > 41 6.38/2.42 f5(x, x1, x2) -> f5(x - 1, x3, x4) :|: x > 1 && x3 > 0 && x2 < 42 6.38/2.42 6.38/2.42 ---------------------------------------- 6.38/2.42 6.38/2.42 (8) 6.38/2.42 Obligation: 6.38/2.42 Rules: 6.38/2.42 f5(x25:0, x26:0, x27:0) -> f5(x25:0, x26:0 - 1, x8:0) :|: x25:0 > 0 && x26:0 > 1 && x27:0 > 41 6.38/2.42 6.38/2.42 ---------------------------------------- 6.38/2.42 6.38/2.42 (9) IntTRSCompressionProof (EQUIVALENT) 6.38/2.42 Compressed rules. 6.38/2.42 ---------------------------------------- 6.38/2.42 6.38/2.42 (10) 6.38/2.42 Obligation: 6.38/2.42 Rules: 6.38/2.42 f5(x25:0:0, x26:0:0, x27:0:0) -> f5(x25:0:0, x26:0:0 - 1, x8:0:0) :|: x25:0:0 > 0 && x26:0:0 > 1 && x27:0:0 > 41 6.38/2.42 6.38/2.42 ---------------------------------------- 6.38/2.42 6.38/2.42 (11) RankingReductionPairProof (EQUIVALENT) 6.38/2.42 Interpretation: 6.38/2.42 [ f5 ] = f5_2 6.38/2.42 6.38/2.42 The following rules are decreasing: 6.38/2.42 f5(x25:0:0, x26:0:0, x27:0:0) -> f5(x25:0:0, x26:0:0 - 1, x8:0:0) :|: x25:0:0 > 0 && x26:0:0 > 1 && x27:0:0 > 41 6.38/2.42 6.38/2.42 The following rules are bounded: 6.38/2.42 f5(x25:0:0, x26:0:0, x27:0:0) -> f5(x25:0:0, x26:0:0 - 1, x8:0:0) :|: x25:0:0 > 0 && x26:0:0 > 1 && x27:0:0 > 41 6.38/2.42 6.38/2.42 6.38/2.42 ---------------------------------------- 6.38/2.42 6.38/2.42 (12) 6.38/2.42 YES 6.38/2.46 EOF