We consider universal computability of the STRS with no additional rule schemes: Signature: 0 :: c cons :: a -> b -> b div :: c -> c -> c map :: (a -> a) -> b -> b minus :: c -> c -> c nil :: b s :: c -> c Rules: map(F, nil) -> nil map(Z, cons(U, V)) -> cons(Z(U), map(Z, V)) minus(W, 0) -> W minus(s(P), s(X1)) -> minus(P, X1) div(0, s(Y1)) -> 0 div(s(U1), s(V1)) -> s(div(minus(U1, V1), s(V1))) 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) map#(Z, cons(U, V)) => map#(Z, V) (2) minus#(s(P), s(X1)) => minus#(P, X1) (3) div#(s(U1), s(V1)) => minus#(U1, V1) (4) div#(s(U1), s(V1)) => div#(minus(U1, V1), s(V1)) ***** 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: 2 4: 3 4 There are 3 SCCs. Processor output: { D2 = (P2, R UNION R_?, i, c) ; D3 = (P3, R UNION R_?, i, c) ; D4 = (P4, R UNION R_?, i, c) }, where: P2. (1) map#(Z, cons(U, V)) => map#(Z, V) P3. (1) minus#(s(P), s(X1)) => minus#(P, X1) P4. (1) div#(s(U1), s(V1)) => div#(minus(U1, V1), s(V1)) ***** We apply the Subterm Criterion Processor on D2 = (P2, R UNION R_?, i, c). We use the following projection function: nu(map#) = 2 We thus have: (1) cons(U, V) |>| V 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#) = 1 We thus have: (1) s(P) |>| P 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 2 usable rules (out of 6 rules in the input problem). Processor output: { D5 = (P4, R2, i, c) }, where: R2. (1) minus(W, 0) -> W (2) minus(s(P), s(X1)) -> minus(P, X1) ***** We apply the Usable rules with respect to an argument wiltering [with HORPO] Processor on D5 = (P4, R2, i, c). Constrained HORPO yields: div#2(s1(U1), s1(V1)) (>) div#2(minus2(U1, V1), s1(V1)) minus2(W, 00) (>=) W minus2(s1(P), s1(X1)) (>=) minus2(P, X1) We do this using the following settings: * Disregarded arguments: minus2 2 * Precedence and permutation: s1 { 1 } > 00 { } = div#2 { 1 2 } = minus2 { } 1 * Well-founded theory orderings: [>]_{Bool} = {(true,false)} [>]_{Int} = {(x,y) | x < 1000 /\ x < y } Processor output: { }.