MAYBE Problem: minus(n__0(),Y) -> 0() minus(n__s(X),n__s(Y)) -> minus(activate(X),activate(Y)) geq(X,n__0()) -> true() geq(n__0(),n__s(Y)) -> false() geq(n__s(X),n__s(Y)) -> geq(activate(X),activate(Y)) div(0(),n__s(Y)) -> 0() div(s(X),n__s(Y)) -> if(geq(X,activate(Y)),n__s(n__div(n__minus(X,activate(Y)),n__s(activate(Y)))),n__0()) if(true(),X,Y) -> activate(X) if(false(),X,Y) -> activate(Y) 0() -> n__0() s(X) -> n__s(X) div(X1,X2) -> n__div(X1,X2) minus(X1,X2) -> n__minus(X1,X2) activate(n__0()) -> 0() activate(n__s(X)) -> s(activate(X)) activate(n__div(X1,X2)) -> div(activate(X1),X2) activate(n__minus(X1,X2)) -> minus(X1,X2) activate(X) -> X Proof: DP Processor: DPs: minus#(n__0(),Y) -> 0#() minus#(n__s(X),n__s(Y)) -> activate#(Y) minus#(n__s(X),n__s(Y)) -> activate#(X) minus#(n__s(X),n__s(Y)) -> minus#(activate(X),activate(Y)) geq#(n__s(X),n__s(Y)) -> activate#(Y) geq#(n__s(X),n__s(Y)) -> activate#(X) geq#(n__s(X),n__s(Y)) -> geq#(activate(X),activate(Y)) div#(s(X),n__s(Y)) -> activate#(Y) div#(s(X),n__s(Y)) -> geq#(X,activate(Y)) div#(s(X),n__s(Y)) -> if#(geq(X,activate(Y)),n__s(n__div(n__minus(X,activate(Y)),n__s(activate(Y)))),n__0()) if#(true(),X,Y) -> activate#(X) if#(false(),X,Y) -> activate#(Y) activate#(n__0()) -> 0#() activate#(n__s(X)) -> activate#(X) activate#(n__s(X)) -> s#(activate(X)) activate#(n__div(X1,X2)) -> activate#(X1) activate#(n__div(X1,X2)) -> div#(activate(X1),X2) activate#(n__minus(X1,X2)) -> minus#(X1,X2) TRS: minus(n__0(),Y) -> 0() minus(n__s(X),n__s(Y)) -> minus(activate(X),activate(Y)) geq(X,n__0()) -> true() geq(n__0(),n__s(Y)) -> false() geq(n__s(X),n__s(Y)) -> geq(activate(X),activate(Y)) div(0(),n__s(Y)) -> 0() div(s(X),n__s(Y)) -> if(geq(X,activate(Y)),n__s(n__div(n__minus(X,activate(Y)),n__s(activate(Y)))),n__0()) if(true(),X,Y) -> activate(X) if(false(),X,Y) -> activate(Y) 0() -> n__0() s(X) -> n__s(X) div(X1,X2) -> n__div(X1,X2) minus(X1,X2) -> n__minus(X1,X2) activate(n__0()) -> 0() activate(n__s(X)) -> s(activate(X)) activate(n__div(X1,X2)) -> div(activate(X1),X2) activate(n__minus(X1,X2)) -> minus(X1,X2) activate(X) -> X ADG Processor: DPs: minus#(n__0(),Y) -> 0#() minus#(n__s(X),n__s(Y)) -> activate#(Y) minus#(n__s(X),n__s(Y)) -> activate#(X) minus#(n__s(X),n__s(Y)) -> minus#(activate(X),activate(Y)) geq#(n__s(X),n__s(Y)) -> activate#(Y) geq#(n__s(X),n__s(Y)) -> activate#(X) geq#(n__s(X),n__s(Y)) -> geq#(activate(X),activate(Y)) div#(s(X),n__s(Y)) -> activate#(Y) div#(s(X),n__s(Y)) -> geq#(X,activate(Y)) div#(s(X),n__s(Y)) -> if#(geq(X,activate(Y)),n__s(n__div(n__minus(X,activate(Y)),n__s(activate(Y)))),n__0()) if#(true(),X,Y) -> activate#(X) if#(false(),X,Y) -> activate#(Y) activate#(n__0()) -> 0#() activate#(n__s(X)) -> activate#(X) activate#(n__s(X)) -> s#(activate(X)) activate#(n__div(X1,X2)) -> activate#(X1) activate#(n__div(X1,X2)) -> div#(activate(X1),X2) activate#(n__minus(X1,X2)) -> minus#(X1,X2) TRS: minus(n__0(),Y) -> 0() minus(n__s(X),n__s(Y)) -> minus(activate(X),activate(Y)) geq(X,n__0()) -> true() geq(n__0(),n__s(Y)) -> false() geq(n__s(X),n__s(Y)) -> geq(activate(X),activate(Y)) div(0(),n__s(Y)) -> 0() div(s(X),n__s(Y)) -> if(geq(X,activate(Y)),n__s(n__div(n__minus(X,activate(Y)),n__s(activate(Y)))),n__0()) if(true(),X,Y) -> activate(X) if(false(),X,Y) -> activate(Y) 0() -> n__0() s(X) -> n__s(X) div(X1,X2) -> n__div(X1,X2) minus(X1,X2) -> n__minus(X1,X2) activate(n__0()) -> 0() activate(n__s(X)) -> s(activate(X)) activate(n__div(X1,X2)) -> div(activate(X1),X2) activate(n__minus(X1,X2)) -> minus(X1,X2) activate(X) -> X graph: if#(false(),X,Y) -> activate#(Y) -> activate#(n__0()) -> 0#() if#(false(),X,Y) -> activate#(Y) -> activate#(n__s(X)) -> activate#(X) if#(false(),X,Y) -> activate#(Y) -> activate#(n__s(X)) -> s#(activate(X)) if#(false(),X,Y) -> activate#(Y) -> activate#(n__div(X1,X2)) -> activate#(X1) if#(false(),X,Y) -> activate#(Y) -> activate#(n__div(X1,X2)) -> div#(activate(X1),X2) if#(false(),X,Y) -> activate#(Y) -> activate#(n__minus(X1,X2)) -> minus#(X1,X2) if#(true(),X,Y) -> activate#(X) -> activate#(n__0()) -> 0#() if#(true(),X,Y) -> activate#(X) -> activate#(n__s(X)) -> activate#(X) if#(true(),X,Y) -> activate#(X) -> activate#(n__s(X)) -> s#(activate(X)) if#(true(),X,Y) -> activate#(X) -> activate#(n__div(X1,X2)) -> activate#(X1) if#(true(),X,Y) -> activate#(X) -> activate#(n__div(X1,X2)) -> div#(activate(X1),X2) if#(true(),X,Y) -> activate#(X) -> activate#(n__minus(X1,X2)) -> minus#(X1,X2) div#(s(X),n__s(Y)) -> if#(geq(X,activate(Y)),n__s(n__div(n__minus(X,activate(Y)),n__s(activate(Y)))),n__0()) -> if#(true(),X,Y) -> activate#(X) div#(s(X),n__s(Y)) -> if#(geq(X,activate(Y)),n__s(n__div(n__minus(X,activate(Y)),n__s(activate(Y)))),n__0()) -> if#(false(),X,Y) -> activate#(Y) div#(s(X),n__s(Y)) -> geq#(X,activate(Y)) -> geq#(n__s(X),n__s(Y)) -> activate#(Y) div#(s(X),n__s(Y)) -> geq#(X,activate(Y)) -> geq#(n__s(X),n__s(Y)) -> activate#(X) div#(s(X),n__s(Y)) -> geq#(X,activate(Y)) -> geq#(n__s(X),n__s(Y)) -> geq#(activate(X),activate(Y)) div#(s(X),n__s(Y)) -> activate#(Y) -> activate#(n__0()) -> 0#() div#(s(X),n__s(Y)) -> activate#(Y) -> activate#(n__s(X)) -> activate#(X) div#(s(X),n__s(Y)) -> activate#(Y) -> activate#(n__s(X)) -> s#(activate(X)) div#(s(X),n__s(Y)) -> activate#(Y) -> activate#(n__div(X1,X2)) -> activate#(X1) div#(s(X),n__s(Y)) -> activate#(Y) -> activate#(n__div(X1,X2)) -> div#(activate(X1),X2) div#(s(X),n__s(Y)) -> activate#(Y) -> activate#(n__minus(X1,X2)) -> minus#(X1,X2) geq#(n__s(X),n__s(Y)) -> geq#(activate(X),activate(Y)) -> geq#(n__s(X),n__s(Y)) -> activate#(Y) geq#(n__s(X),n__s(Y)) -> geq#(activate(X),activate(Y)) -> geq#(n__s(X),n__s(Y)) -> activate#(X) geq#(n__s(X),n__s(Y)) -> geq#(activate(X),activate(Y)) -> geq#(n__s(X),n__s(Y)) -> geq#(activate(X),activate(Y)) geq#(n__s(X),n__s(Y)) -> activate#(X) -> activate#(n__0()) -> 0#() geq#(n__s(X),n__s(Y)) -> activate#(X) -> activate#(n__s(X)) -> activate#(X) geq#(n__s(X),n__s(Y)) -> activate#(X) -> activate#(n__s(X)) -> s#(activate(X)) geq#(n__s(X),n__s(Y)) -> activate#(X) -> activate#(n__div(X1,X2)) -> activate#(X1) geq#(n__s(X),n__s(Y)) -> activate#(X) -> activate#(n__div(X1,X2)) -> div#(activate(X1),X2) geq#(n__s(X),n__s(Y)) -> activate#(X) -> activate#(n__minus(X1,X2)) -> minus#(X1,X2) geq#(n__s(X),n__s(Y)) -> activate#(Y) -> activate#(n__0()) -> 0#() geq#(n__s(X),n__s(Y)) -> activate#(Y) -> activate#(n__s(X)) -> activate#(X) geq#(n__s(X),n__s(Y)) -> activate#(Y) -> activate#(n__s(X)) -> s#(activate(X)) geq#(n__s(X),n__s(Y)) -> activate#(Y) -> activate#(n__div(X1,X2)) -> activate#(X1) geq#(n__s(X),n__s(Y)) -> activate#(Y) -> activate#(n__div(X1,X2)) -> div#(activate(X1),X2) geq#(n__s(X),n__s(Y)) -> activate#(Y) -> activate#(n__minus(X1,X2)) -> minus#(X1,X2) activate#(n__div(X1,X2)) -> div#(activate(X1),X2) -> div#(s(X),n__s(Y)) -> activate#(Y) activate#(n__div(X1,X2)) -> div#(activate(X1),X2) -> div#(s(X),n__s(Y)) -> geq#(X,activate(Y)) activate#(n__div(X1,X2)) -> div#(activate(X1),X2) -> div#(s(X),n__s(Y)) -> if#(geq(X,activate(Y)),n__s(n__div(n__minus(X,activate(Y)),n__s(activate(Y)))),n__0()) activate#(n__div(X1,X2)) -> activate#(X1) -> activate#(n__0()) -> 0#() activate#(n__div(X1,X2)) -> activate#(X1) -> activate#(n__s(X)) -> activate#(X) activate#(n__div(X1,X2)) -> activate#(X1) -> activate#(n__s(X)) -> s#(activate(X)) activate#(n__div(X1,X2)) -> activate#(X1) -> activate#(n__div(X1,X2)) -> activate#(X1) activate#(n__div(X1,X2)) -> activate#(X1) -> activate#(n__div(X1,X2)) -> div#(activate(X1),X2) activate#(n__div(X1,X2)) -> activate#(X1) -> activate#(n__minus(X1,X2)) -> minus#(X1,X2) activate#(n__minus(X1,X2)) -> minus#(X1,X2) -> minus#(n__0(),Y) -> 0#() activate#(n__minus(X1,X2)) -> minus#(X1,X2) -> minus#(n__s(X),n__s(Y)) -> activate#(Y) activate#(n__minus(X1,X2)) -> minus#(X1,X2) -> minus#(n__s(X),n__s(Y)) -> activate#(X) activate#(n__minus(X1,X2)) -> minus#(X1,X2) -> minus#(n__s(X),n__s(Y)) -> minus#(activate(X),activate(Y)) activate#(n__s(X)) -> activate#(X) -> activate#(n__0()) -> 0#() activate#(n__s(X)) -> activate#(X) -> activate#(n__s(X)) -> activate#(X) activate#(n__s(X)) -> activate#(X) -> activate#(n__s(X)) -> s#(activate(X)) activate#(n__s(X)) -> activate#(X) -> activate#(n__div(X1,X2)) -> activate#(X1) activate#(n__s(X)) -> activate#(X) -> activate#(n__div(X1,X2)) -> div#(activate(X1),X2) activate#(n__s(X)) -> activate#(X) -> activate#(n__minus(X1,X2)) -> minus#(X1,X2) minus#(n__s(X),n__s(Y)) -> activate#(X) -> activate#(n__0()) -> 0#() minus#(n__s(X),n__s(Y)) -> activate#(X) -> activate#(n__s(X)) -> activate#(X) minus#(n__s(X),n__s(Y)) -> activate#(X) -> activate#(n__s(X)) -> s#(activate(X)) minus#(n__s(X),n__s(Y)) -> activate#(X) -> activate#(n__div(X1,X2)) -> activate#(X1) minus#(n__s(X),n__s(Y)) -> activate#(X) -> activate#(n__div(X1,X2)) -> div#(activate(X1),X2) minus#(n__s(X),n__s(Y)) -> activate#(X) -> activate#(n__minus(X1,X2)) -> minus#(X1,X2) minus#(n__s(X),n__s(Y)) -> activate#(Y) -> activate#(n__0()) -> 0#() minus#(n__s(X),n__s(Y)) -> activate#(Y) -> activate#(n__s(X)) -> activate#(X) minus#(n__s(X),n__s(Y)) -> activate#(Y) -> activate#(n__s(X)) -> s#(activate(X)) minus#(n__s(X),n__s(Y)) -> activate#(Y) -> activate#(n__div(X1,X2)) -> activate#(X1) minus#(n__s(X),n__s(Y)) -> activate#(Y) -> activate#(n__div(X1,X2)) -> div#(activate(X1),X2) minus#(n__s(X),n__s(Y)) -> activate#(Y) -> activate#(n__minus(X1,X2)) -> minus#(X1,X2) minus#(n__s(X),n__s(Y)) -> minus#(activate(X),activate(Y)) -> minus#(n__0(),Y) -> 0#() minus#(n__s(X),n__s(Y)) -> minus#(activate(X),activate(Y)) -> minus#(n__s(X),n__s(Y)) -> activate#(Y) minus#(n__s(X),n__s(Y)) -> minus#(activate(X),activate(Y)) -> minus#(n__s(X),n__s(Y)) -> activate#(X) minus#(n__s(X),n__s(Y)) -> minus#(activate(X),activate(Y)) -> minus#(n__s(X),n__s(Y)) -> minus#(activate(X),activate(Y)) Restore Modifier: DPs: minus#(n__0(),Y) -> 0#() minus#(n__s(X),n__s(Y)) -> activate#(Y) minus#(n__s(X),n__s(Y)) -> activate#(X) minus#(n__s(X),n__s(Y)) -> minus#(activate(X),activate(Y)) geq#(n__s(X),n__s(Y)) -> activate#(Y) geq#(n__s(X),n__s(Y)) -> activate#(X) geq#(n__s(X),n__s(Y)) -> geq#(activate(X),activate(Y)) div#(s(X),n__s(Y)) -> activate#(Y) div#(s(X),n__s(Y)) -> geq#(X,activate(Y)) div#(s(X),n__s(Y)) -> if#(geq(X,activate(Y)),n__s(n__div(n__minus(X,activate(Y)),n__s(activate(Y)))),n__0()) if#(true(),X,Y) -> activate#(X) if#(false(),X,Y) -> activate#(Y) activate#(n__0()) -> 0#() activate#(n__s(X)) -> activate#(X) activate#(n__s(X)) -> s#(activate(X)) activate#(n__div(X1,X2)) -> activate#(X1) activate#(n__div(X1,X2)) -> div#(activate(X1),X2) activate#(n__minus(X1,X2)) -> minus#(X1,X2) TRS: minus(n__0(),Y) -> 0() minus(n__s(X),n__s(Y)) -> minus(activate(X),activate(Y)) geq(X,n__0()) -> true() geq(n__0(),n__s(Y)) -> false() geq(n__s(X),n__s(Y)) -> geq(activate(X),activate(Y)) div(0(),n__s(Y)) -> 0() div(s(X),n__s(Y)) -> if(geq(X,activate(Y)),n__s(n__div(n__minus(X,activate(Y)),n__s(activate(Y)))),n__0()) if(true(),X,Y) -> activate(X) if(false(),X,Y) -> activate(Y) 0() -> n__0() s(X) -> n__s(X) div(X1,X2) -> n__div(X1,X2) minus(X1,X2) -> n__minus(X1,X2) activate(n__0()) -> 0() activate(n__s(X)) -> s(activate(X)) activate(n__div(X1,X2)) -> div(activate(X1),X2) activate(n__minus(X1,X2)) -> minus(X1,X2) activate(X) -> X SCC Processor: #sccs: 1 #rules: 15 #arcs: 73/324 DPs: if#(false(),X,Y) -> activate#(Y) activate#(n__minus(X1,X2)) -> minus#(X1,X2) minus#(n__s(X),n__s(Y)) -> minus#(activate(X),activate(Y)) minus#(n__s(X),n__s(Y)) -> activate#(X) activate#(n__div(X1,X2)) -> div#(activate(X1),X2) div#(s(X),n__s(Y)) -> if#(geq(X,activate(Y)),n__s(n__div(n__minus(X,activate(Y)),n__s(activate(Y)))),n__0()) if#(true(),X,Y) -> activate#(X) activate#(n__div(X1,X2)) -> activate#(X1) activate#(n__s(X)) -> activate#(X) div#(s(X),n__s(Y)) -> geq#(X,activate(Y)) geq#(n__s(X),n__s(Y)) -> geq#(activate(X),activate(Y)) geq#(n__s(X),n__s(Y)) -> activate#(X) geq#(n__s(X),n__s(Y)) -> activate#(Y) div#(s(X),n__s(Y)) -> activate#(Y) minus#(n__s(X),n__s(Y)) -> activate#(Y) TRS: minus(n__0(),Y) -> 0() minus(n__s(X),n__s(Y)) -> minus(activate(X),activate(Y)) geq(X,n__0()) -> true() geq(n__0(),n__s(Y)) -> false() geq(n__s(X),n__s(Y)) -> geq(activate(X),activate(Y)) div(0(),n__s(Y)) -> 0() div(s(X),n__s(Y)) -> if(geq(X,activate(Y)),n__s(n__div(n__minus(X,activate(Y)),n__s(activate(Y)))),n__0()) if(true(),X,Y) -> activate(X) if(false(),X,Y) -> activate(Y) 0() -> n__0() s(X) -> n__s(X) div(X1,X2) -> n__div(X1,X2) minus(X1,X2) -> n__minus(X1,X2) activate(n__0()) -> 0() activate(n__s(X)) -> s(activate(X)) activate(n__div(X1,X2)) -> div(activate(X1),X2) activate(n__minus(X1,X2)) -> minus(X1,X2) activate(X) -> X Open