We consider termination of the STRS with no additional rule schemes: Signature: * :: a -> b -> b + :: b -> b -> b cons :: d -> e -> e false :: c filter :: (d -> c) -> e -> e filter2 :: c -> (d -> c) -> d -> e -> e map :: (d -> d) -> e -> e nil :: e true :: c Rules: *(X, +(Y, U)) -> +(*(X, Y), *(X, U)) map(H, nil) -> nil map(I, cons(P, X1)) -> cons(I(P), map(I, X1)) filter(Z1, nil) -> nil filter(G1, cons(V1, W1)) -> filter2(G1(V1), G1, V1, W1) filter2(true, J1, X2, Y2) -> cons(X2, filter(J1, Y2)) filter2(false, G2, V2, W2) -> filter(G2, W2) The system is accessible function passing by a sort ordering that equates all sorts. We start by computing the initial DP problem D1 = (P1, R, i, c), where: P1. (1) *#(X, +(Y, U)) => *#(X, Y) (2) *#(X, +(Y, U)) => *#(X, U) (3) map#(I, cons(P, X1)) => map#(I, X1) (4) filter#(G1, cons(V1, W1)) => filter2#(G1(V1), G1, V1, W1) (5) filter2#(true, J1, X2, Y2) => filter#(J1, Y2) (6) filter2#(false, G2, V2, W2) => filter#(G2, W2) ***** We apply the Graph Processor on D1 = (P1, R, i, c). We compute a graph approximation with the following edges: 1: 1 2 2: 1 2 3: 3 4: 5 6 5: 4 6: 4 There are 3 SCCs. Processor output: { D2 = (P2, R, i, c) ; D3 = (P3, R, i, c) ; D4 = (P4, R, i, c) }, where: P2. (1) *#(X, +(Y, U)) => *#(X, Y) (2) *#(X, +(Y, U)) => *#(X, U) P3. (1) map#(I, cons(P, X1)) => map#(I, X1) P4. (1) filter#(G1, cons(V1, W1)) => filter2#(G1(V1), G1, V1, W1) (2) filter2#(true, J1, X2, Y2) => filter#(J1, Y2) (3) filter2#(false, G2, V2, W2) => filter#(G2, W2) ***** We apply the Subterm Criterion Processor on D2 = (P2, R, i, c). We use the following projection function: nu(*#) = 2 We thus have: (1) +(Y, U) |>| Y (2) +(Y, U) |>| U All DPs are strictly oriented, and may be removed. Hence, this DP problem is finite. Processor output: { }. ***** We apply the Subterm Criterion Processor on D3 = (P3, R, i, c). We use the following projection function: nu(map#) = 2 We thus have: (1) cons(P, X1) |>| X1 All DPs are strictly oriented, and may be removed. Hence, this DP problem is finite. Processor output: { }. ***** We apply the Subterm Criterion Processor on D4 = (P4, R, i, c). We use the following projection function: nu(filter#) = 2 nu(filter2#) = 4 We thus have: (1) cons(V1, W1) |>| W1 (2) Y2 |>=| Y2 (3) W2 |>=| W2 We may remove the strictly oriented DPs. Processor output: { D5 = (P5, R, i, c) }, where: P5. (1) filter2#(true, J1, X2, Y2) => filter#(J1, Y2) (2) filter2#(false, G2, V2, W2) => filter#(G2, W2) ***** We apply the Graph Processor on D5 = (P5, R, i, c). We compute a graph approximation with the following edges: 1: 2: As there are no SCCs, this DP problem is removed. Processor output: { }.