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

half(0) → 0
half(s(0)) → 0
half(s(s(x))) → s(half(x))
lastbit(0) → 0
lastbit(s(0)) → s(0)
lastbit(s(s(x))) → lastbit(x)
conv(0) → cons(nil, 0)
conv(s(x)) → cons(conv(half(s(x))), lastbit(s(x)))

Rewrite Strategy: INNERMOST


Renamed function symbols to avoid clashes with predefined symbol.


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


half'(0') → 0'
half'(s'(0')) → 0'
half'(s'(s'(x))) → s'(half'(x))
lastbit'(0') → 0'
lastbit'(s'(0')) → s'(0')
lastbit'(s'(s'(x))) → lastbit'(x)
conv'(0') → cons'(nil', 0')
conv'(s'(x)) → cons'(conv'(half'(s'(x))), lastbit'(s'(x)))

Rewrite Strategy: INNERMOST


Infered types.


Rules:
half'(0') → 0'
half'(s'(0')) → 0'
half'(s'(s'(x))) → s'(half'(x))
lastbit'(0') → 0'
lastbit'(s'(0')) → s'(0')
lastbit'(s'(s'(x))) → lastbit'(x)
conv'(0') → cons'(nil', 0')
conv'(s'(x)) → cons'(conv'(half'(s'(x))), lastbit'(s'(x)))

Types:
half' :: 0':s' → 0':s'
0' :: 0':s'
s' :: 0':s' → 0':s'
lastbit' :: 0':s' → 0':s'
conv' :: 0':s' → nil':cons'
cons' :: nil':cons' → 0':s' → nil':cons'
nil' :: nil':cons'
_hole_0':s'1 :: 0':s'
_hole_nil':cons'2 :: nil':cons'
_gen_0':s'3 :: Nat → 0':s'
_gen_nil':cons'4 :: Nat → nil':cons'


Heuristically decided to analyse the following defined symbols:
half', lastbit', conv'

They will be analysed ascendingly in the following order:
half' < conv'
lastbit' < conv'


Rules:
half'(0') → 0'
half'(s'(0')) → 0'
half'(s'(s'(x))) → s'(half'(x))
lastbit'(0') → 0'
lastbit'(s'(0')) → s'(0')
lastbit'(s'(s'(x))) → lastbit'(x)
conv'(0') → cons'(nil', 0')
conv'(s'(x)) → cons'(conv'(half'(s'(x))), lastbit'(s'(x)))

Types:
half' :: 0':s' → 0':s'
0' :: 0':s'
s' :: 0':s' → 0':s'
lastbit' :: 0':s' → 0':s'
conv' :: 0':s' → nil':cons'
cons' :: nil':cons' → 0':s' → nil':cons'
nil' :: nil':cons'
_hole_0':s'1 :: 0':s'
_hole_nil':cons'2 :: nil':cons'
_gen_0':s'3 :: Nat → 0':s'
_gen_nil':cons'4 :: Nat → nil':cons'

Generator Equations:
_gen_0':s'3(0) ⇔ 0'
_gen_0':s'3(+(x, 1)) ⇔ s'(_gen_0':s'3(x))
_gen_nil':cons'4(0) ⇔ nil'
_gen_nil':cons'4(+(x, 1)) ⇔ cons'(_gen_nil':cons'4(x), 0')

The following defined symbols remain to be analysed:
half', lastbit', conv'

They will be analysed ascendingly in the following order:
half' < conv'
lastbit' < conv'


Proved the following rewrite lemma:
half'(_gen_0':s'3(*(2, _n6))) → _gen_0':s'3(_n6), rt ∈ Ω(1 + n6)

Induction Base:
half'(_gen_0':s'3(*(2, 0))) →RΩ(1)
0'

Induction Step:
half'(_gen_0':s'3(*(2, +(_$n7, 1)))) →RΩ(1)
s'(half'(_gen_0':s'3(*(2, _$n7)))) →IH
s'(_gen_0':s'3(_$n7))

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


Rules:
half'(0') → 0'
half'(s'(0')) → 0'
half'(s'(s'(x))) → s'(half'(x))
lastbit'(0') → 0'
lastbit'(s'(0')) → s'(0')
lastbit'(s'(s'(x))) → lastbit'(x)
conv'(0') → cons'(nil', 0')
conv'(s'(x)) → cons'(conv'(half'(s'(x))), lastbit'(s'(x)))

Types:
half' :: 0':s' → 0':s'
0' :: 0':s'
s' :: 0':s' → 0':s'
lastbit' :: 0':s' → 0':s'
conv' :: 0':s' → nil':cons'
cons' :: nil':cons' → 0':s' → nil':cons'
nil' :: nil':cons'
_hole_0':s'1 :: 0':s'
_hole_nil':cons'2 :: nil':cons'
_gen_0':s'3 :: Nat → 0':s'
_gen_nil':cons'4 :: Nat → nil':cons'

