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

active(pairNs) → mark(cons(0, incr(oddNs)))
active(oddNs) → mark(incr(pairNs))
active(incr(cons(X, XS))) → mark(cons(s(X), incr(XS)))
active(take(0, XS)) → mark(nil)
active(take(s(N), cons(X, XS))) → mark(cons(X, take(N, XS)))
active(zip(nil, XS)) → mark(nil)
active(zip(X, nil)) → mark(nil)
active(zip(cons(X, XS), cons(Y, YS))) → mark(cons(pair(X, Y), zip(XS, YS)))
active(tail(cons(X, XS))) → mark(XS)
active(repItems(nil)) → mark(nil)
active(repItems(cons(X, XS))) → mark(cons(X, cons(X, repItems(XS))))
active(cons(X1, X2)) → cons(active(X1), X2)
active(incr(X)) → incr(active(X))
active(s(X)) → s(active(X))
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(zip(X1, X2)) → zip(active(X1), X2)
active(zip(X1, X2)) → zip(X1, active(X2))
active(pair(X1, X2)) → pair(active(X1), X2)
active(pair(X1, X2)) → pair(X1, active(X2))
active(tail(X)) → tail(active(X))
active(repItems(X)) → repItems(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
incr(mark(X)) → mark(incr(X))
s(mark(X)) → mark(s(X))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
zip(mark(X1), X2) → mark(zip(X1, X2))
zip(X1, mark(X2)) → mark(zip(X1, X2))
pair(mark(X1), X2) → mark(pair(X1, X2))
pair(X1, mark(X2)) → mark(pair(X1, X2))
tail(mark(X)) → mark(tail(X))
repItems(mark(X)) → mark(repItems(X))
proper(pairNs) → ok(pairNs)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0) → ok(0)
proper(incr(X)) → incr(proper(X))
proper(oddNs) → ok(oddNs)
proper(s(X)) → s(proper(X))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(nil) → ok(nil)
proper(zip(X1, X2)) → zip(proper(X1), proper(X2))
proper(pair(X1, X2)) → pair(proper(X1), proper(X2))
proper(tail(X)) → tail(proper(X))
proper(repItems(X)) → repItems(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
incr(ok(X)) → ok(incr(X))
s(ok(X)) → ok(s(X))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
zip(ok(X1), ok(X2)) → ok(zip(X1, X2))
pair(ok(X1), ok(X2)) → ok(pair(X1, X2))
tail(ok(X)) → ok(tail(X))
repItems(ok(X)) → ok(repItems(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Rewrite Strategy: INNERMOST


Renamed function symbols to avoid clashes with predefined symbol.


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


active'(pairNs') → mark'(cons'(0', incr'(oddNs')))
active'(oddNs') → mark'(incr'(pairNs'))
active'(incr'(cons'(X, XS))) → mark'(cons'(s'(X), incr'(XS)))
active'(take'(0', XS)) → mark'(nil')
active'(take'(s'(N), cons'(X, XS))) → mark'(cons'(X, take'(N, XS)))
active'(zip'(nil', XS)) → mark'(nil')
active'(zip'(X, nil')) → mark'(nil')
active'(zip'(cons'(X, XS), cons'(Y, YS))) → mark'(cons'(pair'(X, Y), zip'(XS, YS)))
active'(tail'(cons'(X, XS))) → mark'(XS)
active'(repItems'(nil')) → mark'(nil')
active'(repItems'(cons'(X, XS))) → mark'(cons'(X, cons'(X, repItems'(XS))))
active'(cons'(X1, X2)) → cons'(active'(X1), X2)
active'(incr'(X)) → incr'(active'(X))
active'(s'(X)) → s'(active'(X))
active'(take'(X1, X2)) → take'(active'(X1), X2)
active'(take'(X1, X2)) → take'(X1, active'(X2))
active'(zip'(X1, X2)) → zip'(active'(X1), X2)
active'(zip'(X1, X2)) → zip'(X1, active'(X2))
active'(pair'(X1, X2)) → pair'(active'(X1), X2)
active'(pair'(X1, X2)) → pair'(X1, active'(X2))
active'(tail'(X)) → tail'(active'(X))
active'(repItems'(X)) → repItems'(active'(X))
cons'(mark'(X1), X2) → mark'(cons'(X1, X2))
incr'(mark'(X)) → mark'(incr'(X))
s'(mark'(X)) → mark'(s'(X))
take'(mark'(X1), X2) → mark'(take'(X1, X2))
take'(X1, mark'(X2)) → mark'(take'(X1, X2))
zip'(mark'(X1), X2) → mark'(zip'(X1, X2))
zip'(X1, mark'(X2)) → mark'(zip'(X1, X2))
pair'(mark'(X1), X2) → mark'(pair'(X1, X2))
pair'(X1, mark'(X2)) → mark'(pair'(X1, X2))
tail'(mark'(X)) → mark'(tail'(X))
repItems'(mark'(X)) → mark'(repItems'(X))
proper'(pairNs') → ok'(pairNs')
proper'(cons'(X1, X2)) → cons'(proper'(X1), proper'(X2))
proper'(0') → ok'(0')
proper'(incr'(X)) → incr'(proper'(X))
proper'(oddNs') → ok'(oddNs')
proper'(s'(X)) → s'(proper'(X))
proper'(take'(X1, X2)) → take'(proper'(X1), proper'(X2))
proper'(nil') → ok'(nil')
proper'(zip'(X1, X2)) → zip'(proper'(X1), proper'(X2))
proper'(pair'(X1, X2)) → pair'(proper'(X1), proper'(X2))
proper'(tail'(X)) → tail'(proper'(X))
proper'(repItems'(X)) → repItems'(proper'(X))
cons'(ok'(X1), ok'(X2)) → ok'(cons'(X1, X2))
incr'(ok'(X)) → ok'(incr'(X))
s'(ok'(X)) → ok'(s'(X))
take'(ok'(X1), ok'(X2)) → ok'(take'(X1, X2))
zip'(ok'(X1), ok'(X2)) → ok'(zip'(X1, X2))
pair'(ok'(X1), ok'(X2)) → ok'(pair'(X1, X2))
tail'(ok'(X)) → ok'(tail'(X))
repItems'(ok'(X)) → ok'(repItems'(X))
top'(mark'(X)) → top'(proper'(X))
top'(ok'(X)) → top'(active'(X))

Rewrite Strategy: INNERMOST


Infered types.


Rules:
active'(pairNs') → mark'(cons'(0', incr'(oddNs')))
active'(oddNs') → mark'(incr'(pairNs'))
active'(incr'(cons'(X, XS))) → mark'(cons'(s'(X), incr'(XS)))
active'(take'(0', XS)) → mark'(nil')
active'(take'(s'(N), cons'(X, XS))) → mark'(cons'(X, take'(N, XS)))
active'(zip'(nil', XS)) → mark'(nil')
active'(zip'(X, nil')) → mark'(nil')
active'(zip'(cons'(X, XS), cons'(Y, YS))) → mark'(cons'(pair'(X, Y), zip'(XS, YS)))
active'(tail'(cons'(X, XS))) → mark'(XS)
active'(repItems'(nil')) → mark'(nil')
active'(repItems'(cons'(X, XS))) → mark'(cons'(X, cons'(X, repItems'(XS))))
active'(cons'(X1, X2)) → cons'(active'(X1), X2)
active'(incr'(X)) → incr'(active'(X))
active'(s'(X)) → s'(active'(X))
active'(take'(X1, X2)) → take'(active'(X1), X2)
active'(take'(X1, X2)) → take'(X1, active'(X2))
active'(zip'(X1, X2)) → zip'(active'(X1), X2)
active'(zip'(X1, X2)) → zip'(X1, active'(X2))
active'(pair'(X1, X2)) → pair'(active'(X1), X2)
active'(pair'(X1, X2)) → pair'(X1, active'(X2))
active'(tail'(X)) → tail'(active'(X))
active'(repItems'(X)) → repItems'(active'(X))
cons'(mark'(X1), X2) → mark'(cons'(X1, X2))
incr'(mark'(X)) → mark'(incr'(X))
s'(mark'(X)) → mark'(s'(X))
take'(mark'(X1), X2) → mark'(take'(X1, X2))
take'(X1, mark'(X2)) → mark'(take'(X1, X2))
zip'(mark'(X1), X2) → mark'(zip'(X1, X2))
zip'(X1, mark'(X2)) → mark'(zip'(X1, X2))
pair'(mark'(X1), X2) → mark'(pair'(X1, X2))
pair'(X1, mark'(X2)) → mark'(pair'(X1, X2))
tail'(mark'(X)) → mark'(tail'(X))
repItems'(mark'(X)) → mark'(repItems'(X))
proper'(pairNs') → ok'(pairNs')
proper'(cons'(X1, X2)) → cons'(proper'(X1), proper'(X2))
proper'(0') → ok'(0')
proper'(incr'(X)) → incr'(proper'(X))
proper'(oddNs') → ok'(oddNs')
proper'(s'(X)) → s'(proper'(X))
proper'(take'(X1, X2)) → take'(proper'(X1), proper'(X2))
proper'(nil') → ok'(nil')
proper'(zip'(X1, X2)) → zip'(proper'(X1), proper'(X2))
proper'(pair'(X1, X2)) → pair'(proper'(X1), proper'(X2))
proper'(tail'(X)) → tail'(proper'(X))
proper'(repItems'(X)) → repItems'(proper'(X))
cons'(ok'(X1), ok'(X2)) → ok'(cons'(X1, X2))
incr'(ok'(X)) → ok'(incr'(X))
s'(ok'(X)) → ok'(s'(X))
take'(ok'(X1), ok'(X2)) → ok'(take'(X1, X2))
zip'(ok'(X1), ok'(X2)) → ok'(zip'(X1, X2))
pair'(ok'(X1), ok'(X2)) → ok'(pair'(X1, X2))
tail'(ok'(X)) → ok'(tail'(X))
repItems'(ok'(X)) → ok'(repItems'(X))
top'(mark'(X)) → top'(proper'(X))
top'(ok'(X)) → top'(active'(X))

