(* Definition of  comparison functions*)
 
Definition Feq (x y : float) := x = y :>R.Definition Fle (x y : float) := (x <= y)%R.Definition Flt (x y : float) := (x < y)%R.Definition Fge (x y : float) := (x >= y)%R.Definition Fgt (x y : float) := (x > y)%R.Definition Feq_bool (x y : float) :=
  match Fcompare x y with
  | Eq => true
  | _ => false
  end.

(* Specifications: *)
Theorem Feq_bool_correct_t : forall x y : float, Feq_bool x y = true -> Feq x y.
Theorem Feq_bool_correct_r : forall x y : float, Feq x y -> Feq_bool x y = true.
Theorem Feq_bool_correct_f : forall x y : float, Feq_bool x y = false -> ~ Feq x y.