finish Poly.v!! finish fold_length_correct and fold_map, prove with assert, then prove better with O's version