YES Termination w.r.t. Q proof of ../tpdb/TRS/secret06/aprove/addList.trs
Termination w.r.t. Q of the following Term Rewriting System could be proven:

Q restricted rewrite system:
The TRS R consists of the following rules:

isEmpty(cons(x, xs)) → false
isEmpty(nil) → true
isZero(0) → true
isZero(s(x)) → false
head(cons(x, xs)) → x
tail(cons(x, xs)) → xs
tail(nil) → nil
append(nil, x) → cons(x, nil)
append(cons(y, ys), x) → cons(y, append(ys, x))
p(s(s(x))) → s(p(s(x)))
p(s(0)) → 0
p(0) → 0
inc(s(x)) → s(inc(x))
inc(0) → s(0)
addLists(xs, ys, zs) → if(isEmpty(xs), isEmpty(ys), isZero(head(xs)), tail(xs), tail(ys), cons(p(head(xs)), tail(xs)), cons(inc(head(ys)), tail(ys)), zs, append(zs, head(ys)))
if(true, true, b, xs, ys, xs2, ys2, zs, zs2) → zs
if(true, false, b, xs, ys, xs2, ys2, zs, zs2) → differentLengthError
if(false, true, b, xs, ys, xs2, ys2, zs, zs2) → differentLengthError
if(false, false, false, xs, ys, xs2, ys2, zs, zs2) → addLists(xs2, ys2, zs)
if(false, false, true, xs, ys, xs2, ys2, zs, zs2) → addLists(xs, ys, zs2)
addList(xs, ys) → addLists(xs, ys, nil)

Q is empty.


QTRS
  ↳ Overlay + Local Confluence

Q restricted rewrite system:
The TRS R consists of the following rules:

isEmpty(cons(x, xs)) → false
isEmpty(nil) → true
isZero(0) → true
isZero(s(x)) → false
head(cons(x, xs)) → x
tail(cons(x, xs)) → xs
tail(nil) → nil
append(nil, x) → cons(x, nil)
append(cons(y, ys), x) → cons(y, append(ys, x))
p(s(s(x))) → s(p(s(x)))
p(s(0)) → 0
p(0) → 0
inc(s(x)) → s(inc(x))
inc(0) → s(0)
addLists(xs, ys, zs) → if(isEmpty(xs), isEmpty(ys), isZero(head(xs)), tail(xs), tail(ys), cons(p(head(xs)), tail(xs)), cons(inc(head(ys)), tail(ys)), zs, append(zs, head(ys)))
if(true, true, b, xs, ys, xs2, ys2, zs, zs2) → zs
if(true, false, b, xs, ys, xs2, ys2, zs, zs2) → differentLengthError
if(false, true, b, xs, ys, xs2, ys2, zs, zs2) → differentLengthError
if(false, false, false, xs, ys, xs2, ys2, zs, zs2) → addLists(xs2, ys2, zs)
if(false, false, true, xs, ys, xs2, ys2, zs, zs2) → addLists(xs, ys, zs2)
addList(xs, ys) → addLists(xs, ys, nil)

Q is empty.

The TRS is overlay and locally confluent. By [19] we can switch to innermost.

↳ QTRS
  ↳ Overlay + Local Confluence
QTRS
      ↳ DependencyPairsProof

Q restricted rewrite system:
The TRS R consists of the following rules:

isEmpty(cons(x, xs)) → false
isEmpty(nil) → true
isZero(0) → true
isZero(s(x)) → false
head(cons(x, xs)) → x
tail(cons(x, xs)) → xs
tail(nil) → nil
append(nil, x) → cons(x, nil)
append(cons(y, ys), x) → cons(y, append(ys, x))
p(s(s(x))) → s(p(s(x)))
p(s(0)) → 0
p(0) → 0
inc(s(x)) → s(inc(x))
inc(0) → s(0)
addLists(xs, ys, zs) → if(isEmpty(xs), isEmpty(ys), isZero(head(xs)), tail(xs), tail(ys), cons(p(head(xs)), tail(xs)), cons(inc(head(ys)), tail(ys)), zs, append(zs, head(ys)))
if(true, true, b, xs, ys, xs2, ys2, zs, zs2) → zs
if(true, false, b, xs, ys, xs2, ys2, zs, zs2) → differentLengthError
if(false, true, b, xs, ys, xs2, ys2, zs, zs2) → differentLengthError
if(false, false, false, xs, ys, xs2, ys2, zs, zs2) → addLists(xs2, ys2, zs)
if(false, false, true, xs, ys, xs2, ys2, zs, zs2) → addLists(xs, ys, zs2)
addList(xs, ys) → addLists(xs, ys, nil)

The set Q consists of the following terms:

isEmpty(cons(x0, x1))
isEmpty(nil)
isZero(0)
isZero(s(x0))
head(cons(x0, x1))
tail(cons(x0, x1))
tail(nil)
append(nil, x0)
append(cons(x0, x1), x2)
p(s(s(x0)))
p(s(0))
p(0)
inc(s(x0))
inc(0)
addLists(x0, x1, x2)
if(true, true, x0, x1, x2, x3, x4, x5, x6)
if(true, false, x0, x1, x2, x3, x4, x5, x6)
if(false, true, x0, x1, x2, x3, x4, x5, x6)
if(false, false, false, x0, x1, x2, x3, x4, x5)
if(false, false, true, x0, x1, x2, x3, x4, x5)
addList(x0, x1)


Using Dependency Pairs [1,15] we result in the following initial DP problem:
Q DP problem:
The TRS P consists of the following rules:

ADDLISTS(xs, ys, zs) → ISZERO(head(xs))
ADDLIST(xs, ys) → ADDLISTS(xs, ys, nil)
IF(false, false, true, xs, ys, xs2, ys2, zs, zs2) → ADDLISTS(xs, ys, zs2)
ADDLISTS(xs, ys, zs) → IF(isEmpty(xs), isEmpty(ys), isZero(head(xs)), tail(xs), tail(ys), cons(p(head(xs)), tail(xs)), cons(inc(head(ys)), tail(ys)), zs, append(zs, head(ys)))
ADDLISTS(xs, ys, zs) → INC(head(ys))
ADDLISTS(xs, ys, zs) → ISEMPTY(ys)
ADDLISTS(xs, ys, zs) → HEAD(ys)
ADDLISTS(xs, ys, zs) → HEAD(xs)
ADDLISTS(xs, ys, zs) → TAIL(ys)
ADDLISTS(xs, ys, zs) → APPEND(zs, head(ys))
P(s(s(x))) → P(s(x))
ADDLISTS(xs, ys, zs) → TAIL(xs)
IF(false, false, false, xs, ys, xs2, ys2, zs, zs2) → ADDLISTS(xs2, ys2, zs)
ADDLISTS(xs, ys, zs) → ISEMPTY(xs)
APPEND(cons(y, ys), x) → APPEND(ys, x)
INC(s(x)) → INC(x)
ADDLISTS(xs, ys, zs) → P(head(xs))

The TRS R consists of the following rules:

isEmpty(cons(x, xs)) → false
isEmpty(nil) → true
isZero(0) → true
isZero(s(x)) → false
head(cons(x, xs)) → x
tail(cons(x, xs)) → xs
tail(nil) → nil
append(nil, x) → cons(x, nil)
append(cons(y, ys), x) → cons(y, append(ys, x))
p(s(s(x))) → s(p(s(x)))
p(s(0)) → 0
p(0) → 0
inc(s(x)) → s(inc(x))
inc(0) → s(0)
addLists(xs, ys, zs) → if(isEmpty(xs), isEmpty(ys), isZero(head(xs)), tail(xs), tail(ys), cons(p(head(xs)), tail(xs)), cons(inc(head(ys)), tail(ys)), zs, append(zs, head(ys)))
if(true, true, b, xs, ys, xs2, ys2, zs, zs2) → zs
if(true, false, b, xs, ys, xs2, ys2, zs, zs2) → differentLengthError
if(false, true, b, xs, ys, xs2, ys2, zs, zs2) → differentLengthError
if(false, false, false, xs, ys, xs2, ys2, zs, zs2) → addLists(xs2, ys2, zs)
if(false, false, true, xs, ys, xs2, ys2, zs, zs2) → addLists(xs, ys, zs2)
addList(xs, ys) → addLists(xs, ys, nil)

The set Q consists of the following terms:

isEmpty(cons(x0, x1))
isEmpty(nil)
isZero(0)
isZero(s(x0))
head(cons(x0, x1))
tail(cons(x0, x1))
tail(nil)
append(nil, x0)
append(cons(x0, x1), x2)
p(s(s(x0)))
p(s(0))
p(0)
inc(s(x0))
inc(0)
addLists(x0, x1, x2)
if(true, true, x0, x1, x2, x3, x4, x5, x6)
if(true, false, x0, x1, x2, x3, x4, x5, x6)
if(false, true, x0, x1, x2, x3, x4, x5, x6)
if(false, false, false, x0, x1, x2, x3, x4, x5)
if(false, false, true, x0, x1, x2, x3, x4, x5)
addList(x0, x1)

We have to consider all minimal (P,Q,R)-chains.

↳ QTRS
  ↳ Overlay + Local Confluence
    ↳ QTRS
      ↳ DependencyPairsProof
QDP
          ↳ DependencyGraphProof

Q DP problem:
The TRS P consists of the following rules:

ADDLISTS(xs, ys, zs) → ISZERO(head(xs))
ADDLIST(xs, ys) → ADDLISTS(xs, ys, nil)
IF(false, false, true, xs, ys, xs2, ys2, zs, zs2) → ADDLISTS(xs, ys, zs2)
ADDLISTS(xs, ys, zs) → IF(isEmpty(xs), isEmpty(ys), isZero(head(xs)), tail(xs), tail(ys), cons(p(head(xs)), tail(xs)), cons(inc(head(ys)), tail(ys)), zs, append(zs, head(ys)))
ADDLISTS(xs, ys, zs) → INC(head(ys))
ADDLISTS(xs, ys, zs) → ISEMPTY(ys)
ADDLISTS(xs, ys, zs) → HEAD(ys)
ADDLISTS(xs, ys, zs) → HEAD(xs)
ADDLISTS(xs, ys, zs) → TAIL(ys)
ADDLISTS(xs, ys, zs) → APPEND(zs, head(ys))
P(s(s(x))) → P(s(x))
ADDLISTS(xs, ys, zs) → TAIL(xs)
IF(false, false, false, xs, ys, xs2, ys2, zs, zs2) → ADDLISTS(xs2, ys2, zs)
ADDLISTS(xs, ys, zs) → ISEMPTY(xs)
APPEND(cons(y, ys), x) → APPEND(ys, x)
INC(s(x)) → INC(x)
ADDLISTS(xs, ys, zs) → P(head(xs))

The TRS R consists of the following rules:

isEmpty(cons(x, xs)) → false
isEmpty(nil) → true
isZero(0) → true
isZero(s(x)) → false
head(cons(x, xs)) → x
tail(cons(x, xs)) → xs
tail(nil) → nil
append(nil, x) → cons(x, nil)
append(cons(y, ys), x) → cons(y, append(ys, x))
p(s(s(x))) → s(p(s(x)))
p(s(0)) → 0
p(0) → 0
inc(s(x)) → s(inc(x))
inc(0) → s(0)
addLists(xs, ys, zs) → if(isEmpty(xs), isEmpty(ys), isZero(head(xs)), tail(xs), tail(ys), cons(p(head(xs)), tail(xs)), cons(inc(head(ys)), tail(ys)), zs, append(zs, head(ys)))
if(true, true, b, xs, ys, xs2, ys2, zs, zs2) → zs
if(true, false, b, xs, ys, xs2, ys2, zs, zs2) → differentLengthError
if(false, true, b, xs, ys, xs2, ys2, zs, zs2) → differentLengthError
if(false, false, false, xs, ys, xs2, ys2, zs, zs2) → addLists(xs2, ys2, zs)
if(false, false, true, xs, ys, xs2, ys2, zs, zs2) → addLists(xs, ys, zs2)
addList(xs, ys) → addLists(xs, ys, nil)

The set Q consists of the following terms:

isEmpty(cons(x0, x1))
isEmpty(nil)
isZero(0)
isZero(s(x0))
head(cons(x0, x1))
tail(cons(x0, x1))
tail(nil)
append(nil, x0)
append(cons(x0, x1), x2)
p(s(s(x0)))
p(s(0))
p(0)
inc(s(x0))
inc(0)
addLists(x0, x1, x2)
if(true, true, x0, x1, x2, x3, x4, x5, x6)
if(true, false, x0, x1, x2, x3, x4, x5, x6)
if(false, true, x0, x1, x2, x3, x4, x5, x6)
if(false, false, false, x0, x1, x2, x3, x4, x5)
if(false, false, true, x0, x1, x2, x3, x4, x5)
addList(x0, x1)

We have to consider all minimal (P,Q,R)-chains.
The approximation of the Dependency Graph [15,17,22] contains 4 SCCs with 11 less nodes.

↳ QTRS
  ↳ Overlay + Local Confluence
    ↳ QTRS
      ↳ DependencyPairsProof
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ AND
QDP
                ↳ UsableRulesProof
              ↳ QDP
              ↳ QDP
              ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

INC(s(x)) → INC(x)

The TRS R consists of the following rules:

isEmpty(cons(x, xs)) → false
isEmpty(nil) → true
isZero(0) → true
isZero(s(x)) → false
head(cons(x, xs)) → x
tail(cons(x, xs)) → xs
tail(nil) → nil
append(nil, x) → cons(x, nil)
append(cons(y, ys), x) → cons(y, append(ys, x))
p(s(s(x))) → s(p(s(x)))
p(s(0)) → 0
p(0) → 0
inc(s(x)) → s(inc(x))
inc(0) → s(0)
addLists(xs, ys, zs) → if(isEmpty(xs), isEmpty(ys), isZero(head(xs)), tail(xs), tail(ys), cons(p(head(xs)), tail(xs)), cons(inc(head(ys)), tail(ys)), zs, append(zs, head(ys)))
if(true, true, b, xs, ys, xs2, ys2, zs, zs2) → zs
if(true, false, b, xs, ys, xs2, ys2, zs, zs2) → differentLengthError
if(false, true, b, xs, ys, xs2, ys2, zs, zs2) → differentLengthError
if(false, false, false, xs, ys, xs2, ys2, zs, zs2) → addLists(xs2, ys2, zs)
if(false, false, true, xs, ys, xs2, ys2, zs, zs2) → addLists(xs, ys, zs2)
addList(xs, ys) → addLists(xs, ys, nil)

The set Q consists of the following terms:

isEmpty(cons(x0, x1))
isEmpty(nil)
isZero(0)
isZero(s(x0))
head(cons(x0, x1))
tail(cons(x0, x1))
tail(nil)
append(nil, x0)
append(cons(x0, x1), x2)
p(s(s(x0)))
p(s(0))
p(0)
inc(s(x0))
inc(0)
addLists(x0, x1, x2)
if(true, true, x0, x1, x2, x3, x4, x5, x6)
if(true, false, x0, x1, x2, x3, x4, x5, x6)
if(false, true, x0, x1, x2, x3, x4, x5, x6)
if(false, false, false, x0, x1, x2, x3, x4, x5)
if(false, false, true, x0, x1, x2, x3, x4, x5)
addList(x0, x1)

We have to consider all minimal (P,Q,R)-chains.
As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [15] we can delete all non-usable rules [17] from R.

↳ QTRS
  ↳ Overlay + Local Confluence
    ↳ QTRS
      ↳ DependencyPairsProof
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ AND
              ↳ QDP
                ↳ UsableRulesProof
QDP
                    ↳ QReductionProof
              ↳ QDP
              ↳ QDP
              ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

INC(s(x)) → INC(x)

R is empty.
The set Q consists of the following terms:

isEmpty(cons(x0, x1))
isEmpty(nil)
isZero(0)
isZero(s(x0))
head(cons(x0, x1))
tail(cons(x0, x1))
tail(nil)
append(nil, x0)
append(cons(x0, x1), x2)
p(s(s(x0)))
p(s(0))
p(0)
inc(s(x0))
inc(0)
addLists(x0, x1, x2)
if(true, true, x0, x1, x2, x3, x4, x5, x6)
if(true, false, x0, x1, x2, x3, x4, x5, x6)
if(false, true, x0, x1, x2, x3, x4, x5, x6)
if(false, false, false, x0, x1, x2, x3, x4, x5)
if(false, false, true, x0, x1, x2, x3, x4, x5)
addList(x0, x1)

We have to consider all minimal (P,Q,R)-chains.
We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.

