We consider termination of the STRS with no additional rule schemes: Signature: 0 :: b cons :: d -> e -> e f :: b -> b -> b -> a false :: c filter :: (d -> c) -> e -> e filter2 :: c -> (d -> c) -> d -> e -> e g :: b -> b map :: (d -> d) -> e -> e nil :: e s :: b -> b true :: c Rules: f(g(X), s(0), Y) -> f(Y, Y, g(X)) g(s(U)) -> s(g(U)) g(0) -> 0 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) f#(g(X), s(0), Y) => g#(X) (2) f#(g(X), s(0), Y) => f#(Y, Y, g(X)) (3) g#(s(U)) => g#(U) (4) map#(I, cons(P, X1)) => map#(I, X1) (5) filter#(G1, cons(V1, W1)) => filter2#(G1(V1), G1, V1, W1) (6) filter2#(true, J1, X2, Y2) => filter#(J1, Y2) (7) 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: 3 2: 1 2 3: 3 4: 4 5: 6 7 6: 5 7: 5 There are 4 SCCs. Processor output: { D2 = (P2, R, i, c) ; D3 = (P3, R, i, c) ; D4 = (P4, R, i, c) ; D5 = (P5, R, i, c) }, where: P2. (1) g#(s(U)) => g#(U) P3. (1) f#(g(X), s(0), Y) => f#(Y, Y, g(X)) P4. (1) map#(I, cons(P, X1)) => map#(I, X1) P5. (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(g#) = 1 We thus have: (1) s(U) |>| U All DPs are strictly oriented, and may be removed. Hence, this DP problem is finite. Processor output: { }. ***** We apply the Usable Rules Processor on D3 = (P3, R, i, c). We obtain 2 usable rules (out of 9 rules in the input problem). Processor output: { D6 = (P3, R2, i, c) }, where: R2. (1) g(s(U)) -> s(g(U)) (2) g(0) -> 0 ***** We apply the Subterm Criterion Processor on D4 = (P4, 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 D5 = (P5, 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: { D7 = (P6, R, i, c) }, where: P6. (1) filter2#(true, J1, X2, Y2) => filter#(J1, Y2) (2) filter2#(false, G2, V2, W2) => filter#(G2, W2) ***** No progress could be made on DP problem D6 = (P3, R2, i, c).