fact: Fixpoint isol_rec n d a b (l : seq R) acc : seq (root_info R) := match n with O => Unknown a b::acc | S p => match changes (seqn0 l) with | 0%nat => Zero_in a b::acc | 1%nat => One_in a b::acc | _ => let c := (a + b)/2%:R in let l2 := mkseq (dicho (2%:R^-1) (2%:R^-1) d (fun i => l`_i)) d.+1 in isol_rec p d a c (mkseq (dicho' (2%:R^-1) (2%:R^-1) (fun i => l`_i)) d.+1) (if l2`_0 == 0 then Exact c::isol_rec p d c b l2 acc else isol_rec p d c b l2 acc) end end.
imports: mathcomp(ssreflect ssrfun ssrbool eqtype ssrnat binomial seq choice order) mathcomp(fintype bigop ssralg poly ssrnum ssrint rat ssrnum) mathcomp(polyrcf qe_rcf_th realalg) pol poly_normal desc