oh no! a huge bug in Canon mkLinear function, where "x .+. x" was only becoming 1x instead of 2x
simplify must return the end partial assignment, as solve won't give us the values of removed vars
very rough pretty printing of canon into cplex/lp form