YES Problem: strict: f(x,c(y)) -> f(x,s(f(y,y))) f(s(x),y) -> f(x,s(c(y))) weak: rand(x) -> x rand(x) -> rand(s(x)) Proof: Matrix Interpretation Processor: dim=2 interpretation: [2 0] [1 1] [1] [f](x0, x1) = [0 0]x0 + [0 0]x1 + [2], [2 0] [2] [rand](x0) = [0 3]x0 + [0], [1 1] [0] [c](x0) = [2 1]x0 + [2], [1 0] [s](x0) = [0 0]x0 orientation: [2 0] [3 2] [3] [2 0] [3 1] [2] f(x,c(y)) = [0 0]x + [0 0]y + [2] >= [0 0]x + [0 0]y + [2] = f(x,s(f(y,y))) [2 0] [1 1] [1] [2 0] [1 1] [1] f(s(x),y) = [0 0]x + [0 0]y + [2] >= [0 0]x + [0 0]y + [2] = f(x,s(c(y))) [2 0] [2] rand(x) = [0 3]x + [0] >= x = x [2 0] [2] [2 0] [2] rand(x) = [0 3]x + [0] >= [0 0]x + [0] = rand(s(x)) problem: strict: f(s(x),y) -> f(x,s(c(y))) weak: rand(x) -> rand(s(x)) Matrix Interpretation Processor: dim=5 interpretation: [1 1 0 0 1] [1 0 1 0 0] [1] [0 0 0 0 0] [0 0 0 0 0] [0] [f](x0, x1) = [0 0 0 0 0]x0 + [0 0 0 0 0]x1 + [0] [0 0 0 0 1] [0 0 0 0 0] [1] [0 1 1 1 1] [1 0 0 0 1] [0], [1 0 1 1 0] [0 0 1 1 0] [rand](x0) = [0 0 0 0 0]x0 [0 0 0 0 0] [0 0 0 0 0] , [1 0 0 0 0] [0] [0 0 0 0 0] [1] [c](x0) = [1 0 0 0 1]x0 + [0] [0 0 0 0 0] [1] [0 0 0 0 1] [1], [1 0 0 0 0] [0] [0 1 0 0 1] [1] [s](x0) = [0 0 0 1 0]x0 + [0] [0 0 1 0 0] [0] [0 0 0 0 1] [1] orientation: [1 1 0 0 2] [1 0 1 0 0] [3] [1 1 0 0 1] [1 0 0 0 0] [2] [0 0 0 0 0] [0 0 0 0 0] [0] [0 0 0 0 0] [0 0 0 0 0] [0] f(s(x),y) = [0 0 0 0 0]x + [0 0 0 0 0]y + [0] >= [0 0 0 0 0]x + [0 0 0 0 0]y + [0] = f(x,s(c(y))) [0 0 0 0 1] [0 0 0 0 0] [2] [0 0 0 0 1] [0 0 0 0 0] [1] [0 1 1 1 2] [1 0 0 0 1] [2] [0 1 1 1 1] [1 0 0 0 1] [2] [1 0 1 1 0] [1 0 1 1 0] [0 0 1 1 0] [0 0 1 1 0] rand(x) = [0 0 0 0 0]x >= [0 0 0 0 0]x = rand(s(x)) [0 0 0 0 0] [0 0 0 0 0] [0 0 0 0 0] [0 0 0 0 0] problem: strict: weak: rand(x) -> rand(s(x)) Qed