Types:
active' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
pairNs' :: pairNs':0':oddNs':mark':nil':ok'
mark' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
cons' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
0' :: pairNs':0':oddNs':mark':nil':ok'
incr' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
oddNs' :: pairNs':0':oddNs':mark':nil':ok'
s' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
take' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
nil' :: pairNs':0':oddNs':mark':nil':ok'
zip' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
pair' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
tail' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
repItems' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
proper' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
ok' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
top' :: pairNs':0':oddNs':mark':nil':ok' → top'
_hole_pairNs':0':oddNs':mark':nil':ok'1 :: pairNs':0':oddNs':mark':nil':ok'
_hole_top'2 :: top'
_gen_pairNs':0':oddNs':mark':nil':ok'3 :: Nat → pairNs':0':oddNs':mark':nil':ok'


Heuristically decided to analyse the following defined symbols:
active', cons', incr', s', take', pair', zip', repItems', tail', proper', top'

They will be analysed ascendingly in the following order:
cons' < active'
incr' < active'
s' < active'
take' < active'
pair' < active'
zip' < active'
repItems' < active'
tail' < active'
active' < top'
cons' < proper'
incr' < proper'
s' < proper'
take' < proper'
pair' < proper'
zip' < proper'
repItems' < proper'
tail' < proper'
proper' < top'


Rules:
active'(pairNs') → mark'(cons'(0', incr'(oddNs')))
active'(oddNs') → mark'(incr'(pairNs'))
active'(incr'(cons'(X, XS))) → mark'(cons'(s'(X), incr'(XS)))
active'(take'(0', XS)) → mark'(nil')
active'(take'(s'(N), cons'(X, XS))) → mark'(cons'(X, take'(N, XS)))
active'(zip'(nil', XS)) → mark'(nil')
active'(zip'(X, nil')) → mark'(nil')
active'(zip'(cons'(X, XS), cons'(Y, YS))) → mark'(cons'(pair'(X, Y), zip'(XS, YS)))
active'(tail'(cons'(X, XS))) → mark'(XS)
active'(repItems'(nil')) → mark'(nil')
active'(repItems'(cons'(X, XS))) → mark'(cons'(X, cons'(X, repItems'(XS))))
active'(cons'(X1, X2)) → cons'(active'(X1), X2)
active'(incr'(X)) → incr'(active'(X))
active'(s'(X)) → s'(active'(X))
active'(take'(X1, X2)) → take'(active'(X1), X2)
active'(take'(X1, X2)) → take'(X1, active'(X2))
active'(zip'(X1, X2)) → zip'(active'(X1), X2)
active'(zip'(X1, X2)) → zip'(X1, active'(X2))
active'(pair'(X1, X2)) → pair'(active'(X1), X2)
active'(pair'(X1, X2)) → pair'(X1, active'(X2))
active'(tail'(X)) → tail'(active'(X))
active'(repItems'(X)) → repItems'(active'(X))
cons'(mark'(X1), X2) → mark'(cons'(X1, X2))
incr'(mark'(X)) → mark'(incr'(X))
s'(mark'(X)) → mark'(s'(X))
take'(mark'(X1), X2) → mark'(take'(X1, X2))
take'(X1, mark'(X2)) → mark'(take'(X1, X2))
zip'(mark'(X1), X2) → mark'(zip'(X1, X2))
zip'(X1, mark'(X2)) → mark'(zip'(X1, X2))
pair'(mark'(X1), X2) → mark'(pair'(X1, X2))
pair'(X1, mark'(X2)) → mark'(pair'(X1, X2))
tail'(mark'(X)) → mark'(tail'(X))
repItems'(mark'(X)) → mark'(repItems'(X))
proper'(pairNs') → ok'(pairNs')
proper'(cons'(X1, X2)) → cons'(proper'(X1), proper'(X2))
proper'(0') → ok'(0')
proper'(incr'(X)) → incr'(proper'(X))
proper'(oddNs') → ok'(oddNs')
proper'(s'(X)) → s'(proper'(X))
proper'(take'(X1, X2)) → take'(proper'(X1), proper'(X2))
proper'(nil') → ok'(nil')
proper'(zip'(X1, X2)) → zip'(proper'(X1), proper'(X2))
proper'(pair'(X1, X2)) → pair'(proper'(X1), proper'(X2))
proper'(tail'(X)) → tail'(proper'(X))
proper'(repItems'(X)) → repItems'(proper'(X))
cons'(ok'(X1), ok'(X2)) → ok'(cons'(X1, X2))
incr'(ok'(X)) → ok'(incr'(X))
s'(ok'(X)) → ok'(s'(X))
take'(ok'(X1), ok'(X2)) → ok'(take'(X1, X2))
zip'(ok'(X1), ok'(X2)) → ok'(zip'(X1, X2))
pair'(ok'(X1), ok'(X2)) → ok'(pair'(X1, X2))
tail'(ok'(X)) → ok'(tail'(X))
repItems'(ok'(X)) → ok'(repItems'(X))
top'(mark'(X)) → top'(proper'(X))
top'(ok'(X)) → top'(active'(X))

Types:
active' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
pairNs' :: pairNs':0':oddNs':mark':nil':ok'
mark' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
cons' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
0' :: pairNs':0':oddNs':mark':nil':ok'
incr' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
oddNs' :: pairNs':0':oddNs':mark':nil':ok'
s' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
take' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
nil' :: pairNs':0':oddNs':mark':nil':ok'
zip' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
pair' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
tail' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
repItems' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
proper' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
ok' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
top' :: pairNs':0':oddNs':mark':nil':ok' → top'
_hole_pairNs':0':oddNs':mark':nil':ok'1 :: pairNs':0':oddNs':mark':nil':ok'
_hole_top'2 :: top'
_gen_pairNs':0':oddNs':mark':nil':ok'3 :: Nat → pairNs':0':oddNs':mark':nil':ok'

Generator Equations:
_gen_pairNs':0':oddNs':mark':nil':ok'3(0) ⇔ pairNs'
_gen_pairNs':0':oddNs':mark':nil':ok'3(+(x, 1)) ⇔ mark'(_gen_pairNs':0':oddNs':mark':nil':ok'3(x))

The following defined symbols remain to be analysed:
cons', active', incr', s', take', pair', zip', repItems', tail', proper', top'

They will be analysed ascendingly in the following order:
cons' < active'
incr' < active'
s' < active'
take' < active'
pair' < active'
zip' < active'
repItems' < active'
tail' < active'
active' < top'
cons' < proper'
incr' < proper'
s' < proper'
take' < proper'
pair' < proper'
zip' < proper'
repItems' < proper'
tail' < proper'
proper' < top'


Proved the following rewrite lemma:
cons'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, _n5)), _gen_pairNs':0':oddNs':mark':nil':ok'3(b)) → _*4, rt ∈ Ω(n5)

Induction Base:
cons'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, 0)), _gen_pairNs':0':oddNs':mark':nil':ok'3(b))

Induction Step:
cons'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, +(_$n6, 1))), _gen_pairNs':0':oddNs':mark':nil':ok'3(_b610)) →RΩ(1)
mark'(cons'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, _$n6)), _gen_pairNs':0':oddNs':mark':nil':ok'3(_b610))) →IH
mark'(_*4)

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


Rules:
active'(pairNs') → mark'(cons'(0', incr'(oddNs')))
active'(oddNs') → mark'(incr'(pairNs'))
active'(incr'(cons'(X, XS))) → mark'(cons'(s'(X), incr'(XS)))
active'(take'(0', XS)) → mark'(nil')
active'(take'(s'(N), cons'(X, XS))) → mark'(cons'(X, take'(N, XS)))
active'(zip'(nil', XS)) → mark'(nil')
active'(zip'(X, nil')) → mark'(nil')
active'(zip'(cons'(X, XS), cons'(Y, YS))) → mark'(cons'(pair'(X, Y), zip'(XS, YS)))
active'(tail'(cons'(X, XS))) → mark'(XS)
active'(repItems'(nil')) → mark'(nil')
active'(repItems'(cons'(X, XS))) → mark'(cons'(X, cons'(X, repItems'(XS))))
active'(cons'(X1, X2)) → cons'(active'(X1), X2)
active'(incr'(X)) → incr'(active'(X))
active'(s'(X)) → s'(active'(X))
active'(take'(X1, X2)) → take'(active'(X1), X2)
active'(take'(X1, X2)) → take'(X1, active'(X2))
active'(zip'(X1, X2)) → zip'(active'(X1), X2)
active'(zip'(X1, X2)) → zip'(X1, active'(X2))
active'(pair'(X1, X2)) → pair'(active'(X1), X2)
active'(pair'(X1, X2)) → pair'(X1, active'(X2))
active'(tail'(X)) → tail'(active'(X))
active'(repItems'(X)) → repItems'(active'(X))
cons'(mark'(X1), X2) → mark'(cons'(X1, X2))
incr'(mark'(X)) → mark'(incr'(X))
s'(mark'(X)) → mark'(s'(X))
take'(mark'(X1), X2) → mark'(take'(X1, X2))
take'(X1, mark'(X2)) → mark'(take'(X1, X2))
zip'(mark'(X1), X2) → mark'(zip'(X1, X2))
zip'(X1, mark'(X2)) → mark'(zip'(X1, X2))
pair'(mark'(X1), X2) → mark'(pair'(X1, X2))
pair'(X1, mark'(X2)) → mark'(pair'(X1, X2))
tail'(mark'(X)) → mark'(tail'(X))
repItems'(mark'(X)) → mark'(repItems'(X))
proper'(pairNs') → ok'(pairNs')
proper'(cons'(X1, X2)) → cons'(proper'(X1), proper'(X2))
proper'(0') → ok'(0')
proper'(incr'(X)) → incr'(proper'(X))
proper'(oddNs') → ok'(oddNs')
proper'(s'(X)) → s'(proper'(X))
proper'(take'(X1, X2)) → take'(proper'(X1), proper'(X2))
proper'(nil') → ok'(nil')
proper'(zip'(X1, X2)) → zip'(proper'(X1), proper'(X2))
proper'(pair'(X1, X2)) → pair'(proper'(X1), proper'(X2))
proper'(tail'(X)) → tail'(proper'(X))
proper'(repItems'(X)) → repItems'(proper'(X))
cons'(ok'(X1), ok'(X2)) → ok'(cons'(X1, X2))
incr'(ok'(X)) → ok'(incr'(X))
s'(ok'(X)) → ok'(s'(X))
take'(ok'(X1), ok'(X2)) → ok'(take'(X1, X2))
zip'(ok'(X1), ok'(X2)) → ok'(zip'(X1, X2))
pair'(ok'(X1), ok'(X2)) → ok'(pair'(X1, X2))
tail'(ok'(X)) → ok'(tail'(X))
repItems'(ok'(X)) → ok'(repItems'(X))
top'(mark'(X)) → top'(proper'(X))
top'(ok'(X)) → top'(active'(X))

