Runtime Complexity TRS:
The TRS R consists of the following rules:

from(X) → cons(X, n__from(n__s(X)))
length(n__nil) → 0
length(n__cons(X, Y)) → s(length1(activate(Y)))
length1(X) → length(activate(X))
from(X) → n__from(X)
s(X) → n__s(X)
niln__nil
cons(X1, X2) → n__cons(X1, X2)
activate(n__from(X)) → from(activate(X))
activate(n__s(X)) → s(activate(X))
activate(n__nil) → nil
activate(n__cons(X1, X2)) → cons(activate(X1), X2)
activate(X) → X

Rewrite Strategy: INNERMOST


Renamed function symbols to avoid clashes with predefined symbol.


Runtime Complexity TRS:
The TRS R consists of the following rules:


from'(X) → cons'(X, n__from'(n__s'(X)))
length'(n__nil') → 0'
length'(n__cons'(X, Y)) → s'(length1'(activate'(Y)))
length1'(X) → length'(activate'(X))
from'(X) → n__from'(X)
s'(X) → n__s'(X)
nil'n__nil'
cons'(X1, X2) → n__cons'(X1, X2)
activate'(n__from'(X)) → from'(activate'(X))
activate'(n__s'(X)) → s'(activate'(X))
activate'(n__nil') → nil'
activate'(n__cons'(X1, X2)) → cons'(activate'(X1), X2)
activate'(X) → X

Rewrite Strategy: INNERMOST


Infered types.


Rules:
from'(X) → cons'(X, n__from'(n__s'(X)))
length'(n__nil') → 0'
length'(n__cons'(X, Y)) → s'(length1'(activate'(Y)))
length1'(X) → length'(activate'(X))
from'(X) → n__from'(X)
s'(X) → n__s'(X)
nil'n__nil'
cons'(X1, X2) → n__cons'(X1, X2)
activate'(n__from'(X)) → from'(activate'(X))
activate'(n__s'(X)) → s'(activate'(X))
activate'(n__nil') → nil'
activate'(n__cons'(X1, X2)) → cons'(activate'(X1), X2)
activate'(X) → X

Types:
from' :: n__s':n__from':n__nil':0':n__cons' → n__s':n__from':n__nil':0':n__cons'
cons' :: n__s':n__from':n__nil':0':n__cons' → n__s':n__from':n__nil':0':n__cons' → n__s':n__from':n__nil':0':n__cons'
n__from' :: n__s':n__from':n__nil':0':n__cons' → n__s':n__from':n__nil':0':n__cons'
n__s' :: n__s':n__from':n__nil':0':n__cons' → n__s':n__from':n__nil':0':n__cons'
length' :: n__s':n__from':n__nil':0':n__cons' → n__s':n__from':n__nil':0':n__cons'
n__nil' :: n__s':n__from':n__nil':0':n__cons'
0' :: n__s':n__from':n__nil':0':n__cons'
n__cons' :: n__s':n__from':n__nil':0':n__cons' → n__s':n__from':n__nil':0':n__cons' → n__s':n__from':n__nil':0':n__cons'
s' :: n__s':n__from':n__nil':0':n__cons' → n__s':n__from':n__nil':0':n__cons'
length1' :: n__s':n__from':n__nil':0':n__cons' → n__s':n__from':n__nil':0':n__cons'
activate' :: n__s':n__from':n__nil':0':n__cons' → n__s':n__from':n__nil':0':n__cons'
nil' :: n__s':n__from':n__nil':0':n__cons'
_hole_n__s':n__from':n__nil':0':n__cons'1 :: n__s':n__from':n__nil':0':n__cons'
_gen_n__s':n__from':n__nil':0':n__cons'2 :: Nat → n__s':n__from':n__nil':0':n__cons'


Heuristically decided to analyse the following defined symbols:
length', length1', activate'

They will be analysed ascendingly in the following order:
length' = length1'
activate' < length'
activate' < length1'


