Global Instance valid_rnd_NA : Valid_rnd (Znearest (Zle_bool 0)) := valid_rnd_N _.

(* Specifications: *)
Theorem round_NA_pt : forall x, Rnd_NA_pt generic_format x (round (Znearest (Zle_bool 0)) x).
Theorem Znearest_opp : forall choice x, Znearest choice (- x) = (- Znearest (fun t => negb (choice (- (t + 1))%Z)) x)%Z.
Theorem round_N_opp : forall choice, forall x, round (Znearest choice) (-x) = (- round (Znearest (fun t => negb (choice (- (t + 1))%Z))) x)%R.
Theorem generic_inclusion_ln_beta : forall x, ( x <> R0 -> (fexp2 (ln_beta beta x) <= fexp1 (ln_beta beta x))%Z ) -> generic_format fexp1 x -> generic_format fexp2 x.
Theorem generic_inclusion_lt_ge : forall e1 e2, ( forall e, (e1 < e <= e2)%Z -> (fexp2 e <= fexp1 e)%Z ) -> forall x, (bpow e1 <= Rabs x < bpow e2)%R -> generic_format fexp1 x -> generic_format fexp2 x.
Theorem generic_inclusion : forall e, (fexp2 e <= fexp1 e)%Z -> forall x, (bpow (e - 1) <= Rabs x <= bpow e)%R -> generic_format fexp1 x -> generic_format fexp2 x.
Theorem generic_inclusion_le_ge : forall e1 e2, (e1 < e2)%Z -> ( forall e, (e1 < e <= e2)%Z -> (fexp2 e <= fexp1 e)%Z ) -> forall x, (bpow e1 <= Rabs x <= bpow e2)%R -> generic_format fexp1 x -> generic_format fexp2 x.
Theorem generic_inclusion_le : forall e2, ( forall e, (e <= e2)%Z -> (fexp2 e <= fexp1 e)%Z ) -> forall x, (Rabs x <= bpow e2)%R -> generic_format fexp1 x -> generic_format fexp2 x.
Theorem generic_inclusion_ge : forall e1, ( forall e, (e1 < e)%Z -> (fexp2 e <= fexp1 e)%Z ) -> forall x, (bpow e1 <= Rabs x)%R -> generic_format fexp1 x -> generic_format fexp2 x.
Theorem generic_round_generic : forall x, generic_format fexp1 x -> generic_format fexp1 (round fexp2 rnd x).
Theorem round_NA_pt : forall x, Rnd_NA_pt generic_format x (round (Znearest (Zle_bool 0)) x).
Theorem Znearest_opp : forall choice x, Znearest choice (- x) = (- Znearest (fun t => negb (choice (- (t + 1))%Z)) x)%Z.
Theorem round_N_opp : forall choice, forall x, round (Znearest choice) (-x) = (- round (Znearest (fun t => negb (choice (- (t + 1))%Z))) x)%R.
Theorem generic_inclusion_ln_beta : forall x, ( x <> R0 -> (fexp2 (ln_beta beta x) <= fexp1 (ln_beta beta x))%Z ) -> generic_format fexp1 x -> generic_format fexp2 x.
Theorem generic_inclusion_lt_ge : forall e1 e2, ( forall e, (e1 < e <= e2)%Z -> (fexp2 e <= fexp1 e)%Z ) -> forall x, (bpow e1 <= Rabs x < bpow e2)%R -> generic_format fexp1 x -> generic_format fexp2 x.
Theorem generic_inclusion : forall e, (fexp2 e <= fexp1 e)%Z -> forall x, (bpow (e - 1) <= Rabs x <= bpow e)%R -> generic_format fexp1 x -> generic_format fexp2 x.
Theorem generic_inclusion_le_ge : forall e1 e2, (e1 < e2)%Z -> ( forall e, (e1 < e <= e2)%Z -> (fexp2 e <= fexp1 e)%Z ) -> forall x, (bpow e1 <= Rabs x <= bpow e2)%R -> generic_format fexp1 x -> generic_format fexp2 x.
Theorem generic_inclusion_le : forall e2, ( forall e, (e <= e2)%Z -> (fexp2 e <= fexp1 e)%Z ) -> forall x, (Rabs x <= bpow e2)%R -> generic_format fexp1 x -> generic_format fexp2 x.
Theorem generic_inclusion_ge : forall e1, ( forall e, (e1 < e)%Z -> (fexp2 e <= fexp1 e)%Z ) -> forall x, (bpow e1 <= Rabs x)%R -> generic_format fexp1 x -> generic_format fexp2 x.
Theorem generic_round_generic : forall x, generic_format fexp1 x -> generic_format fexp1 (round fexp2 rnd x).