isEmpty(cons(x0, x1))
isEmpty(nil)
isZero(0)
isZero(s(x0))
head(cons(x0, x1))
tail(cons(x0, x1))
tail(nil)
append(nil, x0)
append(cons(x0, x1), x2)
p(s(s(x0)))
p(s(0))
p(0)
inc(s(x0))
inc(0)
addLists(x0, x1, x2)
if(true, true, x0, x1, x2, x3, x4, x5, x6)
if(true, false, x0, x1, x2, x3, x4, x5, x6)
if(false, true, x0, x1, x2, x3, x4, x5, x6)
if(false, false, false, x0, x1, x2, x3, x4, x5)
if(false, false, true, x0, x1, x2, x3, x4, x5)
addList(x0, x1)



↳ QTRS
  ↳ Overlay + Local Confluence
    ↳ QTRS
      ↳ DependencyPairsProof
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ AND
              ↳ QDP
                ↳ UsableRulesProof
                  ↳ QDP
                    ↳ QReductionProof
QDP
                        ↳ QDPSizeChangeProof
              ↳ QDP
              ↳ QDP
              ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

INC(s(x)) → INC(x)

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:



↳ QTRS
  ↳ Overlay + Local Confluence
    ↳ QTRS
      ↳ DependencyPairsProof
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ AND
              ↳ QDP
QDP
                ↳ UsableRulesProof
              ↳ QDP
              ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

P(s(s(x))) → P(s(x))

The TRS R consists of the following rules:

isEmpty(cons(x, xs)) → false
isEmpty(nil) → true
isZero(0) → true
isZero(s(x)) → false
head(cons(x, xs)) → x
tail(cons(x, xs)) → xs
tail(nil) → nil
append(nil, x) → cons(x, nil)
append(cons(y, ys), x) → cons(y, append(ys, x))
p(s(s(x))) → s(p(s(x)))
p(s(0)) → 0
p(0) → 0
inc(s(x)) → s(inc(x))
inc(0) → s(0)
addLists(xs, ys, zs) → if(isEmpty(xs), isEmpty(ys), isZero(head(xs)), tail(xs), tail(ys), cons(p(head(xs)), tail(xs)), cons(inc(head(ys)), tail(ys)), zs, append(zs, head(ys)))
if(true, true, b, xs, ys, xs2, ys2, zs, zs2) → zs
if(true, false, b, xs, ys, xs2, ys2, zs, zs2) → differentLengthError
if(false, true, b, xs, ys, xs2, ys2, zs, zs2) → differentLengthError
if(false, false, false, xs, ys, xs2, ys2, zs, zs2) → addLists(xs2, ys2, zs)
if(false, false, true, xs, ys, xs2, ys2, zs, zs2) → addLists(xs, ys, zs2)
addList(xs, ys) → addLists(xs, ys, nil)

The set Q consists of the following terms:

isEmpty(cons(x0, x1))
isEmpty(nil)
isZero(0)
isZero(s(x0))
head(cons(x0, x1))
tail(cons(x0, x1))
tail(nil)
append(nil, x0)
append(cons(x0, x1), x2)
p(s(s(x0)))
p(s(0))
p(0)
inc(s(x0))
inc(0)
addLists(x0, x1, x2)
if(true, true, x0, x1, x2, x3, x4, x5, x6)
if(true, false, x0, x1, x2, x3, x4, x5, x6)
if(false, true, x0, x1, x2, x3, x4, x5, x6)
if(false, false, false, x0, x1, x2, x3, x4, x5)
if(false, false, true, x0, x1, x2, x3, x4, x5)
addList(x0, x1)

We have to consider all minimal (P,Q,R)-chains.
As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [15] we can delete all non-usable rules [17] from R.

↳ QTRS
  ↳ Overlay + Local Confluence
    ↳ QTRS
      ↳ DependencyPairsProof
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ AND
              ↳ QDP
              ↳ QDP
                ↳ UsableRulesProof
QDP
                    ↳ QReductionProof
              ↳ QDP
              ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

P(s(s(x))) → P(s(x))

R is empty.
The set Q consists of the following terms:

isEmpty(cons(x0, x1))
isEmpty(nil)
isZero(0)
isZero(s(x0))
head(cons(x0, x1))
tail(cons(x0, x1))
tail(nil)
append(nil, x0)
append(cons(x0, x1), x2)
p(s(s(x0)))
p(s(0))
p(0)
inc(s(x0))
inc(0)
addLists(x0, x1, x2)
if(true, true, x0, x1, x2, x3, x4, x5, x6)
if(true, false, x0, x1, x2, x3, x4, x5, x6)
if(false, true, x0, x1, x2, x3, x4, x5, x6)
if(false, false, false, x0, x1, x2, x3, x4, x5)
if(false, false, true, x0, x1, x2, x3, x4, x5)
addList(x0, x1)

We have to consider all minimal (P,Q,R)-chains.
We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.

isEmpty(cons(x0, x1))
isEmpty(nil)
isZero(0)
isZero(s(x0))
head(cons(x0, x1))
tail(cons(x0, x1))
tail(nil)
append(nil, x0)
append(cons(x0, x1), x2)
p(s(s(x0)))
p(s(0))
p(0)
inc(s(x0))
inc(0)
addLists(x0, x1, x2)
if(true, true, x0, x1, x2, x3, x4, x5, x6)
if(true, false, x0, x1, x2, x3, x4, x5, x6)
if(false, true, x0, x1, x2, x3, x4, x5, x6)
if(false, false, false, x0, x1, x2, x3, x4, x5)
if(false, false, true, x0, x1, x2, x3, x4, x5)
addList(x0, x1)



↳ QTRS
  ↳ Overlay + Local Confluence
    ↳ QTRS
      ↳ DependencyPairsProof
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ AND
              ↳ QDP
              ↳ QDP
                ↳ UsableRulesProof
                  ↳ QDP
                    ↳ QReductionProof
QDP
                        ↳ QDPSizeChangeProof
              ↳ QDP
              ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

P(s(s(x))) → P(s(x))

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:



↳ QTRS
  ↳ Overlay + Local Confluence
    ↳ QTRS
      ↳ DependencyPairsProof
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ AND
              ↳ QDP
              ↳ QDP
QDP
                ↳ UsableRulesProof
              ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

APPEND(cons(y, ys), x) → APPEND(ys, x)

The TRS R consists of the following rules:

isEmpty(cons(x, xs)) → false
isEmpty(nil) → true
isZero(0) → true
isZero(s(x)) → false
head(cons(x, xs)) → x
tail(cons(x, xs)) → xs
tail(nil) → nil
append(nil, x) → cons(x, nil)
append(cons(y, ys), x) → cons(y, append(ys, x))
p(s(s(x))) → s(p(s(x)))
p(s(0)) → 0
p(0) → 0
inc(s(x)) → s(inc(x))
inc(0) → s(0)
addLists(xs, ys, zs) → if(isEmpty(xs), isEmpty(ys), isZero(head(xs)), tail(xs), tail(ys), cons(p(head(xs)), tail(xs)), cons(inc(head(ys)), tail(ys)), zs, append(zs, head(ys)))
if(true, true, b, xs, ys, xs2, ys2, zs, zs2) → zs
if(true, false, b, xs, ys, xs2, ys2, zs, zs2) → differentLengthError
if(false, true, b, xs, ys, xs2, ys2, zs, zs2) → differentLengthError
if(false, false, false, xs, ys, xs2, ys2, zs, zs2) → addLists(xs2, ys2, zs)
if(false, false, true, xs, ys, xs2, ys2, zs, zs2) → addLists(xs, ys, zs2)
addList(xs, ys) → addLists(xs, ys, nil)

The set Q consists of the following terms:

isEmpty(cons(x0, x1))
isEmpty(nil)
isZero(0)
isZero(s(x0))
head(cons(x0, x1))
tail(cons(x0, x1))
tail(nil)
append(nil, x0)
append(cons(x0, x1), x2)
p(s(s(x0)))
p(s(0))
p(0)
inc(s(x0))
inc(0)
addLists(x0, x1, x2)
if(true, true, x0, x1, x2, x3, x4, x5, x6)
if(true, false, x0, x1, x2, x3, x4, x5, x6)
if(false, true, x0, x1, x2, x3, x4, x5, x6)
if(false, false, false, x0, x1, x2, x3, x4, x5)
if(false, false, true, x0, x1, x2, x3, x4, x5)
addList(x0, x1)

We have to consider all minimal (P,Q,R)-chains.
As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [15] we can delete all non-usable rules [17] from R.

↳ QTRS
  ↳ Overlay + Local Confluence
    ↳ QTRS
      ↳ DependencyPairsProof
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ AND
              ↳ QDP
              ↳ QDP
              ↳ QDP
                ↳ UsableRulesProof
QDP
                    ↳ QReductionProof
              ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

APPEND(cons(y, ys), x) → APPEND(ys, x)

R is empty.
The set Q consists of the following terms:

isEmpty(cons(x0, x1))
isEmpty(nil)
isZero(0)
isZero(s(x0))
head(cons(x0, x1))
tail(cons(x0, x1))
tail(nil)
append(nil, x0)
append(cons(x0, x1), x2)
p(s(s(x0)))
p(s(0))
p(0)
inc(s(x0))
inc(0)
addLists(x0, x1, x2)
if(true, true, x0, x1, x2, x3, x4, x5, x6)
if(true, false, x0, x1, x2, x3, x4, x5, x6)
if(false, true, x0, x1, x2, x3, x4, x5, x6)
if(false, false, false, x0, x1, x2, x3, x4, x5)
if(false, false, true, x0, x1, x2, x3, x4, x5)
addList(x0, x1)

We have to consider all minimal (P,Q,R)-chains.
We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.

isEmpty(cons(x0, x1))
isEmpty(nil)
isZero(0)
isZero(s(x0))
head(cons(x0, x1))
tail(cons(x0, x1))
tail(nil)
append(nil, x0)
append(cons(x0, x1), x2)
p(s(s(x0)))
p(s(0))
p(0)
inc(s(x0))
inc(0)
addLists(x0, x1, x2)
if(true, true, x0, x1, x2, x3, x4, x5, x6)
if(true, false, x0, x1, x2, x3, x4, x5, x6)
if(false, true, x0, x1, x2, x3, x4, x5, x6)
if(false, false, false, x0, x1, x2, x3, x4, x5)
if(false, false, true, x0, x1, x2, x3, x4, x5)
addList(x0, x1)



↳ QTRS
  ↳ Overlay + Local Confluence
    ↳ QTRS
      ↳ DependencyPairsProof
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ AND
              ↳ QDP
              ↳ QDP
              ↳ QDP
                ↳ UsableRulesProof
                  ↳ QDP
                    ↳ QReductionProof
QDP
                        ↳ QDPSizeChangeProof
              ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

APPEND(cons(y, ys), x) → APPEND(ys, x)

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:



↳ QTRS
  ↳ Overlay + Local Confluence
    ↳ QTRS
      ↳ DependencyPairsProof
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ AND
              ↳ QDP
              ↳ QDP
              ↳ QDP
QDP
                ↳ UsableRulesProof

Q DP problem:
The TRS P consists of the following rules:

IF(false, false, true, xs, ys, xs2, ys2, zs, zs2) → ADDLISTS(xs, ys, zs2)
IF(false, false, false, xs, ys, xs2, ys2, zs, zs2) → ADDLISTS(xs2, ys2, zs)
ADDLISTS(xs, ys, zs) → IF(isEmpty(xs), isEmpty(ys), isZero(head(xs)), tail(xs), tail(ys), cons(p(head(xs)), tail(xs)), cons(inc(head(ys)), tail(ys)), zs, append(zs, head(ys)))

The TRS R consists of the following rules:

isEmpty(cons(x, xs)) → false
isEmpty(nil) → true
isZero(0) → true
isZero(s(x)) → false
head(cons(x, xs)) → x
tail(cons(x, xs)) → xs
tail(nil) → nil
append(nil, x) → cons(x, nil)
append(cons(y, ys), x) → cons(y, append(ys, x))
p(s(s(x))) → s(p(s(x)))
p(s(0)) → 0
p(0) → 0
inc(s(x)) → s(inc(x))
inc(0) → s(0)
addLists(xs, ys, zs) → if(isEmpty(xs), isEmpty(ys), isZero(head(xs)), tail(xs), tail(ys), cons(p(head(xs)), tail(xs)), cons(inc(head(ys)), tail(ys)), zs, append(zs, head(ys)))
if(true, true, b, xs, ys, xs2, ys2, zs, zs2) → zs
if(true, false, b, xs, ys, xs2, ys2, zs, zs2) → differentLengthError
if(false, true, b, xs, ys, xs2, ys2, zs, zs2) → differentLengthError
if(false, false, false, xs, ys, xs2, ys2, zs, zs2) → addLists(xs2, ys2, zs)
if(false, false, true, xs, ys, xs2, ys2, zs, zs2) → addLists(xs, ys, zs2)
addList(xs, ys) → addLists(xs, ys, nil)

The set Q consists of the following terms:

isEmpty(cons(x0, x1))
isEmpty(nil)
isZero(0)
isZero(s(x0))
head(cons(x0, x1))
tail(cons(x0, x1))
tail(nil)
append(nil, x0)
append(cons(x0, x1), x2)
p(s(s(x0)))
p(s(0))
p(0)
inc(s(x0))
inc(0)
addLists(x0, x1, x2)
if(true, true, x0, x1, x2, x3, x4, x5, x6)
if(true, false, x0, x1, x2, x3, x4, x5, x6)
if(false, true, x0, x1, x2, x3, x4, x5, x6)
if(false, false, false, x0, x1, x2, x3, x4, x5)
if(false, false, true, x0, x1, x2, x3, x4, x5)
addList(x0, x1)

We have to consider all minimal (P,Q,R)-chains.
As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [15] we can delete all non-usable rules [17] from R.

↳ QTRS
  ↳ Overlay + Local Confluence
    ↳ QTRS
      ↳ DependencyPairsProof
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ AND
              ↳ QDP
              ↳ QDP
              ↳ QDP
              ↳ QDP
                ↳ UsableRulesProof
QDP
                    ↳ QReductionProof

Q DP problem:
The TRS P consists of the following rules:

IF(false, false, true, xs, ys, xs2, ys2, zs, zs2) → ADDLISTS(xs, ys, zs2)
IF(false, false, false, xs, ys, xs2, ys2, zs, zs2) → ADDLISTS(xs2, ys2, zs)
ADDLISTS(xs, ys, zs) → IF(isEmpty(xs), isEmpty(ys), isZero(head(xs)), tail(xs), tail(ys), cons(p(head(xs)), tail(xs)), cons(inc(head(ys)), tail(ys)), zs, append(zs, head(ys)))

The TRS R consists of the following rules:

isEmpty(cons(x, xs)) → false
isEmpty(nil) → true
head(cons(x, xs)) → x
isZero(0) → true
isZero(s(x)) → false
tail(cons(x, xs)) → xs
tail(nil) → nil
p(s(s(x))) → s(p(s(x)))
p(s(0)) → 0
p(0) → 0
inc(s(x)) → s(inc(x))
inc(0) → s(0)
append(nil, x) → cons(x, nil)
append(cons(y, ys), x) → cons(y, append(ys, x))

The set Q consists of the following terms:

isEmpty(cons(x0, x1))
isEmpty(nil)
isZero(0)
isZero(s(x0))
head(cons(x0, x1))
tail(cons(x0, x1))
tail(nil)
append(nil, x0)
append(cons(x0, x1), x2)
p(s(s(x0)))
p(s(0))
p(0)
inc(s(x0))
inc(0)
addLists(x0, x1, x2)
if(true, true, x0, x1, x2, x3, x4, x5, x6)
if(true, false, x0, x1, x2, x3, x4, x5, x6)
if(false, true, x0, x1, x2, x3, x4, x5, x6)
if(false, false, false, x0, x1, x2, x3, x4, x5)
if(false, false, true, x0, x1, x2, x3, x4, x5)
addList(x0, x1)

We have to consider all minimal (P,Q,R)-chains.
We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.

addLists(x0, x1, x2)
if(true, true, x0, x1, x2, x3, x4, x5, x6)
if(true, false, x0, x1, x2, x3, x4, x5, x6)
if(false, true, x0, x1, x2, x3, x4, x5, x6)
if(false, false, false, x0, x1, x2, x3, x4, x5)
if(false, false, true, x0, x1, x2, x3, x4, x5)
addList(x0, x1)



↳ QTRS
  ↳ Overlay + Local Confluence
    ↳ QTRS
      ↳ DependencyPairsProof
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ AND
              ↳ QDP
              ↳ QDP
              ↳ QDP
              ↳ QDP
                ↳ UsableRulesProof
                  ↳ QDP
                    ↳ QReductionProof
QDP
                        ↳ Narrowing

Q DP problem:
The TRS P consists of the following rules:

