We consider universal computability of the STRS with no additional rule schemes: Signature: * :: a -> a -> a + :: a -> a -> a 0 :: a cons :: c -> d -> d fact :: a -> a false :: b filter :: (c -> b) -> d -> d filter2 :: b -> (c -> b) -> c -> d -> d map :: (c -> c) -> d -> d nil :: d p :: a -> a s :: a -> a true :: b Rules: p(s(X)) -> X fact(0) -> s(0) fact(s(Y)) -> *(s(Y), fact(p(s(Y)))) *(0, U) -> 0 *(s(V), W) -> +(*(V, W), W) +(P, 0) -> P +(X1, s(Y1)) -> s(+(X1, Y1)) map(G1, nil) -> nil map(H1, cons(W1, P1)) -> cons(H1(W1), map(H1, P1)) filter(F2, nil) -> nil filter(Z2, cons(U2, V2)) -> filter2(Z2(U2), Z2, U2, V2) filter2(true, I2, P2, X3) -> cons(P2, filter(I2, X3)) filter2(false, Z3, U3, V3) -> filter(Z3, V3) 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) fact#(s(Y)) => p#(s(Y)) (2) fact#(s(Y)) => fact#(p(s(Y))) (3) fact#(s(Y)) => *#(s(Y), fact(p(s(Y)))) (4) *#(s(V), W) => *#(V, W) (5) *#(s(V), W) => +#(*(V, W), W) (6) +#(X1, s(Y1)) => +#(X1, Y1) (7) map#(H1, cons(W1, P1)) => map#(H1, P1) (8) filter#(Z2, cons(U2, V2)) => filter2#(Z2(U2), Z2, U2, V2) (9) filter2#(true, I2, P2, X3) => filter#(I2, X3) (10) filter2#(false, Z3, U3, V3) => filter#(Z3, V3) ***** 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 4: 4 5 5: 6 6: 6 7: 7 8: 9 10 9: 8 10: 8 There are 5 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) ; D6 = (P6, R UNION R_?, i, c) }, where: P2. (1) +#(X1, s(Y1)) => +#(X1, Y1) P3. (1) *#(s(V), W) => *#(V, W) P4. (1) fact#(s(Y)) => fact#(p(s(Y))) P5. (1) map#(H1, cons(W1, P1)) => map#(H1, P1) P6. (1) filter#(Z2, cons(U2, V2)) => filter2#(Z2(U2), Z2, U2, V2) (2) filter2#(true, I2, P2, X3) => filter#(I2, X3) (3) filter2#(false, Z3, U3, V3) => filter#(Z3, V3) ***** We apply the Subterm Criterion Processor on D2 = (P2, R UNION R_?, i, c). We use the following projection function: nu(+#) = 2 We thus have: (1) s(Y1) |>| Y1 All DPs are strictly oriented, and may be removed. Hence, this DP problem is finite. Processor output: { }. ***** We apply the Subterm Criterion Processor on D3 = (P3, R UNION R_?, i, c). We use the following projection function: nu(*#) = 1 We thus have: (1) s(V) |>| V All DPs are strictly oriented, and may be removed. Hence, this DP problem is finite. Processor output: { }. ***** We apply the Usable Rules Processor on D4 = (P4, R UNION R_?, i, c). We obtain 1 usable rules (out of 13 rules in the input problem). Processor output: { D7 = (P4, R2, i, c) }, where: R2. (1) p(s(X)) -> X ***** We apply the Subterm Criterion Processor on D5 = (P5, R UNION R_?, i, c). We use the following projection function: nu(map#) = 2 We thus have: (1) cons(W1, P1) |>| P1 All DPs are strictly oriented, and may be removed. Hence, this DP problem is finite. Processor output: { }. ***** We apply the Subterm Criterion Processor on D6 = (P6, R UNION R_?, i, c). We use the following projection function: nu(filter#) = 2 nu(filter2#) = 4 We thus have: (1) cons(U2, V2) |>| V2 (2) X3 |>=| X3 (3) V3 |>=| V3 We may remove the strictly oriented DPs. Processor output: { D8 = (P7, R UNION R_?, i, c) }, where: P7. (1) filter2#(true, I2, P2, X3) => filter#(I2, X3) (2) filter2#(false, Z3, U3, V3) => filter#(Z3, V3) ***** No progress could be made on DP problem D7 = (P4, R2, i, c).