YES proof of /export/starexec/sandbox/benchmark/theBenchmark.c # AProVE Commit ID: 794c25de1cacf0d048858bcd21c9a779e1221865 marcel 20200619 unpublished dirty Termination of the given C Problem could be proven: (0) C Problem (1) CToIRSProof [EQUIVALENT, 0 ms] (2) IntTRS (3) TerminationGraphProcessor [SOUND, 72 ms] (4) IntTRS (5) IntTRSCompressionProof [EQUIVALENT, 18 ms] (6) IntTRS (7) RankingReductionPairProof [EQUIVALENT, 0 ms] (8) IntTRS (9) PolynomialOrderProcessor [EQUIVALENT, 0 ms] (10) YES ---------------------------------------- (0) Obligation: c file /export/starexec/sandbox/benchmark/theBenchmark.c ---------------------------------------- (1) CToIRSProof (EQUIVALENT) Parsed C Integer Program as IRS. ---------------------------------------- (2) Obligation: Rules: f1(i, j, m, n) -> f2(i, j, m, x_1) :|: TRUE f2(x, x1, x2, x3) -> f3(x, x1, x4, x3) :|: TRUE f4(x5, x6, x7, x8) -> f7(0, x6, x7, x8) :|: TRUE f7(x9, x10, x11, x12) -> f8(x9, 0, x11, x12) :|: TRUE f10(x13, x14, x15, x16) -> f13(x13, arith, x15, x16) :|: TRUE && arith = x14 + 1 f11(x17, x18, x19, x20) -> f14(x17, 0, x19, x20) :|: TRUE f14(x69, x70, x71, x72) -> f15(x73, x70, x71, x72) :|: TRUE && x73 = x69 + 1 f9(x25, x26, x27, x28) -> f10(x25, x26, x27, x28) :|: x26 < x27 f9(x29, x30, x31, x32) -> f11(x29, x30, x31, x32) :|: x30 >= x31 f13(x33, x34, x35, x36) -> f12(x33, x34, x35, x36) :|: TRUE f15(x37, x38, x39, x40) -> f12(x37, x38, x39, x40) :|: TRUE f8(x41, x42, x43, x44) -> f9(x41, x42, x43, x44) :|: x41 < x44 f12(x45, x46, x47, x48) -> f8(x45, x46, x47, x48) :|: TRUE f8(x49, x50, x51, x52) -> f16(x49, x50, x51, x52) :|: x49 >= x52 f3(x53, x54, x55, x56) -> f4(x53, x54, x55, x56) :|: x55 > 0 && x56 > x55 f3(x57, x58, x59, x60) -> f5(x57, x58, x59, x60) :|: x59 <= 0 f3(x74, x75, x76, x77) -> f5(x74, x75, x76, x77) :|: x77 <= x76 f16(x61, x62, x63, x64) -> f6(x61, x62, x63, x64) :|: TRUE f5(x65, x66, x67, x68) -> f6(x65, x66, x67, x68) :|: TRUE Start term: f1(i, j, m, n) ---------------------------------------- (3) TerminationGraphProcessor (SOUND) Constructed the termination graph and obtained one non-trivial SCC. ---------------------------------------- (4) Obligation: Rules: f8(x41, x42, x43, x44) -> f9(x41, x42, x43, x44) :|: x41 < x44 f12(x45, x46, x47, x48) -> f8(x45, x46, x47, x48) :|: TRUE f13(x33, x34, x35, x36) -> f12(x33, x34, x35, x36) :|: TRUE f10(x13, x14, x15, x16) -> f13(x13, arith, x15, x16) :|: TRUE && arith = x14 + 1 f9(x25, x26, x27, x28) -> f10(x25, x26, x27, x28) :|: x26 < x27 f15(x37, x38, x39, x40) -> f12(x37, x38, x39, x40) :|: TRUE f14(x69, x70, x71, x72) -> f15(x73, x70, x71, x72) :|: TRUE && x73 = x69 + 1 f11(x17, x18, x19, x20) -> f14(x17, 0, x19, x20) :|: TRUE f9(x29, x30, x31, x32) -> f11(x29, x30, x31, x32) :|: x30 >= x31 ---------------------------------------- (5) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (6) Obligation: Rules: f12(x45:0, x46:0, x47:0, x48:0) -> f12(x45:0, x46:0 + 1, x47:0, x48:0) :|: x48:0 > x45:0 && x47:0 > x46:0 f12(x, x1, x2, x3) -> f12(x + 1, 0, x2, x3) :|: x3 > x && x2 <= x1 ---------------------------------------- (7) RankingReductionPairProof (EQUIVALENT) Interpretation: [ f12 ] = f12_4 + -1*f12_1 The following rules are decreasing: f12(x, x1, x2, x3) -> f12(x + 1, 0, x2, x3) :|: x3 > x && x2 <= x1 The following rules are bounded: f12(x45:0, x46:0, x47:0, x48:0) -> f12(x45:0, x46:0 + 1, x47:0, x48:0) :|: x48:0 > x45:0 && x47:0 > x46:0 f12(x, x1, x2, x3) -> f12(x + 1, 0, x2, x3) :|: x3 > x && x2 <= x1 ---------------------------------------- (8) Obligation: Rules: f12(x45:0, x46:0, x47:0, x48:0) -> f12(x45:0, x46:0 + 1, x47:0, x48:0) :|: x48:0 > x45:0 && x47:0 > x46:0 ---------------------------------------- (9) PolynomialOrderProcessor (EQUIVALENT) Found the following polynomial interpretation: [f12(x, x1, x2, x3)] = -x1 + x2 The following rules are decreasing: f12(x45:0, x46:0, x47:0, x48:0) -> f12(x45:0, x46:0 + 1, x47:0, x48:0) :|: x48:0 > x45:0 && x47:0 > x46:0 The following rules are bounded: f12(x45:0, x46:0, x47:0, x48:0) -> f12(x45:0, x46:0 + 1, x47:0, x48:0) :|: x48:0 > x45:0 && x47:0 > x46:0 ---------------------------------------- (10) YES