(0) Obligation:
Runtime Complexity TRS:
The TRS R consists of the following rules:
incr(nil) → nil
incr(cons(X, L)) → cons(s(X), n__incr(activate(L)))
adx(nil) → nil
adx(cons(X, L)) → incr(cons(X, n__adx(activate(L))))
nats → adx(zeros)
zeros → cons(0, n__zeros)
head(cons(X, L)) → X
tail(cons(X, L)) → activate(L)
incr(X) → n__incr(X)
adx(X) → n__adx(X)
zeros → n__zeros
activate(n__incr(X)) → incr(activate(X))
activate(n__adx(X)) → adx(activate(X))
activate(n__zeros) → zeros
activate(X) → X
Rewrite Strategy: FULL
(1) DecreasingLoopProof (EQUIVALENT transformation)
The following loop(s) give(s) rise to the lower bound Ω(n1):
The rewrite sequence
incr(cons(X, n__incr(X37_1))) →+ cons(s(X), n__incr(incr(X37_1)))
gives rise to a decreasing loop by considering the right hand sides subterm at position [1,0].
The pumping substitution is [X37_1 / cons(X, n__incr(X37_1))].
The result substitution is [ ].
(2) BOUNDS(n^1, INF)
(3) RenamingProof (EQUIVALENT transformation)
Renamed function symbols to avoid clashes with predefined symbol.
(4) Obligation:
Runtime Complexity Relative TRS:
The TRS R consists of the following rules:
incr(nil) → nil
incr(cons(X, L)) → cons(s(X), n__incr(activate(L)))
adx(nil) → nil
adx(cons(X, L)) → incr(cons(X, n__adx(activate(L))))
nats → adx(zeros)
zeros → cons(0', n__zeros)
head(cons(X, L)) → X
tail(cons(X, L)) → activate(L)
incr(X) → n__incr(X)
adx(X) → n__adx(X)
zeros → n__zeros
activate(n__incr(X)) → incr(activate(X))
activate(n__adx(X)) → adx(activate(X))
activate(n__zeros) → zeros
activate(X) → X
S is empty.
Rewrite Strategy: FULL
(5) SlicingProof (LOWER BOUND(ID) transformation)
Sliced the following arguments:
s/0
(6) Obligation:
Runtime Complexity Relative TRS:
The TRS R consists of the following rules:
incr(nil) → nil
incr(cons(X, L)) → cons(s, n__incr(activate(L)))
adx(nil) → nil
adx(cons(X, L)) → incr(cons(X, n__adx(activate(L))))
nats → adx(zeros)
zeros → cons(0', n__zeros)
head(cons(X, L)) → X
tail(cons(X, L)) → activate(L)
incr(X) → n__incr(X)
adx(X) → n__adx(X)
zeros → n__zeros
activate(n__incr(X)) → incr(activate(X))
activate(n__adx(X)) → adx(activate(X))
activate(n__zeros) → zeros
activate(X) → X
S is empty.
Rewrite Strategy: FULL
(7) TypeInferenceProof (BOTH BOUNDS(ID, ID) transformation)
Infered types.
(8) Obligation:
TRS:
Rules:
incr(nil) → nil
incr(cons(X, L)) → cons(s, n__incr(activate(L)))
adx(nil) → nil
adx(cons(X, L)) → incr(cons(X, n__adx(activate(L))))
nats → adx(zeros)
zeros → cons(0', n__zeros)
head(cons(X, L)) → X
tail(cons(X, L)) → activate(L)
incr(X) → n__incr(X)
adx(X) → n__adx(X)
zeros → n__zeros
activate(n__incr(X)) → incr(activate(X))
activate(n__adx(X)) → adx(activate(X))
activate(n__zeros) → zeros
activate(X) → X
Types:
incr :: nil:cons:n__incr:n__adx:n__zeros → nil:cons:n__incr:n__adx:n__zeros
nil :: nil:cons:n__incr:n__adx:n__zeros
cons :: s:0' → nil:cons:n__incr:n__adx:n__zeros → nil:cons:n__incr:n__adx:n__zeros
s :: s:0'
n__incr :: nil:cons:n__incr:n__adx:n__zeros → nil:cons:n__incr:n__adx:n__zeros
activate :: nil:cons:n__incr:n__adx:n__zeros → nil:cons:n__incr:n__adx:n__zeros
adx :: nil:cons:n__incr:n__adx:n__zeros → nil:cons:n__incr:n__adx:n__zeros
n__adx :: nil:cons:n__incr:n__adx:n__zeros → nil:cons:n__incr:n__adx:n__zeros
nats :: nil:cons:n__incr:n__adx:n__zeros
zeros :: nil:cons:n__incr:n__adx:n__zeros
0' :: s:0'
n__zeros :: nil:cons:n__incr:n__adx:n__zeros
head :: nil:cons:n__incr:n__adx:n__zeros → s:0'
tail :: nil:cons:n__incr:n__adx:n__zeros → nil:cons:n__incr:n__adx:n__zeros
hole_nil:cons:n__incr:n__adx:n__zeros1_0 :: nil:cons:n__incr:n__adx:n__zeros
hole_s:0'2_0 :: s:0'
gen_nil:cons:n__incr:n__adx:n__zeros3_0 :: Nat → nil:cons:n__incr:n__adx:n__zeros
(9) OrderProof (LOWER BOUND(ID) transformation)
Heuristically decided to analyse the following defined symbols:
incr,
activate,
adxThey will be analysed ascendingly in the following order:
incr = activate
incr = adx
activate = adx
(10) Obligation:
TRS:
Rules:
incr(
nil) →
nilincr(
cons(
X,
L)) →
cons(
s,
n__incr(
activate(
L)))
adx(
nil) →
niladx(
cons(
X,
L)) →
incr(
cons(
X,
n__adx(
activate(
L))))
nats →
adx(
zeros)
zeros →
cons(
0',
n__zeros)
head(
cons(
X,
L)) →
Xtail(
cons(
X,
L)) →
activate(
L)
incr(
X) →
n__incr(
X)
adx(
X) →
n__adx(
X)
zeros →
n__zerosactivate(
n__incr(
X)) →
incr(
activate(
X))
activate(
n__adx(
X)) →
adx(
activate(
X))
activate(
n__zeros) →
zerosactivate(
X) →
XTypes:
incr :: nil:cons:n__incr:n__adx:n__zeros → nil:cons:n__incr:n__adx:n__zeros
nil :: nil:cons:n__incr:n__adx:n__zeros
cons :: s:0' → nil:cons:n__incr:n__adx:n__zeros → nil:cons:n__incr:n__adx:n__zeros
s :: s:0'
n__incr :: nil:cons:n__incr:n__adx:n__zeros → nil:cons:n__incr:n__adx:n__zeros
activate :: nil:cons:n__incr:n__adx:n__zeros → nil:cons:n__incr:n__adx:n__zeros
adx :: nil:cons:n__incr:n__adx:n__zeros → nil:cons:n__incr:n__adx:n__zeros
n__adx :: nil:cons:n__incr:n__adx:n__zeros → nil:cons:n__incr:n__adx:n__zeros
nats :: nil:cons:n__incr:n__adx:n__zeros
zeros :: nil:cons:n__incr:n__adx:n__zeros
0' :: s:0'
n__zeros :: nil:cons:n__incr:n__adx:n__zeros
head :: nil:cons:n__incr:n__adx:n__zeros → s:0'
tail :: nil:cons:n__incr:n__adx:n__zeros → nil:cons:n__incr:n__adx:n__zeros
hole_nil:cons:n__incr:n__adx:n__zeros1_0 :: nil:cons:n__incr:n__adx:n__zeros
hole_s:0'2_0 :: s:0'
gen_nil:cons:n__incr:n__adx:n__zeros3_0 :: Nat → nil:cons:n__incr:n__adx:n__zeros
Generator Equations:
gen_nil:cons:n__incr:n__adx:n__zeros3_0(0) ⇔ nil
gen_nil:cons:n__incr:n__adx:n__zeros3_0(+(x, 1)) ⇔ cons(s, gen_nil:cons:n__incr:n__adx:n__zeros3_0(x))
The following defined symbols remain to be analysed:
activate, incr, adx
They will be analysed ascendingly in the following order:
incr = activate
incr = adx
activate = adx
(11) NoRewriteLemmaProof (LOWER BOUND(ID) transformation)
Could not prove a rewrite lemma for the defined symbol activate.
(12) Obligation:
TRS:
Rules:
incr(
nil) →
nilincr(
cons(
X,
L)) →
cons(
s,
n__incr(
activate(
L)))
adx(
nil) →
niladx(
cons(
X,
L)) →
incr(
cons(
X,
n__adx(
activate(
L))))
nats →
adx(
zeros)
zeros →
cons(
0',
n__zeros)
head(
cons(
X,
L)) →
Xtail(
cons(
X,
L)) →
activate(
L)
incr(
X) →
n__incr(
X)
adx(
X) →
n__adx(
X)
zeros →
n__zerosactivate(
n__incr(
X)) →
incr(
activate(
X))
activate(
n__adx(
X)) →
adx(
activate(
X))
activate(
n__zeros) →
zerosactivate(
X) →
XTypes:
incr :: nil:cons:n__incr:n__adx:n__zeros → nil:cons:n__incr:n__adx:n__zeros
nil :: nil:cons:n__incr:n__adx:n__zeros
cons :: s:0' → nil:cons:n__incr:n__adx:n__zeros → nil:cons:n__incr:n__adx:n__zeros
s :: s:0'
n__incr :: nil:cons:n__incr:n__adx:n__zeros → nil:cons:n__incr:n__adx:n__zeros
activate :: nil:cons:n__incr:n__adx:n__zeros → nil:cons:n__incr:n__adx:n__zeros
adx :: nil:cons:n__incr:n__adx:n__zeros → nil:cons:n__incr:n__adx:n__zeros
n__adx :: nil:cons:n__incr:n__adx:n__zeros → nil:cons:n__incr:n__adx:n__zeros
nats :: nil:cons:n__incr:n__adx:n__zeros
zeros :: nil:cons:n__incr:n__adx:n__zeros
0' :: s:0'
n__zeros :: nil:cons:n__incr:n__adx:n__zeros
head :: nil:cons:n__incr:n__adx:n__zeros → s:0'
tail :: nil:cons:n__incr:n__adx:n__zeros → nil:cons:n__incr:n__adx:n__zeros
hole_nil:cons:n__incr:n__adx:n__zeros1_0 :: nil:cons:n__incr:n__adx:n__zeros
hole_s:0'2_0 :: s:0'
gen_nil:cons:n__incr:n__adx:n__zeros3_0 :: Nat → nil:cons:n__incr:n__adx:n__zeros
Generator Equations:
gen_nil:cons:n__incr:n__adx:n__zeros3_0(0) ⇔ nil
gen_nil:cons:n__incr:n__adx:n__zeros3_0(+(x, 1)) ⇔ cons(s, gen_nil:cons:n__incr:n__adx:n__zeros3_0(x))
The following defined symbols remain to be analysed:
incr, adx
They will be analysed ascendingly in the following order:
incr = activate
incr = adx
activate = adx
(13) NoRewriteLemmaProof (LOWER BOUND(ID) transformation)
Could not prove a rewrite lemma for the defined symbol incr.
(14) Obligation:
TRS:
Rules:
incr(
nil) →
nilincr(
cons(
X,
L)) →
cons(
s,
n__incr(
activate(
L)))
adx(
nil) →
niladx(
cons(
X,
L)) →
incr(
cons(
X,
n__adx(
activate(
L))))
nats →
adx(
zeros)
zeros →
cons(
0',
n__zeros)
head(
cons(
X,
L)) →
Xtail(
cons(
X,
L)) →
activate(
L)
incr(
X) →
n__incr(
X)
adx(
X) →
n__adx(
X)
zeros →
n__zerosactivate(
n__incr(
X)) →
incr(
activate(
X))
activate(
n__adx(
X)) →
adx(
activate(
X))
activate(
n__zeros) →
zerosactivate(
X) →
XTypes:
incr :: nil:cons:n__incr:n__adx:n__zeros → nil:cons:n__incr:n__adx:n__zeros
nil :: nil:cons:n__incr:n__adx:n__zeros
cons :: s:0' → nil:cons:n__incr:n__adx:n__zeros → nil:cons:n__incr:n__adx:n__zeros
s :: s:0'
n__incr :: nil:cons:n__incr:n__adx:n__zeros → nil:cons:n__incr:n__adx:n__zeros
activate :: nil:cons:n__incr:n__adx:n__zeros → nil:cons:n__incr:n__adx:n__zeros
adx :: nil:cons:n__incr:n__adx:n__zeros → nil:cons:n__incr:n__adx:n__zeros
n__adx :: nil:cons:n__incr:n__adx:n__zeros → nil:cons:n__incr:n__adx:n__zeros
nats :: nil:cons:n__incr:n__adx:n__zeros
zeros :: nil:cons:n__incr:n__adx:n__zeros
0' :: s:0'
n__zeros :: nil:cons:n__incr:n__adx:n__zeros
head :: nil:cons:n__incr:n__adx:n__zeros → s:0'
tail :: nil:cons:n__incr:n__adx:n__zeros → nil:cons:n__incr:n__adx:n__zeros
hole_nil:cons:n__incr:n__adx:n__zeros1_0 :: nil:cons:n__incr:n__adx:n__zeros
hole_s:0'2_0 :: s:0'
gen_nil:cons:n__incr:n__adx:n__zeros3_0 :: Nat → nil:cons:n__incr:n__adx:n__zeros
Generator Equations:
gen_nil:cons:n__incr:n__adx:n__zeros3_0(0) ⇔ nil
gen_nil:cons:n__incr:n__adx:n__zeros3_0(+(x, 1)) ⇔ cons(s, gen_nil:cons:n__incr:n__adx:n__zeros3_0(x))
The following defined symbols remain to be analysed:
adx
They will be analysed ascendingly in the following order:
incr = activate
incr = adx
activate = adx
(15) RewriteLemmaProof (LOWER BOUND(ID) transformation)
Proved the following rewrite lemma:
adx(
gen_nil:cons:n__incr:n__adx:n__zeros3_0(
n81_0)) →
*4_0, rt ∈ Ω(n81
0)
Induction Base:
adx(gen_nil:cons:n__incr:n__adx:n__zeros3_0(0))
Induction Step:
adx(gen_nil:cons:n__incr:n__adx:n__zeros3_0(+(n81_0, 1))) →RΩ(1)
incr(cons(s, n__adx(activate(gen_nil:cons:n__incr:n__adx:n__zeros3_0(n81_0))))) →RΩ(1)
incr(cons(s, n__adx(gen_nil:cons:n__incr:n__adx:n__zeros3_0(n81_0)))) →RΩ(1)
cons(s, n__incr(activate(n__adx(gen_nil:cons:n__incr:n__adx:n__zeros3_0(n81_0))))) →RΩ(1)
cons(s, n__incr(adx(activate(gen_nil:cons:n__incr:n__adx:n__zeros3_0(n81_0))))) →RΩ(1)
cons(s, n__incr(adx(gen_nil:cons:n__incr:n__adx:n__zeros3_0(n81_0)))) →IH
cons(s, n__incr(*4_0))
We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).
(16) Complex Obligation (BEST)
(17) Obligation:
TRS:
Rules:
incr(
nil) →
nilincr(
cons(
X,
L)) →
cons(
s,
n__incr(
activate(
L)))
adx(
nil) →
niladx(
cons(
X,
L)) →
incr(
cons(
X,
n__adx(
activate(
L))))
nats →
adx(
zeros)
zeros →
cons(
0',
n__zeros)
head(
cons(
X,
L)) →
Xtail(
cons(
X,
L)) →
activate(
L)
incr(
X) →
n__incr(
X)
adx(
X) →
n__adx(
X)
zeros →
n__zerosactivate(
n__incr(
X)) →
incr(
activate(
X))
activate(
n__adx(
X)) →
adx(
activate(
X))
activate(
n__zeros) →
zerosactivate(
X) →
XTypes:
incr :: nil:cons:n__incr:n__adx:n__zeros → nil:cons:n__incr:n__adx:n__zeros
nil :: nil:cons:n__incr:n__adx:n__zeros
cons :: s:0' → nil:cons:n__incr:n__adx:n__zeros → nil:cons:n__incr:n__adx:n__zeros
s :: s:0'
n__incr :: nil:cons:n__incr:n__adx:n__zeros → nil:cons:n__incr:n__adx:n__zeros
activate :: nil:cons:n__incr:n__adx:n__zeros → nil:cons:n__incr:n__adx:n__zeros
adx :: nil:cons:n__incr:n__adx:n__zeros → nil:cons:n__incr:n__adx:n__zeros
n__adx :: nil:cons:n__incr:n__adx:n__zeros → nil:cons:n__incr:n__adx:n__zeros
nats :: nil:cons:n__incr:n__adx:n__zeros
zeros :: nil:cons:n__incr:n__adx:n__zeros
0' :: s:0'
n__zeros :: nil:cons:n__incr:n__adx:n__zeros
head :: nil:cons:n__incr:n__adx:n__zeros → s:0'
tail :: nil:cons:n__incr:n__adx:n__zeros → nil:cons:n__incr:n__adx:n__zeros
hole_nil:cons:n__incr:n__adx:n__zeros1_0 :: nil:cons:n__incr:n__adx:n__zeros
hole_s:0'2_0 :: s:0'
gen_nil:cons:n__incr:n__adx:n__zeros3_0 :: Nat → nil:cons:n__incr:n__adx:n__zeros
Lemmas:
adx(gen_nil:cons:n__incr:n__adx:n__zeros3_0(n81_0)) → *4_0, rt ∈ Ω(n810)
Generator Equations:
gen_nil:cons:n__incr:n__adx:n__zeros3_0(0) ⇔ nil
gen_nil:cons:n__incr:n__adx:n__zeros3_0(+(x, 1)) ⇔ cons(s, gen_nil:cons:n__incr:n__adx:n__zeros3_0(x))
The following defined symbols remain to be analysed:
activate, incr
They will be analysed ascendingly in the following order:
incr = activate
incr = adx
activate = adx
(18) NoRewriteLemmaProof (LOWER BOUND(ID) transformation)
Could not prove a rewrite lemma for the defined symbol activate.
(19) Obligation:
TRS:
Rules:
incr(
nil) →
nilincr(
cons(
X,
L)) →
cons(
s,
n__incr(
activate(
L)))
adx(
nil) →
niladx(
cons(
X,
L)) →
incr(
cons(
X,
n__adx(
activate(
L))))
nats →
adx(
zeros)
zeros →
cons(
0',
n__zeros)
head(
cons(
X,
L)) →
Xtail(
cons(
X,
L)) →
activate(
L)
incr(
X) →
n__incr(
X)
adx(
X) →
n__adx(
X)
zeros →
n__zerosactivate(
n__incr(
X)) →
incr(
activate(
X))
activate(
n__adx(
X)) →
adx(
activate(
X))
activate(
n__zeros) →
zerosactivate(
X) →
XTypes:
incr :: nil:cons:n__incr:n__adx:n__zeros → nil:cons:n__incr:n__adx:n__zeros
nil :: nil:cons:n__incr:n__adx:n__zeros
cons :: s:0' → nil:cons:n__incr:n__adx:n__zeros → nil:cons:n__incr:n__adx:n__zeros
s :: s:0'
n__incr :: nil:cons:n__incr:n__adx:n__zeros → nil:cons:n__incr:n__adx:n__zeros
activate :: nil:cons:n__incr:n__adx:n__zeros → nil:cons:n__incr:n__adx:n__zeros
adx :: nil:cons:n__incr:n__adx:n__zeros → nil:cons:n__incr:n__adx:n__zeros
n__adx :: nil:cons:n__incr:n__adx:n__zeros → nil:cons:n__incr:n__adx:n__zeros
nats :: nil:cons:n__incr:n__adx:n__zeros
zeros :: nil:cons:n__incr:n__adx:n__zeros
0' :: s:0'
n__zeros :: nil:cons:n__incr:n__adx:n__zeros
head :: nil:cons:n__incr:n__adx:n__zeros → s:0'
tail :: nil:cons:n__incr:n__adx:n__zeros → nil:cons:n__incr:n__adx:n__zeros
hole_nil:cons:n__incr:n__adx:n__zeros1_0 :: nil:cons:n__incr:n__adx:n__zeros
hole_s:0'2_0 :: s:0'
gen_nil:cons:n__incr:n__adx:n__zeros3_0 :: Nat → nil:cons:n__incr:n__adx:n__zeros
Lemmas:
adx(gen_nil:cons:n__incr:n__adx:n__zeros3_0(n81_0)) → *4_0, rt ∈ Ω(n810)
Generator Equations:
gen_nil:cons:n__incr:n__adx:n__zeros3_0(0) ⇔ nil
gen_nil:cons:n__incr:n__adx:n__zeros3_0(+(x, 1)) ⇔ cons(s, gen_nil:cons:n__incr:n__adx:n__zeros3_0(x))
The following defined symbols remain to be analysed:
incr
They will be analysed ascendingly in the following order:
incr = activate
incr = adx
activate = adx
(20) NoRewriteLemmaProof (LOWER BOUND(ID) transformation)
Could not prove a rewrite lemma for the defined symbol incr.
(21) Obligation:
TRS:
Rules:
incr(
nil) →
nilincr(
cons(
X,
L)) →
cons(
s,
n__incr(
activate(
L)))
adx(
nil) →
niladx(
cons(
X,
L)) →
incr(
cons(
X,
n__adx(
activate(
L))))
nats →
adx(
zeros)
zeros →
cons(
0',
n__zeros)
head(
cons(
X,
L)) →
Xtail(
cons(
X,
L)) →
activate(
L)
incr(
X) →
n__incr(
X)
adx(
X) →
n__adx(
X)
zeros →
n__zerosactivate(
n__incr(
X)) →
incr(
activate(
X))
activate(
n__adx(
X)) →
adx(
activate(
X))
activate(
n__zeros) →
zerosactivate(
X) →
XTypes:
incr :: nil:cons:n__incr:n__adx:n__zeros → nil:cons:n__incr:n__adx:n__zeros
nil :: nil:cons:n__incr:n__adx:n__zeros
cons :: s:0' → nil:cons:n__incr:n__adx:n__zeros → nil:cons:n__incr:n__adx:n__zeros
s :: s:0'
n__incr :: nil:cons:n__incr:n__adx:n__zeros → nil:cons:n__incr:n__adx:n__zeros
activate :: nil:cons:n__incr:n__adx:n__zeros → nil:cons:n__incr:n__adx:n__zeros
adx :: nil:cons:n__incr:n__adx:n__zeros → nil:cons:n__incr:n__adx:n__zeros
n__adx :: nil:cons:n__incr:n__adx:n__zeros → nil:cons:n__incr:n__adx:n__zeros
nats :: nil:cons:n__incr:n__adx:n__zeros
zeros :: nil:cons:n__incr:n__adx:n__zeros
0' :: s:0'
n__zeros :: nil:cons:n__incr:n__adx:n__zeros
head :: nil:cons:n__incr:n__adx:n__zeros → s:0'
tail :: nil:cons:n__incr:n__adx:n__zeros → nil:cons:n__incr:n__adx:n__zeros
hole_nil:cons:n__incr:n__adx:n__zeros1_0 :: nil:cons:n__incr:n__adx:n__zeros
hole_s:0'2_0 :: s:0'
gen_nil:cons:n__incr:n__adx:n__zeros3_0 :: Nat → nil:cons:n__incr:n__adx:n__zeros
Lemmas:
adx(gen_nil:cons:n__incr:n__adx:n__zeros3_0(n81_0)) → *4_0, rt ∈ Ω(n810)
Generator Equations:
gen_nil:cons:n__incr:n__adx:n__zeros3_0(0) ⇔ nil
gen_nil:cons:n__incr:n__adx:n__zeros3_0(+(x, 1)) ⇔ cons(s, gen_nil:cons:n__incr:n__adx:n__zeros3_0(x))
No more defined symbols left to analyse.
(22) LowerBoundsProof (EQUIVALENT transformation)
The lowerbound Ω(n1) was proven with the following lemma:
adx(gen_nil:cons:n__incr:n__adx:n__zeros3_0(n81_0)) → *4_0, rt ∈ Ω(n810)
(23) BOUNDS(n^1, INF)
(24) Obligation:
TRS:
Rules:
incr(
nil) →
nilincr(
cons(
X,
L)) →
cons(
s,
n__incr(
activate(
L)))
adx(
nil) →
niladx(
cons(
X,
L)) →
incr(
cons(
X,
n__adx(
activate(
L))))
nats →
adx(
zeros)
zeros →
cons(
0',
n__zeros)
head(
cons(
X,
L)) →
Xtail(
cons(
X,
L)) →
activate(
L)
incr(
X) →
n__incr(
X)
adx(
X) →
n__adx(
X)
zeros →
n__zerosactivate(
n__incr(
X)) →
incr(
activate(
X))
activate(
n__adx(
X)) →
adx(
activate(
X))
activate(
n__zeros) →
zerosactivate(
X) →
XTypes:
incr :: nil:cons:n__incr:n__adx:n__zeros → nil:cons:n__incr:n__adx:n__zeros
nil :: nil:cons:n__incr:n__adx:n__zeros
cons :: s:0' → nil:cons:n__incr:n__adx:n__zeros → nil:cons:n__incr:n__adx:n__zeros
s :: s:0'
n__incr :: nil:cons:n__incr:n__adx:n__zeros → nil:cons:n__incr:n__adx:n__zeros
activate :: nil:cons:n__incr:n__adx:n__zeros → nil:cons:n__incr:n__adx:n__zeros
adx :: nil:cons:n__incr:n__adx:n__zeros → nil:cons:n__incr:n__adx:n__zeros
n__adx :: nil:cons:n__incr:n__adx:n__zeros → nil:cons:n__incr:n__adx:n__zeros
nats :: nil:cons:n__incr:n__adx:n__zeros
zeros :: nil:cons:n__incr:n__adx:n__zeros
0' :: s:0'
n__zeros :: nil:cons:n__incr:n__adx:n__zeros
head :: nil:cons:n__incr:n__adx:n__zeros → s:0'
tail :: nil:cons:n__incr:n__adx:n__zeros → nil:cons:n__incr:n__adx:n__zeros
hole_nil:cons:n__incr:n__adx:n__zeros1_0 :: nil:cons:n__incr:n__adx:n__zeros
hole_s:0'2_0 :: s:0'
gen_nil:cons:n__incr:n__adx:n__zeros3_0 :: Nat → nil:cons:n__incr:n__adx:n__zeros
Lemmas:
adx(gen_nil:cons:n__incr:n__adx:n__zeros3_0(n81_0)) → *4_0, rt ∈ Ω(n810)
Generator Equations:
gen_nil:cons:n__incr:n__adx:n__zeros3_0(0) ⇔ nil
gen_nil:cons:n__incr:n__adx:n__zeros3_0(+(x, 1)) ⇔ cons(s, gen_nil:cons:n__incr:n__adx:n__zeros3_0(x))
No more defined symbols left to analyse.
(25) LowerBoundsProof (EQUIVALENT transformation)
The lowerbound Ω(n1) was proven with the following lemma:
adx(gen_nil:cons:n__incr:n__adx:n__zeros3_0(n81_0)) → *4_0, rt ∈ Ω(n810)
(26) BOUNDS(n^1, INF)