Lemmas:
half'(_gen_0':s'3(*(2, _n6))) → _gen_0':s'3(_n6), rt ∈ Ω(1 + n6)

Generator Equations:
_gen_0':s'3(0) ⇔ 0'
_gen_0':s'3(+(x, 1)) ⇔ s'(_gen_0':s'3(x))
_gen_nil':cons'4(0) ⇔ nil'
_gen_nil':cons'4(+(x, 1)) ⇔ cons'(_gen_nil':cons'4(x), 0')

The following defined symbols remain to be analysed:
lastbit', conv'

They will be analysed ascendingly in the following order:
lastbit' < conv'


Proved the following rewrite lemma:
lastbit'(_gen_0':s'3(*(2, _n310))) → _gen_0':s'3(0), rt ∈ Ω(1 + n310)

Induction Base:
lastbit'(_gen_0':s'3(*(2, 0))) →RΩ(1)
0'

Induction Step:
lastbit'(_gen_0':s'3(*(2, +(_$n311, 1)))) →RΩ(1)
lastbit'(_gen_0':s'3(*(2, _$n311))) →IH
_gen_0':s'3(0)

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


Rules:
half'(0') → 0'
half'(s'(0')) → 0'
half'(s'(s'(x))) → s'(half'(x))
lastbit'(0') → 0'
lastbit'(s'(0')) → s'(0')
lastbit'(s'(s'(x))) → lastbit'(x)
conv'(0') → cons'(nil', 0')
conv'(s'(x)) → cons'(conv'(half'(s'(x))), lastbit'(s'(x)))

Types:
half' :: 0':s' → 0':s'
0' :: 0':s'
s' :: 0':s' → 0':s'
lastbit' :: 0':s' → 0':s'
conv' :: 0':s' → nil':cons'
cons' :: nil':cons' → 0':s' → nil':cons'
nil' :: nil':cons'
_hole_0':s'1 :: 0':s'
_hole_nil':cons'2 :: nil':cons'
_gen_0':s'3 :: Nat → 0':s'
_gen_nil':cons'4 :: Nat → nil':cons'

Lemmas:
half'(_gen_0':s'3(*(2, _n6))) → _gen_0':s'3(_n6), rt ∈ Ω(1 + n6)
lastbit'(_gen_0':s'3(*(2, _n310))) → _gen_0':s'3(0), rt ∈ Ω(1 + n310)

Generator Equations:
_gen_0':s'3(0) ⇔ 0'
_gen_0':s'3(+(x, 1)) ⇔ s'(_gen_0':s'3(x))
_gen_nil':cons'4(0) ⇔ nil'
_gen_nil':cons'4(+(x, 1)) ⇔ cons'(_gen_nil':cons'4(x), 0')

The following defined symbols remain to be analysed:
conv'


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


Rules:
half'(0') → 0'
half'(s'(0')) → 0'
half'(s'(s'(x))) → s'(half'(x))
lastbit'(0') → 0'
lastbit'(s'(0')) → s'(0')
lastbit'(s'(s'(x))) → lastbit'(x)
conv'(0') → cons'(nil', 0')
conv'(s'(x)) → cons'(conv'(half'(s'(x))), lastbit'(s'(x)))

Types:
half' :: 0':s' → 0':s'
0' :: 0':s'
s' :: 0':s' → 0':s'
lastbit' :: 0':s' → 0':s'
conv' :: 0':s' → nil':cons'
cons' :: nil':cons' → 0':s' → nil':cons'
nil' :: nil':cons'
_hole_0':s'1 :: 0':s'
_hole_nil':cons'2 :: nil':cons'
_gen_0':s'3 :: Nat → 0':s'
_gen_nil':cons'4 :: Nat → nil':cons'

Lemmas:
half'(_gen_0':s'3(*(2, _n6))) → _gen_0':s'3(_n6), rt ∈ Ω(1 + n6)
lastbit'(_gen_0':s'3(*(2, _n310))) → _gen_0':s'3(0), rt ∈ Ω(1 + n310)

Generator Equations:
_gen_0':s'3(0) ⇔ 0'
_gen_0':s'3(+(x, 1)) ⇔ s'(_gen_0':s'3(x))
_gen_nil':cons'4(0) ⇔ nil'
_gen_nil':cons'4(+(x, 1)) ⇔ cons'(_gen_nil':cons'4(x), 0')

No more defined symbols left to analyse.


The lowerbound Ω(n) was proven with the following lemma:
half'(_gen_0':s'3(*(2, _n6))) → _gen_0':s'3(_n6), rt ∈ Ω(1 + n6)