(VAR f k l x xs y z ) (RULES app'(app'(minus,x),0) -> x app'(app'(minus,app'(s,x)),app'(s,y)) -> app'(app'(minus,x),y) app'(app'(minus,app'(app'(minus,x),y)),z) -> app'(app'(minus,x),app'(app'(plus,y),z)) app'(app'(quot,0),app'(s,y)) -> 0 app'(app'(quot,app'(s,x)),app'(s,y)) -> app'(s,app'(app'(quot,app'(app'(minus,x),y)),app'(s,y))) app'(app'(plus,0),y) -> y app'(app'(plus,app'(s,x)),y) -> app'(s,app'(app'(plus,x),y)) app'(app'(app,nil),k) -> k app'(app'(app,l),nil) -> l app'(app'(app,app'(app'(cons,x),l)),k) -> app'(app'(cons,x),app'(app'(app,l),k)) app'(sum,app'(app'(cons,x),nil)) -> app'(app'(cons,x),nil) app'(sum,app'(app'(cons,x),app'(app'(cons,y),l))) -> app'(sum,app'(app'(cons,app'(app'(plus,x),y)),l)) app'(sum,app'(app'(app,l),app'(app'(cons,x),app'(app'(cons,y),k)))) -> app'(sum,app'(app'(app,l),app'(sum,app'(app'(cons,x),app'(app'(cons,y),k))))) app'(app'(map,f),nil) -> nil app'(app'(map,f),app'(app'(cons,x),xs)) -> app'(app'(cons,app'(f,x)),app'(app'(map,f),xs)) app'(app'(filter,f),nil) -> nil app'(app'(filter,f),app'(app'(cons,x),xs)) -> app'(app'(app'(app'(filter2,app'(f,x)),f),x),xs) app'(app'(app'(app'(filter2,true),f),x),xs) -> app'(app'(cons,x),app'(app'(filter,f),xs)) app'(app'(app'(app'(filter2,false),f),x),xs) -> app'(app'(filter,f),xs) )