We are left with following problem, upon which TcT provides the
certificate YES(?,O(n^1)).
Strict Trs:
{ first(X1, X2) -> n__first(X1, X2)
, first(0(), X) -> nil()
, first(s(X), cons(Y, Z)) -> cons(Y, n__first(X, activate(Z)))
, activate(X) -> X
, activate(n__first(X1, X2)) -> first(X1, X2)
, activate(n__from(X)) -> from(X)
, from(X) -> cons(X, n__from(s(X)))
, from(X) -> n__from(X) }
Obligation:
innermost runtime complexity
Answer:
YES(?,O(n^1))
The input was oriented with the instance of 'Small Polynomial Path
Order (PS)' as induced by the safe mapping
safe(first) = {1}, safe(0) = {}, safe(nil) = {}, safe(s) = {1},
safe(cons) = {1, 2}, safe(n__first) = {1, 2}, safe(activate) = {},
safe(from) = {1}, safe(n__from) = {1}
and precedence
first ~ activate, activate ~ from .
Following symbols are considered recursive:
{first, activate, from}
The recursion depth is 1.
For your convenience, here are the satisfied ordering constraints:
first(X2; X1) > n__first(; X1, X2)
first(X; 0()) > nil()
first(cons(; Y, Z); s(; X)) > cons(; Y, n__first(; X, activate(Z;)))
activate(X;) > X
activate(n__first(; X1, X2);) > first(X2; X1)
activate(n__from(; X);) > from(; X)
from(; X) > cons(; X, n__from(; s(; X)))
from(; X) > n__from(; X)
Hurray, we answered YES(?,O(n^1))