Problem:
 and(true(),X) -> X
 and(false(),Y) -> false()
 if(true(),X,Y) -> X
 if(false(),X,Y) -> Y
 add(0(),X) -> X
 add(s(X),Y) -> s(add(X,Y))
 first(0(),X) -> nil()
 first(s(X),cons(Y,Z)) -> cons(Y,first(X,Z))
 from(X) -> cons(X,from(s(X)))

Proof:
 Containment Processor: loop length: 1
                        terms:
                         from(X)
                        context: cons(X,[])
                        substitution:
                         X -> s(X)
  Qed