/export/starexec/sandbox/solver/bin/starexec_run_rcdcRelativeAlsoLower /export/starexec/sandbox/benchmark/theBenchmark.xml /export/starexec/sandbox/output/output_files -------------------------------------------------------------------------------- WORST_CASE(?, O(n^1)) proof of /export/starexec/sandbox/benchmark/theBenchmark.xml # AProVE Commit ID: 794c25de1cacf0d048858bcd21c9a779e1221865 marcel 20200619 unpublished dirty The Derivational Complexity (innermost) of the given DCpxTrs could be proven to be BOUNDS(1, n^1). (0) DCpxTrs (1) DerivationalComplexityToRuntimeComplexityProof [BOTH BOUNDS(ID, ID), 0 ms] (2) CpxRelTRS (3) SInnermostTerminationProof [BOTH CONCRETE BOUNDS(ID, ID), 197 ms] (4) CpxRelTRS (5) RelTrsToTrsProof [UPPER BOUND(ID), 0 ms] (6) CpxTRS (7) CpxTrsMatchBoundsTAProof [FINISHED, 393 ms] (8) BOUNDS(1, n^1) ---------------------------------------- (0) Obligation: The Derivational Complexity (innermost) of the given DCpxTrs could be proven to be BOUNDS(1, n^1). The TRS R consists of the following rules: filter(cons(X), 0, M) -> cons(0) filter(cons(X), s(N), M) -> cons(X) sieve(cons(0)) -> cons(0) sieve(cons(s(N))) -> cons(s(N)) nats(N) -> cons(N) zprimes -> sieve(nats(s(s(0)))) S is empty. Rewrite Strategy: INNERMOST ---------------------------------------- (1) DerivationalComplexityToRuntimeComplexityProof (BOTH BOUNDS(ID, ID)) The following rules have been added to S to convert the given derivational complexity problem to a runtime complexity problem: encArg(cons(x_1)) -> cons(encArg(x_1)) encArg(0) -> 0 encArg(s(x_1)) -> s(encArg(x_1)) encArg(cons_filter(x_1, x_2, x_3)) -> filter(encArg(x_1), encArg(x_2), encArg(x_3)) encArg(cons_sieve(x_1)) -> sieve(encArg(x_1)) encArg(cons_nats(x_1)) -> nats(encArg(x_1)) encArg(cons_zprimes) -> zprimes encode_filter(x_1, x_2, x_3) -> filter(encArg(x_1), encArg(x_2), encArg(x_3)) encode_cons(x_1) -> cons(encArg(x_1)) encode_0 -> 0 encode_s(x_1) -> s(encArg(x_1)) encode_sieve(x_1) -> sieve(encArg(x_1)) encode_nats(x_1) -> nats(encArg(x_1)) encode_zprimes -> zprimes ---------------------------------------- (2) Obligation: The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(1, n^1). The TRS R consists of the following rules: filter(cons(X), 0, M) -> cons(0) filter(cons(X), s(N), M) -> cons(X) sieve(cons(0)) -> cons(0) sieve(cons(s(N))) -> cons(s(N)) nats(N) -> cons(N) zprimes -> sieve(nats(s(s(0)))) The (relative) TRS S consists of the following rules: encArg(cons(x_1)) -> cons(encArg(x_1)) encArg(0) -> 0 encArg(s(x_1)) -> s(encArg(x_1)) encArg(cons_filter(x_1, x_2, x_3)) -> filter(encArg(x_1), encArg(x_2), encArg(x_3)) encArg(cons_sieve(x_1)) -> sieve(encArg(x_1)) encArg(cons_nats(x_1)) -> nats(encArg(x_1)) encArg(cons_zprimes) -> zprimes encode_filter(x_1, x_2, x_3) -> filter(encArg(x_1), encArg(x_2), encArg(x_3)) encode_cons(x_1) -> cons(encArg(x_1)) encode_0 -> 0 encode_s(x_1) -> s(encArg(x_1)) encode_sieve(x_1) -> sieve(encArg(x_1)) encode_nats(x_1) -> nats(encArg(x_1)) encode_zprimes -> zprimes Rewrite Strategy: INNERMOST ---------------------------------------- (3) SInnermostTerminationProof (BOTH CONCRETE BOUNDS(ID, ID)) proved innermost termination of relative rules ---------------------------------------- (4) Obligation: The Runtime Complexity (innermost) of the given CpxRelTRS could be proven to be BOUNDS(1, n^1). The TRS R consists of the following rules: filter(cons(X), 0, M) -> cons(0) filter(cons(X), s(N), M) -> cons(X) sieve(cons(0)) -> cons(0) sieve(cons(s(N))) -> cons(s(N)) nats(N) -> cons(N) zprimes -> sieve(nats(s(s(0)))) The (relative) TRS S consists of the following rules: encArg(cons(x_1)) -> cons(encArg(x_1)) encArg(0) -> 0 encArg(s(x_1)) -> s(encArg(x_1)) encArg(cons_filter(x_1, x_2, x_3)) -> filter(encArg(x_1), encArg(x_2), encArg(x_3)) encArg(cons_sieve(x_1)) -> sieve(encArg(x_1)) encArg(cons_nats(x_1)) -> nats(encArg(x_1)) encArg(cons_zprimes) -> zprimes encode_filter(x_1, x_2, x_3) -> filter(encArg(x_1), encArg(x_2), encArg(x_3)) encode_cons(x_1) -> cons(encArg(x_1)) encode_0 -> 0 encode_s(x_1) -> s(encArg(x_1)) encode_sieve(x_1) -> sieve(encArg(x_1)) encode_nats(x_1) -> nats(encArg(x_1)) encode_zprimes -> zprimes Rewrite Strategy: INNERMOST ---------------------------------------- (5) RelTrsToTrsProof (UPPER BOUND(ID)) transformed relative TRS to TRS ---------------------------------------- (6) Obligation: The Runtime Complexity (innermost) of the given CpxTRS could be proven to be BOUNDS(1, n^1). The TRS R consists of the following rules: filter(cons(X), 0, M) -> cons(0) filter(cons(X), s(N), M) -> cons(X) sieve(cons(0)) -> cons(0) sieve(cons(s(N))) -> cons(s(N)) nats(N) -> cons(N) zprimes -> sieve(nats(s(s(0)))) encArg(cons(x_1)) -> cons(encArg(x_1)) encArg(0) -> 0 encArg(s(x_1)) -> s(encArg(x_1)) encArg(cons_filter(x_1, x_2, x_3)) -> filter(encArg(x_1), encArg(x_2), encArg(x_3)) encArg(cons_sieve(x_1)) -> sieve(encArg(x_1)) encArg(cons_nats(x_1)) -> nats(encArg(x_1)) encArg(cons_zprimes) -> zprimes encode_filter(x_1, x_2, x_3) -> filter(encArg(x_1), encArg(x_2), encArg(x_3)) encode_cons(x_1) -> cons(encArg(x_1)) encode_0 -> 0 encode_s(x_1) -> s(encArg(x_1)) encode_sieve(x_1) -> sieve(encArg(x_1)) encode_nats(x_1) -> nats(encArg(x_1)) encode_zprimes -> zprimes S is empty. Rewrite Strategy: INNERMOST ---------------------------------------- (7) CpxTrsMatchBoundsTAProof (FINISHED) A linear upper bound on the runtime complexity of the TRS R could be shown with a Match-Bound[TAB_LEFTLINEAR,TAB_NONLEFTLINEAR] (for contructor-based start-terms) of 3. The compatible tree automaton used to show the Match-Boundedness (for constructor-based start-terms) is represented by: final states : [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] transitions: cons0(0) -> 0 00() -> 0 s0(0) -> 0 cons_filter0(0, 0, 0) -> 0 cons_sieve0(0) -> 0 cons_nats0(0) -> 0 cons_zprimes0() -> 0 filter0(0, 0, 0) -> 1 sieve0(0) -> 2 nats0(0) -> 3 zprimes0() -> 4 encArg0(0) -> 5 encode_filter0(0, 0, 0) -> 6 encode_cons0(0) -> 7 encode_00() -> 8 encode_s0(0) -> 9 encode_sieve0(0) -> 10 encode_nats0(0) -> 11 encode_zprimes0() -> 12 01() -> 13 cons1(13) -> 1 cons1(0) -> 1 cons1(13) -> 2 s1(0) -> 14 cons1(14) -> 2 cons1(0) -> 3 01() -> 18 s1(18) -> 17 s1(17) -> 16 nats1(16) -> 15 sieve1(15) -> 4 encArg1(0) -> 19 cons1(19) -> 5 01() -> 5 encArg1(0) -> 20 s1(20) -> 5 encArg1(0) -> 21 encArg1(0) -> 22 encArg1(0) -> 23 filter1(21, 22, 23) -> 5 encArg1(0) -> 24 sieve1(24) -> 5 encArg1(0) -> 25 nats1(25) -> 5 zprimes1() -> 5 filter1(21, 22, 23) -> 6 cons1(19) -> 7 01() -> 8 s1(20) -> 9 sieve1(24) -> 10 nats1(25) -> 11 zprimes1() -> 12 cons2(25) -> 5 cons2(25) -> 11 cons2(16) -> 15 02() -> 29 s2(29) -> 28 s2(28) -> 27 nats2(27) -> 26 sieve2(26) -> 5 sieve2(26) -> 12 cons1(19) -> 19 cons1(19) -> 20 cons1(19) -> 21 cons1(19) -> 22 cons1(19) -> 23 cons1(19) -> 24 cons1(19) -> 25 01() -> 19 01() -> 20 01() -> 21 01() -> 22 01() -> 23 01() -> 24 01() -> 25 s1(20) -> 19 s1(20) -> 20 s1(20) -> 21 s1(20) -> 22 s1(20) -> 23 s1(20) -> 24 s1(20) -> 25 filter1(21, 22, 23) -> 19 filter1(21, 22, 23) -> 20 filter1(21, 22, 23) -> 21 filter1(21, 22, 23) -> 22 filter1(21, 22, 23) -> 23 filter1(21, 22, 23) -> 24 filter1(21, 22, 23) -> 25 sieve1(24) -> 19 sieve1(24) -> 20 sieve1(24) -> 21 sieve1(24) -> 22 sieve1(24) -> 23 sieve1(24) -> 24 sieve1(24) -> 25 nats1(25) -> 19 nats1(25) -> 20 nats1(25) -> 21 nats1(25) -> 22 nats1(25) -> 23 nats1(25) -> 24 nats1(25) -> 25 zprimes1() -> 19 zprimes1() -> 20 zprimes1() -> 21 zprimes1() -> 22 zprimes1() -> 23 zprimes1() -> 24 zprimes1() -> 25 02() -> 30 cons2(30) -> 5 cons2(30) -> 6 cons2(30) -> 19 cons2(30) -> 20 cons2(30) -> 21 cons2(30) -> 22 cons2(30) -> 23 cons2(30) -> 24 cons2(30) -> 25 cons2(19) -> 5 cons2(19) -> 6 cons2(19) -> 19 cons2(19) -> 20 cons2(19) -> 21 cons2(19) -> 22 cons2(19) -> 23 cons2(19) -> 24 cons2(19) -> 25 cons2(30) -> 10 s2(20) -> 31 cons2(31) -> 5 cons2(31) -> 10 cons2(31) -> 19 cons2(31) -> 20 cons2(31) -> 21 cons2(31) -> 22 cons2(31) -> 23 cons2(31) -> 24 cons2(31) -> 25 cons2(25) -> 19 cons2(25) -> 20 cons2(25) -> 21 cons2(25) -> 22 cons2(25) -> 23 cons2(25) -> 24 cons2(25) -> 25 sieve2(26) -> 19 sieve2(26) -> 20 sieve2(26) -> 21 sieve2(26) -> 22 sieve2(26) -> 23 sieve2(26) -> 24 sieve2(26) -> 25 s2(17) -> 31 cons2(31) -> 4 cons3(27) -> 26 cons2(31) -> 6 cons2(25) -> 6 s3(28) -> 32 cons3(32) -> 5 cons3(32) -> 12 cons3(32) -> 19 cons3(32) -> 20 cons3(32) -> 21 cons3(32) -> 22 cons3(32) -> 23 cons3(32) -> 24 cons3(32) -> 25 cons2(32) -> 5 cons2(32) -> 6 cons2(32) -> 19 cons2(32) -> 20 cons2(32) -> 21 cons2(32) -> 22 cons2(32) -> 23 cons2(32) -> 24 cons2(32) -> 25 s2(28) -> 31 ---------------------------------------- (8) BOUNDS(1, n^1)