MAYBE Problem: app(app(minus(),0()),y) -> 0() app(app(minus(),app(s(),x)),0()) -> app(s(),x) app(app(minus(),app(s(),x)),app(s(),y)) -> app(app(minus(),x),y) app(app(le(),0()),y) -> true() app(app(le(),app(s(),x)),0()) -> false() app(app(le(),app(s(),x)),app(s(),y)) -> app(app(le(),x),y) app(app(app(if(),true()),x),y) -> x app(app(app(if(),false()),x),y) -> y app(perfectp(),0()) -> false() app(perfectp(),app(s(),x)) -> app(app(app(app(f(),x),app(s(),0())),app(s(),x)),app(s(),x)) app(app(app(app(f(),0()),y),0()),u) -> true() app(app(app(app(f(),0()),y),app(s(),z)),u) -> false() app(app(app(app(f(),app(s(),x)),0()),z),u) -> app(app(app(app(f(),x),u),app(app(minus(),z),app(s(),x))),u) app(app(app(app(f(),app(s(),x)),app(s(),y)),z),u) -> app(app(app(if(),app(app(le(),x),y)),app(app(app(app(f(),app(s(),x)),app(app(minus(),y),x)),z),u)), app(app(app(app(f(),x),u),z),u)) app(app(map(),fun),nil()) -> nil() app(app(map(),fun),app(app(cons(),x),xs)) -> app(app(cons(),app(fun,x)),app(app(map(),fun),xs)) app(app(filter(),fun),nil()) -> nil() app(app(filter(),fun),app(app(cons(),x),xs)) -> app(app(app(app(filter2(),app(fun,x)),fun),x),xs) app(app(app(app(filter2(),true()),fun),x),xs) -> app(app(cons(),x),app(app(filter(),fun),xs)) app(app(app(app(filter2(),false()),fun),x),xs) -> app(app(filter(),fun),xs) Proof: DP Processor: DPs: app#(app(minus(),app(s(),x)),app(s(),y)) -> app#(minus(),x) app#(app(minus(),app(s(),x)),app(s(),y)) -> app#(app(minus(),x),y) app#(app(le(),app(s(),x)),app(s(),y)) -> app#(le(),x) app#(app(le(),app(s(),x)),app(s(),y)) -> app#(app(le(),x),y) app#(perfectp(),app(s(),x)) -> app#(s(),0()) app#(perfectp(),app(s(),x)) -> app#(f(),x) app#(perfectp(),app(s(),x)) -> app#(app(f(),x),app(s(),0())) app#(perfectp(),app(s(),x)) -> app#(app(app(f(),x),app(s(),0())),app(s(),x)) app#(perfectp(),app(s(),x)) -> app#(app(app(app(f(),x),app(s(),0())),app(s(),x)),app(s(),x)) app#(app(app(app(f(),app(s(),x)),0()),z),u) -> app#(minus(),z) app#(app(app(app(f(),app(s(),x)),0()),z),u) -> app#(app(minus(),z),app(s(),x)) app#(app(app(app(f(),app(s(),x)),0()),z),u) -> app#(f(),x) app#(app(app(app(f(),app(s(),x)),0()),z),u) -> app#(app(f(),x),u) app#(app(app(app(f(),app(s(),x)),0()),z),u) -> app#(app(app(f(),x),u),app(app(minus(),z),app(s(),x))) app#(app(app(app(f(),app(s(),x)),0()),z),u) -> app#(app(app(app(f(),x),u),app(app(minus(),z),app(s(),x))),u) app#(app(app(app(f(),app(s(),x)),app(s(),y)),z),u) -> app#(f(),x) app#(app(app(app(f(),app(s(),x)),app(s(),y)),z),u) -> app#(app(f(),x),u) app#(app(app(app(f(),app(s(),x)),app(s(),y)),z),u) -> app#(app(app(f(),x),u),z) app#(app(app(app(f(),app(s(),x)),app(s(),y)),z),u) -> app#(app(app(app(f(),x),u),z),u) app#(app(app(app(f(),app(s(),x)),app(s(),y)),z),u) -> app#(minus(),y) app#(app(app(app(f(),app(s(),x)),app(s(),y)),z),u) -> app#(app(minus(),y),x) app#(app(app(app(f(),app(s(),x)),app(s(),y)),z),u) -> app#(app(f(),app(s(),x)),app(app(minus(),y),x)) app#(app(app(app(f(),app(s(),x)),app(s(),y)),z),u) -> app#(app(app(f(),app(s(),x)),app(app(minus(),y),x)),z) app#(app(app(app(f(),app(s(),x)),app(s(),y)),z),u) -> app#(app(app(app(f(),app(s(),x)),app(app(minus(),y),x)),z),u) app#(app(app(app(f(),app(s(),x)),app(s(),y)),z),u) -> app#(le(),x) app#(app(app(app(f(),app(s(),x)),app(s(),y)),z),u) -> app#(app(le(),x),y) app#(app(app(app(f(),app(s(),x)),app(s(),y)),z),u) -> app#(if(),app(app(le(),x),y)) app#(app(app(app(f(),app(s(),x)),app(s(),y)),z),u) -> app#(app(if(),app(app(le(),x),y)),app(app(app(app(f(),app(s(),x)),app(app(minus(),y),x)),z),u)) app#(app(app(app(f(),app(s(),x)),app(s(),y)),z),u) -> app#(app(app(if(),app(app(le(),x),y)),app(app(app(app(f(),app(s(),x)),app(app(minus(),y),x)),z), u)),app(app(app(app(f(),x),u),z),u)) app#(app(map(),fun),app(app(cons(),x),xs)) -> app#(app(map(),fun),xs) app#(app(map(),fun),app(app(cons(),x),xs)) -> app#(fun,x) app#(app(map(),fun),app(app(cons(),x),xs)) -> app#(cons(),app(fun,x)) app#(app(map(),fun),app(app(cons(),x),xs)) -> app#(app(cons(),app(fun,x)),app(app(map(),fun),xs)) app#(app(filter(),fun),app(app(cons(),x),xs)) -> app#(fun,x) app#(app(filter(),fun),app(app(cons(),x),xs)) -> app#(filter2(),app(fun,x)) app#(app(filter(),fun),app(app(cons(),x),xs)) -> app#(app(filter2(),app(fun,x)),fun) app#(app(filter(),fun),app(app(cons(),x),xs)) -> app#(app(app(filter2(),app(fun,x)),fun),x) app#(app(filter(),fun),app(app(cons(),x),xs)) -> app#(app(app(app(filter2(),app(fun,x)),fun),x),xs) app#(app(app(app(filter2(),true()),fun),x),xs) -> app#(filter(),fun) app#(app(app(app(filter2(),true()),fun),x),xs) -> app#(app(filter(),fun),xs) app#(app(app(app(filter2(),true()),fun),x),xs) -> app#(cons(),x) app#(app(app(app(filter2(),true()),fun),x),xs) -> app#(app(cons(),x),app(app(filter(),fun),xs)) app#(app(app(app(filter2(),false()),fun),x),xs) -> app#(filter(),fun) app#(app(app(app(filter2(),false()),fun),x),xs) -> app#(app(filter(),fun),xs) TRS: app(app(minus(),0()),y) -> 0() app(app(minus(),app(s(),x)),0()) -> app(s(),x) app(app(minus(),app(s(),x)),app(s(),y)) -> app(app(minus(),x),y) app(app(le(),0()),y) -> true() app(app(le(),app(s(),x)),0()) -> false() app(app(le(),app(s(),x)),app(s(),y)) -> app(app(le(),x),y) app(app(app(if(),true()),x),y) -> x app(app(app(if(),false()),x),y) -> y app(perfectp(),0()) -> false() app(perfectp(),app(s(),x)) -> app(app(app(app(f(),x),app(s(),0())),app(s(),x)),app(s(),x)) app(app(app(app(f(),0()),y),0()),u) -> true() app(app(app(app(f(),0()),y),app(s(),z)),u) -> false() app(app(app(app(f(),app(s(),x)),0()),z),u) -> app(app(app(app(f(),x),u),app(app(minus(),z),app(s(),x))),u) app(app(app(app(f(),app(s(),x)),app(s(),y)),z),u) -> app(app(app(if(),app(app(le(),x),y)),app(app(app(app(f(),app(s(),x)),app(app(minus(),y),x)),z),u)), app(app(app(app(f(),x),u),z),u)) app(app(map(),fun),nil()) -> nil() app(app(map(),fun),app(app(cons(),x),xs)) -> app(app(cons(),app(fun,x)),app(app(map(),fun),xs)) app(app(filter(),fun),nil()) -> nil() app(app(filter(),fun),app(app(cons(),x),xs)) -> app(app(app(app(filter2(),app(fun,x)),fun),x),xs) app(app(app(app(filter2(),true()),fun),x),xs) -> app(app(cons(),x),app(app(filter(),fun),xs)) app(app(app(app(filter2(),false()),fun),x),xs) -> app(app(filter(),fun),xs) Open