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

terms(N) → cons(recip(sqr(N)), n__terms(n__s(N)))
sqr(0) → 0
sqr(s(X)) → s(n__add(n__sqr(activate(X)), n__dbl(activate(X))))
dbl(0) → 0
dbl(s(X)) → s(n__s(n__dbl(activate(X))))
add(0, X) → X
add(s(X), Y) → s(n__add(activate(X), Y))
first(0, X) → nil
first(s(X), cons(Y, Z)) → cons(Y, n__first(activate(X), activate(Z)))
terms(X) → n__terms(X)
s(X) → n__s(X)
add(X1, X2) → n__add(X1, X2)
sqr(X) → n__sqr(X)
dbl(X) → n__dbl(X)
first(X1, X2) → n__first(X1, X2)
activate(n__terms(X)) → terms(activate(X))
activate(n__s(X)) → s(X)
activate(n__add(X1, X2)) → add(activate(X1), activate(X2))
activate(n__sqr(X)) → sqr(activate(X))
activate(n__dbl(X)) → dbl(activate(X))
activate(n__first(X1, X2)) → first(activate(X1), activate(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:


terms'(N) → cons'(recip'(sqr'(N)), n__terms'(n__s'(N)))
sqr'(0') → 0'
sqr'(s'(X)) → s'(n__add'(n__sqr'(activate'(X)), n__dbl'(activate'(X))))
dbl'(0') → 0'
dbl'(s'(X)) → s'(n__s'(n__dbl'(activate'(X))))
add'(0', X) → X
add'(s'(X), Y) → s'(n__add'(activate'(X), Y))
first'(0', X) → nil'
first'(s'(X), cons'(Y, Z)) → cons'(Y, n__first'(activate'(X), activate'(Z)))
terms'(X) → n__terms'(X)
s'(X) → n__s'(X)
add'(X1, X2) → n__add'(X1, X2)
sqr'(X) → n__sqr'(X)
dbl'(X) → n__dbl'(X)
first'(X1, X2) → n__first'(X1, X2)
activate'(n__terms'(X)) → terms'(activate'(X))
activate'(n__s'(X)) → s'(X)
activate'(n__add'(X1, X2)) → add'(activate'(X1), activate'(X2))
activate'(n__sqr'(X)) → sqr'(activate'(X))
activate'(n__dbl'(X)) → dbl'(activate'(X))
activate'(n__first'(X1, X2)) → first'(activate'(X1), activate'(X2))
activate'(X) → X

Rewrite Strategy: INNERMOST


Infered types.


Rules:
terms'(N) → cons'(recip'(sqr'(N)), n__terms'(n__s'(N)))
sqr'(0') → 0'
sqr'(s'(X)) → s'(n__add'(n__sqr'(activate'(X)), n__dbl'(activate'(X))))
dbl'(0') → 0'
dbl'(s'(X)) → s'(n__s'(n__dbl'(activate'(X))))
add'(0', X) → X
add'(s'(X), Y) → s'(n__add'(activate'(X), Y))
first'(0', X) → nil'
first'(s'(X), cons'(Y, Z)) → cons'(Y, n__first'(activate'(X), activate'(Z)))
terms'(X) → n__terms'(X)
s'(X) → n__s'(X)
add'(X1, X2) → n__add'(X1, X2)
sqr'(X) → n__sqr'(X)
dbl'(X) → n__dbl'(X)
first'(X1, X2) → n__first'(X1, X2)
activate'(n__terms'(X)) → terms'(activate'(X))
activate'(n__s'(X)) → s'(X)
activate'(n__add'(X1, X2)) → add'(activate'(X1), activate'(X2))
activate'(n__sqr'(X)) → sqr'(activate'(X))
activate'(n__dbl'(X)) → dbl'(activate'(X))
activate'(n__first'(X1, X2)) → first'(activate'(X1), activate'(X2))
activate'(X) → X

Types:
terms' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
cons' :: recip' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
recip' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → recip'
sqr' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
n__terms' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
n__s' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
0' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
s' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
n__add' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
n__sqr' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
activate' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
n__dbl' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
dbl' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
add' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
first' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
nil' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
n__first' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
_hole_n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'1 :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
_hole_recip'2 :: recip'
_gen_n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'3 :: Nat → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'


Heuristically decided to analyse the following defined symbols:
terms', sqr', activate', dbl'

They will be analysed ascendingly in the following order:
terms' = sqr'
terms' = activate'
terms' = dbl'
sqr' = activate'
sqr' = dbl'
activate' = dbl'


