let cast_float v =
    try
      let i = project_ival v in
      let b, i = Ival.cast_float i in
      false, b, inject_ival i
    with
      Not_based_on_null ->
        truetrue, topify_arith_origin v