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

a__h(X) → a__g(mark(X), X)
a__g(a, X) → a__f(b, X)
a__f(X, X) → a__h(a__a)
a__ab
mark(h(X)) → a__h(mark(X))
mark(g(X1, X2)) → a__g(mark(X1), X2)
mark(a) → a__a
mark(f(X1, X2)) → a__f(mark(X1), X2)
mark(b) → b
a__h(X) → h(X)
a__g(X1, X2) → g(X1, X2)
a__aa
a__f(X1, X2) → f(X1, X2)

Rewrite Strategy: INNERMOST

Renamed function symbols to avoid clashes with predefined symbol.

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

a__h'(X) → a__g'(mark'(X), X)
a__g'(a', X) → a__f'(b', X)
a__f'(X, X) → a__h'(a__a')
a__a'b'
mark'(h'(X)) → a__h'(mark'(X))
mark'(g'(X1, X2)) → a__g'(mark'(X1), X2)
mark'(a') → a__a'
mark'(f'(X1, X2)) → a__f'(mark'(X1), X2)
mark'(b') → b'
a__h'(X) → h'(X)
a__g'(X1, X2) → g'(X1, X2)
a__a'a'
a__f'(X1, X2) → f'(X1, X2)

Rewrite Strategy: INNERMOST

Infered types.

Rules:
a__h'(X) → a__g'(mark'(X), X)
a__g'(a', X) → a__f'(b', X)
a__f'(X, X) → a__h'(a__a')
a__a'b'
mark'(h'(X)) → a__h'(mark'(X))
mark'(g'(X1, X2)) → a__g'(mark'(X1), X2)
mark'(a') → a__a'
mark'(f'(X1, X2)) → a__f'(mark'(X1), X2)
mark'(b') → b'
a__h'(X) → h'(X)
a__g'(X1, X2) → g'(X1, X2)
a__a'a'
a__f'(X1, X2) → f'(X1, X2)

Types:
a__h' :: a':b':h':g':f' → a':b':h':g':f'
a__g' :: a':b':h':g':f' → a':b':h':g':f' → a':b':h':g':f'
mark' :: a':b':h':g':f' → a':b':h':g':f'
a' :: a':b':h':g':f'
a__f' :: a':b':h':g':f' → a':b':h':g':f' → a':b':h':g':f'
b' :: a':b':h':g':f'
a__a' :: a':b':h':g':f'
h' :: a':b':h':g':f' → a':b':h':g':f'
g' :: a':b':h':g':f' → a':b':h':g':f' → a':b':h':g':f'
f' :: a':b':h':g':f' → a':b':h':g':f' → a':b':h':g':f'
_hole_a':b':h':g':f'1 :: a':b':h':g':f'
_gen_a':b':h':g':f'2 :: Nat → a':b':h':g':f'

Heuristically decided to analyse the following defined symbols:
a__h', a__g', mark', a__f'

They will be analysed ascendingly in the following order:
a__h' = a__g'
a__h' = mark'
a__h' = a__f'
a__g' = mark'
a__g' = a__f'
mark' = a__f'

Rules:
a__h'(X) → a__g'(mark'(X), X)
a__g'(a', X) → a__f'(b', X)
a__f'(X, X) → a__h'(a__a')
a__a'b'
mark'(h'(X)) → a__h'(mark'(X))
mark'(g'(X1, X2)) → a__g'(mark'(X1), X2)
mark'(a') → a__a'
mark'(f'(X1, X2)) → a__f'(mark'(X1), X2)
mark'(b') → b'
a__h'(X) → h'(X)
a__g'(X1, X2) → g'(X1, X2)
a__a'a'
a__f'(X1, X2) → f'(X1, X2)

