let for_all p a =
    List.for_all 
      (fun m -> 
         p (coefficient_of_mono m) (variable_of_mono m))
      (nonconstant_monomials_of a)