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))