Section Double_round_plus.
Definition round_round_plus_hyp fexp1 fexp2 :=
(forall ex ey, (fexp1 (ex + 1) - 1 <= ey)%Z -> (fexp2 ex <= fexp1 ey)%Z)
/\ (forall ex ey, (fexp1 (ex - 1) + 1 <= ey)%Z -> (fexp2 ex <= fexp1 ey)%Z)
/\ (forall ex ey, (fexp1 ex - 1 <= ey)%Z -> (fexp2 ex <= fexp1 ey)%Z)
/\ (forall ex ey, (ex - 1 <= ey)%Z -> (fexp2 ex <= fexp1 ey)%Z).

Lemma round_round_plus_aux1_aux :
forall k, (0 < k)%Z ->
forall (fexp : Z -> Z),
forall x y,
0 < x -> 0 < y ->
(mag y <= fexp (mag x) - k)%Z ->
(mag (x + y) = mag x :> Z) ->
generic_format beta fexp x ->
0 < (x + y) - round beta fexp Zfloor (x + y) < bpow (fexp (mag x) - k).