MAYBE Problem: le(0(),y) -> true() le(s(x),0()) -> false() le(s(x),s(y)) -> le(x,y) minus(x,x) -> 0() minus(x,0()) -> x minus(0(),x) -> 0() minus(s(x),s(y)) -> minus(x,y) isZero(0()) -> true() isZero(s(x)) -> false() mod(x,y) -> if_mod(isZero(y),le(y,x),x,y,minus(x,y)) if_mod(true(),b,x,y,z) -> divByZeroError() if_mod(false(),false(),x,y,z) -> x if_mod(false(),true(),x,y,z) -> mod(z,y) Proof: DP Processor: DPs: le#(s(x),s(y)) -> le#(x,y) minus#(s(x),s(y)) -> minus#(x,y) mod#(x,y) -> minus#(x,y) mod#(x,y) -> le#(y,x) mod#(x,y) -> isZero#(y) mod#(x,y) -> if_mod#(isZero(y),le(y,x),x,y,minus(x,y)) if_mod#(false(),true(),x,y,z) -> mod#(z,y) TRS: le(0(),y) -> true() le(s(x),0()) -> false() le(s(x),s(y)) -> le(x,y) minus(x,x) -> 0() minus(x,0()) -> x minus(0(),x) -> 0() minus(s(x),s(y)) -> minus(x,y) isZero(0()) -> true() isZero(s(x)) -> false() mod(x,y) -> if_mod(isZero(y),le(y,x),x,y,minus(x,y)) if_mod(true(),b,x,y,z) -> divByZeroError() if_mod(false(),false(),x,y,z) -> x if_mod(false(),true(),x,y,z) -> mod(z,y) TDG Processor: DPs: le#(s(x),s(y)) -> le#(x,y) minus#(s(x),s(y)) -> minus#(x,y) mod#(x,y) -> minus#(x,y) mod#(x,y) -> le#(y,x) mod#(x,y) -> isZero#(y) mod#(x,y) -> if_mod#(isZero(y),le(y,x),x,y,minus(x,y)) if_mod#(false(),true(),x,y,z) -> mod#(z,y) TRS: le(0(),y) -> true() le(s(x),0()) -> false() le(s(x),s(y)) -> le(x,y) minus(x,x) -> 0() minus(x,0()) -> x minus(0(),x) -> 0() minus(s(x),s(y)) -> minus(x,y) isZero(0()) -> true() isZero(s(x)) -> false() mod(x,y) -> if_mod(isZero(y),le(y,x),x,y,minus(x,y)) if_mod(true(),b,x,y,z) -> divByZeroError() if_mod(false(),false(),x,y,z) -> x if_mod(false(),true(),x,y,z) -> mod(z,y) graph: if_mod#(false(),true(),x,y,z) -> mod#(z,y) -> mod#(x,y) -> if_mod#(isZero(y),le(y,x),x,y,minus(x,y)) if_mod#(false(),true(),x,y,z) -> mod#(z,y) -> mod#(x,y) -> isZero#(y) if_mod#(false(),true(),x,y,z) -> mod#(z,y) -> mod#(x,y) -> le#(y,x) if_mod#(false(),true(),x,y,z) -> mod#(z,y) -> mod#(x,y) -> minus#(x,y) mod#(x,y) -> if_mod#(isZero(y),le(y,x),x,y,minus(x,y)) -> if_mod#(false(),true(),x,y,z) -> mod#(z,y) mod#(x,y) -> minus#(x,y) -> minus#(s(x),s(y)) -> minus#(x,y) mod#(x,y) -> le#(y,x) -> le#(s(x),s(y)) -> le#(x,y) minus#(s(x),s(y)) -> minus#(x,y) -> minus#(s(x),s(y)) -> minus#(x,y) le#(s(x),s(y)) -> le#(x,y) -> le#(s(x),s(y)) -> le#(x,y) SCC Processor: #sccs: 3 #rules: 4 #arcs: 9/49 DPs: if_mod#(false(),true(),x,y,z) -> mod#(z,y) mod#(x,y) -> if_mod#(isZero(y),le(y,x),x,y,minus(x,y)) TRS: le(0(),y) -> true() le(s(x),0()) -> false() le(s(x),s(y)) -> le(x,y) minus(x,x) -> 0() minus(x,0()) -> x minus(0(),x) -> 0() minus(s(x),s(y)) -> minus(x,y) isZero(0()) -> true() isZero(s(x)) -> false() mod(x,y) -> if_mod(isZero(y),le(y,x),x,y,minus(x,y)) if_mod(true(),b,x,y,z) -> divByZeroError() if_mod(false(),false(),x,y,z) -> x if_mod(false(),true(),x,y,z) -> mod(z,y) 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) minus(x,x) -> 0() minus(x,0()) -> x minus(0(),x) -> 0() minus(s(x),s(y)) -> minus(x,y) isZero(0()) -> true() isZero(s(x)) -> false() mod(x,y) -> if_mod(isZero(y),le(y,x),x,y,minus(x,y)) if_mod(true(),b,x,y,z) -> divByZeroError() if_mod(false(),false(),x,y,z) -> x if_mod(false(),true(),x,y,z) -> mod(z,y) 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) minus(x,x) -> 0() minus(x,0()) -> x minus(0(),x) -> 0() minus(s(x),s(y)) -> minus(x,y) isZero(0()) -> true() isZero(s(x)) -> false() mod(x,y) -> if_mod(isZero(y),le(y,x),x,y,minus(x,y)) if_mod(true(),b,x,y,z) -> divByZeroError() if_mod(false(),false(),x,y,z) -> x if_mod(false(),true(),x,y,z) -> mod(z,y) Qed DPs: minus#(s(x),s(y)) -> minus#(x,y) TRS: le(0(),y) -> true() le(s(x),0()) -> false() le(s(x),s(y)) -> le(x,y) minus(x,x) -> 0() minus(x,0()) -> x minus(0(),x) -> 0() minus(s(x),s(y)) -> minus(x,y) isZero(0()) -> true() isZero(s(x)) -> false() mod(x,y) -> if_mod(isZero(y),le(y,x),x,y,minus(x,y)) if_mod(true(),b,x,y,z) -> divByZeroError() if_mod(false(),false(),x,y,z) -> x if_mod(false(),true(),x,y,z) -> mod(z,y) Subterm Criterion Processor: simple projection: pi(minus#) = 1 problem: DPs: TRS: le(0(),y) -> true() le(s(x),0()) -> false() le(s(x),s(y)) -> le(x,y) minus(x,x) -> 0() minus(x,0()) -> x minus(0(),x) -> 0() minus(s(x),s(y)) -> minus(x,y) isZero(0()) -> true() isZero(s(x)) -> false() mod(x,y) -> if_mod(isZero(y),le(y,x),x,y,minus(x,y)) if_mod(true(),b,x,y,z) -> divByZeroError() if_mod(false(),false(),x,y,z) -> x if_mod(false(),true(),x,y,z) -> mod(z,y) Qed