Types:
a__h' :: a':b':h':g':f' → a':b':h':g':f'
a__g' :: a':b':h':g':f' → a':b':h':g':f' → a':b':h':g':f'
mark' :: a':b':h':g':f' → a':b':h':g':f'
a' :: a':b':h':g':f'
a__f' :: a':b':h':g':f' → a':b':h':g':f' → a':b':h':g':f'
b' :: a':b':h':g':f'
a__a' :: a':b':h':g':f'
h' :: a':b':h':g':f' → a':b':h':g':f'
g' :: a':b':h':g':f' → a':b':h':g':f' → a':b':h':g':f'
f' :: a':b':h':g':f' → a':b':h':g':f' → a':b':h':g':f'
_hole_a':b':h':g':f'1 :: a':b':h':g':f'
_gen_a':b':h':g':f'2 :: Nat → a':b':h':g':f'

Generator Equations:
_gen_a':b':h':g':f'2(0) ⇔ a'
_gen_a':b':h':g':f'2(+(x, 1)) ⇔ h'(_gen_a':b':h':g':f'2(x))

The following defined symbols remain to be analysed:
a__g', a__h', mark', a__f'

They will be analysed ascendingly in the following order:
a__h' = a__g'
a__h' = mark'
a__h' = a__f'
a__g' = mark'
a__g' = a__f'
mark' = a__f'

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

Rules:
a__h'(X) → a__g'(mark'(X), X)
a__g'(a', X) → a__f'(b', X)
a__f'(X, X) → a__h'(a__a')
a__a'b'
mark'(h'(X)) → a__h'(mark'(X))
mark'(g'(X1, X2)) → a__g'(mark'(X1), X2)
mark'(a') → a__a'
mark'(f'(X1, X2)) → a__f'(mark'(X1), X2)
mark'(b') → b'
a__h'(X) → h'(X)
a__g'(X1, X2) → g'(X1, X2)
a__a'a'
a__f'(X1, X2) → f'(X1, X2)

Types:
a__h' :: a':b':h':g':f' → a':b':h':g':f'
a__g' :: a':b':h':g':f' → a':b':h':g':f' → a':b':h':g':f'
mark' :: a':b':h':g':f' → a':b':h':g':f'
a' :: a':b':h':g':f'
a__f' :: a':b':h':g':f' → a':b':h':g':f' → a':b':h':g':f'
b' :: a':b':h':g':f'
a__a' :: a':b':h':g':f'
h' :: a':b':h':g':f' → a':b':h':g':f'
g' :: a':b':h':g':f' → a':b':h':g':f' → a':b':h':g':f'
f' :: a':b':h':g':f' → a':b':h':g':f' → a':b':h':g':f'
_hole_a':b':h':g':f'1 :: a':b':h':g':f'
_gen_a':b':h':g':f'2 :: Nat → a':b':h':g':f'

Generator Equations:
_gen_a':b':h':g':f'2(0) ⇔ a'
_gen_a':b':h':g':f'2(+(x, 1)) ⇔ h'(_gen_a':b':h':g':f'2(x))

The following defined symbols remain to be analysed:
a__f', a__h', mark'

They will be analysed ascendingly in the following order:
a__h' = a__g'
a__h' = mark'
a__h' = a__f'
a__g' = mark'
a__g' = a__f'
mark' = a__f'

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

Rules:
a__h'(X) → a__g'(mark'(X), X)
a__g'(a', X) → a__f'(b', X)
a__f'(X, X) → a__h'(a__a')
a__a'b'
mark'(h'(X)) → a__h'(mark'(X))
mark'(g'(X1, X2)) → a__g'(mark'(X1), X2)
mark'(a') → a__a'
mark'(f'(X1, X2)) → a__f'(mark'(X1), X2)
mark'(b') → b'
a__h'(X) → h'(X)
a__g'(X1, X2) → g'(X1, X2)
a__a'a'
a__f'(X1, X2) → f'(X1, X2)

