(0) Obligation:
Q restricted rewrite system:
The TRS R consists of the following rules:
incr(nil) → nil
incr(cons(X, L)) → cons(s(X), incr(L))
adx(nil) → nil
adx(cons(X, L)) → incr(cons(X, adx(L)))
nats → adx(zeros)
zeros → cons(0, zeros)
head(cons(X, L)) → X
tail(cons(X, L)) → L
Q is empty.
(1) Overlay + Local Confluence (EQUIVALENT transformation)
The TRS is overlay and locally confluent. By [NOC] we can switch to innermost.
(2) Obligation:
Q restricted rewrite system:
The TRS R consists of the following rules:
incr(nil) → nil
incr(cons(X, L)) → cons(s(X), incr(L))
adx(nil) → nil
adx(cons(X, L)) → incr(cons(X, adx(L)))
nats → adx(zeros)
zeros → cons(0, zeros)
head(cons(X, L)) → X
tail(cons(X, L)) → L
The set Q consists of the following terms:
incr(nil)
incr(cons(x0, x1))
adx(nil)
adx(cons(x0, x1))
nats
zeros
head(cons(x0, x1))
tail(cons(x0, x1))
(3) DependencyPairsProof (EQUIVALENT transformation)
Using Dependency Pairs [AG00,LPAR04] we result in the following initial DP problem.
(4) Obligation:
Q DP problem:
The TRS P consists of the following rules:
INCR(cons(X, L)) → INCR(L)
ADX(cons(X, L)) → INCR(cons(X, adx(L)))
ADX(cons(X, L)) → ADX(L)
NATS → ADX(zeros)
NATS → ZEROS
ZEROS → ZEROS
The TRS R consists of the following rules:
incr(nil) → nil
incr(cons(X, L)) → cons(s(X), incr(L))
adx(nil) → nil
adx(cons(X, L)) → incr(cons(X, adx(L)))
nats → adx(zeros)
zeros → cons(0, zeros)
head(cons(X, L)) → X
tail(cons(X, L)) → L
The set Q consists of the following terms:
incr(nil)
incr(cons(x0, x1))
adx(nil)
adx(cons(x0, x1))
nats
zeros
head(cons(x0, x1))
tail(cons(x0, x1))
We have to consider all minimal (P,Q,R)-chains.
(5) DependencyGraphProof (EQUIVALENT transformation)
The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 3 SCCs with 3 less nodes.
(6) Complex Obligation (AND)
(7) Obligation:
Q DP problem:
The TRS P consists of the following rules:
ZEROS → ZEROS
The TRS R consists of the following rules:
incr(nil) → nil
incr(cons(X, L)) → cons(s(X), incr(L))
adx(nil) → nil
adx(cons(X, L)) → incr(cons(X, adx(L)))
nats → adx(zeros)
zeros → cons(0, zeros)
head(cons(X, L)) → X
tail(cons(X, L)) → L
The set Q consists of the following terms:
incr(nil)
incr(cons(x0, x1))
adx(nil)
adx(cons(x0, x1))
nats
zeros
head(cons(x0, x1))
tail(cons(x0, x1))
We have to consider all minimal (P,Q,R)-chains.
(8) Obligation:
Q DP problem:
The TRS P consists of the following rules:
INCR(cons(X, L)) → INCR(L)
The TRS R consists of the following rules:
incr(nil) → nil
incr(cons(X, L)) → cons(s(X), incr(L))
adx(nil) → nil
adx(cons(X, L)) → incr(cons(X, adx(L)))
nats → adx(zeros)
zeros → cons(0, zeros)
head(cons(X, L)) → X
tail(cons(X, L)) → L
The set Q consists of the following terms:
incr(nil)
incr(cons(x0, x1))
adx(nil)
adx(cons(x0, x1))
nats
zeros
head(cons(x0, x1))
tail(cons(x0, x1))
We have to consider all minimal (P,Q,R)-chains.
(9) Obligation:
Q DP problem:
The TRS P consists of the following rules:
ADX(cons(X, L)) → ADX(L)
The TRS R consists of the following rules:
incr(nil) → nil
incr(cons(X, L)) → cons(s(X), incr(L))
adx(nil) → nil
adx(cons(X, L)) → incr(cons(X, adx(L)))
nats → adx(zeros)
zeros → cons(0, zeros)
head(cons(X, L)) → X
tail(cons(X, L)) → L
The set Q consists of the following terms:
incr(nil)
incr(cons(x0, x1))
adx(nil)
adx(cons(x0, x1))
nats
zeros
head(cons(x0, x1))
tail(cons(x0, x1))
We have to consider all minimal (P,Q,R)-chains.