We consider universal computability of the STRS with no additional rule schemes: Signature: 0 :: c c :: b -> b cons :: e -> f -> f d :: b -> c -> c e :: c -> c false :: d filter :: (e -> d) -> f -> f filter2 :: d -> (e -> d) -> e -> f -> f g :: c -> c -> c h :: b -> c -> a map :: (e -> e) -> f -> f nil :: f true :: d Rules: h(Y, e(X)) -> h(c(Y), d(Y, X)) d(U, g(0, 0)) -> e(0) d(P, g(V, W)) -> g(e(V), d(P, W)) d(c(U1), g(g(X1, Y1), 0)) -> g(d(c(U1), g(X1, Y1)), d(U1, g(X1, Y1))) g(e(V1), e(W1)) -> e(g(V1, W1)) map(J1, nil) -> nil map(F2, cons(Y2, U2)) -> cons(F2(Y2), map(F2, U2)) filter(H2, nil) -> nil filter(I2, cons(P2, X3)) -> filter2(I2(P2), I2, P2, X3) filter2(true, Z3, U3, V3) -> cons(U3, filter(Z3, V3)) filter2(false, I3, P3, X4) -> filter(I3, X4) 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) h#(Y, e(X)) => d#(Y, X) (2) h#(Y, e(X)) => h#(c(Y), d(Y, X)) (3) d#(P, g(V, W)) => d#(P, W) (4) d#(P, g(V, W)) => g#(e(V), d(P, W)) (5) d#(c(U1), g(g(X1, Y1), 0)) => g#(X1, Y1) (6) d#(c(U1), g(g(X1, Y1), 0)) => d#(c(U1), g(X1, Y1)) (7) d#(c(U1), g(g(X1, Y1), 0)) => g#(X1, Y1) (8) d#(c(U1), g(g(X1, Y1), 0)) => d#(U1, g(X1, Y1)) (9) d#(c(U1), g(g(X1, Y1), 0)) => g#(d(c(U1), g(X1, Y1)), d(U1, g(X1, Y1))) (10) g#(e(V1), e(W1)) => g#(V1, W1) (11) map#(F2, cons(Y2, U2)) => map#(F2, U2) (12) filter#(I2, cons(P2, X3)) => filter2#(I2(P2), I2, P2, X3) (13) filter2#(true, Z3, U3, V3) => filter#(Z3, V3) (14) filter2#(false, I3, P3, X4) => filter#(I3, X4) ***** We apply the Graph Processor on D1 = (P1, R UNION R_?, i, c). We compute a graph approximation with the following edges: 1: 3 4 5 6 7 8 9 2: 1 2 3: 3 4 5 6 7 8 9 4: 10 5: 10 6: 3 4 5 6 7 8 9 7: 10 8: 3 4 5 6 7 8 9 9: 10 10: 10 11: 11 12: 13 14 13: 12 14: 12 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) g#(e(V1), e(W1)) => g#(V1, W1) P3. (1) d#(P, g(V, W)) => d#(P, W) (2) d#(c(U1), g(g(X1, Y1), 0)) => d#(c(U1), g(X1, Y1)) (3) d#(c(U1), g(g(X1, Y1), 0)) => d#(U1, g(X1, Y1)) P4. (1) h#(Y, e(X)) => h#(c(Y), d(Y, X)) P5. (1) map#(F2, cons(Y2, U2)) => map#(F2, U2) P6. (1) filter#(I2, cons(P2, X3)) => filter2#(I2(P2), I2, P2, X3) (2) filter2#(true, Z3, U3, V3) => filter#(Z3, V3) (3) filter2#(false, I3, P3, X4) => filter#(I3, X4) ***** We apply the Subterm Criterion Processor on D2 = (P2, R UNION R_?, i, c). We use the following projection function: nu(g#) = 1 We thus have: (1) e(V1) |>| V1 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(d#) = 1 We thus have: (1) P |>=| P (2) c(U1) |>=| c(U1) (3) c(U1) |>| U1 We may remove the strictly oriented DPs. Processor output: { D7 = (P7, R UNION R_?, i, c) }, where: P7. (1) d#(P, g(V, W)) => d#(P, W) (2) d#(c(U1), g(g(X1, Y1), 0)) => d#(c(U1), g(X1, Y1)) ***** We apply the Usable Rules Processor on D4 = (P4, R UNION R_?, i, c). We obtain 4 usable rules (out of 11 rules in the input problem). Processor output: { D8 = (P4, R2, i, c) }, where: R2. (1) d(U, g(0, 0)) -> e(0) (2) d(P, g(V, W)) -> g(e(V), d(P, W)) (3) d(c(U1), g(g(X1, Y1), 0)) -> g(d(c(U1), g(X1, Y1)), d(U1, g(X1, Y1))) (4) g(e(V1), e(W1)) -> e(g(V1, W1)) ***** 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(Y2, U2) |>| U2 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(P2, X3) |>| X3 (2) V3 |>=| V3 (3) X4 |>=| X4 We may remove the strictly oriented DPs. Processor output: { D9 = (P8, R UNION R_?, i, c) }, where: P8. (1) filter2#(true, Z3, U3, V3) => filter#(Z3, V3) (2) filter2#(false, I3, P3, X4) => filter#(I3, X4) ***** We apply the Subterm Criterion Processor on D7 = (P7, R UNION R_?, i, c). We use the following projection function: nu(d#) = 2 We thus have: (1) g(V, W) |>| W (2) g(g(X1, Y1), 0) |>| g(X1, Y1) 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 D8 = (P4, R2, i, c).