YES Problem: cond(true(),x,y) -> cond(and(gr(x,0()),gr(y,0())),p(x),p(y)) and(true(),true()) -> true() and(x,false()) -> false() and(false(),x) -> false() gr(0(),0()) -> false() gr(0(),x) -> false() gr(s(x),0()) -> true() gr(s(x),s(y)) -> gr(x,y) p(0()) -> 0() p(s(x)) -> x Proof: DP Processor: DPs: cond#(true(),x,y) -> p#(y) cond#(true(),x,y) -> p#(x) cond#(true(),x,y) -> gr#(y,0()) cond#(true(),x,y) -> gr#(x,0()) cond#(true(),x,y) -> and#(gr(x,0()),gr(y,0())) cond#(true(),x,y) -> cond#(and(gr(x,0()),gr(y,0())),p(x),p(y)) gr#(s(x),s(y)) -> gr#(x,y) TRS: cond(true(),x,y) -> cond(and(gr(x,0()),gr(y,0())),p(x),p(y)) and(true(),true()) -> true() and(x,false()) -> false() and(false(),x) -> false() gr(0(),0()) -> false() gr(0(),x) -> false() gr(s(x),0()) -> true() gr(s(x),s(y)) -> gr(x,y) p(0()) -> 0() p(s(x)) -> x TDG Processor: DPs: cond#(true(),x,y) -> p#(y) cond#(true(),x,y) -> p#(x) cond#(true(),x,y) -> gr#(y,0()) cond#(true(),x,y) -> gr#(x,0()) cond#(true(),x,y) -> and#(gr(x,0()),gr(y,0())) cond#(true(),x,y) -> cond#(and(gr(x,0()),gr(y,0())),p(x),p(y)) gr#(s(x),s(y)) -> gr#(x,y) TRS: cond(true(),x,y) -> cond(and(gr(x,0()),gr(y,0())),p(x),p(y)) and(true(),true()) -> true() and(x,false()) -> false() and(false(),x) -> false() gr(0(),0()) -> false() gr(0(),x) -> false() gr(s(x),0()) -> true() gr(s(x),s(y)) -> gr(x,y) p(0()) -> 0() p(s(x)) -> x graph: gr#(s(x),s(y)) -> gr#(x,y) -> gr#(s(x),s(y)) -> gr#(x,y) cond#(true(),x,y) -> gr#(y,0()) -> gr#(s(x),s(y)) -> gr#(x,y) cond#(true(),x,y) -> gr#(x,0()) -> gr#(s(x),s(y)) -> gr#(x,y) cond#(true(),x,y) -> cond#(and(gr(x,0()),gr(y,0())),p(x),p(y)) -> cond#(true(),x,y) -> cond#(and(gr(x,0()),gr(y,0())),p(x),p(y)) cond#(true(),x,y) -> cond#(and(gr(x,0()),gr(y,0())),p(x),p(y)) -> cond#(true(),x,y) -> and#(gr(x,0()),gr(y,0())) cond#(true(),x,y) -> cond#(and(gr(x,0()),gr(y,0())),p(x),p(y)) -> cond#(true(),x,y) -> gr#(x,0()) cond#(true(),x,y) -> cond#(and(gr(x,0()),gr(y,0())),p(x),p(y)) -> cond#(true(),x,y) -> gr#(y,0()) cond#(true(),x,y) -> cond#(and(gr(x,0()),gr(y,0())),p(x),p(y)) -> cond#(true(),x,y) -> p#(x) cond#(true(),x,y) -> cond#(and(gr(x,0()),gr(y,0())),p(x),p(y)) -> cond#(true(),x,y) -> p#(y) EDG Processor: DPs: cond#(true(),x,y) -> p#(y) cond#(true(),x,y) -> p#(x) cond#(true(),x,y) -> gr#(y,0()) cond#(true(),x,y) -> gr#(x,0()) cond#(true(),x,y) -> and#(gr(x,0()),gr(y,0())) cond#(true(),x,y) -> cond#(and(gr(x,0()),gr(y,0())),p(x),p(y)) gr#(s(x),s(y)) -> gr#(x,y) TRS: cond(true(),x,y) -> cond(and(gr(x,0()),gr(y,0())),p(x),p(y)) and(true(),true()) -> true() and(x,false()) -> false() and(false(),x) -> false() gr(0(),0()) -> false() gr(0(),x) -> false() gr(s(x),0()) -> true() gr(s(x),s(y)) -> gr(x,y) p(0()) -> 0() p(s(x)) -> x graph: gr#(s(x),s(y)) -> gr#(x,y) -> gr#(s(x),s(y)) -> gr#(x,y) cond#(true(),x,y) -> cond#(and(gr(x,0()),gr(y,0())),p(x),p(y)) -> cond#(true(),x,y) -> p#(y) cond#(true(),x,y) -> cond#(and(gr(x,0()),gr(y,0())),p(x),p(y)) -> cond#(true(),x,y) -> p#(x) cond#(true(),x,y) -> cond#(and(gr(x,0()),gr(y,0())),p(x),p(y)) -> cond#(true(),x,y) -> gr#(y,0()) cond#(true(),x,y) -> cond#(and(gr(x,0()),gr(y,0())),p(x),p(y)) -> cond#(true(),x,y) -> gr#(x,0()) cond#(true(),x,y) -> cond#(and(gr(x,0()),gr(y,0())),p(x),p(y)) -> cond#(true(),x,y) -> and#(gr(x,0()),gr(y,0())) cond#(true(),x,y) -> cond#(and(gr(x,0()),gr(y,0())),p(x),p(y)) -> cond#(true(),x,y) -> cond#(and(gr(x,0()),gr(y,0())),p(x),p(y)) SCC Processor: #sccs: 2 #rules: 2 #arcs: 7/49 DPs: cond#(true(),x,y) -> cond#(and(gr(x,0()),gr(y,0())),p(x),p(y)) TRS: cond(true(),x,y) -> cond(and(gr(x,0()),gr(y,0())),p(x),p(y)) and(true(),true()) -> true() and(x,false()) -> false() and(false(),x) -> false() gr(0(),0()) -> false() gr(0(),x) -> false() gr(s(x),0()) -> true() gr(s(x),s(y)) -> gr(x,y) p(0()) -> 0() p(s(x)) -> x Matrix Interpretation Processor: dim=1 interpretation: [cond#](x0, x1, x2) = x0 + 2x2, [s](x0) = 2x0 + 1, [false] = 0, [p](x0) = 1/2x0, [and](x0, x1) = 2x1, [gr](x0, x1) = 1/2x0, [0] = 0, [cond](x0, x1, x2) = x0 + x1 + 2x2, [true] = 1/2 orientation: cond#(true(),x,y) = 2y + 1/2 >= 2y = cond#(and(gr(x,0()),gr(y,0())),p(x),p(y)) cond(true(),x,y) = x + 2y + 1/2 >= 1/2x + 2y = cond(and(gr(x,0()),gr(y,0())),p(x),p(y)) and(true(),true()) = 1 >= 1/2 = true() and(x,false()) = 0 >= 0 = false() and(false(),x) = 2x >= 0 = false() gr(0(),0()) = 0 >= 0 = false() gr(0(),x) = 0 >= 0 = false() gr(s(x),0()) = x + 1/2 >= 1/2 = true() gr(s(x),s(y)) = x + 1/2 >= 1/2x = gr(x,y) p(0()) = 0 >= 0 = 0() p(s(x)) = x + 1/2 >= x = x problem: DPs: TRS: cond(true(),x,y) -> cond(and(gr(x,0()),gr(y,0())),p(x),p(y)) and(true(),true()) -> true() and(x,false()) -> false() and(false(),x) -> false() gr(0(),0()) -> false() gr(0(),x) -> false() gr(s(x),0()) -> true() gr(s(x),s(y)) -> gr(x,y) p(0()) -> 0() p(s(x)) -> x Qed DPs: gr#(s(x),s(y)) -> gr#(x,y) TRS: cond(true(),x,y) -> cond(and(gr(x,0()),gr(y,0())),p(x),p(y)) and(true(),true()) -> true() and(x,false()) -> false() and(false(),x) -> false() gr(0(),0()) -> false() gr(0(),x) -> false() gr(s(x),0()) -> true() gr(s(x),s(y)) -> gr(x,y) p(0()) -> 0() p(s(x)) -> x KBO Processor: argument filtering: pi(true) = [] pi(cond) = 1 pi(0) = [] pi(gr) = [1] pi(and) = [1] pi(p) = 0 pi(false) = [] pi(s) = [0] pi(gr#) = 0 weight function: w0 = 1 w(gr#) = w(false) = w(and) = w(0) = w(cond) = w(true) = 1 w(s) = w(p) = w(gr) = 0 precedence: s ~ and ~ gr ~ 0 ~ cond > gr# ~ false ~ p ~ true problem: DPs: TRS: cond(true(),x,y) -> cond(and(gr(x,0()),gr(y,0())),p(x),p(y)) and(true(),true()) -> true() and(x,false()) -> false() and(false(),x) -> false() gr(0(),0()) -> false() gr(0(),x) -> false() gr(s(x),0()) -> true() gr(s(x),s(y)) -> gr(x,y) p(0()) -> 0() p(s(x)) -> x Qed