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, i, 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, i, 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, i, c) ; D3 = (P3, R, i, c) ; D4 = (P4, R, i, 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) ***** We apply the Usable Rules Processor on D2 = (P2, R, i, c). We obtain 1 usable rules (out of 8 rules in the input problem). Processor output: { D5 = (P2, R2, i, c) }, where: R2. (1) g(1) -> g(0) ***** 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(V, W) |>| W 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(Y1, U1) |>| U1 (2) P1 |>=| P1 (3) U2 |>=| U2 We may remove the strictly oriented DPs. Processor output: { D6 = (P5, R, i, c) }, where: P5. (1) filter2#(true, H1, W1, P1) => filter#(H1, P1) (2) filter2#(false, F2, Y2, U2) => filter#(F2, U2) ***** No progress could be made on DP problem D5 = (P2, R2, i, c).