let low_approximation_of_roots =
  let rec f = function
    (* f : int -> rat *)
    (* to get 10 raised to the power -n where n >= 0 *)
    n -> if n = 0
           then cons_rat ("1""1")
           else mult_rat (cons_rat ("1""10"), f (n - 1))
  in
    function p, n -> ((List.map (lower_bound)) (list_of_root_bounding_intervals (p, f (n))))