(0) Obligation:

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

natsadx(zeros)
zeroscons(0, zeros)
incr(cons(X, Y)) → cons(s(X), incr(Y))
adx(cons(X, Y)) → incr(cons(X, adx(Y)))
hd(cons(X, Y)) → X
tl(cons(X, Y)) → Y

Rewrite Strategy: FULL

(1) RenamingProof (EQUIVALENT transformation)

Renamed function symbols to avoid clashes with predefined symbol.

(2) Obligation:

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

natsadx(zeros)
zeroscons(0', zeros)
incr(cons(X, Y)) → cons(s(X), incr(Y))
adx(cons(X, Y)) → incr(cons(X, adx(Y)))
hd(cons(X, Y)) → X
tl(cons(X, Y)) → Y

S is empty.
Rewrite Strategy: FULL

(3) SlicingProof (LOWER BOUND(ID) transformation)

Sliced the following arguments:
s/0

(4) Obligation:

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

natsadx(zeros)
zeroscons(0', zeros)
incr(cons(X, Y)) → cons(s, incr(Y))
adx(cons(X, Y)) → incr(cons(X, adx(Y)))
hd(cons(X, Y)) → X
tl(cons(X, Y)) → Y

S is empty.
Rewrite Strategy: FULL

(5) TypeInferenceProof (BOTH BOUNDS(ID, ID) transformation)

Infered types.

(6) Obligation:

TRS:
Rules:
natsadx(zeros)
zeroscons(0', zeros)
incr(cons(X, Y)) → cons(s, incr(Y))
adx(cons(X, Y)) → incr(cons(X, adx(Y)))
hd(cons(X, Y)) → X
tl(cons(X, Y)) → Y

Types:
nats :: cons
adx :: cons → cons
zeros :: cons
cons :: 0':s → cons → cons
0' :: 0':s
incr :: cons → cons
s :: 0':s
hd :: cons → 0':s
tl :: cons → cons
hole_cons1_0 :: cons
hole_0':s2_0 :: 0':s
gen_cons3_0 :: Nat → cons

(7) OrderProof (LOWER BOUND(ID) transformation)

Heuristically decided to analyse the following defined symbols:
adx, zeros, incr

They will be analysed ascendingly in the following order:
incr < adx

(8) Obligation:

TRS:
Rules:
natsadx(zeros)
zeroscons(0', zeros)
incr(cons(X, Y)) → cons(s, incr(Y))
adx(cons(X, Y)) → incr(cons(X, adx(Y)))
hd(cons(X, Y)) → X
tl(cons(X, Y)) → Y

Types:
nats :: cons
adx :: cons → cons
zeros :: cons
cons :: 0':s → cons → cons
0' :: 0':s
incr :: cons → cons
s :: 0':s
hd :: cons → 0':s
tl :: cons → cons
hole_cons1_0 :: cons
hole_0':s2_0 :: 0':s
gen_cons3_0 :: Nat → cons

Generator Equations:
gen_cons3_0(0) ⇔ hole_cons1_0
gen_cons3_0(+(x, 1)) ⇔ cons(0', gen_cons3_0(x))

The following defined symbols remain to be analysed:
zeros, adx, incr

They will be analysed ascendingly in the following order:
incr < adx

(9) NoRewriteLemmaProof (LOWER BOUND(ID) transformation)

Could not prove a rewrite lemma for the defined symbol zeros.

(10) Obligation:

TRS:
Rules:
natsadx(zeros)
zeroscons(0', zeros)
incr(cons(X, Y)) → cons(s, incr(Y))
adx(cons(X, Y)) → incr(cons(X, adx(Y)))
hd(cons(X, Y)) → X
tl(cons(X, Y)) → Y

Types:
nats :: cons
adx :: cons → cons
zeros :: cons
cons :: 0':s → cons → cons
0' :: 0':s
incr :: cons → cons
s :: 0':s
hd :: cons → 0':s
tl :: cons → cons
hole_cons1_0 :: cons
hole_0':s2_0 :: 0':s
gen_cons3_0 :: Nat → cons

Generator Equations:
gen_cons3_0(0) ⇔ hole_cons1_0
gen_cons3_0(+(x, 1)) ⇔ cons(0', gen_cons3_0(x))

The following defined symbols remain to be analysed:
incr, adx

They will be analysed ascendingly in the following order:
incr < adx

(11) RewriteLemmaProof (LOWER BOUND(ID) transformation)

Proved the following rewrite lemma:
incr(gen_cons3_0(+(1, n8_0))) → *4_0, rt ∈ Ω(n80)

Induction Base:
incr(gen_cons3_0(+(1, 0)))

Induction Step:
incr(gen_cons3_0(+(1, +(n8_0, 1)))) →RΩ(1)
cons(s, incr(gen_cons3_0(+(1, n8_0)))) →IH
cons(s, *4_0)

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

(12) Complex Obligation (BEST)

(13) Obligation:

TRS:
Rules:
natsadx(zeros)
zeroscons(0', zeros)
incr(cons(X, Y)) → cons(s, incr(Y))
adx(cons(X, Y)) → incr(cons(X, adx(Y)))
hd(cons(X, Y)) → X
tl(cons(X, Y)) → Y

Types:
nats :: cons
adx :: cons → cons
zeros :: cons
cons :: 0':s → cons → cons
0' :: 0':s
incr :: cons → cons
s :: 0':s
hd :: cons → 0':s
tl :: cons → cons
hole_cons1_0 :: cons
hole_0':s2_0 :: 0':s
gen_cons3_0 :: Nat → cons

Lemmas:
incr(gen_cons3_0(+(1, n8_0))) → *4_0, rt ∈ Ω(n80)

Generator Equations:
gen_cons3_0(0) ⇔ hole_cons1_0
gen_cons3_0(+(x, 1)) ⇔ cons(0', gen_cons3_0(x))

The following defined symbols remain to be analysed:
adx

(14) RewriteLemmaProof (LOWER BOUND(ID) transformation)

Proved the following rewrite lemma:
adx(gen_cons3_0(+(1, n192_0))) → *4_0, rt ∈ Ω(n1920)

Induction Base:
adx(gen_cons3_0(+(1, 0)))

Induction Step:
adx(gen_cons3_0(+(1, +(n192_0, 1)))) →RΩ(1)
incr(cons(0', adx(gen_cons3_0(+(1, n192_0))))) →IH
incr(cons(0', *4_0))

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

(15) Complex Obligation (BEST)

(16) Obligation:

TRS:
Rules:
natsadx(zeros)
zeroscons(0', zeros)
incr(cons(X, Y)) → cons(s, incr(Y))
adx(cons(X, Y)) → incr(cons(X, adx(Y)))
hd(cons(X, Y)) → X
tl(cons(X, Y)) → Y

Types:
nats :: cons
adx :: cons → cons
zeros :: cons
cons :: 0':s → cons → cons
0' :: 0':s
incr :: cons → cons
s :: 0':s
hd :: cons → 0':s
tl :: cons → cons
hole_cons1_0 :: cons
hole_0':s2_0 :: 0':s
gen_cons3_0 :: Nat → cons

Lemmas:
incr(gen_cons3_0(+(1, n8_0))) → *4_0, rt ∈ Ω(n80)
adx(gen_cons3_0(+(1, n192_0))) → *4_0, rt ∈ Ω(n1920)

Generator Equations:
gen_cons3_0(0) ⇔ hole_cons1_0
gen_cons3_0(+(x, 1)) ⇔ cons(0', gen_cons3_0(x))

No more defined symbols left to analyse.

(17) LowerBoundsProof (EQUIVALENT transformation)

The lowerbound Ω(n1) was proven with the following lemma:
incr(gen_cons3_0(+(1, n8_0))) → *4_0, rt ∈ Ω(n80)

(18) BOUNDS(n^1, INF)

(19) Obligation:

TRS:
Rules:
natsadx(zeros)
zeroscons(0', zeros)
incr(cons(X, Y)) → cons(s, incr(Y))
adx(cons(X, Y)) → incr(cons(X, adx(Y)))
hd(cons(X, Y)) → X
tl(cons(X, Y)) → Y

Types:
nats :: cons
adx :: cons → cons
zeros :: cons
cons :: 0':s → cons → cons
0' :: 0':s
incr :: cons → cons
s :: 0':s
hd :: cons → 0':s
tl :: cons → cons
hole_cons1_0 :: cons
hole_0':s2_0 :: 0':s
gen_cons3_0 :: Nat → cons

Lemmas:
incr(gen_cons3_0(+(1, n8_0))) → *4_0, rt ∈ Ω(n80)
adx(gen_cons3_0(+(1, n192_0))) → *4_0, rt ∈ Ω(n1920)

Generator Equations:
gen_cons3_0(0) ⇔ hole_cons1_0
gen_cons3_0(+(x, 1)) ⇔ cons(0', gen_cons3_0(x))

No more defined symbols left to analyse.

(20) LowerBoundsProof (EQUIVALENT transformation)

The lowerbound Ω(n1) was proven with the following lemma:
incr(gen_cons3_0(+(1, n8_0))) → *4_0, rt ∈ Ω(n80)

(21) BOUNDS(n^1, INF)

(22) Obligation:

TRS:
Rules:
natsadx(zeros)
zeroscons(0', zeros)
incr(cons(X, Y)) → cons(s, incr(Y))
adx(cons(X, Y)) → incr(cons(X, adx(Y)))
hd(cons(X, Y)) → X
tl(cons(X, Y)) → Y

Types:
nats :: cons
adx :: cons → cons
zeros :: cons
cons :: 0':s → cons → cons
0' :: 0':s
incr :: cons → cons
s :: 0':s
hd :: cons → 0':s
tl :: cons → cons
hole_cons1_0 :: cons
hole_0':s2_0 :: 0':s
gen_cons3_0 :: Nat → cons

Lemmas:
incr(gen_cons3_0(+(1, n8_0))) → *4_0, rt ∈ Ω(n80)

Generator Equations:
gen_cons3_0(0) ⇔ hole_cons1_0
gen_cons3_0(+(x, 1)) ⇔ cons(0', gen_cons3_0(x))

No more defined symbols left to analyse.

(23) LowerBoundsProof (EQUIVALENT transformation)

The lowerbound Ω(n1) was proven with the following lemma:
incr(gen_cons3_0(+(1, n8_0))) → *4_0, rt ∈ Ω(n80)

(24) BOUNDS(n^1, INF)