End Double_round_sqrt_beta_ge_4_FTZ.
End Double_round_sqrt_beta_ge_4.
End Double_round_sqrt.
Section Double_round_div.

Lemma double_round_all_mid_cases :
forall fexp1 fexp2 : Z -> Z,
Valid_exp fexp1 -> Valid_exp fexp2 ->
forall (choice1 choice2 : Z -> bool),
forall x,
0 < x ->
(fexp2 (ln_beta x) <= fexp1 (ln_beta x) - 1)%Z ->
((fexp1 (ln_beta x) = ln_beta x + 1 :> Z)%Z ->
bpow (ln_beta x) - / 2 * ulp beta fexp2 x <= x ->
double_round_eq fexp1 fexp2 choice1 choice2 x) ->
((fexp1 (ln_beta x) <= ln_beta x)%Z ->
midp fexp1 x - / 2 * ulp beta fexp2 x <= x < midp fexp1 x ->
double_round_eq fexp1 fexp2 choice1 choice2 x) ->
((fexp1 (ln_beta x) <= ln_beta x)%Z ->
x = midp fexp1 x ->
double_round_eq fexp1 fexp2 choice1 choice2 x) ->
((fexp1 (ln_beta x) <= ln_beta x)%Z ->
midp fexp1 x < x <= midp fexp1 x + / 2 * ulp beta fexp2 x ->
double_round_eq fexp1 fexp2 choice1 choice2 x) ->
double_round_eq fexp1 fexp2 choice1 choice2 x.