(VAR f x y ys ) (RULES app(app(neq,0),0) -> false app(app(neq,0),app(s,y)) -> true app(app(neq,app(s,x)),0) -> true app(app(neq,app(s,x)),app(s,y)) -> app(app(neq,x),y) app(app(filter,f),nil) -> nil app(app(filter,f),app(app(cons,y),ys)) -> app(app(app(filtersub,app(f,y)),f),app(app(cons,y),ys)) app(app(app(filtersub,true),f),app(app(cons,y),ys)) -> app(app(cons,y),app(app(filter,f),ys)) app(app(app(filtersub,false),f),app(app(cons,y),ys)) -> app(app(filter,f),ys) nonzero -> app(filter,app(neq,0)) )