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

g(f(x, y), z) → f(x, g(y, z))
g(h(x, y), z) → g(x, f(y, z))
g(x, h(y, z)) → h(g(x, y), z)

Rewrite Strategy: INNERMOST


Renamed function symbols to avoid clashes with predefined symbol.


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


g'(f'(x, y), z) → f'(x, g'(y, z))
g'(h'(x, y), z) → g'(x, f'(y, z))
g'(x, h'(y, z)) → h'(g'(x, y), z)

Rewrite Strategy: INNERMOST


Sliced the following arguments:
f'/0
h'/1


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


g'(f'(y), z) → f'(g'(y, z))
g'(h'(x), z) → g'(x, f'(z))
g'(x, h'(y)) → h'(g'(x, y))

Rewrite Strategy: INNERMOST


Infered types.


Rules:
g'(f'(y), z) → f'(g'(y, z))
g'(h'(x), z) → g'(x, f'(z))
g'(x, h'(y)) → h'(g'(x, y))

Types:
g' :: f':h' → f':h' → f':h'
f' :: f':h' → f':h'
h' :: f':h' → f':h'
_hole_f':h'1 :: f':h'
_gen_f':h'2 :: Nat → f':h'


Heuristically decided to analyse the following defined symbols:
g'


Rules:
g'(f'(y), z) → f'(g'(y, z))
g'(h'(x), z) → g'(x, f'(z))
g'(x, h'(y)) → h'(g'(x, y))

Types:
g' :: f':h' → f':h' → f':h'
f' :: f':h' → f':h'
h' :: f':h' → f':h'
_hole_f':h'1 :: f':h'
_gen_f':h'2 :: Nat → f':h'

Generator Equations:
_gen_f':h'2(0) ⇔ _hole_f':h'1
_gen_f':h'2(+(x, 1)) ⇔ f'(_gen_f':h'2(x))

The following defined symbols remain to be analysed:
g'


Proved the following rewrite lemma:
g'(_gen_f':h'2(+(1, _n4)), _gen_f':h'2(b)) → _*3, rt ∈ Ω(n4)

Induction Base:
g'(_gen_f':h'2(+(1, 0)), _gen_f':h'2(b))

Induction Step:
g'(_gen_f':h'2(+(1, +(_$n5, 1))), _gen_f':h'2(_b825)) →RΩ(1)
f'(g'(_gen_f':h'2(+(1, _$n5)), _gen_f':h'2(_b825))) →IH
f'(_*3)

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


Rules:
g'(f'(y), z) → f'(g'(y, z))
g'(h'(x), z) → g'(x, f'(z))
g'(x, h'(y)) → h'(g'(x, y))

Types:
g' :: f':h' → f':h' → f':h'
f' :: f':h' → f':h'
h' :: f':h' → f':h'
_hole_f':h'1 :: f':h'
_gen_f':h'2 :: Nat → f':h'

Lemmas:
g'(_gen_f':h'2(+(1, _n4)), _gen_f':h'2(b)) → _*3, rt ∈ Ω(n4)

Generator Equations:
_gen_f':h'2(0) ⇔ _hole_f':h'1
_gen_f':h'2(+(x, 1)) ⇔ f'(_gen_f':h'2(x))

No more defined symbols left to analyse.


The lowerbound Ω(n) was proven with the following lemma:
g'(_gen_f':h'2(+(1, _n4)), _gen_f':h'2(b)) → _*3, rt ∈ Ω(n4)