/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: 794c25de1cacf0d048858bcd21c9a779e1221865 marcel 20200619 unpublished dirty The runtime complexity of the given CpxIntTrs could be proven to be BOUNDS(1, max(5 + -1 * Arg_0 + 2 * Arg_4 + -1 * Arg_6, 6)). (0) CpxIntTrs (1) Koat2 Proof [FINISHED, 1920 ms] (2) BOUNDS(1, max(5 + -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, 7+-(Arg_0)-Arg_6+2*(-1+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: 5: lbl71->lbl71 3: lbl71->stop 4: lbl71->stop 2: start->lbl71 0: start->stop 1: start->stop 6: start0->start Timebounds: Overall timebound: max([6, 7+-(Arg_0)-Arg_6+2*(-1+Arg_4)]) {O(n)} 3: lbl71->stop: 1 {O(1)} 4: lbl71->stop: 1 {O(1)} 5: lbl71->lbl71: max([0, 1+-(Arg_0)-Arg_6+2*(-1+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, 7+-(Arg_0)-Arg_6+2*(-1+Arg_4)]) {O(n)} 3: lbl71->stop: 1 {O(1)} 4: lbl71->stop: 1 {O(1)} 5: lbl71->lbl71: max([0, 1+-(Arg_0)-Arg_6+2*(-1+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, 1+-(Arg_0)-Arg_6+2*(-1+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, 1+-(Arg_0)-Arg_6+2*(-1+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(5 + -1 * Arg_0 + 2 * Arg_4 + -1 * Arg_6, 6))