MAYBE Problem: minus(x,0()) -> x minus(s(x),s(y)) -> minus(x,y) quot(0(),s(y)) -> 0() quot(s(x),s(y)) -> s(quot(minus(x,y),s(y))) le(0(),y) -> true() le(s(x),0()) -> false() le(s(x),s(y)) -> le(x,y) inc(s(x)) -> s(inc(x)) inc(0()) -> s(0()) log(x) -> logIter(x,0()) logIter(x,y) -> if(le(s(0()),x),le(s(s(0())),x),quot(x,s(s(0()))),inc(y)) if(false(),b,x,y) -> logZeroError() if(true(),false(),x,s(y)) -> y if(true(),true(),x,y) -> logIter(x,y) Proof: DP Processor: DPs: minus#(s(x),s(y)) -> minus#(x,y) quot#(s(x),s(y)) -> minus#(x,y) quot#(s(x),s(y)) -> quot#(minus(x,y),s(y)) le#(s(x),s(y)) -> le#(x,y) inc#(s(x)) -> inc#(x) log#(x) -> logIter#(x,0()) logIter#(x,y) -> inc#(y) logIter#(x,y) -> quot#(x,s(s(0()))) logIter#(x,y) -> le#(s(s(0())),x) logIter#(x,y) -> le#(s(0()),x) logIter#(x,y) -> if#(le(s(0()),x),le(s(s(0())),x),quot(x,s(s(0()))),inc(y)) if#(true(),true(),x,y) -> logIter#(x,y) TRS: minus(x,0()) -> x minus(s(x),s(y)) -> minus(x,y) quot(0(),s(y)) -> 0() quot(s(x),s(y)) -> s(quot(minus(x,y),s(y))) le(0(),y) -> true() le(s(x),0()) -> false() le(s(x),s(y)) -> le(x,y) inc(s(x)) -> s(inc(x)) inc(0()) -> s(0()) log(x) -> logIter(x,0()) logIter(x,y) -> if(le(s(0()),x),le(s(s(0())),x),quot(x,s(s(0()))),inc(y)) if(false(),b,x,y) -> logZeroError() if(true(),false(),x,s(y)) -> y if(true(),true(),x,y) -> logIter(x,y) Usable Rule Processor: DPs: minus#(s(x),s(y)) -> minus#(x,y) quot#(s(x),s(y)) -> minus#(x,y) quot#(s(x),s(y)) -> quot#(minus(x,y),s(y)) le#(s(x),s(y)) -> le#(x,y) inc#(s(x)) -> inc#(x) log#(x) -> logIter#(x,0()) logIter#(x,y) -> inc#(y) logIter#(x,y) -> quot#(x,s(s(0()))) logIter#(x,y) -> le#(s(s(0())),x) logIter#(x,y) -> le#(s(0()),x) logIter#(x,y) -> if#(le(s(0()),x),le(s(s(0())),x),quot(x,s(s(0()))),inc(y)) if#(true(),true(),x,y) -> logIter#(x,y) TRS: f19(x,y) -> x f19(x,y) -> y minus(x,0()) -> x minus(s(x),s(y)) -> minus(x,y) inc(s(x)) -> s(inc(x)) inc(0()) -> s(0()) quot(0(),s(y)) -> 0() quot(s(x),s(y)) -> s(quot(minus(x,y),s(y))) le(s(x),0()) -> false() le(s(x),s(y)) -> le(x,y) le(0(),y) -> true() EDG Processor: DPs: minus#(s(x),s(y)) -> minus#(x,y) quot#(s(x),s(y)) -> minus#(x,y) quot#(s(x),s(y)) -> quot#(minus(x,y),s(y)) le#(s(x),s(y)) -> le#(x,y) inc#(s(x)) -> inc#(x) log#(x) -> logIter#(x,0()) logIter#(x,y) -> inc#(y) logIter#(x,y) -> quot#(x,s(s(0()))) logIter#(x,y) -> le#(s(s(0())),x) logIter#(x,y) -> le#(s(0()),x) logIter#(x,y) -> if#(le(s(0()),x),le(s(s(0())),x),quot(x,s(s(0()))),inc(y)) if#(true(),true(),x,y) -> logIter#(x,y) TRS: f19(x,y) -> x f19(x,y) -> y minus(x,0()) -> x minus(s(x),s(y)) -> minus(x,y) inc(s(x)) -> s(inc(x)) inc(0()) -> s(0()) quot(0(),s(y)) -> 0() quot(s(x),s(y)) -> s(quot(minus(x,y),s(y))) le(s(x),0()) -> false() le(s(x),s(y)) -> le(x,y) le(0(),y) -> true() graph: if#(true(),true(),x,y) -> logIter#(x,y) -> logIter#(x,y) -> inc#(y) if#(true(),true(),x,y) -> logIter#(x,y) -> logIter#(x,y) -> quot#(x,s(s(0()))) if#(true(),true(),x,y) -> logIter#(x,y) -> logIter#(x,y) -> le#(s(s(0())),x) if#(true(),true(),x,y) -> logIter#(x,y) -> logIter#(x,y) -> le#(s(0()),x) if#(true(),true(),x,y) -> logIter#(x,y) -> logIter#(x,y) -> if#(le(s(0()),x),le(s(s(0())),x),quot(x,s(s(0()))),inc(y)) logIter#(x,y) -> if#(le(s(0()),x),le(s(s(0())),x),quot(x,s(s(0()))),inc(y)) -> if#(true(),true(),x,y) -> logIter#(x,y) logIter#(x,y) -> inc#(y) -> inc#(s(x)) -> inc#(x) logIter#(x,y) -> le#(s(s(0())),x) -> le#(s(x),s(y)) -> le#(x,y) logIter#(x,y) -> le#(s(0()),x) -> le#(s(x),s(y)) -> le#(x,y) logIter#(x,y) -> quot#(x,s(s(0()))) -> quot#(s(x),s(y)) -> minus#(x,y) logIter#(x,y) -> quot#(x,s(s(0()))) -> quot#(s(x),s(y)) -> quot#(minus(x,y),s(y)) log#(x) -> logIter#(x,0()) -> logIter#(x,y) -> inc#(y) log#(x) -> logIter#(x,0()) -> logIter#(x,y) -> quot#(x,s(s(0()))) log#(x) -> logIter#(x,0()) -> logIter#(x,y) -> le#(s(s(0())),x) log#(x) -> logIter#(x,0()) -> logIter#(x,y) -> le#(s(0()),x) log#(x) -> logIter#(x,0()) -> logIter#(x,y) -> if#(le(s(0()),x),le(s(s(0())),x),quot(x,s(s(0()))),inc(y)) inc#(s(x)) -> inc#(x) -> inc#(s(x)) -> inc#(x) le#(s(x),s(y)) -> le#(x,y) -> le#(s(x),s(y)) -> le#(x,y) quot#(s(x),s(y)) -> quot#(minus(x,y),s(y)) -> quot#(s(x),s(y)) -> minus#(x,y) quot#(s(x),s(y)) -> quot#(minus(x,y),s(y)) -> quot#(s(x),s(y)) -> quot#(minus(x,y),s(y)) quot#(s(x),s(y)) -> minus#(x,y) -> minus#(s(x),s(y)) -> minus#(x,y) minus#(s(x),s(y)) -> minus#(x,y) -> minus#(s(x),s(y)) -> minus#(x,y) Restore Modifier: DPs: minus#(s(x),s(y)) -> minus#(x,y) quot#(s(x),s(y)) -> minus#(x,y) quot#(s(x),s(y)) -> quot#(minus(x,y),s(y)) le#(s(x),s(y)) -> le#(x,y) inc#(s(x)) -> inc#(x) log#(x) -> logIter#(x,0()) logIter#(x,y) -> inc#(y) logIter#(x,y) -> quot#(x,s(s(0()))) logIter#(x,y) -> le#(s(s(0())),x) logIter#(x,y) -> le#(s(0()),x) logIter#(x,y) -> if#(le(s(0()),x),le(s(s(0())),x),quot(x,s(s(0()))),inc(y)) if#(true(),true(),x,y) -> logIter#(x,y) TRS: minus(x,0()) -> x minus(s(x),s(y)) -> minus(x,y) quot(0(),s(y)) -> 0() quot(s(x),s(y)) -> s(quot(minus(x,y),s(y))) le(0(),y) -> true() le(s(x),0()) -> false() le(s(x),s(y)) -> le(x,y) inc(s(x)) -> s(inc(x)) inc(0()) -> s(0()) log(x) -> logIter(x,0()) logIter(x,y) -> if(le(s(0()),x),le(s(s(0())),x),quot(x,s(s(0()))),inc(y)) if(false(),b,x,y) -> logZeroError() if(true(),false(),x,s(y)) -> y if(true(),true(),x,y) -> logIter(x,y) SCC Processor: #sccs: 5 #rules: 6 #arcs: 22/144 DPs: if#(true(),true(),x,y) -> logIter#(x,y) logIter#(x,y) -> if#(le(s(0()),x),le(s(s(0())),x),quot(x,s(s(0()))),inc(y)) TRS: minus(x,0()) -> x minus(s(x),s(y)) -> minus(x,y) quot(0(),s(y)) -> 0() quot(s(x),s(y)) -> s(quot(minus(x,y),s(y))) le(0(),y) -> true() le(s(x),0()) -> false() le(s(x),s(y)) -> le(x,y) inc(s(x)) -> s(inc(x)) inc(0()) -> s(0()) log(x) -> logIter(x,0()) logIter(x,y) -> if(le(s(0()),x),le(s(s(0())),x),quot(x,s(s(0()))),inc(y)) if(false(),b,x,y) -> logZeroError() if(true(),false(),x,s(y)) -> y if(true(),true(),x,y) -> logIter(x,y) Open DPs: inc#(s(x)) -> inc#(x) TRS: minus(x,0()) -> x minus(s(x),s(y)) -> minus(x,y) quot(0(),s(y)) -> 0() quot(s(x),s(y)) -> s(quot(minus(x,y),s(y))) le(0(),y) -> true() le(s(x),0()) -> false() le(s(x),s(y)) -> le(x,y) inc(s(x)) -> s(inc(x)) inc(0()) -> s(0()) log(x) -> logIter(x,0()) logIter(x,y) -> if(le(s(0()),x),le(s(s(0())),x),quot(x,s(s(0()))),inc(y)) if(false(),b,x,y) -> logZeroError() if(true(),false(),x,s(y)) -> y if(true(),true(),x,y) -> logIter(x,y) Open DPs: quot#(s(x),s(y)) -> quot#(minus(x,y),s(y)) TRS: minus(x,0()) -> x minus(s(x),s(y)) -> minus(x,y) quot(0(),s(y)) -> 0() quot(s(x),s(y)) -> s(quot(minus(x,y),s(y))) le(0(),y) -> true() le(s(x),0()) -> false() le(s(x),s(y)) -> le(x,y) inc(s(x)) -> s(inc(x)) inc(0()) -> s(0()) log(x) -> logIter(x,0()) logIter(x,y) -> if(le(s(0()),x),le(s(s(0())),x),quot(x,s(s(0()))),inc(y)) if(false(),b,x,y) -> logZeroError() if(true(),false(),x,s(y)) -> y if(true(),true(),x,y) -> logIter(x,y) Open DPs: minus#(s(x),s(y)) -> minus#(x,y) TRS: minus(x,0()) -> x minus(s(x),s(y)) -> minus(x,y) quot(0(),s(y)) -> 0() quot(s(x),s(y)) -> s(quot(minus(x,y),s(y))) le(0(),y) -> true() le(s(x),0()) -> false() le(s(x),s(y)) -> le(x,y) inc(s(x)) -> s(inc(x)) inc(0()) -> s(0()) log(x) -> logIter(x,0()) logIter(x,y) -> if(le(s(0()),x),le(s(s(0())),x),quot(x,s(s(0()))),inc(y)) if(false(),b,x,y) -> logZeroError() if(true(),false(),x,s(y)) -> y if(true(),true(),x,y) -> logIter(x,y) Open DPs: le#(s(x),s(y)) -> le#(x,y) TRS: minus(x,0()) -> x minus(s(x),s(y)) -> minus(x,y) quot(0(),s(y)) -> 0() quot(s(x),s(y)) -> s(quot(minus(x,y),s(y))) le(0(),y) -> true() le(s(x),0()) -> false() le(s(x),s(y)) -> le(x,y) inc(s(x)) -> s(inc(x)) inc(0()) -> s(0()) log(x) -> logIter(x,0()) logIter(x,y) -> if(le(s(0()),x),le(s(s(0())),x),quot(x,s(s(0()))),inc(y)) if(false(),b,x,y) -> logZeroError() if(true(),false(),x,s(y)) -> y if(true(),true(),x,y) -> logIter(x,y) Open