Types:
active' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
pairNs' :: pairNs':0':oddNs':mark':nil':ok'
mark' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
cons' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
0' :: pairNs':0':oddNs':mark':nil':ok'
incr' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
oddNs' :: pairNs':0':oddNs':mark':nil':ok'
s' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
take' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
nil' :: pairNs':0':oddNs':mark':nil':ok'
zip' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
pair' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
tail' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
repItems' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
proper' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
ok' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
top' :: pairNs':0':oddNs':mark':nil':ok' → top'
_hole_pairNs':0':oddNs':mark':nil':ok'1 :: pairNs':0':oddNs':mark':nil':ok'
_hole_top'2 :: top'
_gen_pairNs':0':oddNs':mark':nil':ok'3 :: Nat → pairNs':0':oddNs':mark':nil':ok'

Lemmas:
cons'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, _n5)), _gen_pairNs':0':oddNs':mark':nil':ok'3(b)) → _*4, rt ∈ Ω(n5)

Generator Equations:
_gen_pairNs':0':oddNs':mark':nil':ok'3(0) ⇔ pairNs'
_gen_pairNs':0':oddNs':mark':nil':ok'3(+(x, 1)) ⇔ mark'(_gen_pairNs':0':oddNs':mark':nil':ok'3(x))

The following defined symbols remain to be analysed:
incr', active', s', take', pair', zip', repItems', tail', proper', top'

They will be analysed ascendingly in the following order:
incr' < active'
s' < active'
take' < active'
pair' < active'
zip' < active'
repItems' < active'
tail' < active'
active' < top'
incr' < proper'
s' < proper'
take' < proper'
pair' < proper'
zip' < proper'
repItems' < proper'
tail' < proper'
proper' < top'


Proved the following rewrite lemma:
incr'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, _n2915))) → _*4, rt ∈ Ω(n2915)

Induction Base:
incr'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, 0)))

Induction Step:
incr'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, +(_$n2916, 1)))) →RΩ(1)
mark'(incr'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, _$n2916)))) →IH
mark'(_*4)

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


Rules:
active'(pairNs') → mark'(cons'(0', incr'(oddNs')))
active'(oddNs') → mark'(incr'(pairNs'))
active'(incr'(cons'(X, XS))) → mark'(cons'(s'(X), incr'(XS)))
active'(take'(0', XS)) → mark'(nil')
active'(take'(s'(N), cons'(X, XS))) → mark'(cons'(X, take'(N, XS)))
active'(zip'(nil', XS)) → mark'(nil')
active'(zip'(X, nil')) → mark'(nil')
active'(zip'(cons'(X, XS), cons'(Y, YS))) → mark'(cons'(pair'(X, Y), zip'(XS, YS)))
active'(tail'(cons'(X, XS))) → mark'(XS)
active'(repItems'(nil')) → mark'(nil')
active'(repItems'(cons'(X, XS))) → mark'(cons'(X, cons'(X, repItems'(XS))))
active'(cons'(X1, X2)) → cons'(active'(X1), X2)
active'(incr'(X)) → incr'(active'(X))
active'(s'(X)) → s'(active'(X))
active'(take'(X1, X2)) → take'(active'(X1), X2)
active'(take'(X1, X2)) → take'(X1, active'(X2))
active'(zip'(X1, X2)) → zip'(active'(X1), X2)
active'(zip'(X1, X2)) → zip'(X1, active'(X2))
active'(pair'(X1, X2)) → pair'(active'(X1), X2)
active'(pair'(X1, X2)) → pair'(X1, active'(X2))
active'(tail'(X)) → tail'(active'(X))
active'(repItems'(X)) → repItems'(active'(X))
cons'(mark'(X1), X2) → mark'(cons'(X1, X2))
incr'(mark'(X)) → mark'(incr'(X))
s'(mark'(X)) → mark'(s'(X))
take'(mark'(X1), X2) → mark'(take'(X1, X2))
take'(X1, mark'(X2)) → mark'(take'(X1, X2))
zip'(mark'(X1), X2) → mark'(zip'(X1, X2))
zip'(X1, mark'(X2)) → mark'(zip'(X1, X2))
pair'(mark'(X1), X2) → mark'(pair'(X1, X2))
pair'(X1, mark'(X2)) → mark'(pair'(X1, X2))
tail'(mark'(X)) → mark'(tail'(X))
repItems'(mark'(X)) → mark'(repItems'(X))
proper'(pairNs') → ok'(pairNs')
proper'(cons'(X1, X2)) → cons'(proper'(X1), proper'(X2))
proper'(0') → ok'(0')
proper'(incr'(X)) → incr'(proper'(X))
proper'(oddNs') → ok'(oddNs')
proper'(s'(X)) → s'(proper'(X))
proper'(take'(X1, X2)) → take'(proper'(X1), proper'(X2))
proper'(nil') → ok'(nil')
proper'(zip'(X1, X2)) → zip'(proper'(X1), proper'(X2))
proper'(pair'(X1, X2)) → pair'(proper'(X1), proper'(X2))
proper'(tail'(X)) → tail'(proper'(X))
proper'(repItems'(X)) → repItems'(proper'(X))
cons'(ok'(X1), ok'(X2)) → ok'(cons'(X1, X2))
incr'(ok'(X)) → ok'(incr'(X))
s'(ok'(X)) → ok'(s'(X))
take'(ok'(X1), ok'(X2)) → ok'(take'(X1, X2))
zip'(ok'(X1), ok'(X2)) → ok'(zip'(X1, X2))
pair'(ok'(X1), ok'(X2)) → ok'(pair'(X1, X2))
tail'(ok'(X)) → ok'(tail'(X))
repItems'(ok'(X)) → ok'(repItems'(X))
top'(mark'(X)) → top'(proper'(X))
top'(ok'(X)) → top'(active'(X))

Types:
active' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
pairNs' :: pairNs':0':oddNs':mark':nil':ok'
mark' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
cons' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
0' :: pairNs':0':oddNs':mark':nil':ok'
incr' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
oddNs' :: pairNs':0':oddNs':mark':nil':ok'
s' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
take' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
nil' :: pairNs':0':oddNs':mark':nil':ok'
zip' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
pair' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
tail' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
repItems' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
proper' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
ok' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
top' :: pairNs':0':oddNs':mark':nil':ok' → top'
_hole_pairNs':0':oddNs':mark':nil':ok'1 :: pairNs':0':oddNs':mark':nil':ok'
_hole_top'2 :: top'
_gen_pairNs':0':oddNs':mark':nil':ok'3 :: Nat → pairNs':0':oddNs':mark':nil':ok'

Lemmas:
cons'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, _n5)), _gen_pairNs':0':oddNs':mark':nil':ok'3(b)) → _*4, rt ∈ Ω(n5)
incr'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, _n2915))) → _*4, rt ∈ Ω(n2915)

Generator Equations:
_gen_pairNs':0':oddNs':mark':nil':ok'3(0) ⇔ pairNs'
_gen_pairNs':0':oddNs':mark':nil':ok'3(+(x, 1)) ⇔ mark'(_gen_pairNs':0':oddNs':mark':nil':ok'3(x))

The following defined symbols remain to be analysed:
s', active', take', pair', zip', repItems', tail', proper', top'

They will be analysed ascendingly in the following order:
s' < active'
take' < active'
pair' < active'
zip' < active'
repItems' < active'
tail' < active'
active' < top'
s' < proper'
take' < proper'
pair' < proper'
zip' < proper'
repItems' < proper'
tail' < proper'
proper' < top'


Proved the following rewrite lemma:
s'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, _n4914))) → _*4, rt ∈ Ω(n4914)

Induction Base:
s'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, 0)))

Induction Step:
s'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, +(_$n4915, 1)))) →RΩ(1)
mark'(s'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, _$n4915)))) →IH
mark'(_*4)

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


Rules:
active'(pairNs') → mark'(cons'(0', incr'(oddNs')))
active'(oddNs') → mark'(incr'(pairNs'))
active'(incr'(cons'(X, XS))) → mark'(cons'(s'(X), incr'(XS)))
active'(take'(0', XS)) → mark'(nil')
active'(take'(s'(N), cons'(X, XS))) → mark'(cons'(X, take'(N, XS)))
active'(zip'(nil', XS)) → mark'(nil')
active'(zip'(X, nil')) → mark'(nil')
active'(zip'(cons'(X, XS), cons'(Y, YS))) → mark'(cons'(pair'(X, Y), zip'(XS, YS)))
active'(tail'(cons'(X, XS))) → mark'(XS)
active'(repItems'(nil')) → mark'(nil')
active'(repItems'(cons'(X, XS))) → mark'(cons'(X, cons'(X, repItems'(XS))))
active'(cons'(X1, X2)) → cons'(active'(X1), X2)
active'(incr'(X)) → incr'(active'(X))
active'(s'(X)) → s'(active'(X))
active'(take'(X1, X2)) → take'(active'(X1), X2)
active'(take'(X1, X2)) → take'(X1, active'(X2))
active'(zip'(X1, X2)) → zip'(active'(X1), X2)
active'(zip'(X1, X2)) → zip'(X1, active'(X2))
active'(pair'(X1, X2)) → pair'(active'(X1), X2)
active'(pair'(X1, X2)) → pair'(X1, active'(X2))
active'(tail'(X)) → tail'(active'(X))
active'(repItems'(X)) → repItems'(active'(X))
cons'(mark'(X1), X2) → mark'(cons'(X1, X2))
incr'(mark'(X)) → mark'(incr'(X))
s'(mark'(X)) → mark'(s'(X))
take'(mark'(X1), X2) → mark'(take'(X1, X2))
take'(X1, mark'(X2)) → mark'(take'(X1, X2))
zip'(mark'(X1), X2) → mark'(zip'(X1, X2))
zip'(X1, mark'(X2)) → mark'(zip'(X1, X2))
pair'(mark'(X1), X2) → mark'(pair'(X1, X2))
pair'(X1, mark'(X2)) → mark'(pair'(X1, X2))
tail'(mark'(X)) → mark'(tail'(X))
repItems'(mark'(X)) → mark'(repItems'(X))
proper'(pairNs') → ok'(pairNs')
proper'(cons'(X1, X2)) → cons'(proper'(X1), proper'(X2))
proper'(0') → ok'(0')
proper'(incr'(X)) → incr'(proper'(X))
proper'(oddNs') → ok'(oddNs')
proper'(s'(X)) → s'(proper'(X))
proper'(take'(X1, X2)) → take'(proper'(X1), proper'(X2))
proper'(nil') → ok'(nil')
proper'(zip'(X1, X2)) → zip'(proper'(X1), proper'(X2))
proper'(pair'(X1, X2)) → pair'(proper'(X1), proper'(X2))
proper'(tail'(X)) → tail'(proper'(X))
proper'(repItems'(X)) → repItems'(proper'(X))
cons'(ok'(X1), ok'(X2)) → ok'(cons'(X1, X2))
incr'(ok'(X)) → ok'(incr'(X))
s'(ok'(X)) → ok'(s'(X))
take'(ok'(X1), ok'(X2)) → ok'(take'(X1, X2))
zip'(ok'(X1), ok'(X2)) → ok'(zip'(X1, X2))
pair'(ok'(X1), ok'(X2)) → ok'(pair'(X1, X2))
tail'(ok'(X)) → ok'(tail'(X))
repItems'(ok'(X)) → ok'(repItems'(X))
top'(mark'(X)) → top'(proper'(X))
top'(ok'(X)) → top'(active'(X))

