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

power(x', Cons(x, xs)) → mult(x', power(x', xs))
mult(x', Cons(x, xs)) → add0(x', mult(x', xs))
add0(x', Cons(x, xs)) → Cons(Cons(Nil, Nil), add0(x', xs))
power(x, Nil) → Cons(Nil, Nil)
mult(x, Nil) → Nil
add0(x, Nil) → x
goal(x, y) → power(x, y)

Rewrite Strategy: INNERMOST


Renamed function symbols to avoid clashes with predefined symbol.


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


power'(x', Cons'(x, xs)) → mult'(x', power'(x', xs))
mult'(x', Cons'(x, xs)) → add0'(x', mult'(x', xs))
add0'(x', Cons'(x, xs)) → Cons'(Cons'(Nil', Nil'), add0'(x', xs))
power'(x, Nil') → Cons'(Nil', Nil')
mult'(x, Nil') → Nil'
add0'(x, Nil') → x
goal'(x, y) → power'(x, y)

Rewrite Strategy: INNERMOST


Sliced the following arguments:
Cons'/0


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


power'(x', Cons'(xs)) → mult'(x', power'(x', xs))
mult'(x', Cons'(xs)) → add0'(x', mult'(x', xs))
add0'(x', Cons'(xs)) → Cons'(add0'(x', xs))
power'(x, Nil') → Cons'(Nil')
mult'(x, Nil') → Nil'
add0'(x, Nil') → x
goal'(x, y) → power'(x, y)

Rewrite Strategy: INNERMOST


Infered types.


Rules:
power'(x', Cons'(xs)) → mult'(x', power'(x', xs))
mult'(x', Cons'(xs)) → add0'(x', mult'(x', xs))
add0'(x', Cons'(xs)) → Cons'(add0'(x', xs))
power'(x, Nil') → Cons'(Nil')
mult'(x, Nil') → Nil'
add0'(x, Nil') → x
goal'(x, y) → power'(x, y)

Types:
power' :: Cons':Nil' → Cons':Nil' → Cons':Nil'
Cons' :: Cons':Nil' → Cons':Nil'
mult' :: Cons':Nil' → Cons':Nil' → Cons':Nil'
add0' :: Cons':Nil' → Cons':Nil' → Cons':Nil'
Nil' :: Cons':Nil'
goal' :: Cons':Nil' → Cons':Nil' → Cons':Nil'
_hole_Cons':Nil'1 :: Cons':Nil'
_gen_Cons':Nil'2 :: Nat → Cons':Nil'


Heuristically decided to analyse the following defined symbols:
power', mult', add0'

They will be analysed ascendingly in the following order:
mult' < power'
add0' < mult'


Rules:
power'(x', Cons'(xs)) → mult'(x', power'(x', xs))
mult'(x', Cons'(xs)) → add0'(x', mult'(x', xs))
add0'(x', Cons'(xs)) → Cons'(add0'(x', xs))
power'(x, Nil') → Cons'(Nil')
mult'(x, Nil') → Nil'
add0'(x, Nil') → x
goal'(x, y) → power'(x, y)

Types:
power' :: Cons':Nil' → Cons':Nil' → Cons':Nil'
Cons' :: Cons':Nil' → Cons':Nil'
mult' :: Cons':Nil' → Cons':Nil' → Cons':Nil'
add0' :: Cons':Nil' → Cons':Nil' → Cons':Nil'
Nil' :: Cons':Nil'
goal' :: Cons':Nil' → Cons':Nil' → Cons':Nil'
_hole_Cons':Nil'1 :: Cons':Nil'
_gen_Cons':Nil'2 :: Nat → Cons':Nil'

Generator Equations:
_gen_Cons':Nil'2(0) ⇔ Nil'
_gen_Cons':Nil'2(+(x, 1)) ⇔ Cons'(_gen_Cons':Nil'2(x))

The following defined symbols remain to be analysed:
add0', power', mult'

They will be analysed ascendingly in the following order:
mult' < power'
add0' < mult'


Proved the following rewrite lemma:
add0'(_gen_Cons':Nil'2(a), _gen_Cons':Nil'2(_n4)) → _gen_Cons':Nil'2(+(_n4, a)), rt ∈ Ω(1 + n4)

Induction Base:
add0'(_gen_Cons':Nil'2(a), _gen_Cons':Nil'2(0)) →RΩ(1)
_gen_Cons':Nil'2(a)

Induction Step:
add0'(_gen_Cons':Nil'2(_a139), _gen_Cons':Nil'2(+(_$n5, 1))) →RΩ(1)
Cons'(add0'(_gen_Cons':Nil'2(_a139), _gen_Cons':Nil'2(_$n5))) →IH
Cons'(_gen_Cons':Nil'2(+(_$n5, _a139)))

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


Rules:
power'(x', Cons'(xs)) → mult'(x', power'(x', xs))
mult'(x', Cons'(xs)) → add0'(x', mult'(x', xs))
add0'(x', Cons'(xs)) → Cons'(add0'(x', xs))
power'(x, Nil') → Cons'(Nil')
mult'(x, Nil') → Nil'
add0'(x, Nil') → x
goal'(x, y) → power'(x, y)

Types:
power' :: Cons':Nil' → Cons':Nil' → Cons':Nil'
Cons' :: Cons':Nil' → Cons':Nil'
mult' :: Cons':Nil' → Cons':Nil' → Cons':Nil'
add0' :: Cons':Nil' → Cons':Nil' → Cons':Nil'
Nil' :: Cons':Nil'
goal' :: Cons':Nil' → Cons':Nil' → Cons':Nil'
_hole_Cons':Nil'1 :: Cons':Nil'
_gen_Cons':Nil'2 :: Nat → Cons':Nil'

Lemmas:
add0'(_gen_Cons':Nil'2(a), _gen_Cons':Nil'2(_n4)) → _gen_Cons':Nil'2(+(_n4, a)), rt ∈ Ω(1 + n4)

Generator Equations:
_gen_Cons':Nil'2(0) ⇔ Nil'
_gen_Cons':Nil'2(+(x, 1)) ⇔ Cons'(_gen_Cons':Nil'2(x))

The following defined symbols remain to be analysed:
mult', power'

They will be analysed ascendingly in the following order:
mult' < power'


Proved the following rewrite lemma:
mult'(_gen_Cons':Nil'2(a), _gen_Cons':Nil'2(_n548)) → _gen_Cons':Nil'2(*(_n548, a)), rt ∈ Ω(1 + a814·n5482 + n548)

Induction Base:
mult'(_gen_Cons':Nil'2(a), _gen_Cons':Nil'2(0)) →RΩ(1)
Nil'

Induction Step:
mult'(_gen_Cons':Nil'2(_a814), _gen_Cons':Nil'2(+(_$n549, 1))) →RΩ(1)
add0'(_gen_Cons':Nil'2(_a814), mult'(_gen_Cons':Nil'2(_a814), _gen_Cons':Nil'2(_$n549))) →IH
add0'(_gen_Cons':Nil'2(_a814), _gen_Cons':Nil'2(*(_$n549, _a814))) →LΩ(1 + $n549·a814)
_gen_Cons':Nil'2(+(*(_$n549, _a814), _a814))

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


