MAYBE Problem: app(app(and(),true()),true()) -> true() app(app(and(),true()),false()) -> false() app(app(and(),false()),true()) -> false() app(app(and(),false()),false()) -> false() app(app(or(),true()),true()) -> true() app(app(or(),true()),false()) -> true() app(app(or(),false()),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: DP Processor: DPs: app#(app(forall(),p),app(app(cons(),x),xs)) -> app#(app(forall(),p),xs) app#(app(forall(),p),app(app(cons(),x),xs)) -> app#(p,x) app#(app(forall(),p),app(app(cons(),x),xs)) -> app#(and(),app(p,x)) app#(app(forall(),p),app(app(cons(),x),xs)) -> app#(app(and(),app(p,x)),app(app(forall(),p),xs)) app#(app(forsome(),p),app(app(cons(),x),xs)) -> app#(app(forsome(),p),xs) app#(app(forsome(),p),app(app(cons(),x),xs)) -> app#(p,x) app#(app(forsome(),p),app(app(cons(),x),xs)) -> app#(or(),app(p,x)) app#(app(forsome(),p),app(app(cons(),x),xs)) -> app#(app(or(),app(p,x)),app(app(forsome(),p),xs)) TRS: app(app(and(),true()),true()) -> true() app(app(and(),true()),false()) -> false() app(app(and(),false()),true()) -> false() app(app(and(),false()),false()) -> false() app(app(or(),true()),true()) -> true() app(app(or(),true()),false()) -> true() app(app(or(),false()),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)) Open