(** * Properties of the primitive operators for the Binary64 format *)

Notation valid_binary := (valid_binary prec emax).Definition SF64classify := SFclassify prec.Definition SF64mul := SFmul prec emax.Definition SF64add := SFadd prec emax.Definition SF64sub := SFsub prec emax.Definition SF64div := SFdiv prec emax.Definition SF64sqrt := SFsqrt prec emax.Definition SF64succ := SFsucc prec emax.Definition SF64pred := SFpred prec emax.Axiom Prim2SF_valid : forall x, valid_binary (Prim2SF x) = true.Axiom SF2Prim_Prim2SF : forall x, SF2Prim (Prim2SF x) = x.Axiom Prim2SF_SF2Prim : forall x, valid_binary x = true -> Prim2SF (SF2Prim x) = x.

(* Specifications: *)
Theorem Prim2SF_inj : forall x y, Prim2SF x = Prim2SF y -> x = y.
Theorem SF2Prim_inj : forall x y, SF2Prim x = SF2Prim y -> valid_binary x = true -> valid_binary y = true -> x = y.