Rules:
power'(x', Cons'(xs)) → mult'(x', power'(x', xs))
mult'(x', Cons'(xs)) → add0'(x', mult'(x', xs))
add0'(x', Cons'(xs)) → Cons'(add0'(x', xs))
power'(x, Nil') → Cons'(Nil')
mult'(x, Nil') → Nil'
add0'(x, Nil') → x
goal'(x, y) → power'(x, y)

Types:
power' :: Cons':Nil' → Cons':Nil' → Cons':Nil'
Cons' :: Cons':Nil' → Cons':Nil'
mult' :: Cons':Nil' → Cons':Nil' → Cons':Nil'
add0' :: Cons':Nil' → Cons':Nil' → Cons':Nil'
Nil' :: Cons':Nil'
goal' :: Cons':Nil' → Cons':Nil' → Cons':Nil'
_hole_Cons':Nil'1 :: Cons':Nil'
_gen_Cons':Nil'2 :: Nat → Cons':Nil'

Lemmas:
add0'(_gen_Cons':Nil'2(a), _gen_Cons':Nil'2(_n4)) → _gen_Cons':Nil'2(+(_n4, a)), rt ∈ Ω(1 + n4)
mult'(_gen_Cons':Nil'2(a), _gen_Cons':Nil'2(_n548)) → _gen_Cons':Nil'2(*(_n548, a)), rt ∈ Ω(1 + a814·n5482 + n548)

