YES Problem: double(0()) -> 0() double(s(x)) -> s(s(double(x))) half(0()) -> 0() half(s(0())) -> 0() half(s(s(x))) -> s(half(x)) -(x,0()) -> x -(s(x),s(y)) -> -(x,y) if(0(),y,z) -> y if(s(x),y,z) -> z half(double(x)) -> x Proof: DP Processor: DPs: double#(s(x)) -> double#(x) half#(s(s(x))) -> half#(x) -#(s(x),s(y)) -> -#(x,y) TRS: double(0()) -> 0() double(s(x)) -> s(s(double(x))) half(0()) -> 0() half(s(0())) -> 0() half(s(s(x))) -> s(half(x)) -(x,0()) -> x -(s(x),s(y)) -> -(x,y) if(0(),y,z) -> y if(s(x),y,z) -> z half(double(x)) -> x Usable Rule Processor: DPs: double#(s(x)) -> double#(x) half#(s(s(x))) -> half#(x) -#(s(x),s(y)) -> -#(x,y) TRS: Arctic Interpretation Processor: dimension: 1 usable rules: interpretation: [-#](x0, x1) = x0 + 1x1, [half#](x0) = x0, [double#](x0) = x0, [s](x0) = 1x0 + -2 orientation: double#(s(x)) = 1x + -2 >= x = double#(x) half#(s(s(x))) = 2x + -1 >= x = half#(x) -#(s(x),s(y)) = 1x + 2y + -1 >= x + 1y = -#(x,y) problem: DPs: TRS: Qed