We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(n^2)).
Strict Trs:
{ from(X) -> cons(X, n__from(s(X)))
, from(X) -> n__from(X)
, head(cons(X, XS)) -> X
, 2nd(cons(X, XS)) -> head(activate(XS))
, activate(X) -> X
, activate(n__from(X)) -> from(X)
, activate(n__take(X1, X2)) -> take(X1, X2)
, take(X1, X2) -> n__take(X1, X2)
, take(s(N), cons(X, XS)) -> cons(X, n__take(N, activate(XS)))
, take(0(), XS) -> nil()
, sel(s(N), cons(X, XS)) -> sel(N, activate(XS))
, sel(0(), cons(X, XS)) -> X }
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(n^2))
We add the following weak dependency pairs:
Strict DPs:
{ from^#(X) -> c_1()
, from^#(X) -> c_2()
, head^#(cons(X, XS)) -> c_3()
, 2nd^#(cons(X, XS)) -> c_4(head^#(activate(XS)))
, activate^#(X) -> c_5()
, activate^#(n__from(X)) -> c_6(from^#(X))
, activate^#(n__take(X1, X2)) -> c_7(take^#(X1, X2))
, take^#(X1, X2) -> c_8()
, take^#(s(N), cons(X, XS)) -> c_9(activate^#(XS))
, take^#(0(), XS) -> c_10()
, sel^#(s(N), cons(X, XS)) -> c_11(sel^#(N, activate(XS)))
, sel^#(0(), cons(X, XS)) -> c_12() }
and mark the set of starting terms.
We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(n^2)).
Strict DPs:
{ from^#(X) -> c_1()
, from^#(X) -> c_2()
, head^#(cons(X, XS)) -> c_3()
, 2nd^#(cons(X, XS)) -> c_4(head^#(activate(XS)))
, activate^#(X) -> c_5()
, activate^#(n__from(X)) -> c_6(from^#(X))
, activate^#(n__take(X1, X2)) -> c_7(take^#(X1, X2))
, take^#(X1, X2) -> c_8()
, take^#(s(N), cons(X, XS)) -> c_9(activate^#(XS))
, take^#(0(), XS) -> c_10()
, sel^#(s(N), cons(X, XS)) -> c_11(sel^#(N, activate(XS)))
, sel^#(0(), cons(X, XS)) -> c_12() }
Strict Trs:
{ from(X) -> cons(X, n__from(s(X)))
, from(X) -> n__from(X)
, head(cons(X, XS)) -> X
, 2nd(cons(X, XS)) -> head(activate(XS))
, activate(X) -> X
, activate(n__from(X)) -> from(X)
, activate(n__take(X1, X2)) -> take(X1, X2)
, take(X1, X2) -> n__take(X1, X2)
, take(s(N), cons(X, XS)) -> cons(X, n__take(N, activate(XS)))
, take(0(), XS) -> nil()
, sel(s(N), cons(X, XS)) -> sel(N, activate(XS))
, sel(0(), cons(X, XS)) -> X }
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(n^2))
We replace rewrite rules by usable rules:
Strict Usable Rules:
{ from(X) -> cons(X, n__from(s(X)))
, from(X) -> n__from(X)
, activate(X) -> X
, activate(n__from(X)) -> from(X)
, activate(n__take(X1, X2)) -> take(X1, X2)
, take(X1, X2) -> n__take(X1, X2)
, take(s(N), cons(X, XS)) -> cons(X, n__take(N, activate(XS)))
, take(0(), XS) -> nil() }
We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(n^2)).
Strict DPs:
{ from^#(X) -> c_1()
, from^#(X) -> c_2()
, head^#(cons(X, XS)) -> c_3()
, 2nd^#(cons(X, XS)) -> c_4(head^#(activate(XS)))
, activate^#(X) -> c_5()
, activate^#(n__from(X)) -> c_6(from^#(X))
, activate^#(n__take(X1, X2)) -> c_7(take^#(X1, X2))
, take^#(X1, X2) -> c_8()
, take^#(s(N), cons(X, XS)) -> c_9(activate^#(XS))
, take^#(0(), XS) -> c_10()
, sel^#(s(N), cons(X, XS)) -> c_11(sel^#(N, activate(XS)))
, sel^#(0(), cons(X, XS)) -> c_12() }
Strict Trs:
{ from(X) -> cons(X, n__from(s(X)))
, from(X) -> n__from(X)
, activate(X) -> X
, activate(n__from(X)) -> from(X)
, activate(n__take(X1, X2)) -> take(X1, X2)
, take(X1, X2) -> n__take(X1, X2)
, take(s(N), cons(X, XS)) -> cons(X, n__take(N, activate(XS)))
, take(0(), XS) -> nil() }
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(n^2))
The weightgap principle applies (using the following constant
growth matrix-interpretation)
The following argument positions are usable:
Uargs(cons) = {2}, Uargs(n__take) = {2}, Uargs(head^#) = {1},
Uargs(c_4) = {1}, Uargs(c_6) = {1}, Uargs(c_7) = {1},
Uargs(c_9) = {1}, Uargs(sel^#) = {2}, Uargs(c_11) = {1}
TcT has computed the following constructor-restricted matrix
interpretation.
[from](x1) = [1]
[2]
[cons](x1, x2) = [1 2] x2 + [0]
[0 1] [1]
[n__from](x1) = [0]
[0]
[s](x1) = [1 0] x1 + [0]
[0 1] [2]
[activate](x1) = [1 1] x1 + [2]
[0 2] [2]
[take](x1, x2) = [0 2] x1 + [1 1] x2 + [2]
[0 0] [0 0] [2]
[0] = [0]
[0]
[nil] = [0]
[0]
[n__take](x1, x2) = [0 2] x1 + [1 1] x2 + [0]
[0 0] [0 0] [1]
[from^#](x1) = [1]
[1]
[c_1] = [0]
[0]
[c_2] = [0]
[0]
[head^#](x1) = [1 0] x1 + [0]
[0 0] [0]
[c_3] = [0]
[0]
[2nd^#](x1) = [1 2] x1 + [0]
[0 0] [0]
[c_4](x1) = [1 0] x1 + [0]
[0 1] [0]
[activate^#](x1) = [0]
[0]
[c_5] = [0]
[0]
[c_6](x1) = [1 0] x1 + [1]
[0 1] [1]
[c_7](x1) = [1 0] x1 + [0]
[0 1] [0]
[take^#](x1, x2) = [0]
[0]
[c_8] = [0]
[0]
[c_9](x1) = [1 0] x1 + [0]
[0 1] [0]
[c_10] = [0]
[0]
[sel^#](x1, x2) = [2 1] x2 + [0]
[0 0] [0]
[c_11](x1) = [1 0] x1 + [0]
[0 1] [0]
[c_12] = [0]
[0]
The order satisfies the following ordering constraints:
[from(X)] = [1]
[2]
> [0]
[1]
= [cons(X, n__from(s(X)))]
[from(X)] = [1]
[2]
> [0]
[0]
= [n__from(X)]
[activate(X)] = [1 1] X + [2]
[0 2] [2]
> [1 0] X + [0]
[0 1] [0]
= [X]
[activate(n__from(X))] = [2]
[2]
> [1]
[2]
= [from(X)]
[activate(n__take(X1, X2))] = [0 2] X1 + [1 1] X2 + [3]
[0 0] [0 0] [4]
> [0 2] X1 + [1 1] X2 + [2]
[0 0] [0 0] [2]
= [take(X1, X2)]
[take(X1, X2)] = [0 2] X1 + [1 1] X2 + [2]
[0 0] [0 0] [2]
> [0 2] X1 + [1 1] X2 + [0]
[0 0] [0 0] [1]
= [n__take(X1, X2)]
[take(s(N), cons(X, XS))] = [1 3] XS + [0 2] N + [7]
[0 0] [0 0] [2]
> [1 3] XS + [0 2] N + [6]
[0 0] [0 0] [2]
= [cons(X, n__take(N, activate(XS)))]
[take(0(), XS)] = [1 1] XS + [2]
[0 0] [2]
> [0]
[0]
= [nil()]
[from^#(X)] = [1]
[1]
> [0]
[0]
= [c_1()]
[from^#(X)] = [1]
[1]
> [0]
[0]
= [c_2()]
[head^#(cons(X, XS))] = [1 2] XS + [0]
[0 0] [0]
>= [0]
[0]
= [c_3()]
[2nd^#(cons(X, XS))] = [1 4] XS + [2]
[0 0] [0]
>= [1 1] XS + [2]
[0 0] [0]
= [c_4(head^#(activate(XS)))]
[activate^#(X)] = [0]
[0]
>= [0]
[0]
= [c_5()]
[activate^#(n__from(X))] = [0]
[0]
? [2]
[2]
= [c_6(from^#(X))]
[activate^#(n__take(X1, X2))] = [0]
[0]
>= [0]
[0]
= [c_7(take^#(X1, X2))]
[take^#(X1, X2)] = [0]
[0]
>= [0]
[0]
= [c_8()]
[take^#(s(N), cons(X, XS))] = [0]
[0]
>= [0]
[0]
= [c_9(activate^#(XS))]
[take^#(0(), XS)] = [0]
[0]
>= [0]
[0]
= [c_10()]
[sel^#(s(N), cons(X, XS))] = [2 5] XS + [1]
[0 0] [0]
? [2 4] XS + [6]
[0 0] [0]
= [c_11(sel^#(N, activate(XS)))]
[sel^#(0(), cons(X, XS))] = [2 5] XS + [1]
[0 0] [0]
> [0]
[0]
= [c_12()]
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(n^1)).
Strict DPs:
{ head^#(cons(X, XS)) -> c_3()
, 2nd^#(cons(X, XS)) -> c_4(head^#(activate(XS)))
, activate^#(X) -> c_5()
, activate^#(n__from(X)) -> c_6(from^#(X))
, activate^#(n__take(X1, X2)) -> c_7(take^#(X1, X2))
, take^#(X1, X2) -> c_8()
, take^#(s(N), cons(X, XS)) -> c_9(activate^#(XS))
, take^#(0(), XS) -> c_10()
, sel^#(s(N), cons(X, XS)) -> c_11(sel^#(N, activate(XS))) }
Weak DPs:
{ from^#(X) -> c_1()
, from^#(X) -> c_2()
, sel^#(0(), cons(X, XS)) -> c_12() }
Weak Trs:
{ from(X) -> cons(X, n__from(s(X)))
, from(X) -> n__from(X)
, activate(X) -> X
, activate(n__from(X)) -> from(X)
, activate(n__take(X1, X2)) -> take(X1, X2)
, take(X1, X2) -> n__take(X1, X2)
, take(s(N), cons(X, XS)) -> cons(X, n__take(N, activate(XS)))
, take(0(), XS) -> nil() }
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(n^1))
We estimate the number of application of {1,3,4,6,8} by
applications of Pre({1,3,4,6,8}) = {2,5,7}. Here rules are labeled
as follows:
DPs:
{ 1: head^#(cons(X, XS)) -> c_3()
, 2: 2nd^#(cons(X, XS)) -> c_4(head^#(activate(XS)))
, 3: activate^#(X) -> c_5()
, 4: activate^#(n__from(X)) -> c_6(from^#(X))
, 5: activate^#(n__take(X1, X2)) -> c_7(take^#(X1, X2))
, 6: take^#(X1, X2) -> c_8()
, 7: take^#(s(N), cons(X, XS)) -> c_9(activate^#(XS))
, 8: take^#(0(), XS) -> c_10()
, 9: sel^#(s(N), cons(X, XS)) -> c_11(sel^#(N, activate(XS)))
, 10: from^#(X) -> c_1()
, 11: from^#(X) -> c_2()
, 12: sel^#(0(), cons(X, XS)) -> c_12() }
We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(n^1)).
Strict DPs:
{ 2nd^#(cons(X, XS)) -> c_4(head^#(activate(XS)))
, activate^#(n__take(X1, X2)) -> c_7(take^#(X1, X2))
, take^#(s(N), cons(X, XS)) -> c_9(activate^#(XS))
, sel^#(s(N), cons(X, XS)) -> c_11(sel^#(N, activate(XS))) }
Weak DPs:
{ from^#(X) -> c_1()
, from^#(X) -> c_2()
, head^#(cons(X, XS)) -> c_3()
, activate^#(X) -> c_5()
, activate^#(n__from(X)) -> c_6(from^#(X))
, take^#(X1, X2) -> c_8()
, take^#(0(), XS) -> c_10()
, sel^#(0(), cons(X, XS)) -> c_12() }
Weak Trs:
{ from(X) -> cons(X, n__from(s(X)))
, from(X) -> n__from(X)
, activate(X) -> X
, activate(n__from(X)) -> from(X)
, activate(n__take(X1, X2)) -> take(X1, X2)
, take(X1, X2) -> n__take(X1, X2)
, take(s(N), cons(X, XS)) -> cons(X, n__take(N, activate(XS)))
, take(0(), XS) -> nil() }
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(n^1))
We estimate the number of application of {1} by applications of
Pre({1}) = {}. Here rules are labeled as follows:
DPs:
{ 1: 2nd^#(cons(X, XS)) -> c_4(head^#(activate(XS)))
, 2: activate^#(n__take(X1, X2)) -> c_7(take^#(X1, X2))
, 3: take^#(s(N), cons(X, XS)) -> c_9(activate^#(XS))
, 4: sel^#(s(N), cons(X, XS)) -> c_11(sel^#(N, activate(XS)))
, 5: from^#(X) -> c_1()
, 6: from^#(X) -> c_2()
, 7: head^#(cons(X, XS)) -> c_3()
, 8: activate^#(X) -> c_5()
, 9: activate^#(n__from(X)) -> c_6(from^#(X))
, 10: take^#(X1, X2) -> c_8()
, 11: take^#(0(), XS) -> c_10()
, 12: sel^#(0(), cons(X, XS)) -> c_12() }
We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(n^1)).
Strict DPs:
{ activate^#(n__take(X1, X2)) -> c_7(take^#(X1, X2))
, take^#(s(N), cons(X, XS)) -> c_9(activate^#(XS))
, sel^#(s(N), cons(X, XS)) -> c_11(sel^#(N, activate(XS))) }
Weak DPs:
{ from^#(X) -> c_1()
, from^#(X) -> c_2()
, head^#(cons(X, XS)) -> c_3()
, 2nd^#(cons(X, XS)) -> c_4(head^#(activate(XS)))
, activate^#(X) -> c_5()
, activate^#(n__from(X)) -> c_6(from^#(X))
, take^#(X1, X2) -> c_8()
, take^#(0(), XS) -> c_10()
, sel^#(0(), cons(X, XS)) -> c_12() }
Weak Trs:
{ from(X) -> cons(X, n__from(s(X)))
, from(X) -> n__from(X)
, activate(X) -> X
, activate(n__from(X)) -> from(X)
, activate(n__take(X1, X2)) -> take(X1, X2)
, take(X1, X2) -> n__take(X1, X2)
, take(s(N), cons(X, XS)) -> cons(X, n__take(N, activate(XS)))
, take(0(), XS) -> nil() }
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(n^1))
The following weak DPs constitute a sub-graph of the DG that is
closed under successors. The DPs are removed.
{ from^#(X) -> c_1()
, from^#(X) -> c_2()
, head^#(cons(X, XS)) -> c_3()
, 2nd^#(cons(X, XS)) -> c_4(head^#(activate(XS)))
, activate^#(X) -> c_5()
, activate^#(n__from(X)) -> c_6(from^#(X))
, take^#(X1, X2) -> c_8()
, take^#(0(), XS) -> c_10()
, sel^#(0(), cons(X, XS)) -> c_12() }
We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(n^1)).
Strict DPs:
{ activate^#(n__take(X1, X2)) -> c_7(take^#(X1, X2))
, take^#(s(N), cons(X, XS)) -> c_9(activate^#(XS))
, sel^#(s(N), cons(X, XS)) -> c_11(sel^#(N, activate(XS))) }
Weak Trs:
{ from(X) -> cons(X, n__from(s(X)))
, from(X) -> n__from(X)
, activate(X) -> X
, activate(n__from(X)) -> from(X)
, activate(n__take(X1, X2)) -> take(X1, X2)
, take(X1, X2) -> n__take(X1, X2)
, take(s(N), cons(X, XS)) -> cons(X, n__take(N, activate(XS)))
, take(0(), XS) -> nil() }
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(n^1))
We use the processor 'Small Polynomial Path Order (PS,1-bounded)'
to orient following rules strictly.
DPs:
{ 1: activate^#(n__take(X1, X2)) -> c_7(take^#(X1, X2))
, 2: take^#(s(N), cons(X, XS)) -> c_9(activate^#(XS))
, 3: sel^#(s(N), cons(X, XS)) -> c_11(sel^#(N, activate(XS))) }
Sub-proof:
----------
The input was oriented with the instance of 'Small Polynomial Path
Order (PS,1-bounded)' as induced by the safe mapping
safe(from) = {1}, safe(cons) = {1, 2}, safe(n__from) = {1},
safe(s) = {1}, safe(activate) = {1}, safe(take) = {2},
safe(0) = {}, safe(nil) = {}, safe(n__take) = {1, 2},
safe(activate^#) = {}, safe(c_7) = {}, safe(take^#) = {1},
safe(c_9) = {}, safe(sel^#) = {2}, safe(c_11) = {}
and precedence
take > activate, sel^# > activate, activate^# ~ take^# .
Following symbols are considered recursive:
{activate^#, take^#, sel^#}
The recursion depth is 1.
Further, following argument filtering is employed:
pi(from) = [1], pi(cons) = [2], pi(n__from) = 1, pi(s) = [1],
pi(activate) = [1], pi(take) = [2], pi(0) = [], pi(nil) = [],
pi(n__take) = [2], pi(activate^#) = [1], pi(c_7) = [1],
pi(take^#) = [2], pi(c_9) = [1], pi(sel^#) = [1], pi(c_11) = [1]
Usable defined function symbols are a subset of:
{activate^#, take^#, sel^#}
For your convenience, here are the satisfied ordering constraints:
pi(activate^#(n__take(X1, X2))) = activate^#(n__take(; X2);)
> c_7(take^#(X2;);)
= pi(c_7(take^#(X1, X2)))
pi(take^#(s(N), cons(X, XS))) = take^#(cons(; XS);)
> c_9(activate^#(XS;);)
= pi(c_9(activate^#(XS)))
pi(sel^#(s(N), cons(X, XS))) = sel^#(s(; N);)
> c_11(sel^#(N;);)
= pi(c_11(sel^#(N, activate(XS))))
The strictly oriented rules are moved into the weak component.
We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(1)).
Weak DPs:
{ activate^#(n__take(X1, X2)) -> c_7(take^#(X1, X2))
, take^#(s(N), cons(X, XS)) -> c_9(activate^#(XS))
, sel^#(s(N), cons(X, XS)) -> c_11(sel^#(N, activate(XS))) }
Weak Trs:
{ from(X) -> cons(X, n__from(s(X)))
, from(X) -> n__from(X)
, activate(X) -> X
, activate(n__from(X)) -> from(X)
, activate(n__take(X1, X2)) -> take(X1, X2)
, take(X1, X2) -> n__take(X1, X2)
, take(s(N), cons(X, XS)) -> cons(X, n__take(N, activate(XS)))
, take(0(), XS) -> nil() }
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.
{ activate^#(n__take(X1, X2)) -> c_7(take^#(X1, X2))
, take^#(s(N), cons(X, XS)) -> c_9(activate^#(XS))
, sel^#(s(N), cons(X, XS)) -> c_11(sel^#(N, activate(XS))) }
We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(1)).
Weak Trs:
{ from(X) -> cons(X, n__from(s(X)))
, from(X) -> n__from(X)
, activate(X) -> X
, activate(n__from(X)) -> from(X)
, activate(n__take(X1, X2)) -> take(X1, X2)
, take(X1, X2) -> n__take(X1, X2)
, take(s(N), cons(X, XS)) -> cons(X, n__take(N, activate(XS)))
, take(0(), XS) -> 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)).
Rules: Empty
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(1))
Empty rules are trivially bounded
Hurray, we answered YES(O(1),O(n^2))