Runtime Complexity TRS:
The TRS R consists of the following rules:
a__fib(N) → a__sel(mark(N), a__fib1(s(0), s(0)))
a__fib1(X, Y) → cons(mark(X), fib1(Y, add(X, Y)))
a__add(0, X) → mark(X)
a__add(s(X), Y) → s(a__add(mark(X), mark(Y)))
a__sel(0, cons(X, XS)) → mark(X)
a__sel(s(N), cons(X, XS)) → a__sel(mark(N), mark(XS))
mark(fib(X)) → a__fib(mark(X))
mark(sel(X1, X2)) → a__sel(mark(X1), mark(X2))
mark(fib1(X1, X2)) → a__fib1(mark(X1), mark(X2))
mark(add(X1, X2)) → a__add(mark(X1), mark(X2))
mark(s(X)) → s(mark(X))
mark(0) → 0
mark(cons(X1, X2)) → cons(mark(X1), X2)
a__fib(X) → fib(X)
a__sel(X1, X2) → sel(X1, X2)
a__fib1(X1, X2) → fib1(X1, X2)
a__add(X1, X2) → add(X1, X2)
Renamed function symbols to avoid clashes with predefined symbol.
Runtime Complexity TRS:
The TRS R consists of the following rules:
a__fib'(N) → a__sel'(mark'(N), a__fib1'(s'(0'), s'(0')))
a__fib1'(X, Y) → cons'(mark'(X), fib1'(Y, add'(X, Y)))
a__add'(0', X) → mark'(X)
a__add'(s'(X), Y) → s'(a__add'(mark'(X), mark'(Y)))
a__sel'(0', cons'(X, XS)) → mark'(X)
a__sel'(s'(N), cons'(X, XS)) → a__sel'(mark'(N), mark'(XS))
mark'(fib'(X)) → a__fib'(mark'(X))
mark'(sel'(X1, X2)) → a__sel'(mark'(X1), mark'(X2))
mark'(fib1'(X1, X2)) → a__fib1'(mark'(X1), mark'(X2))
mark'(add'(X1, X2)) → a__add'(mark'(X1), mark'(X2))
mark'(s'(X)) → s'(mark'(X))
mark'(0') → 0'
mark'(cons'(X1, X2)) → cons'(mark'(X1), X2)
a__fib'(X) → fib'(X)
a__sel'(X1, X2) → sel'(X1, X2)
a__fib1'(X1, X2) → fib1'(X1, X2)
a__add'(X1, X2) → add'(X1, X2)
Infered types.
Rules:
a__fib'(N) → a__sel'(mark'(N), a__fib1'(s'(0'), s'(0')))
a__fib1'(X, Y) → cons'(mark'(X), fib1'(Y, add'(X, Y)))
a__add'(0', X) → mark'(X)
a__add'(s'(X), Y) → s'(a__add'(mark'(X), mark'(Y)))
a__sel'(0', cons'(X, XS)) → mark'(X)
a__sel'(s'(N), cons'(X, XS)) → a__sel'(mark'(N), mark'(XS))
mark'(fib'(X)) → a__fib'(mark'(X))
mark'(sel'(X1, X2)) → a__sel'(mark'(X1), mark'(X2))
mark'(fib1'(X1, X2)) → a__fib1'(mark'(X1), mark'(X2))
mark'(add'(X1, X2)) → a__add'(mark'(X1), mark'(X2))
mark'(s'(X)) → s'(mark'(X))
mark'(0') → 0'
mark'(cons'(X1, X2)) → cons'(mark'(X1), X2)
a__fib'(X) → fib'(X)
a__sel'(X1, X2) → sel'(X1, X2)
a__fib1'(X1, X2) → fib1'(X1, X2)
a__add'(X1, X2) → add'(X1, X2)
Types:
a__fib' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
a__sel' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
mark' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
a__fib1' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
s' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
0' :: 0':s':add':fib1':cons':fib':sel'
cons' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
fib1' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
add' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
a__add' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
fib' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
sel' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
_hole_0':s':add':fib1':cons':fib':sel'1 :: 0':s':add':fib1':cons':fib':sel'
_gen_0':s':add':fib1':cons':fib':sel'2 :: Nat → 0':s':add':fib1':cons':fib':sel'
Heuristically decided to analyse the following defined symbols:
a__fib', a__sel', mark', a__fib1', a__add'
They will be analysed ascendingly in the following order:
a__fib' = a__sel'
a__fib' = mark'
a__fib' = a__fib1'
a__fib' = a__add'
a__sel' = mark'
a__sel' = a__fib1'
a__sel' = a__add'
mark' = a__fib1'
mark' = a__add'
a__fib1' = a__add'
Rules:
a__fib'(N) → a__sel'(mark'(N), a__fib1'(s'(0'), s'(0')))
a__fib1'(X, Y) → cons'(mark'(X), fib1'(Y, add'(X, Y)))
a__add'(0', X) → mark'(X)
a__add'(s'(X), Y) → s'(a__add'(mark'(X), mark'(Y)))
a__sel'(0', cons'(X, XS)) → mark'(X)
a__sel'(s'(N), cons'(X, XS)) → a__sel'(mark'(N), mark'(XS))
mark'(fib'(X)) → a__fib'(mark'(X))
mark'(sel'(X1, X2)) → a__sel'(mark'(X1), mark'(X2))
mark'(fib1'(X1, X2)) → a__fib1'(mark'(X1), mark'(X2))
mark'(add'(X1, X2)) → a__add'(mark'(X1), mark'(X2))
mark'(s'(X)) → s'(mark'(X))
mark'(0') → 0'
mark'(cons'(X1, X2)) → cons'(mark'(X1), X2)
a__fib'(X) → fib'(X)
a__sel'(X1, X2) → sel'(X1, X2)
a__fib1'(X1, X2) → fib1'(X1, X2)
a__add'(X1, X2) → add'(X1, X2)
Types:
a__fib' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
a__sel' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
mark' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
a__fib1' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
s' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
0' :: 0':s':add':fib1':cons':fib':sel'
cons' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
fib1' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
add' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
a__add' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
fib' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
sel' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
_hole_0':s':add':fib1':cons':fib':sel'1 :: 0':s':add':fib1':cons':fib':sel'
_gen_0':s':add':fib1':cons':fib':sel'2 :: Nat → 0':s':add':fib1':cons':fib':sel'
Generator Equations:
_gen_0':s':add':fib1':cons':fib':sel'2(0) ⇔ 0'
_gen_0':s':add':fib1':cons':fib':sel'2(+(x, 1)) ⇔ s'(_gen_0':s':add':fib1':cons':fib':sel'2(x))
The following defined symbols remain to be analysed:
a__sel', a__fib', mark', a__fib1', a__add'
They will be analysed ascendingly in the following order:
a__fib' = a__sel'
a__fib' = mark'
a__fib' = a__fib1'
a__fib' = a__add'
a__sel' = mark'
a__sel' = a__fib1'
a__sel' = a__add'
mark' = a__fib1'
mark' = a__add'
a__fib1' = a__add'
Could not prove a rewrite lemma for the defined symbol a__sel'.
Rules:
a__fib'(N) → a__sel'(mark'(N), a__fib1'(s'(0'), s'(0')))
a__fib1'(X, Y) → cons'(mark'(X), fib1'(Y, add'(X, Y)))
a__add'(0', X) → mark'(X)
a__add'(s'(X), Y) → s'(a__add'(mark'(X), mark'(Y)))
a__sel'(0', cons'(X, XS)) → mark'(X)
a__sel'(s'(N), cons'(X, XS)) → a__sel'(mark'(N), mark'(XS))
mark'(fib'(X)) → a__fib'(mark'(X))
mark'(sel'(X1, X2)) → a__sel'(mark'(X1), mark'(X2))
mark'(fib1'(X1, X2)) → a__fib1'(mark'(X1), mark'(X2))
mark'(add'(X1, X2)) → a__add'(mark'(X1), mark'(X2))
mark'(s'(X)) → s'(mark'(X))
mark'(0') → 0'
mark'(cons'(X1, X2)) → cons'(mark'(X1), X2)
a__fib'(X) → fib'(X)
a__sel'(X1, X2) → sel'(X1, X2)
a__fib1'(X1, X2) → fib1'(X1, X2)
a__add'(X1, X2) → add'(X1, X2)
Types:
a__fib' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
a__sel' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
mark' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
a__fib1' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
s' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
0' :: 0':s':add':fib1':cons':fib':sel'
cons' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
fib1' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
add' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
a__add' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
fib' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
sel' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
_hole_0':s':add':fib1':cons':fib':sel'1 :: 0':s':add':fib1':cons':fib':sel'
_gen_0':s':add':fib1':cons':fib':sel'2 :: Nat → 0':s':add':fib1':cons':fib':sel'
Generator Equations:
_gen_0':s':add':fib1':cons':fib':sel'2(0) ⇔ 0'
_gen_0':s':add':fib1':cons':fib':sel'2(+(x, 1)) ⇔ s'(_gen_0':s':add':fib1':cons':fib':sel'2(x))
The following defined symbols remain to be analysed:
mark', a__fib', a__fib1', a__add'
They will be analysed ascendingly in the following order:
a__fib' = a__sel'
a__fib' = mark'
a__fib' = a__fib1'
a__fib' = a__add'
a__sel' = mark'
a__sel' = a__fib1'
a__sel' = a__add'
mark' = a__fib1'
mark' = a__add'
a__fib1' = a__add'
Proved the following rewrite lemma:
mark'(_gen_0':s':add':fib1':cons':fib':sel'2(_n50)) → _gen_0':s':add':fib1':cons':fib':sel'2(_n50), rt ∈ Ω(1 + n50)
Induction Base:
mark'(_gen_0':s':add':fib1':cons':fib':sel'2(0)) →RΩ(1)
0'
Induction Step:
mark'(_gen_0':s':add':fib1':cons':fib':sel'2(+(_$n51, 1))) →RΩ(1)
s'(mark'(_gen_0':s':add':fib1':cons':fib':sel'2(_$n51))) →IH
s'(_gen_0':s':add':fib1':cons':fib':sel'2(_$n51))
We have rt ∈ Ω(n) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).
Rules:
a__fib'(N) → a__sel'(mark'(N), a__fib1'(s'(0'), s'(0')))
a__fib1'(X, Y) → cons'(mark'(X), fib1'(Y, add'(X, Y)))
a__add'(0', X) → mark'(X)
a__add'(s'(X), Y) → s'(a__add'(mark'(X), mark'(Y)))
a__sel'(0', cons'(X, XS)) → mark'(X)
a__sel'(s'(N), cons'(X, XS)) → a__sel'(mark'(N), mark'(XS))
mark'(fib'(X)) → a__fib'(mark'(X))
mark'(sel'(X1, X2)) → a__sel'(mark'(X1), mark'(X2))
mark'(fib1'(X1, X2)) → a__fib1'(mark'(X1), mark'(X2))
mark'(add'(X1, X2)) → a__add'(mark'(X1), mark'(X2))
mark'(s'(X)) → s'(mark'(X))
mark'(0') → 0'
mark'(cons'(X1, X2)) → cons'(mark'(X1), X2)
a__fib'(X) → fib'(X)
a__sel'(X1, X2) → sel'(X1, X2)
a__fib1'(X1, X2) → fib1'(X1, X2)
a__add'(X1, X2) → add'(X1, X2)
Types:
a__fib' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
a__sel' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
mark' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
a__fib1' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
s' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
0' :: 0':s':add':fib1':cons':fib':sel'
cons' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
fib1' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
add' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
a__add' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
fib' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
sel' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
_hole_0':s':add':fib1':cons':fib':sel'1 :: 0':s':add':fib1':cons':fib':sel'
_gen_0':s':add':fib1':cons':fib':sel'2 :: Nat → 0':s':add':fib1':cons':fib':sel'
Lemmas:
mark'(_gen_0':s':add':fib1':cons':fib':sel'2(_n50)) → _gen_0':s':add':fib1':cons':fib':sel'2(_n50), rt ∈ Ω(1 + n50)
Generator Equations:
_gen_0':s':add':fib1':cons':fib':sel'2(0) ⇔ 0'
_gen_0':s':add':fib1':cons':fib':sel'2(+(x, 1)) ⇔ s'(_gen_0':s':add':fib1':cons':fib':sel'2(x))
The following defined symbols remain to be analysed:
a__fib', a__sel', a__fib1', a__add'
They will be analysed ascendingly in the following order:
a__fib' = a__sel'
a__fib' = mark'
a__fib' = a__fib1'
a__fib' = a__add'
a__sel' = mark'
a__sel' = a__fib1'
a__sel' = a__add'
mark' = a__fib1'
mark' = a__add'
a__fib1' = a__add'
Could not prove a rewrite lemma for the defined symbol a__fib'.
Rules:
a__fib'(N) → a__sel'(mark'(N), a__fib1'(s'(0'), s'(0')))
a__fib1'(X, Y) → cons'(mark'(X), fib1'(Y, add'(X, Y)))
a__add'(0', X) → mark'(X)
a__add'(s'(X), Y) → s'(a__add'(mark'(X), mark'(Y)))
a__sel'(0', cons'(X, XS)) → mark'(X)
a__sel'(s'(N), cons'(X, XS)) → a__sel'(mark'(N), mark'(XS))
mark'(fib'(X)) → a__fib'(mark'(X))
mark'(sel'(X1, X2)) → a__sel'(mark'(X1), mark'(X2))
mark'(fib1'(X1, X2)) → a__fib1'(mark'(X1), mark'(X2))
mark'(add'(X1, X2)) → a__add'(mark'(X1), mark'(X2))
mark'(s'(X)) → s'(mark'(X))
mark'(0') → 0'
mark'(cons'(X1, X2)) → cons'(mark'(X1), X2)
a__fib'(X) → fib'(X)
a__sel'(X1, X2) → sel'(X1, X2)
a__fib1'(X1, X2) → fib1'(X1, X2)
a__add'(X1, X2) → add'(X1, X2)
Types:
a__fib' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
a__sel' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
mark' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
a__fib1' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
s' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
0' :: 0':s':add':fib1':cons':fib':sel'
cons' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
fib1' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
add' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
a__add' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
fib' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
sel' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
_hole_0':s':add':fib1':cons':fib':sel'1 :: 0':s':add':fib1':cons':fib':sel'
_gen_0':s':add':fib1':cons':fib':sel'2 :: Nat → 0':s':add':fib1':cons':fib':sel'
Lemmas:
mark'(_gen_0':s':add':fib1':cons':fib':sel'2(_n50)) → _gen_0':s':add':fib1':cons':fib':sel'2(_n50), rt ∈ Ω(1 + n50)
Generator Equations:
_gen_0':s':add':fib1':cons':fib':sel'2(0) ⇔ 0'
_gen_0':s':add':fib1':cons':fib':sel'2(+(x, 1)) ⇔ s'(_gen_0':s':add':fib1':cons':fib':sel'2(x))
The following defined symbols remain to be analysed:
a__fib1', a__sel', a__add'
They will be analysed ascendingly in the following order:
a__fib' = a__sel'
a__fib' = mark'
a__fib' = a__fib1'
a__fib' = a__add'
a__sel' = mark'
a__sel' = a__fib1'
a__sel' = a__add'
mark' = a__fib1'
mark' = a__add'
a__fib1' = a__add'
Could not prove a rewrite lemma for the defined symbol a__fib1'.
Rules:
a__fib'(N) → a__sel'(mark'(N), a__fib1'(s'(0'), s'(0')))
a__fib1'(X, Y) → cons'(mark'(X), fib1'(Y, add'(X, Y)))
a__add'(0', X) → mark'(X)
a__add'(s'(X), Y) → s'(a__add'(mark'(X), mark'(Y)))
a__sel'(0', cons'(X, XS)) → mark'(X)
a__sel'(s'(N), cons'(X, XS)) → a__sel'(mark'(N), mark'(XS))
mark'(fib'(X)) → a__fib'(mark'(X))
mark'(sel'(X1, X2)) → a__sel'(mark'(X1), mark'(X2))
mark'(fib1'(X1, X2)) → a__fib1'(mark'(X1), mark'(X2))
mark'(add'(X1, X2)) → a__add'(mark'(X1), mark'(X2))
mark'(s'(X)) → s'(mark'(X))
mark'(0') → 0'
mark'(cons'(X1, X2)) → cons'(mark'(X1), X2)
a__fib'(X) → fib'(X)
a__sel'(X1, X2) → sel'(X1, X2)
a__fib1'(X1, X2) → fib1'(X1, X2)
a__add'(X1, X2) → add'(X1, X2)
Types:
a__fib' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
a__sel' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
mark' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
a__fib1' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
s' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
0' :: 0':s':add':fib1':cons':fib':sel'
cons' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
fib1' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
add' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
a__add' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
fib' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
sel' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
_hole_0':s':add':fib1':cons':fib':sel'1 :: 0':s':add':fib1':cons':fib':sel'
_gen_0':s':add':fib1':cons':fib':sel'2 :: Nat → 0':s':add':fib1':cons':fib':sel'
Lemmas:
mark'(_gen_0':s':add':fib1':cons':fib':sel'2(_n50)) → _gen_0':s':add':fib1':cons':fib':sel'2(_n50), rt ∈ Ω(1 + n50)
Generator Equations:
_gen_0':s':add':fib1':cons':fib':sel'2(0) ⇔ 0'
_gen_0':s':add':fib1':cons':fib':sel'2(+(x, 1)) ⇔ s'(_gen_0':s':add':fib1':cons':fib':sel'2(x))
The following defined symbols remain to be analysed:
a__add', a__sel'
They will be analysed ascendingly in the following order:
a__fib' = a__sel'
a__fib' = mark'
a__fib' = a__fib1'
a__fib' = a__add'
a__sel' = mark'
a__sel' = a__fib1'
a__sel' = a__add'
mark' = a__fib1'
mark' = a__add'
a__fib1' = a__add'
Proved the following rewrite lemma:
a__add'(_gen_0':s':add':fib1':cons':fib':sel'2(_n3734), _gen_0':s':add':fib1':cons':fib':sel'2(b)) → _gen_0':s':add':fib1':cons':fib':sel'2(+(_n3734, b)), rt ∈ Ω(1 + b3996·n3734 + n3734 + n37342 + b)
Induction Base:
a__add'(_gen_0':s':add':fib1':cons':fib':sel'2(0), _gen_0':s':add':fib1':cons':fib':sel'2(b)) →RΩ(1)
mark'(_gen_0':s':add':fib1':cons':fib':sel'2(b)) →LΩ(1 + b)
_gen_0':s':add':fib1':cons':fib':sel'2(b)
Induction Step:
a__add'(_gen_0':s':add':fib1':cons':fib':sel'2(+(_$n3735, 1)), _gen_0':s':add':fib1':cons':fib':sel'2(_b3996)) →RΩ(1)
s'(a__add'(mark'(_gen_0':s':add':fib1':cons':fib':sel'2(_$n3735)), mark'(_gen_0':s':add':fib1':cons':fib':sel'2(_b3996)))) →LΩ(1 + $n3735)
s'(a__add'(_gen_0':s':add':fib1':cons':fib':sel'2(_$n3735), mark'(_gen_0':s':add':fib1':cons':fib':sel'2(_b3996)))) →LΩ(1 + b3996)
s'(a__add'(_gen_0':s':add':fib1':cons':fib':sel'2(_$n3735), _gen_0':s':add':fib1':cons':fib':sel'2(_b3996))) →IH
s'(_gen_0':s':add':fib1':cons':fib':sel'2(+(_$n3735, _b3996)))
We have rt ∈ Ω(n2) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n2).
Rules:
a__fib'(N) → a__sel'(mark'(N), a__fib1'(s'(0'), s'(0')))
a__fib1'(X, Y) → cons'(mark'(X), fib1'(Y, add'(X, Y)))
a__add'(0', X) → mark'(X)
a__add'(s'(X), Y) → s'(a__add'(mark'(X), mark'(Y)))
a__sel'(0', cons'(X, XS)) → mark'(X)
a__sel'(s'(N), cons'(X, XS)) → a__sel'(mark'(N), mark'(XS))
mark'(fib'(X)) → a__fib'(mark'(X))
mark'(sel'(X1, X2)) → a__sel'(mark'(X1), mark'(X2))
mark'(fib1'(X1, X2)) → a__fib1'(mark'(X1), mark'(X2))
mark'(add'(X1, X2)) → a__add'(mark'(X1), mark'(X2))
mark'(s'(X)) → s'(mark'(X))
mark'(0') → 0'
mark'(cons'(X1, X2)) → cons'(mark'(X1), X2)
a__fib'(X) → fib'(X)
a__sel'(X1, X2) → sel'(X1, X2)
a__fib1'(X1, X2) → fib1'(X1, X2)
a__add'(X1, X2) → add'(X1, X2)
Types:
a__fib' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
a__sel' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
mark' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
a__fib1' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
s' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
0' :: 0':s':add':fib1':cons':fib':sel'
cons' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
fib1' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
add' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
a__add' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
fib' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
sel' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
_hole_0':s':add':fib1':cons':fib':sel'1 :: 0':s':add':fib1':cons':fib':sel'
_gen_0':s':add':fib1':cons':fib':sel'2 :: Nat → 0':s':add':fib1':cons':fib':sel'
Lemmas:
mark'(_gen_0':s':add':fib1':cons':fib':sel'2(_n50)) → _gen_0':s':add':fib1':cons':fib':sel'2(_n50), rt ∈ Ω(1 + n50)
a__add'(_gen_0':s':add':fib1':cons':fib':sel'2(_n3734), _gen_0':s':add':fib1':cons':fib':sel'2(b)) → _gen_0':s':add':fib1':cons':fib':sel'2(+(_n3734, b)), rt ∈ Ω(1 + b3996·n3734 + n3734 + n37342 + b)
Generator Equations:
_gen_0':s':add':fib1':cons':fib':sel'2(0) ⇔ 0'
_gen_0':s':add':fib1':cons':fib':sel'2(+(x, 1)) ⇔ s'(_gen_0':s':add':fib1':cons':fib':sel'2(x))
The following defined symbols remain to be analysed:
a__sel', a__fib', mark', a__fib1'
They will be analysed ascendingly in the following order:
a__fib' = a__sel'
a__fib' = mark'
a__fib' = a__fib1'
a__fib' = a__add'
a__sel' = mark'
a__sel' = a__fib1'
a__sel' = a__add'
mark' = a__fib1'
mark' = a__add'
a__fib1' = a__add'
Could not prove a rewrite lemma for the defined symbol a__sel'.
Rules:
a__fib'(N) → a__sel'(mark'(N), a__fib1'(s'(0'), s'(0')))
a__fib1'(X, Y) → cons'(mark'(X), fib1'(Y, add'(X, Y)))
a__add'(0', X) → mark'(X)
a__add'(s'(X), Y) → s'(a__add'(mark'(X), mark'(Y)))
a__sel'(0', cons'(X, XS)) → mark'(X)
a__sel'(s'(N), cons'(X, XS)) → a__sel'(mark'(N), mark'(XS))
mark'(fib'(X)) → a__fib'(mark'(X))
mark'(sel'(X1, X2)) → a__sel'(mark'(X1), mark'(X2))
mark'(fib1'(X1, X2)) → a__fib1'(mark'(X1), mark'(X2))
mark'(add'(X1, X2)) → a__add'(mark'(X1), mark'(X2))
mark'(s'(X)) → s'(mark'(X))
mark'(0') → 0'
mark'(cons'(X1, X2)) → cons'(mark'(X1), X2)
a__fib'(X) → fib'(X)
a__sel'(X1, X2) → sel'(X1, X2)
a__fib1'(X1, X2) → fib1'(X1, X2)
a__add'(X1, X2) → add'(X1, X2)
Types:
a__fib' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
a__sel' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
mark' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
a__fib1' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
s' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
0' :: 0':s':add':fib1':cons':fib':sel'
cons' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
fib1' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
add' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
a__add' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
fib' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
sel' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
_hole_0':s':add':fib1':cons':fib':sel'1 :: 0':s':add':fib1':cons':fib':sel'
_gen_0':s':add':fib1':cons':fib':sel'2 :: Nat → 0':s':add':fib1':cons':fib':sel'
Lemmas:
mark'(_gen_0':s':add':fib1':cons':fib':sel'2(_n50)) → _gen_0':s':add':fib1':cons':fib':sel'2(_n50), rt ∈ Ω(1 + n50)
a__add'(_gen_0':s':add':fib1':cons':fib':sel'2(_n3734), _gen_0':s':add':fib1':cons':fib':sel'2(b)) → _gen_0':s':add':fib1':cons':fib':sel'2(+(_n3734, b)), rt ∈ Ω(1 + b3996·n3734 + n3734 + n37342 + b)
Generator Equations:
_gen_0':s':add':fib1':cons':fib':sel'2(0) ⇔ 0'
_gen_0':s':add':fib1':cons':fib':sel'2(+(x, 1)) ⇔ s'(_gen_0':s':add':fib1':cons':fib':sel'2(x))
The following defined symbols remain to be analysed:
mark', a__fib', a__fib1'
They will be analysed ascendingly in the following order:
a__fib' = a__sel'
a__fib' = mark'
a__fib' = a__fib1'
a__fib' = a__add'
a__sel' = mark'
a__sel' = a__fib1'
a__sel' = a__add'
mark' = a__fib1'
mark' = a__add'
a__fib1' = a__add'
Proved the following rewrite lemma:
mark'(_gen_0':s':add':fib1':cons':fib':sel'2(_n6310)) → _gen_0':s':add':fib1':cons':fib':sel'2(_n6310), rt ∈ Ω(1 + n6310)
Induction Base:
mark'(_gen_0':s':add':fib1':cons':fib':sel'2(0)) →RΩ(1)
0'
Induction Step:
mark'(_gen_0':s':add':fib1':cons':fib':sel'2(+(_$n6311, 1))) →RΩ(1)
s'(mark'(_gen_0':s':add':fib1':cons':fib':sel'2(_$n6311))) →IH
s'(_gen_0':s':add':fib1':cons':fib':sel'2(_$n6311))
We have rt ∈ Ω(n) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).
Rules:
a__fib'(N) → a__sel'(mark'(N), a__fib1'(s'(0'), s'(0')))
a__fib1'(X, Y) → cons'(mark'(X), fib1'(Y, add'(X, Y)))
a__add'(0', X) → mark'(X)
a__add'(s'(X), Y) → s'(a__add'(mark'(X), mark'(Y)))
a__sel'(0', cons'(X, XS)) → mark'(X)
a__sel'(s'(N), cons'(X, XS)) → a__sel'(mark'(N), mark'(XS))
mark'(fib'(X)) → a__fib'(mark'(X))
mark'(sel'(X1, X2)) → a__sel'(mark'(X1), mark'(X2))
mark'(fib1'(X1, X2)) → a__fib1'(mark'(X1), mark'(X2))
mark'(add'(X1, X2)) → a__add'(mark'(X1), mark'(X2))
mark'(s'(X)) → s'(mark'(X))
mark'(0') → 0'
mark'(cons'(X1, X2)) → cons'(mark'(X1), X2)
a__fib'(X) → fib'(X)
a__sel'(X1, X2) → sel'(X1, X2)
a__fib1'(X1, X2) → fib1'(X1, X2)
a__add'(X1, X2) → add'(X1, X2)
Types:
a__fib' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
a__sel' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
mark' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
a__fib1' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
s' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
0' :: 0':s':add':fib1':cons':fib':sel'
cons' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
fib1' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
add' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
a__add' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
fib' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
sel' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
_hole_0':s':add':fib1':cons':fib':sel'1 :: 0':s':add':fib1':cons':fib':sel'
_gen_0':s':add':fib1':cons':fib':sel'2 :: Nat → 0':s':add':fib1':cons':fib':sel'
Lemmas:
mark'(_gen_0':s':add':fib1':cons':fib':sel'2(_n6310)) → _gen_0':s':add':fib1':cons':fib':sel'2(_n6310), rt ∈ Ω(1 + n6310)
a__add'(_gen_0':s':add':fib1':cons':fib':sel'2(_n3734), _gen_0':s':add':fib1':cons':fib':sel'2(b)) → _gen_0':s':add':fib1':cons':fib':sel'2(+(_n3734, b)), rt ∈ Ω(1 + b3996·n3734 + n3734 + n37342 + b)
Generator Equations:
_gen_0':s':add':fib1':cons':fib':sel'2(0) ⇔ 0'
_gen_0':s':add':fib1':cons':fib':sel'2(+(x, 1)) ⇔ s'(_gen_0':s':add':fib1':cons':fib':sel'2(x))
The following defined symbols remain to be analysed:
a__fib', a__fib1'
They will be analysed ascendingly in the following order:
a__fib' = a__sel'
a__fib' = mark'
a__fib' = a__fib1'
a__fib' = a__add'
a__sel' = mark'
a__sel' = a__fib1'
a__sel' = a__add'
mark' = a__fib1'
mark' = a__add'
a__fib1' = a__add'
Could not prove a rewrite lemma for the defined symbol a__fib'.
Rules:
a__fib'(N) → a__sel'(mark'(N), a__fib1'(s'(0'), s'(0')))
a__fib1'(X, Y) → cons'(mark'(X), fib1'(Y, add'(X, Y)))
a__add'(0', X) → mark'(X)
a__add'(s'(X), Y) → s'(a__add'(mark'(X), mark'(Y)))
a__sel'(0', cons'(X, XS)) → mark'(X)
a__sel'(s'(N), cons'(X, XS)) → a__sel'(mark'(N), mark'(XS))
mark'(fib'(X)) → a__fib'(mark'(X))
mark'(sel'(X1, X2)) → a__sel'(mark'(X1), mark'(X2))
mark'(fib1'(X1, X2)) → a__fib1'(mark'(X1), mark'(X2))
mark'(add'(X1, X2)) → a__add'(mark'(X1), mark'(X2))
mark'(s'(X)) → s'(mark'(X))
mark'(0') → 0'
mark'(cons'(X1, X2)) → cons'(mark'(X1), X2)
a__fib'(X) → fib'(X)
a__sel'(X1, X2) → sel'(X1, X2)
a__fib1'(X1, X2) → fib1'(X1, X2)
a__add'(X1, X2) → add'(X1, X2)
Types:
a__fib' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
a__sel' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
mark' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
a__fib1' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
s' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
0' :: 0':s':add':fib1':cons':fib':sel'
cons' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
fib1' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
add' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
a__add' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
fib' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
sel' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
_hole_0':s':add':fib1':cons':fib':sel'1 :: 0':s':add':fib1':cons':fib':sel'
_gen_0':s':add':fib1':cons':fib':sel'2 :: Nat → 0':s':add':fib1':cons':fib':sel'
Lemmas:
mark'(_gen_0':s':add':fib1':cons':fib':sel'2(_n6310)) → _gen_0':s':add':fib1':cons':fib':sel'2(_n6310), rt ∈ Ω(1 + n6310)
a__add'(_gen_0':s':add':fib1':cons':fib':sel'2(_n3734), _gen_0':s':add':fib1':cons':fib':sel'2(b)) → _gen_0':s':add':fib1':cons':fib':sel'2(+(_n3734, b)), rt ∈ Ω(1 + b3996·n3734 + n3734 + n37342 + b)
Generator Equations:
_gen_0':s':add':fib1':cons':fib':sel'2(0) ⇔ 0'
_gen_0':s':add':fib1':cons':fib':sel'2(+(x, 1)) ⇔ s'(_gen_0':s':add':fib1':cons':fib':sel'2(x))
The following defined symbols remain to be analysed:
a__fib1'
They will be analysed ascendingly in the following order:
a__fib' = a__sel'
a__fib' = mark'
a__fib' = a__fib1'
a__fib' = a__add'
a__sel' = mark'
a__sel' = a__fib1'
a__sel' = a__add'
mark' = a__fib1'
mark' = a__add'
a__fib1' = a__add'
Could not prove a rewrite lemma for the defined symbol a__fib1'.
Rules:
a__fib'(N) → a__sel'(mark'(N), a__fib1'(s'(0'), s'(0')))
a__fib1'(X, Y) → cons'(mark'(X), fib1'(Y, add'(X, Y)))
a__add'(0', X) → mark'(X)
a__add'(s'(X), Y) → s'(a__add'(mark'(X), mark'(Y)))
a__sel'(0', cons'(X, XS)) → mark'(X)
a__sel'(s'(N), cons'(X, XS)) → a__sel'(mark'(N), mark'(XS))
mark'(fib'(X)) → a__fib'(mark'(X))
mark'(sel'(X1, X2)) → a__sel'(mark'(X1), mark'(X2))
mark'(fib1'(X1, X2)) → a__fib1'(mark'(X1), mark'(X2))
mark'(add'(X1, X2)) → a__add'(mark'(X1), mark'(X2))
mark'(s'(X)) → s'(mark'(X))
mark'(0') → 0'
mark'(cons'(X1, X2)) → cons'(mark'(X1), X2)
a__fib'(X) → fib'(X)
a__sel'(X1, X2) → sel'(X1, X2)
a__fib1'(X1, X2) → fib1'(X1, X2)
a__add'(X1, X2) → add'(X1, X2)
Types:
a__fib' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
a__sel' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
mark' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
a__fib1' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
s' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
0' :: 0':s':add':fib1':cons':fib':sel'
cons' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
fib1' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
add' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
a__add' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
fib' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
sel' :: 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel' → 0':s':add':fib1':cons':fib':sel'
_hole_0':s':add':fib1':cons':fib':sel'1 :: 0':s':add':fib1':cons':fib':sel'
_gen_0':s':add':fib1':cons':fib':sel'2 :: Nat → 0':s':add':fib1':cons':fib':sel'
Lemmas:
mark'(_gen_0':s':add':fib1':cons':fib':sel'2(_n6310)) → _gen_0':s':add':fib1':cons':fib':sel'2(_n6310), rt ∈ Ω(1 + n6310)
a__add'(_gen_0':s':add':fib1':cons':fib':sel'2(_n3734), _gen_0':s':add':fib1':cons':fib':sel'2(b)) → _gen_0':s':add':fib1':cons':fib':sel'2(+(_n3734, b)), rt ∈ Ω(1 + b3996·n3734 + n3734 + n37342 + b)
Generator Equations:
_gen_0':s':add':fib1':cons':fib':sel'2(0) ⇔ 0'
_gen_0':s':add':fib1':cons':fib':sel'2(+(x, 1)) ⇔ s'(_gen_0':s':add':fib1':cons':fib':sel'2(x))
No more defined symbols left to analyse.
The lowerbound Ω(n2) was proven with the following lemma:
a__add'(_gen_0':s':add':fib1':cons':fib':sel'2(_n3734), _gen_0':s':add':fib1':cons':fib':sel'2(b)) → _gen_0':s':add':fib1':cons':fib':sel'2(+(_n3734, b)), rt ∈ Ω(1 + b3996·n3734 + n3734 + n37342 + b)