Types:
active' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
pairNs' :: pairNs':0':oddNs':mark':nil':ok'
mark' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
cons' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
0' :: pairNs':0':oddNs':mark':nil':ok'
incr' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
oddNs' :: pairNs':0':oddNs':mark':nil':ok'
s' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
take' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
nil' :: pairNs':0':oddNs':mark':nil':ok'
zip' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
pair' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
tail' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
repItems' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
proper' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
ok' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
top' :: pairNs':0':oddNs':mark':nil':ok' → top'
_hole_pairNs':0':oddNs':mark':nil':ok'1 :: pairNs':0':oddNs':mark':nil':ok'
_hole_top'2 :: top'
_gen_pairNs':0':oddNs':mark':nil':ok'3 :: Nat → pairNs':0':oddNs':mark':nil':ok'

Lemmas:
cons'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, _n5)), _gen_pairNs':0':oddNs':mark':nil':ok'3(b)) → _*4, rt ∈ Ω(n5)
incr'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, _n2915))) → _*4, rt ∈ Ω(n2915)
s'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, _n4914))) → _*4, rt ∈ Ω(n4914)

Generator Equations:
_gen_pairNs':0':oddNs':mark':nil':ok'3(0) ⇔ pairNs'
_gen_pairNs':0':oddNs':mark':nil':ok'3(+(x, 1)) ⇔ mark'(_gen_pairNs':0':oddNs':mark':nil':ok'3(x))

The following defined symbols remain to be analysed:
take', active', pair', zip', repItems', tail', proper', top'

They will be analysed ascendingly in the following order:
take' < active'
pair' < active'
zip' < active'
repItems' < active'
tail' < active'
active' < top'
take' < proper'
pair' < proper'
zip' < proper'
repItems' < proper'
tail' < proper'
proper' < top'


Proved the following rewrite lemma:
take'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, _n7037)), _gen_pairNs':0':oddNs':mark':nil':ok'3(b)) → _*4, rt ∈ Ω(n7037)

Induction Base:
take'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, 0)), _gen_pairNs':0':oddNs':mark':nil':ok'3(b))

Induction Step:
take'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, +(_$n7038, 1))), _gen_pairNs':0':oddNs':mark':nil':ok'3(_b8614)) →RΩ(1)
mark'(take'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, _$n7038)), _gen_pairNs':0':oddNs':mark':nil':ok'3(_b8614))) →IH
mark'(_*4)

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


Rules:
active'(pairNs') → mark'(cons'(0', incr'(oddNs')))
active'(oddNs') → mark'(incr'(pairNs'))
active'(incr'(cons'(X, XS))) → mark'(cons'(s'(X), incr'(XS)))
active'(take'(0', XS)) → mark'(nil')
active'(take'(s'(N), cons'(X, XS))) → mark'(cons'(X, take'(N, XS)))
active'(zip'(nil', XS)) → mark'(nil')
active'(zip'(X, nil')) → mark'(nil')
active'(zip'(cons'(X, XS), cons'(Y, YS))) → mark'(cons'(pair'(X, Y), zip'(XS, YS)))
active'(tail'(cons'(X, XS))) → mark'(XS)
active'(repItems'(nil')) → mark'(nil')
active'(repItems'(cons'(X, XS))) → mark'(cons'(X, cons'(X, repItems'(XS))))
active'(cons'(X1, X2)) → cons'(active'(X1), X2)
active'(incr'(X)) → incr'(active'(X))
active'(s'(X)) → s'(active'(X))
active'(take'(X1, X2)) → take'(active'(X1), X2)
active'(take'(X1, X2)) → take'(X1, active'(X2))
active'(zip'(X1, X2)) → zip'(active'(X1), X2)
active'(zip'(X1, X2)) → zip'(X1, active'(X2))
active'(pair'(X1, X2)) → pair'(active'(X1), X2)
active'(pair'(X1, X2)) → pair'(X1, active'(X2))
active'(tail'(X)) → tail'(active'(X))
active'(repItems'(X)) → repItems'(active'(X))
cons'(mark'(X1), X2) → mark'(cons'(X1, X2))
incr'(mark'(X)) → mark'(incr'(X))
s'(mark'(X)) → mark'(s'(X))
take'(mark'(X1), X2) → mark'(take'(X1, X2))
take'(X1, mark'(X2)) → mark'(take'(X1, X2))
zip'(mark'(X1), X2) → mark'(zip'(X1, X2))
zip'(X1, mark'(X2)) → mark'(zip'(X1, X2))
pair'(mark'(X1), X2) → mark'(pair'(X1, X2))
pair'(X1, mark'(X2)) → mark'(pair'(X1, X2))
tail'(mark'(X)) → mark'(tail'(X))
repItems'(mark'(X)) → mark'(repItems'(X))
proper'(pairNs') → ok'(pairNs')
proper'(cons'(X1, X2)) → cons'(proper'(X1), proper'(X2))
proper'(0') → ok'(0')
proper'(incr'(X)) → incr'(proper'(X))
proper'(oddNs') → ok'(oddNs')
proper'(s'(X)) → s'(proper'(X))
proper'(take'(X1, X2)) → take'(proper'(X1), proper'(X2))
proper'(nil') → ok'(nil')
proper'(zip'(X1, X2)) → zip'(proper'(X1), proper'(X2))
proper'(pair'(X1, X2)) → pair'(proper'(X1), proper'(X2))
proper'(tail'(X)) → tail'(proper'(X))
proper'(repItems'(X)) → repItems'(proper'(X))
cons'(ok'(X1), ok'(X2)) → ok'(cons'(X1, X2))
incr'(ok'(X)) → ok'(incr'(X))
s'(ok'(X)) → ok'(s'(X))
take'(ok'(X1), ok'(X2)) → ok'(take'(X1, X2))
zip'(ok'(X1), ok'(X2)) → ok'(zip'(X1, X2))
pair'(ok'(X1), ok'(X2)) → ok'(pair'(X1, X2))
tail'(ok'(X)) → ok'(tail'(X))
repItems'(ok'(X)) → ok'(repItems'(X))
top'(mark'(X)) → top'(proper'(X))
top'(ok'(X)) → top'(active'(X))

Types:
active' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
pairNs' :: pairNs':0':oddNs':mark':nil':ok'
mark' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
cons' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
0' :: pairNs':0':oddNs':mark':nil':ok'
incr' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
oddNs' :: pairNs':0':oddNs':mark':nil':ok'
s' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
take' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
nil' :: pairNs':0':oddNs':mark':nil':ok'
zip' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
pair' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
tail' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
repItems' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
proper' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
ok' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
top' :: pairNs':0':oddNs':mark':nil':ok' → top'
_hole_pairNs':0':oddNs':mark':nil':ok'1 :: pairNs':0':oddNs':mark':nil':ok'
_hole_top'2 :: top'
_gen_pairNs':0':oddNs':mark':nil':ok'3 :: Nat → pairNs':0':oddNs':mark':nil':ok'

Lemmas:
cons'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, _n5)), _gen_pairNs':0':oddNs':mark':nil':ok'3(b)) → _*4, rt ∈ Ω(n5)
incr'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, _n2915))) → _*4, rt ∈ Ω(n2915)
s'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, _n4914))) → _*4, rt ∈ Ω(n4914)
take'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, _n7037)), _gen_pairNs':0':oddNs':mark':nil':ok'3(b)) → _*4, rt ∈ Ω(n7037)

Generator Equations:
_gen_pairNs':0':oddNs':mark':nil':ok'3(0) ⇔ pairNs'
_gen_pairNs':0':oddNs':mark':nil':ok'3(+(x, 1)) ⇔ mark'(_gen_pairNs':0':oddNs':mark':nil':ok'3(x))

The following defined symbols remain to be analysed:
pair', active', zip', repItems', tail', proper', top'

They will be analysed ascendingly in the following order:
pair' < active'
zip' < active'
repItems' < active'
tail' < active'
active' < top'
pair' < proper'
zip' < proper'
repItems' < proper'
tail' < proper'
proper' < top'


Proved the following rewrite lemma:
pair'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, _n11016)), _gen_pairNs':0':oddNs':mark':nil':ok'3(b)) → _*4, rt ∈ Ω(n11016)

Induction Base:
pair'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, 0)), _gen_pairNs':0':oddNs':mark':nil':ok'3(b))

Induction Step:
pair'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, +(_$n11017, 1))), _gen_pairNs':0':oddNs':mark':nil':ok'3(_b12917)) →RΩ(1)
mark'(pair'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, _$n11017)), _gen_pairNs':0':oddNs':mark':nil':ok'3(_b12917))) →IH
mark'(_*4)

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