ADDLISTS(xs, ys, zs) → IF(isEmpty(xs), isEmpty(ys), isZero(head(xs)), tail(xs), tail(ys), cons(p(head(xs)), tail(xs)), cons(inc(head(ys)), tail(ys)), zs, append(zs, head(ys)))
IF(false, false, false, xs, ys, xs2, ys2, zs, zs2) → ADDLISTS(xs2, ys2, zs)
IF(false, false, true, xs, ys, xs2, ys2, zs, zs2) → ADDLISTS(xs, ys, zs2)

The TRS R consists of the following rules:

isEmpty(cons(x, xs)) → false
isEmpty(nil) → true
head(cons(x, xs)) → x
isZero(0) → true
isZero(s(x)) → false
tail(cons(x, xs)) → xs
tail(nil) → nil
p(s(s(x))) → s(p(s(x)))
p(s(0)) → 0
p(0) → 0
inc(s(x)) → s(inc(x))
inc(0) → s(0)
append(nil, x) → cons(x, nil)
append(cons(y, ys), x) → cons(y, append(ys, x))

The set Q consists of the following terms:

isEmpty(cons(x0, x1))
isEmpty(nil)
isZero(0)
isZero(s(x0))
head(cons(x0, x1))
tail(cons(x0, x1))
tail(nil)
append(nil, x0)
append(cons(x0, x1), x2)
p(s(s(x0)))
p(s(0))
p(0)
inc(s(x0))
inc(0)

We have to consider all minimal (P,Q,R)-chains.
By narrowing [15] the rule ADDLISTS(xs, ys, zs) → IF(isEmpty(xs), isEmpty(ys), isZero(head(xs)), tail(xs), tail(ys), cons(p(head(xs)), tail(xs)), cons(inc(head(ys)), tail(ys)), zs, append(zs, head(ys))) at position [0] we obtained the following new rules:

ADDLISTS(cons(x0, x1), y1, y2) → IF(false, isEmpty(y1), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(y1), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(y1)), tail(y1)), y2, append(y2, head(y1)))
ADDLISTS(nil, y1, y2) → IF(true, isEmpty(y1), isZero(head(nil)), tail(nil), tail(y1), cons(p(head(nil)), tail(nil)), cons(inc(head(y1)), tail(y1)), y2, append(y2, head(y1)))



↳ QTRS
  ↳ Overlay + Local Confluence
    ↳ QTRS
      ↳ DependencyPairsProof
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ AND
              ↳ QDP
              ↳ QDP
              ↳ QDP
              ↳ QDP
                ↳ UsableRulesProof
                  ↳ QDP
                    ↳ QReductionProof
                      ↳ QDP
                        ↳ Narrowing
QDP
                            ↳ DependencyGraphProof

Q DP problem:
The TRS P consists of the following rules:

IF(false, false, true, xs, ys, xs2, ys2, zs, zs2) → ADDLISTS(xs, ys, zs2)
IF(false, false, false, xs, ys, xs2, ys2, zs, zs2) → ADDLISTS(xs2, ys2, zs)
ADDLISTS(nil, y1, y2) → IF(true, isEmpty(y1), isZero(head(nil)), tail(nil), tail(y1), cons(p(head(nil)), tail(nil)), cons(inc(head(y1)), tail(y1)), y2, append(y2, head(y1)))
ADDLISTS(cons(x0, x1), y1, y2) → IF(false, isEmpty(y1), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(y1), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(y1)), tail(y1)), y2, append(y2, head(y1)))

The TRS R consists of the following rules:

isEmpty(cons(x, xs)) → false
isEmpty(nil) → true
head(cons(x, xs)) → x
isZero(0) → true
isZero(s(x)) → false
tail(cons(x, xs)) → xs
tail(nil) → nil
p(s(s(x))) → s(p(s(x)))
p(s(0)) → 0
p(0) → 0
inc(s(x)) → s(inc(x))
inc(0) → s(0)
append(nil, x) → cons(x, nil)
append(cons(y, ys), x) → cons(y, append(ys, x))

The set Q consists of the following terms:

isEmpty(cons(x0, x1))
isEmpty(nil)
isZero(0)
isZero(s(x0))
head(cons(x0, x1))
tail(cons(x0, x1))
tail(nil)
append(nil, x0)
append(cons(x0, x1), x2)
p(s(s(x0)))
p(s(0))
p(0)
inc(s(x0))
inc(0)

We have to consider all minimal (P,Q,R)-chains.
The approximation of the Dependency Graph [15,17,22] contains 1 SCC with 1 less node.

↳ QTRS
  ↳ Overlay + Local Confluence
    ↳ QTRS
      ↳ DependencyPairsProof
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ AND
              ↳ QDP
              ↳ QDP
              ↳ QDP
              ↳ QDP
                ↳ UsableRulesProof
                  ↳ QDP
                    ↳ QReductionProof
                      ↳ QDP
                        ↳ Narrowing
                          ↳ QDP
                            ↳ DependencyGraphProof
QDP
                                ↳ Rewriting

Q DP problem:
The TRS P consists of the following rules:

IF(false, false, true, xs, ys, xs2, ys2, zs, zs2) → ADDLISTS(xs, ys, zs2)
IF(false, false, false, xs, ys, xs2, ys2, zs, zs2) → ADDLISTS(xs2, ys2, zs)
ADDLISTS(cons(x0, x1), y1, y2) → IF(false, isEmpty(y1), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(y1), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(y1)), tail(y1)), y2, append(y2, head(y1)))

The TRS R consists of the following rules:

isEmpty(cons(x, xs)) → false
isEmpty(nil) → true
head(cons(x, xs)) → x
isZero(0) → true
isZero(s(x)) → false
tail(cons(x, xs)) → xs
tail(nil) → nil
p(s(s(x))) → s(p(s(x)))
p(s(0)) → 0
p(0) → 0
inc(s(x)) → s(inc(x))
inc(0) → s(0)
append(nil, x) → cons(x, nil)
append(cons(y, ys), x) → cons(y, append(ys, x))

The set Q consists of the following terms:

isEmpty(cons(x0, x1))
isEmpty(nil)
isZero(0)
isZero(s(x0))
head(cons(x0, x1))
tail(cons(x0, x1))
tail(nil)
append(nil, x0)
append(cons(x0, x1), x2)
p(s(s(x0)))
p(s(0))
p(0)
inc(s(x0))
inc(0)

We have to consider all minimal (P,Q,R)-chains.
By rewriting [15] the rule ADDLISTS(cons(x0, x1), y1, y2) → IF(false, isEmpty(y1), isZero(head(cons(x0, x1))), tail(cons(x0, x1)), tail(y1), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(y1)), tail(y1)), y2, append(y2, head(y1))) at position [2,0] we obtained the following new rules:

ADDLISTS(cons(x0, x1), y1, y2) → IF(false, isEmpty(y1), isZero(x0), tail(cons(x0, x1)), tail(y1), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(y1)), tail(y1)), y2, append(y2, head(y1)))



↳ QTRS
  ↳ Overlay + Local Confluence
    ↳ QTRS
      ↳ DependencyPairsProof
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ AND
              ↳ QDP
              ↳ QDP
              ↳ QDP
              ↳ QDP
                ↳ UsableRulesProof
                  ↳ QDP
                    ↳ QReductionProof
                      ↳ QDP
                        ↳ Narrowing
                          ↳ QDP
                            ↳ DependencyGraphProof
                              ↳ QDP
                                ↳ Rewriting
QDP
                                    ↳ Rewriting

Q DP problem:
The TRS P consists of the following rules:

ADDLISTS(cons(x0, x1), y1, y2) → IF(false, isEmpty(y1), isZero(x0), tail(cons(x0, x1)), tail(y1), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(y1)), tail(y1)), y2, append(y2, head(y1)))
IF(false, false, false, xs, ys, xs2, ys2, zs, zs2) → ADDLISTS(xs2, ys2, zs)
IF(false, false, true, xs, ys, xs2, ys2, zs, zs2) → ADDLISTS(xs, ys, zs2)

The TRS R consists of the following rules:

isEmpty(cons(x, xs)) → false
isEmpty(nil) → true
head(cons(x, xs)) → x
isZero(0) → true
isZero(s(x)) → false
tail(cons(x, xs)) → xs
tail(nil) → nil
p(s(s(x))) → s(p(s(x)))
p(s(0)) → 0
p(0) → 0
inc(s(x)) → s(inc(x))
inc(0) → s(0)
append(nil, x) → cons(x, nil)
append(cons(y, ys), x) → cons(y, append(ys, x))

The set Q consists of the following terms:

isEmpty(cons(x0, x1))
isEmpty(nil)
isZero(0)
isZero(s(x0))
head(cons(x0, x1))
tail(cons(x0, x1))
tail(nil)
append(nil, x0)
append(cons(x0, x1), x2)
p(s(s(x0)))
p(s(0))
p(0)
inc(s(x0))
inc(0)

We have to consider all minimal (P,Q,R)-chains.
By rewriting [15] the rule ADDLISTS(cons(x0, x1), y1, y2) → IF(false, isEmpty(y1), isZero(x0), tail(cons(x0, x1)), tail(y1), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(y1)), tail(y1)), y2, append(y2, head(y1))) at position [3] we obtained the following new rules:

ADDLISTS(cons(x0, x1), y1, y2) → IF(false, isEmpty(y1), isZero(x0), x1, tail(y1), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(y1)), tail(y1)), y2, append(y2, head(y1)))



↳ QTRS
  ↳ Overlay + Local Confluence
    ↳ QTRS
      ↳ DependencyPairsProof
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ AND
              ↳ QDP
              ↳ QDP
              ↳ QDP
              ↳ QDP
                ↳ UsableRulesProof
                  ↳ QDP
                    ↳ QReductionProof
                      ↳ QDP
                        ↳ Narrowing
                          ↳ QDP
                            ↳ DependencyGraphProof
                              ↳ QDP
                                ↳ Rewriting
                                  ↳ QDP
                                    ↳ Rewriting
QDP
                                        ↳ Rewriting

Q DP problem:
The TRS P consists of the following rules:

ADDLISTS(cons(x0, x1), y1, y2) → IF(false, isEmpty(y1), isZero(x0), x1, tail(y1), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(y1)), tail(y1)), y2, append(y2, head(y1)))
IF(false, false, true, xs, ys, xs2, ys2, zs, zs2) → ADDLISTS(xs, ys, zs2)
IF(false, false, false, xs, ys, xs2, ys2, zs, zs2) → ADDLISTS(xs2, ys2, zs)

The TRS R consists of the following rules:

isEmpty(cons(x, xs)) → false
isEmpty(nil) → true
head(cons(x, xs)) → x
isZero(0) → true
isZero(s(x)) → false
tail(cons(x, xs)) → xs
tail(nil) → nil
p(s(s(x))) → s(p(s(x)))
p(s(0)) → 0
p(0) → 0
inc(s(x)) → s(inc(x))
inc(0) → s(0)
append(nil, x) → cons(x, nil)
append(cons(y, ys), x) → cons(y, append(ys, x))

The set Q consists of the following terms:

isEmpty(cons(x0, x1))
isEmpty(nil)
isZero(0)
isZero(s(x0))
head(cons(x0, x1))
tail(cons(x0, x1))
tail(nil)
append(nil, x0)
append(cons(x0, x1), x2)
p(s(s(x0)))
p(s(0))
p(0)
inc(s(x0))
inc(0)

We have to consider all minimal (P,Q,R)-chains.
By rewriting [15] the rule ADDLISTS(cons(x0, x1), y1, y2) → IF(false, isEmpty(y1), isZero(x0), x1, tail(y1), cons(p(head(cons(x0, x1))), tail(cons(x0, x1))), cons(inc(head(y1)), tail(y1)), y2, append(y2, head(y1))) at position [5,0,0] we obtained the following new rules:

ADDLISTS(cons(x0, x1), y1, y2) → IF(false, isEmpty(y1), isZero(x0), x1, tail(y1), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(y1)), tail(y1)), y2, append(y2, head(y1)))



↳ QTRS
  ↳ Overlay + Local Confluence
    ↳ QTRS
      ↳ DependencyPairsProof
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ AND
              ↳ QDP
              ↳ QDP
              ↳ QDP
              ↳ QDP
                ↳ UsableRulesProof
                  ↳ QDP
                    ↳ QReductionProof
                      ↳ QDP
                        ↳ Narrowing
                          ↳ QDP
                            ↳ DependencyGraphProof
                              ↳ QDP
                                ↳ Rewriting
                                  ↳ QDP
                                    ↳ Rewriting
                                      ↳ QDP
                                        ↳ Rewriting
QDP
                                            ↳ Rewriting

Q DP problem:
The TRS P consists of the following rules:

ADDLISTS(cons(x0, x1), y1, y2) → IF(false, isEmpty(y1), isZero(x0), x1, tail(y1), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(y1)), tail(y1)), y2, append(y2, head(y1)))
IF(false, false, false, xs, ys, xs2, ys2, zs, zs2) → ADDLISTS(xs2, ys2, zs)
IF(false, false, true, xs, ys, xs2, ys2, zs, zs2) → ADDLISTS(xs, ys, zs2)

The TRS R consists of the following rules:

isEmpty(cons(x, xs)) → false
isEmpty(nil) → true
head(cons(x, xs)) → x
isZero(0) → true
isZero(s(x)) → false
tail(cons(x, xs)) → xs
tail(nil) → nil
p(s(s(x))) → s(p(s(x)))
p(s(0)) → 0
p(0) → 0
inc(s(x)) → s(inc(x))
inc(0) → s(0)
append(nil, x) → cons(x, nil)
append(cons(y, ys), x) → cons(y, append(ys, x))

The set Q consists of the following terms:

isEmpty(cons(x0, x1))
isEmpty(nil)
isZero(0)
isZero(s(x0))
head(cons(x0, x1))
tail(cons(x0, x1))
tail(nil)
append(nil, x0)
append(cons(x0, x1), x2)
p(s(s(x0)))
p(s(0))
p(0)
inc(s(x0))
inc(0)

We have to consider all minimal (P,Q,R)-chains.
By rewriting [15] the rule ADDLISTS(cons(x0, x1), y1, y2) → IF(false, isEmpty(y1), isZero(x0), x1, tail(y1), cons(p(x0), tail(cons(x0, x1))), cons(inc(head(y1)), tail(y1)), y2, append(y2, head(y1))) at position [5,1] we obtained the following new rules:

ADDLISTS(cons(x0, x1), y1, y2) → IF(false, isEmpty(y1), isZero(x0), x1, tail(y1), cons(p(x0), x1), cons(inc(head(y1)), tail(y1)), y2, append(y2, head(y1)))



↳ QTRS
  ↳ Overlay + Local Confluence
    ↳ QTRS
      ↳ DependencyPairsProof
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ AND
              ↳ QDP
              ↳ QDP
              ↳ QDP
              ↳ QDP
                ↳ UsableRulesProof
                  ↳ QDP
                    ↳ QReductionProof
                      ↳ QDP
                        ↳ Narrowing
                          ↳ QDP
                            ↳ DependencyGraphProof
                              ↳ QDP
                                ↳ Rewriting
                                  ↳ QDP
                                    ↳ Rewriting
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
QDP
                                                ↳ Narrowing

Q DP problem:
The TRS P consists of the following rules:

IF(false, false, true, xs, ys, xs2, ys2, zs, zs2) → ADDLISTS(xs, ys, zs2)
IF(false, false, false, xs, ys, xs2, ys2, zs, zs2) → ADDLISTS(xs2, ys2, zs)
ADDLISTS(cons(x0, x1), y1, y2) → IF(false, isEmpty(y1), isZero(x0), x1, tail(y1), cons(p(x0), x1), cons(inc(head(y1)), tail(y1)), y2, append(y2, head(y1)))

The TRS R consists of the following rules:

isEmpty(cons(x, xs)) → false
isEmpty(nil) → true
head(cons(x, xs)) → x
isZero(0) → true
isZero(s(x)) → false
tail(cons(x, xs)) → xs
tail(nil) → nil
p(s(s(x))) → s(p(s(x)))
p(s(0)) → 0
p(0) → 0
inc(s(x)) → s(inc(x))
inc(0) → s(0)
append(nil, x) → cons(x, nil)
append(cons(y, ys), x) → cons(y, append(ys, x))

The set Q consists of the following terms:

isEmpty(cons(x0, x1))
isEmpty(nil)
isZero(0)
isZero(s(x0))
head(cons(x0, x1))
tail(cons(x0, x1))
tail(nil)
append(nil, x0)
append(cons(x0, x1), x2)
p(s(s(x0)))
p(s(0))
p(0)
inc(s(x0))
inc(0)

We have to consider all minimal (P,Q,R)-chains.
By narrowing [15] the rule ADDLISTS(cons(x0, x1), y1, y2) → IF(false, isEmpty(y1), isZero(x0), x1, tail(y1), cons(p(x0), x1), cons(inc(head(y1)), tail(y1)), y2, append(y2, head(y1))) at position [1] we obtained the following new rules:

