let div i1 i2 = let inv_i2 = inv i2 in if inv_i2.ints = [Minfty, Pinfty] then inv_i2 else let i1 = match doesnt_contain_0 i2 with | Sig.Yes ex -> add_expl_zero i1 ex | Sig.No -> i1 in let ({ints=l; is_int=is_int} as i) = mult i1 inv_i2 in let l = if is_int then List.map (fun (l,u) -> int_div_bornes l u) l else l in { i with ints = l }