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 minus :: a -> a -> a nil :: d plus :: a -> a -> a quot :: a -> a -> a s :: a -> a true :: b Rules: minus(X, 0) -> X minus(s(Y), s(U)) -> minus(Y, U) quot(0, s(V)) -> 0 quot(s(W), s(P)) -> s(quot(minus(W, P), s(P))) plus(0, X1) -> X1 plus(s(Y1), U1) -> s(plus(Y1, U1)) plus(minus(V1, s(0)), minus(W1, s(s(P1)))) -> plus(minus(W1, s(s(P1))), minus(V1, s(0))) plus(plus(X2, s(0)), plus(Y2, s(s(U2)))) -> plus(plus(Y2, s(s(U2))), plus(X2, s(0))) map(H2, nil) -> nil map(I2, cons(P2, X3)) -> cons(I2(P2), map(I2, X3)) filter(Z3, nil) -> nil filter(G3, cons(V3, W3)) -> filter2(G3(V3), G3, V3, W3) filter2(true, J3, X4, Y4) -> cons(X4, filter(J3, Y4)) filter2(false, G4, V4, W4) -> filter(G4, W4) 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) minus#(s(Y), s(U)) => minus#(Y, U) (2) quot#(s(W), s(P)) => minus#(W, P) (3) quot#(s(W), s(P)) => quot#(minus(W, P), s(P)) (4) plus#(s(Y1), U1) => plus#(Y1, U1) (5) plus#(minus(V1, s(0)), minus(W1, s(s(P1)))) => minus#(W1, s(s(P1))) (6) plus#(minus(V1, s(0)), minus(W1, s(s(P1)))) => minus#(V1, s(0)) (7) plus#(minus(V1, s(0)), minus(W1, s(s(P1)))) => plus#(minus(W1, s(s(P1))), minus(V1, s(0))) (8) plus#(plus(X2, s(0)), plus(Y2, s(s(U2)))) => plus#(Y2, s(s(U2))) (9) plus#(plus(X2, s(0)), plus(Y2, s(s(U2)))) => plus#(X2, s(0)) (10) plus#(plus(X2, s(0)), plus(Y2, s(s(U2)))) => plus#(plus(Y2, s(s(U2))), plus(X2, s(0))) (11) map#(I2, cons(P2, X3)) => map#(I2, X3) (12) filter#(G3, cons(V3, W3)) => filter2#(G3(V3), G3, V3, W3) (13) filter2#(true, J3, X4, Y4) => filter#(J3, Y4) (14) filter2#(false, G4, V4, W4) => filter#(G4, W4) ***** We apply the Graph Processor on D1 = (P1, R UNION R_?, f, c). We compute a graph approximation with the following edges: 1: 1 2: 1 3: 2 3 4: 4 5 6 7 8 9 10 5: 1 6: 1 7: 4 5 6 7 8 9 10 8: 4 9: 4 10: 4 5 6 7 8 9 10 11: 11 12: 13 14 13: 12 14: 12 There are 5 SCCs. Processor output: { D2 = (P2, R UNION R_?, f, c) ; D3 = (P3, R UNION R_?, f, c) ; D4 = (P4, R UNION R_?, f, c) ; D5 = (P5, R UNION R_?, f, c) ; D6 = (P6, R UNION R_?, f, c) }, where: P2. (1) minus#(s(Y), s(U)) => minus#(Y, U) P3. (1) quot#(s(W), s(P)) => quot#(minus(W, P), s(P)) P4. (1) plus#(s(Y1), U1) => plus#(Y1, U1) (2) plus#(minus(V1, s(0)), minus(W1, s(s(P1)))) => plus#(minus(W1, s(s(P1))), minus(V1, s(0))) (3) plus#(plus(X2, s(0)), plus(Y2, s(s(U2)))) => plus#(Y2, s(s(U2))) (4) plus#(plus(X2, s(0)), plus(Y2, s(s(U2)))) => plus#(X2, s(0)) (5) plus#(plus(X2, s(0)), plus(Y2, s(s(U2)))) => plus#(plus(Y2, s(s(U2))), plus(X2, s(0))) P5. (1) map#(I2, cons(P2, X3)) => map#(I2, X3) P6. (1) filter#(G3, cons(V3, W3)) => filter2#(G3(V3), G3, V3, W3) (2) filter2#(true, J3, X4, Y4) => filter#(J3, Y4) (3) filter2#(false, G4, V4, W4) => filter#(G4, W4) ***** We apply the Subterm Criterion Processor on D2 = (P2, R UNION R_?, f, c). We use the following projection function: nu(minus#) = 1 We thus have: (1) s(Y) |>| Y 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 D3 = (P3, R UNION R_?, f, c).