Hint Resolve ler_opp2 ltr_opp2 real0 real1 normr_real : core.
Arguments ler_sqr {R} [x y].
Arguments ltr_sqr {R} [x y].
Arguments signr_inj {R} [x1 x2].
Arguments real_ler_normlP {R x y}.
Arguments real_ltr_normlP {R x y}.
Arguments lerif_refl {R x C}.
Arguments mono_in_lerif [R A f C].
Arguments nmono_in_lerif [R A f C].
Arguments mono_lerif [R f C].
Arguments nmono_lerif [R f C].
Section NumDomainMonotonyTheoryForReals.
Variables (R R' : numDomainType) (D : pred R) (f : R -> R') (f' : R -> nat).
Implicit Types (m n p : nat) (x y z : R) (u v w : R').

(* Specifications: *)
Lemma real_mono :
{homo f : x y / x < y} -> {in real &, {mono f : x y / x <= y}}.
Lemma real_nmono :
{homo f : x y /~ x < y} -> {in real &, {mono f : x y /~ x <= y}}.
Lemma real_mono_in :
{in D &, {homo f : x y / x < y}} ->
{in [pred x in D | x \is real] &, {mono f : x y / x <= y}}.
Lemma real_nmono_in :
{in D &, {homo f : x y /~ x < y}} ->
{in [pred x in D | x \is real] &, {mono f : x y /~ x <= y}}.
Lemma realn_mono : {homo f' : x y / x < y >-> (x < y)%N} ->
{in real &, {mono f' : x y / x <= y >-> (x <= y)%N}}.
Lemma realn_nmono : {homo f' : x y / y < x >-> (x < y)%N} ->
{in real &, {mono f' : x y / y <= x >-> (x <= y)%N}}.
Lemma realn_mono_in : {in D &, {homo f' : x y / x < y >-> (x < y)%N}} ->
{in [pred x in D | x \is real] &, {mono f' : x y / x <= y >-> (x <= y)%N}}.
Lemma realn_nmono_in : {in D &, {homo f' : x y / y < x >-> (x < y)%N}} ->
{in [pred x in D | x \is real] &, {mono f' : x y / y <= x >-> (x <= y)%N}}.