Rules:
terms'(N) → cons'(recip'(sqr'(N)), n__terms'(n__s'(N)))
sqr'(0') → 0'
sqr'(s'(X)) → s'(n__add'(n__sqr'(activate'(X)), n__dbl'(activate'(X))))
dbl'(0') → 0'
dbl'(s'(X)) → s'(n__s'(n__dbl'(activate'(X))))
add'(0', X) → X
add'(s'(X), Y) → s'(n__add'(activate'(X), Y))
first'(0', X) → nil'
first'(s'(X), cons'(Y, Z)) → cons'(Y, n__first'(activate'(X), activate'(Z)))
terms'(X) → n__terms'(X)
s'(X) → n__s'(X)
add'(X1, X2) → n__add'(X1, X2)
sqr'(X) → n__sqr'(X)
dbl'(X) → n__dbl'(X)
first'(X1, X2) → n__first'(X1, X2)
activate'(n__terms'(X)) → terms'(activate'(X))
activate'(n__s'(X)) → s'(X)
activate'(n__add'(X1, X2)) → add'(activate'(X1), activate'(X2))
activate'(n__sqr'(X)) → sqr'(activate'(X))
activate'(n__dbl'(X)) → dbl'(activate'(X))
activate'(n__first'(X1, X2)) → first'(activate'(X1), activate'(X2))
activate'(X) → X

Types:
terms' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
cons' :: recip' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
recip' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → recip'
sqr' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
n__terms' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
n__s' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
0' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
s' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
n__add' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
n__sqr' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
activate' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
n__dbl' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
dbl' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
add' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
first' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
nil' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
n__first' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
_hole_n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'1 :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
_hole_recip'2 :: recip'
_gen_n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'3 :: Nat → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'

Generator Equations:
_gen_n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'3(0) ⇔ 0'
_gen_n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'3(+(x, 1)) ⇔ cons'(recip'(0'), _gen_n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'3(x))

The following defined symbols remain to be analysed:
sqr', terms', activate', dbl'

They will be analysed ascendingly in the following order:
terms' = sqr'
terms' = activate'
terms' = dbl'
sqr' = activate'
sqr' = dbl'
activate' = dbl'


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


Rules:
terms'(N) → cons'(recip'(sqr'(N)), n__terms'(n__s'(N)))
sqr'(0') → 0'
sqr'(s'(X)) → s'(n__add'(n__sqr'(activate'(X)), n__dbl'(activate'(X))))
dbl'(0') → 0'
dbl'(s'(X)) → s'(n__s'(n__dbl'(activate'(X))))
add'(0', X) → X
add'(s'(X), Y) → s'(n__add'(activate'(X), Y))
first'(0', X) → nil'
first'(s'(X), cons'(Y, Z)) → cons'(Y, n__first'(activate'(X), activate'(Z)))
terms'(X) → n__terms'(X)
s'(X) → n__s'(X)
add'(X1, X2) → n__add'(X1, X2)
sqr'(X) → n__sqr'(X)
dbl'(X) → n__dbl'(X)
first'(X1, X2) → n__first'(X1, X2)
activate'(n__terms'(X)) → terms'(activate'(X))
activate'(n__s'(X)) → s'(X)
activate'(n__add'(X1, X2)) → add'(activate'(X1), activate'(X2))
activate'(n__sqr'(X)) → sqr'(activate'(X))
activate'(n__dbl'(X)) → dbl'(activate'(X))
activate'(n__first'(X1, X2)) → first'(activate'(X1), activate'(X2))
activate'(X) → X

Types:
terms' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
cons' :: recip' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
recip' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → recip'
sqr' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
n__terms' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
n__s' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
0' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
s' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
n__add' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
n__sqr' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
activate' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
n__dbl' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
dbl' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
add' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
first' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
nil' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
n__first' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
_hole_n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'1 :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
_hole_recip'2 :: recip'
_gen_n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'3 :: Nat → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'

Generator Equations:
_gen_n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'3(0) ⇔ 0'
_gen_n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'3(+(x, 1)) ⇔ cons'(recip'(0'), _gen_n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'3(x))

The following defined symbols remain to be analysed:
activate', terms', dbl'

They will be analysed ascendingly in the following order:
terms' = sqr'
terms' = activate'
terms' = dbl'
sqr' = activate'
sqr' = dbl'
activate' = dbl'


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


Rules:
terms'(N) → cons'(recip'(sqr'(N)), n__terms'(n__s'(N)))
sqr'(0') → 0'
sqr'(s'(X)) → s'(n__add'(n__sqr'(activate'(X)), n__dbl'(activate'(X))))
dbl'(0') → 0'
dbl'(s'(X)) → s'(n__s'(n__dbl'(activate'(X))))
add'(0', X) → X
add'(s'(X), Y) → s'(n__add'(activate'(X), Y))
first'(0', X) → nil'
first'(s'(X), cons'(Y, Z)) → cons'(Y, n__first'(activate'(X), activate'(Z)))
terms'(X) → n__terms'(X)
s'(X) → n__s'(X)
add'(X1, X2) → n__add'(X1, X2)
sqr'(X) → n__sqr'(X)
dbl'(X) → n__dbl'(X)
first'(X1, X2) → n__first'(X1, X2)
activate'(n__terms'(X)) → terms'(activate'(X))
activate'(n__s'(X)) → s'(X)
activate'(n__add'(X1, X2)) → add'(activate'(X1), activate'(X2))
activate'(n__sqr'(X)) → sqr'(activate'(X))
activate'(n__dbl'(X)) → dbl'(activate'(X))
activate'(n__first'(X1, X2)) → first'(activate'(X1), activate'(X2))
activate'(X) → X