ADDLISTS(cons(y0, y1), cons(x0, x1), y3) → IF(false, false, isZero(y0), y1, tail(cons(x0, x1)), cons(p(y0), y1), cons(inc(head(cons(x0, x1))), tail(cons(x0, x1))), y3, append(y3, head(cons(x0, x1))))
ADDLISTS(cons(y0, y1), nil, y3) → IF(false, true, isZero(y0), y1, tail(nil), cons(p(y0), y1), cons(inc(head(nil)), tail(nil)), y3, append(y3, head(nil)))



↳ QTRS
  ↳ Overlay + Local Confluence
    ↳ QTRS
      ↳ DependencyPairsProof
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ AND
              ↳ QDP
              ↳ QDP
              ↳ QDP
              ↳ QDP
                ↳ UsableRulesProof
                  ↳ QDP
                    ↳ QReductionProof
                      ↳ QDP
                        ↳ Narrowing
                          ↳ QDP
                            ↳ DependencyGraphProof
                              ↳ QDP
                                ↳ Rewriting
                                  ↳ QDP
                                    ↳ Rewriting
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ Narrowing
QDP
                                                    ↳ DependencyGraphProof

Q DP problem:
The TRS P consists of the following rules:

ADDLISTS(cons(y0, y1), cons(x0, x1), y3) → IF(false, false, isZero(y0), y1, tail(cons(x0, x1)), cons(p(y0), y1), cons(inc(head(cons(x0, x1))), tail(cons(x0, x1))), y3, append(y3, head(cons(x0, x1))))
ADDLISTS(cons(y0, y1), nil, y3) → IF(false, true, isZero(y0), y1, tail(nil), cons(p(y0), y1), cons(inc(head(nil)), tail(nil)), y3, append(y3, head(nil)))
IF(false, false, false, xs, ys, xs2, ys2, zs, zs2) → ADDLISTS(xs2, ys2, zs)
IF(false, false, true, xs, ys, xs2, ys2, zs, zs2) → ADDLISTS(xs, ys, zs2)

The TRS R consists of the following rules:

isEmpty(cons(x, xs)) → false
isEmpty(nil) → true
head(cons(x, xs)) → x
isZero(0) → true
isZero(s(x)) → false
tail(cons(x, xs)) → xs
tail(nil) → nil
p(s(s(x))) → s(p(s(x)))
p(s(0)) → 0
p(0) → 0
inc(s(x)) → s(inc(x))
inc(0) → s(0)
append(nil, x) → cons(x, nil)
append(cons(y, ys), x) → cons(y, append(ys, x))

The set Q consists of the following terms:

isEmpty(cons(x0, x1))
isEmpty(nil)
isZero(0)
isZero(s(x0))
head(cons(x0, x1))
tail(cons(x0, x1))
tail(nil)
append(nil, x0)
append(cons(x0, x1), x2)
p(s(s(x0)))
p(s(0))
p(0)
inc(s(x0))
inc(0)

We have to consider all minimal (P,Q,R)-chains.
The approximation of the Dependency Graph [15,17,22] contains 1 SCC with 1 less node.

↳ QTRS
  ↳ Overlay + Local Confluence
    ↳ QTRS
      ↳ DependencyPairsProof
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ AND
              ↳ QDP
              ↳ QDP
              ↳ QDP
              ↳ QDP
                ↳ UsableRulesProof
                  ↳ QDP
                    ↳ QReductionProof
                      ↳ QDP
                        ↳ Narrowing
                          ↳ QDP
                            ↳ DependencyGraphProof
                              ↳ QDP
                                ↳ Rewriting
                                  ↳ QDP
                                    ↳ Rewriting
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ Narrowing
                                                  ↳ QDP
                                                    ↳ DependencyGraphProof
QDP
                                                        ↳ UsableRulesProof

Q DP problem:
The TRS P consists of the following rules:

ADDLISTS(cons(y0, y1), cons(x0, x1), y3) → IF(false, false, isZero(y0), y1, tail(cons(x0, x1)), cons(p(y0), y1), cons(inc(head(cons(x0, x1))), tail(cons(x0, x1))), y3, append(y3, head(cons(x0, x1))))
IF(false, false, true, xs, ys, xs2, ys2, zs, zs2) → ADDLISTS(xs, ys, zs2)
IF(false, false, false, xs, ys, xs2, ys2, zs, zs2) → ADDLISTS(xs2, ys2, zs)

The TRS R consists of the following rules:

isEmpty(cons(x, xs)) → false
isEmpty(nil) → true
head(cons(x, xs)) → x
isZero(0) → true
isZero(s(x)) → false
tail(cons(x, xs)) → xs
tail(nil) → nil
p(s(s(x))) → s(p(s(x)))
p(s(0)) → 0
p(0) → 0
inc(s(x)) → s(inc(x))
inc(0) → s(0)
append(nil, x) → cons(x, nil)
append(cons(y, ys), x) → cons(y, append(ys, x))

The set Q consists of the following terms:

isEmpty(cons(x0, x1))
isEmpty(nil)
isZero(0)
isZero(s(x0))
head(cons(x0, x1))
tail(cons(x0, x1))
tail(nil)
append(nil, x0)
append(cons(x0, x1), x2)
p(s(s(x0)))
p(s(0))
p(0)
inc(s(x0))
inc(0)

We have to consider all minimal (P,Q,R)-chains.
As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [15] we can delete all non-usable rules [17] from R.

↳ QTRS
  ↳ Overlay + Local Confluence
    ↳ QTRS
      ↳ DependencyPairsProof
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ AND
              ↳ QDP
              ↳ QDP
              ↳ QDP
              ↳ QDP
                ↳ UsableRulesProof
                  ↳ QDP
                    ↳ QReductionProof
                      ↳ QDP
                        ↳ Narrowing
                          ↳ QDP
                            ↳ DependencyGraphProof
                              ↳ QDP
                                ↳ Rewriting
                                  ↳ QDP
                                    ↳ Rewriting
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ Narrowing
                                                  ↳ QDP
                                                    ↳ DependencyGraphProof
                                                      ↳ QDP
                                                        ↳ UsableRulesProof
QDP
                                                            ↳ QReductionProof

Q DP problem:
The TRS P consists of the following rules:

ADDLISTS(cons(y0, y1), cons(x0, x1), y3) → IF(false, false, isZero(y0), y1, tail(cons(x0, x1)), cons(p(y0), y1), cons(inc(head(cons(x0, x1))), tail(cons(x0, x1))), y3, append(y3, head(cons(x0, x1))))
IF(false, false, true, xs, ys, xs2, ys2, zs, zs2) → ADDLISTS(xs, ys, zs2)
IF(false, false, false, xs, ys, xs2, ys2, zs, zs2) → ADDLISTS(xs2, ys2, zs)

The TRS R consists of the following rules:

isZero(0) → true
isZero(s(x)) → false
tail(cons(x, xs)) → xs
p(s(s(x))) → s(p(s(x)))
p(s(0)) → 0
p(0) → 0
head(cons(x, xs)) → x
inc(s(x)) → s(inc(x))
inc(0) → s(0)
append(nil, x) → cons(x, nil)
append(cons(y, ys), x) → cons(y, append(ys, x))

The set Q consists of the following terms:

isEmpty(cons(x0, x1))
isEmpty(nil)
isZero(0)
isZero(s(x0))
head(cons(x0, x1))
tail(cons(x0, x1))
tail(nil)
append(nil, x0)
append(cons(x0, x1), x2)
p(s(s(x0)))
p(s(0))
p(0)
inc(s(x0))
inc(0)

We have to consider all minimal (P,Q,R)-chains.
We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.

isEmpty(cons(x0, x1))
isEmpty(nil)



↳ QTRS
  ↳ Overlay + Local Confluence
    ↳ QTRS
      ↳ DependencyPairsProof
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ AND
              ↳ QDP
              ↳ QDP
              ↳ QDP
              ↳ QDP
                ↳ UsableRulesProof
                  ↳ QDP
                    ↳ QReductionProof
                      ↳ QDP
                        ↳ Narrowing
                          ↳ QDP
                            ↳ DependencyGraphProof
                              ↳ QDP
                                ↳ Rewriting
                                  ↳ QDP
                                    ↳ Rewriting
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ Narrowing
                                                  ↳ QDP
                                                    ↳ DependencyGraphProof
                                                      ↳ QDP
                                                        ↳ UsableRulesProof
                                                          ↳ QDP
                                                            ↳ QReductionProof
QDP
                                                                ↳ Rewriting

Q DP problem:
The TRS P consists of the following rules:

ADDLISTS(cons(y0, y1), cons(x0, x1), y3) → IF(false, false, isZero(y0), y1, tail(cons(x0, x1)), cons(p(y0), y1), cons(inc(head(cons(x0, x1))), tail(cons(x0, x1))), y3, append(y3, head(cons(x0, x1))))
IF(false, false, false, xs, ys, xs2, ys2, zs, zs2) → ADDLISTS(xs2, ys2, zs)
IF(false, false, true, xs, ys, xs2, ys2, zs, zs2) → ADDLISTS(xs, ys, zs2)

The TRS R consists of the following rules:

isZero(0) → true
isZero(s(x)) → false
tail(cons(x, xs)) → xs
p(s(s(x))) → s(p(s(x)))
p(s(0)) → 0
p(0) → 0
head(cons(x, xs)) → x
inc(s(x)) → s(inc(x))
inc(0) → s(0)
append(nil, x) → cons(x, nil)
append(cons(y, ys), x) → cons(y, append(ys, x))

The set Q consists of the following terms:

isZero(0)
isZero(s(x0))
head(cons(x0, x1))
tail(cons(x0, x1))
tail(nil)
append(nil, x0)
append(cons(x0, x1), x2)
p(s(s(x0)))
p(s(0))
p(0)
inc(s(x0))
inc(0)

We have to consider all minimal (P,Q,R)-chains.
By rewriting [15] the rule ADDLISTS(cons(y0, y1), cons(x0, x1), y3) → IF(false, false, isZero(y0), y1, tail(cons(x0, x1)), cons(p(y0), y1), cons(inc(head(cons(x0, x1))), tail(cons(x0, x1))), y3, append(y3, head(cons(x0, x1)))) at position [4] we obtained the following new rules:

ADDLISTS(cons(y0, y1), cons(x0, x1), y3) → IF(false, false, isZero(y0), y1, x1, cons(p(y0), y1), cons(inc(head(cons(x0, x1))), tail(cons(x0, x1))), y3, append(y3, head(cons(x0, x1))))



↳ QTRS
  ↳ Overlay + Local Confluence
    ↳ QTRS
      ↳ DependencyPairsProof
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ AND
              ↳ QDP
              ↳ QDP
              ↳ QDP
              ↳ QDP
                ↳ UsableRulesProof
                  ↳ QDP
                    ↳ QReductionProof
                      ↳ QDP
                        ↳ Narrowing
                          ↳ QDP
                            ↳ DependencyGraphProof
                              ↳ QDP
                                ↳ Rewriting
                                  ↳ QDP
                                    ↳ Rewriting
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ Narrowing
                                                  ↳ QDP
                                                    ↳ DependencyGraphProof
                                                      ↳ QDP
                                                        ↳ UsableRulesProof
                                                          ↳ QDP
                                                            ↳ QReductionProof
                                                              ↳ QDP
                                                                ↳ Rewriting
QDP
                                                                    ↳ Rewriting

Q DP problem:
The TRS P consists of the following rules:

IF(false, false, true, xs, ys, xs2, ys2, zs, zs2) → ADDLISTS(xs, ys, zs2)
IF(false, false, false, xs, ys, xs2, ys2, zs, zs2) → ADDLISTS(xs2, ys2, zs)
ADDLISTS(cons(y0, y1), cons(x0, x1), y3) → IF(false, false, isZero(y0), y1, x1, cons(p(y0), y1), cons(inc(head(cons(x0, x1))), tail(cons(x0, x1))), y3, append(y3, head(cons(x0, x1))))

The TRS R consists of the following rules:

isZero(0) → true
isZero(s(x)) → false
tail(cons(x, xs)) → xs
p(s(s(x))) → s(p(s(x)))
p(s(0)) → 0
p(0) → 0
head(cons(x, xs)) → x
inc(s(x)) → s(inc(x))
inc(0) → s(0)
append(nil, x) → cons(x, nil)
append(cons(y, ys), x) → cons(y, append(ys, x))

The set Q consists of the following terms:

isZero(0)
isZero(s(x0))
head(cons(x0, x1))
tail(cons(x0, x1))
tail(nil)
append(nil, x0)
append(cons(x0, x1), x2)
p(s(s(x0)))
p(s(0))
p(0)
inc(s(x0))
inc(0)

We have to consider all minimal (P,Q,R)-chains.
By rewriting [15] the rule ADDLISTS(cons(y0, y1), cons(x0, x1), y3) → IF(false, false, isZero(y0), y1, x1, cons(p(y0), y1), cons(inc(head(cons(x0, x1))), tail(cons(x0, x1))), y3, append(y3, head(cons(x0, x1)))) at position [6,0,0] we obtained the following new rules:

ADDLISTS(cons(y0, y1), cons(x0, x1), y3) → IF(false, false, isZero(y0), y1, x1, cons(p(y0), y1), cons(inc(x0), tail(cons(x0, x1))), y3, append(y3, head(cons(x0, x1))))



↳ QTRS
  ↳ Overlay + Local Confluence
    ↳ QTRS
      ↳ DependencyPairsProof
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ AND
              ↳ QDP
              ↳ QDP
              ↳ QDP
              ↳ QDP
                ↳ UsableRulesProof
                  ↳ QDP
                    ↳ QReductionProof
                      ↳ QDP
                        ↳ Narrowing
                          ↳ QDP
                            ↳ DependencyGraphProof
                              ↳ QDP
                                ↳ Rewriting
                                  ↳ QDP
                                    ↳ Rewriting
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ Narrowing
                                                  ↳ QDP
                                                    ↳ DependencyGraphProof
                                                      ↳ QDP
                                                        ↳ UsableRulesProof
                                                          ↳ QDP
                                                            ↳ QReductionProof
                                                              ↳ QDP
                                                                ↳ Rewriting
                                                                  ↳ QDP
                                                                    ↳ Rewriting
QDP
                                                                        ↳ Rewriting

Q DP problem:
The TRS P consists of the following rules:

ADDLISTS(cons(y0, y1), cons(x0, x1), y3) → IF(false, false, isZero(y0), y1, x1, cons(p(y0), y1), cons(inc(x0), tail(cons(x0, x1))), y3, append(y3, head(cons(x0, x1))))
IF(false, false, false, xs, ys, xs2, ys2, zs, zs2) → ADDLISTS(xs2, ys2, zs)
IF(false, false, true, xs, ys, xs2, ys2, zs, zs2) → ADDLISTS(xs, ys, zs2)

The TRS R consists of the following rules:

isZero(0) → true
isZero(s(x)) → false
tail(cons(x, xs)) → xs
p(s(s(x))) → s(p(s(x)))
p(s(0)) → 0
p(0) → 0
head(cons(x, xs)) → x
inc(s(x)) → s(inc(x))
inc(0) → s(0)
append(nil, x) → cons(x, nil)
append(cons(y, ys), x) → cons(y, append(ys, x))

The set Q consists of the following terms:

isZero(0)
isZero(s(x0))
head(cons(x0, x1))
tail(cons(x0, x1))
tail(nil)
append(nil, x0)
append(cons(x0, x1), x2)
p(s(s(x0)))
p(s(0))
p(0)
inc(s(x0))
inc(0)

We have to consider all minimal (P,Q,R)-chains.
By rewriting [15] the rule ADDLISTS(cons(y0, y1), cons(x0, x1), y3) → IF(false, false, isZero(y0), y1, x1, cons(p(y0), y1), cons(inc(x0), tail(cons(x0, x1))), y3, append(y3, head(cons(x0, x1)))) at position [6,1] we obtained the following new rules:

ADDLISTS(cons(y0, y1), cons(x0, x1), y3) → IF(false, false, isZero(y0), y1, x1, cons(p(y0), y1), cons(inc(x0), x1), y3, append(y3, head(cons(x0, x1))))



↳ QTRS
  ↳ Overlay + Local Confluence
    ↳ QTRS
      ↳ DependencyPairsProof
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ AND
              ↳ QDP
              ↳ QDP
              ↳ QDP
              ↳ QDP
                ↳ UsableRulesProof
                  ↳ QDP
                    ↳ QReductionProof
                      ↳ QDP
                        ↳ Narrowing
                          ↳ QDP
                            ↳ DependencyGraphProof
                              ↳ QDP
                                ↳ Rewriting
                                  ↳ QDP
                                    ↳ Rewriting
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ Narrowing
                                                  ↳ QDP
                                                    ↳ DependencyGraphProof
                                                      ↳ QDP
                                                        ↳ UsableRulesProof
                                                          ↳ QDP
                                                            ↳ QReductionProof
                                                              ↳ QDP
                                                                ↳ Rewriting
                                                                  ↳ QDP
                                                                    ↳ Rewriting
                                                                      ↳ QDP
                                                                        ↳ Rewriting