Rules:
active'(pairNs') → mark'(cons'(0', incr'(oddNs')))
active'(oddNs') → mark'(incr'(pairNs'))
active'(incr'(cons'(X, XS))) → mark'(cons'(s'(X), incr'(XS)))
active'(take'(0', XS)) → mark'(nil')
active'(take'(s'(N), cons'(X, XS))) → mark'(cons'(X, take'(N, XS)))
active'(zip'(nil', XS)) → mark'(nil')
active'(zip'(X, nil')) → mark'(nil')
active'(zip'(cons'(X, XS), cons'(Y, YS))) → mark'(cons'(pair'(X, Y), zip'(XS, YS)))
active'(tail'(cons'(X, XS))) → mark'(XS)
active'(repItems'(nil')) → mark'(nil')
active'(repItems'(cons'(X, XS))) → mark'(cons'(X, cons'(X, repItems'(XS))))
active'(cons'(X1, X2)) → cons'(active'(X1), X2)
active'(incr'(X)) → incr'(active'(X))
active'(s'(X)) → s'(active'(X))
active'(take'(X1, X2)) → take'(active'(X1), X2)
active'(take'(X1, X2)) → take'(X1, active'(X2))
active'(zip'(X1, X2)) → zip'(active'(X1), X2)
active'(zip'(X1, X2)) → zip'(X1, active'(X2))
active'(pair'(X1, X2)) → pair'(active'(X1), X2)
active'(pair'(X1, X2)) → pair'(X1, active'(X2))
active'(tail'(X)) → tail'(active'(X))
active'(repItems'(X)) → repItems'(active'(X))
cons'(mark'(X1), X2) → mark'(cons'(X1, X2))
incr'(mark'(X)) → mark'(incr'(X))
s'(mark'(X)) → mark'(s'(X))
take'(mark'(X1), X2) → mark'(take'(X1, X2))
take'(X1, mark'(X2)) → mark'(take'(X1, X2))
zip'(mark'(X1), X2) → mark'(zip'(X1, X2))
zip'(X1, mark'(X2)) → mark'(zip'(X1, X2))
pair'(mark'(X1), X2) → mark'(pair'(X1, X2))
pair'(X1, mark'(X2)) → mark'(pair'(X1, X2))
tail'(mark'(X)) → mark'(tail'(X))
repItems'(mark'(X)) → mark'(repItems'(X))
proper'(pairNs') → ok'(pairNs')
proper'(cons'(X1, X2)) → cons'(proper'(X1), proper'(X2))
proper'(0') → ok'(0')
proper'(incr'(X)) → incr'(proper'(X))
proper'(oddNs') → ok'(oddNs')
proper'(s'(X)) → s'(proper'(X))
proper'(take'(X1, X2)) → take'(proper'(X1), proper'(X2))
proper'(nil') → ok'(nil')
proper'(zip'(X1, X2)) → zip'(proper'(X1), proper'(X2))
proper'(pair'(X1, X2)) → pair'(proper'(X1), proper'(X2))
proper'(tail'(X)) → tail'(proper'(X))
proper'(repItems'(X)) → repItems'(proper'(X))
cons'(ok'(X1), ok'(X2)) → ok'(cons'(X1, X2))
incr'(ok'(X)) → ok'(incr'(X))
s'(ok'(X)) → ok'(s'(X))
take'(ok'(X1), ok'(X2)) → ok'(take'(X1, X2))
zip'(ok'(X1), ok'(X2)) → ok'(zip'(X1, X2))
pair'(ok'(X1), ok'(X2)) → ok'(pair'(X1, X2))
tail'(ok'(X)) → ok'(tail'(X))
repItems'(ok'(X)) → ok'(repItems'(X))
top'(mark'(X)) → top'(proper'(X))
top'(ok'(X)) → top'(active'(X))

Types:
active' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
pairNs' :: pairNs':0':oddNs':mark':nil':ok'
mark' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
cons' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
0' :: pairNs':0':oddNs':mark':nil':ok'
incr' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
oddNs' :: pairNs':0':oddNs':mark':nil':ok'
s' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
take' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
nil' :: pairNs':0':oddNs':mark':nil':ok'
zip' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
pair' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
tail' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
repItems' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
proper' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
ok' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
top' :: pairNs':0':oddNs':mark':nil':ok' → top'
_hole_pairNs':0':oddNs':mark':nil':ok'1 :: pairNs':0':oddNs':mark':nil':ok'
_hole_top'2 :: top'
_gen_pairNs':0':oddNs':mark':nil':ok'3 :: Nat → pairNs':0':oddNs':mark':nil':ok'

Lemmas:
cons'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, _n5)), _gen_pairNs':0':oddNs':mark':nil':ok'3(b)) → _*4, rt ∈ Ω(n5)
incr'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, _n2915))) → _*4, rt ∈ Ω(n2915)
s'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, _n4914))) → _*4, rt ∈ Ω(n4914)
take'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, _n7037)), _gen_pairNs':0':oddNs':mark':nil':ok'3(b)) → _*4, rt ∈ Ω(n7037)
pair'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, _n11016)), _gen_pairNs':0':oddNs':mark':nil':ok'3(b)) → _*4, rt ∈ Ω(n11016)

Generator Equations:
_gen_pairNs':0':oddNs':mark':nil':ok'3(0) ⇔ pairNs'
_gen_pairNs':0':oddNs':mark':nil':ok'3(+(x, 1)) ⇔ mark'(_gen_pairNs':0':oddNs':mark':nil':ok'3(x))

The following defined symbols remain to be analysed:
zip', active', repItems', tail', proper', top'

They will be analysed ascendingly in the following order:
zip' < active'
repItems' < active'
tail' < active'
active' < top'
zip' < proper'
repItems' < proper'
tail' < proper'
proper' < top'


Proved the following rewrite lemma:
zip'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, _n15363)), _gen_pairNs':0':oddNs':mark':nil':ok'3(b)) → _*4, rt ∈ Ω(n15363)

Induction Base:
zip'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, 0)), _gen_pairNs':0':oddNs':mark':nil':ok'3(b))

Induction Step:
zip'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, +(_$n15364, 1))), _gen_pairNs':0':oddNs':mark':nil':ok'3(_b17588)) →RΩ(1)
mark'(zip'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, _$n15364)), _gen_pairNs':0':oddNs':mark':nil':ok'3(_b17588))) →IH
mark'(_*4)

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


Rules:
active'(pairNs') → mark'(cons'(0', incr'(oddNs')))
active'(oddNs') → mark'(incr'(pairNs'))
active'(incr'(cons'(X, XS))) → mark'(cons'(s'(X), incr'(XS)))
active'(take'(0', XS)) → mark'(nil')
active'(take'(s'(N), cons'(X, XS))) → mark'(cons'(X, take'(N, XS)))
active'(zip'(nil', XS)) → mark'(nil')
active'(zip'(X, nil')) → mark'(nil')
active'(zip'(cons'(X, XS), cons'(Y, YS))) → mark'(cons'(pair'(X, Y), zip'(XS, YS)))
active'(tail'(cons'(X, XS))) → mark'(XS)
active'(repItems'(nil')) → mark'(nil')
active'(repItems'(cons'(X, XS))) → mark'(cons'(X, cons'(X, repItems'(XS))))
active'(cons'(X1, X2)) → cons'(active'(X1), X2)
active'(incr'(X)) → incr'(active'(X))
active'(s'(X)) → s'(active'(X))
active'(take'(X1, X2)) → take'(active'(X1), X2)
active'(take'(X1, X2)) → take'(X1, active'(X2))
active'(zip'(X1, X2)) → zip'(active'(X1), X2)
active'(zip'(X1, X2)) → zip'(X1, active'(X2))
active'(pair'(X1, X2)) → pair'(active'(X1), X2)
active'(pair'(X1, X2)) → pair'(X1, active'(X2))
active'(tail'(X)) → tail'(active'(X))
active'(repItems'(X)) → repItems'(active'(X))
cons'(mark'(X1), X2) → mark'(cons'(X1, X2))
incr'(mark'(X)) → mark'(incr'(X))
s'(mark'(X)) → mark'(s'(X))
take'(mark'(X1), X2) → mark'(take'(X1, X2))
take'(X1, mark'(X2)) → mark'(take'(X1, X2))
zip'(mark'(X1), X2) → mark'(zip'(X1, X2))
zip'(X1, mark'(X2)) → mark'(zip'(X1, X2))
pair'(mark'(X1), X2) → mark'(pair'(X1, X2))
pair'(X1, mark'(X2)) → mark'(pair'(X1, X2))
tail'(mark'(X)) → mark'(tail'(X))
repItems'(mark'(X)) → mark'(repItems'(X))
proper'(pairNs') → ok'(pairNs')
proper'(cons'(X1, X2)) → cons'(proper'(X1), proper'(X2))
proper'(0') → ok'(0')
proper'(incr'(X)) → incr'(proper'(X))
proper'(oddNs') → ok'(oddNs')
proper'(s'(X)) → s'(proper'(X))
proper'(take'(X1, X2)) → take'(proper'(X1), proper'(X2))
proper'(nil') → ok'(nil')
proper'(zip'(X1, X2)) → zip'(proper'(X1), proper'(X2))
proper'(pair'(X1, X2)) → pair'(proper'(X1), proper'(X2))
proper'(tail'(X)) → tail'(proper'(X))
proper'(repItems'(X)) → repItems'(proper'(X))
cons'(ok'(X1), ok'(X2)) → ok'(cons'(X1, X2))
incr'(ok'(X)) → ok'(incr'(X))
s'(ok'(X)) → ok'(s'(X))
take'(ok'(X1), ok'(X2)) → ok'(take'(X1, X2))
zip'(ok'(X1), ok'(X2)) → ok'(zip'(X1, X2))
pair'(ok'(X1), ok'(X2)) → ok'(pair'(X1, X2))
tail'(ok'(X)) → ok'(tail'(X))
repItems'(ok'(X)) → ok'(repItems'(X))
top'(mark'(X)) → top'(proper'(X))
top'(ok'(X)) → top'(active'(X))

Types:
active' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
pairNs' :: pairNs':0':oddNs':mark':nil':ok'
mark' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
cons' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
0' :: pairNs':0':oddNs':mark':nil':ok'
incr' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
oddNs' :: pairNs':0':oddNs':mark':nil':ok'
s' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
take' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
nil' :: pairNs':0':oddNs':mark':nil':ok'
zip' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
pair' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
tail' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
repItems' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
proper' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
ok' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
top' :: pairNs':0':oddNs':mark':nil':ok' → top'
_hole_pairNs':0':oddNs':mark':nil':ok'1 :: pairNs':0':oddNs':mark':nil':ok'
_hole_top'2 :: top'
_gen_pairNs':0':oddNs':mark':nil':ok'3 :: Nat → pairNs':0':oddNs':mark':nil':ok'