Types:
a__h' :: a':b':h':g':f' → a':b':h':g':f'
a__g' :: a':b':h':g':f' → a':b':h':g':f' → a':b':h':g':f'
mark' :: a':b':h':g':f' → a':b':h':g':f'
a' :: a':b':h':g':f'
a__f' :: a':b':h':g':f' → a':b':h':g':f' → a':b':h':g':f'
b' :: a':b':h':g':f'
a__a' :: a':b':h':g':f'
h' :: a':b':h':g':f' → a':b':h':g':f'
g' :: a':b':h':g':f' → a':b':h':g':f' → a':b':h':g':f'
f' :: a':b':h':g':f' → a':b':h':g':f' → a':b':h':g':f'
_hole_a':b':h':g':f'1 :: a':b':h':g':f'
_gen_a':b':h':g':f'2 :: Nat → a':b':h':g':f'

Generator Equations:
_gen_a':b':h':g':f'2(0) ⇔ a'
_gen_a':b':h':g':f'2(+(x, 1)) ⇔ h'(_gen_a':b':h':g':f'2(x))

The following defined symbols remain to be analysed:
a__h', mark'

They will be analysed ascendingly in the following order:
a__h' = a__g'
a__h' = mark'
a__h' = a__f'
a__g' = mark'
a__g' = a__f'
mark' = a__f'

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

Rules:
a__h'(X) → a__g'(mark'(X), X)
a__g'(a', X) → a__f'(b', X)
a__f'(X, X) → a__h'(a__a')
a__a'b'
mark'(h'(X)) → a__h'(mark'(X))
mark'(g'(X1, X2)) → a__g'(mark'(X1), X2)
mark'(a') → a__a'
mark'(f'(X1, X2)) → a__f'(mark'(X1), X2)
mark'(b') → b'
a__h'(X) → h'(X)
a__g'(X1, X2) → g'(X1, X2)
a__a'a'
a__f'(X1, X2) → f'(X1, X2)

Types:
a__h' :: a':b':h':g':f' → a':b':h':g':f'
a__g' :: a':b':h':g':f' → a':b':h':g':f' → a':b':h':g':f'
mark' :: a':b':h':g':f' → a':b':h':g':f'
a' :: a':b':h':g':f'
a__f' :: a':b':h':g':f' → a':b':h':g':f' → a':b':h':g':f'
b' :: a':b':h':g':f'
a__a' :: a':b':h':g':f'
h' :: a':b':h':g':f' → a':b':h':g':f'
g' :: a':b':h':g':f' → a':b':h':g':f' → a':b':h':g':f'
f' :: a':b':h':g':f' → a':b':h':g':f' → a':b':h':g':f'
_hole_a':b':h':g':f'1 :: a':b':h':g':f'
_gen_a':b':h':g':f'2 :: Nat → a':b':h':g':f'

Generator Equations:
_gen_a':b':h':g':f'2(0) ⇔ a'
_gen_a':b':h':g':f'2(+(x, 1)) ⇔ h'(_gen_a':b':h':g':f'2(x))

The following defined symbols remain to be analysed:
mark'

They will be analysed ascendingly in the following order:
a__h' = a__g'
a__h' = mark'
a__h' = a__f'
a__g' = mark'
a__g' = a__f'
mark' = a__f'

Proved the following rewrite lemma:
mark'(_gen_a':b':h':g':f'2(+(1, _n34554))) → _*3, rt ∈ Ω(n34554)

Induction Base:
mark'(_gen_a':b':h':g':f'2(+(1, 0)))

Induction Step:
mark'(_gen_a':b':h':g':f'2(+(1, +(_\$n34555, 1)))) →RΩ(1)
a__h'(mark'(_gen_a':b':h':g':f'2(+(1, _\$n34555)))) →IH
a__h'(_*3)

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

Rules:
a__h'(X) → a__g'(mark'(X), X)
a__g'(a', X) → a__f'(b', X)
a__f'(X, X) → a__h'(a__a')
a__a'b'
mark'(h'(X)) → a__h'(mark'(X))
mark'(g'(X1, X2)) → a__g'(mark'(X1), X2)
mark'(a') → a__a'
mark'(f'(X1, X2)) → a__f'(mark'(X1), X2)
mark'(b') → b'
a__h'(X) → h'(X)
a__g'(X1, X2) → g'(X1, X2)
a__a'a'
a__f'(X1, X2) → f'(X1, X2)

