The below steps assume that there's some polynomial type (could just be a length-N list) and support functions that are aware of that type.
order(p1)
- returns the order of polynomialp1
highest(p1)
- highest order coefficient ofp1
add(p1, p2)
- adds two polynomialssub(p1, p2)
- subtracts two polynomials