Lemmas:
cons'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, _n5)), _gen_pairNs':0':oddNs':mark':nil':ok'3(b)) → _*4, rt ∈ Ω(n5)
incr'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, _n2915))) → _*4, rt ∈ Ω(n2915)
s'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, _n4914))) → _*4, rt ∈ Ω(n4914)
take'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, _n7037)), _gen_pairNs':0':oddNs':mark':nil':ok'3(b)) → _*4, rt ∈ Ω(n7037)
pair'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, _n11016)), _gen_pairNs':0':oddNs':mark':nil':ok'3(b)) → _*4, rt ∈ Ω(n11016)
zip'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, _n15363)), _gen_pairNs':0':oddNs':mark':nil':ok'3(b)) → _*4, rt ∈ Ω(n15363)

Generator Equations:
_gen_pairNs':0':oddNs':mark':nil':ok'3(0) ⇔ pairNs'
_gen_pairNs':0':oddNs':mark':nil':ok'3(+(x, 1)) ⇔ mark'(_gen_pairNs':0':oddNs':mark':nil':ok'3(x))

The following defined symbols remain to be analysed:
repItems', active', tail', proper', top'

They will be analysed ascendingly in the following order:
repItems' < active'
tail' < active'
active' < top'
repItems' < proper'
tail' < proper'
proper' < top'


Proved the following rewrite lemma:
repItems'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, _n20078))) → _*4, rt ∈ Ω(n20078)

Induction Base:
repItems'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, 0)))

Induction Step:
repItems'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, +(_$n20079, 1)))) →RΩ(1)
mark'(repItems'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, _$n20079)))) →IH
mark'(_*4)

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


Rules:
active'(pairNs') → mark'(cons'(0', incr'(oddNs')))
active'(oddNs') → mark'(incr'(pairNs'))
active'(incr'(cons'(X, XS))) → mark'(cons'(s'(X), incr'(XS)))
active'(take'(0', XS)) → mark'(nil')
active'(take'(s'(N), cons'(X, XS))) → mark'(cons'(X, take'(N, XS)))
active'(zip'(nil', XS)) → mark'(nil')
active'(zip'(X, nil')) → mark'(nil')
active'(zip'(cons'(X, XS), cons'(Y, YS))) → mark'(cons'(pair'(X, Y), zip'(XS, YS)))
active'(tail'(cons'(X, XS))) → mark'(XS)
active'(repItems'(nil')) → mark'(nil')
active'(repItems'(cons'(X, XS))) → mark'(cons'(X, cons'(X, repItems'(XS))))
active'(cons'(X1, X2)) → cons'(active'(X1), X2)
active'(incr'(X)) → incr'(active'(X))
active'(s'(X)) → s'(active'(X))
active'(take'(X1, X2)) → take'(active'(X1), X2)
active'(take'(X1, X2)) → take'(X1, active'(X2))
active'(zip'(X1, X2)) → zip'(active'(X1), X2)
active'(zip'(X1, X2)) → zip'(X1, active'(X2))
active'(pair'(X1, X2)) → pair'(active'(X1), X2)
active'(pair'(X1, X2)) → pair'(X1, active'(X2))
active'(tail'(X)) → tail'(active'(X))
active'(repItems'(X)) → repItems'(active'(X))
cons'(mark'(X1), X2) → mark'(cons'(X1, X2))
incr'(mark'(X)) → mark'(incr'(X))
s'(mark'(X)) → mark'(s'(X))
take'(mark'(X1), X2) → mark'(take'(X1, X2))
take'(X1, mark'(X2)) → mark'(take'(X1, X2))
zip'(mark'(X1), X2) → mark'(zip'(X1, X2))
zip'(X1, mark'(X2)) → mark'(zip'(X1, X2))
pair'(mark'(X1), X2) → mark'(pair'(X1, X2))
pair'(X1, mark'(X2)) → mark'(pair'(X1, X2))
tail'(mark'(X)) → mark'(tail'(X))
repItems'(mark'(X)) → mark'(repItems'(X))
proper'(pairNs') → ok'(pairNs')
proper'(cons'(X1, X2)) → cons'(proper'(X1), proper'(X2))
proper'(0') → ok'(0')
proper'(incr'(X)) → incr'(proper'(X))
proper'(oddNs') → ok'(oddNs')
proper'(s'(X)) → s'(proper'(X))
proper'(take'(X1, X2)) → take'(proper'(X1), proper'(X2))
proper'(nil') → ok'(nil')
proper'(zip'(X1, X2)) → zip'(proper'(X1), proper'(X2))
proper'(pair'(X1, X2)) → pair'(proper'(X1), proper'(X2))
proper'(tail'(X)) → tail'(proper'(X))
proper'(repItems'(X)) → repItems'(proper'(X))
cons'(ok'(X1), ok'(X2)) → ok'(cons'(X1, X2))
incr'(ok'(X)) → ok'(incr'(X))
s'(ok'(X)) → ok'(s'(X))
take'(ok'(X1), ok'(X2)) → ok'(take'(X1, X2))
zip'(ok'(X1), ok'(X2)) → ok'(zip'(X1, X2))
pair'(ok'(X1), ok'(X2)) → ok'(pair'(X1, X2))
tail'(ok'(X)) → ok'(tail'(X))
repItems'(ok'(X)) → ok'(repItems'(X))
top'(mark'(X)) → top'(proper'(X))
top'(ok'(X)) → top'(active'(X))

Types:
active' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
pairNs' :: pairNs':0':oddNs':mark':nil':ok'
mark' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
cons' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
0' :: pairNs':0':oddNs':mark':nil':ok'
incr' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
oddNs' :: pairNs':0':oddNs':mark':nil':ok'
s' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
take' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
nil' :: pairNs':0':oddNs':mark':nil':ok'
zip' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
pair' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
tail' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
repItems' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
proper' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
ok' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
top' :: pairNs':0':oddNs':mark':nil':ok' → top'
_hole_pairNs':0':oddNs':mark':nil':ok'1 :: pairNs':0':oddNs':mark':nil':ok'
_hole_top'2 :: top'
_gen_pairNs':0':oddNs':mark':nil':ok'3 :: Nat → pairNs':0':oddNs':mark':nil':ok'

Lemmas:
cons'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, _n5)), _gen_pairNs':0':oddNs':mark':nil':ok'3(b)) → _*4, rt ∈ Ω(n5)
incr'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, _n2915))) → _*4, rt ∈ Ω(n2915)
s'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, _n4914))) → _*4, rt ∈ Ω(n4914)
take'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, _n7037)), _gen_pairNs':0':oddNs':mark':nil':ok'3(b)) → _*4, rt ∈ Ω(n7037)
pair'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, _n11016)), _gen_pairNs':0':oddNs':mark':nil':ok'3(b)) → _*4, rt ∈ Ω(n11016)
zip'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, _n15363)), _gen_pairNs':0':oddNs':mark':nil':ok'3(b)) → _*4, rt ∈ Ω(n15363)
repItems'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, _n20078))) → _*4, rt ∈ Ω(n20078)

Generator Equations:
_gen_pairNs':0':oddNs':mark':nil':ok'3(0) ⇔ pairNs'
_gen_pairNs':0':oddNs':mark':nil':ok'3(+(x, 1)) ⇔ mark'(_gen_pairNs':0':oddNs':mark':nil':ok'3(x))

The following defined symbols remain to be analysed:
tail', active', proper', top'

They will be analysed ascendingly in the following order:
tail' < active'
active' < top'
tail' < proper'
proper' < top'


Proved the following rewrite lemma:
tail'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, _n22898))) → _*4, rt ∈ Ω(n22898)

Induction Base:
tail'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, 0)))

Induction Step:
tail'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, +(_$n22899, 1)))) →RΩ(1)
mark'(tail'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, _$n22899)))) →IH
mark'(_*4)

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


Rules:
active'(pairNs') → mark'(cons'(0', incr'(oddNs')))
active'(oddNs') → mark'(incr'(pairNs'))
active'(incr'(cons'(X, XS))) → mark'(cons'(s'(X), incr'(XS)))
active'(take'(0', XS)) → mark'(nil')
active'(take'(s'(N), cons'(X, XS))) → mark'(cons'(X, take'(N, XS)))
active'(zip'(nil', XS)) → mark'(nil')
active'(zip'(X, nil')) → mark'(nil')
active'(zip'(cons'(X, XS), cons'(Y, YS))) → mark'(cons'(pair'(X, Y), zip'(XS, YS)))
active'(tail'(cons'(X, XS))) → mark'(XS)
active'(repItems'(nil')) → mark'(nil')
active'(repItems'(cons'(X, XS))) → mark'(cons'(X, cons'(X, repItems'(XS))))
active'(cons'(X1, X2)) → cons'(active'(X1), X2)
active'(incr'(X)) → incr'(active'(X))
active'(s'(X)) → s'(active'(X))
active'(take'(X1, X2)) → take'(active'(X1), X2)
active'(take'(X1, X2)) → take'(X1, active'(X2))
active'(zip'(X1, X2)) → zip'(active'(X1), X2)
active'(zip'(X1, X2)) → zip'(X1, active'(X2))
active'(pair'(X1, X2)) → pair'(active'(X1), X2)
active'(pair'(X1, X2)) → pair'(X1, active'(X2))
active'(tail'(X)) → tail'(active'(X))
active'(repItems'(X)) → repItems'(active'(X))
cons'(mark'(X1), X2) → mark'(cons'(X1, X2))
incr'(mark'(X)) → mark'(incr'(X))
s'(mark'(X)) → mark'(s'(X))
take'(mark'(X1), X2) → mark'(take'(X1, X2))
take'(X1, mark'(X2)) → mark'(take'(X1, X2))
zip'(mark'(X1), X2) → mark'(zip'(X1, X2))
zip'(X1, mark'(X2)) → mark'(zip'(X1, X2))
pair'(mark'(X1), X2) → mark'(pair'(X1, X2))
pair'(X1, mark'(X2)) → mark'(pair'(X1, X2))
tail'(mark'(X)) → mark'(tail'(X))
repItems'(mark'(X)) → mark'(repItems'(X))
proper'(pairNs') → ok'(pairNs')
proper'(cons'(X1, X2)) → cons'(proper'(X1), proper'(X2))
proper'(0') → ok'(0')
proper'(incr'(X)) → incr'(proper'(X))
proper'(oddNs') → ok'(oddNs')
proper'(s'(X)) → s'(proper'(X))
proper'(take'(X1, X2)) → take'(proper'(X1), proper'(X2))
proper'(nil') → ok'(nil')
proper'(zip'(X1, X2)) → zip'(proper'(X1), proper'(X2))
proper'(pair'(X1, X2)) → pair'(proper'(X1), proper'(X2))
proper'(tail'(X)) → tail'(proper'(X))
proper'(repItems'(X)) → repItems'(proper'(X))
cons'(ok'(X1), ok'(X2)) → ok'(cons'(X1, X2))
incr'(ok'(X)) → ok'(incr'(X))
s'(ok'(X)) → ok'(s'(X))
take'(ok'(X1), ok'(X2)) → ok'(take'(X1, X2))
zip'(ok'(X1), ok'(X2)) → ok'(zip'(X1, X2))
pair'(ok'(X1), ok'(X2)) → ok'(pair'(X1, X2))
tail'(ok'(X)) → ok'(tail'(X))
repItems'(ok'(X)) → ok'(repItems'(X))
top'(mark'(X)) → top'(proper'(X))
top'(ok'(X)) → top'(active'(X))

