YES Problem: cond1(true(),x) -> cond2(even(x),x) cond2(true(),x) -> cond1(neq(x,0()),div2(x)) cond2(false(),x) -> cond1(neq(x,0()),p(x)) neq(0(),0()) -> false() neq(0(),s(x)) -> true() neq(s(x),0()) -> true() neq(s(x),s(y())) -> neq(x,y()) even(0()) -> true() even(s(0())) -> false() even(s(s(x))) -> even(x) div2(0()) -> 0() div2(s(0())) -> 0() div2(s(s(x))) -> s(div2(x)) p(0()) -> 0() p(s(x)) -> x Proof: DP Processor: DPs: cond1#(true(),x) -> even#(x) cond1#(true(),x) -> cond2#(even(x),x) cond2#(true(),x) -> div2#(x) cond2#(true(),x) -> neq#(x,0()) cond2#(true(),x) -> cond1#(neq(x,0()),div2(x)) cond2#(false(),x) -> p#(x) cond2#(false(),x) -> neq#(x,0()) cond2#(false(),x) -> cond1#(neq(x,0()),p(x)) neq#(s(x),s(y())) -> neq#(x,y()) even#(s(s(x))) -> even#(x) div2#(s(s(x))) -> div2#(x) TRS: cond1(true(),x) -> cond2(even(x),x) cond2(true(),x) -> cond1(neq(x,0()),div2(x)) cond2(false(),x) -> cond1(neq(x,0()),p(x)) neq(0(),0()) -> false() neq(0(),s(x)) -> true() neq(s(x),0()) -> true() neq(s(x),s(y())) -> neq(x,y()) even(0()) -> true() even(s(0())) -> false() even(s(s(x))) -> even(x) div2(0()) -> 0() div2(s(0())) -> 0() div2(s(s(x))) -> s(div2(x)) p(0()) -> 0() p(s(x)) -> x TDG Processor: DPs: cond1#(true(),x) -> even#(x) cond1#(true(),x) -> cond2#(even(x),x) cond2#(true(),x) -> div2#(x) cond2#(true(),x) -> neq#(x,0()) cond2#(true(),x) -> cond1#(neq(x,0()),div2(x)) cond2#(false(),x) -> p#(x) cond2#(false(),x) -> neq#(x,0()) cond2#(false(),x) -> cond1#(neq(x,0()),p(x)) neq#(s(x),s(y())) -> neq#(x,y()) even#(s(s(x))) -> even#(x) div2#(s(s(x))) -> div2#(x) TRS: cond1(true(),x) -> cond2(even(x),x) cond2(true(),x) -> cond1(neq(x,0()),div2(x)) cond2(false(),x) -> cond1(neq(x,0()),p(x)) neq(0(),0()) -> false() neq(0(),s(x)) -> true() neq(s(x),0()) -> true() neq(s(x),s(y())) -> neq(x,y()) even(0()) -> true() even(s(0())) -> false() even(s(s(x))) -> even(x) div2(0()) -> 0() div2(s(0())) -> 0() div2(s(s(x))) -> s(div2(x)) p(0()) -> 0() p(s(x)) -> x graph: neq#(s(x),s(y())) -> neq#(x,y()) -> neq#(s(x),s(y())) -> neq#(x,y()) div2#(s(s(x))) -> div2#(x) -> div2#(s(s(x))) -> div2#(x) cond2#(false(),x) -> neq#(x,0()) -> neq#(s(x),s(y())) -> neq#(x,y()) cond2#(false(),x) -> cond1#(neq(x,0()),p(x)) -> cond1#(true(),x) -> cond2#(even(x),x) cond2#(false(),x) -> cond1#(neq(x,0()),p(x)) -> cond1#(true(),x) -> even#(x) cond2#(true(),x) -> neq#(x,0()) -> neq#(s(x),s(y())) -> neq#(x,y()) cond2#(true(),x) -> div2#(x) -> div2#(s(s(x))) -> div2#(x) cond2#(true(),x) -> cond1#(neq(x,0()),div2(x)) -> cond1#(true(),x) -> cond2#(even(x),x) cond2#(true(),x) -> cond1#(neq(x,0()),div2(x)) -> cond1#(true(),x) -> even#(x) even#(s(s(x))) -> even#(x) -> even#(s(s(x))) -> even#(x) cond1#(true(),x) -> cond2#(even(x),x) -> cond2#(false(),x) -> cond1#(neq(x,0()),p(x)) cond1#(true(),x) -> cond2#(even(x),x) -> cond2#(false(),x) -> neq#(x,0()) cond1#(true(),x) -> cond2#(even(x),x) -> cond2#(false(),x) -> p#(x) cond1#(true(),x) -> cond2#(even(x),x) -> cond2#(true(),x) -> cond1#(neq(x,0()),div2(x)) cond1#(true(),x) -> cond2#(even(x),x) -> cond2#(true(),x) -> neq#(x,0()) cond1#(true(),x) -> cond2#(even(x),x) -> cond2#(true(),x) -> div2#(x) cond1#(true(),x) -> even#(x) -> even#(s(s(x))) -> even#(x) EDG Processor: DPs: cond1#(true(),x) -> even#(x) cond1#(true(),x) -> cond2#(even(x),x) cond2#(true(),x) -> div2#(x) cond2#(true(),x) -> neq#(x,0()) cond2#(true(),x) -> cond1#(neq(x,0()),div2(x)) cond2#(false(),x) -> p#(x) cond2#(false(),x) -> neq#(x,0()) cond2#(false(),x) -> cond1#(neq(x,0()),p(x)) neq#(s(x),s(y())) -> neq#(x,y()) even#(s(s(x))) -> even#(x) div2#(s(s(x))) -> div2#(x) TRS: cond1(true(),x) -> cond2(even(x),x) cond2(true(),x) -> cond1(neq(x,0()),div2(x)) cond2(false(),x) -> cond1(neq(x,0()),p(x)) neq(0(),0()) -> false() neq(0(),s(x)) -> true() neq(s(x),0()) -> true() neq(s(x),s(y())) -> neq(x,y()) even(0()) -> true() even(s(0())) -> false() even(s(s(x))) -> even(x) div2(0()) -> 0() div2(s(0())) -> 0() div2(s(s(x))) -> s(div2(x)) p(0()) -> 0() p(s(x)) -> x graph: div2#(s(s(x))) -> div2#(x) -> div2#(s(s(x))) -> div2#(x) cond2#(false(),x) -> cond1#(neq(x,0()),p(x)) -> cond1#(true(),x) -> even#(x) cond2#(false(),x) -> cond1#(neq(x,0()),p(x)) -> cond1#(true(),x) -> cond2#(even(x),x) cond2#(true(),x) -> div2#(x) -> div2#(s(s(x))) -> div2#(x) cond2#(true(),x) -> cond1#(neq(x,0()),div2(x)) -> cond1#(true(),x) -> even#(x) cond2#(true(),x) -> cond1#(neq(x,0()),div2(x)) -> cond1#(true(),x) -> cond2#(even(x),x) even#(s(s(x))) -> even#(x) -> even#(s(s(x))) -> even#(x) cond1#(true(),x) -> cond2#(even(x),x) -> cond2#(true(),x) -> div2#(x) cond1#(true(),x) -> cond2#(even(x),x) -> cond2#(true(),x) -> neq#(x,0()) cond1#(true(),x) -> cond2#(even(x),x) -> cond2#(true(),x) -> cond1#(neq(x,0()),div2(x)) cond1#(true(),x) -> cond2#(even(x),x) -> cond2#(false(),x) -> p#(x) cond1#(true(),x) -> cond2#(even(x),x) -> cond2#(false(),x) -> neq#(x,0()) cond1#(true(),x) -> cond2#(even(x),x) -> cond2#(false(),x) -> cond1#(neq(x,0()),p(x)) cond1#(true(),x) -> even#(x) -> even#(s(s(x))) -> even#(x) SCC Processor: #sccs: 3 #rules: 5 #arcs: 14/121 DPs: cond2#(false(),x) -> cond1#(neq(x,0()),p(x)) cond1#(true(),x) -> cond2#(even(x),x) cond2#(true(),x) -> cond1#(neq(x,0()),div2(x)) TRS: cond1(true(),x) -> cond2(even(x),x) cond2(true(),x) -> cond1(neq(x,0()),div2(x)) cond2(false(),x) -> cond1(neq(x,0()),p(x)) neq(0(),0()) -> false() neq(0(),s(x)) -> true() neq(s(x),0()) -> true() neq(s(x),s(y())) -> neq(x,y()) even(0()) -> true() even(s(0())) -> false() even(s(s(x))) -> even(x) div2(0()) -> 0() div2(s(0())) -> 0() div2(s(s(x))) -> s(div2(x)) p(0()) -> 0() p(s(x)) -> x Matrix Interpretation Processor: dim=1 interpretation: [cond2#](x0, x1) = 3/2x1 + 1/2, [cond1#](x0, x1) = x0 + 2x1, [y] = 5/2, [s](x0) = 2x0 + 2, [p](x0) = 1/2x0, [false] = 0, [div2](x0) = 1/2x0, [neq](x0, x1) = 1/2x0 + x1, [0] = 0, [cond2](x0, x1) = 1/2x0 + 2x1 + 1, [even](x0) = 1, [cond1](x0, x1) = x0 + 2x1 + 1/2, [true] = 1 orientation: cond2#(false(),x) = 3/2x + 1/2 >= 3/2x = cond1#(neq(x,0()),p(x)) cond1#(true(),x) = 2x + 1 >= 3/2x + 1/2 = cond2#(even(x),x) cond2#(true(),x) = 3/2x + 1/2 >= 3/2x = cond1#(neq(x,0()),div2(x)) cond1(true(),x) = 2x + 3/2 >= 2x + 3/2 = cond2(even(x),x) cond2(true(),x) = 2x + 3/2 >= 3/2x + 1/2 = cond1(neq(x,0()),div2(x)) cond2(false(),x) = 2x + 1 >= 3/2x + 1/2 = cond1(neq(x,0()),p(x)) neq(0(),0()) = 0 >= 0 = false() neq(0(),s(x)) = 2x + 2 >= 1 = true() neq(s(x),0()) = x + 1 >= 1 = true() neq(s(x),s(y())) = x + 8 >= 1/2x + 5/2 = neq(x,y()) even(0()) = 1 >= 1 = true() even(s(0())) = 1 >= 0 = false() even(s(s(x))) = 1 >= 1 = even(x) div2(0()) = 0 >= 0 = 0() div2(s(0())) = 1 >= 0 = 0() div2(s(s(x))) = 2x + 3 >= x + 2 = s(div2(x)) p(0()) = 0 >= 0 = 0() p(s(x)) = x + 1 >= x = x problem: DPs: TRS: cond1(true(),x) -> cond2(even(x),x) cond2(true(),x) -> cond1(neq(x,0()),div2(x)) cond2(false(),x) -> cond1(neq(x,0()),p(x)) neq(0(),0()) -> false() neq(0(),s(x)) -> true() neq(s(x),0()) -> true() neq(s(x),s(y())) -> neq(x,y()) even(0()) -> true() even(s(0())) -> false() even(s(s(x))) -> even(x) div2(0()) -> 0() div2(s(0())) -> 0() div2(s(s(x))) -> s(div2(x)) p(0()) -> 0() p(s(x)) -> x Qed DPs: even#(s(s(x))) -> even#(x) TRS: cond1(true(),x) -> cond2(even(x),x) cond2(true(),x) -> cond1(neq(x,0()),div2(x)) cond2(false(),x) -> cond1(neq(x,0()),p(x)) neq(0(),0()) -> false() neq(0(),s(x)) -> true() neq(s(x),0()) -> true() neq(s(x),s(y())) -> neq(x,y()) even(0()) -> true() even(s(0())) -> false() even(s(s(x))) -> even(x) div2(0()) -> 0() div2(s(0())) -> 0() div2(s(s(x))) -> s(div2(x)) p(0()) -> 0() p(s(x)) -> x KBO Processor: argument filtering: pi(true) = [] pi(cond1) = 1 pi(even) = [] pi(cond2) = 1 pi(0) = [] pi(neq) = [0] pi(div2) = 0 pi(false) = [] pi(p) = 0 pi(s) = [0] pi(y) = [] pi(even#) = 0 weight function: w0 = 1 w(even#) = w(y) = w(false) = w(div2) = w(0) = w(cond2) = w(even) = w( true) = 1 w(s) = w(p) = w(neq) = w(cond1) = 0 precedence: y ~ s ~ neq ~ even > even# ~ p ~ false ~ div2 ~ 0 ~ cond2 ~ cond1 ~ true problem: DPs: TRS: cond1(true(),x) -> cond2(even(x),x) cond2(true(),x) -> cond1(neq(x,0()),div2(x)) cond2(false(),x) -> cond1(neq(x,0()),p(x)) neq(0(),0()) -> false() neq(0(),s(x)) -> true() neq(s(x),0()) -> true() neq(s(x),s(y())) -> neq(x,y()) even(0()) -> true() even(s(0())) -> false() even(s(s(x))) -> even(x) div2(0()) -> 0() div2(s(0())) -> 0() div2(s(s(x))) -> s(div2(x)) p(0()) -> 0() p(s(x)) -> x Qed DPs: div2#(s(s(x))) -> div2#(x) TRS: cond1(true(),x) -> cond2(even(x),x) cond2(true(),x) -> cond1(neq(x,0()),div2(x)) cond2(false(),x) -> cond1(neq(x,0()),p(x)) neq(0(),0()) -> false() neq(0(),s(x)) -> true() neq(s(x),0()) -> true() neq(s(x),s(y())) -> neq(x,y()) even(0()) -> true() even(s(0())) -> false() even(s(s(x))) -> even(x) div2(0()) -> 0() div2(s(0())) -> 0() div2(s(s(x))) -> s(div2(x)) p(0()) -> 0() p(s(x)) -> x KBO Processor: argument filtering: pi(true) = [] pi(cond1) = 1 pi(even) = [] pi(cond2) = 1 pi(0) = [] pi(neq) = [0] pi(div2) = 0 pi(false) = [] pi(p) = 0 pi(s) = [0] pi(y) = [] pi(div2#) = 0 weight function: w0 = 1 w(div2#) = w(y) = w(false) = w(div2) = w(0) = w(cond2) = w(even) = w( true) = 1 w(s) = w(p) = w(neq) = w(cond1) = 0 precedence: y ~ s ~ neq ~ even > div2# ~ p ~ false ~ div2 ~ 0 ~ cond2 ~ cond1 ~ true problem: DPs: TRS: cond1(true(),x) -> cond2(even(x),x) cond2(true(),x) -> cond1(neq(x,0()),div2(x)) cond2(false(),x) -> cond1(neq(x,0()),p(x)) neq(0(),0()) -> false() neq(0(),s(x)) -> true() neq(s(x),0()) -> true() neq(s(x),s(y())) -> neq(x,y()) even(0()) -> true() even(s(0())) -> false() even(s(s(x))) -> even(x) div2(0()) -> 0() div2(s(0())) -> 0() div2(s(s(x))) -> s(div2(x)) p(0()) -> 0() p(s(x)) -> x Qed