let variable_choose p a =
try
List.iter
(fun m ->
let q = coefficient_of_mono m in
let x = variable_of_mono m in
if p q x then raise(FoundVariable(x)))
(nonconstant_monomials_of a);
raise Not_found
with
FoundVariable(x) -> x