We consider termination of the STRS with no additional rule schemes: Signature: append :: a -> a -> a combine :: a -> a -> a cons :: a -> a -> a levels :: a -> a map :: (a -> a) -> a -> a nil :: a node :: a -> a -> a zip :: a -> a -> a Rules: map(F, nil) -> nil map(Z, cons(U, V)) -> cons(Z(U), map(Z, V)) append(W, nil) -> W append(nil, P) -> P append(cons(X1, Y1), U1) -> cons(X1, append(Y1, U1)) zip(nil, V1) -> V1 zip(W1, nil) -> W1 zip(cons(P1, X2), cons(Y2, U2)) -> cons(append(P1, Y2), zip(X2, U2)) combine(V2, nil) -> V2 combine(W2, cons(P2, X3)) -> combine(zip(W2, P2), X3) levels(node(Y3, U3)) -> cons(cons(Y3, nil), combine(nil, map(levels, U3))) 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) append#(cons(X1, Y1), U1) => append#(Y1, U1) (3) zip#(cons(P1, X2), cons(Y2, U2)) => append#(P1, Y2) (4) zip#(cons(P1, X2), cons(Y2, U2)) => zip#(X2, U2) (5) combine#(W2, cons(P2, X3)) => zip#(W2, P2) (6) combine#(W2, cons(P2, X3)) => combine#(zip(W2, P2), X3) (7) levels#(node(Y3, U3)) => levels#(fresh1) (8) levels#(node(Y3, U3)) => map#(levels, U3) (9) levels#(node(Y3, U3)) => combine#(nil, map(levels, U3)) ***** 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 5: 3 4 6: 5 6 7: 7 8 9 8: 1 9: 5 6 There are 5 SCCs. Processor output: { D2 = (P2, R, i, c) ; D3 = (P3, R, i, c) ; D4 = (P4, R, i, c) ; D5 = (P5, R, i, c) ; D6 = (P6, R, i, c) }, where: P2. (1) map#(Z, cons(U, V)) => map#(Z, V) P3. (1) append#(cons(X1, Y1), U1) => append#(Y1, U1) P4. (1) zip#(cons(P1, X2), cons(Y2, U2)) => zip#(X2, U2) P5. (1) combine#(W2, cons(P2, X3)) => combine#(zip(W2, P2), X3) P6. (1) levels#(node(Y3, U3)) => levels#(fresh1) ***** 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(append#) = 1 We thus have: (1) cons(X1, Y1) |>| Y1 All DPs are strictly oriented, and may be removed. Hence, this DP problem is finite. Processor output: { }. ***** We apply the Subterm Criterion Processor on D4 = (P4, R, i, c). We use the following projection function: nu(zip#) = 1 We thus have: (1) cons(P1, X2) |>| X2 All DPs are strictly oriented, and may be removed. Hence, this DP problem is finite. Processor output: { }. ***** We apply the Subterm Criterion Processor on D5 = (P5, R, i, c). We use the following projection function: nu(combine#) = 2 We thus have: (1) cons(P2, X3) |>| X3 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, i, c). We obtain 0 usable rules (out of 11 rules in the input problem). Processor output: { D7 = (P6, {}, i, c) }. ***** No progress could be made on DP problem D7 = (P6, {}, i, c).