MAYBE Problem: le(0(),y) -> true() le(s(x),0()) -> false() le(s(x),s(y)) -> le(x,y) quot(x,0()) -> quotZeroErro() quot(x,s(y)) -> quotIter(x,s(y),0(),0(),0()) quotIter(x,s(y),z,u,v) -> if(le(x,z),x,s(y),z,u,v) if(true(),x,y,z,u,v) -> v if(false(),x,y,z,u,v) -> if2(le(y,s(u)),x,y,s(z),s(u),v) if2(false(),x,y,z,u,v) -> quotIter(x,y,z,u,v) if2(true(),x,y,z,u,v) -> quotIter(x,y,z,0(),s(v)) Proof: DP Processor: DPs: le#(s(x),s(y)) -> le#(x,y) quot#(x,s(y)) -> quotIter#(x,s(y),0(),0(),0()) quotIter#(x,s(y),z,u,v) -> le#(x,z) quotIter#(x,s(y),z,u,v) -> if#(le(x,z),x,s(y),z,u,v) if#(false(),x,y,z,u,v) -> le#(y,s(u)) if#(false(),x,y,z,u,v) -> if2#(le(y,s(u)),x,y,s(z),s(u),v) if2#(false(),x,y,z,u,v) -> quotIter#(x,y,z,u,v) if2#(true(),x,y,z,u,v) -> quotIter#(x,y,z,0(),s(v)) TRS: le(0(),y) -> true() le(s(x),0()) -> false() le(s(x),s(y)) -> le(x,y) quot(x,0()) -> quotZeroErro() quot(x,s(y)) -> quotIter(x,s(y),0(),0(),0()) quotIter(x,s(y),z,u,v) -> if(le(x,z),x,s(y),z,u,v) if(true(),x,y,z,u,v) -> v if(false(),x,y,z,u,v) -> if2(le(y,s(u)),x,y,s(z),s(u),v) if2(false(),x,y,z,u,v) -> quotIter(x,y,z,u,v) if2(true(),x,y,z,u,v) -> quotIter(x,y,z,0(),s(v)) TDG Processor: DPs: le#(s(x),s(y)) -> le#(x,y) quot#(x,s(y)) -> quotIter#(x,s(y),0(),0(),0()) quotIter#(x,s(y),z,u,v) -> le#(x,z) quotIter#(x,s(y),z,u,v) -> if#(le(x,z),x,s(y),z,u,v) if#(false(),x,y,z,u,v) -> le#(y,s(u)) if#(false(),x,y,z,u,v) -> if2#(le(y,s(u)),x,y,s(z),s(u),v) if2#(false(),x,y,z,u,v) -> quotIter#(x,y,z,u,v) if2#(true(),x,y,z,u,v) -> quotIter#(x,y,z,0(),s(v)) TRS: le(0(),y) -> true() le(s(x),0()) -> false() le(s(x),s(y)) -> le(x,y) quot(x,0()) -> quotZeroErro() quot(x,s(y)) -> quotIter(x,s(y),0(),0(),0()) quotIter(x,s(y),z,u,v) -> if(le(x,z),x,s(y),z,u,v) if(true(),x,y,z,u,v) -> v if(false(),x,y,z,u,v) -> if2(le(y,s(u)),x,y,s(z),s(u),v) if2(false(),x,y,z,u,v) -> quotIter(x,y,z,u,v) if2(true(),x,y,z,u,v) -> quotIter(x,y,z,0(),s(v)) graph: if2#(false(),x,y,z,u,v) -> quotIter#(x,y,z,u,v) -> quotIter#(x,s(y),z,u,v) -> if#(le(x,z),x,s(y),z,u,v) if2#(false(),x,y,z,u,v) -> quotIter#(x,y,z,u,v) -> quotIter#(x,s(y),z,u,v) -> le#(x,z) if2#(true(),x,y,z,u,v) -> quotIter#(x,y,z,0(),s(v)) -> quotIter#(x,s(y),z,u,v) -> if#(le(x,z),x,s(y),z,u,v) if2#(true(),x,y,z,u,v) -> quotIter#(x,y,z,0(),s(v)) -> quotIter#(x,s(y),z,u,v) -> le#(x,z) if#(false(),x,y,z,u,v) -> if2#(le(y,s(u)),x,y,s(z),s(u),v) -> if2#(true(),x,y,z,u,v) -> quotIter#(x,y,z,0(),s(v)) if#(false(),x,y,z,u,v) -> if2#(le(y,s(u)),x,y,s(z),s(u),v) -> if2#(false(),x,y,z,u,v) -> quotIter#(x,y,z,u,v) if#(false(),x,y,z,u,v) -> le#(y,s(u)) -> le#(s(x),s(y)) -> le#(x,y) quotIter#(x,s(y),z,u,v) -> if#(le(x,z),x,s(y),z,u,v) -> if#(false(),x,y,z,u,v) -> if2#(le(y,s(u)),x,y,s(z),s(u),v) quotIter#(x,s(y),z,u,v) -> if#(le(x,z),x,s(y),z,u,v) -> if#(false(),x,y,z,u,v) -> le#(y,s(u)) quotIter#(x,s(y),z,u,v) -> le#(x,z) -> le#(s(x),s(y)) -> le#(x,y) quot#(x,s(y)) -> quotIter#(x,s(y),0(),0(),0()) -> quotIter#(x,s(y),z,u,v) -> if#(le(x,z),x,s(y),z,u,v) quot#(x,s(y)) -> quotIter#(x,s(y),0(),0(),0()) -> quotIter#(x,s(y),z,u,v) -> le#(x,z) le#(s(x),s(y)) -> le#(x,y) -> le#(s(x),s(y)) -> le#(x,y) SCC Processor: #sccs: 2 #rules: 5 #arcs: 13/64 DPs: if2#(false(),x,y,z,u,v) -> quotIter#(x,y,z,u,v) quotIter#(x,s(y),z,u,v) -> if#(le(x,z),x,s(y),z,u,v) if#(false(),x,y,z,u,v) -> if2#(le(y,s(u)),x,y,s(z),s(u),v) if2#(true(),x,y,z,u,v) -> quotIter#(x,y,z,0(),s(v)) TRS: le(0(),y) -> true() le(s(x),0()) -> false() le(s(x),s(y)) -> le(x,y) quot(x,0()) -> quotZeroErro() quot(x,s(y)) -> quotIter(x,s(y),0(),0(),0()) quotIter(x,s(y),z,u,v) -> if(le(x,z),x,s(y),z,u,v) if(true(),x,y,z,u,v) -> v if(false(),x,y,z,u,v) -> if2(le(y,s(u)),x,y,s(z),s(u),v) if2(false(),x,y,z,u,v) -> quotIter(x,y,z,u,v) if2(true(),x,y,z,u,v) -> quotIter(x,y,z,0(),s(v)) Open DPs: le#(s(x),s(y)) -> le#(x,y) TRS: le(0(),y) -> true() le(s(x),0()) -> false() le(s(x),s(y)) -> le(x,y) quot(x,0()) -> quotZeroErro() quot(x,s(y)) -> quotIter(x,s(y),0(),0(),0()) quotIter(x,s(y),z,u,v) -> if(le(x,z),x,s(y),z,u,v) if(true(),x,y,z,u,v) -> v if(false(),x,y,z,u,v) -> if2(le(y,s(u)),x,y,s(z),s(u),v) if2(false(),x,y,z,u,v) -> quotIter(x,y,z,u,v) if2(true(),x,y,z,u,v) -> quotIter(x,y,z,0(),s(v)) Subterm Criterion Processor: simple projection: pi(le#) = 1 problem: DPs: TRS: le(0(),y) -> true() le(s(x),0()) -> false() le(s(x),s(y)) -> le(x,y) quot(x,0()) -> quotZeroErro() quot(x,s(y)) -> quotIter(x,s(y),0(),0(),0()) quotIter(x,s(y),z,u,v) -> if(le(x,z),x,s(y),z,u,v) if(true(),x,y,z,u,v) -> v if(false(),x,y,z,u,v) -> if2(le(y,s(u)),x,y,s(z),s(u),v) if2(false(),x,y,z,u,v) -> quotIter(x,y,z,u,v) if2(true(),x,y,z,u,v) -> quotIter(x,y,z,0(),s(v)) Qed