We consider termination of the STRS with no additional rule schemes: Signature: 0 :: b 1 :: b cons :: e -> f -> f f :: b -> b -> b -> c -> a false :: d filter :: (e -> d) -> f -> f filter2 :: d -> (e -> d) -> e -> f -> f g :: b -> b -> b h :: b -> c map :: (e -> e) -> f -> f nil :: f true :: d Rules: f(0, 1, g(X, Y), U) -> f(g(X, Y), g(X, Y), g(X, Y), h(X)) g(0, 1) -> 0 g(0, 1) -> 1 h(g(V, W)) -> h(V) map(J, nil) -> nil map(F1, cons(Y1, U1)) -> cons(F1(Y1), map(F1, U1)) filter(H1, nil) -> nil filter(I1, cons(P1, X2)) -> filter2(I1(P1), I1, P1, X2) filter2(true, Z2, U2, V2) -> cons(U2, filter(Z2, V2)) filter2(false, I2, P2, X3) -> filter(I2, X3) 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#(0, 1, g(X, Y), U) => g#(X, Y) (2) f#(0, 1, g(X, Y), U) => g#(X, Y) (3) f#(0, 1, g(X, Y), U) => g#(X, Y) (4) f#(0, 1, g(X, Y), U) => h#(X) (5) f#(0, 1, g(X, Y), U) => f#(g(X, Y), g(X, Y), g(X, Y), h(X)) (6) h#(g(V, W)) => h#(V) (7) map#(F1, cons(Y1, U1)) => map#(F1, U1) (8) filter#(I1, cons(P1, X2)) => filter2#(I1(P1), I1, P1, X2) (9) filter2#(true, Z2, U2, V2) => filter#(Z2, V2) (10) filter2#(false, I2, P2, X3) => filter#(I2, X3) ***** We apply the Graph Processor on D1 = (P1, R, i, c). We compute a graph approximation with the following edges: 1: 2: 3: 4: 6 5: 1 2 3 4 5 6: 6 7: 7 8: 9 10 9: 8 10: 8 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) h#(g(V, W)) => h#(V) P3. (1) f#(0, 1, g(X, Y), U) => f#(g(X, Y), g(X, Y), g(X, Y), h(X)) P4. (1) map#(F1, cons(Y1, U1)) => map#(F1, U1) P5. (1) filter#(I1, cons(P1, X2)) => filter2#(I1(P1), I1, P1, X2) (2) filter2#(true, Z2, U2, V2) => filter#(Z2, V2) (3) filter2#(false, I2, P2, X3) => filter#(I2, X3) ***** We apply the Subterm Criterion Processor on D2 = (P2, R, i, c). We use the following projection function: nu(h#) = 1 We thus have: (1) g(V, W) |>| V All DPs are strictly oriented, and may be removed. Hence, this DP problem is finite. Processor output: { }. ***** No progress could be made on DP problem D3 = (P3, R, i, c).