Types:
active' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
pairNs' :: pairNs':0':oddNs':mark':nil':ok'
mark' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
cons' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
0' :: pairNs':0':oddNs':mark':nil':ok'
incr' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
oddNs' :: pairNs':0':oddNs':mark':nil':ok'
s' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
take' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
nil' :: pairNs':0':oddNs':mark':nil':ok'
zip' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
pair' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
tail' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
repItems' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
proper' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
ok' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
top' :: pairNs':0':oddNs':mark':nil':ok' → top'
_hole_pairNs':0':oddNs':mark':nil':ok'1 :: pairNs':0':oddNs':mark':nil':ok'
_hole_top'2 :: top'
_gen_pairNs':0':oddNs':mark':nil':ok'3 :: Nat → pairNs':0':oddNs':mark':nil':ok'

Lemmas:
cons'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, _n5)), _gen_pairNs':0':oddNs':mark':nil':ok'3(b)) → _*4, rt ∈ Ω(n5)
incr'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, _n2915))) → _*4, rt ∈ Ω(n2915)
s'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, _n4914))) → _*4, rt ∈ Ω(n4914)
take'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, _n7037)), _gen_pairNs':0':oddNs':mark':nil':ok'3(b)) → _*4, rt ∈ Ω(n7037)
pair'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, _n11016)), _gen_pairNs':0':oddNs':mark':nil':ok'3(b)) → _*4, rt ∈ Ω(n11016)
zip'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, _n15363)), _gen_pairNs':0':oddNs':mark':nil':ok'3(b)) → _*4, rt ∈ Ω(n15363)
repItems'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, _n20078))) → _*4, rt ∈ Ω(n20078)
tail'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, _n22898))) → _*4, rt ∈ Ω(n22898)

Generator Equations:
_gen_pairNs':0':oddNs':mark':nil':ok'3(0) ⇔ pairNs'
_gen_pairNs':0':oddNs':mark':nil':ok'3(+(x, 1)) ⇔ mark'(_gen_pairNs':0':oddNs':mark':nil':ok'3(x))

The following defined symbols remain to be analysed:
active', proper', top'

They will be analysed ascendingly in the following order:
active' < top'
proper' < top'


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


Rules:
active'(pairNs') → mark'(cons'(0', incr'(oddNs')))
active'(oddNs') → mark'(incr'(pairNs'))
active'(incr'(cons'(X, XS))) → mark'(cons'(s'(X), incr'(XS)))
active'(take'(0', XS)) → mark'(nil')
active'(take'(s'(N), cons'(X, XS))) → mark'(cons'(X, take'(N, XS)))
active'(zip'(nil', XS)) → mark'(nil')
active'(zip'(X, nil')) → mark'(nil')
active'(zip'(cons'(X, XS), cons'(Y, YS))) → mark'(cons'(pair'(X, Y), zip'(XS, YS)))
active'(tail'(cons'(X, XS))) → mark'(XS)
active'(repItems'(nil')) → mark'(nil')
active'(repItems'(cons'(X, XS))) → mark'(cons'(X, cons'(X, repItems'(XS))))
active'(cons'(X1, X2)) → cons'(active'(X1), X2)
active'(incr'(X)) → incr'(active'(X))
active'(s'(X)) → s'(active'(X))
active'(take'(X1, X2)) → take'(active'(X1), X2)
active'(take'(X1, X2)) → take'(X1, active'(X2))
active'(zip'(X1, X2)) → zip'(active'(X1), X2)
active'(zip'(X1, X2)) → zip'(X1, active'(X2))
active'(pair'(X1, X2)) → pair'(active'(X1), X2)
active'(pair'(X1, X2)) → pair'(X1, active'(X2))
active'(tail'(X)) → tail'(active'(X))
active'(repItems'(X)) → repItems'(active'(X))
cons'(mark'(X1), X2) → mark'(cons'(X1, X2))
incr'(mark'(X)) → mark'(incr'(X))
s'(mark'(X)) → mark'(s'(X))
take'(mark'(X1), X2) → mark'(take'(X1, X2))
take'(X1, mark'(X2)) → mark'(take'(X1, X2))
zip'(mark'(X1), X2) → mark'(zip'(X1, X2))
zip'(X1, mark'(X2)) → mark'(zip'(X1, X2))
pair'(mark'(X1), X2) → mark'(pair'(X1, X2))
pair'(X1, mark'(X2)) → mark'(pair'(X1, X2))
tail'(mark'(X)) → mark'(tail'(X))
repItems'(mark'(X)) → mark'(repItems'(X))
proper'(pairNs') → ok'(pairNs')
proper'(cons'(X1, X2)) → cons'(proper'(X1), proper'(X2))
proper'(0') → ok'(0')
proper'(incr'(X)) → incr'(proper'(X))
proper'(oddNs') → ok'(oddNs')
proper'(s'(X)) → s'(proper'(X))
proper'(take'(X1, X2)) → take'(proper'(X1), proper'(X2))
proper'(nil') → ok'(nil')
proper'(zip'(X1, X2)) → zip'(proper'(X1), proper'(X2))
proper'(pair'(X1, X2)) → pair'(proper'(X1), proper'(X2))
proper'(tail'(X)) → tail'(proper'(X))
proper'(repItems'(X)) → repItems'(proper'(X))
cons'(ok'(X1), ok'(X2)) → ok'(cons'(X1, X2))
incr'(ok'(X)) → ok'(incr'(X))
s'(ok'(X)) → ok'(s'(X))
take'(ok'(X1), ok'(X2)) → ok'(take'(X1, X2))
zip'(ok'(X1), ok'(X2)) → ok'(zip'(X1, X2))
pair'(ok'(X1), ok'(X2)) → ok'(pair'(X1, X2))
tail'(ok'(X)) → ok'(tail'(X))
repItems'(ok'(X)) → ok'(repItems'(X))
top'(mark'(X)) → top'(proper'(X))
top'(ok'(X)) → top'(active'(X))

Types:
active' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
pairNs' :: pairNs':0':oddNs':mark':nil':ok'
mark' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
cons' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
0' :: pairNs':0':oddNs':mark':nil':ok'
incr' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
oddNs' :: pairNs':0':oddNs':mark':nil':ok'
s' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
take' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
nil' :: pairNs':0':oddNs':mark':nil':ok'
zip' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
pair' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
tail' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
repItems' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
proper' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
ok' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
top' :: pairNs':0':oddNs':mark':nil':ok' → top'
_hole_pairNs':0':oddNs':mark':nil':ok'1 :: pairNs':0':oddNs':mark':nil':ok'
_hole_top'2 :: top'
_gen_pairNs':0':oddNs':mark':nil':ok'3 :: Nat → pairNs':0':oddNs':mark':nil':ok'

Lemmas:
cons'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, _n5)), _gen_pairNs':0':oddNs':mark':nil':ok'3(b)) → _*4, rt ∈ Ω(n5)
incr'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, _n2915))) → _*4, rt ∈ Ω(n2915)
s'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, _n4914))) → _*4, rt ∈ Ω(n4914)
take'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, _n7037)), _gen_pairNs':0':oddNs':mark':nil':ok'3(b)) → _*4, rt ∈ Ω(n7037)
pair'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, _n11016)), _gen_pairNs':0':oddNs':mark':nil':ok'3(b)) → _*4, rt ∈ Ω(n11016)
zip'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, _n15363)), _gen_pairNs':0':oddNs':mark':nil':ok'3(b)) → _*4, rt ∈ Ω(n15363)
repItems'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, _n20078))) → _*4, rt ∈ Ω(n20078)
tail'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, _n22898))) → _*4, rt ∈ Ω(n22898)

Generator Equations:
_gen_pairNs':0':oddNs':mark':nil':ok'3(0) ⇔ pairNs'
_gen_pairNs':0':oddNs':mark':nil':ok'3(+(x, 1)) ⇔ mark'(_gen_pairNs':0':oddNs':mark':nil':ok'3(x))

The following defined symbols remain to be analysed:
proper', top'

They will be analysed ascendingly in the following order:
proper' < top'


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


