We consider termination of the STRS with no additional rule schemes: Signature: 0 :: a cons :: a -> c -> c false :: b filter :: (a -> b) -> c -> c filtersub :: b -> (a -> b) -> c -> c neq :: a -> a -> b nil :: c nonzero :: c -> c s :: a -> a true :: b Rules: neq(0, 0) -> false neq(0, s(X)) -> true neq(s(Y), 0) -> true neq(s(U), s(V)) -> neq(U, V) filter(I, nil) -> nil filter(J, cons(X1, Y1)) -> filtersub(J(X1), J, cons(X1, Y1)) filtersub(true, G1, cons(V1, W1)) -> cons(V1, filter(G1, W1)) filtersub(false, J1, cons(X2, Y2)) -> filter(J1, Y2) nonzero -> filter(neq(0)) 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, i, c), where: P1. (1) neq#(s(U), s(V)) => neq#(U, V) (2) filter#(J, cons(X1, Y1)) => filtersub#(J(X1), J, cons(X1, Y1)) (3) filtersub#(true, G1, cons(V1, W1)) => filter#(G1, W1) (4) filtersub#(false, J1, cons(X2, Y2)) => filter#(J1, Y2) (5) nonzero#(arg1) => neq#(0, fresh1) (6) nonzero#(arg1) => filter#(neq(0), arg1) ***** We apply the Graph Processor on D1 = (P1, R, i, c). We compute a graph approximation with the following edges: 1: 1 2: 3 4 3: 2 4: 2 5: 6: 2 There are 2 SCCs. Processor output: { D2 = (P2, R, i, c) ; D3 = (P3, R, i, c) }, where: P2. (1) neq#(s(U), s(V)) => neq#(U, V) P3. (1) filter#(J, cons(X1, Y1)) => filtersub#(J(X1), J, cons(X1, Y1)) (2) filtersub#(true, G1, cons(V1, W1)) => filter#(G1, W1) (3) filtersub#(false, J1, cons(X2, Y2)) => filter#(J1, Y2) ***** We apply the Subterm Criterion Processor on D2 = (P2, R, i, c). We use the following projection function: nu(neq#) = 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, i, c). We use the following projection function: nu(filter#) = 2 nu(filtersub#) = 3 We thus have: (1) cons(X1, Y1) |>=| cons(X1, Y1) (2) cons(V1, W1) |>| W1 (3) cons(X2, Y2) |>| Y2 We may remove the strictly oriented DPs. Processor output: { D4 = (P4, R, i, c) }, where: P4. (1) filter#(J, cons(X1, Y1)) => filtersub#(J(X1), J, cons(X1, Y1)) ***** We apply the Graph Processor on D4 = (P4, R, i, c). We compute a graph approximation with the following edges: 1: As there are no SCCs, this DP problem is removed. Processor output: { }.