YES Problem: cond(true(),x,y,z) -> cond(and(gr(x,z),gr(y,z)),p(x),p(y),z) 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,z) -> p#(y) cond#(true(),x,y,z) -> p#(x) cond#(true(),x,y,z) -> gr#(y,z) cond#(true(),x,y,z) -> gr#(x,z) cond#(true(),x,y,z) -> and#(gr(x,z),gr(y,z)) cond#(true(),x,y,z) -> cond#(and(gr(x,z),gr(y,z)),p(x),p(y),z) gr#(s(x),s(y)) -> gr#(x,y) TRS: cond(true(),x,y,z) -> cond(and(gr(x,z),gr(y,z)),p(x),p(y),z) 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,z) -> p#(y) cond#(true(),x,y,z) -> p#(x) cond#(true(),x,y,z) -> gr#(y,z) cond#(true(),x,y,z) -> gr#(x,z) cond#(true(),x,y,z) -> and#(gr(x,z),gr(y,z)) cond#(true(),x,y,z) -> cond#(and(gr(x,z),gr(y,z)),p(x),p(y),z) gr#(s(x),s(y)) -> gr#(x,y) TRS: cond(true(),x,y,z) -> cond(and(gr(x,z),gr(y,z)),p(x),p(y),z) 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,z) -> gr#(y,z) -> gr#(s(x),s(y)) -> gr#(x,y) cond#(true(),x,y,z) -> gr#(x,z) -> gr#(s(x),s(y)) -> gr#(x,y) cond#(true(),x,y,z) -> cond#(and(gr(x,z),gr(y,z)),p(x),p(y),z) -> cond#(true(),x,y,z) -> cond#(and(gr(x,z),gr(y,z)),p(x),p(y),z) cond#(true(),x,y,z) -> cond#(and(gr(x,z),gr(y,z)),p(x),p(y),z) -> cond#(true(),x,y,z) -> and#(gr(x,z),gr(y,z)) cond#(true(),x,y,z) -> cond#(and(gr(x,z),gr(y,z)),p(x),p(y),z) -> cond#(true(),x,y,z) -> gr#(x,z) cond#(true(),x,y,z) -> cond#(and(gr(x,z),gr(y,z)),p(x),p(y),z) -> cond#(true(),x,y,z) -> gr#(y,z) cond#(true(),x,y,z) -> cond#(and(gr(x,z),gr(y,z)),p(x),p(y),z) -> cond#(true(),x,y,z) -> p#(x) cond#(true(),x,y,z) -> cond#(and(gr(x,z),gr(y,z)),p(x),p(y),z) -> cond#(true(),x,y,z) -> p#(y) SCC Processor: #sccs: 2 #rules: 2 #arcs: 9/49 DPs: cond#(true(),x,y,z) -> cond#(and(gr(x,z),gr(y,z)),p(x),p(y),z) TRS: cond(true(),x,y,z) -> cond(and(gr(x,z),gr(y,z)),p(x),p(y),z) 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, x3) = 2x0 + 3x1 + 3x2 + 3, [s](x0) = 2x0 + 3, [0] = 0, [false] = 0, [p](x0) = 1/2x0, [and](x0, x1) = 1/2x0 + 1/2x1 + 1/2, [gr](x0, x1) = x0, [cond](x0, x1, x2, x3) = 3x1 + 2x2 + x3 + 7/2, [true] = 2 orientation: cond#(true(),x,y,z) = 3x + 3y + 7 >= 5/2x + 5/2y + 4 = cond#(and(gr(x,z),gr(y,z)),p(x),p(y),z) cond(true(),x,y,z) = 3x + 2y + z + 7/2 >= 3/2x + y + z + 7/2 = cond(and(gr(x,z),gr(y,z)),p(x),p(y),z) and(true(),true()) = 5/2 >= 2 = true() and(x,false()) = 1/2x + 1/2 >= 0 = false() and(false(),x) = 1/2x + 1/2 >= 0 = false() gr(0(),0()) = 0 >= 0 = false() gr(0(),x) = 0 >= 0 = false() gr(s(x),0()) = 2x + 3 >= 2 = true() gr(s(x),s(y)) = 2x + 3 >= x = gr(x,y) p(0()) = 0 >= 0 = 0() p(s(x)) = x + 3/2 >= x = x problem: DPs: TRS: cond(true(),x,y,z) -> cond(and(gr(x,z),gr(y,z)),p(x),p(y),z) 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,z) -> cond(and(gr(x,z),gr(y,z)),p(x),p(y),z) 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 Subterm Criterion Processor: simple projection: pi(gr#) = 1 problem: DPs: TRS: cond(true(),x,y,z) -> cond(and(gr(x,z),gr(y,z)),p(x),p(y),z) 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