We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(1)).
Strict Trs:
{ first(0(), X) -> nil()
, first(s(X), cons(Y)) -> cons(Y)
, from(X) -> cons(X) }
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:
{ first(0(), X) -> nil()
, first(s(X), cons(Y)) -> cons(Y)
, from(X) -> cons(X) }
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(1))
We add the following weak dependency pairs:
Strict DPs:
{ first^#(0(), X) -> c_1()
, first^#(s(X), cons(Y)) -> c_2()
, from^#(X) -> c_3() }
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:
{ first^#(0(), X) -> c_1()
, first^#(s(X), cons(Y)) -> c_2()
, from^#(X) -> c_3() }
Strict Trs:
{ first(0(), X) -> nil()
, first(s(X), cons(Y)) -> cons(Y)
, from(X) -> cons(X) }
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:
{ first^#(0(), X) -> c_1()
, first^#(s(X), cons(Y)) -> c_2()
, from^#(X) -> c_3() }
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:
none
TcT has computed the following constructor-restricted matrix
interpretation.
[0] = [1]
[0]
[s](x1) = [0]
[0]
[cons](x1) = [1]
[1]
[first^#](x1, x2) = [1 1] x2 + [0]
[1 1] [0]
[c_1] = [0]
[0]
[c_2] = [0]
[0]
[from^#](x1) = [0]
[0]
[c_3] = [0]
[0]
The order satisfies the following ordering constraints:
[first^#(0(), X)] = [1 1] X + [0]
[1 1] [0]
>= [0]
[0]
= [c_1()]
[first^#(s(X), cons(Y))] = [2]
[2]
> [0]
[0]
= [c_2()]
[from^#(X)] = [0]
[0]
>= [0]
[0]
= [c_3()]
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:
{ first^#(0(), X) -> c_1()
, from^#(X) -> c_3() }
Weak DPs: { first^#(s(X), cons(Y)) -> c_2() }
Obligation:
innermost runtime complexity
Answer:
YES(O(1),O(1))
We estimate the number of application of {1,2} by applications of
Pre({1,2}) = {}. Here rules are labeled as follows:
DPs:
{ 1: first^#(0(), X) -> c_1()
, 2: from^#(X) -> c_3()
, 3: first^#(s(X), cons(Y)) -> c_2() }
We are left with following problem, upon which TcT provides the
certificate YES(O(1),O(1)).
Weak DPs:
{ first^#(0(), X) -> c_1()
, first^#(s(X), cons(Y)) -> c_2()
, from^#(X) -> c_3() }
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.
{ first^#(0(), X) -> c_1()
, first^#(s(X), cons(Y)) -> c_2()
, from^#(X) -> c_3() }
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))