Generator Equations:
_gen_Cons':Nil'2(0) ⇔ Nil'
_gen_Cons':Nil'2(+(x, 1)) ⇔ Cons'(_gen_Cons':Nil'2(x))

The following defined symbols remain to be analysed:
power'


Proved the following rewrite lemma:
power'(_gen_Cons':Nil'2(a), _gen_Cons':Nil'2(+(1, _n1427))) → _*3, rt ∈ Ω(n1427)

Induction Base:
power'(_gen_Cons':Nil'2(a), _gen_Cons':Nil'2(+(1, 0)))

Induction Step:
power'(_gen_Cons':Nil'2(_a5581), _gen_Cons':Nil'2(+(1, +(_$n1428, 1)))) →RΩ(1)
mult'(_gen_Cons':Nil'2(_a5581), power'(_gen_Cons':Nil'2(_a5581), _gen_Cons':Nil'2(+(1, _$n1428)))) →IH
mult'(_gen_Cons':Nil'2(_a5581), _*3)

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


Rules:
power'(x', Cons'(xs)) → mult'(x', power'(x', xs))
mult'(x', Cons'(xs)) → add0'(x', mult'(x', xs))
add0'(x', Cons'(xs)) → Cons'(add0'(x', xs))
power'(x, Nil') → Cons'(Nil')
mult'(x, Nil') → Nil'
add0'(x, Nil') → x
goal'(x, y) → power'(x, y)

Types:
power' :: Cons':Nil' → Cons':Nil' → Cons':Nil'
Cons' :: Cons':Nil' → Cons':Nil'
mult' :: Cons':Nil' → Cons':Nil' → Cons':Nil'
add0' :: Cons':Nil' → Cons':Nil' → Cons':Nil'
Nil' :: Cons':Nil'
goal' :: Cons':Nil' → Cons':Nil' → Cons':Nil'
_hole_Cons':Nil'1 :: Cons':Nil'
_gen_Cons':Nil'2 :: Nat → Cons':Nil'

Lemmas:
add0'(_gen_Cons':Nil'2(a), _gen_Cons':Nil'2(_n4)) → _gen_Cons':Nil'2(+(_n4, a)), rt ∈ Ω(1 + n4)
mult'(_gen_Cons':Nil'2(a), _gen_Cons':Nil'2(_n548)) → _gen_Cons':Nil'2(*(_n548, a)), rt ∈ Ω(1 + a814·n5482 + n548)
power'(_gen_Cons':Nil'2(a), _gen_Cons':Nil'2(+(1, _n1427))) → _*3, rt ∈ Ω(n1427)

Generator Equations:
_gen_Cons':Nil'2(0) ⇔ Nil'
_gen_Cons':Nil'2(+(x, 1)) ⇔ Cons'(_gen_Cons':Nil'2(x))

No more defined symbols left to analyse.


The lowerbound Ω(n3) was proven with the following lemma:
mult'(_gen_Cons':Nil'2(a), _gen_Cons':Nil'2(_n548)) → _gen_Cons':Nil'2(*(_n548, a)), rt ∈ Ω(1 + a814·n5482 + n548)