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