/export/starexec/sandbox2/solver/bin/starexec_run_complexity /export/starexec/sandbox2/benchmark/theBenchmark.koat /export/starexec/sandbox2/output/output_files -------------------------------------------------------------------------------- WORST_CASE(?, O(n^1)) proof of /export/starexec/sandbox2/benchmark/theBenchmark.koat # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty The runtime complexity of the given CpxIntTrs could be proven to be BOUNDS(1, max(6 + -1 * Arg_0 + 2 * Arg_4 + -1 * Arg_6, 6)). (0) CpxIntTrs (1) Koat2 Proof [FINISHED, 2336 ms] (2) BOUNDS(1, max(6 + -1 * Arg_0 + 2 * Arg_4 + -1 * Arg_6, 6)) ---------------------------------------- (0) Obligation: Complexity Int TRS consisting of the following rules: start(A, B, C, D, E, F, G, H) -> Com_1(stop(A, B, C, D, E, F, G, H)) :|: A >= 101 && B >= C && B <= C && D >= E && D <= E && F >= G && F <= G && H >= A && H <= A start(A, B, C, D, E, F, G, H) -> Com_1(stop(A, B, C, D, E, F, G, H)) :|: G >= E + 1 && B >= C && B <= C && D >= E && D <= E && F >= G && F <= G && H >= A && H <= A start(A, B, C, D, E, F, G, H) -> Com_1(lbl71(A, H, C, D - 1, E, 1 + H, G, F)) :|: E >= G && 100 >= A && B >= C && B <= C && D >= E && D <= E && F >= G && F <= G && H >= A && H <= A lbl71(A, B, C, D, E, F, G, H) -> Com_1(stop(A, B, C, D, E, F, G, H)) :|: A + G + E >= B + 102 + D && E >= 1 + D && 100 >= A && E >= G && 2 * D + 2 + B >= A + G + E && 100 >= B && F >= B + 1 && F <= B + 1 && H + B + 1 + D >= A + G + E && H + B + 1 + D <= A + G + E lbl71(A, B, C, D, E, F, G, H) -> Com_1(stop(A, B, C, D, E, F, G, H)) :|: B >= D && E >= 1 + D && 100 >= A && E >= G && 2 * D + 2 + B >= A + G + E && 100 >= B && F >= B + 1 && F <= B + 1 && H + B + 1 + D >= A + G + E && H + B + 1 + D <= A + G + E lbl71(A, B, C, D, E, F, G, H) -> Com_1(lbl71(A, H, C, D - 1, E, 1 + H, G, F)) :|: D >= B + 1 && 101 + B + D >= A + G + E && E >= 1 + D && 100 >= A && E >= G && 2 * D + 2 + B >= A + G + E && 100 >= B && F >= B + 1 && F <= B + 1 && H + B + 1 + D >= A + G + E && H + B + 1 + D <= A + G + E start0(A, B, C, D, E, F, G, H) -> Com_1(start(A, C, C, E, E, G, G, A)) :|: TRUE The start-symbols are:[start0_8] ---------------------------------------- (1) Koat2 Proof (FINISHED) YES( ?, max([6, 6+-(Arg_0)-Arg_6+2*Arg_4]) {O(n)}) Initial Complexity Problem: Start: start0 Program_Vars: Arg_0, Arg_1, Arg_2, Arg_3, Arg_4, Arg_5, Arg_6, Arg_7 Temp_Vars: Locations: lbl71, start, start0, stop Transitions: lbl71(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4,Arg_5,Arg_6,Arg_7) -> lbl71(Arg_0,Arg_7,Arg_2,Arg_3-1,Arg_4,1+Arg_7,Arg_6,Arg_5):|:Arg_7 <= Arg_4 && Arg_7 <= 1+Arg_3 && Arg_6 <= Arg_4 && Arg_5 <= 1+Arg_1 && 1+Arg_1 <= Arg_5 && 1+Arg_3 <= Arg_4 && Arg_0 <= 100 && Arg_1+1 <= Arg_3 && Arg_0+Arg_6+Arg_4 <= 101+Arg_1+Arg_3 && 1+Arg_3 <= Arg_4 && Arg_0 <= 100 && Arg_6 <= Arg_4 && Arg_0+Arg_6+Arg_4 <= (2)*Arg_3+2+Arg_1 && Arg_1 <= 100 && Arg_5 <= Arg_1+1 && Arg_1+1 <= Arg_5 && Arg_7+Arg_1+1+Arg_3 <= Arg_0+Arg_6+Arg_4 && Arg_0+Arg_6+Arg_4 <= Arg_7+Arg_1+1+Arg_3 lbl71(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4,Arg_5,Arg_6,Arg_7) -> stop(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4,Arg_5,Arg_6,Arg_7):|:Arg_7 <= Arg_4 && Arg_7 <= 1+Arg_3 && Arg_6 <= Arg_4 && Arg_5 <= 1+Arg_1 && 1+Arg_1 <= Arg_5 && 1+Arg_3 <= Arg_4 && Arg_0 <= 100 && Arg_1+102+Arg_3 <= Arg_0+Arg_6+Arg_4 && 1+Arg_3 <= Arg_4 && Arg_0 <= 100 && Arg_6 <= Arg_4 && Arg_0+Arg_6+Arg_4 <= (2)*Arg_3+2+Arg_1 && Arg_1 <= 100 && Arg_5 <= Arg_1+1 && Arg_1+1 <= Arg_5 && Arg_7+Arg_1+1+Arg_3 <= Arg_0+Arg_6+Arg_4 && Arg_0+Arg_6+Arg_4 <= Arg_7+Arg_1+1+Arg_3 lbl71(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4,Arg_5,Arg_6,Arg_7) -> stop(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4,Arg_5,Arg_6,Arg_7):|:Arg_7 <= Arg_4 && Arg_7 <= 1+Arg_3 && Arg_6 <= Arg_4 && Arg_5 <= 1+Arg_1 && 1+Arg_1 <= Arg_5 && 1+Arg_3 <= Arg_4 && Arg_0 <= 100 && Arg_3 <= Arg_1 && 1+Arg_3 <= Arg_4 && Arg_0 <= 100 && Arg_6 <= Arg_4 && Arg_0+Arg_6+Arg_4 <= (2)*Arg_3+2+Arg_1 && Arg_1 <= 100 && Arg_5 <= Arg_1+1 && Arg_1+1 <= Arg_5 && Arg_7+Arg_1+1+Arg_3 <= Arg_0+Arg_6+Arg_4 && Arg_0+Arg_6+Arg_4 <= Arg_7+Arg_1+1+Arg_3 start(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4,Arg_5,Arg_6,Arg_7) -> lbl71(Arg_0,Arg_7,Arg_2,Arg_3-1,Arg_4,1+Arg_7,Arg_6,Arg_5):|:Arg_7 <= Arg_0 && Arg_0 <= Arg_7 && Arg_6 <= Arg_5 && Arg_5 <= Arg_6 && Arg_4 <= Arg_3 && Arg_3 <= Arg_4 && Arg_2 <= Arg_1 && Arg_1 <= Arg_2 && Arg_6 <= Arg_4 && Arg_0 <= 100 && Arg_1 <= Arg_2 && Arg_2 <= Arg_1 && Arg_3 <= Arg_4 && Arg_4 <= Arg_3 && Arg_5 <= Arg_6 && Arg_6 <= Arg_5 && Arg_7 <= Arg_0 && Arg_0 <= Arg_7 start(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4,Arg_5,Arg_6,Arg_7) -> stop(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4,Arg_5,Arg_6,Arg_7):|:Arg_7 <= Arg_0 && Arg_0 <= Arg_7 && Arg_6 <= Arg_5 && Arg_5 <= Arg_6 && Arg_4 <= Arg_3 && Arg_3 <= Arg_4 && Arg_2 <= Arg_1 && Arg_1 <= Arg_2 && 101 <= Arg_0 && Arg_1 <= Arg_2 && Arg_2 <= Arg_1 && Arg_3 <= Arg_4 && Arg_4 <= Arg_3 && Arg_5 <= Arg_6 && Arg_6 <= Arg_5 && Arg_7 <= Arg_0 && Arg_0 <= Arg_7 start(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4,Arg_5,Arg_6,Arg_7) -> stop(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4,Arg_5,Arg_6,Arg_7):|:Arg_7 <= Arg_0 && Arg_0 <= Arg_7 && Arg_6 <= Arg_5 && Arg_5 <= Arg_6 && Arg_4 <= Arg_3 && Arg_3 <= Arg_4 && Arg_2 <= Arg_1 && Arg_1 <= Arg_2 && Arg_4+1 <= Arg_6 && Arg_1 <= Arg_2 && Arg_2 <= Arg_1 && Arg_3 <= Arg_4 && Arg_4 <= Arg_3 && Arg_5 <= Arg_6 && Arg_6 <= Arg_5 && Arg_7 <= Arg_0 && Arg_0 <= Arg_7 start0(Arg_0,Arg_1,Arg_2,Arg_3,Arg_4,Arg_5,Arg_6,Arg_7) -> start(Arg_0,Arg_2,Arg_2,Arg_4,Arg_4,Arg_6,Arg_6,Arg_0):|: Timebounds: Overall timebound: max([6, 6+-(Arg_0)-Arg_6+2*Arg_4]) {O(n)} 3: lbl71->stop: 1 {O(1)} 4: lbl71->stop: 1 {O(1)} 5: lbl71->lbl71: max([0, -(Arg_0)-Arg_6+2*Arg_4]) {O(n)} 0: start->stop: 1 {O(1)} 1: start->stop: 1 {O(1)} 2: start->lbl71: 1 {O(1)} 6: start0->start: 1 {O(1)} Costbounds: Overall costbound: max([6, 6+-(Arg_0)-Arg_6+2*Arg_4]) {O(n)} 3: lbl71->stop: 1 {O(1)} 4: lbl71->stop: 1 {O(1)} 5: lbl71->lbl71: max([0, -(Arg_0)-Arg_6+2*Arg_4]) {O(n)} 0: start->stop: 1 {O(1)} 1: start->stop: 1 {O(1)} 2: start->lbl71: 1 {O(1)} 6: start0->start: 1 {O(1)} Sizebounds: `Lower: 3: lbl71->stop, Arg_0: Arg_0 {O(n)} 3: lbl71->stop, Arg_1: min([Arg_0, min([Arg_6, min([Arg_6, -(-1-Arg_0)])])]) {O(n)} 3: lbl71->stop, Arg_2: Arg_2 {O(n)} 3: lbl71->stop, Arg_3: 100 {O(1)} 3: lbl71->stop, Arg_4: 101 {O(1)} 3: lbl71->stop, Arg_5: min([Arg_6, -(-1-Arg_0)]) {O(n)} 3: lbl71->stop, Arg_6: Arg_6 {O(n)} 3: lbl71->stop, Arg_7: 101 {O(1)} 4: lbl71->stop, Arg_0: Arg_0 {O(n)} 4: lbl71->stop, Arg_1: min([Arg_0, min([Arg_6, min([Arg_6, -(-1-Arg_0)])])]) {O(n)} 4: lbl71->stop, Arg_2: Arg_2 {O(n)} 4: lbl71->stop, Arg_3: min([-(1-Arg_4), -(1+-(Arg_4)+max([0, -(Arg_0)-Arg_6+2*Arg_4]))]) {O(n)} 4: lbl71->stop, Arg_4: Arg_4 {O(n)} 4: lbl71->stop, Arg_5: min([Arg_6, -(-1-Arg_0)]) {O(n)} 4: lbl71->stop, Arg_6: Arg_6 {O(n)} 4: lbl71->stop, Arg_7: min([Arg_6, min([Arg_6, -(-1-Arg_0)])]) {O(n)} 5: lbl71->lbl71, Arg_0: Arg_0 {O(n)} 5: lbl71->lbl71, Arg_1: min([Arg_6, min([Arg_6, -(-1-Arg_0)])]) {O(n)} 5: lbl71->lbl71, Arg_2: Arg_2 {O(n)} 5: lbl71->lbl71, Arg_3: -1+Arg_4-max([0, -(Arg_0)-Arg_6+2*Arg_4]) {O(n)} 5: lbl71->lbl71, Arg_4: Arg_4 {O(n)} 5: lbl71->lbl71, Arg_5: min([Arg_6, -(-1-Arg_0)]) {O(n)} 5: lbl71->lbl71, Arg_6: Arg_6 {O(n)} 5: lbl71->lbl71, Arg_7: min([Arg_6, -(-1-Arg_0)]) {O(n)} 0: start->stop, Arg_0: 101 {O(1)} 0: start->stop, Arg_1: Arg_2 {O(n)} 0: start->stop, Arg_2: Arg_2 {O(n)} 0: start->stop, Arg_3: Arg_4 {O(n)} 0: start->stop, Arg_4: Arg_4 {O(n)} 0: start->stop, Arg_5: Arg_6 {O(n)} 0: start->stop, Arg_6: Arg_6 {O(n)} 0: start->stop, Arg_7: 101 {O(1)} 1: start->stop, Arg_0: Arg_0 {O(n)} 1: start->stop, Arg_1: Arg_2 {O(n)} 1: start->stop, Arg_2: Arg_2 {O(n)} 1: start->stop, Arg_3: Arg_4 {O(n)} 1: start->stop, Arg_4: Arg_4 {O(n)} 1: start->stop, Arg_5: Arg_6 {O(n)} 1: start->stop, Arg_6: Arg_6 {O(n)} 1: start->stop, Arg_7: Arg_0 {O(n)} 2: start->lbl71, Arg_0: Arg_0 {O(n)} 2: start->lbl71, Arg_1: Arg_0 {O(n)} 2: start->lbl71, Arg_2: Arg_2 {O(n)} 2: start->lbl71, Arg_3: -1+Arg_4 {O(n)} 2: start->lbl71, Arg_4: Arg_4 {O(n)} 2: start->lbl71, Arg_5: 1+Arg_0 {O(n)} 2: start->lbl71, Arg_6: Arg_6 {O(n)} 2: start->lbl71, Arg_7: Arg_6 {O(n)} 6: start0->start, Arg_0: Arg_0 {O(n)} 6: start0->start, Arg_1: Arg_2 {O(n)} 6: start0->start, Arg_2: Arg_2 {O(n)} 6: start0->start, Arg_3: Arg_4 {O(n)} 6: start0->start, Arg_4: Arg_4 {O(n)} 6: start0->start, Arg_5: Arg_6 {O(n)} 6: start0->start, Arg_6: Arg_6 {O(n)} 6: start0->start, Arg_7: Arg_0 {O(n)} `Upper: 3: lbl71->stop, Arg_0: 100 {O(1)} 3: lbl71->stop, Arg_1: 100 {O(1)} 3: lbl71->stop, Arg_2: Arg_2 {O(n)} 3: lbl71->stop, Arg_3: -1+Arg_4 {O(n)} 3: lbl71->stop, Arg_4: Arg_4 {O(n)} 3: lbl71->stop, Arg_5: 101 {O(1)} 3: lbl71->stop, Arg_6: Arg_6 {O(n)} 3: lbl71->stop, Arg_7: max([101, Arg_6]) {O(n)} 4: lbl71->stop, Arg_0: 100 {O(1)} 4: lbl71->stop, Arg_1: 100 {O(1)} 4: lbl71->stop, Arg_2: Arg_2 {O(n)} 4: lbl71->stop, Arg_3: 100 {O(1)} 4: lbl71->stop, Arg_4: Arg_4 {O(n)} 4: lbl71->stop, Arg_5: 101 {O(1)} 4: lbl71->stop, Arg_6: Arg_6 {O(n)} 4: lbl71->stop, Arg_7: 101 {O(1)} 5: lbl71->lbl71, Arg_0: 100 {O(1)} 5: lbl71->lbl71, Arg_1: 100 {O(1)} 5: lbl71->lbl71, Arg_2: Arg_2 {O(n)} 5: lbl71->lbl71, Arg_3: -1+Arg_4 {O(n)} 5: lbl71->lbl71, Arg_4: Arg_4 {O(n)} 5: lbl71->lbl71, Arg_5: 101 {O(1)} 5: lbl71->lbl71, Arg_6: Arg_6 {O(n)} 5: lbl71->lbl71, Arg_7: 101 {O(1)} 0: start->stop, Arg_0: Arg_0 {O(n)} 0: start->stop, Arg_1: Arg_2 {O(n)} 0: start->stop, Arg_2: Arg_2 {O(n)} 0: start->stop, Arg_3: Arg_4 {O(n)} 0: start->stop, Arg_4: Arg_4 {O(n)} 0: start->stop, Arg_5: Arg_6 {O(n)} 0: start->stop, Arg_6: Arg_6 {O(n)} 0: start->stop, Arg_7: Arg_0 {O(n)} 1: start->stop, Arg_0: Arg_0 {O(n)} 1: start->stop, Arg_1: Arg_2 {O(n)} 1: start->stop, Arg_2: Arg_2 {O(n)} 1: start->stop, Arg_3: Arg_4 {O(n)} 1: start->stop, Arg_4: Arg_4 {O(n)} 1: start->stop, Arg_5: Arg_6 {O(n)} 1: start->stop, Arg_6: Arg_6 {O(n)} 1: start->stop, Arg_7: Arg_0 {O(n)} 2: start->lbl71, Arg_0: 100 {O(1)} 2: start->lbl71, Arg_1: 100 {O(1)} 2: start->lbl71, Arg_2: Arg_2 {O(n)} 2: start->lbl71, Arg_3: -1+Arg_4 {O(n)} 2: start->lbl71, Arg_4: Arg_4 {O(n)} 2: start->lbl71, Arg_5: 101 {O(1)} 2: start->lbl71, Arg_6: Arg_6 {O(n)} 2: start->lbl71, Arg_7: Arg_6 {O(n)} 6: start0->start, Arg_0: Arg_0 {O(n)} 6: start0->start, Arg_1: Arg_2 {O(n)} 6: start0->start, Arg_2: Arg_2 {O(n)} 6: start0->start, Arg_3: Arg_4 {O(n)} 6: start0->start, Arg_4: Arg_4 {O(n)} 6: start0->start, Arg_5: Arg_6 {O(n)} 6: start0->start, Arg_6: Arg_6 {O(n)} 6: start0->start, Arg_7: Arg_0 {O(n)} ---------------------------------------- (2) BOUNDS(1, max(6 + -1 * Arg_0 + 2 * Arg_4 + -1 * Arg_6, 6))