We consider termination of the STRS with no additional rule schemes: Signature: 0 :: b 1 :: b cons :: e -> f -> f f :: b -> c -> a false :: d filter :: (e -> d) -> f -> f filter2 :: d -> (e -> d) -> e -> f -> f g :: b -> c map :: (e -> e) -> f -> f nil :: f true :: d Rules: f(X, g(X)) -> f(1, g(X)) g(1) -> g(0) map(Z, nil) -> nil map(G, cons(V, W)) -> cons(G(V), map(G, W)) filter(J, nil) -> nil filter(F1, cons(Y1, U1)) -> filter2(F1(Y1), F1, Y1, U1) filter2(true, H1, W1, P1) -> cons(W1, filter(H1, P1)) filter2(false, F2, Y2, U2) -> filter(F2, U2) 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, f, c), where: P1. (1) f#(X, g(X)) => g#(X) (2) f#(X, g(X)) => f#(1, g(X)) (3) g#(1) => g#(0) (4) map#(G, cons(V, W)) => map#(G, W) (5) filter#(F1, cons(Y1, U1)) => filter2#(F1(Y1), F1, Y1, U1) (6) filter2#(true, H1, W1, P1) => filter#(H1, P1) (7) filter2#(false, F2, Y2, U2) => filter#(F2, U2) ***** We apply the Graph Processor on D1 = (P1, R, f, c). We compute a graph approximation with the following edges: 1: 3 2: 1 2 3: 4: 4 5: 6 7 6: 5 7: 5 There are 3 SCCs. Processor output: { D2 = (P2, R, f, c) ; D3 = (P3, R, f, c) ; D4 = (P4, R, f, c) }, where: P2. (1) f#(X, g(X)) => f#(1, g(X)) P3. (1) map#(G, cons(V, W)) => map#(G, W) P4. (1) filter#(F1, cons(Y1, U1)) => filter2#(F1(Y1), F1, Y1, U1) (2) filter2#(true, H1, W1, P1) => filter#(H1, P1) (3) filter2#(false, F2, Y2, U2) => filter#(F2, U2) ***** No progress could be made on DP problem D2 = (P2, R, f, c).