Types:
a__h' :: a':b':h':g':f' → a':b':h':g':f'
a__g' :: a':b':h':g':f' → a':b':h':g':f' → a':b':h':g':f'
mark' :: a':b':h':g':f' → a':b':h':g':f'
a' :: a':b':h':g':f'
a__f' :: a':b':h':g':f' → a':b':h':g':f' → a':b':h':g':f'
b' :: a':b':h':g':f'
a__a' :: a':b':h':g':f'
h' :: a':b':h':g':f' → a':b':h':g':f'
g' :: a':b':h':g':f' → a':b':h':g':f' → a':b':h':g':f'
f' :: a':b':h':g':f' → a':b':h':g':f' → a':b':h':g':f'
_hole_a':b':h':g':f'1 :: a':b':h':g':f'
_gen_a':b':h':g':f'2 :: Nat → a':b':h':g':f'

Lemmas:
mark'(_gen_a':b':h':g':f'2(+(1, _n34554))) → _*3, rt ∈ Ω(n34554)

Generator Equations:
_gen_a':b':h':g':f'2(0) ⇔ a'
_gen_a':b':h':g':f'2(+(x, 1)) ⇔ h'(_gen_a':b':h':g':f'2(x))

The following defined symbols remain to be analysed:
a__g', a__h', a__f'

They will be analysed ascendingly in the following order:
a__h' = a__g'
a__h' = mark'
a__h' = a__f'
a__g' = mark'
a__g' = a__f'
mark' = a__f'

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

Rules:
a__h'(X) → a__g'(mark'(X), X)
a__g'(a', X) → a__f'(b', X)
a__f'(X, X) → a__h'(a__a')
a__a'b'
mark'(h'(X)) → a__h'(mark'(X))
mark'(g'(X1, X2)) → a__g'(mark'(X1), X2)
mark'(a') → a__a'
mark'(f'(X1, X2)) → a__f'(mark'(X1), X2)
mark'(b') → b'
a__h'(X) → h'(X)
a__g'(X1, X2) → g'(X1, X2)
a__a'a'
a__f'(X1, X2) → f'(X1, X2)

Types:
a__h' :: a':b':h':g':f' → a':b':h':g':f'
a__g' :: a':b':h':g':f' → a':b':h':g':f' → a':b':h':g':f'
mark' :: a':b':h':g':f' → a':b':h':g':f'
a' :: a':b':h':g':f'
a__f' :: a':b':h':g':f' → a':b':h':g':f' → a':b':h':g':f'
b' :: a':b':h':g':f'
a__a' :: a':b':h':g':f'
h' :: a':b':h':g':f' → a':b':h':g':f'
g' :: a':b':h':g':f' → a':b':h':g':f' → a':b':h':g':f'
f' :: a':b':h':g':f' → a':b':h':g':f' → a':b':h':g':f'
_hole_a':b':h':g':f'1 :: a':b':h':g':f'
_gen_a':b':h':g':f'2 :: Nat → a':b':h':g':f'

Lemmas:
mark'(_gen_a':b':h':g':f'2(+(1, _n34554))) → _*3, rt ∈ Ω(n34554)

Generator Equations:
_gen_a':b':h':g':f'2(0) ⇔ a'
_gen_a':b':h':g':f'2(+(x, 1)) ⇔ h'(_gen_a':b':h':g':f'2(x))

The following defined symbols remain to be analysed:
a__f', a__h'

They will be analysed ascendingly in the following order:
a__h' = a__g'
a__h' = mark'
a__h' = a__f'
a__g' = mark'
a__g' = a__f'
mark' = a__f'

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

Rules:
a__h'(X) → a__g'(mark'(X), X)
a__g'(a', X) → a__f'(b', X)
a__f'(X, X) → a__h'(a__a')
a__a'b'
mark'(h'(X)) → a__h'(mark'(X))
mark'(g'(X1, X2)) → a__g'(mark'(X1), X2)
mark'(a') → a__a'
mark'(f'(X1, X2)) → a__f'(mark'(X1), X2)
mark'(b') → b'
a__h'(X) → h'(X)
a__g'(X1, X2) → g'(X1, X2)
a__a'a'
a__f'(X1, X2) → f'(X1, X2)

