Definition Rnd_NG_pt_unicity_prop F P :=
  forall x d u,
  Rnd_DN_pt F x d -> Rnd_N_pt F x d ->
  Rnd_UP_pt F x u -> Rnd_N_pt F x u ->
  P x d -> P x u -> d = u.

(* Specifications: *)
Theorem Rnd_NG_pt_unicity : forall (F : R -> Prop) (P : R -> R -> Prop), Rnd_NG_pt_unicity_prop F P -> forall x f1 f2 : R, Rnd_NG_pt F P x f1 -> Rnd_NG_pt F P x f2 -> f1 = f2.
Theorem Rnd_NG_pt_monotone : forall (F : R -> Prop) (P : R -> R -> Prop), Rnd_NG_pt_unicity_prop F P -> round_pred_monotone (Rnd_NG_pt F P).
Theorem Rnd_NG_pt_refl : forall (F : R -> Prop) (P : R -> R -> Prop), forall x, F x -> Rnd_NG_pt F P x x.
Theorem Rnd_NG_pt_sym : forall (F : R -> Prop) (P : R -> R -> Prop), ( forall x, F x -> F (-x) ) -> ( forall x f, P x f -> P (-x) (-f) ) -> forall x f : R, Rnd_NG_pt F P (-x) (-f) -> Rnd_NG_pt F P x f.
Theorem Rnd_NG_unicity : forall (F : R -> Prop) (P : R -> R -> Prop), Rnd_NG_pt_unicity_prop F P -> forall rnd1 rnd2 : R -> R, Rnd_NG F P rnd1 -> Rnd_NG F P rnd2 -> forall x, rnd1 x = rnd2 x.
Theorem Rnd_NA_NG_pt : forall F : R -> Prop, F 0 -> forall x f, Rnd_NA_pt F x f <-> Rnd_NG_pt F (fun x f => Rabs x <= Rabs f) x f.
Theorem Rnd_NA_pt_unicity_prop : forall F : R -> Prop, F 0 -> Rnd_NG_pt_unicity_prop F (fun a b => (Rabs a <= Rabs b)%R).
Theorem Rnd_NA_pt_unicity : forall F : R -> Prop, F 0 -> forall x f1 f2 : R, Rnd_NA_pt F x f1 -> Rnd_NA_pt F x f2 -> f1 = f2.
Theorem Rnd_NA_N_pt : forall F : R -> Prop, F 0 -> forall x f : R, Rnd_N_pt F x f -> (Rabs x <= Rabs f)%R -> Rnd_NA_pt F x f.
Theorem Rnd_NA_unicity : forall (F : R -> Prop), F 0 -> forall rnd1 rnd2 : R -> R, Rnd_NA F rnd1 -> Rnd_NA F rnd2 -> forall x, rnd1 x = rnd2 x.
Theorem Rnd_NA_pt_monotone : forall F : R -> Prop, F 0 -> round_pred_monotone (Rnd_NA_pt F).
Theorem Rnd_NA_pt_refl : forall F : R -> Prop, forall x : R, F x -> Rnd_NA_pt F x x.
Theorem Rnd_NA_pt_idempotent : forall F : R -> Prop, forall x f : R, Rnd_NA_pt F x f -> F x -> f = x.
Theorem round_pred_ge_0 : forall P : R -> R -> Prop, round_pred_monotone P -> P 0 0 -> forall x f, P x f -> 0 <= x -> 0 <= f.
Theorem round_pred_gt_0 : forall P : R -> R -> Prop, round_pred_monotone P -> P 0 0 -> forall x f, P x f -> 0 < f -> 0 < x.
Theorem round_pred_le_0 : forall P : R -> R -> Prop, round_pred_monotone P -> P 0 0 -> forall x f, P x f -> x <= 0 -> f <= 0.
Theorem round_pred_lt_0 : forall P : R -> R -> Prop, round_pred_monotone P -> P 0 0 -> forall x f, P x f -> f < 0 -> x < 0.
Theorem Rnd_DN_pt_equiv_format : forall F1 F2 : R -> Prop, forall a b : R, F1 a -> ( forall x, a <= x <= b -> (F1 x <-> F2 x) ) -> forall x f, a <= x <= b -> Rnd_DN_pt F1 x f -> Rnd_DN_pt F2 x f.
Theorem Rnd_UP_pt_equiv_format : forall F1 F2 : R -> Prop, forall a b : R, F1 b -> ( forall x, a <= x <= b -> (F1 x <-> F2 x) ) -> forall x f, a <= x <= b -> Rnd_UP_pt F1 x f -> Rnd_UP_pt F2 x f.
Theorem Rnd_NG_pt_unicity : forall (F : R -> Prop) (P : R -> R -> Prop), Rnd_NG_pt_unicity_prop F P -> forall x f1 f2 : R, Rnd_NG_pt F P x f1 -> Rnd_NG_pt F P x f2 -> f1 = f2.
Theorem Rnd_NG_pt_monotone : forall (F : R -> Prop) (P : R -> R -> Prop), Rnd_NG_pt_unicity_prop F P -> round_pred_monotone (Rnd_NG_pt F P).
Theorem Rnd_NG_pt_refl : forall (F : R -> Prop) (P : R -> R -> Prop), forall x, F x -> Rnd_NG_pt F P x x.
Theorem Rnd_NG_pt_sym : forall (F : R -> Prop) (P : R -> R -> Prop), ( forall x, F x -> F (-x) ) -> ( forall x f, P x f -> P (-x) (-f) ) -> forall x f : R, Rnd_NG_pt F P (-x) (-f) -> Rnd_NG_pt F P x f.
Theorem Rnd_NG_unicity : forall (F : R -> Prop) (P : R -> R -> Prop), Rnd_NG_pt_unicity_prop F P -> forall rnd1 rnd2 : R -> R, Rnd_NG F P rnd1 -> Rnd_NG F P rnd2 -> forall x, rnd1 x = rnd2 x.
Theorem Rnd_NA_NG_pt : forall F : R -> Prop, F 0 -> forall x f, Rnd_NA_pt F x f <-> Rnd_NG_pt F (fun x f => Rabs x <= Rabs f) x f.
Theorem Rnd_NA_pt_unicity_prop : forall F : R -> Prop, F 0 -> Rnd_NG_pt_unicity_prop F (fun a b => (Rabs a <= Rabs b)%R).
Theorem Rnd_NA_pt_unicity : forall F : R -> Prop, F 0 -> forall x f1 f2 : R, Rnd_NA_pt F x f1 -> Rnd_NA_pt F x f2 -> f1 = f2.
Theorem Rnd_NA_N_pt : forall F : R -> Prop, F 0 -> forall x f : R, Rnd_N_pt F x f -> (Rabs x <= Rabs f)%R -> Rnd_NA_pt F x f.
Theorem Rnd_NA_unicity : forall (F : R -> Prop), F 0 -> forall rnd1 rnd2 : R -> R, Rnd_NA F rnd1 -> Rnd_NA F rnd2 -> forall x, rnd1 x = rnd2 x.
Theorem Rnd_NA_pt_monotone : forall F : R -> Prop, F 0 -> round_pred_monotone (Rnd_NA_pt F).
Theorem Rnd_NA_pt_refl : forall F : R -> Prop, forall x : R, F x -> Rnd_NA_pt F x x.
Theorem Rnd_NA_pt_idempotent : forall F : R -> Prop, forall x f : R, Rnd_NA_pt F x f -> F x -> f = x.
Theorem round_pred_ge_0 : forall P : R -> R -> Prop, round_pred_monotone P -> P 0 0 -> forall x f, P x f -> 0 <= x -> 0 <= f.
Theorem round_pred_gt_0 : forall P : R -> R -> Prop, round_pred_monotone P -> P 0 0 -> forall x f, P x f -> 0 < f -> 0 < x.
Theorem round_pred_le_0 : forall P : R -> R -> Prop, round_pred_monotone P -> P 0 0 -> forall x f, P x f -> x <= 0 -> f <= 0.
Theorem round_pred_lt_0 : forall P : R -> R -> Prop, round_pred_monotone P -> P 0 0 -> forall x f, P x f -> f < 0 -> x < 0.
Theorem Rnd_DN_pt_equiv_format : forall F1 F2 : R -> Prop, forall a b : R, F1 a -> ( forall x, a <= x <= b -> (F1 x <-> F2 x) ) -> forall x f, a <= x <= b -> Rnd_DN_pt F1 x f -> Rnd_DN_pt F2 x f.
Theorem Rnd_UP_pt_equiv_format : forall F1 F2 : R -> Prop, forall a b : R, F1 b -> ( forall x, a <= x <= b -> (F1 x <-> F2 x) ) -> forall x f, a <= x <= b -> Rnd_UP_pt F1 x f -> Rnd_UP_pt F2 x f.