polynomial: add ability to change the underlying SR
pseudo_linear: implement simplification
sparse_vec: fix a few bugs
semilinear: implement better simplification