YES Problem: double(0()) -> 0() double(s(x)) -> s(s(double(x))) +(x,0()) -> x +(x,s(y)) -> s(+(x,y)) +(s(x),y) -> s(+(x,y)) double(x) -> +(x,x) Proof: DP Processor: DPs: double#(s(x)) -> double#(x) +#(x,s(y)) -> +#(x,y) +#(s(x),y) -> +#(x,y) double#(x) -> +#(x,x) TRS: double(0()) -> 0() double(s(x)) -> s(s(double(x))) +(x,0()) -> x +(x,s(y)) -> s(+(x,y)) +(s(x),y) -> s(+(x,y)) double(x) -> +(x,x) Matrix Interpretation Processor: dim=1 interpretation: [+#](x0, x1) = 4x0 + x1 + 1, [double#](x0) = 5x0 + 2, [+](x0, x1) = x0 + x1, [s](x0) = x0 + 1, [double](x0) = 2x0 + 1, [0] = 0 orientation: double#(s(x)) = 5x + 7 >= 5x + 2 = double#(x) +#(x,s(y)) = 4x + y + 2 >= 4x + y + 1 = +#(x,y) +#(s(x),y) = 4x + y + 5 >= 4x + y + 1 = +#(x,y) double#(x) = 5x + 2 >= 5x + 1 = +#(x,x) double(0()) = 1 >= 0 = 0() double(s(x)) = 2x + 3 >= 2x + 3 = s(s(double(x))) +(x,0()) = x >= x = x +(x,s(y)) = x + y + 1 >= x + y + 1 = s(+(x,y)) +(s(x),y) = x + y + 1 >= x + y + 1 = s(+(x,y)) double(x) = 2x + 1 >= 2x = +(x,x) problem: DPs: TRS: double(0()) -> 0() double(s(x)) -> s(s(double(x))) +(x,0()) -> x +(x,s(y)) -> s(+(x,y)) +(s(x),y) -> s(+(x,y)) double(x) -> +(x,x) Qed