Definition Fle_bool (x y : float) :=
  match Fcompare x y with
  | Lt => true
  | Eq => true
  | _ => false
  end.

(* Specifications: *)
Theorem Fle_bool_correct_t : forall x y : float, Fle_bool x y = true -> Fle x y.
Theorem Fle_bool_correct_r : forall x y : float, Fle x y -> Fle_bool x y = true.
Theorem Fle_bool_correct_f : forall x y : float, Fle_bool x y = false -> Flt y x.
Lemma Fle_Zle : forall n1 n2 d : Z, (n1 <= n2)%Z -> Fle (Float n1 d) (Float n2 d).
Lemma Flt_Zlt : forall n1 n2 d : Z, (n1 < n2)%Z -> Flt (Float n1 d) (Float n2 d).
Lemma Fle_Fge : forall x y : float, Fle x y -> Fge y x.
Lemma Fge_Zge : forall n1 n2 d : Z, (n1 >= n2)%Z -> Fge (Float n1 d) (Float n2 d).
Lemma Flt_Fgt : forall x y : float, Flt x y -> Fgt y x.
Lemma Fgt_Zgt : forall n1 n2 d : Z, (n1 > n2)%Z -> Fgt (Float n1 d) (Float n2 d).
Lemma Fle_refl : forall x y : float, Feq x y -> Fle x y.
Lemma Fle_trans : forall x y z : float, Fle x y -> Fle y z -> Fle x z.
Theorem Rlt_Fexp_eq_Zlt : forall x y : float, (x < y)%R -> Fexp x = Fexp y -> (Fnum x < Fnum y)%Z.
Theorem Rle_Fexp_eq_Zle : forall x y : float, (x <= y)%R -> Fexp x = Fexp y -> (Fnum x <= Fnum y)%Z.
Theorem LtR0Fnum : forall p : float, (0 < p)%R -> (0 < Fnum p)%Z.
Theorem LeR0Fnum : forall p : float, (0 <= p)%R -> (0 <= Fnum p)%Z.
Theorem LeFnumZERO : forall x : float, (0 <= Fnum x)%Z -> (0 <= x)%R.
Theorem R0LtFnum : forall p : float, (p < 0)%R -> (Fnum p < 0)%Z.
Theorem R0LeFnum : forall p : float, (p <= 0)%R -> (Fnum p <= 0)%Z.
Theorem LeZEROFnum : forall x : float, (Fnum x <= 0)%Z -> (x <= 0)%R.