YES Problem: app(app(:(),app(app(:(),x),y)),z) -> app(app(:(),x),app(app(:(),y),z)) app(app(:(),app(app(+(),x),y)),z) -> app(app(+(),app(app(:(),x),z)),app(app(:(),y),z)) app(app(:(),z),app(app(+(),x),app(f,y))) -> app(app(:(),app(app(g(),z),y)),app(app(+(),x),a())) 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) Proof: DP Processor: DPs: app#(app(:(),app(app(:(),x),y)),z) -> app#(:(),y) app#(app(:(),app(app(:(),x),y)),z) -> app#(app(:(),y),z) app#(app(:(),app(app(:(),x),y)),z) -> app#(app(:(),x),app(app(:(),y),z)) app#(app(:(),app(app(+(),x),y)),z) -> app#(:(),y) app#(app(:(),app(app(+(),x),y)),z) -> app#(app(:(),y),z) app#(app(:(),app(app(+(),x),y)),z) -> app#(:(),x) app#(app(:(),app(app(+(),x),y)),z) -> app#(app(:(),x),z) app#(app(:(),app(app(+(),x),y)),z) -> app#(+(),app(app(:(),x),z)) app#(app(:(),app(app(+(),x),y)),z) -> app#(app(+(),app(app(:(),x),z)),app(app(:(),y),z)) app#(app(:(),z),app(app(+(),x),app(f,y))) -> app#(app(+(),x),a()) app#(app(:(),z),app(app(+(),x),app(f,y))) -> app#(g(),z) app#(app(:(),z),app(app(+(),x),app(f,y))) -> app#(app(g(),z),y) app#(app(:(),z),app(app(+(),x),app(f,y))) -> app#(:(),app(app(g(),z),y)) app#(app(:(),z),app(app(+(),x),app(f,y))) -> app#(app(:(),app(app(g(),z),y)),app(app(+(),x),a())) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(app(map(),f),xs) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(cons(),app(f,x)) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(app(cons(),app(f,x)),app(app(map(),f),xs)) app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(f,x) app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(filter2(),app(f,x)) app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(app(filter2(),app(f,x)),f) app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(app(app(filter2(),app(f,x)),f),x) 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#(filter(),f) app#(app(app(app(filter2(),true()),f),x),xs) -> app#(app(filter(),f),xs) app#(app(app(app(filter2(),true()),f),x),xs) -> app#(cons(),x) 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#(filter(),f) app#(app(app(app(filter2(),false()),f),x),xs) -> app#(app(filter(),f),xs) TRS: app(app(:(),app(app(:(),x),y)),z) -> app(app(:(),x),app(app(:(),y),z)) app(app(:(),app(app(+(),x),y)),z) -> app(app(+(),app(app(:(),x),z)),app(app(:(),y),z)) app(app(:(),z),app(app(+(),x),app(f,y))) -> app(app(:(),app(app(g(),z),y)),app(app(+(),x),a())) 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) EDG Processor: DPs: app#(app(:(),app(app(:(),x),y)),z) -> app#(:(),y) app#(app(:(),app(app(:(),x),y)),z) -> app#(app(:(),y),z) app#(app(:(),app(app(:(),x),y)),z) -> app#(app(:(),x),app(app(:(),y),z)) app#(app(:(),app(app(+(),x),y)),z) -> app#(:(),y) app#(app(:(),app(app(+(),x),y)),z) -> app#(app(:(),y),z) app#(app(:(),app(app(+(),x),y)),z) -> app#(:(),x) app#(app(:(),app(app(+(),x),y)),z) -> app#(app(:(),x),z) app#(app(:(),app(app(+(),x),y)),z) -> app#(+(),app(app(:(),x),z)) app#(app(:(),app(app(+(),x),y)),z) -> app#(app(+(),app(app(:(),x),z)),app(app(:(),y),z)) app#(app(:(),z),app(app(+(),x),app(f,y))) -> app#(app(+(),x),a()) app#(app(:(),z),app(app(+(),x),app(f,y))) -> app#(g(),z) app#(app(:(),z),app(app(+(),x),app(f,y))) -> app#(app(g(),z),y) app#(app(:(),z),app(app(+(),x),app(f,y))) -> app#(:(),app(app(g(),z),y)) app#(app(:(),z),app(app(+(),x),app(f,y))) -> app#(app(:(),app(app(g(),z),y)),app(app(+(),x),a())) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(app(map(),f),xs) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(cons(),app(f,x)) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(app(cons(),app(f,x)),app(app(map(),f),xs)) app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(f,x) app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(filter2(),app(f,x)) app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(app(filter2(),app(f,x)),f) app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(app(app(filter2(),app(f,x)),f),x) 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#(filter(),f) app#(app(app(app(filter2(),true()),f),x),xs) -> app#(app(filter(),f),xs) app#(app(app(app(filter2(),true()),f),x),xs) -> app#(cons(),x) 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#(filter(),f) app#(app(app(app(filter2(),false()),f),x),xs) -> app#(app(filter(),f),xs) TRS: app(app(:(),app(app(:(),x),y)),z) -> app(app(:(),x),app(app(:(),y),z)) app(app(:(),app(app(+(),x),y)),z) -> app(app(+(),app(app(:(),x),z)),app(app(:(),y),z)) app(app(:(),z),app(app(+(),x),app(f,y))) -> app(app(:(),app(app(g(),z),y)),app(app(+(),x),a())) 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) graph: app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(:(),app(app(:(),x),y)),z) -> app#(:(),y) app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(:(),app(app(:(),x),y)),z) -> app#(app(:(),y),z) app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(:(),app(app(:(),x),y)),z) -> app#(app(:(),x),app(app(:(),y),z)) app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(:(),app(app(+(),x),y)),z) -> app#(:(),y) app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(:(),app(app(+(),x),y)),z) -> app#(app(:(),y),z) app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(:(),app(app(+(),x),y)),z) -> app#(:(),x) app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(:(),app(app(+(),x),y)),z) -> app#(app(:(),x),z) app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(:(),app(app(+(),x),y)),z) -> app#(+(),app(app(:(),x),z)) app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(:(),app(app(+(),x),y)),z) -> app#(app(+(),app(app(:(),x),z)),app(app(:(),y),z)) app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(:(),z),app(app(+(),x),app(f,y))) -> app#(app(+(),x),a()) app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(:(),z),app(app(+(),x),app(f,y))) -> app#(g(),z) app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(:(),z),app(app(+(),x),app(f,y))) -> app#(app(g(),z),y) app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(:(),z),app(app(+(),x),app(f,y))) -> app#(:(),app(app(g(),z),y)) app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(:(),z),app(app(+(),x),app(f,y))) -> app#(app(:(),app(app(g(),z),y)),app(app(+(),x),a())) app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(map(),f),app(app(cons(),x),xs)) -> app#(app(map(),f),xs) app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(map(),f),app(app(cons(),x),xs)) -> app#(cons(),app(f,x)) app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(map(),f),app(app(cons(),x),xs)) -> app#(app(cons(),app(f,x)),app(app(map(),f),xs)) app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(f,x) app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(filter2(),app(f,x)) app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(app(filter2(),app(f,x)),f) app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(app(app(filter2(),app(f,x)),f),x) app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(app(app(app(filter2(),app(f,x)),f),x),xs) app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(app(app(filter2(),true()),f),x),xs) -> app#(filter(),f) app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(app(app(filter2(),true()),f),x),xs) -> app#(app(filter(),f),xs) app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(app(app(filter2(),true()),f),x),xs) -> app#(cons(),x) app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(app(app(filter2(),true()),f),x),xs) -> app#(app(cons(),x),app(app(filter(),f),xs)) app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(app(app(filter2(),false()),f),x),xs) -> app#(filter(),f) app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(app(app(filter2(),false()),f),x),xs) -> app#(app(filter(),f),xs) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(app(map(),f),xs) -> app#(app(map(),f),app(app(cons(),x),xs)) -> app#(app(map(),f),xs) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(app(map(),f),xs) -> app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(app(map(),f),xs) -> app#(app(map(),f),app(app(cons(),x),xs)) -> app#(cons(),app(f,x)) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(app(map(),f),xs) -> app#(app(map(),f),app(app(cons(),x),xs)) -> app#(app(cons(),app(f,x)),app(app(map(),f),xs)) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(:(),app(app(:(),x),y)),z) -> app#(:(),y) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(:(),app(app(:(),x),y)),z) -> app#(app(:(),y),z) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(:(),app(app(:(),x),y)),z) -> app#(app(:(),x),app(app(:(),y),z)) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(:(),app(app(+(),x),y)),z) -> app#(:(),y) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(:(),app(app(+(),x),y)),z) -> app#(app(:(),y),z) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(:(),app(app(+(),x),y)),z) -> app#(:(),x) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(:(),app(app(+(),x),y)),z) -> app#(app(:(),x),z) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(:(),app(app(+(),x),y)),z) -> app#(+(),app(app(:(),x),z)) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(:(),app(app(+(),x),y)),z) -> app#(app(+(),app(app(:(),x),z)),app(app(:(),y),z)) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(:(),z),app(app(+(),x),app(f,y))) -> app#(app(+(),x),a()) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(:(),z),app(app(+(),x),app(f,y))) -> app#(g(),z) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(:(),z),app(app(+(),x),app(f,y))) -> app#(app(g(),z),y) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(:(),z),app(app(+(),x),app(f,y))) -> app#(:(),app(app(g(),z),y)) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(:(),z),app(app(+(),x),app(f,y))) -> app#(app(:(),app(app(g(),z),y)),app(app(+(),x),a())) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(map(),f),app(app(cons(),x),xs)) -> app#(app(map(),f),xs) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(map(),f),app(app(cons(),x),xs)) -> app#(cons(),app(f,x)) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(map(),f),app(app(cons(),x),xs)) -> app#(app(cons(),app(f,x)),app(app(map(),f),xs)) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(f,x) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(filter2(),app(f,x)) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(app(filter2(),app(f,x)),f) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(app(app(filter2(),app(f,x)),f),x) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(app(app(app(filter2(),app(f,x)),f),x),xs) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(app(app(filter2(),true()),f),x),xs) -> app#(filter(),f) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(app(app(filter2(),true()),f),x),xs) -> app#(app(filter(),f),xs) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(app(app(filter2(),true()),f),x),xs) -> app#(cons(),x) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(app(app(filter2(),true()),f),x),xs) -> app#(app(cons(),x),app(app(filter(),f),xs)) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(app(app(filter2(),false()),f),x),xs) -> app#(filter(),f) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) -> app#(app(app(app(filter2(),false()),f),x),xs) -> app#(app(filter(),f),xs) app#(app(app(app(filter2(),false()),f),x),xs) -> app#(app(filter(),f),xs) -> app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(f,x) app#(app(app(app(filter2(),false()),f),x),xs) -> app#(app(filter(),f),xs) -> app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(filter2(),app(f,x)) app#(app(app(app(filter2(),false()),f),x),xs) -> app#(app(filter(),f),xs) -> app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(app(filter2(),app(f,x)),f) app#(app(app(app(filter2(),false()),f),x),xs) -> app#(app(filter(),f),xs) -> app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(app(app(filter2(),app(f,x)),f),x) app#(app(app(app(filter2(),false()),f),x),xs) -> app#(app(filter(),f),xs) -> 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(filter(),f),xs) -> app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(f,x) app#(app(app(app(filter2(),true()),f),x),xs) -> app#(app(filter(),f),xs) -> app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(filter2(),app(f,x)) app#(app(app(app(filter2(),true()),f),x),xs) -> app#(app(filter(),f),xs) -> app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(app(filter2(),app(f,x)),f) app#(app(app(app(filter2(),true()),f),x),xs) -> app#(app(filter(),f),xs) -> app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(app(app(filter2(),app(f,x)),f),x) app#(app(app(app(filter2(),true()),f),x),xs) -> app#(app(filter(),f),xs) -> app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(app(app(app(filter2(),app(f,x)),f),x),xs) app#(app(:(),app(app(+(),x),y)),z) -> app#(app(:(),y),z) -> app#(app(:(),app(app(:(),x),y)),z) -> app#(:(),y) app#(app(:(),app(app(+(),x),y)),z) -> app#(app(:(),y),z) -> app#(app(:(),app(app(:(),x),y)),z) -> app#(app(:(),y),z) app#(app(:(),app(app(+(),x),y)),z) -> app#(app(:(),y),z) -> app#(app(:(),app(app(:(),x),y)),z) -> app#(app(:(),x),app(app(:(),y),z)) app#(app(:(),app(app(+(),x),y)),z) -> app#(app(:(),y),z) -> app#(app(:(),app(app(+(),x),y)),z) -> app#(:(),y) app#(app(:(),app(app(+(),x),y)),z) -> app#(app(:(),y),z) -> app#(app(:(),app(app(+(),x),y)),z) -> app#(app(:(),y),z) app#(app(:(),app(app(+(),x),y)),z) -> app#(app(:(),y),z) -> app#(app(:(),app(app(+(),x),y)),z) -> app#(:(),x) app#(app(:(),app(app(+(),x),y)),z) -> app#(app(:(),y),z) -> app#(app(:(),app(app(+(),x),y)),z) -> app#(app(:(),x),z) app#(app(:(),app(app(+(),x),y)),z) -> app#(app(:(),y),z) -> app#(app(:(),app(app(+(),x),y)),z) -> app#(+(),app(app(:(),x),z)) app#(app(:(),app(app(+(),x),y)),z) -> app#(app(:(),y),z) -> app#(app(:(),app(app(+(),x),y)),z) -> app#(app(+(),app(app(:(),x),z)),app(app(:(),y),z)) app#(app(:(),app(app(+(),x),y)),z) -> app#(app(:(),y),z) -> app#(app(:(),z),app(app(+(),x),app(f,y))) -> app#(app(+(),x),a()) app#(app(:(),app(app(+(),x),y)),z) -> app#(app(:(),y),z) -> app#(app(:(),z),app(app(+(),x),app(f,y))) -> app#(g(),z) app#(app(:(),app(app(+(),x),y)),z) -> app#(app(:(),y),z) -> app#(app(:(),z),app(app(+(),x),app(f,y))) -> app#(app(g(),z),y) app#(app(:(),app(app(+(),x),y)),z) -> app#(app(:(),y),z) -> app#(app(:(),z),app(app(+(),x),app(f,y))) -> app#(:(),app(app(g(),z),y)) app#(app(:(),app(app(+(),x),y)),z) -> app#(app(:(),y),z) -> app#(app(:(),z),app(app(+(),x),app(f,y))) -> app#(app(:(),app(app(g(),z),y)),app(app(+(),x),a())) app#(app(:(),app(app(+(),x),y)),z) -> app#(app(:(),x),z) -> app#(app(:(),app(app(:(),x),y)),z) -> app#(:(),y) app#(app(:(),app(app(+(),x),y)),z) -> app#(app(:(),x),z) -> app#(app(:(),app(app(:(),x),y)),z) -> app#(app(:(),y),z) app#(app(:(),app(app(+(),x),y)),z) -> app#(app(:(),x),z) -> app#(app(:(),app(app(:(),x),y)),z) -> app#(app(:(),x),app(app(:(),y),z)) app#(app(:(),app(app(+(),x),y)),z) -> app#(app(:(),x),z) -> app#(app(:(),app(app(+(),x),y)),z) -> app#(:(),y) app#(app(:(),app(app(+(),x),y)),z) -> app#(app(:(),x),z) -> app#(app(:(),app(app(+(),x),y)),z) -> app#(app(:(),y),z) app#(app(:(),app(app(+(),x),y)),z) -> app#(app(:(),x),z) -> app#(app(:(),app(app(+(),x),y)),z) -> app#(:(),x) app#(app(:(),app(app(+(),x),y)),z) -> app#(app(:(),x),z) -> app#(app(:(),app(app(+(),x),y)),z) -> app#(app(:(),x),z) app#(app(:(),app(app(+(),x),y)),z) -> app#(app(:(),x),z) -> app#(app(:(),app(app(+(),x),y)),z) -> app#(+(),app(app(:(),x),z)) app#(app(:(),app(app(+(),x),y)),z) -> app#(app(:(),x),z) -> app#(app(:(),app(app(+(),x),y)),z) -> app#(app(+(),app(app(:(),x),z)),app(app(:(),y),z)) app#(app(:(),app(app(+(),x),y)),z) -> app#(app(:(),x),z) -> app#(app(:(),z),app(app(+(),x),app(f,y))) -> app#(app(+(),x),a()) app#(app(:(),app(app(+(),x),y)),z) -> app#(app(:(),x),z) -> app#(app(:(),z),app(app(+(),x),app(f,y))) -> app#(g(),z) app#(app(:(),app(app(+(),x),y)),z) -> app#(app(:(),x),z) -> app#(app(:(),z),app(app(+(),x),app(f,y))) -> app#(app(g(),z),y) app#(app(:(),app(app(+(),x),y)),z) -> app#(app(:(),x),z) -> app#(app(:(),z),app(app(+(),x),app(f,y))) -> app#(:(),app(app(g(),z),y)) app#(app(:(),app(app(+(),x),y)),z) -> app#(app(:(),x),z) -> app#(app(:(),z),app(app(+(),x),app(f,y))) -> app#(app(:(),app(app(g(),z),y)),app(app(+(),x),a())) app#(app(:(),app(app(:(),x),y)),z) -> app#(app(:(),y),z) -> app#(app(:(),app(app(:(),x),y)),z) -> app#(:(),y) app#(app(:(),app(app(:(),x),y)),z) -> app#(app(:(),y),z) -> app#(app(:(),app(app(:(),x),y)),z) -> app#(app(:(),y),z) app#(app(:(),app(app(:(),x),y)),z) -> app#(app(:(),y),z) -> app#(app(:(),app(app(:(),x),y)),z) -> app#(app(:(),x),app(app(:(),y),z)) app#(app(:(),app(app(:(),x),y)),z) -> app#(app(:(),y),z) -> app#(app(:(),app(app(+(),x),y)),z) -> app#(:(),y) app#(app(:(),app(app(:(),x),y)),z) -> app#(app(:(),y),z) -> app#(app(:(),app(app(+(),x),y)),z) -> app#(app(:(),y),z) app#(app(:(),app(app(:(),x),y)),z) -> app#(app(:(),y),z) -> app#(app(:(),app(app(+(),x),y)),z) -> app#(:(),x) app#(app(:(),app(app(:(),x),y)),z) -> app#(app(:(),y),z) -> app#(app(:(),app(app(+(),x),y)),z) -> app#(app(:(),x),z) app#(app(:(),app(app(:(),x),y)),z) -> app#(app(:(),y),z) -> app#(app(:(),app(app(+(),x),y)),z) -> app#(+(),app(app(:(),x),z)) app#(app(:(),app(app(:(),x),y)),z) -> app#(app(:(),y),z) -> app#(app(:(),app(app(+(),x),y)),z) -> app#(app(+(),app(app(:(),x),z)),app(app(:(),y),z)) app#(app(:(),app(app(:(),x),y)),z) -> app#(app(:(),y),z) -> app#(app(:(),z),app(app(+(),x),app(f,y))) -> app#(app(+(),x),a()) app#(app(:(),app(app(:(),x),y)),z) -> app#(app(:(),y),z) -> app#(app(:(),z),app(app(+(),x),app(f,y))) -> app#(g(),z) app#(app(:(),app(app(:(),x),y)),z) -> app#(app(:(),y),z) -> app#(app(:(),z),app(app(+(),x),app(f,y))) -> app#(app(g(),z),y) app#(app(:(),app(app(:(),x),y)),z) -> app#(app(:(),y),z) -> app#(app(:(),z),app(app(+(),x),app(f,y))) -> app#(:(),app(app(g(),z),y)) app#(app(:(),app(app(:(),x),y)),z) -> app#(app(:(),y),z) -> app#(app(:(),z),app(app(+(),x),app(f,y))) -> app#(app(:(),app(app(g(),z),y)),app(app(+(),x),a())) app#(app(:(),app(app(:(),x),y)),z) -> app#(app(:(),x),app(app(:(),y),z)) -> app#(app(:(),app(app(:(),x),y)),z) -> app#(:(),y) app#(app(:(),app(app(:(),x),y)),z) -> app#(app(:(),x),app(app(:(),y),z)) -> app#(app(:(),app(app(:(),x),y)),z) -> app#(app(:(),y),z) app#(app(:(),app(app(:(),x),y)),z) -> app#(app(:(),x),app(app(:(),y),z)) -> app#(app(:(),app(app(:(),x),y)),z) -> app#(app(:(),x),app(app(:(),y),z)) app#(app(:(),app(app(:(),x),y)),z) -> app#(app(:(),x),app(app(:(),y),z)) -> app#(app(:(),app(app(+(),x),y)),z) -> app#(:(),y) app#(app(:(),app(app(:(),x),y)),z) -> app#(app(:(),x),app(app(:(),y),z)) -> app#(app(:(),app(app(+(),x),y)),z) -> app#(app(:(),y),z) app#(app(:(),app(app(:(),x),y)),z) -> app#(app(:(),x),app(app(:(),y),z)) -> app#(app(:(),app(app(+(),x),y)),z) -> app#(:(),x) app#(app(:(),app(app(:(),x),y)),z) -> app#(app(:(),x),app(app(:(),y),z)) -> app#(app(:(),app(app(+(),x),y)),z) -> app#(app(:(),x),z) app#(app(:(),app(app(:(),x),y)),z) -> app#(app(:(),x),app(app(:(),y),z)) -> app#(app(:(),app(app(+(),x),y)),z) -> app#(+(),app(app(:(),x),z)) app#(app(:(),app(app(:(),x),y)),z) -> app#(app(:(),x),app(app(:(),y),z)) -> app#(app(:(),app(app(+(),x),y)),z) -> app#(app(+(),app(app(:(),x),z)),app(app(:(),y),z)) app#(app(:(),app(app(:(),x),y)),z) -> app#(app(:(),x),app(app(:(),y),z)) -> app#(app(:(),z),app(app(+(),x),app(f,y))) -> app#(app(+(),x),a()) app#(app(:(),app(app(:(),x),y)),z) -> app#(app(:(),x),app(app(:(),y),z)) -> app#(app(:(),z),app(app(+(),x),app(f,y))) -> app#(g(),z) app#(app(:(),app(app(:(),x),y)),z) -> app#(app(:(),x),app(app(:(),y),z)) -> app#(app(:(),z),app(app(+(),x),app(f,y))) -> app#(app(g(),z),y) app#(app(:(),app(app(:(),x),y)),z) -> app#(app(:(),x),app(app(:(),y),z)) -> app#(app(:(),z),app(app(+(),x),app(f,y))) -> app#(:(),app(app(g(),z),y)) app#(app(:(),app(app(:(),x),y)),z) -> app#(app(:(),x),app(app(:(),y),z)) -> app#(app(:(),z),app(app(+(),x),app(f,y))) -> app#(app(:(),app(app(g(),z),y)),app(app(+(),x),a())) SCC Processor: #sccs: 2 #rules: 9 #arcs: 128/841 DPs: app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(f,x) app#(app(app(app(filter2(),false()),f),x),xs) -> app#(app(filter(),f),xs) app#(app(app(app(filter2(),true()),f),x),xs) -> app#(app(filter(),f),xs) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) app#(app(map(),f),app(app(cons(),x),xs)) -> app#(app(map(),f),xs) TRS: app(app(:(),app(app(:(),x),y)),z) -> app(app(:(),x),app(app(:(),y),z)) app(app(:(),app(app(+(),x),y)),z) -> app(app(+(),app(app(:(),x),z)),app(app(:(),y),z)) app(app(:(),z),app(app(+(),x),app(f,y))) -> app(app(:(),app(app(g(),z),y)),app(app(+(),x),a())) 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) Size-Change Termination Processor: DPs: TRS: app(app(:(),app(app(:(),x),y)),z) -> app(app(:(),x),app(app(:(),y),z)) app(app(:(),app(app(+(),x),y)),z) -> app(app(+(),app(app(:(),x),z)),app(app(:(),y),z)) app(app(:(),z),app(app(+(),x),app(f,y))) -> app(app(:(),app(app(g(),z),y)),app(app(+(),x),a())) 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) The DP: app#(app(filter(),f),app(app(cons(),x),xs)) -> app#(f,x) has the edges: 0 > 0 1 > 1 The DP: app#(app(app(app(filter2(),false()),f),x),xs) -> app#(app(filter(),f),xs) has the edges: 1 >= 1 The DP: app#(app(app(app(filter2(),true()),f),x),xs) -> app#(app(filter(),f),xs) has the edges: 1 >= 1 The DP: app#(app(map(),f),app(app(cons(),x),xs)) -> app#(f,x) has the edges: 0 > 0 1 > 1 The DP: app#(app(map(),f),app(app(cons(),x),xs)) -> app#(app(map(),f),xs) has the edges: 0 >= 0 1 > 1 Qed DPs: app#(app(:(),app(app(+(),x),y)),z) -> app#(app(:(),x),z) app#(app(:(),app(app(+(),x),y)),z) -> app#(app(:(),y),z) app#(app(:(),app(app(:(),x),y)),z) -> app#(app(:(),x),app(app(:(),y),z)) app#(app(:(),app(app(:(),x),y)),z) -> app#(app(:(),y),z) TRS: app(app(:(),app(app(:(),x),y)),z) -> app(app(:(),x),app(app(:(),y),z)) app(app(:(),app(app(+(),x),y)),z) -> app(app(+(),app(app(:(),x),z)),app(app(:(),y),z)) app(app(:(),z),app(app(+(),x),app(f,y))) -> app(app(:(),app(app(g(),z),y)),app(app(+(),x),a())) 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) Extended Uncurrying Processor: application symbol: app# symbol table: false ==> false0/0 true ==> true0/0 filter2 ==> filter20/0 filter ==> filter0/0 cons ==> cons0/0 nil ==> nil0/0 map ==> map0/0 a ==> a0/0 g ==> g0/0 + ==> +0/0 app ==> app0/2 app_app#_1#/3 : ==> :0/0 uncurry-rules: eta-rules: problem: DPs: app_app#_1#(:0(),app0(app0(+0(),x),y),z) -> app_app#_1#(:0(),x,z) app_app#_1#(:0(),app0(app0(+0(),x),y),z) -> app_app#_1#(:0(),y,z) app_app#_1#(:0(),app0(app0(:0(),x),y),z) -> app_app#_1#(:0(),x,app0(app0(:0(),y),z)) app_app#_1#(:0(),app0(app0(:0(),x),y),z) -> app_app#_1#(:0(),y,z) TRS: app0(app0(:0(),app0(app0(:0(),x),y)),z) -> app0(app0(:0(),x),app0(app0(:0(),y),z)) app0(app0(:0(),app0(app0(+0(),x),y)),z) -> app0(app0(+0(),app0(app0(:0(),x),z)),app0(app0(:0(),y),z)) app0(app0(:0(),z),app0(app0(+0(),x),app0(f,y))) -> app0(app0(:0(),app0(app0(g0(),z),y)),app0(app0(+0(),x),a0())) app0(app0(map0(),f),nil0()) -> nil0() app0(app0(map0(),f),app0(app0(cons0(),x),xs)) -> app0(app0(cons0(),app0(f,x)),app0(app0(map0(),f),xs)) app0(app0(filter0(),f),nil0()) -> nil0() app0(app0(filter0(),f),app0(app0(cons0(),x),xs)) -> app0(app0(app0(app0(filter20(),app0(f,x)),f),x),xs) app0(app0(app0(app0(filter20(),true0()),f),x),xs) -> app0(app0(cons0(),x),app0(app0(filter0(),f),xs)) app0(app0(app0(app0(filter20(),false0()),f),x),xs) -> app0(app0(filter0(),f),xs) Size-Change Termination Processor: DPs: TRS: app0(app0(:0(),app0(app0(:0(),x),y)),z) -> app0(app0(:0(),x),app0(app0(:0(),y),z)) app0(app0(:0(),app0(app0(+0(),x),y)),z) -> app0(app0(+0(),app0(app0(:0(),x),z)),app0(app0(:0(),y),z)) app0(app0(:0(),z),app0(app0(+0(),x),app0(f,y))) -> app0(app0(:0(),app0(app0(g0(),z),y)),app0(app0(+0(),x),a0())) app0(app0(map0(),f),nil0()) -> nil0() app0(app0(map0(),f),app0(app0(cons0(),x),xs)) -> app0(app0(cons0(),app0(f,x)),app0(app0(map0(),f),xs)) app0(app0(filter0(),f),nil0()) -> nil0() app0(app0(filter0(),f),app0(app0(cons0(),x),xs)) -> app0(app0(app0(app0(filter20(),app0(f,x)),f),x),xs) app0(app0(app0(app0(filter20(),true0()),f),x),xs) -> app0(app0(cons0(),x),app0(app0(filter0(),f),xs)) app0(app0(app0(app0(filter20(),false0()),f),x),xs) -> app0(app0(filter0(),f),xs) The DP: app_app#_1#(:0(),app0(app0(+0(),x),y),z) -> app_app#_1#(:0(),x,z) has the edges: 0 >= 0 1 > 1 2 >= 2 The DP: app_app#_1#(:0(),app0(app0(+0(),x),y),z) -> app_app#_1#(:0(),y,z) has the edges: 0 >= 0 1 > 1 2 >= 2 The DP: app_app#_1#(:0(),app0(app0(:0(),x),y),z) -> app_app#_1#(:0(),x,app0(app0(:0(),y),z)) has the edges: 0 >= 0 1 > 1 1 > 0 The DP: app_app#_1#(:0(),app0(app0(:0(),x),y),z) -> app_app#_1#(:0(),y,z) has the edges: 0 >= 0 1 > 1 1 > 0 2 >= 2 Qed