We consider universal computability of the STRS with no additional rule schemes: Signature: 0 :: b app :: c -> c -> c cons :: b -> c -> c false :: a filter :: (b -> a) -> c -> c filter2 :: a -> (b -> a) -> b -> c -> c map :: (b -> b) -> c -> c minus :: b -> b -> b nil :: c plus :: b -> b -> b quot :: b -> b -> b s :: b -> b sum :: c -> c true :: a Rules: minus(X, 0) -> X minus(s(Y), s(U)) -> minus(Y, U) minus(minus(V, W), P) -> minus(V, plus(W, P)) quot(0, s(X1)) -> 0 quot(s(Y1), s(U1)) -> s(quot(minus(Y1, U1), s(U1))) plus(0, V1) -> V1 plus(s(W1), P1) -> s(plus(W1, P1)) app(nil, X2) -> X2 app(Y2, nil) -> Y2 app(cons(W2, V2), U2) -> cons(W2, app(V2, U2)) sum(cons(P2, nil)) -> cons(P2, nil) sum(cons(Y3, cons(U3, X3))) -> sum(cons(plus(Y3, U3), X3)) sum(app(W3, cons(P3, cons(X4, V3)))) -> sum(app(W3, sum(cons(P3, cons(X4, V3))))) map(Z4, nil) -> nil map(G4, cons(V4, W4)) -> cons(G4(V4), map(G4, W4)) filter(J4, nil) -> nil filter(F5, cons(Y5, U5)) -> filter2(F5(Y5), F5, Y5, U5) filter2(true, H5, W5, P5) -> cons(W5, filter(H5, P5)) filter2(false, F6, Y6, U6) -> filter(F6, U6) 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) minus#(s(Y), s(U)) => minus#(Y, U) (2) minus#(minus(V, W), P) => plus#(W, P) (3) minus#(minus(V, W), P) => minus#(V, plus(W, P)) (4) quot#(s(Y1), s(U1)) => minus#(Y1, U1) (5) quot#(s(Y1), s(U1)) => quot#(minus(Y1, U1), s(U1)) (6) plus#(s(W1), P1) => plus#(W1, P1) (7) app#(cons(W2, V2), U2) => app#(V2, U2) (8) sum#(cons(Y3, cons(U3, X3))) => plus#(Y3, U3) (9) sum#(cons(Y3, cons(U3, X3))) => sum#(cons(plus(Y3, U3), X3)) (10) sum#(app(W3, cons(P3, cons(X4, V3)))) => sum#(cons(P3, cons(X4, V3))) (11) sum#(app(W3, cons(P3, cons(X4, V3)))) => app#(W3, sum(cons(P3, cons(X4, V3)))) (12) sum#(app(W3, cons(P3, cons(X4, V3)))) => sum#(app(W3, sum(cons(P3, cons(X4, V3))))) (13) map#(G4, cons(V4, W4)) => map#(G4, W4) (14) filter#(F5, cons(Y5, U5)) => filter2#(F5(Y5), F5, Y5, U5) (15) filter2#(true, H5, W5, P5) => filter#(H5, P5) (16) filter2#(false, F6, Y6, U6) => filter#(F6, U6) ***** 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 3 2: 6 3: 1 2 3 4: 1 2 3 5: 4 5 6: 6 7: 7 8: 6 9: 8 9 10: 8 9 11: 7 12: 8 9 10 11 12 13: 13 14: 15 16 15: 14 16: 14 There are 8 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) ; D7 = (P7, R UNION R_?, i, c) ; D8 = (P8, R UNION R_?, i, c) ; D9 = (P9, R UNION R_?, i, c) }, where: P2. (1) plus#(s(W1), P1) => plus#(W1, P1) P3. (1) minus#(s(Y), s(U)) => minus#(Y, U) (2) minus#(minus(V, W), P) => minus#(V, plus(W, P)) P4. (1) quot#(s(Y1), s(U1)) => quot#(minus(Y1, U1), s(U1)) P5. (1) app#(cons(W2, V2), U2) => app#(V2, U2) P6. (1) sum#(cons(Y3, cons(U3, X3))) => sum#(cons(plus(Y3, U3), X3)) P7. (1) sum#(app(W3, cons(P3, cons(X4, V3)))) => sum#(app(W3, sum(cons(P3, cons(X4, V3))))) P8. (1) map#(G4, cons(V4, W4)) => map#(G4, W4) P9. (1) filter#(F5, cons(Y5, U5)) => filter2#(F5(Y5), F5, Y5, U5) (2) filter2#(true, H5, W5, P5) => filter#(H5, P5) (3) filter2#(false, F6, Y6, U6) => filter#(F6, U6) ***** We apply the Subterm Criterion Processor on D2 = (P2, R UNION R_?, i, c). We use the following projection function: nu(plus#) = 1 We thus have: (1) 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_?, i, c). We use the following projection function: nu(minus#) = 1 We thus have: (1) s(Y) |>| Y (2) minus(V, W) |>| V 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 5 usable rules (out of 19 rules in the input problem). Processor output: { D10 = (P4, R2, i, c) }, where: R2. (1) minus(X, 0) -> X (2) minus(s(Y), s(U)) -> minus(Y, U) (3) minus(minus(V, W), P) -> minus(V, plus(W, P)) (4) plus(0, V1) -> V1 (5) plus(s(W1), P1) -> s(plus(W1, P1)) ***** We apply the Subterm Criterion Processor on D5 = (P5, R UNION R_?, i, c). We use the following projection function: nu(app#) = 1 We thus have: (1) cons(W2, V2) |>| V2 All DPs are strictly oriented, and may be removed. Hence, this DP problem is finite. Processor output: { }. ***** We apply the Usable Rules Processor on D6 = (P6, R UNION R_?, i, c). We obtain 2 usable rules (out of 19 rules in the input problem). Processor output: { D11 = (P6, R3, i, c) }, where: R3. (1) plus(0, V1) -> V1 (2) plus(s(W1), P1) -> s(plus(W1, P1)) ***** We apply the Usable Rules Processor on D7 = (P7, R UNION R_?, i, c). We obtain 8 usable rules (out of 19 rules in the input problem). Processor output: { D12 = (P7, R4, i, c) }, where: R4. (1) app(nil, X2) -> X2 (2) app(Y2, nil) -> Y2 (3) app(cons(W2, V2), U2) -> cons(W2, app(V2, U2)) (4) plus(0, V1) -> V1 (5) plus(s(W1), P1) -> s(plus(W1, P1)) (6) sum(cons(P2, nil)) -> cons(P2, nil) (7) sum(cons(Y3, cons(U3, X3))) -> sum(cons(plus(Y3, U3), X3)) (8) sum(app(W3, cons(P3, cons(X4, V3)))) -> sum(app(W3, sum(cons(P3, cons(X4, V3))))) ***** We apply the Subterm Criterion Processor on D8 = (P8, R UNION R_?, i, c). We use the following projection function: nu(map#) = 2 We thus have: (1) cons(V4, W4) |>| W4 All DPs are strictly oriented, and may be removed. Hence, this DP problem is finite. Processor output: { }. ***** We apply the Subterm Criterion Processor on D9 = (P9, R UNION R_?, i, c). We use the following projection function: nu(filter#) = 2 nu(filter2#) = 4 We thus have: (1) cons(Y5, U5) |>| U5 (2) P5 |>=| P5 (3) U6 |>=| U6 We may remove the strictly oriented DPs. Processor output: { D13 = (P10, R UNION R_?, i, c) }, where: P10. (1) filter2#(true, H5, W5, P5) => filter#(H5, P5) (2) filter2#(false, F6, Y6, U6) => filter#(F6, U6) ***** We apply the Reduction Pair [with HORPO] Processor on D10 = (P4, R2, i, c). Constrained HORPO yields: quot#(s(Y1), s(U1)) (>) quot#(minus(Y1, U1), s(U1)) minus(X, 0) (>=) X minus(s(Y), s(U)) (>=) minus(Y, U) minus(minus(V, W), P) (>=) minus(V, plus(W, P)) plus(0, V1) (>=) V1 plus(s(W1), P1) (>=) s(plus(W1, P1)) We do this using the following settings: * Disregarded arguments: minus 2 quot# 2 * Precedence and permutation: plus { 2 } 1 > minus { } 1 = s { 1 } > 0 { } = quot# { } 1 * Well-founded theory orderings: [>]_{Bool} = {(true,false)} [>]_{Int} = {(x,y) | x < 1000 /\ x < y } All dependency pairs were removed. Processor output: { }. ***** We apply the Reduction Pair [with HORPO] Processor on D11 = (P6, R3, i, c). Constrained HORPO yields: sum#(cons(Y3, cons(U3, X3))) (>) sum#(cons(plus(Y3, U3), X3)) plus(0, V1) (>=) V1 plus(s(W1), P1) (>=) s(plus(W1, P1)) We do this using the following settings: * Disregarded arguments: plus 1 s 1 * Precedence and permutation: cons { 1 2 } > 0 { } = plus { } 2 = sum# { 1 } = s { } * Well-founded theory orderings: [>]_{Bool} = {(true,false)} [>]_{Int} = {(x,y) | x < 1000 /\ x < y } All dependency pairs were removed. Processor output: { }. ***** No progress could be made on DP problem D12 = (P7, R4, i, c).