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) SCC Processor: #sccs: 4 #rules: 6 #arcs: 17/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 Usable Rule Processor: 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: p(0()) -> 0() p(s(x)) -> x neq(0(),0()) -> false() neq(s(x),0()) -> true() 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)) Arctic Interpretation Processor: dimension: 1 usable rules: p(0()) -> 0() p(s(x)) -> x neq(0(),0()) -> false() neq(s(x),0()) -> true() div2(0()) -> 0() div2(s(0())) -> 0() div2(s(s(x))) -> s(div2(x)) interpretation: [cond2#](x0, x1) = x1 + 1, [cond1#](x0, x1) = x0 + x1 + 0, [s](x0) = 3x0 + 4, [p](x0) = -3x0 + 1, [false] = 0, [div2](x0) = -3x0 + 0, [neq](x0, x1) = -3x0 + x1 + 0, [0] = 0, [even](x0) = x0 + 7, [true] = 1 orientation: cond2#(false(),x) = x + 1 >= -3x + 1 = cond1#(neq(x,0()),p(x)) cond1#(true(),x) = x + 1 >= x + 1 = cond2#(even(x),x) cond2#(true(),x) = x + 1 >= -3x + 0 = cond1#(neq(x,0()),div2(x)) p(0()) = 1 >= 0 = 0() p(s(x)) = x + 1 >= x = x neq(0(),0()) = 0 >= 0 = false() neq(s(x),0()) = x + 1 >= 1 = true() even(0()) = 7 >= 1 = true() even(s(0())) = 7 >= 0 = false() even(s(s(x))) = 6x + 7 >= x + 7 = even(x) div2(0()) = 0 >= 0 = 0() div2(s(0())) = 1 >= 0 = 0() div2(s(s(x))) = 3x + 4 >= x + 4 = s(div2(x)) problem: DPs: cond2#(false(),x) -> cond1#(neq(x,0()),p(x)) cond1#(true(),x) -> cond2#(even(x),x) TRS: p(0()) -> 0() p(s(x)) -> x neq(0(),0()) -> false() neq(s(x),0()) -> true() 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)) Restore Modifier: DPs: cond2#(false(),x) -> cond1#(neq(x,0()),p(x)) cond1#(true(),x) -> cond2#(even(x),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 Usable Rule Processor: DPs: cond2#(false(),x) -> cond1#(neq(x,0()),p(x)) cond1#(true(),x) -> cond2#(even(x),x) TRS: p(0()) -> 0() p(s(x)) -> x neq(0(),0()) -> false() neq(s(x),0()) -> true() even(0()) -> true() even(s(0())) -> false() even(s(s(x))) -> even(x) Arctic Interpretation Processor: dimension: 1 usable rules: p(0()) -> 0() p(s(x)) -> x neq(0(),0()) -> false() neq(s(x),0()) -> true() even(0()) -> true() even(s(0())) -> false() even(s(s(x))) -> even(x) interpretation: [cond2#](x0, x1) = 1x0 + x1 + -16, [cond1#](x0, x1) = -5x0 + 2x1 + 0, [s](x0) = 3x0 + 1, [p](x0) = -3x0 + 4, [false] = 6, [neq](x0, x1) = 4x0 + 3x1 + 0, [0] = 2, [even](x0) = 1x0 + -9, [true] = 2 orientation: cond2#(false(),x) = x + 7 >= -1x + 6 = cond1#(neq(x,0()),p(x)) cond1#(true(),x) = 2x + 0 >= 2x + -8 = cond2#(even(x),x) p(0()) = 4 >= 2 = 0() p(s(x)) = x + 4 >= x = x neq(0(),0()) = 6 >= 6 = false() neq(s(x),0()) = 7x + 5 >= 2 = true() even(0()) = 3 >= 2 = true() even(s(0())) = 6 >= 6 = false() even(s(s(x))) = 7x + 5 >= 1x + -9 = even(x) problem: DPs: cond1#(true(),x) -> cond2#(even(x),x) TRS: p(0()) -> 0() p(s(x)) -> x neq(0(),0()) -> false() neq(s(x),0()) -> true() even(0()) -> true() even(s(0())) -> false() even(s(s(x))) -> even(x) Restore Modifier: DPs: cond1#(true(),x) -> cond2#(even(x),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 SCC Processor: #sccs: 0 #rules: 0 #arcs: 4/1 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 Subterm Criterion Processor: simple projection: pi(even#) = 0 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 Subterm Criterion Processor: simple projection: pi(div2#) = 0 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: neq#(s(x),s(y())) -> neq#(x,y()) 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 Subterm Criterion Processor: simple projection: pi(neq#) = 1 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