TRS:
 {   rev1(0(), nil()) -> 0(),
    rev1(s(X), nil()) -> s(X),
  rev1(X, cons(Y, L)) -> rev1(Y, L),
           rev(nil()) -> nil(),
      rev(cons(X, L)) -> cons(rev1(X, L), rev2(X, L)),
       rev2(X, nil()) -> nil(),
  rev2(X, cons(Y, L)) -> rev(cons(X, rev(rev2(Y, L))))}
 Fail