Types:
terms' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
cons' :: recip' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
recip' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → recip'
sqr' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
n__terms' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
n__s' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
0' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
s' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
n__add' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
n__sqr' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
activate' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
n__dbl' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
dbl' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
add' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
first' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
nil' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
n__first' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
_hole_n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'1 :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
_hole_recip'2 :: recip'
_gen_n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'3 :: Nat → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'

Generator Equations:
_gen_n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'3(0) ⇔ 0'
_gen_n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'3(+(x, 1)) ⇔ cons'(recip'(0'), _gen_n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'3(x))

The following defined symbols remain to be analysed:
terms', dbl'

They will be analysed ascendingly in the following order:
terms' = sqr'
terms' = activate'
terms' = dbl'
sqr' = activate'
sqr' = dbl'
activate' = dbl'


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


Rules:
terms'(N) → cons'(recip'(sqr'(N)), n__terms'(n__s'(N)))
sqr'(0') → 0'
sqr'(s'(X)) → s'(n__add'(n__sqr'(activate'(X)), n__dbl'(activate'(X))))
dbl'(0') → 0'
dbl'(s'(X)) → s'(n__s'(n__dbl'(activate'(X))))
add'(0', X) → X
add'(s'(X), Y) → s'(n__add'(activate'(X), Y))
first'(0', X) → nil'
first'(s'(X), cons'(Y, Z)) → cons'(Y, n__first'(activate'(X), activate'(Z)))
terms'(X) → n__terms'(X)
s'(X) → n__s'(X)
add'(X1, X2) → n__add'(X1, X2)
sqr'(X) → n__sqr'(X)
dbl'(X) → n__dbl'(X)
first'(X1, X2) → n__first'(X1, X2)
activate'(n__terms'(X)) → terms'(activate'(X))
activate'(n__s'(X)) → s'(X)
activate'(n__add'(X1, X2)) → add'(activate'(X1), activate'(X2))
activate'(n__sqr'(X)) → sqr'(activate'(X))
activate'(n__dbl'(X)) → dbl'(activate'(X))
activate'(n__first'(X1, X2)) → first'(activate'(X1), activate'(X2))
activate'(X) → X

Types:
terms' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
cons' :: recip' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
recip' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → recip'
sqr' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
n__terms' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
n__s' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
0' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
s' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
n__add' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
n__sqr' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
activate' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
n__dbl' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
dbl' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
add' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
first' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
nil' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
n__first' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
_hole_n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'1 :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
_hole_recip'2 :: recip'
_gen_n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'3 :: Nat → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'

Generator Equations:
_gen_n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'3(0) ⇔ 0'
_gen_n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'3(+(x, 1)) ⇔ cons'(recip'(0'), _gen_n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'3(x))

The following defined symbols remain to be analysed:
dbl'

They will be analysed ascendingly in the following order:
terms' = sqr'
terms' = activate'
terms' = dbl'
sqr' = activate'
sqr' = dbl'
activate' = dbl'


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


Rules:
terms'(N) → cons'(recip'(sqr'(N)), n__terms'(n__s'(N)))
sqr'(0') → 0'
sqr'(s'(X)) → s'(n__add'(n__sqr'(activate'(X)), n__dbl'(activate'(X))))
dbl'(0') → 0'
dbl'(s'(X)) → s'(n__s'(n__dbl'(activate'(X))))
add'(0', X) → X
add'(s'(X), Y) → s'(n__add'(activate'(X), Y))
first'(0', X) → nil'
first'(s'(X), cons'(Y, Z)) → cons'(Y, n__first'(activate'(X), activate'(Z)))
terms'(X) → n__terms'(X)
s'(X) → n__s'(X)
add'(X1, X2) → n__add'(X1, X2)
sqr'(X) → n__sqr'(X)
dbl'(X) → n__dbl'(X)
first'(X1, X2) → n__first'(X1, X2)
activate'(n__terms'(X)) → terms'(activate'(X))
activate'(n__s'(X)) → s'(X)
activate'(n__add'(X1, X2)) → add'(activate'(X1), activate'(X2))
activate'(n__sqr'(X)) → sqr'(activate'(X))
activate'(n__dbl'(X)) → dbl'(activate'(X))
activate'(n__first'(X1, X2)) → first'(activate'(X1), activate'(X2))
activate'(X) → X

Types:
terms' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
cons' :: recip' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
recip' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → recip'
sqr' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
n__terms' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
n__s' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
0' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
s' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
n__add' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
n__sqr' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
activate' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
n__dbl' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
dbl' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
add' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
first' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
nil' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
n__first' :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first' → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
_hole_n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'1 :: n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'
_hole_recip'2 :: recip'
_gen_n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'3 :: Nat → n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'

Generator Equations:
_gen_n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'3(0) ⇔ 0'
_gen_n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'3(+(x, 1)) ⇔ cons'(recip'(0'), _gen_n__s':n__terms':cons':0':n__sqr':n__dbl':n__add':nil':n__first'3(x))

No more defined symbols left to analyse.