TRS: { isEmpty(nil()) -> true(), isEmpty(cons(x, xs)) -> false(), last(cons(x, nil())) -> x, last(cons(x, cons(y, ys))) -> last(cons(y, ys)), dropLast(nil()) -> nil(), dropLast(cons(x, nil())) -> nil(), dropLast(cons(x, cons(y, ys))) -> cons(x, dropLast(cons(y, ys))), append(nil(), ys) -> ys, append(cons(x, xs), ys) -> cons(x, append(xs, ys)), reverse(xs) -> rev(xs, nil()), rev(xs, ys) -> if(isEmpty(xs), dropLast(xs), append(ys, last(xs)), ys), if(true(), xs, ys, zs) -> zs, if(false(), xs, ys, zs) -> rev(xs, ys)} Fail