Types:
a__h' :: a':b':h':g':f' → a':b':h':g':f'
a__g' :: a':b':h':g':f' → a':b':h':g':f' → a':b':h':g':f'
mark' :: a':b':h':g':f' → a':b':h':g':f'
a' :: a':b':h':g':f'
a__f' :: a':b':h':g':f' → a':b':h':g':f' → a':b':h':g':f'
b' :: a':b':h':g':f'
a__a' :: a':b':h':g':f'
h' :: a':b':h':g':f' → a':b':h':g':f'
g' :: a':b':h':g':f' → a':b':h':g':f' → a':b':h':g':f'
f' :: a':b':h':g':f' → a':b':h':g':f' → a':b':h':g':f'
_hole_a':b':h':g':f'1 :: a':b':h':g':f'
_gen_a':b':h':g':f'2 :: Nat → a':b':h':g':f'

Lemmas:
mark'(_gen_a':b':h':g':f'2(+(1, _n34554))) → _*3, rt ∈ Ω(n34554)

Generator Equations:
_gen_a':b':h':g':f'2(0) ⇔ a'
_gen_a':b':h':g':f'2(+(x, 1)) ⇔ h'(_gen_a':b':h':g':f'2(x))

The following defined symbols remain to be analysed:
a__h'

They will be analysed ascendingly in the following order:
a__h' = a__g'
a__h' = mark'
a__h' = a__f'
a__g' = mark'
a__g' = a__f'
mark' = a__f'

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

Rules:
a__h'(X) → a__g'(mark'(X), X)
a__g'(a', X) → a__f'(b', X)
a__f'(X, X) → a__h'(a__a')
a__a'b'
mark'(h'(X)) → a__h'(mark'(X))
mark'(g'(X1, X2)) → a__g'(mark'(X1), X2)
mark'(a') → a__a'
mark'(f'(X1, X2)) → a__f'(mark'(X1), X2)
mark'(b') → b'
a__h'(X) → h'(X)
a__g'(X1, X2) → g'(X1, X2)
a__a'a'
a__f'(X1, X2) → f'(X1, X2)

Types:
a__h' :: a':b':h':g':f' → a':b':h':g':f'
a__g' :: a':b':h':g':f' → a':b':h':g':f' → a':b':h':g':f'
mark' :: a':b':h':g':f' → a':b':h':g':f'
a' :: a':b':h':g':f'
a__f' :: a':b':h':g':f' → a':b':h':g':f' → a':b':h':g':f'
b' :: a':b':h':g':f'
a__a' :: a':b':h':g':f'
h' :: a':b':h':g':f' → a':b':h':g':f'
g' :: a':b':h':g':f' → a':b':h':g':f' → a':b':h':g':f'
f' :: a':b':h':g':f' → a':b':h':g':f' → a':b':h':g':f'
_hole_a':b':h':g':f'1 :: a':b':h':g':f'
_gen_a':b':h':g':f'2 :: Nat → a':b':h':g':f'

Lemmas:
mark'(_gen_a':b':h':g':f'2(+(1, _n34554))) → _*3, rt ∈ Ω(n34554)

Generator Equations:
_gen_a':b':h':g':f'2(0) ⇔ a'
_gen_a':b':h':g':f'2(+(x, 1)) ⇔ h'(_gen_a':b':h':g':f'2(x))

No more defined symbols left to analyse.

The lowerbound Ω(n) was proven with the following lemma:
mark'(_gen_a':b':h':g':f'2(+(1, _n34554))) → _*3, rt ∈ Ω(n34554)