let nb_roots = function p -> if degree (p) = 0 then 0 else let q = square_free_with_the_same_roots (p) in (nb_roots_in (q)) (no_root_out (q))