proposition: Theorem generic_format_round : forall rnd { Hr : Valid_rnd rnd } x, generic_format (round rnd x).
proof: Proof. Proof with auto with typeclass_instances. intros rnd Zrnd x. destruct (total_order_T x 0) as [[Hx|Hx]|Hx]. rewrite <- (Ropp_involutive x). destruct (round_DN_or_UP rnd (- - x)) as [Hr|Hr] ; rewrite Hr. rewrite round_DN_opp. apply generic_format_opp. apply generic_format_round_pos... now apply Ropp_0_gt_lt_contravar. rewrite round_UP_opp. apply generic_format_opp. apply generic_format_round_pos... now apply Ropp_0_gt_lt_contravar. rewrite Hx. rewrite round_0... apply generic_format_0. now apply generic_format_round_pos. Qed.
imports: Coq(ZArith Reals Lia) Zaux Raux Defs Round_pred Float_prop