The system is accessible function passing by a sort ordering that equates all sorts. We start by computing the following initial DP problem: P1. (1) D#(+(X, Y)) => D#(X) (2) D#(+(X, Y)) => D#(Y) (3) D#(*(U, V)) => D#(U) (4) D#(*(U, V)) => D#(V) (5) D#(-(W, P)) => D#(W) (6) D#(-(W, P)) => D#(P) (7) map#(Z1, cons(U1, V1)) => map#(Z1, V1) (8) filter#(J1, cons(X2, Y2)) => filter2#(J1(X2), J1, X2, Y2) (9) filter2#(true, G2, V2, W2) => filter#(G2, W2) (10) filter2#(false, J2, X3, Y3) => filter#(J2, Y3) ***** We apply the Graph Processor on P1. Considering the 3 SCCs, this DP problem is split into the following new problems. P2. (1) D#(+(X, Y)) => D#(X) (2) D#(+(X, Y)) => D#(Y) (3) D#(*(U, V)) => D#(U) (4) D#(*(U, V)) => D#(V) (5) D#(-(W, P)) => D#(W) (6) D#(-(W, P)) => D#(P) P3. (1) map#(Z1, cons(U1, V1)) => map#(Z1, V1) P4. (1) filter#(J1, cons(X2, Y2)) => filter2#(J1(X2), J1, X2, Y2) (2) filter2#(true, G2, V2, W2) => filter#(G2, W2) (3) filter2#(false, J2, X3, Y3) => filter#(J2, Y3) ***** We apply the Subterm Criterion Processor on P2. We use the following projection function: nu(D#) = 1 We thus have: (1) +(X, Y) |>| X (2) +(X, Y) |>| Y (3) *(U, V) |>| U (4) *(U, V) |>| V (5) -(W, P) |>| W (6) -(W, P) |>| P All DPs are strictly oriented, and may be removed. Hence, this DP problem is finite. ***** We apply the Subterm Criterion Processor on P3. We use the following projection function: nu(map#) = 2 We thus have: (1) cons(U1, V1) |>| V1 All DPs are strictly oriented, and may be removed. Hence, this DP problem is finite. ***** We apply the Subterm Criterion Processor on P4. We use the following projection function: nu(filter#) = 2 nu(filter2#) = 4 We thus have: (1) cons(X2, Y2) |>| Y2 (2) W2 |>=| W2 (3) Y3 |>=| Y3 We may remove the strictly oriented DPs, which yields: P5. (1) filter2#(true, G2, V2, W2) => filter#(G2, W2) (2) filter2#(false, J2, X3, Y3) => filter#(J2, Y3) ***** We apply the Graph Processor on P5. As there are no SCCs, this DP problem is removed.