WIP: polynomial expressions implementation

use canonical ordering