We consider termination of the STRS with no additional rule schemes: Signature: cons :: nat -> list -> list map :: (nat -> nat) -> list -> list merge :: list -> list -> list -> list nil :: list Rules: merge(nil, nil, X) -> X merge(nil, cons(Y, U), V) -> merge(U, nil, cons(Y, V)) merge(cons(W, P), X1, Y1) -> merge(X1, P, cons(W, Y1)) map(G1, nil) -> nil map(H1, cons(W1, P1)) -> cons(H1(W1), map(H1, P1)) 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, f, c), where: P1. (1) merge#(nil, cons(Y, U), V) => merge#(U, nil, cons(Y, V)) (2) merge#(cons(W, P), X1, Y1) => merge#(X1, P, cons(W, Y1)) (3) map#(H1, cons(W1, P1)) => map#(H1, P1) ***** We apply the Graph Processor on D1 = (P1, R, f, c). We compute a graph approximation with the following edges: 1: 2 2: 1 2 3: 3 There are 2 SCCs. Processor output: { D2 = (P2, R, f, c) ; D3 = (P3, R, f, c) }, where: P2. (1) merge#(nil, cons(Y, U), V) => merge#(U, nil, cons(Y, V)) (2) merge#(cons(W, P), X1, Y1) => merge#(X1, P, cons(W, Y1)) P3. (1) map#(H1, cons(W1, P1)) => map#(H1, P1) ***** We apply the Reduction Pair [with HORPO] Processor on D2 = (P2, R, f, c). Constrained HORPO yields: merge#(nil, cons(Y, U), V) (>) merge#(U, nil, cons(Y, V)) merge#(cons(W, P), X1, Y1) (>) merge#(X1, P, cons(W, Y1)) merge(nil, nil, X) (>=) X merge(nil, cons(Y, U), V) (>=) merge(U, nil, cons(Y, V)) merge(cons(W, P), X1, Y1) (>=) merge(X1, P, cons(W, Y1)) map(G1, nil) (>=) nil map(H1, cons(W1, P1)) (>=) cons(H1(W1), map(H1, P1)) We do this using the following settings: * Disregarded arguments: cons 1 map 1 merge# 3 * Precedence and permutation: cons { } 2 = map { } 2 = merge { 1 2 } 3 = nil { } > merge# { 1 2 } * Well-founded theory orderings: [>]_{Bool} = {(true,false)} [>]_{Int} = {(x,y) | x < 1000 /\ x < y } All dependency pairs were removed. Processor output: { }. ***** We apply the Subterm Criterion Processor on D3 = (P3, R, f, c). We use the following projection function: nu(map#) = 2 We thus have: (1) cons(W1, P1) |>| P1 All DPs are strictly oriented, and may be removed. Hence, this DP problem is finite. Processor output: { }.