Rules:
from'(X) → cons'(X, n__from'(n__s'(X)))
length'(n__nil') → 0'
length'(n__cons'(X, Y)) → s'(length1'(activate'(Y)))
length1'(X) → length'(activate'(X))
from'(X) → n__from'(X)
s'(X) → n__s'(X)
nil'n__nil'
cons'(X1, X2) → n__cons'(X1, X2)
activate'(n__from'(X)) → from'(activate'(X))
activate'(n__s'(X)) → s'(activate'(X))
activate'(n__nil') → nil'
activate'(n__cons'(X1, X2)) → cons'(activate'(X1), X2)
activate'(X) → X

Types:
from' :: n__s':n__from':n__nil':0':n__cons' → n__s':n__from':n__nil':0':n__cons'
cons' :: n__s':n__from':n__nil':0':n__cons' → n__s':n__from':n__nil':0':n__cons' → n__s':n__from':n__nil':0':n__cons'
n__from' :: n__s':n__from':n__nil':0':n__cons' → n__s':n__from':n__nil':0':n__cons'
n__s' :: n__s':n__from':n__nil':0':n__cons' → n__s':n__from':n__nil':0':n__cons'
length' :: n__s':n__from':n__nil':0':n__cons' → n__s':n__from':n__nil':0':n__cons'
n__nil' :: n__s':n__from':n__nil':0':n__cons'
0' :: n__s':n__from':n__nil':0':n__cons'
n__cons' :: n__s':n__from':n__nil':0':n__cons' → n__s':n__from':n__nil':0':n__cons' → n__s':n__from':n__nil':0':n__cons'
s' :: n__s':n__from':n__nil':0':n__cons' → n__s':n__from':n__nil':0':n__cons'
length1' :: n__s':n__from':n__nil':0':n__cons' → n__s':n__from':n__nil':0':n__cons'
activate' :: n__s':n__from':n__nil':0':n__cons' → n__s':n__from':n__nil':0':n__cons'
nil' :: n__s':n__from':n__nil':0':n__cons'
_hole_n__s':n__from':n__nil':0':n__cons'1 :: n__s':n__from':n__nil':0':n__cons'
_gen_n__s':n__from':n__nil':0':n__cons'2 :: Nat → n__s':n__from':n__nil':0':n__cons'

Generator Equations:
_gen_n__s':n__from':n__nil':0':n__cons'2(0) ⇔ n__nil'
_gen_n__s':n__from':n__nil':0':n__cons'2(+(x, 1)) ⇔ n__from'(_gen_n__s':n__from':n__nil':0':n__cons'2(x))

The following defined symbols remain to be analysed:
activate', length', length1'

They will be analysed ascendingly in the following order:
length' = length1'
activate' < length'
activate' < length1'


Proved the following rewrite lemma:
activate'(_gen_n__s':n__from':n__nil':0':n__cons'2(+(1, _n4))) → _*3, rt ∈ Ω(n4)

Induction Base:
activate'(_gen_n__s':n__from':n__nil':0':n__cons'2(+(1, 0)))

Induction Step:
activate'(_gen_n__s':n__from':n__nil':0':n__cons'2(+(1, +(_$n5, 1)))) →RΩ(1)
from'(activate'(_gen_n__s':n__from':n__nil':0':n__cons'2(+(1, _$n5)))) →IH
from'(_*3)

We have rt ∈ Ω(n) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).


Rules:
from'(X) → cons'(X, n__from'(n__s'(X)))
length'(n__nil') → 0'
length'(n__cons'(X, Y)) → s'(length1'(activate'(Y)))
length1'(X) → length'(activate'(X))
from'(X) → n__from'(X)
s'(X) → n__s'(X)
nil'n__nil'
cons'(X1, X2) → n__cons'(X1, X2)
activate'(n__from'(X)) → from'(activate'(X))
activate'(n__s'(X)) → s'(activate'(X))
activate'(n__nil') → nil'
activate'(n__cons'(X1, X2)) → cons'(activate'(X1), X2)
activate'(X) → X

