MAYBE Problem: app(app(app(if(),true()),xs),ys) -> xs app(app(app(if(),false()),xs),ys) -> ys app(app(sub(),x),0()) -> x app(app(sub(),app(s(),x)),app(s(),y)) -> app(app(sub(),x),y) app(app(gtr(),0()),y) -> false() app(app(gtr(),app(s(),x)),0()) -> true() app(app(gtr(),app(s(),x)),app(s(),y)) -> app(app(gtr(),x),y) app(app(d(),x),0()) -> true() app(app(d(),app(s(),x)),app(s(),y)) -> app(app(app(if(),app(app(gtr(),x),y)),false()),app(app(d(),app(s(),x)),app(app(sub(),y),x))) app(len(),nil()) -> 0() app(len(),app(app(cons(),x),xs)) -> app(s(),app(len(),xs)) app(app(filter(),p),nil()) -> nil() app(app(filter(),p),app(app(cons(),x),xs)) -> app(app(app(if(),app(p,x)),app(app(cons(),x),app(app(filter(),p),xs))),app(app(filter(),p),xs)) Proof: DP Processor: DPs: app#(app(sub(),app(s(),x)),app(s(),y)) -> app#(sub(),x) app#(app(sub(),app(s(),x)),app(s(),y)) -> app#(app(sub(),x),y) app#(app(gtr(),app(s(),x)),app(s(),y)) -> app#(gtr(),x) app#(app(gtr(),app(s(),x)),app(s(),y)) -> app#(app(gtr(),x),y) app#(app(d(),app(s(),x)),app(s(),y)) -> app#(sub(),y) app#(app(d(),app(s(),x)),app(s(),y)) -> app#(app(sub(),y),x) app#(app(d(),app(s(),x)),app(s(),y)) -> app#(app(d(),app(s(),x)),app(app(sub(),y),x)) app#(app(d(),app(s(),x)),app(s(),y)) -> app#(gtr(),x) app#(app(d(),app(s(),x)),app(s(),y)) -> app#(app(gtr(),x),y) app#(app(d(),app(s(),x)),app(s(),y)) -> app#(if(),app(app(gtr(),x),y)) app#(app(d(),app(s(),x)),app(s(),y)) -> app#(app(if(),app(app(gtr(),x),y)),false()) app#(app(d(),app(s(),x)),app(s(),y)) -> app#(app(app(if(),app(app(gtr(),x),y)),false()),app(app(d(),app(s(),x)),app(app(sub(),y),x))) app#(len(),app(app(cons(),x),xs)) -> app#(len(),xs) app#(len(),app(app(cons(),x),xs)) -> app#(s(),app(len(),xs)) app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(app(filter(),p),xs) app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(app(cons(),x),app(app(filter(),p),xs)) app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(p,x) app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(if(),app(p,x)) app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(app(if(),app(p,x)),app(app(cons(),x),app(app(filter(),p),xs))) app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(app(app(if(),app(p,x)),app(app(cons(),x),app(app(filter(),p),xs))),app(app(filter(),p),xs)) TRS: app(app(app(if(),true()),xs),ys) -> xs app(app(app(if(),false()),xs),ys) -> ys app(app(sub(),x),0()) -> x app(app(sub(),app(s(),x)),app(s(),y)) -> app(app(sub(),x),y) app(app(gtr(),0()),y) -> false() app(app(gtr(),app(s(),x)),0()) -> true() app(app(gtr(),app(s(),x)),app(s(),y)) -> app(app(gtr(),x),y) app(app(d(),x),0()) -> true() app(app(d(),app(s(),x)),app(s(),y)) -> app(app(app(if(),app(app(gtr(),x),y)),false()),app(app(d(),app(s(),x)),app(app(sub(),y),x))) app(len(),nil()) -> 0() app(len(),app(app(cons(),x),xs)) -> app(s(),app(len(),xs)) app(app(filter(),p),nil()) -> nil() app(app(filter(),p),app(app(cons(),x),xs)) -> app(app(app(if(),app(p,x)),app(app(cons(),x),app(app(filter(),p),xs))),app(app(filter(),p),xs)) EDG Processor: DPs: app#(app(sub(),app(s(),x)),app(s(),y)) -> app#(sub(),x) app#(app(sub(),app(s(),x)),app(s(),y)) -> app#(app(sub(),x),y) app#(app(gtr(),app(s(),x)),app(s(),y)) -> app#(gtr(),x) app#(app(gtr(),app(s(),x)),app(s(),y)) -> app#(app(gtr(),x),y) app#(app(d(),app(s(),x)),app(s(),y)) -> app#(sub(),y) app#(app(d(),app(s(),x)),app(s(),y)) -> app#(app(sub(),y),x) app#(app(d(),app(s(),x)),app(s(),y)) -> app#(app(d(),app(s(),x)),app(app(sub(),y),x)) app#(app(d(),app(s(),x)),app(s(),y)) -> app#(gtr(),x) app#(app(d(),app(s(),x)),app(s(),y)) -> app#(app(gtr(),x),y) app#(app(d(),app(s(),x)),app(s(),y)) -> app#(if(),app(app(gtr(),x),y)) app#(app(d(),app(s(),x)),app(s(),y)) -> app#(app(if(),app(app(gtr(),x),y)),false()) app#(app(d(),app(s(),x)),app(s(),y)) -> app#(app(app(if(),app(app(gtr(),x),y)),false()),app(app(d(),app(s(),x)),app(app(sub(),y),x))) app#(len(),app(app(cons(),x),xs)) -> app#(len(),xs) app#(len(),app(app(cons(),x),xs)) -> app#(s(),app(len(),xs)) app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(app(filter(),p),xs) app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(app(cons(),x),app(app(filter(),p),xs)) app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(p,x) app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(if(),app(p,x)) app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(app(if(),app(p,x)),app(app(cons(),x),app(app(filter(),p),xs))) app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(app(app(if(),app(p,x)),app(app(cons(),x),app(app(filter(),p),xs))),app(app(filter(),p),xs)) TRS: app(app(app(if(),true()),xs),ys) -> xs app(app(app(if(),false()),xs),ys) -> ys app(app(sub(),x),0()) -> x app(app(sub(),app(s(),x)),app(s(),y)) -> app(app(sub(),x),y) app(app(gtr(),0()),y) -> false() app(app(gtr(),app(s(),x)),0()) -> true() app(app(gtr(),app(s(),x)),app(s(),y)) -> app(app(gtr(),x),y) app(app(d(),x),0()) -> true() app(app(d(),app(s(),x)),app(s(),y)) -> app(app(app(if(),app(app(gtr(),x),y)),false()),app(app(d(),app(s(),x)),app(app(sub(),y),x))) app(len(),nil()) -> 0() app(len(),app(app(cons(),x),xs)) -> app(s(),app(len(),xs)) app(app(filter(),p),nil()) -> nil() app(app(filter(),p),app(app(cons(),x),xs)) -> app(app(app(if(),app(p,x)),app(app(cons(),x),app(app(filter(),p),xs))),app(app(filter(),p),xs)) graph: app#(len(),app(app(cons(),x),xs)) -> app#(len(),xs) -> app#(len(),app(app(cons(),x),xs)) -> app#(len(),xs) app#(len(),app(app(cons(),x),xs)) -> app#(len(),xs) -> app#(len(),app(app(cons(),x),xs)) -> app#(s(),app(len(),xs)) app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(app(filter(),p),xs) -> app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(app(filter(),p),xs) app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(app(filter(),p),xs) -> app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(app(cons(),x),app(app(filter(),p),xs)) app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(app(filter(),p),xs) -> app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(p,x) app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(app(filter(),p),xs) -> app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(if(),app(p,x)) app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(app(filter(),p),xs) -> app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(app(if(),app(p,x)),app(app(cons(),x),app(app(filter(),p),xs))) app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(app(filter(),p),xs) -> app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(app(app(if(),app(p,x)),app(app(cons(),x),app(app(filter(),p),xs))),app(app(filter(),p),xs)) app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(p,x) -> app#(app(sub(),app(s(),x)),app(s(),y)) -> app#(sub(),x) app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(p,x) -> app#(app(sub(),app(s(),x)),app(s(),y)) -> app#(app(sub(),x),y) app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(p,x) -> app#(app(gtr(),app(s(),x)),app(s(),y)) -> app#(gtr(),x) app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(p,x) -> app#(app(gtr(),app(s(),x)),app(s(),y)) -> app#(app(gtr(),x),y) app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(p,x) -> app#(app(d(),app(s(),x)),app(s(),y)) -> app#(sub(),y) app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(p,x) -> app#(app(d(),app(s(),x)),app(s(),y)) -> app#(app(sub(),y),x) app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(p,x) -> app#(app(d(),app(s(),x)),app(s(),y)) -> app#(app(d(),app(s(),x)),app(app(sub(),y),x)) app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(p,x) -> app#(app(d(),app(s(),x)),app(s(),y)) -> app#(gtr(),x) app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(p,x) -> app#(app(d(),app(s(),x)),app(s(),y)) -> app#(app(gtr(),x),y) app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(p,x) -> app#(app(d(),app(s(),x)),app(s(),y)) -> app#(if(),app(app(gtr(),x),y)) app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(p,x) -> app#(app(d(),app(s(),x)),app(s(),y)) -> app#(app(if(),app(app(gtr(),x),y)),false()) app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(p,x) -> app#(app(d(),app(s(),x)),app(s(),y)) -> app#(app(app(if(),app(app(gtr(),x),y)),false()),app(app(d(),app(s(),x)),app(app(sub(),y),x))) app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(p,x) -> app#(len(),app(app(cons(),x),xs)) -> app#(len(),xs) app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(p,x) -> app#(len(),app(app(cons(),x),xs)) -> app#(s(),app(len(),xs)) app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(p,x) -> app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(app(filter(),p),xs) app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(p,x) -> app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(app(cons(),x),app(app(filter(),p),xs)) app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(p,x) -> app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(p,x) app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(p,x) -> app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(if(),app(p,x)) app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(p,x) -> app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(app(if(),app(p,x)),app(app(cons(),x),app(app(filter(),p),xs))) app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(p,x) -> app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(app(app(if(),app(p,x)),app(app(cons(),x),app(app(filter(),p),xs))),app(app(filter(),p),xs)) app#(app(d(),app(s(),x)),app(s(),y)) -> app#(app(d(),app(s(),x)),app(app(sub(),y),x)) -> app#(app(d(),app(s(),x)),app(s(),y)) -> app#(sub(),y) app#(app(d(),app(s(),x)),app(s(),y)) -> app#(app(d(),app(s(),x)),app(app(sub(),y),x)) -> app#(app(d(),app(s(),x)),app(s(),y)) -> app#(app(sub(),y),x) app#(app(d(),app(s(),x)),app(s(),y)) -> app#(app(d(),app(s(),x)),app(app(sub(),y),x)) -> app#(app(d(),app(s(),x)),app(s(),y)) -> app#(app(d(),app(s(),x)),app(app(sub(),y),x)) app#(app(d(),app(s(),x)),app(s(),y)) -> app#(app(d(),app(s(),x)),app(app(sub(),y),x)) -> app#(app(d(),app(s(),x)),app(s(),y)) -> app#(gtr(),x) app#(app(d(),app(s(),x)),app(s(),y)) -> app#(app(d(),app(s(),x)),app(app(sub(),y),x)) -> app#(app(d(),app(s(),x)),app(s(),y)) -> app#(app(gtr(),x),y) app#(app(d(),app(s(),x)),app(s(),y)) -> app#(app(d(),app(s(),x)),app(app(sub(),y),x)) -> app#(app(d(),app(s(),x)),app(s(),y)) -> app#(if(),app(app(gtr(),x),y)) app#(app(d(),app(s(),x)),app(s(),y)) -> app#(app(d(),app(s(),x)),app(app(sub(),y),x)) -> app#(app(d(),app(s(),x)),app(s(),y)) -> app#(app(if(),app(app(gtr(),x),y)),false()) app#(app(d(),app(s(),x)),app(s(),y)) -> app#(app(d(),app(s(),x)),app(app(sub(),y),x)) -> app#(app(d(),app(s(),x)),app(s(),y)) -> app#(app(app(if(),app(app(gtr(),x),y)),false()),app(app(d(),app(s(),x)),app(app(sub(),y),x))) app#(app(d(),app(s(),x)),app(s(),y)) -> app#(app(gtr(),x),y) -> app#(app(gtr(),app(s(),x)),app(s(),y)) -> app#(gtr(),x) app#(app(d(),app(s(),x)),app(s(),y)) -> app#(app(gtr(),x),y) -> app#(app(gtr(),app(s(),x)),app(s(),y)) -> app#(app(gtr(),x),y) app#(app(d(),app(s(),x)),app(s(),y)) -> app#(app(sub(),y),x) -> app#(app(sub(),app(s(),x)),app(s(),y)) -> app#(sub(),x) app#(app(d(),app(s(),x)),app(s(),y)) -> app#(app(sub(),y),x) -> app#(app(sub(),app(s(),x)),app(s(),y)) -> app#(app(sub(),x),y) app#(app(gtr(),app(s(),x)),app(s(),y)) -> app#(app(gtr(),x),y) -> app#(app(gtr(),app(s(),x)),app(s(),y)) -> app#(gtr(),x) app#(app(gtr(),app(s(),x)),app(s(),y)) -> app#(app(gtr(),x),y) -> app#(app(gtr(),app(s(),x)),app(s(),y)) -> app#(app(gtr(),x),y) app#(app(sub(),app(s(),x)),app(s(),y)) -> app#(app(sub(),x),y) -> app#(app(sub(),app(s(),x)),app(s(),y)) -> app#(sub(),x) app#(app(sub(),app(s(),x)),app(s(),y)) -> app#(app(sub(),x),y) -> app#(app(sub(),app(s(),x)),app(s(),y)) -> app#(app(sub(),x),y) SCC Processor: #sccs: 5 #rules: 6 #arcs: 44/400 DPs: app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(app(filter(),p),xs) app#(app(filter(),p),app(app(cons(),x),xs)) -> app#(p,x) TRS: app(app(app(if(),true()),xs),ys) -> xs app(app(app(if(),false()),xs),ys) -> ys app(app(sub(),x),0()) -> x app(app(sub(),app(s(),x)),app(s(),y)) -> app(app(sub(),x),y) app(app(gtr(),0()),y) -> false() app(app(gtr(),app(s(),x)),0()) -> true() app(app(gtr(),app(s(),x)),app(s(),y)) -> app(app(gtr(),x),y) app(app(d(),x),0()) -> true() app(app(d(),app(s(),x)),app(s(),y)) -> app(app(app(if(),app(app(gtr(),x),y)),false()),app(app(d(),app(s(),x)),app(app(sub(),y),x))) app(len(),nil()) -> 0() app(len(),app(app(cons(),x),xs)) -> app(s(),app(len(),xs)) app(app(filter(),p),nil()) -> nil() app(app(filter(),p),app(app(cons(),x),xs)) -> app(app(app(if(),app(p,x)),app(app(cons(),x),app(app(filter(),p),xs))),app(app(filter(),p),xs)) Subterm Criterion Processor: simple projection: pi(app#) = 1 problem: DPs: TRS: app(app(app(if(),true()),xs),ys) -> xs app(app(app(if(),false()),xs),ys) -> ys app(app(sub(),x),0()) -> x app(app(sub(),app(s(),x)),app(s(),y)) -> app(app(sub(),x),y) app(app(gtr(),0()),y) -> false() app(app(gtr(),app(s(),x)),0()) -> true() app(app(gtr(),app(s(),x)),app(s(),y)) -> app(app(gtr(),x),y) app(app(d(),x),0()) -> true() app(app(d(),app(s(),x)),app(s(),y)) -> app(app(app(if(),app(app(gtr(),x),y)),false()),app(app(d(),app(s(),x)),app(app(sub(),y),x))) app(len(),nil()) -> 0() app(len(),app(app(cons(),x),xs)) -> app(s(),app(len(),xs)) app(app(filter(),p),nil()) -> nil() app(app(filter(),p),app(app(cons(),x),xs)) -> app(app(app(if(),app(p,x)),app(app(cons(),x),app(app(filter(),p),xs))), app(app(filter(),p),xs)) Qed DPs: app#(app(d(),app(s(),x)),app(s(),y)) -> app#(app(d(),app(s(),x)),app(app(sub(),y),x)) TRS: app(app(app(if(),true()),xs),ys) -> xs app(app(app(if(),false()),xs),ys) -> ys app(app(sub(),x),0()) -> x app(app(sub(),app(s(),x)),app(s(),y)) -> app(app(sub(),x),y) app(app(gtr(),0()),y) -> false() app(app(gtr(),app(s(),x)),0()) -> true() app(app(gtr(),app(s(),x)),app(s(),y)) -> app(app(gtr(),x),y) app(app(d(),x),0()) -> true() app(app(d(),app(s(),x)),app(s(),y)) -> app(app(app(if(),app(app(gtr(),x),y)),false()),app(app(d(),app(s(),x)),app(app(sub(),y),x))) app(len(),nil()) -> 0() app(len(),app(app(cons(),x),xs)) -> app(s(),app(len(),xs)) app(app(filter(),p),nil()) -> nil() app(app(filter(),p),app(app(cons(),x),xs)) -> app(app(app(if(),app(p,x)),app(app(cons(),x),app(app(filter(),p),xs))),app(app(filter(),p),xs)) Open DPs: app#(app(sub(),app(s(),x)),app(s(),y)) -> app#(app(sub(),x),y) TRS: app(app(app(if(),true()),xs),ys) -> xs app(app(app(if(),false()),xs),ys) -> ys app(app(sub(),x),0()) -> x app(app(sub(),app(s(),x)),app(s(),y)) -> app(app(sub(),x),y) app(app(gtr(),0()),y) -> false() app(app(gtr(),app(s(),x)),0()) -> true() app(app(gtr(),app(s(),x)),app(s(),y)) -> app(app(gtr(),x),y) app(app(d(),x),0()) -> true() app(app(d(),app(s(),x)),app(s(),y)) -> app(app(app(if(),app(app(gtr(),x),y)),false()),app(app(d(),app(s(),x)),app(app(sub(),y),x))) app(len(),nil()) -> 0() app(len(),app(app(cons(),x),xs)) -> app(s(),app(len(),xs)) app(app(filter(),p),nil()) -> nil() app(app(filter(),p),app(app(cons(),x),xs)) -> app(app(app(if(),app(p,x)),app(app(cons(),x),app(app(filter(),p),xs))),app(app(filter(),p),xs)) Subterm Criterion Processor: simple projection: pi(app#) = 1 problem: DPs: TRS: app(app(app(if(),true()),xs),ys) -> xs app(app(app(if(),false()),xs),ys) -> ys app(app(sub(),x),0()) -> x app(app(sub(),app(s(),x)),app(s(),y)) -> app(app(sub(),x),y) app(app(gtr(),0()),y) -> false() app(app(gtr(),app(s(),x)),0()) -> true() app(app(gtr(),app(s(),x)),app(s(),y)) -> app(app(gtr(),x),y) app(app(d(),x),0()) -> true() app(app(d(),app(s(),x)),app(s(),y)) -> app(app(app(if(),app(app(gtr(),x),y)),false()),app(app(d(),app(s(),x)),app(app(sub(),y),x))) app(len(),nil()) -> 0() app(len(),app(app(cons(),x),xs)) -> app(s(),app(len(),xs)) app(app(filter(),p),nil()) -> nil() app(app(filter(),p),app(app(cons(),x),xs)) -> app(app(app(if(),app(p,x)),app(app(cons(),x),app(app(filter(),p),xs))), app(app(filter(),p),xs)) Qed DPs: app#(app(gtr(),app(s(),x)),app(s(),y)) -> app#(app(gtr(),x),y) TRS: app(app(app(if(),true()),xs),ys) -> xs app(app(app(if(),false()),xs),ys) -> ys app(app(sub(),x),0()) -> x app(app(sub(),app(s(),x)),app(s(),y)) -> app(app(sub(),x),y) app(app(gtr(),0()),y) -> false() app(app(gtr(),app(s(),x)),0()) -> true() app(app(gtr(),app(s(),x)),app(s(),y)) -> app(app(gtr(),x),y) app(app(d(),x),0()) -> true() app(app(d(),app(s(),x)),app(s(),y)) -> app(app(app(if(),app(app(gtr(),x),y)),false()),app(app(d(),app(s(),x)),app(app(sub(),y),x))) app(len(),nil()) -> 0() app(len(),app(app(cons(),x),xs)) -> app(s(),app(len(),xs)) app(app(filter(),p),nil()) -> nil() app(app(filter(),p),app(app(cons(),x),xs)) -> app(app(app(if(),app(p,x)),app(app(cons(),x),app(app(filter(),p),xs))),app(app(filter(),p),xs)) Subterm Criterion Processor: simple projection: pi(app#) = 1 problem: DPs: TRS: app(app(app(if(),true()),xs),ys) -> xs app(app(app(if(),false()),xs),ys) -> ys app(app(sub(),x),0()) -> x app(app(sub(),app(s(),x)),app(s(),y)) -> app(app(sub(),x),y) app(app(gtr(),0()),y) -> false() app(app(gtr(),app(s(),x)),0()) -> true() app(app(gtr(),app(s(),x)),app(s(),y)) -> app(app(gtr(),x),y) app(app(d(),x),0()) -> true() app(app(d(),app(s(),x)),app(s(),y)) -> app(app(app(if(),app(app(gtr(),x),y)),false()),app(app(d(),app(s(),x)),app(app(sub(),y),x))) app(len(),nil()) -> 0() app(len(),app(app(cons(),x),xs)) -> app(s(),app(len(),xs)) app(app(filter(),p),nil()) -> nil() app(app(filter(),p),app(app(cons(),x),xs)) -> app(app(app(if(),app(p,x)),app(app(cons(),x),app(app(filter(),p),xs))), app(app(filter(),p),xs)) Qed DPs: app#(len(),app(app(cons(),x),xs)) -> app#(len(),xs) TRS: app(app(app(if(),true()),xs),ys) -> xs app(app(app(if(),false()),xs),ys) -> ys app(app(sub(),x),0()) -> x app(app(sub(),app(s(),x)),app(s(),y)) -> app(app(sub(),x),y) app(app(gtr(),0()),y) -> false() app(app(gtr(),app(s(),x)),0()) -> true() app(app(gtr(),app(s(),x)),app(s(),y)) -> app(app(gtr(),x),y) app(app(d(),x),0()) -> true() app(app(d(),app(s(),x)),app(s(),y)) -> app(app(app(if(),app(app(gtr(),x),y)),false()),app(app(d(),app(s(),x)),app(app(sub(),y),x))) app(len(),nil()) -> 0() app(len(),app(app(cons(),x),xs)) -> app(s(),app(len(),xs)) app(app(filter(),p),nil()) -> nil() app(app(filter(),p),app(app(cons(),x),xs)) -> app(app(app(if(),app(p,x)),app(app(cons(),x),app(app(filter(),p),xs))),app(app(filter(),p),xs)) Subterm Criterion Processor: simple projection: pi(app#) = 1 problem: DPs: TRS: app(app(app(if(),true()),xs),ys) -> xs app(app(app(if(),false()),xs),ys) -> ys app(app(sub(),x),0()) -> x app(app(sub(),app(s(),x)),app(s(),y)) -> app(app(sub(),x),y) app(app(gtr(),0()),y) -> false() app(app(gtr(),app(s(),x)),0()) -> true() app(app(gtr(),app(s(),x)),app(s(),y)) -> app(app(gtr(),x),y) app(app(d(),x),0()) -> true() app(app(d(),app(s(),x)),app(s(),y)) -> app(app(app(if(),app(app(gtr(),x),y)),false()),app(app(d(),app(s(),x)),app(app(sub(),y),x))) app(len(),nil()) -> 0() app(len(),app(app(cons(),x),xs)) -> app(s(),app(len(),xs)) app(app(filter(),p),nil()) -> nil() app(app(filter(),p),app(app(cons(),x),xs)) -> app(app(app(if(),app(p,x)),app(app(cons(),x),app(app(filter(),p),xs))), app(app(filter(),p),xs)) Qed