Rules:
active'(pairNs') → mark'(cons'(0', incr'(oddNs')))
active'(oddNs') → mark'(incr'(pairNs'))
active'(incr'(cons'(X, XS))) → mark'(cons'(s'(X), incr'(XS)))
active'(take'(0', XS)) → mark'(nil')
active'(take'(s'(N), cons'(X, XS))) → mark'(cons'(X, take'(N, XS)))
active'(zip'(nil', XS)) → mark'(nil')
active'(zip'(X, nil')) → mark'(nil')
active'(zip'(cons'(X, XS), cons'(Y, YS))) → mark'(cons'(pair'(X, Y), zip'(XS, YS)))
active'(tail'(cons'(X, XS))) → mark'(XS)
active'(repItems'(nil')) → mark'(nil')
active'(repItems'(cons'(X, XS))) → mark'(cons'(X, cons'(X, repItems'(XS))))
active'(cons'(X1, X2)) → cons'(active'(X1), X2)
active'(incr'(X)) → incr'(active'(X))
active'(s'(X)) → s'(active'(X))
active'(take'(X1, X2)) → take'(active'(X1), X2)
active'(take'(X1, X2)) → take'(X1, active'(X2))
active'(zip'(X1, X2)) → zip'(active'(X1), X2)
active'(zip'(X1, X2)) → zip'(X1, active'(X2))
active'(pair'(X1, X2)) → pair'(active'(X1), X2)
active'(pair'(X1, X2)) → pair'(X1, active'(X2))
active'(tail'(X)) → tail'(active'(X))
active'(repItems'(X)) → repItems'(active'(X))
cons'(mark'(X1), X2) → mark'(cons'(X1, X2))
incr'(mark'(X)) → mark'(incr'(X))
s'(mark'(X)) → mark'(s'(X))
take'(mark'(X1), X2) → mark'(take'(X1, X2))
take'(X1, mark'(X2)) → mark'(take'(X1, X2))
zip'(mark'(X1), X2) → mark'(zip'(X1, X2))
zip'(X1, mark'(X2)) → mark'(zip'(X1, X2))
pair'(mark'(X1), X2) → mark'(pair'(X1, X2))
pair'(X1, mark'(X2)) → mark'(pair'(X1, X2))
tail'(mark'(X)) → mark'(tail'(X))
repItems'(mark'(X)) → mark'(repItems'(X))
proper'(pairNs') → ok'(pairNs')
proper'(cons'(X1, X2)) → cons'(proper'(X1), proper'(X2))
proper'(0') → ok'(0')
proper'(incr'(X)) → incr'(proper'(X))
proper'(oddNs') → ok'(oddNs')
proper'(s'(X)) → s'(proper'(X))
proper'(take'(X1, X2)) → take'(proper'(X1), proper'(X2))
proper'(nil') → ok'(nil')
proper'(zip'(X1, X2)) → zip'(proper'(X1), proper'(X2))
proper'(pair'(X1, X2)) → pair'(proper'(X1), proper'(X2))
proper'(tail'(X)) → tail'(proper'(X))
proper'(repItems'(X)) → repItems'(proper'(X))
cons'(ok'(X1), ok'(X2)) → ok'(cons'(X1, X2))
incr'(ok'(X)) → ok'(incr'(X))
s'(ok'(X)) → ok'(s'(X))
take'(ok'(X1), ok'(X2)) → ok'(take'(X1, X2))
zip'(ok'(X1), ok'(X2)) → ok'(zip'(X1, X2))
pair'(ok'(X1), ok'(X2)) → ok'(pair'(X1, X2))
tail'(ok'(X)) → ok'(tail'(X))
repItems'(ok'(X)) → ok'(repItems'(X))
top'(mark'(X)) → top'(proper'(X))
top'(ok'(X)) → top'(active'(X))

Types:
active' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
pairNs' :: pairNs':0':oddNs':mark':nil':ok'
mark' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
cons' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
0' :: pairNs':0':oddNs':mark':nil':ok'
incr' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
oddNs' :: pairNs':0':oddNs':mark':nil':ok'
s' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
take' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
nil' :: pairNs':0':oddNs':mark':nil':ok'
zip' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
pair' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
tail' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
repItems' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
proper' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
ok' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
top' :: pairNs':0':oddNs':mark':nil':ok' → top'
_hole_pairNs':0':oddNs':mark':nil':ok'1 :: pairNs':0':oddNs':mark':nil':ok'
_hole_top'2 :: top'
_gen_pairNs':0':oddNs':mark':nil':ok'3 :: Nat → pairNs':0':oddNs':mark':nil':ok'

Lemmas:
cons'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, _n5)), _gen_pairNs':0':oddNs':mark':nil':ok'3(b)) → _*4, rt ∈ Ω(n5)
incr'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, _n2915))) → _*4, rt ∈ Ω(n2915)
s'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, _n4914))) → _*4, rt ∈ Ω(n4914)
take'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, _n7037)), _gen_pairNs':0':oddNs':mark':nil':ok'3(b)) → _*4, rt ∈ Ω(n7037)
pair'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, _n11016)), _gen_pairNs':0':oddNs':mark':nil':ok'3(b)) → _*4, rt ∈ Ω(n11016)
zip'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, _n15363)), _gen_pairNs':0':oddNs':mark':nil':ok'3(b)) → _*4, rt ∈ Ω(n15363)
repItems'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, _n20078))) → _*4, rt ∈ Ω(n20078)
tail'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, _n22898))) → _*4, rt ∈ Ω(n22898)

Generator Equations:
_gen_pairNs':0':oddNs':mark':nil':ok'3(0) ⇔ pairNs'
_gen_pairNs':0':oddNs':mark':nil':ok'3(+(x, 1)) ⇔ mark'(_gen_pairNs':0':oddNs':mark':nil':ok'3(x))

The following defined symbols remain to be analysed:
top'


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


Rules:
active'(pairNs') → mark'(cons'(0', incr'(oddNs')))
active'(oddNs') → mark'(incr'(pairNs'))
active'(incr'(cons'(X, XS))) → mark'(cons'(s'(X), incr'(XS)))
active'(take'(0', XS)) → mark'(nil')
active'(take'(s'(N), cons'(X, XS))) → mark'(cons'(X, take'(N, XS)))
active'(zip'(nil', XS)) → mark'(nil')
active'(zip'(X, nil')) → mark'(nil')
active'(zip'(cons'(X, XS), cons'(Y, YS))) → mark'(cons'(pair'(X, Y), zip'(XS, YS)))
active'(tail'(cons'(X, XS))) → mark'(XS)
active'(repItems'(nil')) → mark'(nil')
active'(repItems'(cons'(X, XS))) → mark'(cons'(X, cons'(X, repItems'(XS))))
active'(cons'(X1, X2)) → cons'(active'(X1), X2)
active'(incr'(X)) → incr'(active'(X))
active'(s'(X)) → s'(active'(X))
active'(take'(X1, X2)) → take'(active'(X1), X2)
active'(take'(X1, X2)) → take'(X1, active'(X2))
active'(zip'(X1, X2)) → zip'(active'(X1), X2)
active'(zip'(X1, X2)) → zip'(X1, active'(X2))
active'(pair'(X1, X2)) → pair'(active'(X1), X2)
active'(pair'(X1, X2)) → pair'(X1, active'(X2))
active'(tail'(X)) → tail'(active'(X))
active'(repItems'(X)) → repItems'(active'(X))
cons'(mark'(X1), X2) → mark'(cons'(X1, X2))
incr'(mark'(X)) → mark'(incr'(X))
s'(mark'(X)) → mark'(s'(X))
take'(mark'(X1), X2) → mark'(take'(X1, X2))
take'(X1, mark'(X2)) → mark'(take'(X1, X2))
zip'(mark'(X1), X2) → mark'(zip'(X1, X2))
zip'(X1, mark'(X2)) → mark'(zip'(X1, X2))
pair'(mark'(X1), X2) → mark'(pair'(X1, X2))
pair'(X1, mark'(X2)) → mark'(pair'(X1, X2))
tail'(mark'(X)) → mark'(tail'(X))
repItems'(mark'(X)) → mark'(repItems'(X))
proper'(pairNs') → ok'(pairNs')
proper'(cons'(X1, X2)) → cons'(proper'(X1), proper'(X2))
proper'(0') → ok'(0')
proper'(incr'(X)) → incr'(proper'(X))
proper'(oddNs') → ok'(oddNs')
proper'(s'(X)) → s'(proper'(X))
proper'(take'(X1, X2)) → take'(proper'(X1), proper'(X2))
proper'(nil') → ok'(nil')
proper'(zip'(X1, X2)) → zip'(proper'(X1), proper'(X2))
proper'(pair'(X1, X2)) → pair'(proper'(X1), proper'(X2))
proper'(tail'(X)) → tail'(proper'(X))
proper'(repItems'(X)) → repItems'(proper'(X))
cons'(ok'(X1), ok'(X2)) → ok'(cons'(X1, X2))
incr'(ok'(X)) → ok'(incr'(X))
s'(ok'(X)) → ok'(s'(X))
take'(ok'(X1), ok'(X2)) → ok'(take'(X1, X2))
zip'(ok'(X1), ok'(X2)) → ok'(zip'(X1, X2))
pair'(ok'(X1), ok'(X2)) → ok'(pair'(X1, X2))
tail'(ok'(X)) → ok'(tail'(X))
repItems'(ok'(X)) → ok'(repItems'(X))
top'(mark'(X)) → top'(proper'(X))
top'(ok'(X)) → top'(active'(X))

Types:
active' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
pairNs' :: pairNs':0':oddNs':mark':nil':ok'
mark' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
cons' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
0' :: pairNs':0':oddNs':mark':nil':ok'
incr' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
oddNs' :: pairNs':0':oddNs':mark':nil':ok'
s' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
take' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
nil' :: pairNs':0':oddNs':mark':nil':ok'
zip' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
pair' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
tail' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
repItems' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
proper' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
ok' :: pairNs':0':oddNs':mark':nil':ok' → pairNs':0':oddNs':mark':nil':ok'
top' :: pairNs':0':oddNs':mark':nil':ok' → top'
_hole_pairNs':0':oddNs':mark':nil':ok'1 :: pairNs':0':oddNs':mark':nil':ok'
_hole_top'2 :: top'
_gen_pairNs':0':oddNs':mark':nil':ok'3 :: Nat → pairNs':0':oddNs':mark':nil':ok'

Lemmas:
cons'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, _n5)), _gen_pairNs':0':oddNs':mark':nil':ok'3(b)) → _*4, rt ∈ Ω(n5)
incr'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, _n2915))) → _*4, rt ∈ Ω(n2915)
s'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, _n4914))) → _*4, rt ∈ Ω(n4914)
take'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, _n7037)), _gen_pairNs':0':oddNs':mark':nil':ok'3(b)) → _*4, rt ∈ Ω(n7037)
pair'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, _n11016)), _gen_pairNs':0':oddNs':mark':nil':ok'3(b)) → _*4, rt ∈ Ω(n11016)
zip'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, _n15363)), _gen_pairNs':0':oddNs':mark':nil':ok'3(b)) → _*4, rt ∈ Ω(n15363)
repItems'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, _n20078))) → _*4, rt ∈ Ω(n20078)
tail'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, _n22898))) → _*4, rt ∈ Ω(n22898)

Generator Equations:
_gen_pairNs':0':oddNs':mark':nil':ok'3(0) ⇔ pairNs'
_gen_pairNs':0':oddNs':mark':nil':ok'3(+(x, 1)) ⇔ mark'(_gen_pairNs':0':oddNs':mark':nil':ok'3(x))

No more defined symbols left to analyse.


The lowerbound Ω(n) was proven with the following lemma:
cons'(_gen_pairNs':0':oddNs':mark':nil':ok'3(+(1, _n5)), _gen_pairNs':0':oddNs':mark':nil':ok'3(b)) → _*4, rt ∈ Ω(n5)