We consider universal computability of the STRS with no additional rule schemes: Signature: 0 :: b cons :: c -> d -> d false :: a filter :: (c -> a) -> d -> d filter2 :: a -> (c -> a) -> c -> d -> d gcd :: b -> b -> b if_gcd :: a -> b -> b -> b le :: b -> b -> a map :: (c -> c) -> d -> d minus :: b -> b -> b nil :: d pred :: b -> b s :: b -> b true :: a Rules: le(0, X) -> true le(s(Y), 0) -> false le(s(U), s(V)) -> le(U, V) pred(s(W)) -> W minus(P, 0) -> P minus(X1, s(Y1)) -> pred(minus(X1, Y1)) gcd(0, U1) -> U1 gcd(s(V1), 0) -> s(V1) gcd(s(W1), s(P1)) -> if_gcd(le(P1, W1), s(W1), s(P1)) if_gcd(true, s(X2), s(Y2)) -> gcd(minus(X2, Y2), s(Y2)) if_gcd(false, s(U2), s(V2)) -> gcd(minus(V2, U2), s(U2)) map(I2, nil) -> nil map(J2, cons(X3, Y3)) -> cons(J2(X3), map(J2, Y3)) filter(G3, nil) -> nil filter(H3, cons(W3, P3)) -> filter2(H3(W3), H3, W3, P3) filter2(true, F4, Y4, U4) -> cons(Y4, filter(F4, U4)) filter2(false, H4, W4, P4) -> filter(H4, P4) 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) le#(s(U), s(V)) => le#(U, V) (2) minus#(X1, s(Y1)) => minus#(X1, Y1) (3) minus#(X1, s(Y1)) => pred#(minus(X1, Y1)) (4) gcd#(s(W1), s(P1)) => le#(P1, W1) (5) gcd#(s(W1), s(P1)) => if_gcd#(le(P1, W1), s(W1), s(P1)) (6) if_gcd#(true, s(X2), s(Y2)) => minus#(X2, Y2) (7) if_gcd#(true, s(X2), s(Y2)) => gcd#(minus(X2, Y2), s(Y2)) (8) if_gcd#(false, s(U2), s(V2)) => minus#(V2, U2) (9) if_gcd#(false, s(U2), s(V2)) => gcd#(minus(V2, U2), s(U2)) (10) map#(J2, cons(X3, Y3)) => map#(J2, Y3) (11) filter#(H3, cons(W3, P3)) => filter2#(H3(W3), H3, W3, P3) (12) filter2#(true, F4, Y4, U4) => filter#(F4, U4) (13) filter2#(false, H4, W4, P4) => filter#(H4, P4) ***** We apply the Graph Processor on D1 = (P1, R UNION R_?, i, c). We compute a graph approximation with the following edges: 1: 1 2: 2 3 3: 4: 1 5: 6 7 8 9 6: 2 3 7: 4 5 8: 2 3 9: 4 5 10: 10 11: 12 13 12: 11 13: 11 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) le#(s(U), s(V)) => le#(U, V) P3. (1) minus#(X1, s(Y1)) => minus#(X1, Y1) P4. (1) gcd#(s(W1), s(P1)) => if_gcd#(le(P1, W1), s(W1), s(P1)) (2) if_gcd#(true, s(X2), s(Y2)) => gcd#(minus(X2, Y2), s(Y2)) (3) if_gcd#(false, s(U2), s(V2)) => gcd#(minus(V2, U2), s(U2)) P5. (1) map#(J2, cons(X3, Y3)) => map#(J2, Y3) P6. (1) filter#(H3, cons(W3, P3)) => filter2#(H3(W3), H3, W3, P3) (2) filter2#(true, F4, Y4, U4) => filter#(F4, U4) (3) filter2#(false, H4, W4, P4) => filter#(H4, P4) ***** We apply the Subterm Criterion Processor on D2 = (P2, R UNION R_?, i, c). We use the following projection function: nu(le#) = 1 We thus have: (1) s(U) |>| U 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(minus#) = 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: { }. ***** No progress could be made on DP problem D4 = (P4, R UNION R_?, i, c).