MAYBE Problem: ge(x,0()) -> true() ge(0(),s(y)) -> false() ge(s(x),s(y)) -> ge(x,y) minus(x,0()) -> x minus(0(),y) -> 0() minus(s(x),s(y)) -> minus(x,y) id_inc(x) -> x id_inc(x) -> s(x) quot(x,y) -> div(x,y,0()) div(x,y,z) -> if(ge(y,s(0())),ge(x,y),x,y,z) if(false(),b,x,y,z) -> div_by_zero() if(true(),false(),x,y,z) -> z if(true(),true(),x,y,z) -> div(minus(x,y),y,id_inc(z)) Proof: DP Processor: DPs: ge#(s(x),s(y)) -> ge#(x,y) minus#(s(x),s(y)) -> minus#(x,y) quot#(x,y) -> div#(x,y,0()) div#(x,y,z) -> ge#(x,y) div#(x,y,z) -> ge#(y,s(0())) div#(x,y,z) -> if#(ge(y,s(0())),ge(x,y),x,y,z) if#(true(),true(),x,y,z) -> id_inc#(z) if#(true(),true(),x,y,z) -> minus#(x,y) if#(true(),true(),x,y,z) -> div#(minus(x,y),y,id_inc(z)) TRS: ge(x,0()) -> true() ge(0(),s(y)) -> false() ge(s(x),s(y)) -> ge(x,y) minus(x,0()) -> x minus(0(),y) -> 0() minus(s(x),s(y)) -> minus(x,y) id_inc(x) -> x id_inc(x) -> s(x) quot(x,y) -> div(x,y,0()) div(x,y,z) -> if(ge(y,s(0())),ge(x,y),x,y,z) if(false(),b,x,y,z) -> div_by_zero() if(true(),false(),x,y,z) -> z if(true(),true(),x,y,z) -> div(minus(x,y),y,id_inc(z)) Usable Rule Processor: DPs: ge#(s(x),s(y)) -> ge#(x,y) minus#(s(x),s(y)) -> minus#(x,y) quot#(x,y) -> div#(x,y,0()) div#(x,y,z) -> ge#(x,y) div#(x,y,z) -> ge#(y,s(0())) div#(x,y,z) -> if#(ge(y,s(0())),ge(x,y),x,y,z) if#(true(),true(),x,y,z) -> id_inc#(z) if#(true(),true(),x,y,z) -> minus#(x,y) if#(true(),true(),x,y,z) -> div#(minus(x,y),y,id_inc(z)) TRS: f17(x,y) -> x f17(x,y) -> y ge(x,0()) -> true() ge(0(),s(y)) -> false() ge(s(x),s(y)) -> ge(x,y) id_inc(x) -> x id_inc(x) -> s(x) minus(x,0()) -> x minus(0(),y) -> 0() minus(s(x),s(y)) -> minus(x,y) EDG Processor: DPs: ge#(s(x),s(y)) -> ge#(x,y) minus#(s(x),s(y)) -> minus#(x,y) quot#(x,y) -> div#(x,y,0()) div#(x,y,z) -> ge#(x,y) div#(x,y,z) -> ge#(y,s(0())) div#(x,y,z) -> if#(ge(y,s(0())),ge(x,y),x,y,z) if#(true(),true(),x,y,z) -> id_inc#(z) if#(true(),true(),x,y,z) -> minus#(x,y) if#(true(),true(),x,y,z) -> div#(minus(x,y),y,id_inc(z)) TRS: f17(x,y) -> x f17(x,y) -> y ge(x,0()) -> true() ge(0(),s(y)) -> false() ge(s(x),s(y)) -> ge(x,y) id_inc(x) -> x id_inc(x) -> s(x) minus(x,0()) -> x minus(0(),y) -> 0() minus(s(x),s(y)) -> minus(x,y) graph: if#(true(),true(),x,y,z) -> div#(minus(x,y),y,id_inc(z)) -> div#(x,y,z) -> ge#(x,y) if#(true(),true(),x,y,z) -> div#(minus(x,y),y,id_inc(z)) -> div#(x,y,z) -> ge#(y,s(0())) if#(true(),true(),x,y,z) -> div#(minus(x,y),y,id_inc(z)) -> div#(x,y,z) -> if#(ge(y,s(0())),ge(x,y),x,y,z) if#(true(),true(),x,y,z) -> minus#(x,y) -> minus#(s(x),s(y)) -> minus#(x,y) div#(x,y,z) -> if#(ge(y,s(0())),ge(x,y),x,y,z) -> if#(true(),true(),x,y,z) -> id_inc#(z) div#(x,y,z) -> if#(ge(y,s(0())),ge(x,y),x,y,z) -> if#(true(),true(),x,y,z) -> minus#(x,y) div#(x,y,z) -> if#(ge(y,s(0())),ge(x,y),x,y,z) -> if#(true(),true(),x,y,z) -> div#(minus(x,y),y,id_inc(z)) div#(x,y,z) -> ge#(y,s(0())) -> ge#(s(x),s(y)) -> ge#(x,y) div#(x,y,z) -> ge#(x,y) -> ge#(s(x),s(y)) -> ge#(x,y) quot#(x,y) -> div#(x,y,0()) -> div#(x,y,z) -> ge#(x,y) quot#(x,y) -> div#(x,y,0()) -> div#(x,y,z) -> ge#(y,s(0())) quot#(x,y) -> div#(x,y,0()) -> div#(x,y,z) -> if#(ge(y,s(0())),ge(x,y),x,y,z) minus#(s(x),s(y)) -> minus#(x,y) -> minus#(s(x),s(y)) -> minus#(x,y) ge#(s(x),s(y)) -> ge#(x,y) -> ge#(s(x),s(y)) -> ge#(x,y) Restore Modifier: DPs: ge#(s(x),s(y)) -> ge#(x,y) minus#(s(x),s(y)) -> minus#(x,y) quot#(x,y) -> div#(x,y,0()) div#(x,y,z) -> ge#(x,y) div#(x,y,z) -> ge#(y,s(0())) div#(x,y,z) -> if#(ge(y,s(0())),ge(x,y),x,y,z) if#(true(),true(),x,y,z) -> id_inc#(z) if#(true(),true(),x,y,z) -> minus#(x,y) if#(true(),true(),x,y,z) -> div#(minus(x,y),y,id_inc(z)) TRS: ge(x,0()) -> true() ge(0(),s(y)) -> false() ge(s(x),s(y)) -> ge(x,y) minus(x,0()) -> x minus(0(),y) -> 0() minus(s(x),s(y)) -> minus(x,y) id_inc(x) -> x id_inc(x) -> s(x) quot(x,y) -> div(x,y,0()) div(x,y,z) -> if(ge(y,s(0())),ge(x,y),x,y,z) if(false(),b,x,y,z) -> div_by_zero() if(true(),false(),x,y,z) -> z if(true(),true(),x,y,z) -> div(minus(x,y),y,id_inc(z)) SCC Processor: #sccs: 3 #rules: 4 #arcs: 14/81 DPs: if#(true(),true(),x,y,z) -> div#(minus(x,y),y,id_inc(z)) div#(x,y,z) -> if#(ge(y,s(0())),ge(x,y),x,y,z) TRS: ge(x,0()) -> true() ge(0(),s(y)) -> false() ge(s(x),s(y)) -> ge(x,y) minus(x,0()) -> x minus(0(),y) -> 0() minus(s(x),s(y)) -> minus(x,y) id_inc(x) -> x id_inc(x) -> s(x) quot(x,y) -> div(x,y,0()) div(x,y,z) -> if(ge(y,s(0())),ge(x,y),x,y,z) if(false(),b,x,y,z) -> div_by_zero() if(true(),false(),x,y,z) -> z if(true(),true(),x,y,z) -> div(minus(x,y),y,id_inc(z)) Open DPs: ge#(s(x),s(y)) -> ge#(x,y) TRS: ge(x,0()) -> true() ge(0(),s(y)) -> false() ge(s(x),s(y)) -> ge(x,y) minus(x,0()) -> x minus(0(),y) -> 0() minus(s(x),s(y)) -> minus(x,y) id_inc(x) -> x id_inc(x) -> s(x) quot(x,y) -> div(x,y,0()) div(x,y,z) -> if(ge(y,s(0())),ge(x,y),x,y,z) if(false(),b,x,y,z) -> div_by_zero() if(true(),false(),x,y,z) -> z if(true(),true(),x,y,z) -> div(minus(x,y),y,id_inc(z)) Open DPs: minus#(s(x),s(y)) -> minus#(x,y) TRS: ge(x,0()) -> true() ge(0(),s(y)) -> false() ge(s(x),s(y)) -> ge(x,y) minus(x,0()) -> x minus(0(),y) -> 0() minus(s(x),s(y)) -> minus(x,y) id_inc(x) -> x id_inc(x) -> s(x) quot(x,y) -> div(x,y,0()) div(x,y,z) -> if(ge(y,s(0())),ge(x,y),x,y,z) if(false(),b,x,y,z) -> div_by_zero() if(true(),false(),x,y,z) -> z if(true(),true(),x,y,z) -> div(minus(x,y),y,id_inc(z)) Open