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