QDP
                                                                            ↳ UsableRulesProof

Q DP problem:
The TRS P consists of the following rules:

ADDLISTS(cons(y0, y1), cons(x0, x1), y3) → IF(false, false, isZero(y0), y1, x1, cons(p(y0), y1), cons(inc(x0), x1), y3, append(y3, head(cons(x0, x1))))
IF(false, false, true, xs, ys, xs2, ys2, zs, zs2) → ADDLISTS(xs, ys, zs2)
IF(false, false, false, xs, ys, xs2, ys2, zs, zs2) → ADDLISTS(xs2, ys2, zs)

The TRS R consists of the following rules:

isZero(0) → true
isZero(s(x)) → false
tail(cons(x, xs)) → xs
p(s(s(x))) → s(p(s(x)))
p(s(0)) → 0
p(0) → 0
head(cons(x, xs)) → x
inc(s(x)) → s(inc(x))
inc(0) → s(0)
append(nil, x) → cons(x, nil)
append(cons(y, ys), x) → cons(y, append(ys, x))

The set Q consists of the following terms:

isZero(0)
isZero(s(x0))
head(cons(x0, x1))
tail(cons(x0, x1))
tail(nil)
append(nil, x0)
append(cons(x0, x1), x2)
p(s(s(x0)))
p(s(0))
p(0)
inc(s(x0))
inc(0)

We have to consider all minimal (P,Q,R)-chains.
As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [15] we can delete all non-usable rules [17] from R.

↳ QTRS
  ↳ Overlay + Local Confluence
    ↳ QTRS
      ↳ DependencyPairsProof
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ AND
              ↳ QDP
              ↳ QDP
              ↳ QDP
              ↳ QDP
                ↳ UsableRulesProof
                  ↳ QDP
                    ↳ QReductionProof
                      ↳ QDP
                        ↳ Narrowing
                          ↳ QDP
                            ↳ DependencyGraphProof
                              ↳ QDP
                                ↳ Rewriting
                                  ↳ QDP
                                    ↳ Rewriting
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ Narrowing
                                                  ↳ QDP
                                                    ↳ DependencyGraphProof
                                                      ↳ QDP
                                                        ↳ UsableRulesProof
                                                          ↳ QDP
                                                            ↳ QReductionProof
                                                              ↳ QDP
                                                                ↳ Rewriting
                                                                  ↳ QDP
                                                                    ↳ Rewriting
                                                                      ↳ QDP
                                                                        ↳ Rewriting
                                                                          ↳ QDP
                                                                            ↳ UsableRulesProof
QDP
                                                                                ↳ QReductionProof

Q DP problem:
The TRS P consists of the following rules:

ADDLISTS(cons(y0, y1), cons(x0, x1), y3) → IF(false, false, isZero(y0), y1, x1, cons(p(y0), y1), cons(inc(x0), x1), y3, append(y3, head(cons(x0, x1))))
IF(false, false, false, xs, ys, xs2, ys2, zs, zs2) → ADDLISTS(xs2, ys2, zs)
IF(false, false, true, xs, ys, xs2, ys2, zs, zs2) → ADDLISTS(xs, ys, zs2)

The TRS R consists of the following rules:

isZero(0) → true
isZero(s(x)) → false
p(s(s(x))) → s(p(s(x)))
p(s(0)) → 0
p(0) → 0
inc(s(x)) → s(inc(x))
inc(0) → s(0)
head(cons(x, xs)) → x
append(nil, x) → cons(x, nil)
append(cons(y, ys), x) → cons(y, append(ys, x))

The set Q consists of the following terms:

isZero(0)
isZero(s(x0))
head(cons(x0, x1))
tail(cons(x0, x1))
tail(nil)
append(nil, x0)
append(cons(x0, x1), x2)
p(s(s(x0)))
p(s(0))
p(0)
inc(s(x0))
inc(0)

We have to consider all minimal (P,Q,R)-chains.
We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.

tail(cons(x0, x1))
tail(nil)



↳ QTRS
  ↳ Overlay + Local Confluence
    ↳ QTRS
      ↳ DependencyPairsProof
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ AND
              ↳ QDP
              ↳ QDP
              ↳ QDP
              ↳ QDP
                ↳ UsableRulesProof
                  ↳ QDP
                    ↳ QReductionProof
                      ↳ QDP
                        ↳ Narrowing
                          ↳ QDP
                            ↳ DependencyGraphProof
                              ↳ QDP
                                ↳ Rewriting
                                  ↳ QDP
                                    ↳ Rewriting
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ Narrowing
                                                  ↳ QDP
                                                    ↳ DependencyGraphProof
                                                      ↳ QDP
                                                        ↳ UsableRulesProof
                                                          ↳ QDP
                                                            ↳ QReductionProof
                                                              ↳ QDP
                                                                ↳ Rewriting
                                                                  ↳ QDP
                                                                    ↳ Rewriting
                                                                      ↳ QDP
                                                                        ↳ Rewriting
                                                                          ↳ QDP
                                                                            ↳ UsableRulesProof
                                                                              ↳ QDP
                                                                                ↳ QReductionProof
QDP
                                                                                    ↳ Rewriting

Q DP problem:
The TRS P consists of the following rules:

ADDLISTS(cons(y0, y1), cons(x0, x1), y3) → IF(false, false, isZero(y0), y1, x1, cons(p(y0), y1), cons(inc(x0), x1), y3, append(y3, head(cons(x0, x1))))
IF(false, false, true, xs, ys, xs2, ys2, zs, zs2) → ADDLISTS(xs, ys, zs2)
IF(false, false, false, xs, ys, xs2, ys2, zs, zs2) → ADDLISTS(xs2, ys2, zs)

The TRS R consists of the following rules:

isZero(0) → true
isZero(s(x)) → false
p(s(s(x))) → s(p(s(x)))
p(s(0)) → 0
p(0) → 0
inc(s(x)) → s(inc(x))
inc(0) → s(0)
head(cons(x, xs)) → x
append(nil, x) → cons(x, nil)
append(cons(y, ys), x) → cons(y, append(ys, x))

The set Q consists of the following terms:

isZero(0)
isZero(s(x0))
head(cons(x0, x1))
append(nil, x0)
append(cons(x0, x1), x2)
p(s(s(x0)))
p(s(0))
p(0)
inc(s(x0))
inc(0)

We have to consider all minimal (P,Q,R)-chains.
By rewriting [15] the rule ADDLISTS(cons(y0, y1), cons(x0, x1), y3) → IF(false, false, isZero(y0), y1, x1, cons(p(y0), y1), cons(inc(x0), x1), y3, append(y3, head(cons(x0, x1)))) at position [8,1] we obtained the following new rules:

ADDLISTS(cons(y0, y1), cons(x0, x1), y3) → IF(false, false, isZero(y0), y1, x1, cons(p(y0), y1), cons(inc(x0), x1), y3, append(y3, x0))



↳ QTRS
  ↳ Overlay + Local Confluence
    ↳ QTRS
      ↳ DependencyPairsProof
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ AND
              ↳ QDP
              ↳ QDP
              ↳ QDP
              ↳ QDP
                ↳ UsableRulesProof
                  ↳ QDP
                    ↳ QReductionProof
                      ↳ QDP
                        ↳ Narrowing
                          ↳ QDP
                            ↳ DependencyGraphProof
                              ↳ QDP
                                ↳ Rewriting
                                  ↳ QDP
                                    ↳ Rewriting
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ Narrowing
                                                  ↳ QDP
                                                    ↳ DependencyGraphProof
                                                      ↳ QDP
                                                        ↳ UsableRulesProof
                                                          ↳ QDP
                                                            ↳ QReductionProof
                                                              ↳ QDP
                                                                ↳ Rewriting
                                                                  ↳ QDP
                                                                    ↳ Rewriting
                                                                      ↳ QDP
                                                                        ↳ Rewriting
                                                                          ↳ QDP
                                                                            ↳ UsableRulesProof
                                                                              ↳ QDP
                                                                                ↳ QReductionProof
                                                                                  ↳ QDP
                                                                                    ↳ Rewriting
QDP
                                                                                        ↳ UsableRulesProof

Q DP problem:
The TRS P consists of the following rules:

IF(false, false, false, xs, ys, xs2, ys2, zs, zs2) → ADDLISTS(xs2, ys2, zs)
IF(false, false, true, xs, ys, xs2, ys2, zs, zs2) → ADDLISTS(xs, ys, zs2)
ADDLISTS(cons(y0, y1), cons(x0, x1), y3) → IF(false, false, isZero(y0), y1, x1, cons(p(y0), y1), cons(inc(x0), x1), y3, append(y3, x0))

The TRS R consists of the following rules:

isZero(0) → true
isZero(s(x)) → false
p(s(s(x))) → s(p(s(x)))
p(s(0)) → 0
p(0) → 0
inc(s(x)) → s(inc(x))
inc(0) → s(0)
head(cons(x, xs)) → x
append(nil, x) → cons(x, nil)
append(cons(y, ys), x) → cons(y, append(ys, x))

The set Q consists of the following terms:

isZero(0)
isZero(s(x0))
head(cons(x0, x1))
append(nil, x0)
append(cons(x0, x1), x2)
p(s(s(x0)))
p(s(0))
p(0)
inc(s(x0))
inc(0)

We have to consider all minimal (P,Q,R)-chains.
As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [15] we can delete all non-usable rules [17] from R.

↳ QTRS
  ↳ Overlay + Local Confluence
    ↳ QTRS
      ↳ DependencyPairsProof
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ AND
              ↳ QDP
              ↳ QDP
              ↳ QDP
              ↳ QDP
                ↳ UsableRulesProof
                  ↳ QDP
                    ↳ QReductionProof
                      ↳ QDP
                        ↳ Narrowing
                          ↳ QDP
                            ↳ DependencyGraphProof
                              ↳ QDP
                                ↳ Rewriting
                                  ↳ QDP
                                    ↳ Rewriting
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ Narrowing
                                                  ↳ QDP
                                                    ↳ DependencyGraphProof
                                                      ↳ QDP
                                                        ↳ UsableRulesProof
                                                          ↳ QDP
                                                            ↳ QReductionProof
                                                              ↳ QDP
                                                                ↳ Rewriting
                                                                  ↳ QDP
                                                                    ↳ Rewriting
                                                                      ↳ QDP
                                                                        ↳ Rewriting
                                                                          ↳ QDP
                                                                            ↳ UsableRulesProof
                                                                              ↳ QDP
                                                                                ↳ QReductionProof
                                                                                  ↳ QDP
                                                                                    ↳ Rewriting
                                                                                      ↳ QDP
                                                                                        ↳ UsableRulesProof
QDP
                                                                                            ↳ QReductionProof

Q DP problem:
The TRS P consists of the following rules:

IF(false, false, true, xs, ys, xs2, ys2, zs, zs2) → ADDLISTS(xs, ys, zs2)
IF(false, false, false, xs, ys, xs2, ys2, zs, zs2) → ADDLISTS(xs2, ys2, zs)
ADDLISTS(cons(y0, y1), cons(x0, x1), y3) → IF(false, false, isZero(y0), y1, x1, cons(p(y0), y1), cons(inc(x0), x1), y3, append(y3, x0))

The TRS R consists of the following rules:

isZero(0) → true
isZero(s(x)) → false
p(s(s(x))) → s(p(s(x)))
p(s(0)) → 0
p(0) → 0
inc(s(x)) → s(inc(x))
inc(0) → s(0)
append(nil, x) → cons(x, nil)
append(cons(y, ys), x) → cons(y, append(ys, x))

The set Q consists of the following terms:

isZero(0)
isZero(s(x0))
head(cons(x0, x1))
append(nil, x0)
append(cons(x0, x1), x2)
p(s(s(x0)))
p(s(0))
p(0)
inc(s(x0))
inc(0)

We have to consider all minimal (P,Q,R)-chains.
We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.

head(cons(x0, x1))



↳ QTRS
  ↳ Overlay + Local Confluence
    ↳ QTRS
      ↳ DependencyPairsProof
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ AND
              ↳ QDP
              ↳ QDP
              ↳ QDP
              ↳ QDP
                ↳ UsableRulesProof
                  ↳ QDP
                    ↳ QReductionProof
                      ↳ QDP
                        ↳ Narrowing
                          ↳ QDP
                            ↳ DependencyGraphProof
                              ↳ QDP
                                ↳ Rewriting
                                  ↳ QDP
                                    ↳ Rewriting
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ Narrowing
                                                  ↳ QDP
                                                    ↳ DependencyGraphProof
                                                      ↳ QDP
                                                        ↳ UsableRulesProof
                                                          ↳ QDP
                                                            ↳ QReductionProof
                                                              ↳ QDP
                                                                ↳ Rewriting
                                                                  ↳ QDP
                                                                    ↳ Rewriting
                                                                      ↳ QDP
                                                                        ↳ Rewriting
                                                                          ↳ QDP
                                                                            ↳ UsableRulesProof
                                                                              ↳ QDP
                                                                                ↳ QReductionProof
                                                                                  ↳ QDP
                                                                                    ↳ Rewriting
                                                                                      ↳ QDP
                                                                                        ↳ UsableRulesProof
                                                                                          ↳ QDP
                                                                                            ↳ QReductionProof
QDP
                                                                                                ↳ Narrowing

Q DP problem:
The TRS P consists of the following rules:

IF(false, false, false, xs, ys, xs2, ys2, zs, zs2) → ADDLISTS(xs2, ys2, zs)
IF(false, false, true, xs, ys, xs2, ys2, zs, zs2) → ADDLISTS(xs, ys, zs2)
ADDLISTS(cons(y0, y1), cons(x0, x1), y3) → IF(false, false, isZero(y0), y1, x1, cons(p(y0), y1), cons(inc(x0), x1), y3, append(y3, x0))

The TRS R consists of the following rules:

isZero(0) → true
isZero(s(x)) → false
p(s(s(x))) → s(p(s(x)))
p(s(0)) → 0
p(0) → 0
inc(s(x)) → s(inc(x))
inc(0) → s(0)
append(nil, x) → cons(x, nil)
append(cons(y, ys), x) → cons(y, append(ys, x))

The set Q consists of the following terms:

isZero(0)
isZero(s(x0))
append(nil, x0)
append(cons(x0, x1), x2)
p(s(s(x0)))
p(s(0))
p(0)
inc(s(x0))
inc(0)

We have to consider all minimal (P,Q,R)-chains.
By narrowing [15] the rule ADDLISTS(cons(y0, y1), cons(x0, x1), y3) → IF(false, false, isZero(y0), y1, x1, cons(p(y0), y1), cons(inc(x0), x1), y3, append(y3, x0)) at position [2] we obtained the following new rules:

ADDLISTS(cons(0, y1), cons(y2, y3), y4) → IF(false, false, true, y1, y3, cons(p(0), y1), cons(inc(y2), y3), y4, append(y4, y2))
ADDLISTS(cons(s(x0), y1), cons(y2, y3), y4) → IF(false, false, false, y1, y3, cons(p(s(x0)), y1), cons(inc(y2), y3), y4, append(y4, y2))



↳ QTRS
  ↳ Overlay + Local Confluence
    ↳ QTRS
      ↳ DependencyPairsProof
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ AND
              ↳ QDP
              ↳ QDP
              ↳ QDP
              ↳ QDP
                ↳ UsableRulesProof
                  ↳ QDP
                    ↳ QReductionProof
                      ↳ QDP
                        ↳ Narrowing
                          ↳ QDP
                            ↳ DependencyGraphProof
                              ↳ QDP
                                ↳ Rewriting
                                  ↳ QDP
                                    ↳ Rewriting
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ Narrowing
                                                  ↳ QDP
                                                    ↳ DependencyGraphProof
                                                      ↳ QDP
                                                        ↳ UsableRulesProof
                                                          ↳ QDP
                                                            ↳ QReductionProof
                                                              ↳ QDP
                                                                ↳ Rewriting
                                                                  ↳ QDP
                                                                    ↳ Rewriting
                                                                      ↳ QDP
                                                                        ↳ Rewriting
                                                                          ↳ QDP
                                                                            ↳ UsableRulesProof
                                                                              ↳ QDP
                                                                                ↳ QReductionProof
                                                                                  ↳ QDP
                                                                                    ↳ Rewriting
                                                                                      ↳ QDP
                                                                                        ↳ UsableRulesProof
                                                                                          ↳ QDP
                                                                                            ↳ QReductionProof
                                                                                              ↳ QDP
                                                                                                ↳ Narrowing
QDP
                                                                                                    ↳ UsableRulesProof

