/export/starexec/sandbox2/solver/bin/starexec_run_c /export/starexec/sandbox2/benchmark/theBenchmark.c /export/starexec/sandbox2/output/output_files -------------------------------------------------------------------------------- YES proof of /export/starexec/sandbox2/benchmark/theBenchmark.c # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 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, 31 ms] (6) IntTRS (7) CaseAnalysis [EQUIVALENT, 21 ms] (8) AND (9) IntTRS (10) IntTRSCompressionProof [EQUIVALENT, 0 ms] (11) IntTRS (12) CaseAnalysis [EQUIVALENT, 14 ms] (13) AND (14) IntTRS (15) IntTRSCompressionProof [EQUIVALENT, 0 ms] (16) IntTRS (17) PolynomialOrderProcessor [EQUIVALENT, 3 ms] (18) IntTRS (19) IntTRSCompressionProof [EQUIVALENT, 0 ms] (20) IntTRS (21) TerminationGraphProcessor [EQUIVALENT, 0 ms] (22) IntTRS (23) IntTRSCompressionProof [EQUIVALENT, 0 ms] (24) IntTRS (25) PolynomialOrderProcessor [EQUIVALENT, 5 ms] (26) YES (27) IntTRS (28) IntTRSCompressionProof [EQUIVALENT, 0 ms] (29) IntTRS (30) PolynomialOrderProcessor [EQUIVALENT, 0 ms] (31) IntTRS (32) IntTRSCompressionProof [EQUIVALENT, 0 ms] (33) IntTRS (34) RankingReductionPairProof [EQUIVALENT, 0 ms] (35) YES (36) IntTRS (37) IntTRSCompressionProof [EQUIVALENT, 0 ms] (38) IntTRS (39) RankingReductionPairProof [EQUIVALENT, 9 ms] (40) IntTRS (41) IntTRSCompressionProof [EQUIVALENT, 0 ms] (42) IntTRS (43) CaseAnalysis [EQUIVALENT, 11 ms] (44) AND (45) IntTRS (46) IntTRSCompressionProof [EQUIVALENT, 0 ms] (47) IntTRS (48) RankingReductionPairProof [EQUIVALENT, 0 ms] (49) YES (50) IntTRS (51) IntTRSCompressionProof [EQUIVALENT, 0 ms] (52) IntTRS (53) PolynomialOrderProcessor [EQUIVALENT, 4 ms] (54) YES ---------------------------------------- (0) Obligation: c file /export/starexec/sandbox2/benchmark/theBenchmark.c ---------------------------------------- (1) CToIRSProof (EQUIVALENT) Parsed C Integer Program as IRS. ---------------------------------------- (2) Obligation: Rules: f1(x, y, z) -> f2(x_1, y, z) :|: TRUE f2(x1, x2, x3) -> f3(x1, x4, x3) :|: TRUE f3(x5, x6, x7) -> f4(x5, x6, x8) :|: TRUE f6(x9, x10, x11) -> f9(arith, x10, x11) :|: TRUE && arith = x9 + 1 f9(x47, x48, x49) -> f10(x47, x50, x49) :|: TRUE && x50 = x48 + x47 f7(x51, x52, x53) -> f11(x54, x52, x53) :|: TRUE && x54 = x51 - x53 f11(x55, x56, x57) -> f12(x55, x58, x57) :|: TRUE && x58 = x56 + x57 * x57 f12(x59, x60, x61) -> f13(x59, x60, x62) :|: TRUE && x62 = x61 - 1 f5(x24, x25, x26) -> f6(x24, x25, x26) :|: x27 < 0 f5(x63, x64, x65) -> f6(x63, x64, x65) :|: x66 > 0 f5(x28, x29, x30) -> f7(x28, x29, x30) :|: x31 = 0 f10(x32, x33, x34) -> f8(x32, x33, x34) :|: TRUE f13(x35, x36, x37) -> f8(x35, x36, x37) :|: TRUE f4(x38, x39, x40) -> f5(x38, x39, x40) :|: x38 >= x39 f8(x41, x42, x43) -> f4(x41, x42, x43) :|: TRUE f4(x44, x45, x46) -> f14(x44, x45, x46) :|: x44 < x45 Start term: f1(x, y, z) ---------------------------------------- (3) TerminationGraphProcessor (SOUND) Constructed the termination graph and obtained one non-trivial SCC. ---------------------------------------- (4) Obligation: Rules: f4(x38, x39, x40) -> f5(x38, x39, x40) :|: x38 >= x39 f8(x41, x42, x43) -> f4(x41, x42, x43) :|: TRUE f10(x32, x33, x34) -> f8(x32, x33, x34) :|: TRUE f9(x47, x48, x49) -> f10(x47, x50, x49) :|: TRUE && x50 = x48 + x47 f6(x9, x10, x11) -> f9(arith, x10, x11) :|: TRUE && arith = x9 + 1 f5(x24, x25, x26) -> f6(x24, x25, x26) :|: x27 < 0 f5(x63, x64, x65) -> f6(x63, x64, x65) :|: x66 > 0 f13(x35, x36, x37) -> f8(x35, x36, x37) :|: TRUE f12(x59, x60, x61) -> f13(x59, x60, x62) :|: TRUE && x62 = x61 - 1 f11(x55, x56, x57) -> f12(x55, x58, x57) :|: TRUE && x58 = x56 + x57 * x57 f7(x51, x52, x53) -> f11(x54, x52, x53) :|: TRUE && x54 = x51 - x53 f5(x28, x29, x30) -> f7(x28, x29, x30) :|: x31 = 0 ---------------------------------------- (5) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (6) Obligation: Rules: f8(x41:0, x42:0, x43:0) -> f8(x41:0 + 1, x42:0 + (x41:0 + 1), x43:0) :|: x42:0 <= x41:0 && x66:0 > 0 f8(x, x1, x2) -> f8(x - x2, x1 + x2 * x2, x2 - 1) :|: x1 <= x f8(x3, x4, x5) -> f8(x3 + 1, x4 + (x3 + 1), x5) :|: x4 <= x3 && x6 < 0 ---------------------------------------- (7) CaseAnalysis (EQUIVALENT) Found the following inductive condition: f8(x0, x1, x2): -1 - x2>=0 ---------------------------------------- (8) Complex Obligation (AND) ---------------------------------------- (9) Obligation: Rules: f8(x41:0, x42:0, x43:0) -> f8(x41:0 + 1, x42:0 + (x41:0 + 1), x43:0) :|: x42:0 <= x41:0 && x66:0 > 0 && -1 * x43:0 + -1 >= 0 f8(x, x1, x2) -> f8(x - x2, x1 + x2 * x2, x2 - 1) :|: x1 <= x && -1 * x2 + -1 >= 0 f8(x3, x4, x5) -> f8(x3 + 1, x4 + (x3 + 1), x5) :|: x4 <= x3 && x6 < 0 && -1 * x5 + -1 >= 0 ---------------------------------------- (10) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (11) Obligation: Rules: f8(x3:0, x4:0, x5:0) -> f8(x3:0 + 1, x4:0 + (x3:0 + 1), x5:0) :|: x4:0 <= x3:0 && x6:0 < 0 && 1 <= -1 * x5:0 f8(x41:0:0, x42:0:0, x43:0:0) -> f8(x41:0:0 + 1, x42:0:0 + (x41:0:0 + 1), x43:0:0) :|: x42:0:0 <= x41:0:0 && x66:0:0 > 0 && 1 <= -1 * x43:0:0 f8(x:0, x1:0, x2:0) -> f8(x:0 - x2:0, x1:0 + x2:0 * x2:0, x2:0 - 1) :|: x:0 >= x1:0 && 1 <= -1 * x2:0 ---------------------------------------- (12) CaseAnalysis (EQUIVALENT) Found the following inductive condition: f8(x0, x1, x2): -1 + x0>=0 ---------------------------------------- (13) Complex Obligation (AND) ---------------------------------------- (14) Obligation: Rules: f8(x3:0, x4:0, x5:0) -> f8(x3:0 + 1, x4:0 + (x3:0 + 1), x5:0) :|: x4:0 <= x3:0 && x6:0 < 0 && 1 <= -1 * x5:0 && x3:0 + -1 >= 0 f8(x41:0:0, x42:0:0, x43:0:0) -> f8(x41:0:0 + 1, x42:0:0 + (x41:0:0 + 1), x43:0:0) :|: x42:0:0 <= x41:0:0 && x66:0:0 > 0 && 1 <= -1 * x43:0:0 && x41:0:0 + -1 >= 0 f8(x:0, x1:0, x2:0) -> f8(x:0 - x2:0, x1:0 + x2:0 * x2:0, x2:0 - 1) :|: x:0 >= x1:0 && 1 <= -1 * x2:0 && x:0 + -1 >= 0 ---------------------------------------- (15) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (16) Obligation: Rules: f8(x41:0:0:0, x42:0:0:0, x43:0:0:0) -> f8(x41:0:0:0 + 1, x42:0:0:0 + (x41:0:0:0 + 1), x43:0:0:0) :|: 1 <= -1 * x43:0:0:0 && x41:0:0:0 > 0 && x66:0:0:0 > 0 && x42:0:0:0 <= x41:0:0:0 f8(x3:0:0, x4:0:0, x5:0:0) -> f8(x3:0:0 + 1, x4:0:0 + (x3:0:0 + 1), x5:0:0) :|: 1 <= -1 * x5:0:0 && x3:0:0 > 0 && x6:0:0 < 0 && x4:0:0 <= x3:0:0 f8(x:0:0, x1:0:0, x2:0:0) -> f8(x:0:0 - x2:0:0, x1:0:0 + x2:0:0 * x2:0:0, x2:0:0 - 1) :|: x:0:0 >= x1:0:0 && 1 <= -1 * x2:0:0 && x:0:0 > 0 ---------------------------------------- (17) PolynomialOrderProcessor (EQUIVALENT) Found the following polynomial interpretation: [f8(x, x1, x2)] = x - x1 The following rules are decreasing: f8(x41:0:0:0, x42:0:0:0, x43:0:0:0) -> f8(x41:0:0:0 + 1, x42:0:0:0 + (x41:0:0:0 + 1), x43:0:0:0) :|: 1 <= -1 * x43:0:0:0 && x41:0:0:0 > 0 && x66:0:0:0 > 0 && x42:0:0:0 <= x41:0:0:0 f8(x3:0:0, x4:0:0, x5:0:0) -> f8(x3:0:0 + 1, x4:0:0 + (x3:0:0 + 1), x5:0:0) :|: 1 <= -1 * x5:0:0 && x3:0:0 > 0 && x6:0:0 < 0 && x4:0:0 <= x3:0:0 The following rules are bounded: f8(x41:0:0:0, x42:0:0:0, x43:0:0:0) -> f8(x41:0:0:0 + 1, x42:0:0:0 + (x41:0:0:0 + 1), x43:0:0:0) :|: 1 <= -1 * x43:0:0:0 && x41:0:0:0 > 0 && x66:0:0:0 > 0 && x42:0:0:0 <= x41:0:0:0 f8(x3:0:0, x4:0:0, x5:0:0) -> f8(x3:0:0 + 1, x4:0:0 + (x3:0:0 + 1), x5:0:0) :|: 1 <= -1 * x5:0:0 && x3:0:0 > 0 && x6:0:0 < 0 && x4:0:0 <= x3:0:0 f8(x:0:0, x1:0:0, x2:0:0) -> f8(x:0:0 - x2:0:0, x1:0:0 + x2:0:0 * x2:0:0, x2:0:0 - 1) :|: x:0:0 >= x1:0:0 && 1 <= -1 * x2:0:0 && x:0:0 > 0 ---------------------------------------- (18) Obligation: Rules: f8(x:0:0, x1:0:0, x2:0:0) -> f8(x:0:0 - x2:0:0, x1:0:0 + x2:0:0 * x2:0:0, x2:0:0 - 1) :|: x:0:0 >= x1:0:0 && 1 <= -1 * x2:0:0 && x:0:0 > 0 ---------------------------------------- (19) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (20) Obligation: Rules: f8(x:0:0:0, x1:0:0:0, x2:0:0:0) -> f8(x:0:0:0 - x2:0:0:0, x1:0:0:0 + x2:0:0:0 * x2:0:0:0, x2:0:0:0 - 1) :|: x:0:0:0 >= x1:0:0:0 && 1 <= -1 * x2:0:0:0 && x:0:0:0 > 0 ---------------------------------------- (21) TerminationGraphProcessor (EQUIVALENT) Constructed the termination graph and obtained one non-trivial SCC. f8(x:0:0:0, x1:0:0:0, x2:0:0:0) -> f8(x:0:0:0 - x2:0:0:0, x1:0:0:0 + x2:0:0:0 * x2:0:0:0, x2:0:0:0 - 1) :|: x:0:0:0 >= x1:0:0:0 && 1 <= -1 * x2:0:0:0 && x:0:0:0 > 0 has been transformed into f8(x:0:0:0, x1:0:0:0, x2:0:0:0) -> f8(x:0:0:0 - x2:0:0:0, x1:0:0:0 + x2:0:0:0 * x2:0:0:0, x2:0:0:0 - 1) :|: x2:0:0:0 = x8 - 1 && (x1:0:0:0 = x7 + x8 * x8 && (x:0:0:0 = x6 - x8 && (x:0:0:0 >= x1:0:0:0 && 1 <= -1 * x2:0:0:0 && x:0:0:0 > 0))) && x6 >= x7 && 1 <= -1 * x8 && x6 > 0. f8(x:0:0:0, x1:0:0:0, x2:0:0:0) -> f8(x:0:0:0 - x2:0:0:0, x1:0:0:0 + x2:0:0:0 * x2:0:0:0, x2:0:0:0 - 1) :|: x2:0:0:0 = x8 - 1 && (x1:0:0:0 = x7 + x8 * x8 && (x:0:0:0 = x6 - x8 && (x:0:0:0 >= x1:0:0:0 && 1 <= -1 * x2:0:0:0 && x:0:0:0 > 0))) && x6 >= x7 && 1 <= -1 * x8 && x6 > 0 and f8(x:0:0:0, x1:0:0:0, x2:0:0:0) -> f8(x:0:0:0 - x2:0:0:0, x1:0:0:0 + x2:0:0:0 * x2:0:0:0, x2:0:0:0 - 1) :|: x2:0:0:0 = x8 - 1 && (x1:0:0:0 = x7 + x8 * x8 && (x:0:0:0 = x6 - x8 && (x:0:0:0 >= x1:0:0:0 && 1 <= -1 * x2:0:0:0 && x:0:0:0 > 0))) && x6 >= x7 && 1 <= -1 * x8 && x6 > 0 have been merged into the new rule f8(x21, x22, x23) -> f8(x21 - x23 - (x23 - 1), x22 + x23 * x23 + (x23 - 1) * (x23 - 1), x23 - 1 - 1) :|: x23 = x24 - 1 && (x22 = x25 + x24 * x24 && (x21 = x26 - x24 && (x21 >= x22 && 1 <= -1 * x23 && x21 > 0))) && x26 >= x25 && 1 <= -1 * x24 && x26 > 0 && (x23 - 1 = x27 - 1 && (x22 + x23 * x23 = x28 + x27 * x27 && (x21 - x23 = x29 - x27 && (x21 - x23 >= x22 + x23 * x23 && 1 <= -1 * (x23 - 1) && x21 - x23 > 0))) && x29 >= x28 && 1 <= -1 * x27 && x29 > 0) ---------------------------------------- (22) Obligation: Rules: f8(x30, x31, x32) -> f8(x30 + -2 * x32 + 1, x31 + 2 * (x32 * x32) + -2 * x32 + 1, x32 + -2) :|: TRUE && x32 + -1 * x33 = -1 && x31 + -1 * x34 + -1 * (x33 * x33) = 0 && x30 + -1 * x35 + x33 = 0 && x30 + -1 * x31 >= 0 && x32 <= -1 && x30 >= 1 && x35 + -1 * x34 >= 0 && x33 <= -1 && x35 >= 1 && x32 + -1 * x36 = 0 && x31 + x32 * x32 + -1 * x37 + -1 * (x36 * x36) = 0 && x30 + -1 * x32 + -1 * x38 + x36 = 0 && x30 + -1 * x32 + -1 * x31 + -1 * (x32 * x32) >= 0 && x30 + -1 * x32 >= 1 && x38 + -1 * x37 >= 0 && x36 <= -1 && x38 >= 1 ---------------------------------------- (23) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (24) Obligation: Rules: f8(x30:0, x31:0, x32:0) -> f8(x30:0 + -2 * x32:0 + 1, x31:0 + 2 * (x32:0 * x32:0) + -2 * x32:0 + 1, x32:0 - 2) :|: x36:0 < 0 && x38:0 > 0 && x38:0 + -1 * x37:0 >= 0 && x30:0 + -1 * x32:0 >= 1 && x30:0 + -1 * x32:0 + -1 * x31:0 + -1 * (x32:0 * x32:0) >= 0 && x30:0 + -1 * x32:0 + -1 * x38:0 + x36:0 = 0 && x31:0 + x32:0 * x32:0 + -1 * x37:0 + -1 * (x36:0 * x36:0) = 0 && x32:0 + -1 * x36:0 = 0 && x35:0 > 0 && x33:0 < 0 && x35:0 + -1 * x34:0 >= 0 && x30:0 > 0 && x32:0 < 0 && x30:0 + -1 * x31:0 >= 0 && x30:0 + -1 * x35:0 + x33:0 = 0 && x32:0 + -1 * x33:0 = -1 && x31:0 + -1 * x34:0 + -1 * (x33:0 * x33:0) = 0 ---------------------------------------- (25) PolynomialOrderProcessor (EQUIVALENT) Found the following polynomial interpretation: [f8(x, x1, x2)] = -8 + 2*x - 2*x1 - 4*x2 The following rules are decreasing: f8(x30:0, x31:0, x32:0) -> f8(x30:0 + -2 * x32:0 + 1, x31:0 + 2 * (x32:0 * x32:0) + -2 * x32:0 + 1, x32:0 - 2) :|: x36:0 < 0 && x38:0 > 0 && x38:0 + -1 * x37:0 >= 0 && x30:0 + -1 * x32:0 >= 1 && x30:0 + -1 * x32:0 + -1 * x31:0 + -1 * (x32:0 * x32:0) >= 0 && x30:0 + -1 * x32:0 + -1 * x38:0 + x36:0 = 0 && x31:0 + x32:0 * x32:0 + -1 * x37:0 + -1 * (x36:0 * x36:0) = 0 && x32:0 + -1 * x36:0 = 0 && x35:0 > 0 && x33:0 < 0 && x35:0 + -1 * x34:0 >= 0 && x30:0 > 0 && x32:0 < 0 && x30:0 + -1 * x31:0 >= 0 && x30:0 + -1 * x35:0 + x33:0 = 0 && x32:0 + -1 * x33:0 = -1 && x31:0 + -1 * x34:0 + -1 * (x33:0 * x33:0) = 0 The following rules are bounded: f8(x30:0, x31:0, x32:0) -> f8(x30:0 + -2 * x32:0 + 1, x31:0 + 2 * (x32:0 * x32:0) + -2 * x32:0 + 1, x32:0 - 2) :|: x36:0 < 0 && x38:0 > 0 && x38:0 + -1 * x37:0 >= 0 && x30:0 + -1 * x32:0 >= 1 && x30:0 + -1 * x32:0 + -1 * x31:0 + -1 * (x32:0 * x32:0) >= 0 && x30:0 + -1 * x32:0 + -1 * x38:0 + x36:0 = 0 && x31:0 + x32:0 * x32:0 + -1 * x37:0 + -1 * (x36:0 * x36:0) = 0 && x32:0 + -1 * x36:0 = 0 && x35:0 > 0 && x33:0 < 0 && x35:0 + -1 * x34:0 >= 0 && x30:0 > 0 && x32:0 < 0 && x30:0 + -1 * x31:0 >= 0 && x30:0 + -1 * x35:0 + x33:0 = 0 && x32:0 + -1 * x33:0 = -1 && x31:0 + -1 * x34:0 + -1 * (x33:0 * x33:0) = 0 ---------------------------------------- (26) YES ---------------------------------------- (27) Obligation: Rules: f8(x3:0, x4:0, x5:0) -> f8(x3:0 + 1, x4:0 + (x3:0 + 1), x5:0) :|: x4:0 <= x3:0 && x6:0 < 0 && 1 <= -1 * x5:0 && x3:0 + -1 < 0 f8(x41:0:0, x42:0:0, x43:0:0) -> f8(x41:0:0 + 1, x42:0:0 + (x41:0:0 + 1), x43:0:0) :|: x42:0:0 <= x41:0:0 && x66:0:0 > 0 && 1 <= -1 * x43:0:0 && x41:0:0 + -1 < 0 f8(x:0, x1:0, x2:0) -> f8(x:0 - x2:0, x1:0 + x2:0 * x2:0, x2:0 - 1) :|: x:0 >= x1:0 && 1 <= -1 * x2:0 && x:0 + -1 < 0 ---------------------------------------- (28) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (29) Obligation: Rules: f8(x41:0:0:0, x42:0:0:0, x43:0:0:0) -> f8(x41:0:0:0 + 1, x42:0:0:0 + (x41:0:0:0 + 1), x43:0:0:0) :|: 1 <= -1 * x43:0:0:0 && x41:0:0:0 < 1 && x66:0:0:0 > 0 && x42:0:0:0 <= x41:0:0:0 f8(x:0:0, x1:0:0, x2:0:0) -> f8(x:0:0 - x2:0:0, x1:0:0 + x2:0:0 * x2:0:0, x2:0:0 - 1) :|: x:0:0 >= x1:0:0 && 1 <= -1 * x2:0:0 && x:0:0 < 1 f8(x3:0:0, x4:0:0, x5:0:0) -> f8(x3:0:0 + 1, x4:0:0 + (x3:0:0 + 1), x5:0:0) :|: 1 <= -1 * x5:0:0 && x3:0:0 < 1 && x6:0:0 < 0 && x4:0:0 <= x3:0:0 ---------------------------------------- (30) PolynomialOrderProcessor (EQUIVALENT) Found the following polynomial interpretation: [f8(x, x1, x2)] = -1 - x - x2 The following rules are decreasing: f8(x41:0:0:0, x42:0:0:0, x43:0:0:0) -> f8(x41:0:0:0 + 1, x42:0:0:0 + (x41:0:0:0 + 1), x43:0:0:0) :|: 1 <= -1 * x43:0:0:0 && x41:0:0:0 < 1 && x66:0:0:0 > 0 && x42:0:0:0 <= x41:0:0:0 f8(x3:0:0, x4:0:0, x5:0:0) -> f8(x3:0:0 + 1, x4:0:0 + (x3:0:0 + 1), x5:0:0) :|: 1 <= -1 * x5:0:0 && x3:0:0 < 1 && x6:0:0 < 0 && x4:0:0 <= x3:0:0 The following rules are bounded: f8(x41:0:0:0, x42:0:0:0, x43:0:0:0) -> f8(x41:0:0:0 + 1, x42:0:0:0 + (x41:0:0:0 + 1), x43:0:0:0) :|: 1 <= -1 * x43:0:0:0 && x41:0:0:0 < 1 && x66:0:0:0 > 0 && x42:0:0:0 <= x41:0:0:0 f8(x:0:0, x1:0:0, x2:0:0) -> f8(x:0:0 - x2:0:0, x1:0:0 + x2:0:0 * x2:0:0, x2:0:0 - 1) :|: x:0:0 >= x1:0:0 && 1 <= -1 * x2:0:0 && x:0:0 < 1 f8(x3:0:0, x4:0:0, x5:0:0) -> f8(x3:0:0 + 1, x4:0:0 + (x3:0:0 + 1), x5:0:0) :|: 1 <= -1 * x5:0:0 && x3:0:0 < 1 && x6:0:0 < 0 && x4:0:0 <= x3:0:0 ---------------------------------------- (31) Obligation: Rules: f8(x:0:0, x1:0:0, x2:0:0) -> f8(x:0:0 - x2:0:0, x1:0:0 + x2:0:0 * x2:0:0, x2:0:0 - 1) :|: x:0:0 >= x1:0:0 && 1 <= -1 * x2:0:0 && x:0:0 < 1 ---------------------------------------- (32) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (33) Obligation: Rules: f8(x:0:0:0, x1:0:0:0, x2:0:0:0) -> f8(x:0:0:0 - x2:0:0:0, x1:0:0:0 + x2:0:0:0 * x2:0:0:0, x2:0:0:0 - 1) :|: x:0:0:0 >= x1:0:0:0 && 1 <= -1 * x2:0:0:0 && x:0:0:0 < 1 ---------------------------------------- (34) RankingReductionPairProof (EQUIVALENT) Interpretation: [ f8 ] = -1*f8_1 The following rules are decreasing: f8(x:0:0:0, x1:0:0:0, x2:0:0:0) -> f8(x:0:0:0 - x2:0:0:0, x1:0:0:0 + x2:0:0:0 * x2:0:0:0, x2:0:0:0 - 1) :|: x:0:0:0 >= x1:0:0:0 && 1 <= -1 * x2:0:0:0 && x:0:0:0 < 1 The following rules are bounded: f8(x:0:0:0, x1:0:0:0, x2:0:0:0) -> f8(x:0:0:0 - x2:0:0:0, x1:0:0:0 + x2:0:0:0 * x2:0:0:0, x2:0:0:0 - 1) :|: x:0:0:0 >= x1:0:0:0 && 1 <= -1 * x2:0:0:0 && x:0:0:0 < 1 ---------------------------------------- (35) YES ---------------------------------------- (36) Obligation: Rules: f8(x41:0, x42:0, x43:0) -> f8(x41:0 + 1, x42:0 + (x41:0 + 1), x43:0) :|: x42:0 <= x41:0 && x66:0 > 0 && -1 * x43:0 + -1 < 0 f8(x, x1, x2) -> f8(x - x2, x1 + x2 * x2, x2 - 1) :|: x1 <= x && -1 * x2 + -1 < 0 f8(x3, x4, x5) -> f8(x3 + 1, x4 + (x3 + 1), x5) :|: x4 <= x3 && x6 < 0 && -1 * x5 + -1 < 0 ---------------------------------------- (37) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (38) Obligation: Rules: f8(x:0, x1:0, x2:0) -> f8(x:0 - x2:0, x1:0 + x2:0 * x2:0, x2:0 - 1) :|: x:0 >= x1:0 && 1 > -1 * x2:0 f8(x41:0:0, x42:0:0, x43:0:0) -> f8(x41:0:0 + 1, x42:0:0 + (x41:0:0 + 1), x43:0:0) :|: x42:0:0 <= x41:0:0 && x66:0:0 > 0 && 1 > -1 * x43:0:0 f8(x3:0, x4:0, x5:0) -> f8(x3:0 + 1, x4:0 + (x3:0 + 1), x5:0) :|: x4:0 <= x3:0 && x6:0 < 0 && 1 > -1 * x5:0 ---------------------------------------- (39) RankingReductionPairProof (EQUIVALENT) Interpretation: [ f8 ] = f8_3 The following rules are decreasing: f8(x:0, x1:0, x2:0) -> f8(x:0 - x2:0, x1:0 + x2:0 * x2:0, x2:0 - 1) :|: x:0 >= x1:0 && 1 > -1 * x2:0 The following rules are bounded: f8(x:0, x1:0, x2:0) -> f8(x:0 - x2:0, x1:0 + x2:0 * x2:0, x2:0 - 1) :|: x:0 >= x1:0 && 1 > -1 * x2:0 f8(x41:0:0, x42:0:0, x43:0:0) -> f8(x41:0:0 + 1, x42:0:0 + (x41:0:0 + 1), x43:0:0) :|: x42:0:0 <= x41:0:0 && x66:0:0 > 0 && 1 > -1 * x43:0:0 f8(x3:0, x4:0, x5:0) -> f8(x3:0 + 1, x4:0 + (x3:0 + 1), x5:0) :|: x4:0 <= x3:0 && x6:0 < 0 && 1 > -1 * x5:0 ---------------------------------------- (40) Obligation: Rules: f8(x41:0:0, x42:0:0, x43:0:0) -> f8(x41:0:0 + 1, x42:0:0 + (x41:0:0 + 1), x43:0:0) :|: x42:0:0 <= x41:0:0 && x66:0:0 > 0 && 1 > -1 * x43:0:0 f8(x3:0, x4:0, x5:0) -> f8(x3:0 + 1, x4:0 + (x3:0 + 1), x5:0) :|: x4:0 <= x3:0 && x6:0 < 0 && 1 > -1 * x5:0 ---------------------------------------- (41) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (42) Obligation: Rules: f8(x41:0:0:0, x42:0:0:0, x43:0:0:0) -> f8(x41:0:0:0 + 1, x42:0:0:0 + (x41:0:0:0 + 1), x43:0:0:0) :|: x42:0:0:0 <= x41:0:0:0 && x66:0:0:0 > 0 && 1 > -1 * x43:0:0:0 f8(x3:0:0, x4:0:0, x5:0:0) -> f8(x3:0:0 + 1, x4:0:0 + (x3:0:0 + 1), x5:0:0) :|: x4:0:0 <= x3:0:0 && x6:0:0 < 0 && 1 > -1 * x5:0:0 ---------------------------------------- (43) CaseAnalysis (EQUIVALENT) Found the following inductive condition: f8(x0, x1, x2): -1 + x0>=0 ---------------------------------------- (44) Complex Obligation (AND) ---------------------------------------- (45) Obligation: Rules: f8(x41:0:0:0, x42:0:0:0, x43:0:0:0) -> f8(x41:0:0:0 + 1, x42:0:0:0 + (x41:0:0:0 + 1), x43:0:0:0) :|: x42:0:0:0 <= x41:0:0:0 && x66:0:0:0 > 0 && 1 > -1 * x43:0:0:0 && x41:0:0:0 + -1 >= 0 f8(x3:0:0, x4:0:0, x5:0:0) -> f8(x3:0:0 + 1, x4:0:0 + (x3:0:0 + 1), x5:0:0) :|: x4:0:0 <= x3:0:0 && x6:0:0 < 0 && 1 > -1 * x5:0:0 && x3:0:0 + -1 >= 0 ---------------------------------------- (46) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (47) Obligation: Rules: f8(x3:0:0:0, x4:0:0:0, x5:0:0:0) -> f8(x3:0:0:0 + 1, x4:0:0:0 + (x3:0:0:0 + 1), x5:0:0:0) :|: 1 > -1 * x5:0:0:0 && x3:0:0:0 > 0 && x6:0:0:0 < 0 && x4:0:0:0 <= x3:0:0:0 f8(x41:0:0:0:0, x42:0:0:0:0, x43:0:0:0:0) -> f8(x41:0:0:0:0 + 1, x42:0:0:0:0 + (x41:0:0:0:0 + 1), x43:0:0:0:0) :|: 1 > -1 * x43:0:0:0:0 && x41:0:0:0:0 > 0 && x66:0:0:0:0 > 0 && x42:0:0:0:0 <= x41:0:0:0:0 ---------------------------------------- (48) RankingReductionPairProof (EQUIVALENT) Interpretation: [ f8 ] = f8_1 + -1*f8_2 The following rules are decreasing: f8(x3:0:0:0, x4:0:0:0, x5:0:0:0) -> f8(x3:0:0:0 + 1, x4:0:0:0 + (x3:0:0:0 + 1), x5:0:0:0) :|: 1 > -1 * x5:0:0:0 && x3:0:0:0 > 0 && x6:0:0:0 < 0 && x4:0:0:0 <= x3:0:0:0 f8(x41:0:0:0:0, x42:0:0:0:0, x43:0:0:0:0) -> f8(x41:0:0:0:0 + 1, x42:0:0:0:0 + (x41:0:0:0:0 + 1), x43:0:0:0:0) :|: 1 > -1 * x43:0:0:0:0 && x41:0:0:0:0 > 0 && x66:0:0:0:0 > 0 && x42:0:0:0:0 <= x41:0:0:0:0 The following rules are bounded: f8(x3:0:0:0, x4:0:0:0, x5:0:0:0) -> f8(x3:0:0:0 + 1, x4:0:0:0 + (x3:0:0:0 + 1), x5:0:0:0) :|: 1 > -1 * x5:0:0:0 && x3:0:0:0 > 0 && x6:0:0:0 < 0 && x4:0:0:0 <= x3:0:0:0 f8(x41:0:0:0:0, x42:0:0:0:0, x43:0:0:0:0) -> f8(x41:0:0:0:0 + 1, x42:0:0:0:0 + (x41:0:0:0:0 + 1), x43:0:0:0:0) :|: 1 > -1 * x43:0:0:0:0 && x41:0:0:0:0 > 0 && x66:0:0:0:0 > 0 && x42:0:0:0:0 <= x41:0:0:0:0 ---------------------------------------- (49) YES ---------------------------------------- (50) Obligation: Rules: f8(x41:0:0:0, x42:0:0:0, x43:0:0:0) -> f8(x41:0:0:0 + 1, x42:0:0:0 + (x41:0:0:0 + 1), x43:0:0:0) :|: x42:0:0:0 <= x41:0:0:0 && x66:0:0:0 > 0 && 1 > -1 * x43:0:0:0 && x41:0:0:0 + -1 < 0 f8(x3:0:0, x4:0:0, x5:0:0) -> f8(x3:0:0 + 1, x4:0:0 + (x3:0:0 + 1), x5:0:0) :|: x4:0:0 <= x3:0:0 && x6:0:0 < 0 && 1 > -1 * x5:0:0 && x3:0:0 + -1 < 0 ---------------------------------------- (51) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (52) Obligation: Rules: f8(x41:0:0:0:0, x42:0:0:0:0, x43:0:0:0:0) -> f8(x41:0:0:0:0 + 1, x42:0:0:0:0 + (x41:0:0:0:0 + 1), x43:0:0:0:0) :|: 1 > -1 * x43:0:0:0:0 && x41:0:0:0:0 < 1 && x66:0:0:0:0 > 0 && x42:0:0:0:0 <= x41:0:0:0:0 f8(x3:0:0:0, x4:0:0:0, x5:0:0:0) -> f8(x3:0:0:0 + 1, x4:0:0:0 + (x3:0:0:0 + 1), x5:0:0:0) :|: 1 > -1 * x5:0:0:0 && x3:0:0:0 < 1 && x6:0:0:0 < 0 && x4:0:0:0 <= x3:0:0:0 ---------------------------------------- (53) PolynomialOrderProcessor (EQUIVALENT) Found the following polynomial interpretation: [f8(x, x1, x2)] = -x The following rules are decreasing: f8(x41:0:0:0:0, x42:0:0:0:0, x43:0:0:0:0) -> f8(x41:0:0:0:0 + 1, x42:0:0:0:0 + (x41:0:0:0:0 + 1), x43:0:0:0:0) :|: 1 > -1 * x43:0:0:0:0 && x41:0:0:0:0 < 1 && x66:0:0:0:0 > 0 && x42:0:0:0:0 <= x41:0:0:0:0 f8(x3:0:0:0, x4:0:0:0, x5:0:0:0) -> f8(x3:0:0:0 + 1, x4:0:0:0 + (x3:0:0:0 + 1), x5:0:0:0) :|: 1 > -1 * x5:0:0:0 && x3:0:0:0 < 1 && x6:0:0:0 < 0 && x4:0:0:0 <= x3:0:0:0 The following rules are bounded: f8(x41:0:0:0:0, x42:0:0:0:0, x43:0:0:0:0) -> f8(x41:0:0:0:0 + 1, x42:0:0:0:0 + (x41:0:0:0:0 + 1), x43:0:0:0:0) :|: 1 > -1 * x43:0:0:0:0 && x41:0:0:0:0 < 1 && x66:0:0:0:0 > 0 && x42:0:0:0:0 <= x41:0:0:0:0 f8(x3:0:0:0, x4:0:0:0, x5:0:0:0) -> f8(x3:0:0:0 + 1, x4:0:0:0 + (x3:0:0:0 + 1), x5:0:0:0) :|: 1 > -1 * x5:0:0:0 && x3:0:0:0 < 1 && x6:0:0:0 < 0 && x4:0:0:0 <= x3:0:0:0 ---------------------------------------- (54) YES