MAYBE Problem: minus(s(x),y) -> if(gt(s(x),y),x,y) if(true(),x,y) -> s(minus(x,y)) if(false(),x,y) -> 0() ge(x,0()) -> true() ge(0(),s(x)) -> false() ge(s(x),s(y)) -> ge(x,y) gt(0(),y) -> false() gt(s(x),0()) -> true() gt(s(x),s(y)) -> gt(x,y) div(x,y) -> if1(ge(x,y),x,y) if1(true(),x,y) -> if2(gt(y,0()),x,y) if1(false(),x,y) -> 0() if2(true(),x,y) -> s(div(minus(x,y),y)) if2(false(),x,y) -> 0() Proof: DP Processor: DPs: minus#(s(x),y) -> gt#(s(x),y) minus#(s(x),y) -> if#(gt(s(x),y),x,y) if#(true(),x,y) -> minus#(x,y) ge#(s(x),s(y)) -> ge#(x,y) gt#(s(x),s(y)) -> gt#(x,y) div#(x,y) -> ge#(x,y) div#(x,y) -> if1#(ge(x,y),x,y) if1#(true(),x,y) -> gt#(y,0()) if1#(true(),x,y) -> if2#(gt(y,0()),x,y) if2#(true(),x,y) -> minus#(x,y) if2#(true(),x,y) -> div#(minus(x,y),y) TRS: minus(s(x),y) -> if(gt(s(x),y),x,y) if(true(),x,y) -> s(minus(x,y)) if(false(),x,y) -> 0() ge(x,0()) -> true() ge(0(),s(x)) -> false() ge(s(x),s(y)) -> ge(x,y) gt(0(),y) -> false() gt(s(x),0()) -> true() gt(s(x),s(y)) -> gt(x,y) div(x,y) -> if1(ge(x,y),x,y) if1(true(),x,y) -> if2(gt(y,0()),x,y) if1(false(),x,y) -> 0() if2(true(),x,y) -> s(div(minus(x,y),y)) if2(false(),x,y) -> 0() EDG Processor: DPs: minus#(s(x),y) -> gt#(s(x),y) minus#(s(x),y) -> if#(gt(s(x),y),x,y) if#(true(),x,y) -> minus#(x,y) ge#(s(x),s(y)) -> ge#(x,y) gt#(s(x),s(y)) -> gt#(x,y) div#(x,y) -> ge#(x,y) div#(x,y) -> if1#(ge(x,y),x,y) if1#(true(),x,y) -> gt#(y,0()) if1#(true(),x,y) -> if2#(gt(y,0()),x,y) if2#(true(),x,y) -> minus#(x,y) if2#(true(),x,y) -> div#(minus(x,y),y) TRS: minus(s(x),y) -> if(gt(s(x),y),x,y) if(true(),x,y) -> s(minus(x,y)) if(false(),x,y) -> 0() ge(x,0()) -> true() ge(0(),s(x)) -> false() ge(s(x),s(y)) -> ge(x,y) gt(0(),y) -> false() gt(s(x),0()) -> true() gt(s(x),s(y)) -> gt(x,y) div(x,y) -> if1(ge(x,y),x,y) if1(true(),x,y) -> if2(gt(y,0()),x,y) if1(false(),x,y) -> 0() if2(true(),x,y) -> s(div(minus(x,y),y)) if2(false(),x,y) -> 0() graph: if2#(true(),x,y) -> div#(minus(x,y),y) -> div#(x,y) -> ge#(x,y) if2#(true(),x,y) -> div#(minus(x,y),y) -> div#(x,y) -> if1#(ge(x,y),x,y) if2#(true(),x,y) -> minus#(x,y) -> minus#(s(x),y) -> gt#(s(x),y) if2#(true(),x,y) -> minus#(x,y) -> minus#(s(x),y) -> if#(gt(s(x),y),x,y) if1#(true(),x,y) -> if2#(gt(y,0()),x,y) -> if2#(true(),x,y) -> minus#(x,y) if1#(true(),x,y) -> if2#(gt(y,0()),x,y) -> if2#(true(),x,y) -> div#(minus(x,y),y) div#(x,y) -> if1#(ge(x,y),x,y) -> if1#(true(),x,y) -> gt#(y,0()) div#(x,y) -> if1#(ge(x,y),x,y) -> if1#(true(),x,y) -> if2#(gt(y,0()),x,y) div#(x,y) -> ge#(x,y) -> ge#(s(x),s(y)) -> ge#(x,y) ge#(s(x),s(y)) -> ge#(x,y) -> ge#(s(x),s(y)) -> ge#(x,y) if#(true(),x,y) -> minus#(x,y) -> minus#(s(x),y) -> gt#(s(x),y) if#(true(),x,y) -> minus#(x,y) -> minus#(s(x),y) -> if#(gt(s(x),y),x,y) gt#(s(x),s(y)) -> gt#(x,y) -> gt#(s(x),s(y)) -> gt#(x,y) minus#(s(x),y) -> if#(gt(s(x),y),x,y) -> if#(true(),x,y) -> minus#(x,y) minus#(s(x),y) -> gt#(s(x),y) -> gt#(s(x),s(y)) -> gt#(x,y) SCC Processor: #sccs: 4 #rules: 7 #arcs: 15/121 DPs: if2#(true(),x,y) -> div#(minus(x,y),y) div#(x,y) -> if1#(ge(x,y),x,y) if1#(true(),x,y) -> if2#(gt(y,0()),x,y) TRS: minus(s(x),y) -> if(gt(s(x),y),x,y) if(true(),x,y) -> s(minus(x,y)) if(false(),x,y) -> 0() ge(x,0()) -> true() ge(0(),s(x)) -> false() ge(s(x),s(y)) -> ge(x,y) gt(0(),y) -> false() gt(s(x),0()) -> true() gt(s(x),s(y)) -> gt(x,y) div(x,y) -> if1(ge(x,y),x,y) if1(true(),x,y) -> if2(gt(y,0()),x,y) if1(false(),x,y) -> 0() if2(true(),x,y) -> s(div(minus(x,y),y)) if2(false(),x,y) -> 0() Open DPs: ge#(s(x),s(y)) -> ge#(x,y) TRS: minus(s(x),y) -> if(gt(s(x),y),x,y) if(true(),x,y) -> s(minus(x,y)) if(false(),x,y) -> 0() ge(x,0()) -> true() ge(0(),s(x)) -> false() ge(s(x),s(y)) -> ge(x,y) gt(0(),y) -> false() gt(s(x),0()) -> true() gt(s(x),s(y)) -> gt(x,y) div(x,y) -> if1(ge(x,y),x,y) if1(true(),x,y) -> if2(gt(y,0()),x,y) if1(false(),x,y) -> 0() if2(true(),x,y) -> s(div(minus(x,y),y)) if2(false(),x,y) -> 0() Subterm Criterion Processor: simple projection: pi(ge#) = 1 problem: DPs: TRS: minus(s(x),y) -> if(gt(s(x),y),x,y) if(true(),x,y) -> s(minus(x,y)) if(false(),x,y) -> 0() ge(x,0()) -> true() ge(0(),s(x)) -> false() ge(s(x),s(y)) -> ge(x,y) gt(0(),y) -> false() gt(s(x),0()) -> true() gt(s(x),s(y)) -> gt(x,y) div(x,y) -> if1(ge(x,y),x,y) if1(true(),x,y) -> if2(gt(y,0()),x,y) if1(false(),x,y) -> 0() if2(true(),x,y) -> s(div(minus(x,y),y)) if2(false(),x,y) -> 0() Qed DPs: minus#(s(x),y) -> if#(gt(s(x),y),x,y) if#(true(),x,y) -> minus#(x,y) TRS: minus(s(x),y) -> if(gt(s(x),y),x,y) if(true(),x,y) -> s(minus(x,y)) if(false(),x,y) -> 0() ge(x,0()) -> true() ge(0(),s(x)) -> false() ge(s(x),s(y)) -> ge(x,y) gt(0(),y) -> false() gt(s(x),0()) -> true() gt(s(x),s(y)) -> gt(x,y) div(x,y) -> if1(ge(x,y),x,y) if1(true(),x,y) -> if2(gt(y,0()),x,y) if1(false(),x,y) -> 0() if2(true(),x,y) -> s(div(minus(x,y),y)) if2(false(),x,y) -> 0() Subterm Criterion Processor: simple projection: pi(minus#) = 0 pi(if#) = 1 problem: DPs: if#(true(),x,y) -> minus#(x,y) TRS: minus(s(x),y) -> if(gt(s(x),y),x,y) if(true(),x,y) -> s(minus(x,y)) if(false(),x,y) -> 0() ge(x,0()) -> true() ge(0(),s(x)) -> false() ge(s(x),s(y)) -> ge(x,y) gt(0(),y) -> false() gt(s(x),0()) -> true() gt(s(x),s(y)) -> gt(x,y) div(x,y) -> if1(ge(x,y),x,y) if1(true(),x,y) -> if2(gt(y,0()),x,y) if1(false(),x,y) -> 0() if2(true(),x,y) -> s(div(minus(x,y),y)) if2(false(),x,y) -> 0() Matrix Interpretation Processor: dimension: 1 interpretation: [if#](x0, x1, x2) = x0 + 1, [minus#](x0, x1) = 0, [if2](x0, x1, x2) = 0, [if1](x0, x1, x2) = 0, [div](x0, x1) = 0, [ge](x0, x1) = 1, [0] = 0, [false] = 1, [true] = 1, [if](x0, x1, x2) = 0, [gt](x0, x1) = 1, [minus](x0, x1) = 0, [s](x0) = 0 orientation: if#(true(),x,y) = 2 >= 0 = minus#(x,y) minus(s(x),y) = 0 >= 0 = if(gt(s(x),y),x,y) if(true(),x,y) = 0 >= 0 = s(minus(x,y)) if(false(),x,y) = 0 >= 0 = 0() ge(x,0()) = 1 >= 1 = true() ge(0(),s(x)) = 1 >= 1 = false() ge(s(x),s(y)) = 1 >= 1 = ge(x,y) gt(0(),y) = 1 >= 1 = false() gt(s(x),0()) = 1 >= 1 = true() gt(s(x),s(y)) = 1 >= 1 = gt(x,y) div(x,y) = 0 >= 0 = if1(ge(x,y),x,y) if1(true(),x,y) = 0 >= 0 = if2(gt(y,0()),x,y) if1(false(),x,y) = 0 >= 0 = 0() if2(true(),x,y) = 0 >= 0 = s(div(minus(x,y),y)) if2(false(),x,y) = 0 >= 0 = 0() problem: DPs: TRS: minus(s(x),y) -> if(gt(s(x),y),x,y) if(true(),x,y) -> s(minus(x,y)) if(false(),x,y) -> 0() ge(x,0()) -> true() ge(0(),s(x)) -> false() ge(s(x),s(y)) -> ge(x,y) gt(0(),y) -> false() gt(s(x),0()) -> true() gt(s(x),s(y)) -> gt(x,y) div(x,y) -> if1(ge(x,y),x,y) if1(true(),x,y) -> if2(gt(y,0()),x,y) if1(false(),x,y) -> 0() if2(true(),x,y) -> s(div(minus(x,y),y)) if2(false(),x,y) -> 0() Qed DPs: gt#(s(x),s(y)) -> gt#(x,y) TRS: minus(s(x),y) -> if(gt(s(x),y),x,y) if(true(),x,y) -> s(minus(x,y)) if(false(),x,y) -> 0() ge(x,0()) -> true() ge(0(),s(x)) -> false() ge(s(x),s(y)) -> ge(x,y) gt(0(),y) -> false() gt(s(x),0()) -> true() gt(s(x),s(y)) -> gt(x,y) div(x,y) -> if1(ge(x,y),x,y) if1(true(),x,y) -> if2(gt(y,0()),x,y) if1(false(),x,y) -> 0() if2(true(),x,y) -> s(div(minus(x,y),y)) if2(false(),x,y) -> 0() Subterm Criterion Processor: simple projection: pi(gt#) = 1 problem: DPs: TRS: minus(s(x),y) -> if(gt(s(x),y),x,y) if(true(),x,y) -> s(minus(x,y)) if(false(),x,y) -> 0() ge(x,0()) -> true() ge(0(),s(x)) -> false() ge(s(x),s(y)) -> ge(x,y) gt(0(),y) -> false() gt(s(x),0()) -> true() gt(s(x),s(y)) -> gt(x,y) div(x,y) -> if1(ge(x,y),x,y) if1(true(),x,y) -> if2(gt(y,0()),x,y) if1(false(),x,y) -> 0() if2(true(),x,y) -> s(div(minus(x,y),y)) if2(false(),x,y) -> 0() Qed