Q DP problem:
The TRS P consists of the following rules:

IF(false, false, true, xs, ys, xs2, ys2, zs, zs2) → ADDLISTS(xs, ys, zs2)
IF(false, false, false, xs, ys, xs2, ys2, zs, zs2) → ADDLISTS(xs2, ys2, zs)
ADDLISTS(cons(0, y1), cons(y2, y3), y4) → IF(false, false, true, y1, y3, cons(p(0), y1), cons(inc(y2), y3), y4, append(y4, y2))
ADDLISTS(cons(s(x0), y1), cons(y2, y3), y4) → IF(false, false, false, y1, y3, cons(p(s(x0)), y1), cons(inc(y2), y3), y4, append(y4, y2))

The TRS R consists of the following rules:

isZero(0) → true
isZero(s(x)) → false
p(s(s(x))) → s(p(s(x)))
p(s(0)) → 0
p(0) → 0
inc(s(x)) → s(inc(x))
inc(0) → s(0)
append(nil, x) → cons(x, nil)
append(cons(y, ys), x) → cons(y, append(ys, x))

The set Q consists of the following terms:

isZero(0)
isZero(s(x0))
append(nil, x0)
append(cons(x0, x1), x2)
p(s(s(x0)))
p(s(0))
p(0)
inc(s(x0))
inc(0)

We have to consider all minimal (P,Q,R)-chains.
As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [15] we can delete all non-usable rules [17] from R.

↳ QTRS
  ↳ Overlay + Local Confluence
    ↳ QTRS
      ↳ DependencyPairsProof
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ AND
              ↳ QDP
              ↳ QDP
              ↳ QDP
              ↳ QDP
                ↳ UsableRulesProof
                  ↳ QDP
                    ↳ QReductionProof
                      ↳ QDP
                        ↳ Narrowing
                          ↳ QDP
                            ↳ DependencyGraphProof
                              ↳ QDP
                                ↳ Rewriting
                                  ↳ QDP
                                    ↳ Rewriting
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ Narrowing
                                                  ↳ QDP
                                                    ↳ DependencyGraphProof
                                                      ↳ QDP
                                                        ↳ UsableRulesProof
                                                          ↳ QDP
                                                            ↳ QReductionProof
                                                              ↳ QDP
                                                                ↳ Rewriting
                                                                  ↳ QDP
                                                                    ↳ Rewriting
                                                                      ↳ QDP
                                                                        ↳ Rewriting
                                                                          ↳ QDP
                                                                            ↳ UsableRulesProof
                                                                              ↳ QDP
                                                                                ↳ QReductionProof
                                                                                  ↳ QDP
                                                                                    ↳ Rewriting
                                                                                      ↳ QDP
                                                                                        ↳ UsableRulesProof
                                                                                          ↳ QDP
                                                                                            ↳ QReductionProof
                                                                                              ↳ QDP
                                                                                                ↳ Narrowing
                                                                                                  ↳ QDP
                                                                                                    ↳ UsableRulesProof
QDP
                                                                                                        ↳ QReductionProof

Q DP problem:
The TRS P consists of the following rules:

IF(false, false, false, xs, ys, xs2, ys2, zs, zs2) → ADDLISTS(xs2, ys2, zs)
IF(false, false, true, xs, ys, xs2, ys2, zs, zs2) → ADDLISTS(xs, ys, zs2)
ADDLISTS(cons(0, y1), cons(y2, y3), y4) → IF(false, false, true, y1, y3, cons(p(0), y1), cons(inc(y2), y3), y4, append(y4, y2))
ADDLISTS(cons(s(x0), y1), cons(y2, y3), y4) → IF(false, false, false, y1, y3, cons(p(s(x0)), y1), cons(inc(y2), y3), y4, append(y4, y2))

The TRS R consists of the following rules:

p(0) → 0
inc(s(x)) → s(inc(x))
inc(0) → s(0)
append(nil, x) → cons(x, nil)
append(cons(y, ys), x) → cons(y, append(ys, x))
p(s(s(x))) → s(p(s(x)))
p(s(0)) → 0

The set Q consists of the following terms:

isZero(0)
isZero(s(x0))
append(nil, x0)
append(cons(x0, x1), x2)
p(s(s(x0)))
p(s(0))
p(0)
inc(s(x0))
inc(0)

We have to consider all minimal (P,Q,R)-chains.
We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.

isZero(0)
isZero(s(x0))



↳ QTRS
  ↳ Overlay + Local Confluence
    ↳ QTRS
      ↳ DependencyPairsProof
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ AND
              ↳ QDP
              ↳ QDP
              ↳ QDP
              ↳ QDP
                ↳ UsableRulesProof
                  ↳ QDP
                    ↳ QReductionProof
                      ↳ QDP
                        ↳ Narrowing
                          ↳ QDP
                            ↳ DependencyGraphProof
                              ↳ QDP
                                ↳ Rewriting
                                  ↳ QDP
                                    ↳ Rewriting
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ Narrowing
                                                  ↳ QDP
                                                    ↳ DependencyGraphProof
                                                      ↳ QDP
                                                        ↳ UsableRulesProof
                                                          ↳ QDP
                                                            ↳ QReductionProof
                                                              ↳ QDP
                                                                ↳ Rewriting
                                                                  ↳ QDP
                                                                    ↳ Rewriting
                                                                      ↳ QDP
                                                                        ↳ Rewriting
                                                                          ↳ QDP
                                                                            ↳ UsableRulesProof
                                                                              ↳ QDP
                                                                                ↳ QReductionProof
                                                                                  ↳ QDP
                                                                                    ↳ Rewriting
                                                                                      ↳ QDP
                                                                                        ↳ UsableRulesProof
                                                                                          ↳ QDP
                                                                                            ↳ QReductionProof
                                                                                              ↳ QDP
                                                                                                ↳ Narrowing
                                                                                                  ↳ QDP
                                                                                                    ↳ UsableRulesProof
                                                                                                      ↳ QDP
                                                                                                        ↳ QReductionProof
QDP
                                                                                                            ↳ Rewriting

Q DP problem:
The TRS P consists of the following rules:

IF(false, false, true, xs, ys, xs2, ys2, zs, zs2) → ADDLISTS(xs, ys, zs2)
IF(false, false, false, xs, ys, xs2, ys2, zs, zs2) → ADDLISTS(xs2, ys2, zs)
ADDLISTS(cons(0, y1), cons(y2, y3), y4) → IF(false, false, true, y1, y3, cons(p(0), y1), cons(inc(y2), y3), y4, append(y4, y2))
ADDLISTS(cons(s(x0), y1), cons(y2, y3), y4) → IF(false, false, false, y1, y3, cons(p(s(x0)), y1), cons(inc(y2), y3), y4, append(y4, y2))

The TRS R consists of the following rules:

p(0) → 0
inc(s(x)) → s(inc(x))
inc(0) → s(0)
append(nil, x) → cons(x, nil)
append(cons(y, ys), x) → cons(y, append(ys, x))
p(s(s(x))) → s(p(s(x)))
p(s(0)) → 0

The set Q consists of the following terms:

append(nil, x0)
append(cons(x0, x1), x2)
p(s(s(x0)))
p(s(0))
p(0)
inc(s(x0))
inc(0)

We have to consider all minimal (P,Q,R)-chains.
By rewriting [15] the rule ADDLISTS(cons(0, y1), cons(y2, y3), y4) → IF(false, false, true, y1, y3, cons(p(0), y1), cons(inc(y2), y3), y4, append(y4, y2)) at position [5,0] we obtained the following new rules:

ADDLISTS(cons(0, y1), cons(y2, y3), y4) → IF(false, false, true, y1, y3, cons(0, y1), cons(inc(y2), y3), y4, append(y4, y2))



↳ QTRS
  ↳ Overlay + Local Confluence
    ↳ QTRS
      ↳ DependencyPairsProof
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ AND
              ↳ QDP
              ↳ QDP
              ↳ QDP
              ↳ QDP
                ↳ UsableRulesProof
                  ↳ QDP
                    ↳ QReductionProof
                      ↳ QDP
                        ↳ Narrowing
                          ↳ QDP
                            ↳ DependencyGraphProof
                              ↳ QDP
                                ↳ Rewriting
                                  ↳ QDP
                                    ↳ Rewriting
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ Narrowing
                                                  ↳ QDP
                                                    ↳ DependencyGraphProof
                                                      ↳ QDP
                                                        ↳ UsableRulesProof
                                                          ↳ QDP
                                                            ↳ QReductionProof
                                                              ↳ QDP
                                                                ↳ Rewriting
                                                                  ↳ QDP
                                                                    ↳ Rewriting
                                                                      ↳ QDP
                                                                        ↳ Rewriting
                                                                          ↳ QDP
                                                                            ↳ UsableRulesProof
                                                                              ↳ QDP
                                                                                ↳ QReductionProof
                                                                                  ↳ QDP
                                                                                    ↳ Rewriting
                                                                                      ↳ QDP
                                                                                        ↳ UsableRulesProof
                                                                                          ↳ QDP
                                                                                            ↳ QReductionProof
                                                                                              ↳ QDP
                                                                                                ↳ Narrowing
                                                                                                  ↳ QDP
                                                                                                    ↳ UsableRulesProof
                                                                                                      ↳ QDP
                                                                                                        ↳ QReductionProof
                                                                                                          ↳ QDP
                                                                                                            ↳ Rewriting
QDP
                                                                                                                ↳ UsableRulesProof

Q DP problem:
The TRS P consists of the following rules:

IF(false, false, false, xs, ys, xs2, ys2, zs, zs2) → ADDLISTS(xs2, ys2, zs)
IF(false, false, true, xs, ys, xs2, ys2, zs, zs2) → ADDLISTS(xs, ys, zs2)
ADDLISTS(cons(0, y1), cons(y2, y3), y4) → IF(false, false, true, y1, y3, cons(0, y1), cons(inc(y2), y3), y4, append(y4, y2))
ADDLISTS(cons(s(x0), y1), cons(y2, y3), y4) → IF(false, false, false, y1, y3, cons(p(s(x0)), y1), cons(inc(y2), y3), y4, append(y4, y2))

The TRS R consists of the following rules:

p(0) → 0
inc(s(x)) → s(inc(x))
inc(0) → s(0)
append(nil, x) → cons(x, nil)
append(cons(y, ys), x) → cons(y, append(ys, x))
p(s(s(x))) → s(p(s(x)))
p(s(0)) → 0

The set Q consists of the following terms:

append(nil, x0)
append(cons(x0, x1), x2)
p(s(s(x0)))
p(s(0))
p(0)
inc(s(x0))
inc(0)

We have to consider all minimal (P,Q,R)-chains.
As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [15] we can delete all non-usable rules [17] from R.

↳ QTRS
  ↳ Overlay + Local Confluence
    ↳ QTRS
      ↳ DependencyPairsProof
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ AND
              ↳ QDP
              ↳ QDP
              ↳ QDP
              ↳ QDP
                ↳ UsableRulesProof
                  ↳ QDP
                    ↳ QReductionProof
                      ↳ QDP
                        ↳ Narrowing
                          ↳ QDP
                            ↳ DependencyGraphProof
                              ↳ QDP
                                ↳ Rewriting
                                  ↳ QDP
                                    ↳ Rewriting
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ Narrowing
                                                  ↳ QDP
                                                    ↳ DependencyGraphProof
                                                      ↳ QDP
                                                        ↳ UsableRulesProof
                                                          ↳ QDP
                                                            ↳ QReductionProof
                                                              ↳ QDP
                                                                ↳ Rewriting
                                                                  ↳ QDP
                                                                    ↳ Rewriting
                                                                      ↳ QDP
                                                                        ↳ Rewriting
                                                                          ↳ QDP
                                                                            ↳ UsableRulesProof
                                                                              ↳ QDP
                                                                                ↳ QReductionProof
                                                                                  ↳ QDP
                                                                                    ↳ Rewriting
                                                                                      ↳ QDP
                                                                                        ↳ UsableRulesProof
                                                                                          ↳ QDP
                                                                                            ↳ QReductionProof
                                                                                              ↳ QDP
                                                                                                ↳ Narrowing
                                                                                                  ↳ QDP
                                                                                                    ↳ UsableRulesProof
                                                                                                      ↳ QDP
                                                                                                        ↳ QReductionProof
                                                                                                          ↳ QDP
                                                                                                            ↳ Rewriting
                                                                                                              ↳ QDP
                                                                                                                ↳ UsableRulesProof
QDP
                                                                                                                    ↳ Instantiation

Q DP problem:
The TRS P consists of the following rules:

IF(false, false, true, xs, ys, xs2, ys2, zs, zs2) → ADDLISTS(xs, ys, zs2)
IF(false, false, false, xs, ys, xs2, ys2, zs, zs2) → ADDLISTS(xs2, ys2, zs)
ADDLISTS(cons(0, y1), cons(y2, y3), y4) → IF(false, false, true, y1, y3, cons(0, y1), cons(inc(y2), y3), y4, append(y4, y2))
ADDLISTS(cons(s(x0), y1), cons(y2, y3), y4) → IF(false, false, false, y1, y3, cons(p(s(x0)), y1), cons(inc(y2), y3), y4, append(y4, y2))

The TRS R consists of the following rules:

p(s(s(x))) → s(p(s(x)))
p(s(0)) → 0
inc(s(x)) → s(inc(x))
inc(0) → s(0)
append(nil, x) → cons(x, nil)
append(cons(y, ys), x) → cons(y, append(ys, x))

The set Q consists of the following terms:

append(nil, x0)
append(cons(x0, x1), x2)
p(s(s(x0)))
p(s(0))
p(0)
inc(s(x0))
inc(0)

We have to consider all minimal (P,Q,R)-chains.
By instantiating [15] the rule IF(false, false, false, xs, ys, xs2, ys2, zs, zs2) → ADDLISTS(xs2, ys2, zs) we obtained the following new rules:

IF(false, false, false, z1, z3, cons(y_0, z1), cons(y_1, z3), z4, y_2) → ADDLISTS(cons(y_0, z1), cons(y_1, z3), z4)



↳ QTRS
  ↳ Overlay + Local Confluence
    ↳ QTRS
      ↳ DependencyPairsProof
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ AND
              ↳ QDP
              ↳ QDP
              ↳ QDP
              ↳ QDP
                ↳ UsableRulesProof
                  ↳ QDP
                    ↳ QReductionProof
                      ↳ QDP
                        ↳ Narrowing
                          ↳ QDP
                            ↳ DependencyGraphProof
                              ↳ QDP
                                ↳ Rewriting
                                  ↳ QDP
                                    ↳ Rewriting
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ Narrowing
                                                  ↳ QDP
                                                    ↳ DependencyGraphProof
                                                      ↳ QDP
                                                        ↳ UsableRulesProof
                                                          ↳ QDP
                                                            ↳ QReductionProof
                                                              ↳ QDP
                                                                ↳ Rewriting
                                                                  ↳ QDP
                                                                    ↳ Rewriting
                                                                      ↳ QDP
                                                                        ↳ Rewriting
                                                                          ↳ QDP
                                                                            ↳ UsableRulesProof
                                                                              ↳ QDP
                                                                                ↳ QReductionProof
                                                                                  ↳ QDP
                                                                                    ↳ Rewriting
                                                                                      ↳ QDP
                                                                                        ↳ UsableRulesProof
                                                                                          ↳ QDP
                                                                                            ↳ QReductionProof
                                                                                              ↳ QDP
                                                                                                ↳ Narrowing
                                                                                                  ↳ QDP
                                                                                                    ↳ UsableRulesProof
                                                                                                      ↳ QDP
                                                                                                        ↳ QReductionProof
                                                                                                          ↳ QDP
                                                                                                            ↳ Rewriting
                                                                                                              ↳ QDP
                                                                                                                ↳ UsableRulesProof
                                                                                                                  ↳ QDP
                                                                                                                    ↳ Instantiation
QDP
                                                                                                                        ↳ Instantiation

Q DP problem:
The TRS P consists of the following rules:

IF(false, false, true, xs, ys, xs2, ys2, zs, zs2) → ADDLISTS(xs, ys, zs2)
ADDLISTS(cons(0, y1), cons(y2, y3), y4) → IF(false, false, true, y1, y3, cons(0, y1), cons(inc(y2), y3), y4, append(y4, y2))
ADDLISTS(cons(s(x0), y1), cons(y2, y3), y4) → IF(false, false, false, y1, y3, cons(p(s(x0)), y1), cons(inc(y2), y3), y4, append(y4, y2))
IF(false, false, false, z1, z3, cons(y_0, z1), cons(y_1, z3), z4, y_2) → ADDLISTS(cons(y_0, z1), cons(y_1, z3), z4)

The TRS R consists of the following rules:

