Local Notation __ := (eq_refl Datatypes.Lt).(** ** NaN payload manipulations *)

(** The following definitions are not part of the IEEE754 standard but
    apply to all architectures supported by CompCert. *)

(** Transform a Nan payload to a quiet Nan payload. *)

Program Definition transform_quiet_pl (pl:nan_pl 53) : nan_pl 53 :=
  Pos.lor pl (iter_nat xO 51 xH).

(* Specifications: *)
Lemma nan_payload_fequal: forall prec (p1 p2: nan_pl prec), proj1_sig p1 = proj1_sig p2 -> p1 = p2.
Lemma lor_idempotent: forall x y, Pos.lor (Pos.lor x y) y = Pos.lor x y.
Lemma transform_quiet_pl_idempotent: forall pl, transform_quiet_pl (transform_quiet_pl pl) = transform_quiet_pl pl.
Lemma nan_payload_fequal: forall prec (p1 p2: nan_pl prec), proj1_sig p1 = proj1_sig p2 -> p1 = p2.
Lemma lor_idempotent: forall x y, Pos.lor (Pos.lor x y) y = Pos.lor x y.
Lemma transform_quiet_pl_idempotent: forall pl, transform_quiet_pl (transform_quiet_pl pl) = transform_quiet_pl pl.