let mult u1 u2 = let resl, expl = List.fold_left (fun (l', expl) b1 -> List.fold_left (fun (l, ex) b2 -> let bl, bu, ex' = mult_bornes b1 b2 in (bl, bu)::l, Ex.union ex ex') (l', expl) u2.ints) ([], Ex.empty) u1.ints in union { ints=resl; is_int = u1.is_int; expl = Ex.union expl (Ex.union u1.expl u2.expl) }