We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(1)).
Strict Trs:
{ app(nil(), YS) -> YS
, app(cons(X), YS) -> cons(X)
, from(X) -> cons(X)
, zWadr(XS, nil()) -> nil()
, zWadr(nil(), YS) -> nil()
, zWadr(cons(X), cons(Y)) -> cons(app(Y, cons(X)))
, prefix(L) -> cons(nil()) }
Obligation:
runtime complexity
Answer:
YES(O(1),O(1))
The input is overlay and right-linear. Switching to innermost
rewriting.
We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(1)).
Strict Trs:
{ app(nil(), YS) -> YS
, app(cons(X), YS) -> cons(X)
, from(X) -> cons(X)
, zWadr(XS, nil()) -> nil()
, zWadr(nil(), YS) -> nil()
, zWadr(cons(X), cons(Y)) -> cons(app(Y, cons(X)))
, prefix(L) -> cons(nil()) }
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(1))
We add the following weak dependency pairs:
Strict DPs:
{ app^#(nil(), YS) -> c_1()
, app^#(cons(X), YS) -> c_2()
, from^#(X) -> c_3()
, zWadr^#(XS, nil()) -> c_4()
, zWadr^#(nil(), YS) -> c_5()
, zWadr^#(cons(X), cons(Y)) -> c_6(app^#(Y, cons(X)))
, prefix^#(L) -> c_7() }
and mark the set of starting terms.
We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(1)).
Strict DPs:
{ app^#(nil(), YS) -> c_1()
, app^#(cons(X), YS) -> c_2()
, from^#(X) -> c_3()
, zWadr^#(XS, nil()) -> c_4()
, zWadr^#(nil(), YS) -> c_5()
, zWadr^#(cons(X), cons(Y)) -> c_6(app^#(Y, cons(X)))
, prefix^#(L) -> c_7() }
Strict Trs:
{ app(nil(), YS) -> YS
, app(cons(X), YS) -> cons(X)
, from(X) -> cons(X)
, zWadr(XS, nil()) -> nil()
, zWadr(nil(), YS) -> nil()
, zWadr(cons(X), cons(Y)) -> cons(app(Y, cons(X)))
, prefix(L) -> cons(nil()) }
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(1))
No rule is usable, rules are removed from the input problem.
We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(1)).
Strict DPs:
{ app^#(nil(), YS) -> c_1()
, app^#(cons(X), YS) -> c_2()
, from^#(X) -> c_3()
, zWadr^#(XS, nil()) -> c_4()
, zWadr^#(nil(), YS) -> c_5()
, zWadr^#(cons(X), cons(Y)) -> c_6(app^#(Y, cons(X)))
, prefix^#(L) -> c_7() }
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(1))
The weightgap principle applies (using the following constant
growth matrix-interpretation)
The following argument positions are usable:
Uargs(c_6) = {1}
TcT has computed the following constructor-restricted matrix
interpretation.
[nil] = [0]
[0]
[cons](x1) = [0]
[0]
[app^#](x1, x2) = [0]
[0]
[c_1] = [0]
[0]
[c_2] = [0]
[0]
[from^#](x1) = [1]
[0]
[c_3] = [0]
[0]
[zWadr^#](x1, x2) = [0]
[0]
[c_4] = [0]
[0]
[c_5] = [0]
[0]
[c_6](x1) = [1 0] x1 + [0]
[0 1] [0]
[prefix^#](x1) = [2]
[0]
[c_7] = [0]
[0]
The order satisfies the following ordering constraints:
[app^#(nil(), YS)] = [0]
[0]
>= [0]
[0]
= [c_1()]
[app^#(cons(X), YS)] = [0]
[0]
>= [0]
[0]
= [c_2()]
[from^#(X)] = [1]
[0]
> [0]
[0]
= [c_3()]
[zWadr^#(XS, nil())] = [0]
[0]
>= [0]
[0]
= [c_4()]
[zWadr^#(nil(), YS)] = [0]
[0]
>= [0]
[0]
= [c_5()]
[zWadr^#(cons(X), cons(Y))] = [0]
[0]
>= [0]
[0]
= [c_6(app^#(Y, cons(X)))]
[prefix^#(L)] = [2]
[0]
> [0]
[0]
= [c_7()]
Further, it can be verified that all rules not oriented are covered by the weightgap condition.
We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(1)).
Strict DPs:
{ app^#(nil(), YS) -> c_1()
, app^#(cons(X), YS) -> c_2()
, zWadr^#(XS, nil()) -> c_4()
, zWadr^#(nil(), YS) -> c_5()
, zWadr^#(cons(X), cons(Y)) -> c_6(app^#(Y, cons(X))) }
Weak DPs:
{ from^#(X) -> c_3()
, prefix^#(L) -> c_7() }
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(1))
We estimate the number of application of {1,2,3,4} by applications
of Pre({1,2,3,4}) = {5}. Here rules are labeled as follows:
DPs:
{ 1: app^#(nil(), YS) -> c_1()
, 2: app^#(cons(X), YS) -> c_2()
, 3: zWadr^#(XS, nil()) -> c_4()
, 4: zWadr^#(nil(), YS) -> c_5()
, 5: zWadr^#(cons(X), cons(Y)) -> c_6(app^#(Y, cons(X)))
, 6: from^#(X) -> c_3()
, 7: prefix^#(L) -> c_7() }
We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(1)).
Strict DPs: { zWadr^#(cons(X), cons(Y)) -> c_6(app^#(Y, cons(X))) }
Weak DPs:
{ app^#(nil(), YS) -> c_1()
, app^#(cons(X), YS) -> c_2()
, from^#(X) -> c_3()
, zWadr^#(XS, nil()) -> c_4()
, zWadr^#(nil(), YS) -> c_5()
, prefix^#(L) -> c_7() }
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(1))
We estimate the number of application of {1} by applications of
Pre({1}) = {}. Here rules are labeled as follows:
DPs:
{ 1: zWadr^#(cons(X), cons(Y)) -> c_6(app^#(Y, cons(X)))
, 2: app^#(nil(), YS) -> c_1()
, 3: app^#(cons(X), YS) -> c_2()
, 4: from^#(X) -> c_3()
, 5: zWadr^#(XS, nil()) -> c_4()
, 6: zWadr^#(nil(), YS) -> c_5()
, 7: prefix^#(L) -> c_7() }
We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(1)).
Weak DPs:
{ app^#(nil(), YS) -> c_1()
, app^#(cons(X), YS) -> c_2()
, from^#(X) -> c_3()
, zWadr^#(XS, nil()) -> c_4()
, zWadr^#(nil(), YS) -> c_5()
, zWadr^#(cons(X), cons(Y)) -> c_6(app^#(Y, cons(X)))
, prefix^#(L) -> c_7() }
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(1))
The following weak DPs constitute a sub-graph of the DG that is
closed under successors. The DPs are removed.
{ app^#(nil(), YS) -> c_1()
, app^#(cons(X), YS) -> c_2()
, from^#(X) -> c_3()
, zWadr^#(XS, nil()) -> c_4()
, zWadr^#(nil(), YS) -> c_5()
, zWadr^#(cons(X), cons(Y)) -> c_6(app^#(Y, cons(X)))
, prefix^#(L) -> c_7() }
We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(1)).
Rules: Empty
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(1))
Empty rules are trivially bounded
Hurray, we answered YES(O(1),O(1))