(0) Obligation:

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

app(nil, xs) → nil
app(cons(x, xs), ys) → cons(x, app(xs, ys))
rev(nil) → nil
rev(cons(x, xs)) → append(xs, rev(cons(x, nil)))
shuffle(nil) → nil
shuffle(cons(x, xs)) → cons(x, shuffle(rev(xs)))

Q is empty.

(1) QTRSRRRProof (EQUIVALENT transformation)

Used ordering:
Polynomial interpretation [POLO]:

POL(app(x1, x2)) = 2 + 2·x1 + 2·x2   
POL(append(x1, x2)) = x1 + x2   
POL(cons(x1, x2)) = 1 + x1 + x2   
POL(nil) = 0   
POL(rev(x1)) = x1   
POL(shuffle(x1)) = 2 + 2·x1   
With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly:

app(nil, xs) → nil
app(cons(x, xs), ys) → cons(x, app(xs, ys))
shuffle(nil) → nil
shuffle(cons(x, xs)) → cons(x, shuffle(rev(xs)))


(2) Obligation:

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

rev(nil) → nil
rev(cons(x, xs)) → append(xs, rev(cons(x, nil)))

Q is empty.

(3) QTRSRRRProof (EQUIVALENT transformation)

Used ordering:
Polynomial interpretation [POLO]:

POL(append(x1, x2)) = x1 + x2   
POL(cons(x1, x2)) = x1 + x2   
POL(nil) = 0   
POL(rev(x1)) = 1 + 2·x1   
With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly:

rev(nil) → nil


(4) Obligation:

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

rev(cons(x, xs)) → append(xs, rev(cons(x, nil)))

Q is empty.

(5) DependencyPairsProof (EQUIVALENT transformation)

Using Dependency Pairs [AG00,LPAR04] we result in the following initial DP problem.

(6) Obligation:

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

REV(cons(x, xs)) → REV(cons(x, nil))

The TRS R consists of the following rules:

rev(cons(x, xs)) → append(xs, rev(cons(x, nil)))

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

(7) NonLoopProof (EQUIVALENT transformation)

By Theorem 8 [NONLOOP] we deduce infiniteness of the QDP.
We apply the theorem with m = 1, b = 0,
σ' = [ ], and μ' = [x0 / nil] on the rule
REV(cons(x1, nil))[ ]n[ ] → REV(cons(x1, nil))[ ]n[x0 / nil]
This rule is correct for the QDP as the following derivation shows:

intermediate steps: Equivalent (Simplify mu) - Instantiate mu - Instantiation
REV(cons(x, xs))[ ]n[ ] → REV(cons(x, nil))[ ]n[ ]
    by OriginalRule from TRS P

(8) NO