Types:
from' :: n__s':n__from':n__nil':0':n__cons' → n__s':n__from':n__nil':0':n__cons'
cons' :: n__s':n__from':n__nil':0':n__cons' → n__s':n__from':n__nil':0':n__cons' → n__s':n__from':n__nil':0':n__cons'
n__from' :: n__s':n__from':n__nil':0':n__cons' → n__s':n__from':n__nil':0':n__cons'
n__s' :: n__s':n__from':n__nil':0':n__cons' → n__s':n__from':n__nil':0':n__cons'
length' :: n__s':n__from':n__nil':0':n__cons' → n__s':n__from':n__nil':0':n__cons'
n__nil' :: n__s':n__from':n__nil':0':n__cons'
0' :: n__s':n__from':n__nil':0':n__cons'
n__cons' :: n__s':n__from':n__nil':0':n__cons' → n__s':n__from':n__nil':0':n__cons' → n__s':n__from':n__nil':0':n__cons'
s' :: n__s':n__from':n__nil':0':n__cons' → n__s':n__from':n__nil':0':n__cons'
length1' :: n__s':n__from':n__nil':0':n__cons' → n__s':n__from':n__nil':0':n__cons'
activate' :: n__s':n__from':n__nil':0':n__cons' → n__s':n__from':n__nil':0':n__cons'
nil' :: n__s':n__from':n__nil':0':n__cons'
_hole_n__s':n__from':n__nil':0':n__cons'1 :: n__s':n__from':n__nil':0':n__cons'
_gen_n__s':n__from':n__nil':0':n__cons'2 :: Nat → n__s':n__from':n__nil':0':n__cons'

Lemmas:
activate'(_gen_n__s':n__from':n__nil':0':n__cons'2(+(1, _n4))) → _*3, rt ∈ Ω(n4)

Generator Equations:
_gen_n__s':n__from':n__nil':0':n__cons'2(0) ⇔ n__nil'
_gen_n__s':n__from':n__nil':0':n__cons'2(+(x, 1)) ⇔ n__from'(_gen_n__s':n__from':n__nil':0':n__cons'2(x))

The following defined symbols remain to be analysed:
length1', length'

They will be analysed ascendingly in the following order:
length' = length1'


Could not prove a rewrite lemma for the defined symbol length1'.


Rules:
from'(X) → cons'(X, n__from'(n__s'(X)))
length'(n__nil') → 0'
length'(n__cons'(X, Y)) → s'(length1'(activate'(Y)))
length1'(X) → length'(activate'(X))
from'(X) → n__from'(X)
s'(X) → n__s'(X)
nil'n__nil'
cons'(X1, X2) → n__cons'(X1, X2)
activate'(n__from'(X)) → from'(activate'(X))
activate'(n__s'(X)) → s'(activate'(X))
activate'(n__nil') → nil'
activate'(n__cons'(X1, X2)) → cons'(activate'(X1), X2)
activate'(X) → X

Types:
from' :: n__s':n__from':n__nil':0':n__cons' → n__s':n__from':n__nil':0':n__cons'
cons' :: n__s':n__from':n__nil':0':n__cons' → n__s':n__from':n__nil':0':n__cons' → n__s':n__from':n__nil':0':n__cons'
n__from' :: n__s':n__from':n__nil':0':n__cons' → n__s':n__from':n__nil':0':n__cons'
n__s' :: n__s':n__from':n__nil':0':n__cons' → n__s':n__from':n__nil':0':n__cons'
length' :: n__s':n__from':n__nil':0':n__cons' → n__s':n__from':n__nil':0':n__cons'
n__nil' :: n__s':n__from':n__nil':0':n__cons'
0' :: n__s':n__from':n__nil':0':n__cons'
n__cons' :: n__s':n__from':n__nil':0':n__cons' → n__s':n__from':n__nil':0':n__cons' → n__s':n__from':n__nil':0':n__cons'
s' :: n__s':n__from':n__nil':0':n__cons' → n__s':n__from':n__nil':0':n__cons'
length1' :: n__s':n__from':n__nil':0':n__cons' → n__s':n__from':n__nil':0':n__cons'
activate' :: n__s':n__from':n__nil':0':n__cons' → n__s':n__from':n__nil':0':n__cons'
nil' :: n__s':n__from':n__nil':0':n__cons'
_hole_n__s':n__from':n__nil':0':n__cons'1 :: n__s':n__from':n__nil':0':n__cons'
_gen_n__s':n__from':n__nil':0':n__cons'2 :: Nat → n__s':n__from':n__nil':0':n__cons'

