Proof with auto with typeclass_instances.
intros x f (H1,H2).
split.
replace f with (-(-f))%R by ring.
now apply generic_format_opp.
destruct H2.
left.
replace f with (-(-f))%R by ring.
rewrite H; ring.
right.
destruct H as (H2,(g,(Hg1,(Hg2,Hg3)))).
split.
destruct H2.
right.
replace f with (-(-f))%R by ring.
replace x with (-(-x))%R by ring.
apply Rnd_DN_UP_pt_sym...
apply generic_format_opp.
left.
replace f with (-(-f))%R by ring.
replace x with (-(-x))%R by ring.
apply Rnd_UP_DN_pt_sym...
apply generic_format_opp.
exists (Float beta (-Fnum g) (Fexp g)).
split.
rewrite F2R_Zopp.
replace f with (-(-f))%R by ring.
rewrite Hg1; reflexivity.
split.
now apply canonic_opp.
simpl.
now rewrite Zeven_opp.
Qed.

(* Specifications: *)
Theorem round_odd_opp :
forall x,
(round beta fexp Zrnd_odd  (-x) = (- round beta fexp Zrnd_odd x))%R.
Theorem round_odd_pt :
forall x,
Rnd_odd_pt x (round beta fexp Zrnd_odd x).
Theorem round_odd_opp :
forall x,
(round beta fexp Zrnd_odd  (-x) = (- round beta fexp Zrnd_odd x))%R.
Theorem round_odd_pt :
forall x,
Rnd_odd_pt x (round beta fexp Zrnd_odd x).