YES Problem: norm(nil()) -> 0() norm(g(x,y)) -> s(norm(x)) f(x,nil()) -> g(nil(),x) f(x,g(y,z)) -> g(f(x,y),z) rem(nil(),y) -> nil() rem(g(x,y),0()) -> g(x,y) rem(g(x,y),s(z)) -> rem(x,z) Proof: DP Processor: DPs: norm#(g(x,y)) -> norm#(x) f#(x,g(y,z)) -> f#(x,y) rem#(g(x,y),s(z)) -> rem#(x,z) TRS: norm(nil()) -> 0() norm(g(x,y)) -> s(norm(x)) f(x,nil()) -> g(nil(),x) f(x,g(y,z)) -> g(f(x,y),z) rem(nil(),y) -> nil() rem(g(x,y),0()) -> g(x,y) rem(g(x,y),s(z)) -> rem(x,z) Matrix Interpretation Processor: dim=1 interpretation: [rem#](x0, x1) = 4x0 + 4, [f#](x0, x1) = 2x1, [norm#](x0) = 5x0, [rem](x0, x1) = 2x0 + 3x1 + 1, [f](x0, x1) = 6x1, [s](x0) = 7x0, [g](x0, x1) = 4x0 + 4, [0] = 0, [norm](x0) = 0, [nil] = 2 orientation: norm#(g(x,y)) = 20x + 20 >= 5x = norm#(x) f#(x,g(y,z)) = 8y + 8 >= 2y = f#(x,y) rem#(g(x,y),s(z)) = 16x + 20 >= 4x + 4 = rem#(x,z) norm(nil()) = 0 >= 0 = 0() norm(g(x,y)) = 0 >= 0 = s(norm(x)) f(x,nil()) = 12 >= 12 = g(nil(),x) f(x,g(y,z)) = 24y + 24 >= 24y + 4 = g(f(x,y),z) rem(nil(),y) = 3y + 5 >= 2 = nil() rem(g(x,y),0()) = 8x + 9 >= 4x + 4 = g(x,y) rem(g(x,y),s(z)) = 8x + 21z + 9 >= 2x + 3z + 1 = rem(x,z) problem: DPs: TRS: norm(nil()) -> 0() norm(g(x,y)) -> s(norm(x)) f(x,nil()) -> g(nil(),x) f(x,g(y,z)) -> g(f(x,y),z) rem(nil(),y) -> nil() rem(g(x,y),0()) -> g(x,y) rem(g(x,y),s(z)) -> rem(x,z) Qed