Lemmas:
activate'(_gen_n__s':n__from':n__nil':0':n__cons'2(+(1, _n4))) → _*3, rt ∈ Ω(n4)

Generator Equations:
_gen_n__s':n__from':n__nil':0':n__cons'2(0) ⇔ n__nil'
_gen_n__s':n__from':n__nil':0':n__cons'2(+(x, 1)) ⇔ n__from'(_gen_n__s':n__from':n__nil':0':n__cons'2(x))

The following defined symbols remain to be analysed:
length'

They will be analysed ascendingly in the following order:
length' = length1'


Could not prove a rewrite lemma for the defined symbol length'.


Rules:
from'(X) → cons'(X, n__from'(n__s'(X)))
length'(n__nil') → 0'
length'(n__cons'(X, Y)) → s'(length1'(activate'(Y)))
length1'(X) → length'(activate'(X))
from'(X) → n__from'(X)
s'(X) → n__s'(X)
nil'n__nil'
cons'(X1, X2) → n__cons'(X1, X2)
activate'(n__from'(X)) → from'(activate'(X))
activate'(n__s'(X)) → s'(activate'(X))
activate'(n__nil') → nil'
activate'(n__cons'(X1, X2)) → cons'(activate'(X1), X2)
activate'(X) → X

Types:
from' :: n__s':n__from':n__nil':0':n__cons' → n__s':n__from':n__nil':0':n__cons'
cons' :: n__s':n__from':n__nil':0':n__cons' → n__s':n__from':n__nil':0':n__cons' → n__s':n__from':n__nil':0':n__cons'
n__from' :: n__s':n__from':n__nil':0':n__cons' → n__s':n__from':n__nil':0':n__cons'
n__s' :: n__s':n__from':n__nil':0':n__cons' → n__s':n__from':n__nil':0':n__cons'
length' :: n__s':n__from':n__nil':0':n__cons' → n__s':n__from':n__nil':0':n__cons'
n__nil' :: n__s':n__from':n__nil':0':n__cons'
0' :: n__s':n__from':n__nil':0':n__cons'
n__cons' :: n__s':n__from':n__nil':0':n__cons' → n__s':n__from':n__nil':0':n__cons' → n__s':n__from':n__nil':0':n__cons'
s' :: n__s':n__from':n__nil':0':n__cons' → n__s':n__from':n__nil':0':n__cons'
length1' :: n__s':n__from':n__nil':0':n__cons' → n__s':n__from':n__nil':0':n__cons'
activate' :: n__s':n__from':n__nil':0':n__cons' → n__s':n__from':n__nil':0':n__cons'
nil' :: n__s':n__from':n__nil':0':n__cons'
_hole_n__s':n__from':n__nil':0':n__cons'1 :: n__s':n__from':n__nil':0':n__cons'
_gen_n__s':n__from':n__nil':0':n__cons'2 :: Nat → n__s':n__from':n__nil':0':n__cons'

Lemmas:
activate'(_gen_n__s':n__from':n__nil':0':n__cons'2(+(1, _n4))) → _*3, rt ∈ Ω(n4)

Generator Equations:
_gen_n__s':n__from':n__nil':0':n__cons'2(0) ⇔ n__nil'
_gen_n__s':n__from':n__nil':0':n__cons'2(+(x, 1)) ⇔ n__from'(_gen_n__s':n__from':n__nil':0':n__cons'2(x))

No more defined symbols left to analyse.


The lowerbound Ω(n) was proven with the following lemma:
activate'(_gen_n__s':n__from':n__nil':0':n__cons'2(+(1, _n4))) → _*3, rt ∈ Ω(n4)