We consider universal computability of the STRS with no additional rule schemes: Signature: 0 :: b cons :: d -> e -> e f :: b -> b -> b -> b -> c false :: c filter :: (d -> c) -> e -> e filter2 :: c -> (d -> c) -> d -> e -> e if :: a -> c -> c -> c le :: b -> b -> a map :: (d -> d) -> e -> e minus :: b -> b -> b nil :: e perfectp :: b -> c s :: b -> b true :: c Rules: perfectp(0) -> false perfectp(s(X)) -> f(X, s(0), s(X), s(X)) f(0, U, 0, Y) -> true f(0, W, s(P), V) -> false f(s(Y1), 0, U1, X1) -> f(Y1, X1, minus(U1, s(Y1)), X1) f(s(W1), s(P1), X2, V1) -> if(le(W1, P1), f(s(W1), minus(P1, W1), X2, V1), f(W1, V1, X2, V1)) map(Z2, nil) -> nil map(G2, cons(V2, W2)) -> cons(G2(V2), map(G2, W2)) filter(J2, nil) -> nil filter(F3, cons(Y3, U3)) -> filter2(F3(Y3), F3, Y3, U3) filter2(true, H3, W3, P3) -> cons(W3, filter(H3, P3)) filter2(false, F4, Y4, U4) -> filter(F4, U4) 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_?, f, c), where: P1. (1) perfectp#(s(X)) => f#(X, s(0), s(X), s(X)) (2) f#(s(Y1), 0, U1, X1) => f#(Y1, X1, minus(U1, s(Y1)), X1) (3) f#(s(W1), s(P1), X2, V1) => f#(s(W1), minus(P1, W1), X2, V1) (4) f#(s(W1), s(P1), X2, V1) => f#(W1, V1, X2, V1) (5) map#(G2, cons(V2, W2)) => map#(G2, W2) (6) filter#(F3, cons(Y3, U3)) => filter2#(F3(Y3), F3, Y3, U3) (7) filter2#(true, H3, W3, P3) => filter#(H3, P3) (8) filter2#(false, F4, Y4, U4) => filter#(F4, U4) ***** We apply the Graph Processor on D1 = (P1, R UNION R_?, f, c). We compute a graph approximation with the following edges: 1: 3 4 2: 2 3 4 3: 4: 2 3 4 5: 5 6: 7 8 7: 6 8: 6 There are 3 SCCs. Processor output: { D2 = (P2, R UNION R_?, f, c) ; D3 = (P3, R UNION R_?, f, c) ; D4 = (P4, R UNION R_?, f, c) }, where: P2. (1) f#(s(Y1), 0, U1, X1) => f#(Y1, X1, minus(U1, s(Y1)), X1) (2) f#(s(W1), s(P1), X2, V1) => f#(W1, V1, X2, V1) P3. (1) map#(G2, cons(V2, W2)) => map#(G2, W2) P4. (1) filter#(F3, cons(Y3, U3)) => filter2#(F3(Y3), F3, Y3, U3) (2) filter2#(true, H3, W3, P3) => filter#(H3, P3) (3) filter2#(false, F4, Y4, U4) => filter#(F4, U4) ***** We apply the Subterm Criterion Processor on D2 = (P2, R UNION R_?, f, c). We use the following projection function: nu(f#) = 1 We thus have: (1) s(Y1) |>| Y1 (2) s(W1) |>| W1 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_?, f, c). We use the following projection function: nu(map#) = 2 We thus have: (1) cons(V2, W2) |>| W2 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_?, f, c). We use the following projection function: nu(filter#) = 2 nu(filter2#) = 4 We thus have: (1) cons(Y3, U3) |>| U3 (2) P3 |>=| P3 (3) U4 |>=| U4 We may remove the strictly oriented DPs. Processor output: { D5 = (P5, R UNION R_?, f, c) }, where: P5. (1) filter2#(true, H3, W3, P3) => filter#(H3, P3) (2) filter2#(false, F4, Y4, U4) => filter#(F4, U4) ***** We apply the Graph Processor on D5 = (P5, R UNION R_?, f, c). We compute a graph approximation with the following edges: 1: 2: As there are no SCCs, this DP problem is removed. Processor output: { }.