Runtime Complexity TRS:
The TRS R consists of the following rules:
f(X) → if(X, c, n__f(n__true))
if(true, X, Y) → X
if(false, X, Y) → activate(Y)
f(X) → n__f(X)
true → n__true
activate(n__f(X)) → f(activate(X))
activate(n__true) → true
activate(X) → X
Renamed function symbols to avoid clashes with predefined symbol.
Runtime Complexity TRS:
The TRS R consists of the following rules:
f'(X) → if'(X, c', n__f'(n__true'))
if'(true', X, Y) → X
if'(false', X, Y) → activate'(Y)
f'(X) → n__f'(X)
true' → n__true'
activate'(n__f'(X)) → f'(activate'(X))
activate'(n__true') → true'
activate'(X) → X
Infered types.
Rules:
f'(X) → if'(X, c', n__f'(n__true'))
if'(true', X, Y) → X
if'(false', X, Y) → activate'(Y)
f'(X) → n__f'(X)
true' → n__true'
activate'(n__f'(X)) → f'(activate'(X))
activate'(n__true') → true'
activate'(X) → X
Types:
f' :: c':n__true':n__f':false' → c':n__true':n__f':false'
if' :: c':n__true':n__f':false' → c':n__true':n__f':false' → c':n__true':n__f':false' → c':n__true':n__f':false'
c' :: c':n__true':n__f':false'
n__f' :: c':n__true':n__f':false' → c':n__true':n__f':false'
n__true' :: c':n__true':n__f':false'
true' :: c':n__true':n__f':false'
false' :: c':n__true':n__f':false'
activate' :: c':n__true':n__f':false' → c':n__true':n__f':false'
_hole_c':n__true':n__f':false'1 :: c':n__true':n__f':false'
_gen_c':n__true':n__f':false'2 :: Nat → c':n__true':n__f':false'
Heuristically decided to analyse the following defined symbols:
f', activate'
They will be analysed ascendingly in the following order:
f' = activate'
Rules:
f'(X) → if'(X, c', n__f'(n__true'))
if'(true', X, Y) → X
if'(false', X, Y) → activate'(Y)
f'(X) → n__f'(X)
true' → n__true'
activate'(n__f'(X)) → f'(activate'(X))
activate'(n__true') → true'
activate'(X) → X
Types:
f' :: c':n__true':n__f':false' → c':n__true':n__f':false'
if' :: c':n__true':n__f':false' → c':n__true':n__f':false' → c':n__true':n__f':false' → c':n__true':n__f':false'
c' :: c':n__true':n__f':false'
n__f' :: c':n__true':n__f':false' → c':n__true':n__f':false'
n__true' :: c':n__true':n__f':false'
true' :: c':n__true':n__f':false'
false' :: c':n__true':n__f':false'
activate' :: c':n__true':n__f':false' → c':n__true':n__f':false'
_hole_c':n__true':n__f':false'1 :: c':n__true':n__f':false'
_gen_c':n__true':n__f':false'2 :: Nat → c':n__true':n__f':false'
Generator Equations:
_gen_c':n__true':n__f':false'2(0) ⇔ n__true'
_gen_c':n__true':n__f':false'2(+(x, 1)) ⇔ n__f'(_gen_c':n__true':n__f':false'2(x))
The following defined symbols remain to be analysed:
activate', f'
They will be analysed ascendingly in the following order:
f' = activate'
Proved the following rewrite lemma:
activate'(_gen_c':n__true':n__f':false'2(+(1, _n4))) → _*3, rt ∈ Ω(n4)
Induction Base:
activate'(_gen_c':n__true':n__f':false'2(+(1, 0)))
Induction Step:
activate'(_gen_c':n__true':n__f':false'2(+(1, +(_$n5, 1)))) →RΩ(1)
f'(activate'(_gen_c':n__true':n__f':false'2(+(1, _$n5)))) →IH
f'(_*3)
We have rt ∈ Ω(n) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).
Rules:
f'(X) → if'(X, c', n__f'(n__true'))
if'(true', X, Y) → X
if'(false', X, Y) → activate'(Y)
f'(X) → n__f'(X)
true' → n__true'
activate'(n__f'(X)) → f'(activate'(X))
activate'(n__true') → true'
activate'(X) → X
Types:
f' :: c':n__true':n__f':false' → c':n__true':n__f':false'
if' :: c':n__true':n__f':false' → c':n__true':n__f':false' → c':n__true':n__f':false' → c':n__true':n__f':false'
c' :: c':n__true':n__f':false'
n__f' :: c':n__true':n__f':false' → c':n__true':n__f':false'
n__true' :: c':n__true':n__f':false'
true' :: c':n__true':n__f':false'
false' :: c':n__true':n__f':false'
activate' :: c':n__true':n__f':false' → c':n__true':n__f':false'
_hole_c':n__true':n__f':false'1 :: c':n__true':n__f':false'
_gen_c':n__true':n__f':false'2 :: Nat → c':n__true':n__f':false'
Lemmas:
activate'(_gen_c':n__true':n__f':false'2(+(1, _n4))) → _*3, rt ∈ Ω(n4)
Generator Equations:
_gen_c':n__true':n__f':false'2(0) ⇔ n__true'
_gen_c':n__true':n__f':false'2(+(x, 1)) ⇔ n__f'(_gen_c':n__true':n__f':false'2(x))
The following defined symbols remain to be analysed:
f'
They will be analysed ascendingly in the following order:
f' = activate'
Could not prove a rewrite lemma for the defined symbol f'.
Rules:
f'(X) → if'(X, c', n__f'(n__true'))
if'(true', X, Y) → X
if'(false', X, Y) → activate'(Y)
f'(X) → n__f'(X)
true' → n__true'
activate'(n__f'(X)) → f'(activate'(X))
activate'(n__true') → true'
activate'(X) → X
Types:
f' :: c':n__true':n__f':false' → c':n__true':n__f':false'
if' :: c':n__true':n__f':false' → c':n__true':n__f':false' → c':n__true':n__f':false' → c':n__true':n__f':false'
c' :: c':n__true':n__f':false'
n__f' :: c':n__true':n__f':false' → c':n__true':n__f':false'
n__true' :: c':n__true':n__f':false'
true' :: c':n__true':n__f':false'
false' :: c':n__true':n__f':false'
activate' :: c':n__true':n__f':false' → c':n__true':n__f':false'
_hole_c':n__true':n__f':false'1 :: c':n__true':n__f':false'
_gen_c':n__true':n__f':false'2 :: Nat → c':n__true':n__f':false'
Lemmas:
activate'(_gen_c':n__true':n__f':false'2(+(1, _n4))) → _*3, rt ∈ Ω(n4)
Generator Equations:
_gen_c':n__true':n__f':false'2(0) ⇔ n__true'
_gen_c':n__true':n__f':false'2(+(x, 1)) ⇔ n__f'(_gen_c':n__true':n__f':false'2(x))
No more defined symbols left to analyse.
The lowerbound Ω(n) was proven with the following lemma:
activate'(_gen_c':n__true':n__f':false'2(+(1, _n4))) → _*3, rt ∈ Ω(n4)