We consider universal computability of the STRS with no additional rule schemes: Signature: 0 :: b 1 :: b cons :: d -> e -> e f :: b -> a false :: c filter :: (d -> c) -> e -> e filter2 :: c -> (d -> c) -> d -> e -> e map :: (d -> d) -> e -> e nil :: e true :: c Rules: f(0) -> f(0) 0 -> 1 map(F, nil) -> nil map(Z, cons(U, V)) -> cons(Z(U), map(Z, V)) filter(I, nil) -> nil filter(J, cons(X1, Y1)) -> filter2(J(X1), J, X1, Y1) filter2(true, G1, V1, W1) -> cons(V1, filter(G1, W1)) filter2(false, J1, X2, Y2) -> filter(J1, Y2) 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 UNION R_?, i, c), where: P1. (1) f#(0) => 0# (2) f#(0) => f#(0) (3) map#(Z, cons(U, V)) => map#(Z, V) (4) filter#(J, cons(X1, Y1)) => filter2#(J(X1), J, X1, Y1) (5) filter2#(true, G1, V1, W1) => filter#(G1, W1) (6) filter2#(false, J1, X2, Y2) => filter#(J1, Y2) ***** We apply the Graph Processor on D1 = (P1, R UNION R_?, i, c). We compute a graph approximation with the following edges: 1: 2: 1 2 3: 3 4: 5 6 5: 4 6: 4 There are 3 SCCs. Processor output: { D2 = (P2, R UNION R_?, i, c) ; D3 = (P3, R UNION R_?, i, c) ; D4 = (P4, R UNION R_?, i, c) }, where: P2. (1) f#(0) => f#(0) P3. (1) map#(Z, cons(U, V)) => map#(Z, V) P4. (1) filter#(J, cons(X1, Y1)) => filter2#(J(X1), J, X1, Y1) (2) filter2#(true, G1, V1, W1) => filter#(G1, W1) (3) filter2#(false, J1, X2, Y2) => filter#(J1, Y2) ***** We apply the Usable Rules Processor on D2 = (P2, R UNION 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) 0 -> 1 ***** We apply the Subterm Criterion Processor on D3 = (P3, R UNION R_?, i, c). We use the following projection function: nu(map#) = 2 We thus have: (1) cons(U, V) |>| V 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 UNION R_?, i, c). We use the following projection function: nu(filter#) = 2 nu(filter2#) = 4 We thus have: (1) cons(X1, Y1) |>| Y1 (2) W1 |>=| W1 (3) Y2 |>=| Y2 We may remove the strictly oriented DPs. Processor output: { D6 = (P5, R UNION R_?, i, c) }, where: P5. (1) filter2#(true, G1, V1, W1) => filter#(G1, W1) (2) filter2#(false, J1, X2, Y2) => filter#(J1, Y2) ***** No progress could be made on DP problem D5 = (P2, R2, i, c).