The system is accessible function passing by a sort ordering that equates all sorts. We start by computing the following initial DP problem: P1. (1) reverse#(V) => reverse2#(V, nil) (2) reverse2#(cons(X1, Y1), P) => reverse2#(Y1, cons(X1, P)) (3) last#(X{12}) => hd#(X{13}) (4) last#(X{12}) => reverse#(X{14}) (5) last#(X{12}) => compose#(hd, reverse, X{12}) (6) init#(X{15}) => reverse#(X{16}) (7) init#(X{15}) => tl#(X{17}) (8) init#(X{15}) => reverse#(X{18}) (9) init#(X{15}) => compose#(tl, reverse, X{19}) (10) init#(X{15}) => compose#(reverse, compose(tl, reverse), X{15}) ***** We apply the Graph Processor on P1. There is only one SCC, so all DPs not inside the SCC can be removed: P2. (1) reverse2#(cons(X1, Y1), P) => reverse2#(Y1, cons(X1, P)) ***** We apply the Subterm Criterion Processor on P2. We use the following projection function: nu(reverse2#) = 1 We thus have: (1) cons(X1, Y1) |>| Y1 All DPs are strictly oriented, and may be removed. Hence, this DP problem is finite.