Runtime Complexity TRS:
The TRS R consists of the following rules:
f(0) → cons(0, n__f(n__s(n__0)))
f(s(0)) → f(p(s(0)))
p(s(X)) → X
f(X) → n__f(X)
s(X) → n__s(X)
0 → n__0
activate(n__f(X)) → f(activate(X))
activate(n__s(X)) → s(activate(X))
activate(n__0) → 0
activate(X) → X
Renamed function symbols to avoid clashes with predefined symbol.
Runtime Complexity TRS:
The TRS R consists of the following rules:
f'(0') → cons'(0', n__f'(n__s'(n__0')))
f'(s'(0')) → f'(p'(s'(0')))
p'(s'(X)) → X
f'(X) → n__f'(X)
s'(X) → n__s'(X)
0' → n__0'
activate'(n__f'(X)) → f'(activate'(X))
activate'(n__s'(X)) → s'(activate'(X))
activate'(n__0') → 0'
activate'(X) → X
Sliced the following arguments:
cons'/1
Runtime Complexity TRS:
The TRS R consists of the following rules:
f'(0') → cons'(0')
f'(s'(0')) → f'(p'(s'(0')))
p'(s'(X)) → X
f'(X) → n__f'(X)
s'(X) → n__s'(X)
0' → n__0'
activate'(n__f'(X)) → f'(activate'(X))
activate'(n__s'(X)) → s'(activate'(X))
activate'(n__0') → 0'
activate'(X) → X
Infered types.
Rules:
f'(0') → cons'(0')
f'(s'(0')) → f'(p'(s'(0')))
p'(s'(X)) → X
f'(X) → n__f'(X)
s'(X) → n__s'(X)
0' → n__0'
activate'(n__f'(X)) → f'(activate'(X))
activate'(n__s'(X)) → s'(activate'(X))
activate'(n__0') → 0'
activate'(X) → X
Types:
f' :: cons':n__f':n__s':n__0' → cons':n__f':n__s':n__0'
0' :: cons':n__f':n__s':n__0'
cons' :: cons':n__f':n__s':n__0' → cons':n__f':n__s':n__0'
s' :: cons':n__f':n__s':n__0' → cons':n__f':n__s':n__0'
p' :: cons':n__f':n__s':n__0' → cons':n__f':n__s':n__0'
n__f' :: cons':n__f':n__s':n__0' → cons':n__f':n__s':n__0'
n__s' :: cons':n__f':n__s':n__0' → cons':n__f':n__s':n__0'
n__0' :: cons':n__f':n__s':n__0'
activate' :: cons':n__f':n__s':n__0' → cons':n__f':n__s':n__0'
_hole_cons':n__f':n__s':n__0'1 :: cons':n__f':n__s':n__0'
_gen_cons':n__f':n__s':n__0'2 :: Nat → cons':n__f':n__s':n__0'
Heuristically decided to analyse the following defined symbols:
f', activate'
They will be analysed ascendingly in the following order:
f' < activate'
Rules:
f'(0') → cons'(0')
f'(s'(0')) → f'(p'(s'(0')))
p'(s'(X)) → X
f'(X) → n__f'(X)
s'(X) → n__s'(X)
0' → n__0'
activate'(n__f'(X)) → f'(activate'(X))
activate'(n__s'(X)) → s'(activate'(X))
activate'(n__0') → 0'
activate'(X) → X
Types:
f' :: cons':n__f':n__s':n__0' → cons':n__f':n__s':n__0'
0' :: cons':n__f':n__s':n__0'
cons' :: cons':n__f':n__s':n__0' → cons':n__f':n__s':n__0'
s' :: cons':n__f':n__s':n__0' → cons':n__f':n__s':n__0'
p' :: cons':n__f':n__s':n__0' → cons':n__f':n__s':n__0'
n__f' :: cons':n__f':n__s':n__0' → cons':n__f':n__s':n__0'
n__s' :: cons':n__f':n__s':n__0' → cons':n__f':n__s':n__0'
n__0' :: cons':n__f':n__s':n__0'
activate' :: cons':n__f':n__s':n__0' → cons':n__f':n__s':n__0'
_hole_cons':n__f':n__s':n__0'1 :: cons':n__f':n__s':n__0'
_gen_cons':n__f':n__s':n__0'2 :: Nat → cons':n__f':n__s':n__0'
Generator Equations:
_gen_cons':n__f':n__s':n__0'2(0) ⇔ n__0'
_gen_cons':n__f':n__s':n__0'2(+(x, 1)) ⇔ n__f'(_gen_cons':n__f':n__s':n__0'2(x))
The following defined symbols remain to be analysed:
f', activate'
They will be analysed ascendingly in the following order:
f' < activate'
Could not prove a rewrite lemma for the defined symbol f'.
Rules:
f'(0') → cons'(0')
f'(s'(0')) → f'(p'(s'(0')))
p'(s'(X)) → X
f'(X) → n__f'(X)
s'(X) → n__s'(X)
0' → n__0'
activate'(n__f'(X)) → f'(activate'(X))
activate'(n__s'(X)) → s'(activate'(X))
activate'(n__0') → 0'
activate'(X) → X
Types:
f' :: cons':n__f':n__s':n__0' → cons':n__f':n__s':n__0'
0' :: cons':n__f':n__s':n__0'
cons' :: cons':n__f':n__s':n__0' → cons':n__f':n__s':n__0'
s' :: cons':n__f':n__s':n__0' → cons':n__f':n__s':n__0'
p' :: cons':n__f':n__s':n__0' → cons':n__f':n__s':n__0'
n__f' :: cons':n__f':n__s':n__0' → cons':n__f':n__s':n__0'
n__s' :: cons':n__f':n__s':n__0' → cons':n__f':n__s':n__0'
n__0' :: cons':n__f':n__s':n__0'
activate' :: cons':n__f':n__s':n__0' → cons':n__f':n__s':n__0'
_hole_cons':n__f':n__s':n__0'1 :: cons':n__f':n__s':n__0'
_gen_cons':n__f':n__s':n__0'2 :: Nat → cons':n__f':n__s':n__0'
Generator Equations:
_gen_cons':n__f':n__s':n__0'2(0) ⇔ n__0'
_gen_cons':n__f':n__s':n__0'2(+(x, 1)) ⇔ n__f'(_gen_cons':n__f':n__s':n__0'2(x))
The following defined symbols remain to be analysed:
activate'
Proved the following rewrite lemma:
activate'(_gen_cons':n__f':n__s':n__0'2(_n18)) → _gen_cons':n__f':n__s':n__0'2(_n18), rt ∈ Ω(1 + n18)
Induction Base:
activate'(_gen_cons':n__f':n__s':n__0'2(0)) →RΩ(1)
_gen_cons':n__f':n__s':n__0'2(0)
Induction Step:
activate'(_gen_cons':n__f':n__s':n__0'2(+(_$n19, 1))) →RΩ(1)
f'(activate'(_gen_cons':n__f':n__s':n__0'2(_$n19))) →IH
f'(_gen_cons':n__f':n__s':n__0'2(_$n19)) →RΩ(1)
n__f'(_gen_cons':n__f':n__s':n__0'2(_$n19))
We have rt ∈ Ω(n) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).
Rules:
f'(0') → cons'(0')
f'(s'(0')) → f'(p'(s'(0')))
p'(s'(X)) → X
f'(X) → n__f'(X)
s'(X) → n__s'(X)
0' → n__0'
activate'(n__f'(X)) → f'(activate'(X))
activate'(n__s'(X)) → s'(activate'(X))
activate'(n__0') → 0'
activate'(X) → X
Types:
f' :: cons':n__f':n__s':n__0' → cons':n__f':n__s':n__0'
0' :: cons':n__f':n__s':n__0'
cons' :: cons':n__f':n__s':n__0' → cons':n__f':n__s':n__0'
s' :: cons':n__f':n__s':n__0' → cons':n__f':n__s':n__0'
p' :: cons':n__f':n__s':n__0' → cons':n__f':n__s':n__0'
n__f' :: cons':n__f':n__s':n__0' → cons':n__f':n__s':n__0'
n__s' :: cons':n__f':n__s':n__0' → cons':n__f':n__s':n__0'
n__0' :: cons':n__f':n__s':n__0'
activate' :: cons':n__f':n__s':n__0' → cons':n__f':n__s':n__0'
_hole_cons':n__f':n__s':n__0'1 :: cons':n__f':n__s':n__0'
_gen_cons':n__f':n__s':n__0'2 :: Nat → cons':n__f':n__s':n__0'
Lemmas:
activate'(_gen_cons':n__f':n__s':n__0'2(_n18)) → _gen_cons':n__f':n__s':n__0'2(_n18), rt ∈ Ω(1 + n18)
Generator Equations:
_gen_cons':n__f':n__s':n__0'2(0) ⇔ n__0'
_gen_cons':n__f':n__s':n__0'2(+(x, 1)) ⇔ n__f'(_gen_cons':n__f':n__s':n__0'2(x))
No more defined symbols left to analyse.
The lowerbound Ω(n) was proven with the following lemma:
activate'(_gen_cons':n__f':n__s':n__0'2(_n18)) → _gen_cons':n__f':n__s':n__0'2(_n18), rt ∈ Ω(1 + n18)