We consider termination 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, 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, 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, i, c) ; D3 = (P3, R, i, c) ; D4 = (P4, 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, 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, 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 Reduction Pair [with HORPO] Processor on D4 = (P4, R, i, c). Constrained HORPO yields: div#(s(U1), s(V1)) (>) div#(minus(U1, V1), s(V1)) 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))) We do this using the following settings: * Disregarded arguments: cons 1 div# 2 div 2 minus 2 * Precedence and permutation: div { } 1 = nil { } > s { 1 } > div# { 1 } = map { 1 } 2 > minus { 1 } > 0 { } = cons { 2 } * Well-founded theory orderings: [>]_{Bool} = {(true,false)} [>]_{Int} = {(x,y) | x < 1000 /\ x < y } All dependency pairs were removed. Processor output: { }.