p(s(s(x))) → s(p(s(x)))
p(s(0)) → 0
inc(s(x)) → s(inc(x))
inc(0) → s(0)
append(nil, x) → cons(x, nil)
append(cons(y, ys), x) → cons(y, append(ys, x))

The set Q consists of the following terms:

append(nil, x0)
append(cons(x0, x1), x2)
p(s(s(x0)))
p(s(0))
p(0)
inc(s(x0))
inc(0)

We have to consider all minimal (P,Q,R)-chains.
By instantiating [15] the rule IF(false, false, true, xs, ys, xs2, ys2, zs, zs2) → ADDLISTS(xs, ys, zs2) we obtained the following new rules:

IF(false, false, true, z0, z2, cons(0, z0), cons(y_0, z2), z3, y_1) → ADDLISTS(z0, z2, y_1)



↳ QTRS
  ↳ Overlay + Local Confluence
    ↳ QTRS
      ↳ DependencyPairsProof
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ AND
              ↳ QDP
              ↳ QDP
              ↳ QDP
              ↳ QDP
                ↳ UsableRulesProof
                  ↳ QDP
                    ↳ QReductionProof
                      ↳ QDP
                        ↳ Narrowing
                          ↳ QDP
                            ↳ DependencyGraphProof
                              ↳ QDP
                                ↳ Rewriting
                                  ↳ QDP
                                    ↳ Rewriting
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ Narrowing
                                                  ↳ QDP
                                                    ↳ DependencyGraphProof
                                                      ↳ QDP
                                                        ↳ UsableRulesProof
                                                          ↳ QDP
                                                            ↳ QReductionProof
                                                              ↳ QDP
                                                                ↳ Rewriting
                                                                  ↳ QDP
                                                                    ↳ Rewriting
                                                                      ↳ QDP
                                                                        ↳ Rewriting
                                                                          ↳ QDP
                                                                            ↳ UsableRulesProof
                                                                              ↳ QDP
                                                                                ↳ QReductionProof
                                                                                  ↳ QDP
                                                                                    ↳ Rewriting
                                                                                      ↳ QDP
                                                                                        ↳ UsableRulesProof
                                                                                          ↳ QDP
                                                                                            ↳ QReductionProof
                                                                                              ↳ QDP
                                                                                                ↳ Narrowing
                                                                                                  ↳ QDP
                                                                                                    ↳ UsableRulesProof
                                                                                                      ↳ QDP
                                                                                                        ↳ QReductionProof
                                                                                                          ↳ QDP
                                                                                                            ↳ Rewriting
                                                                                                              ↳ QDP
                                                                                                                ↳ UsableRulesProof
                                                                                                                  ↳ QDP
                                                                                                                    ↳ Instantiation
                                                                                                                      ↳ QDP
                                                                                                                        ↳ Instantiation
QDP
                                                                                                                            ↳ ForwardInstantiation

Q DP problem:
The TRS P consists of the following rules:

ADDLISTS(cons(0, y1), cons(y2, y3), y4) → IF(false, false, true, y1, y3, cons(0, y1), cons(inc(y2), y3), y4, append(y4, y2))
IF(false, false, true, z0, z2, cons(0, z0), cons(y_0, z2), z3, y_1) → ADDLISTS(z0, z2, y_1)
ADDLISTS(cons(s(x0), y1), cons(y2, y3), y4) → IF(false, false, false, y1, y3, cons(p(s(x0)), y1), cons(inc(y2), y3), y4, append(y4, y2))
IF(false, false, false, z1, z3, cons(y_0, z1), cons(y_1, z3), z4, y_2) → ADDLISTS(cons(y_0, z1), cons(y_1, z3), z4)

The TRS R consists of the following rules:

p(s(s(x))) → s(p(s(x)))
p(s(0)) → 0
inc(s(x)) → s(inc(x))
inc(0) → s(0)
append(nil, x) → cons(x, nil)
append(cons(y, ys), x) → cons(y, append(ys, x))

The set Q consists of the following terms:

append(nil, x0)
append(cons(x0, x1), x2)
p(s(s(x0)))
p(s(0))
p(0)
inc(s(x0))
inc(0)

We have to consider all minimal (P,Q,R)-chains.
By forward instantiating [14] the rule IF(false, false, false, z1, z3, cons(y_0, z1), cons(y_1, z3), z4, y_2) → ADDLISTS(cons(y_0, z1), cons(y_1, z3), z4) we obtained the following new rules:

IF(false, false, false, x0, x1, cons(s(y_0), x0), cons(x3, x1), x4, x5) → ADDLISTS(cons(s(y_0), x0), cons(x3, x1), x4)
IF(false, false, false, x0, x1, cons(0, x0), cons(x3, x1), x4, x5) → ADDLISTS(cons(0, x0), cons(x3, x1), x4)



↳ QTRS
  ↳ Overlay + Local Confluence
    ↳ QTRS
      ↳ DependencyPairsProof
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ AND
              ↳ QDP
              ↳ QDP
              ↳ QDP
              ↳ QDP
                ↳ UsableRulesProof
                  ↳ QDP
                    ↳ QReductionProof
                      ↳ QDP
                        ↳ Narrowing
                          ↳ QDP
                            ↳ DependencyGraphProof
                              ↳ QDP
                                ↳ Rewriting
                                  ↳ QDP
                                    ↳ Rewriting
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ Narrowing
                                                  ↳ QDP
                                                    ↳ DependencyGraphProof
                                                      ↳ QDP
                                                        ↳ UsableRulesProof
                                                          ↳ QDP
                                                            ↳ QReductionProof
                                                              ↳ QDP
                                                                ↳ Rewriting
                                                                  ↳ QDP
                                                                    ↳ Rewriting
                                                                      ↳ QDP
                                                                        ↳ Rewriting
                                                                          ↳ QDP
                                                                            ↳ UsableRulesProof
                                                                              ↳ QDP
                                                                                ↳ QReductionProof
                                                                                  ↳ QDP
                                                                                    ↳ Rewriting
                                                                                      ↳ QDP
                                                                                        ↳ UsableRulesProof
                                                                                          ↳ QDP
                                                                                            ↳ QReductionProof
                                                                                              ↳ QDP
                                                                                                ↳ Narrowing
                                                                                                  ↳ QDP
                                                                                                    ↳ UsableRulesProof
                                                                                                      ↳ QDP
                                                                                                        ↳ QReductionProof
                                                                                                          ↳ QDP
                                                                                                            ↳ Rewriting
                                                                                                              ↳ QDP
                                                                                                                ↳ UsableRulesProof
                                                                                                                  ↳ QDP
                                                                                                                    ↳ Instantiation
                                                                                                                      ↳ QDP
                                                                                                                        ↳ Instantiation
                                                                                                                          ↳ QDP
                                                                                                                            ↳ ForwardInstantiation
QDP
                                                                                                                                ↳ Narrowing

Q DP problem:
The TRS P consists of the following rules:

IF(false, false, false, x0, x1, cons(s(y_0), x0), cons(x3, x1), x4, x5) → ADDLISTS(cons(s(y_0), x0), cons(x3, x1), x4)
ADDLISTS(cons(0, y1), cons(y2, y3), y4) → IF(false, false, true, y1, y3, cons(0, y1), cons(inc(y2), y3), y4, append(y4, y2))
IF(false, false, true, z0, z2, cons(0, z0), cons(y_0, z2), z3, y_1) → ADDLISTS(z0, z2, y_1)
IF(false, false, false, x0, x1, cons(0, x0), cons(x3, x1), x4, x5) → ADDLISTS(cons(0, x0), cons(x3, x1), x4)
ADDLISTS(cons(s(x0), y1), cons(y2, y3), y4) → IF(false, false, false, y1, y3, cons(p(s(x0)), y1), cons(inc(y2), y3), y4, append(y4, y2))

The TRS R consists of the following rules:

p(s(s(x))) → s(p(s(x)))
p(s(0)) → 0
inc(s(x)) → s(inc(x))
inc(0) → s(0)
append(nil, x) → cons(x, nil)
append(cons(y, ys), x) → cons(y, append(ys, x))

The set Q consists of the following terms:

append(nil, x0)
append(cons(x0, x1), x2)
p(s(s(x0)))
p(s(0))
p(0)
inc(s(x0))
inc(0)

We have to consider all minimal (P,Q,R)-chains.
By narrowing [15] the rule ADDLISTS(cons(s(x0), y1), cons(y2, y3), y4) → IF(false, false, false, y1, y3, cons(p(s(x0)), y1), cons(inc(y2), y3), y4, append(y4, y2)) at position [5,0] we obtained the following new rules:

ADDLISTS(cons(s(0), y1), cons(y2, y3), y4) → IF(false, false, false, y1, y3, cons(0, y1), cons(inc(y2), y3), y4, append(y4, y2))
ADDLISTS(cons(s(s(x0)), y1), cons(y2, y3), y4) → IF(false, false, false, y1, y3, cons(s(p(s(x0))), y1), cons(inc(y2), y3), y4, append(y4, y2))



↳ QTRS
  ↳ Overlay + Local Confluence
    ↳ QTRS
      ↳ DependencyPairsProof
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ AND
              ↳ QDP
              ↳ QDP
              ↳ QDP
              ↳ QDP
                ↳ UsableRulesProof
                  ↳ QDP
                    ↳ QReductionProof
                      ↳ QDP
                        ↳ Narrowing
                          ↳ QDP
                            ↳ DependencyGraphProof
                              ↳ QDP
                                ↳ Rewriting
                                  ↳ QDP
                                    ↳ Rewriting
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ Narrowing
                                                  ↳ QDP
                                                    ↳ DependencyGraphProof
                                                      ↳ QDP
                                                        ↳ UsableRulesProof
                                                          ↳ QDP
                                                            ↳ QReductionProof
                                                              ↳ QDP
                                                                ↳ Rewriting
                                                                  ↳ QDP
                                                                    ↳ Rewriting
                                                                      ↳ QDP
                                                                        ↳ Rewriting
                                                                          ↳ QDP
                                                                            ↳ UsableRulesProof
                                                                              ↳ QDP
                                                                                ↳ QReductionProof
                                                                                  ↳ QDP
                                                                                    ↳ Rewriting
                                                                                      ↳ QDP
                                                                                        ↳ UsableRulesProof
                                                                                          ↳ QDP
                                                                                            ↳ QReductionProof
                                                                                              ↳ QDP
                                                                                                ↳ Narrowing
                                                                                                  ↳ QDP
                                                                                                    ↳ UsableRulesProof
                                                                                                      ↳ QDP
                                                                                                        ↳ QReductionProof
                                                                                                          ↳ QDP
                                                                                                            ↳ Rewriting
                                                                                                              ↳ QDP
                                                                                                                ↳ UsableRulesProof
                                                                                                                  ↳ QDP
                                                                                                                    ↳ Instantiation
                                                                                                                      ↳ QDP
                                                                                                                        ↳ Instantiation
                                                                                                                          ↳ QDP
                                                                                                                            ↳ ForwardInstantiation
                                                                                                                              ↳ QDP
                                                                                                                                ↳ Narrowing
QDP
                                                                                                                                    ↳ ForwardInstantiation

Q DP problem:
The TRS P consists of the following rules:

IF(false, false, false, x0, x1, cons(s(y_0), x0), cons(x3, x1), x4, x5) → ADDLISTS(cons(s(y_0), x0), cons(x3, x1), x4)
ADDLISTS(cons(s(s(x0)), y1), cons(y2, y3), y4) → IF(false, false, false, y1, y3, cons(s(p(s(x0))), y1), cons(inc(y2), y3), y4, append(y4, y2))
ADDLISTS(cons(0, y1), cons(y2, y3), y4) → IF(false, false, true, y1, y3, cons(0, y1), cons(inc(y2), y3), y4, append(y4, y2))
IF(false, false, true, z0, z2, cons(0, z0), cons(y_0, z2), z3, y_1) → ADDLISTS(z0, z2, y_1)
ADDLISTS(cons(s(0), y1), cons(y2, y3), y4) → IF(false, false, false, y1, y3, cons(0, y1), cons(inc(y2), y3), y4, append(y4, y2))
IF(false, false, false, x0, x1, cons(0, x0), cons(x3, x1), x4, x5) → ADDLISTS(cons(0, x0), cons(x3, x1), x4)

The TRS R consists of the following rules:

p(s(s(x))) → s(p(s(x)))
p(s(0)) → 0
inc(s(x)) → s(inc(x))
inc(0) → s(0)
append(nil, x) → cons(x, nil)
append(cons(y, ys), x) → cons(y, append(ys, x))

The set Q consists of the following terms:

append(nil, x0)
append(cons(x0, x1), x2)
p(s(s(x0)))
p(s(0))
p(0)
inc(s(x0))
inc(0)

We have to consider all minimal (P,Q,R)-chains.
By forward instantiating [14] the rule IF(false, false, true, z0, z2, cons(0, z0), cons(y_0, z2), z3, y_1) → ADDLISTS(z0, z2, y_1) we obtained the following new rules:

IF(false, false, true, cons(0, y_0), cons(y_1, y_2), cons(0, cons(0, y_0)), cons(x2, cons(y_1, y_2)), x3, x4) → ADDLISTS(cons(0, y_0), cons(y_1, y_2), x4)
IF(false, false, true, cons(s(0), y_0), cons(y_1, y_2), cons(0, cons(s(0), y_0)), cons(x2, cons(y_1, y_2)), x3, x4) → ADDLISTS(cons(s(0), y_0), cons(y_1, y_2), x4)
IF(false, false, true, cons(s(s(y_0)), y_1), cons(y_2, y_3), cons(0, cons(s(s(y_0)), y_1)), cons(x2, cons(y_2, y_3)), x3, x4) → ADDLISTS(cons(s(s(y_0)), y_1), cons(y_2, y_3), x4)



↳ QTRS
  ↳ Overlay + Local Confluence
    ↳ QTRS
      ↳ DependencyPairsProof
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ AND
              ↳ QDP
              ↳ QDP
              ↳ QDP
              ↳ QDP
                ↳ UsableRulesProof
                  ↳ QDP
                    ↳ QReductionProof
                      ↳ QDP
                        ↳ Narrowing
                          ↳ QDP
                            ↳ DependencyGraphProof
                              ↳ QDP
                                ↳ Rewriting
                                  ↳ QDP
                                    ↳ Rewriting
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ Narrowing
                                                  ↳ QDP
                                                    ↳ DependencyGraphProof
                                                      ↳ QDP
                                                        ↳ UsableRulesProof
                                                          ↳ QDP
                                                            ↳ QReductionProof
                                                              ↳ QDP
                                                                ↳ Rewriting
                                                                  ↳ QDP
                                                                    ↳ Rewriting
                                                                      ↳ QDP
                                                                        ↳ Rewriting
                                                                          ↳ QDP
                                                                            ↳ UsableRulesProof
                                                                              ↳ QDP
                                                                                ↳ QReductionProof
                                                                                  ↳ QDP
                                                                                    ↳ Rewriting
                                                                                      ↳ QDP
                                                                                        ↳ UsableRulesProof
                                                                                          ↳ QDP
                                                                                            ↳ QReductionProof
                                                                                              ↳ QDP
                                                                                                ↳ Narrowing
                                                                                                  ↳ QDP
                                                                                                    ↳ UsableRulesProof
                                                                                                      ↳ QDP
                                                                                                        ↳ QReductionProof
                                                                                                          ↳ QDP
                                                                                                            ↳ Rewriting
                                                                                                              ↳ QDP
                                                                                                                ↳ UsableRulesProof
                                                                                                                  ↳ QDP
                                                                                                                    ↳ Instantiation
                                                                                                                      ↳ QDP
                                                                                                                        ↳ Instantiation
                                                                                                                          ↳ QDP
                                                                                                                            ↳ ForwardInstantiation
                                                                                                                              ↳ QDP
                                                                                                                                ↳ Narrowing
                                                                                                                                  ↳ QDP
                                                                                                                                    ↳ ForwardInstantiation
QDP
                                                                                                                                        ↳ QDPOrderProof

Q DP problem:
The TRS P consists of the following rules:

IF(false, false, false, x0, x1, cons(s(y_0), x0), cons(x3, x1), x4, x5) → ADDLISTS(cons(s(y_0), x0), cons(x3, x1), x4)
IF(false, false, true, cons(0, y_0), cons(y_1, y_2), cons(0, cons(0, y_0)), cons(x2, cons(y_1, y_2)), x3, x4) → ADDLISTS(cons(0, y_0), cons(y_1, y_2), x4)
IF(false, false, true, cons(s(0), y_0), cons(y_1, y_2), cons(0, cons(s(0), y_0)), cons(x2, cons(y_1, y_2)), x3, x4) → ADDLISTS(cons(s(0), y_0), cons(y_1, y_2), x4)
ADDLISTS(cons(s(s(x0)), y1), cons(y2, y3), y4) → IF(false, false, false, y1, y3, cons(s(p(s(x0))), y1), cons(inc(y2), y3), y4, append(y4, y2))
ADDLISTS(cons(0, y1), cons(y2, y3), y4) → IF(false, false, true, y1, y3, cons(0, y1), cons(inc(y2), y3), y4, append(y4, y2))
IF(false, false, false, x0, x1, cons(0, x0), cons(x3, x1), x4, x5) → ADDLISTS(cons(0, x0), cons(x3, x1), x4)
ADDLISTS(cons(s(0), y1), cons(y2, y3), y4) → IF(false, false, false, y1, y3, cons(0, y1), cons(inc(y2), y3), y4, append(y4, y2))
IF(false, false, true, cons(s(s(y_0)), y_1), cons(y_2, y_3), cons(0, cons(s(s(y_0)), y_1)), cons(x2, cons(y_2, y_3)), x3, x4) → ADDLISTS(cons(s(s(y_0)), y_1), cons(y_2, y_3), x4)

The TRS R consists of the following rules:

p(s(s(x))) → s(p(s(x)))
p(s(0)) → 0
inc(s(x)) → s(inc(x))
inc(0) → s(0)
append(nil, x) → cons(x, nil)
append(cons(y, ys), x) → cons(y, append(ys, x))

The set Q consists of the following terms:

append(nil, x0)
append(cons(x0, x1), x2)
p(s(s(x0)))
p(s(0))
p(0)
inc(s(x0))
inc(0)

We have to consider all minimal (P,Q,R)-chains.
We use the reduction pair processor [15].


The following pairs can be oriented strictly and are deleted.


IF(false, false, true, cons(0, y_0), cons(y_1, y_2), cons(0, cons(0, y_0)), cons(x2, cons(y_1, y_2)), x3, x4) → ADDLISTS(cons(0, y_0), cons(y_1, y_2), x4)
IF(false, false, true, cons(s(0), y_0), cons(y_1, y_2), cons(0, cons(s(0), y_0)), cons(x2, cons(y_1, y_2)), x3, x4) → ADDLISTS(cons(s(0), y_0), cons(y_1, y_2), x4)
ADDLISTS(cons(0, y1), cons(y2, y3), y4) → IF(false, false, true, y1, y3, cons(0, y1), cons(inc(y2), y3), y4, append(y4, y2))
IF(false, false, true, cons(s(s(y_0)), y_1), cons(y_2, y_3), cons(0, cons(s(s(y_0)), y_1)), cons(x2, cons(y_2, y_3)), x3, x4) → ADDLISTS(cons(s(s(y_0)), y_1), cons(y_2, y_3), x4)
The remaining pairs can at least be oriented weakly.

IF(false, false, false, x0, x1, cons(s(y_0), x0), cons(x3, x1), x4, x5) → ADDLISTS(cons(s(y_0), x0), cons(x3, x1), x4)
ADDLISTS(cons(s(s(x0)), y1), cons(y2, y3), y4) → IF(false, false, false, y1, y3, cons(s(p(s(x0))), y1), cons(inc(y2), y3), y4, append(y4, y2))
IF(false, false, false, x0, x1, cons(0, x0), cons(x3, x1), x4, x5) → ADDLISTS(cons(0, x0), cons(x3, x1), x4)
ADDLISTS(cons(s(0), y1), cons(y2, y3), y4) → IF(false, false, false, y1, y3, cons(0, y1), cons(inc(y2), y3), y4, append(y4, y2))
Used ordering: Polynomial interpretation [25]:

POL(0) = 1   
POL(ADDLISTS(x1, x2, x3)) = 1 + x1 + x2   
POL(IF(x1, x2, x3, x4, x5, x6, x7, x8, x9)) = 1 + x1 + x3 + x4 + x5   
POL(append(x1, x2)) = 0   
POL(cons(x1, x2)) = 1 + x2   
POL(false) = 1   
POL(inc(x1)) = 1 + x1   
POL(nil) = 0   
POL(p(x1)) = 0   
POL(s(x1)) = 0   
POL(true) = 0   

The following usable rules [17] were oriented: none



↳ QTRS
  ↳ Overlay + Local Confluence
    ↳ QTRS
      ↳ DependencyPairsProof
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ AND
              ↳ QDP
              ↳ QDP
              ↳ QDP
              ↳ QDP
                ↳ UsableRulesProof
                  ↳ QDP
                    ↳ QReductionProof
                      ↳ QDP
                        ↳ Narrowing
                          ↳ QDP
                            ↳ DependencyGraphProof
                              ↳ QDP
                                ↳ Rewriting
                                  ↳ QDP
                                    ↳ Rewriting
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ Narrowing
                                                  ↳ QDP
                                                    ↳ DependencyGraphProof
                                                      ↳ QDP
                                                        ↳ UsableRulesProof
                                                          ↳ QDP
                                                            ↳ QReductionProof
                                                              ↳ QDP
                                                                ↳ Rewriting
                                                                  ↳ QDP
                                                                    ↳ Rewriting
                                                                      ↳ QDP
                                                                        ↳ Rewriting
                                                                          ↳ QDP
                                                                            ↳ UsableRulesProof
                                                                              ↳ QDP
                                                                                ↳ QReductionProof
                                                                                  ↳ QDP
                                                                                    ↳ Rewriting
                                                                                      ↳ QDP
                                                                                        ↳ UsableRulesProof
                                                                                          ↳ QDP
                                                                                            ↳ QReductionProof
                                                                                              ↳ QDP
                                                                                                ↳ Narrowing
                                                                                                  ↳ QDP
                                                                                                    ↳ UsableRulesProof
                                                                                                      ↳ QDP
                                                                                                        ↳ QReductionProof
                                                                                                          ↳ QDP
                                                                                                            ↳ Rewriting
                                                                                                              ↳ QDP
                                                                                                                ↳ UsableRulesProof
                                                                                                                  ↳ QDP
                                                                                                                    ↳ Instantiation
                                                                                                                      ↳ QDP
                                                                                                                        ↳ Instantiation
                                                                                                                          ↳ QDP
                                                                                                                            ↳ ForwardInstantiation
                                                                                                                              ↳ QDP
                                                                                                                                ↳ Narrowing
                                                                                                                                  ↳ QDP
                                                                                                                                    ↳ ForwardInstantiation
                                                                                                                                      ↳ QDP
                                                                                                                                        ↳ QDPOrderProof
QDP
                                                                                                                                            ↳ DependencyGraphProof

Q DP problem:
The TRS P consists of the following rules:

IF(false, false, false, x0, x1, cons(s(y_0), x0), cons(x3, x1), x4, x5) → ADDLISTS(cons(s(y_0), x0), cons(x3, x1), x4)
ADDLISTS(cons(s(s(x0)), y1), cons(y2, y3), y4) → IF(false, false, false, y1, y3, cons(s(p(s(x0))), y1), cons(inc(y2), y3), y4, append(y4, y2))
ADDLISTS(cons(s(0), y1), cons(y2, y3), y4) → IF(false, false, false, y1, y3, cons(0, y1), cons(inc(y2), y3), y4, append(y4, y2))
IF(false, false, false, x0, x1, cons(0, x0), cons(x3, x1), x4, x5) → ADDLISTS(cons(0, x0), cons(x3, x1), x4)

The TRS R consists of the following rules:

p(s(s(x))) → s(p(s(x)))
p(s(0)) → 0
inc(s(x)) → s(inc(x))
inc(0) → s(0)
append(nil, x) → cons(x, nil)
append(cons(y, ys), x) → cons(y, append(ys, x))

The set Q consists of the following terms:

append(nil, x0)
append(cons(x0, x1), x2)
p(s(s(x0)))
p(s(0))
p(0)
inc(s(x0))
inc(0)

We have to consider all minimal (P,Q,R)-chains.
The approximation of the Dependency Graph [15,17,22] contains 1 SCC with 2 less nodes.

↳ QTRS
  ↳ Overlay + Local Confluence
    ↳ QTRS
      ↳ DependencyPairsProof
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ AND
              ↳ QDP
              ↳ QDP
              ↳ QDP
              ↳ QDP
                ↳ UsableRulesProof
                  ↳ QDP
                    ↳ QReductionProof
                      ↳ QDP
                        ↳ Narrowing
                          ↳ QDP
                            ↳ DependencyGraphProof
                              ↳ QDP
                                ↳ Rewriting
                                  ↳ QDP
                                    ↳ Rewriting
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ Narrowing
                                                  ↳ QDP
                                                    ↳ DependencyGraphProof
                                                      ↳ QDP
                                                        ↳ UsableRulesProof
                                                          ↳ QDP
                                                            ↳ QReductionProof
                                                              ↳ QDP
                                                                ↳ Rewriting
                                                                  ↳ QDP
                                                                    ↳ Rewriting
                                                                      ↳ QDP
                                                                        ↳ Rewriting
                                                                          ↳ QDP
                                                                            ↳ UsableRulesProof
                                                                              ↳ QDP
                                                                                ↳ QReductionProof
                                                                                  ↳ QDP
                                                                                    ↳ Rewriting
                                                                                      ↳ QDP
                                                                                        ↳ UsableRulesProof
                                                                                          ↳ QDP
                                                                                            ↳ QReductionProof
                                                                                              ↳ QDP
                                                                                                ↳ Narrowing
                                                                                                  ↳ QDP
                                                                                                    ↳ UsableRulesProof
                                                                                                      ↳ QDP
                                                                                                        ↳ QReductionProof
                                                                                                          ↳ QDP
                                                                                                            ↳ Rewriting
                                                                                                              ↳ QDP
                                                                                                                ↳ UsableRulesProof
                                                                                                                  ↳ QDP
                                                                                                                    ↳ Instantiation
                                                                                                                      ↳ QDP
                                                                                                                        ↳ Instantiation
                                                                                                                          ↳ QDP
                                                                                                                            ↳ ForwardInstantiation
                                                                                                                              ↳ QDP
                                                                                                                                ↳ Narrowing
                                                                                                                                  ↳ QDP
                                                                                                                                    ↳ ForwardInstantiation
                                                                                                                                      ↳ QDP
                                                                                                                                        ↳ QDPOrderProof
                                                                                                                                          ↳ QDP
                                                                                                                                            ↳ DependencyGraphProof
QDP
                                                                                                                                                ↳ QDPOrderProof

Q DP problem:
The TRS P consists of the following rules:

IF(false, false, false, x0, x1, cons(s(y_0), x0), cons(x3, x1), x4, x5) → ADDLISTS(cons(s(y_0), x0), cons(x3, x1), x4)
ADDLISTS(cons(s(s(x0)), y1), cons(y2, y3), y4) → IF(false, false, false, y1, y3, cons(s(p(s(x0))), y1), cons(inc(y2), y3), y4, append(y4, y2))

The TRS R consists of the following rules:

p(s(s(x))) → s(p(s(x)))
p(s(0)) → 0
inc(s(x)) → s(inc(x))
inc(0) → s(0)
append(nil, x) → cons(x, nil)
append(cons(y, ys), x) → cons(y, append(ys, x))

The set Q consists of the following terms:

append(nil, x0)
append(cons(x0, x1), x2)
p(s(s(x0)))
p(s(0))
p(0)
inc(s(x0))
inc(0)

We have to consider all minimal (P,Q,R)-chains.
We use the reduction pair processor [15].


The following pairs can be oriented strictly and are deleted.


IF(false, false, false, x0, x1, cons(s(y_0), x0), cons(x3, x1), x4, x5) → ADDLISTS(cons(s(y_0), x0), cons(x3, x1), x4)
The remaining pairs can at least be oriented weakly.

ADDLISTS(cons(s(s(x0)), y1), cons(y2, y3), y4) → IF(false, false, false, y1, y3, cons(s(p(s(x0))), y1), cons(inc(y2), y3), y4, append(y4, y2))
Used ordering: Matrix interpretation [3]:
Non-tuple symbols:
M( append(x1, x2) ) =
/0\
\0/
+
/00\
\00/
·x1+
/00\
\00/
·x2

M( false ) =
/0\
\0/

M( s(x1) ) =
/1\
\0/
+
/10\
\10/
·x1

M( inc(x1) ) =
/1\
\0/
+
/10\
\10/
·x1

M( 0 ) =
/0\
\0/

M( nil ) =
/0\
\0/

M( cons(x1, x2) ) =
/1\
\0/
+
/00\
\01/
·x1+
/00\
\00/
·x2

M( p(x1) ) =
/0\
\0/
+
/01\
\01/
·x1

Tuple symbols:
M( IF(x1, ..., x9) ) = 0+
[0,0]
·x1+
[0,0]
·x2+
[0,0]
·x3+
[0,0]
·x4+
[0,0]
·x5+
[0,1]
·x6+
[1,0]
·x7+
[1,0]
·x8+
[0,0]
·x9

M( ADDLISTS(x1, ..., x3) ) = 0+
[0,1]
·x1+
[0,0]
·x2+
[1,0]
·x3


Matrix type:
We used a basic matrix type which is not further parametrizeable.


As matrix orders are CE-compatible, we used usable rules w.r.t. argument filtering in the order.
The following usable rules [17] were oriented:

p(s(s(x))) → s(p(s(x)))
inc(0) → s(0)
inc(s(x)) → s(inc(x))
p(s(0)) → 0



↳ QTRS
  ↳ Overlay + Local Confluence
    ↳ QTRS
      ↳ DependencyPairsProof
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ AND
              ↳ QDP
              ↳ QDP
              ↳ QDP
              ↳ QDP
                ↳ UsableRulesProof
                  ↳ QDP
                    ↳ QReductionProof
                      ↳ QDP
                        ↳ Narrowing
                          ↳ QDP
                            ↳ DependencyGraphProof
                              ↳ QDP
                                ↳ Rewriting
                                  ↳ QDP
                                    ↳ Rewriting
                                      ↳ QDP
                                        ↳ Rewriting
                                          ↳ QDP
                                            ↳ Rewriting
                                              ↳ QDP
                                                ↳ Narrowing
                                                  ↳ QDP
                                                    ↳ DependencyGraphProof
                                                      ↳ QDP
                                                        ↳ UsableRulesProof
                                                          ↳ QDP
                                                            ↳ QReductionProof
                                                              ↳ QDP
                                                                ↳ Rewriting
                                                                  ↳ QDP
                                                                    ↳ Rewriting
                                                                      ↳ QDP
                                                                        ↳ Rewriting
                                                                          ↳ QDP
                                                                            ↳ UsableRulesProof
                                                                              ↳ QDP
                                                                                ↳ QReductionProof
                                                                                  ↳ QDP
                                                                                    ↳ Rewriting
                                                                                      ↳ QDP
                                                                                        ↳ UsableRulesProof
                                                                                          ↳ QDP
                                                                                            ↳ QReductionProof
                                                                                              ↳ QDP
                                                                                                ↳ Narrowing
                                                                                                  ↳ QDP
                                                                                                    ↳ UsableRulesProof
                                                                                                      ↳ QDP
                                                                                                        ↳ QReductionProof
                                                                                                          ↳ QDP
                                                                                                            ↳ Rewriting
                                                                                                              ↳ QDP
                                                                                                                ↳ UsableRulesProof
                                                                                                                  ↳ QDP
                                                                                                                    ↳ Instantiation
                                                                                                                      ↳ QDP
                                                                                                                        ↳ Instantiation
                                                                                                                          ↳ QDP
                                                                                                                            ↳ ForwardInstantiation
                                                                                                                              ↳ QDP
                                                                                                                                ↳ Narrowing
                                                                                                                                  ↳ QDP
                                                                                                                                    ↳ ForwardInstantiation
                                                                                                                                      ↳ QDP
                                                                                                                                        ↳ QDPOrderProof
                                                                                                                                          ↳ QDP
                                                                                                                                            ↳ DependencyGraphProof
                                                                                                                                              ↳ QDP
                                                                                                                                                ↳ QDPOrderProof
QDP
                                                                                                                                                    ↳ DependencyGraphProof

Q DP problem:
The TRS P consists of the following rules:

ADDLISTS(cons(s(s(x0)), y1), cons(y2, y3), y4) → IF(false, false, false, y1, y3, cons(s(p(s(x0))), y1), cons(inc(y2), y3), y4, append(y4, y2))

The TRS R consists of the following rules:

p(s(s(x))) → s(p(s(x)))
p(s(0)) → 0
inc(s(x)) → s(inc(x))
inc(0) → s(0)
append(nil, x) → cons(x, nil)
append(cons(y, ys), x) → cons(y, append(ys, x))

The set Q consists of the following terms:

append(nil, x0)
append(cons(x0, x1), x2)
p(s(s(x0)))
p(s(0))
p(0)
inc(s(x0))
inc(0)

We have to consider all minimal (P,Q,R)-chains.
The approximation of the Dependency Graph [15,17,22] contains 0 SCCs with 1 less node.