Section Double_round_plus_FLX.
Variable prec : Z.
Variable prec' : Z.
Context { prec_gt_0_ : Prec_gt_0 prec }.
Context { prec_gt_0_' : Prec_gt_0 prec' }.

(* Specifications: *)
Lemma FLX_double_round_plus_hyp :
(2 * prec + 1 <= prec')%Z ->
double_round_plus_hyp (FLX_exp prec) (FLX_exp prec').
Theorem double_round_plus_FLX :
forall choice1 choice2,
(2 * prec + 1 <= prec')%Z ->
forall x y,
FLX_format beta prec x -> FLX_format beta prec y ->
double_round_eq (FLX_exp prec) (FLX_exp prec') choice1 choice2 (x + y).
Theorem double_round_minus_FLX :
forall choice1 choice2,
(2 * prec + 1 <= prec')%Z ->
forall x y,
FLX_format beta prec x -> FLX_format beta prec y ->
double_round_eq (FLX_exp prec) (FLX_exp prec') choice1 choice2 (x - y).
Lemma FLX_double_round_plus_hyp :
(2 * prec + 1 <= prec')%Z ->
double_round_plus_hyp (FLX_exp prec) (FLX_exp prec').
Theorem double_round_plus_FLX :
forall choice1 choice2,
(2 * prec + 1 <= prec')%Z ->
forall x y,
FLX_format beta prec x -> FLX_format beta prec y ->
double_round_eq (FLX_exp prec) (FLX_exp prec') choice1 choice2 (x + y).
Theorem double_round_minus_FLX :
forall choice1 choice2,
(2 * prec + 1 <= prec')%Z ->
forall x y,
FLX_format beta prec x -> FLX_format beta prec y ->
double_round_eq (FLX_exp prec) (FLX_exp prec') choice1 choice2 (x - y).