We consider universal computability of the STRS with no additional rule schemes: Signature: 0 :: a cons :: c -> d -> d false :: b filter :: (c -> b) -> d -> d filter2 :: b -> (c -> b) -> c -> d -> d map :: (c -> c) -> d -> d nil :: d plus :: a -> a -> a s :: a -> a times :: a -> a -> a true :: b Rules: times(X, plus(Y, s(U))) -> plus(times(X, plus(Y, times(s(U), 0))), times(X, s(U))) times(V, 0) -> 0 times(W, s(P)) -> plus(times(W, P), W) plus(X1, 0) -> X1 plus(Y1, s(U1)) -> s(plus(Y1, U1)) map(H1, nil) -> nil map(I1, cons(P1, X2)) -> cons(I1(P1), map(I1, X2)) filter(Z2, nil) -> nil filter(G2, cons(V2, W2)) -> filter2(G2(V2), G2, V2, W2) filter2(true, J2, X3, Y3) -> cons(X3, filter(J2, Y3)) filter2(false, G3, V3, W3) -> filter(G3, W3) 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) times#(X, plus(Y, s(U))) => times#(s(U), 0) (2) times#(X, plus(Y, s(U))) => plus#(Y, times(s(U), 0)) (3) times#(X, plus(Y, s(U))) => times#(X, plus(Y, times(s(U), 0))) (4) times#(X, plus(Y, s(U))) => times#(X, s(U)) (5) times#(X, plus(Y, s(U))) => plus#(times(X, plus(Y, times(s(U), 0))), times(X, s(U))) (6) times#(W, s(P)) => times#(W, P) (7) times#(W, s(P)) => plus#(times(W, P), W) (8) plus#(Y1, s(U1)) => plus#(Y1, U1) (9) map#(I1, cons(P1, X2)) => map#(I1, X2) (10) filter#(G2, cons(V2, W2)) => filter2#(G2(V2), G2, V2, W2) (11) filter2#(true, J2, X3, Y3) => filter#(J2, Y3) (12) filter2#(false, G3, V3, W3) => filter#(G3, W3) ***** We apply the Graph Processor on D1 = (P1, R UNION R_?, i, c). We compute a graph approximation with the following edges: 1: 2: 8 3: 1 2 3 4 5 6 7 4: 6 7 5: 8 6: 1 2 3 4 5 6 7 7: 8 8: 8 9: 9 10: 11 12 11: 10 12: 10 There are 4 SCCs. Processor output: { D2 = (P2, R UNION R_?, i, c) ; D3 = (P3, R UNION R_?, i, c) ; D4 = (P4, R UNION R_?, i, c) ; D5 = (P5, R UNION R_?, i, c) }, where: P2. (1) plus#(Y1, s(U1)) => plus#(Y1, U1) P3. (1) times#(X, plus(Y, s(U))) => times#(X, plus(Y, times(s(U), 0))) (2) times#(X, plus(Y, s(U))) => times#(X, s(U)) (3) times#(W, s(P)) => times#(W, P) P4. (1) map#(I1, cons(P1, X2)) => map#(I1, X2) P5. (1) filter#(G2, cons(V2, W2)) => filter2#(G2(V2), G2, V2, W2) (2) filter2#(true, J2, X3, Y3) => filter#(J2, Y3) (3) filter2#(false, G3, V3, W3) => filter#(G3, W3) ***** We apply the Subterm Criterion Processor on D2 = (P2, R UNION R_?, i, c). We use the following projection function: nu(plus#) = 2 We thus have: (1) s(U1) |>| U1 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 UNION R_?, i, c). We obtain 5 usable rules (out of 11 rules in the input problem). Processor output: { D6 = (P3, R2, i, c) }, where: R2. (1) plus(X1, 0) -> X1 (2) plus(Y1, s(U1)) -> s(plus(Y1, U1)) (3) times(X, plus(Y, s(U))) -> plus(times(X, plus(Y, times(s(U), 0))), times(X, s(U))) (4) times(V, 0) -> 0 (5) times(W, s(P)) -> plus(times(W, P), W) ***** We apply the Subterm Criterion Processor on D4 = (P4, R UNION R_?, i, c). We use the following projection function: nu(map#) = 2 We thus have: (1) cons(P1, X2) |>| X2 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 UNION R_?, i, c). We use the following projection function: nu(filter#) = 2 nu(filter2#) = 4 We thus have: (1) cons(V2, W2) |>| W2 (2) Y3 |>=| Y3 (3) W3 |>=| W3 We may remove the strictly oriented DPs. Processor output: { D7 = (P6, R UNION R_?, i, c) }, where: P6. (1) filter2#(true, J2, X3, Y3) => filter#(J2, Y3) (2) filter2#(false, G3, V3, W3) => filter#(G3, W3) ***** No progress could be made on DP problem D6 = (P3, R2, i, c).