YES Problem: app(app(and(),true()),true()) -> true() app(app(and(),x),false()) -> false() app(app(and(),false()),y) -> false() app(app(or(),true()),y) -> true() app(app(or(),x),true()) -> true() app(app(or(),false()),false()) -> false() app(app(forall(),p),nil()) -> true() app(app(forall(),p),app(app(cons(),x),xs)) -> app(app(and(),app(p,x)),app(app(forall(),p),xs)) app(app(forsome(),p),nil()) -> false() app(app(forsome(),p),app(app(cons(),x),xs)) -> app(app(or(),app(p,x)),app(app(forsome(),p),xs)) Proof: Uncurry Processor: and2(true(),true()) -> true() and2(x,false()) -> false() and2(false(),y) -> false() or2(true(),y) -> true() or2(x,true()) -> true() or2(false(),false()) -> false() forall2(p,nil()) -> true() forall2(p,cons2(x,xs)) -> and2(app(p,x),forall2(p,xs)) forsome2(p,nil()) -> false() forsome2(p,cons2(x,xs)) -> or2(app(p,x),forsome2(p,xs)) app(and1(x4),x5) -> and2(x4,x5) app(and(),x5) -> and1(x5) app(or1(x4),x5) -> or2(x4,x5) app(or(),x5) -> or1(x5) app(forall1(x4),x5) -> forall2(x4,x5) app(forall(),x5) -> forall1(x5) app(cons1(x4),x5) -> cons2(x4,x5) app(cons(),x5) -> cons1(x5) app(forsome1(x4),x5) -> forsome2(x4,x5) app(forsome(),x5) -> forsome1(x5) DP Processor: DPs: forall{2,#}(p,cons2(x,xs)) -> forall{2,#}(p,xs) forall{2,#}(p,cons2(x,xs)) -> app#(p,x) forall{2,#}(p,cons2(x,xs)) -> and{2,#}(app(p,x),forall2(p,xs)) forsome{2,#}(p,cons2(x,xs)) -> forsome{2,#}(p,xs) forsome{2,#}(p,cons2(x,xs)) -> app#(p,x) forsome{2,#}(p,cons2(x,xs)) -> or{2,#}(app(p,x),forsome2(p,xs)) app#(and1(x4),x5) -> and{2,#}(x4,x5) app#(or1(x4),x5) -> or{2,#}(x4,x5) app#(forall1(x4),x5) -> forall{2,#}(x4,x5) app#(forsome1(x4),x5) -> forsome{2,#}(x4,x5) TRS: and2(true(),true()) -> true() and2(x,false()) -> false() and2(false(),y) -> false() or2(true(),y) -> true() or2(x,true()) -> true() or2(false(),false()) -> false() forall2(p,nil()) -> true() forall2(p,cons2(x,xs)) -> and2(app(p,x),forall2(p,xs)) forsome2(p,nil()) -> false() forsome2(p,cons2(x,xs)) -> or2(app(p,x),forsome2(p,xs)) app(and1(x4),x5) -> and2(x4,x5) app(and(),x5) -> and1(x5) app(or1(x4),x5) -> or2(x4,x5) app(or(),x5) -> or1(x5) app(forall1(x4),x5) -> forall2(x4,x5) app(forall(),x5) -> forall1(x5) app(cons1(x4),x5) -> cons2(x4,x5) app(cons(),x5) -> cons1(x5) app(forsome1(x4),x5) -> forsome2(x4,x5) app(forsome(),x5) -> forsome1(x5) TDG Processor: DPs: forall{2,#}(p,cons2(x,xs)) -> forall{2,#}(p,xs) forall{2,#}(p,cons2(x,xs)) -> app#(p,x) forall{2,#}(p,cons2(x,xs)) -> and{2,#}(app(p,x),forall2(p,xs)) forsome{2,#}(p,cons2(x,xs)) -> forsome{2,#}(p,xs) forsome{2,#}(p,cons2(x,xs)) -> app#(p,x) forsome{2,#}(p,cons2(x,xs)) -> or{2,#}(app(p,x),forsome2(p,xs)) app#(and1(x4),x5) -> and{2,#}(x4,x5) app#(or1(x4),x5) -> or{2,#}(x4,x5) app#(forall1(x4),x5) -> forall{2,#}(x4,x5) app#(forsome1(x4),x5) -> forsome{2,#}(x4,x5) TRS: and2(true(),true()) -> true() and2(x,false()) -> false() and2(false(),y) -> false() or2(true(),y) -> true() or2(x,true()) -> true() or2(false(),false()) -> false() forall2(p,nil()) -> true() forall2(p,cons2(x,xs)) -> and2(app(p,x),forall2(p,xs)) forsome2(p,nil()) -> false() forsome2(p,cons2(x,xs)) -> or2(app(p,x),forsome2(p,xs)) app(and1(x4),x5) -> and2(x4,x5) app(and(),x5) -> and1(x5) app(or1(x4),x5) -> or2(x4,x5) app(or(),x5) -> or1(x5) app(forall1(x4),x5) -> forall2(x4,x5) app(forall(),x5) -> forall1(x5) app(cons1(x4),x5) -> cons2(x4,x5) app(cons(),x5) -> cons1(x5) app(forsome1(x4),x5) -> forsome2(x4,x5) app(forsome(),x5) -> forsome1(x5) graph: forsome{2,#}(p,cons2(x,xs)) -> forsome{2,#}(p,xs) -> forsome{2,#}(p,cons2(x,xs)) -> or{2,#}(app(p,x),forsome2(p,xs)) forsome{2,#}(p,cons2(x,xs)) -> forsome{2,#}(p,xs) -> forsome{2,#}(p,cons2(x,xs)) -> app#(p,x) forsome{2,#}(p,cons2(x,xs)) -> forsome{2,#}(p,xs) -> forsome{2,#}(p,cons2(x,xs)) -> forsome{2,#}(p,xs) forsome{2,#}(p,cons2(x,xs)) -> app#(p,x) -> app#(forsome1(x4),x5) -> forsome{2,#}(x4,x5) forsome{2,#}(p,cons2(x,xs)) -> app#(p,x) -> app#(forall1(x4),x5) -> forall{2,#}(x4,x5) forsome{2,#}(p,cons2(x,xs)) -> app#(p,x) -> app#(or1(x4),x5) -> or{2,#}(x4,x5) forsome{2,#}(p,cons2(x,xs)) -> app#(p,x) -> app#(and1(x4),x5) -> and{2,#}(x4,x5) app#(forsome1(x4),x5) -> forsome{2,#}(x4,x5) -> forsome{2,#}(p,cons2(x,xs)) -> or{2,#}(app(p,x),forsome2(p,xs)) app#(forsome1(x4),x5) -> forsome{2,#}(x4,x5) -> forsome{2,#}(p,cons2(x,xs)) -> app#(p,x) app#(forsome1(x4),x5) -> forsome{2,#}(x4,x5) -> forsome{2,#}(p,cons2(x,xs)) -> forsome{2,#}(p,xs) app#(forall1(x4),x5) -> forall{2,#}(x4,x5) -> forall{2,#}(p,cons2(x,xs)) -> and{2,#}(app(p,x),forall2(p,xs)) app#(forall1(x4),x5) -> forall{2,#}(x4,x5) -> forall{2,#}(p,cons2(x,xs)) -> app#(p,x) app#(forall1(x4),x5) -> forall{2,#}(x4,x5) -> forall{2,#}(p,cons2(x,xs)) -> forall{2,#}(p,xs) forall{2,#}(p,cons2(x,xs)) -> app#(p,x) -> app#(forsome1(x4),x5) -> forsome{2,#}(x4,x5) forall{2,#}(p,cons2(x,xs)) -> app#(p,x) -> app#(forall1(x4),x5) -> forall{2,#}(x4,x5) forall{2,#}(p,cons2(x,xs)) -> app#(p,x) -> app#(or1(x4),x5) -> or{2,#}(x4,x5) forall{2,#}(p,cons2(x,xs)) -> app#(p,x) -> app#(and1(x4),x5) -> and{2,#}(x4,x5) forall{2,#}(p,cons2(x,xs)) -> forall{2,#}(p,xs) -> forall{2,#}(p,cons2(x,xs)) -> and{2,#}(app(p,x),forall2(p,xs)) forall{2,#}(p,cons2(x,xs)) -> forall{2,#}(p,xs) -> forall{2,#}(p,cons2(x,xs)) -> app#(p,x) forall{2,#}(p,cons2(x,xs)) -> forall{2,#}(p,xs) -> forall{2,#}(p,cons2(x,xs)) -> forall{2,#}(p,xs) SCC Processor: #sccs: 1 #rules: 6 #arcs: 20/100 DPs: forsome{2,#}(p,cons2(x,xs)) -> forsome{2,#}(p,xs) forsome{2,#}(p,cons2(x,xs)) -> app#(p,x) app#(forall1(x4),x5) -> forall{2,#}(x4,x5) forall{2,#}(p,cons2(x,xs)) -> forall{2,#}(p,xs) forall{2,#}(p,cons2(x,xs)) -> app#(p,x) app#(forsome1(x4),x5) -> forsome{2,#}(x4,x5) TRS: and2(true(),true()) -> true() and2(x,false()) -> false() and2(false(),y) -> false() or2(true(),y) -> true() or2(x,true()) -> true() or2(false(),false()) -> false() forall2(p,nil()) -> true() forall2(p,cons2(x,xs)) -> and2(app(p,x),forall2(p,xs)) forsome2(p,nil()) -> false() forsome2(p,cons2(x,xs)) -> or2(app(p,x),forsome2(p,xs)) app(and1(x4),x5) -> and2(x4,x5) app(and(),x5) -> and1(x5) app(or1(x4),x5) -> or2(x4,x5) app(or(),x5) -> or1(x5) app(forall1(x4),x5) -> forall2(x4,x5) app(forall(),x5) -> forall1(x5) app(cons1(x4),x5) -> cons2(x4,x5) app(cons(),x5) -> cons1(x5) app(forsome1(x4),x5) -> forsome2(x4,x5) app(forsome(),x5) -> forsome1(x5) Subterm Criterion Processor: simple projection: pi(forall{2,#}) = 1 pi(app#) = 1 pi(forsome{2,#}) = 1 problem: DPs: app#(forall1(x4),x5) -> forall{2,#}(x4,x5) app#(forsome1(x4),x5) -> forsome{2,#}(x4,x5) TRS: and2(true(),true()) -> true() and2(x,false()) -> false() and2(false(),y) -> false() or2(true(),y) -> true() or2(x,true()) -> true() or2(false(),false()) -> false() forall2(p,nil()) -> true() forall2(p,cons2(x,xs)) -> and2(app(p,x),forall2(p,xs)) forsome2(p,nil()) -> false() forsome2(p,cons2(x,xs)) -> or2(app(p,x),forsome2(p,xs)) app(and1(x4),x5) -> and2(x4,x5) app(and(),x5) -> and1(x5) app(or1(x4),x5) -> or2(x4,x5) app(or(),x5) -> or1(x5) app(forall1(x4),x5) -> forall2(x4,x5) app(forall(),x5) -> forall1(x5) app(cons1(x4),x5) -> cons2(x4,x5) app(cons(),x5) -> cons1(x5) app(forsome1(x4),x5) -> forsome2(x4,x5) app(forsome(),x5) -> forsome1(x5) SCC Processor: #sccs: 0 #rules: 0 #arcs: 12/4