2016-10-15 05:58:05 -0500 received badge ● Supporter (source) 2015-03-17 18:07:48 -0500 commented question max_symbolic and distributive law with multiplication You are of course right, and I simply forgot to copy the corresponding lines from my worksheet. They are included now. 2015-03-17 18:06:12 -0500 received badge ● Editor (source) 2015-03-17 03:45:14 -0500 received badge ● Student (source) 2015-03-17 00:12:56 -0500 asked a question max_symbolic and distributive law with multiplication Minimum and maximum are distributive over multiplication of non-negative numbers, i.e., if a,b,c >= 0 then a * max{ b, c } = max { ab, ac } and the same works for min{}. How can I exploit this in sagemath? Consider the followiing: n=5 x=var(['x_'+str(i+1) for i in range(n)]) # (x_1, x_2, x_3, x_4, x_5) assume([x[i] >= 0 for i in range(n)]) assumptions() # [x_1 >= 0, x_2 >= 0, x_3 >= 0, x_4 >= 0, x_5 >= 0]  This does not work as expected: y = max_symbolic( x * max_symbolic(x,x), x * max_symbolic(x,x) ) # y == max(x_5*max(x_1, x_2), x_1*max(x_3, x_4)) simplify(y) # max(x_1*max(x_3, x_4), x_5*max(x_1, x_2))  Simplify does not do the simplification I want it to do, which should yield ## max(max(x_1*x_3, x_1*x_4), max(x_5*x_1, x_5*x_2))  or even better ## max(x_1*x_3, x_1*x_4, x_5*x_1, x_5*x_2)  Needless to say, I have also tried expand and full_simplify. None of them does the trick. So, I wonder, am I missing out on some other fancy function here, or is there a (hopefully easy) way to add a distributive law-feature to the max_symbolic function?