MAYBE Problem: app(app(add(),0()),y) -> y app(app(add(),app(s(),x)),y) -> app(s(),app(app(add(),x),y)) app(app(mult(),0()),y) -> 0() app(app(mult(),app(s(),x)),y) -> app(app(add(),app(app(mult(),x),y)),y) app(app(app(rec(),f),x),0()) -> x app(app(app(rec(),f),x),app(s(),y)) -> app(app(f,app(s(),y)),app(app(app(rec(),f),x),y)) fact() -> app(app(rec(),mult()),app(s(),0())) Proof: DP Processor: DPs: app#(app(add(),app(s(),x)),y) -> app#(add(),x) app#(app(add(),app(s(),x)),y) -> app#(app(add(),x),y) app#(app(add(),app(s(),x)),y) -> app#(s(),app(app(add(),x),y)) app#(app(mult(),app(s(),x)),y) -> app#(mult(),x) app#(app(mult(),app(s(),x)),y) -> app#(app(mult(),x),y) app#(app(mult(),app(s(),x)),y) -> app#(add(),app(app(mult(),x),y)) app#(app(mult(),app(s(),x)),y) -> app#(app(add(),app(app(mult(),x),y)),y) app#(app(app(rec(),f),x),app(s(),y)) -> app#(app(app(rec(),f),x),y) app#(app(app(rec(),f),x),app(s(),y)) -> app#(f,app(s(),y)) app#(app(app(rec(),f),x),app(s(),y)) -> app#(app(f,app(s(),y)),app(app(app(rec(),f),x),y)) fact#() -> app#(s(),0()) fact#() -> app#(rec(),mult()) fact#() -> app#(app(rec(),mult()),app(s(),0())) TRS: app(app(add(),0()),y) -> y app(app(add(),app(s(),x)),y) -> app(s(),app(app(add(),x),y)) app(app(mult(),0()),y) -> 0() app(app(mult(),app(s(),x)),y) -> app(app(add(),app(app(mult(),x),y)),y) app(app(app(rec(),f),x),0()) -> x app(app(app(rec(),f),x),app(s(),y)) -> app(app(f,app(s(),y)),app(app(app(rec(),f),x),y)) fact() -> app(app(rec(),mult()),app(s(),0())) Usable Rule Processor: DPs: app#(app(add(),app(s(),x)),y) -> app#(add(),x) app#(app(add(),app(s(),x)),y) -> app#(app(add(),x),y) app#(app(add(),app(s(),x)),y) -> app#(s(),app(app(add(),x),y)) app#(app(mult(),app(s(),x)),y) -> app#(mult(),x) app#(app(mult(),app(s(),x)),y) -> app#(app(mult(),x),y) app#(app(mult(),app(s(),x)),y) -> app#(add(),app(app(mult(),x),y)) app#(app(mult(),app(s(),x)),y) -> app#(app(add(),app(app(mult(),x),y)),y) app#(app(app(rec(),f),x),app(s(),y)) -> app#(app(app(rec(),f),x),y) app#(app(app(rec(),f),x),app(s(),y)) -> app#(f,app(s(),y)) app#(app(app(rec(),f),x),app(s(),y)) -> app#(app(f,app(s(),y)),app(app(app(rec(),f),x),y)) fact#() -> app#(s(),0()) fact#() -> app#(rec(),mult()) fact#() -> app#(app(rec(),mult()),app(s(),0())) TRS: app(app(add(),0()),y) -> y app(app(add(),app(s(),x)),y) -> app(s(),app(app(add(),x),y)) app(app(mult(),0()),y) -> 0() app(app(mult(),app(s(),x)),y) -> app(app(add(),app(app(mult(),x),y)),y) app(app(app(rec(),f),x),0()) -> x app(app(app(rec(),f),x),app(s(),y)) -> app(app(f,app(s(),y)),app(app(app(rec(),f),x),y)) Open