Module mathcomp.analysis.ereal
From HB Require Import structures.From mathcomp Require Import boot order algebra interval_inference finmap.
#[warning="-warn-library-file-internal-analysis"]
From mathcomp Require Import unstable.
From mathcomp Require Import boolp classical_sets functions fsbigop cardinality
set_interval.
From mathcomp Require Import reals.
From mathcomp Require Export constructive_ereal.
From mathcomp Require Import topology.
Set Implicit Arguments.
Unset Strict Implicit.
Unset Printing Implicit Defensive.
Import Order.TTheory GRing.Theory Num.Theory.
Import numFieldTopology.Exports.
Local Open Scope ring_scope.
Local Open Scope ereal_scope.
Local Open Scope classical_set_scope.
Lemma
- mathcomp.analysis.numfun
Source code
(forall , 0 <= c x) -> (forall , 0 <= d x) ->
a \+ b \- (c \+ d) = a \- c \+ (b \- d).
Proof.
Lemma
- mathcomp.analysis.measurable_realfun
Source code
EFin @` (\bigcup_ F i) = \bigcup_ (EFin @` F i).
Proof.
by move=> x [n _ [r Fnr <- /=]]; exists r => //; exists n.
Qed.
Lemma
- mathcomp.analysis.measurable_realfun
Source code
EFin @` (~` A) = (~` (EFin @` A)) `\` [set -oo; +oo].
Proof.
by split => [|[]//]; apply: contra_not Ar => -[? ? [] <-].
- move=> [Ar _]; apply/not_exists2P; apply: contra_not Ar => h.
by exists r => //; have [|//] := h r; apply: contrapT.
- by move=> -[_] /not_orP[_ /=].
- by move=> -[_] /not_orP[/=].
Qed.
Local Close Scope classical_set_scope.
Notation
ereal_dual_scope.
Notation
ereal_scope.
Section ERealArith.
Context { : numDomainType}.
Implicit Types x y z : \bar R.
Local Open Scope classical_set_scope.
Lemma
- mathcomp.analysis.measurable_realfun
Source code
Proof.
Lemma
Proof.
by rewrite gt_eqF// (lt_le_trans _ (abse_ge0 t)).
Qed.
Lemma
- mathcomp.analysis.probability_theory.random_variable
Source code
{morph h : / (x + y)%R >-> (x + y)%E} ->
h \o (f \+ g)%R = ((h \o f) \+ (h \o g))%E.
Proof.
Lemma
{morph h : / (- x)%R >-> (- x)%E} ->
h \o (\- f)%R = \- (h \o f)%E.
Proof.
Lemma
{morph h : / (x - y)%R >-> (x - y)%E} ->
h \o (f \- g)%R = ((h \o f) \- (h \o g))%E.
Proof.
Lemma
{morph h : / (x * y)%R >-> (x * y)%E} ->
h \o (k \o* f) = (fun => h k * h (f t))%E.
Local Close Scope classical_set_scope.
End ERealArith.
Section ERealArithTh_numDomainType.
Context { : numDomainType}.
Implicit Types (x y z : \bar R) (r : R).
Lemma
Lemma
((A `<=` B) <-> (-%E @` A `<=` -%E @` B))%classic.
Proof.
Lemma
- mathcomp.analysis.esum
- mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_definition
Source code
(forall , P i -> 0 <= F i) -> 0 <= \sum_( \in P) F i.
Proof.
by rewrite big_seq_cond big_mkcondr sume_ge0// => i /XP/PF.
Qed.
Lemma
(forall , P t -> F t <= 0) -> \sum_( \in P) F i <= 0.
Proof.
by rewrite big_seq_cond big_mkcondr sume_le0// => i /XP/PF.
Qed.
Lemma
- mathcomp.experimental_reals.realsum
- mathcomp.analysis.esum
- mathcomp.analysis.lebesgue_integral_theory.radon_nikodym
- mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_fubini
- mathcomp.analysis.lebesgue_integral_theory.lebesgue_Rintegral
- mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_nonneg
- mathcomp.analysis.probability_theory.independence
- mathcomp.analysis.probability_theory.uniform_distribution
- mathcomp.analysis.kernel
Source code
\sum_( \in A) (F i)%:E = (\sum_( \in A) F i)%:E.
Proof.
End ERealArithTh_numDomainType.
Section ERealArithTh_realDomainType.
Context { : realDomainType}.
Implicit Types (x y z u a b : \bar R) (r : R).
Lemma
{in A &, {homo f : / (x <= y)%O}} ->
{in (EFin @` A)%classic &, {homo er_map f : / (x <= y)%E}}.
Proof.
Lemma
0 < \sum_( \in P) F i -> exists2 , P i & 0 < F i.
Proof.
Lemma
\sum_( \in P) F i < 0 -> exists2 , P i & F i < 0.
Proof.
Lemma
finite_set P ->
(forall , P i -> 0 <= F i) ->
\sum_( \in P) F i = 0 -> forall , P i -> F i = 0.
Proof.
Lemma
- mathcomp.analysis.esum
Source code
finite_set A -> finite_set B ->
{subset A <= B} -> {in [predD B & A], forall : T, 0 <= f t}%E ->
(\sum_( \in A) f t <= \sum_( \in B) f t)%E.
Proof.
by apply/fsubsetP; rewrite -fset_set_sub//; apply/subsetP.
by move=> t; rewrite !inE !in_fset_set// => /f0.
Qed.
Lemma
- mathcomp.analysis.esum
- mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_definition
- mathcomp.analysis.lebesgue_integral_theory.measurable_fun_approximation
Source code
finite_set I ->
(forall , I i -> a i <= b i)%E -> (\sum_( \in I) a i <= \sum_( \in I) b i)%E.
Proof.
rewrite !fsbig_finite// big_seq [in leRHS]big_seq lee_sum //.
by move=> i; rewrite in_fset_set// inE; exact: ab.
Qed.
Lemma
- mathcomp.analysis.esum
- mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_definition
- mathcomp.analysis.lebesgue_integral_theory.measurable_fun_approximation
- mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_nonneg
- mathcomp.analysis.probability_theory.uniform_distribution
Source code
(forall , P i -> 0 <= F i) ->
x * (\sum_( \in P) F i) = \sum_( \in P) x * F i.
Proof.
by rewrite mul0e big1// => ? _; rewrite mul0e.
rewrite big_seq ge0_sume_distrr.
by move=> t; case: finite_supportP => // X XP _ _ /XP/F0.
rewrite -big_seq; apply: eq_fbigl => y.
rewrite !unlock; congr (_ \in fset_set _).
apply/seteqP; rewrite /preimage; split=> [|] z/= [Pz Fz0];
split=> //; apply: contra_not Fz0.
by move=> /eqP; rewrite mule_eq0 (negbTE x0)/= => /eqP.
by move=> ->; rewrite mule0.
Qed.
Lemma
- mathcomp.analysis.lebesgue_integral_theory.radon_nikodym
- mathcomp.analysis.lebesgue_integral_theory.lebesgue_Rintegral
Source code
(forall , P i -> 0 <= F i) ->
(\sum_( \in P) F i) * x = \sum_( \in P) F i * x.
Proof.
End ERealArithTh_realDomainType.
Arguments lee_fsum [R T I a b].
Module
Import DualAddTheory.
Section DualERealArithTh_numDomainType.
Local Open Scope ereal_dual_scope.
Context { : numDomainType}.
Implicit Types x y z : \bar R.
Lemma
finite_support 0%E P (\- F)%E = finite_support 0%E P F.
Proof.
Lemma
(\sum_( \in P) F i)%dE = (- (\sum_( \in P) (- F i)))%E.
Proof.
apply: (big_ind2 (fun => x = - y)%E) => [|_ x _ y -> ->|i _].
- by rewrite oppe0.
- by rewrite dual_addeE !oppeK.
- by rewrite oppeK.
Qed.
Lemma
(forall , P i -> 0 <= F i) -> 0 <= \sum_( \in P) F i.
Proof.
by rewrite big_seq_cond big_mkcondr dsume_ge0// => i /XP/PF.
Qed.
Lemma
(forall , P t -> F t <= 0) -> \sum_( \in P) F i <= 0.
Proof.
by rewrite big_seq_cond big_mkcondr dsume_le0// => i /XP/PF.
Qed.
End DualERealArithTh_numDomainType.
Section DualERealArithTh_realDomainType.
Import DualAddTheory.
Local Open Scope ereal_dual_scope.
Context { : realDomainType}.
Implicit Types x y z a b : \bar^d R.
Lemma
0 < \sum_( \in P) F i -> exists2 , P i & 0 < F i.
Proof.
Lemma
\sum_( \in P) F i < 0 -> exists2 , P i & F i < 0.
Proof.
Lemma
finite_set P ->
(forall , P i -> 0 <= F i) ->
\sum_( \in P) F i = 0 -> forall , P i -> F i = 0.
Proof.
rewrite (fsbigD1 i)//= pdadde_eq0 ?F0 ?negb_and ?Fi0//.
by rewrite dfsume_ge0// => j [/F0->].
Qed.
Lemma
(forall : T, F i <= 0) -> x * (\sum_( \in P) F i) = \sum_( \in P) x * F i.
Proof.
rewrite !dual_fsumeE muleN ge0_mule_fsumr; first by move=> ?; rewrite oppe_ge0.
rewrite (eq_bigr _ (fun _ _ => muleN _ _)).
by rewrite (eq_finite_support _ (fun _ => muleN _ _)).
Qed.
Lemma
(forall : T, F i <= 0) -> (\sum_( \in P) F i) * x = \sum_( \in P) F i * x.
Proof.
End DualERealArithTh_realDomainType.
End DualAddTheoryNumDomain.
Module
Export ConstructiveDualAddTheory.
Export DualAddTheoryNumDomain.
End DualAddTheory.
.
Lemma
- mathcomp.analysis.lebesgue_integral_theory.lebesgue_integrable
- mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_nonneg
Source code
( : aT -> \bar R) : f = (f \_ (~` D)) \+ (f \_ D).
Proof.
Section ereal_supremum.
Variable : realFieldType.
Local Open Scope classical_set_scope.
Implicit Types (S : set (\bar R)) (x y : \bar R).
Lemma
Proof.
Lemma
Lemma
Proof.
Lemma
Proof.
Lemma
Lemma
Proof.
Lemma
- mathcomp.analysis.sequences
- mathcomp.analysis.realfun
Source code
Proof.
have sSoo : supremums S +oo.
split; first exact: ereal_ub_pinfty.
by move=> /= y /(_ _ Spoo); rewrite leye_eq => /eqP ->.
case: xgetP.
by move=> _ -> sSxget; move: (is_subset1_supremums sSoo sSxget).
by move=> /(_ +oo); exact: contra_notP.
Qed.
Definition
ereal_sup : forall [R : realFieldType], set \bar R -> constructive_ereal_extended__canonical__Order_POrder ereal_sup is not universe polymorphic Arguments ereal_sup [R] S%_classical_set_scope ereal_sup is transparent Expands to: Constant mathcomp.analysis.ereal.ereal_sup Declared in library mathcomp.analysis.ereal, line 416, characters 11-20
Used by
- mathcomp.analysis.lebesgue_measure
- mathcomp.analysis.esum
- mathcomp.analysis.sequences
- mathcomp.analysis.lebesgue_integral_theory.radon_nikodym
- mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_definition
- mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_monotone_convergence
- mathcomp.analysis.lebesgue_integral_theory.counting_lebesgue
- mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_differentiation
- mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_nonneg
- mathcomp.analysis.probability_theory.random_variable
- mathcomp.analysis.realfun
- mathcomp.analysis.kernel
- mathcomp.analysis.measure_theory.measure_extension
- mathcomp.analysis.measure_theory.signed_measure
- mathcomp.analysis.ess_sup_inf
- mathcomp.analysis.normedtype_theory.ereal_normedtype
Source code
Definition
ereal_inf : forall [R : realFieldType], set \bar R -> \bar R ereal_inf is not universe polymorphic Arguments ereal_inf [R] S%_classical_set_scope ereal_inf is transparent Expands to: Constant mathcomp.analysis.ereal.ereal_inf Declared in library mathcomp.analysis.ereal, line 418, characters 11-20
Used by
- mathcomp.analysis.lebesgue_measure
- mathcomp.analysis.sequences
- mathcomp.analysis.measurable_realfun
- mathcomp.analysis.probability_theory.random_variable
- mathcomp.analysis.topology_theory.edist
- mathcomp.analysis.realfun
- mathcomp.analysis.measure_theory.measure_extension
- mathcomp.analysis.measure_theory.signed_measure
- mathcomp.analysis.ess_sup_inf
- mathcomp.analysis.normedtype_theory.normed_module
- mathcomp.analysis.normedtype_theory.ereal_normedtype
Source code
Lemma
Proof.
Lemma
Lemma
- mathcomp.analysis.esum
- mathcomp.analysis.sequences
- mathcomp.analysis.lebesgue_integral_theory.radon_nikodym
- mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_nonneg
- mathcomp.analysis.realfun
- mathcomp.analysis.measure_theory.signed_measure
Source code
Proof.
Lemma
- mathcomp.analysis.topology_theory.edist
- mathcomp.analysis.ess_sup_inf
Source code
Proof.
Lemma
Proof.
Lemma
- mathcomp.analysis.topology_theory.edist
- mathcomp.analysis.realfun
Source code
Proof.
Lemma
- mathcomp.experimental_reals.realsum
- mathcomp.analysis.lebesgue_measure
- mathcomp.analysis.esum
- mathcomp.analysis.sequences
- mathcomp.analysis.lebesgue_integral_theory.radon_nikodym
- mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_definition
- mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_differentiation
- mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_nonneg
- mathcomp.analysis.realfun
- mathcomp.analysis.kernel
- mathcomp.analysis.measure_theory.measure_extension
Source code
Proof.
Lemma
- mathcomp.analysis.lebesgue_measure
- mathcomp.analysis.sequences
- mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_monotone_convergence
- mathcomp.analysis.probability_theory.random_variable
- mathcomp.analysis.topology_theory.edist
- mathcomp.analysis.realfun
- mathcomp.analysis.measure_theory.measure_extension
- mathcomp.analysis.normedtype_theory.ereal_normedtype
Source code
Proof.
by rewrite leeNl oppeK; exact: SM.
Qed.
Lemma
- mathcomp.analysis.lebesgue_integral_theory.radon_nikodym
- mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_monotone_convergence
- mathcomp.analysis.realfun
Source code
ereal_sup S \is a fin_num -> exists2 , S x & (ereal_sup S - e%:E < x).
Proof.
by move/ge_ereal_sup; apply/negP; rewrite -ltNge lteBlDr// lteDl// lte_fin.
move/asboolP; rewrite asbool_neg; case/existsp_asboolPn => /= x.
by rewrite not_implyE => -[? ?]; exists x => //; rewrite ltNge; apply/negP.
Qed.
Lemma
- mathcomp.analysis.lebesgue_measure
- mathcomp.analysis.sequences
- mathcomp.analysis.measurable_realfun
- mathcomp.analysis.topology_theory.edist
- mathcomp.analysis.realfun
- mathcomp.analysis.measure_theory.measure_extension
Source code
ereal_inf S \is a fin_num -> exists2 , S x & (x < ereal_inf S + e%:E).
Proof.
move=> y Sy <-; rewrite -lteNr => /lt_le_trans ex; exists y => //.
by apply: ex; rewrite fin_num_oppeD// oppeK.
Qed.
Lemma
- mathcomp.analysis.esum
- mathcomp.analysis.sequences
- mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_monotone_convergence
- mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_differentiation
- mathcomp.analysis.realfun
- mathcomp.analysis.measure_theory.signed_measure
Source code
Proof.
by apply: ge_ereal_sup => y Sy; move: (g y) => [//|/negP]; rewrite leNgt.
Qed.
Lemma
- mathcomp.analysis.lebesgue_measure
- mathcomp.analysis.sequences
- mathcomp.analysis.topology_theory.edist
- mathcomp.analysis.realfun
- mathcomp.analysis.measure_theory.signed_measure
- mathcomp.analysis.normedtype_theory.urysohn
Source code
Proof.
Lemma
- mathcomp.analysis.ess_sup_inf
Source code
Proof.
Lemma
Proof.
Lemma
- mathcomp.analysis.sequences
Source code
Proof.
Lemma
Proof.
End ereal_supremum.
#[deprecated(since="mathcomp-analysis 1.14.0", note="Renamed `ge_ereal_sup`.")]
Notation
Section ereal_supremum_realType.
Variable : realType.
Local Open Scope classical_set_scope.
Implicit Types S : set (\bar R).
Implicit Types x : \bar R.
Let
Lemma
Proof.
by exists -oo; split; [rewrite ub_set1 |exact: lb_ub_refl].
have [->|S0] := eqVneq S set0.
by exists -oo; exact: ereal_supremums_set0_ninfty.
have [Spoo|Spoo] := pselect (S +oo).
by exists +oo; split; [apply/ereal_ub_pinfty | apply/lbP => /= y /ubP; apply].
have [r Sr] : exists , S r%:E.
move: S0 => /set0P[] [r Sr| // |Snoo1]; first by exists r.
apply/not_existsP => nS; move/negP : Snoo; apply.
by apply/eqP; rewrite predeqE => -[] // r; split => // /nS.
set U := fine_def r @` S.
have [|] := eqVneq (ubound U) set0.
rewrite -subset0 => U0; exists +oo.
split; [exact/ereal_ub_pinfty | apply/lbP => /= -[r0 /ubP Sr0|//|]].
- suff : ubound U r0 by move/U0.
by apply/ubP=> _ -[] [r1 Sr1 <-|//| /= _ <-]; rewrite -lee_fin; exact: Sr0.
- by move/ereal_ub_ninfty => [|]; by [move/eqP : S0|move/eqP : Snoo].
set u : R := sup U.
exists u%:E; split; last first.
apply/lbP=> -[r0 /ubP Sr0| |].
- rewrite lee_fin; apply: ge_sup; first by exists r, r%:E.
by apply/ubP => _ -[[r2 ? <-| // | /= _ <-]]; rewrite -lee_fin; exact: Sr0.
- by rewrite leey.
- by move/ereal_ub_ninfty=> [|/eqP //]; [move/eqP : S0|rewrite (negbTE Snoo)].
apply/ubP => -[r0 Sr0|//|_]; last by rewrite leNye.
rewrite lee_fin.
suff : has_sup U by move/sup_upper_bound/ubP; apply; exists r0%:E.
split; first by exists r0, r0%:E.
exists u; apply/ubP => y; move=> [] y' Sy' <-{y}.
have : has_sup U by split; [exists r, r%:E | exact/set0P].
move/sup_upper_bound/ubP; apply.
by case: y' Sy' => [r1 /= Sr1 | // | /= _]; [exists r1%:E | exists r%:E].
Qed.
Lemma
- mathcomp.analysis.lebesgue_measure
- mathcomp.analysis.esum
- mathcomp.analysis.sequences
- mathcomp.analysis.lebesgue_integral_theory.radon_nikodym
- mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_definition
- mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_monotone_convergence
- mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_differentiation
- mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_nonneg
- mathcomp.analysis.realfun
- mathcomp.analysis.kernel
- mathcomp.analysis.measure_theory.signed_measure
Source code
Proof.
Lemma
Proof.
Lemma
- mathcomp.analysis.esum
- mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_definition
- mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_differentiation
- mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_nonneg
- mathcomp.analysis.realfun
- mathcomp.analysis.normedtype_theory.ereal_normedtype
Source code
Proof.
Lemma
- mathcomp.analysis.sequences
- mathcomp.analysis.realfun
Source code
Proof.
by move=> supS [r /ereal_sup_ubound|/ereal_sup_ubound|//]; rewrite supS.
by move=> /(@subset_set1 _ S) [] ->; [exact: ereal_sup0|exact: ereal_sup1].
Qed.
Lemma
- mathcomp.analysis.sequences
- mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_monotone_convergence
- mathcomp.analysis.measurable_realfun
- mathcomp.analysis.topology_theory.edist
- mathcomp.analysis.realfun
- mathcomp.analysis.measure_theory.measure_extension
- mathcomp.analysis.measure_theory.signed_measure
- mathcomp.analysis.normedtype_theory.urysohn
Source code
Proof.
Lemma
- mathcomp.analysis.lebesgue_measure
- mathcomp.analysis.sequences
- mathcomp.analysis.probability_theory.random_variable
Source code
Proof.
Lemma
- mathcomp.analysis.sequences
- mathcomp.analysis.topology_theory.edist
- mathcomp.analysis.realfun
Source code
Proof.
Lemma
- mathcomp.analysis.esum
- mathcomp.analysis.sequences
- mathcomp.analysis.lebesgue_integral_theory.radon_nikodym
- mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_differentiation
- mathcomp.analysis.realfun
- mathcomp.analysis.measure_theory.signed_measure
Source code
Proof.
Lemma
- mathcomp.analysis.sequences
- mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_monotone_convergence
- mathcomp.analysis.measurable_realfun
- mathcomp.analysis.topology_theory.edist
- mathcomp.analysis.realfun
- mathcomp.analysis.measure_theory.measure_extension
Source code
Proof.
Lemma
- mathcomp.analysis.realfun
Source code
A !=set0 -> ereal_sup (EFin @` A) = +oo%E.
Proof.
exists (fine (ereal_sup (EFin @` A))) => x Ax.
rewrite -lee_fin -(@fineK _ x%:E)// lee_fin fine_le//; last first.
by apply: ereal_sup_ubound => /=; exists x.
rewrite fin_numE// -ltey Aoo andbT.
apply/eqP => /ereal_sup_ninfty/(_ x%:E).
by have /[swap] /[apply]: (EFin @` A) x%:E by exists x.
Qed.
Lemma
- mathcomp.experimental_reals.realsum
- mathcomp.analysis.sequences
- mathcomp.analysis.realfun
Source code
has_ubound A -> A !=set0 -> ereal_sup (EFin @` A) = (sup A)%:E.
Proof.
by apply: ge_ereal_sup => /= y [r Ar <-{y}]; rewrite lee_fin ub_le_sup.
set esup := ereal_sup _; have := leey esup.
rewrite [X in _ X]le_eqVlt => /predU1P[->|esupoo]; first by rewrite leey.
have := leNye esup; rewrite [in X in X -> _]le_eqVlt => /predU1P[/esym|ooesup].
case: A0 => i Ai.
by move=> /ereal_sup_ninfty /(_ i%:E) /(_ (ex_intro2 A _ i Ai erefl)).
have esup_fin_num : esup \is a fin_num.
by rewrite fin_numE -leeNy_eq -ltNge ooesup /= -leye_eq -ltNge esupoo.
rewrite -(@fineK _ esup) // lee_fin leNgt.
apply/negP => /(sup_gt A0)[r Ar]; apply/negP; rewrite -leNgt.
by rewrite -lee_fin fineK//; apply: ereal_sup_ubound; exists r.
Qed.
Lemma
- mathcomp.analysis.topology_theory.edist
- mathcomp.analysis.realfun
Source code
ereal_inf (EFin @` A) = (inf A)%:E.
Proof.
rewrite -ereal_sup_EFin; [exact/has_lb_ubN|exact/nonemptyN|].
by rewrite !image_comp.
Qed.
Lemma
- mathcomp.experimental_reals.realsum
Source code
reflect (forall : \bar R, S y -> y <= x) (ereal_sup S <= x).
Proof.
by move=> /(le_trans _)->//; rewrite le_ereal_sup_tmp//; exists y.
apply: contraPP => /negP; rewrite -ltNge -existsPNP.
by move=> /ereal_sup_gt[y Sy ltyx]; exists y => //; rewrite lt_geF.
Qed.
Lemma
reflect (forall : \bar R, S y -> x <= y) (x <= ereal_inf S).
Proof.
Lemma
- mathcomp.analysis.esum
Source code
( : set X) ( : set Y) :
ereal_sup [set ereal_sup [set f x y | in B] | in A] =
ereal_sup [set ereal_sup [set f x y | in A] | in B].
Proof.
ereal_sup [set ereal_sup [set g x y | in D] | in C] <=
ereal_sup [set ereal_sup [set g x y | in C] | in D].
by apply/le_anti/andP; split; exact: suf.
move=> U V g C D.
apply/ereal_supP => _ [x Cx <-]; apply/ereal_supP => _ [y Dy <-].
apply: le_ereal_sup_tmp; exists (ereal_sup [set g x y | in C]).
- by exists y.
- by apply: le_ereal_sup_tmp; exists (g x y) => //; exists x.
Qed.
Lemma
reflect (exists2 : \bar R, S y & x < y) (x < ereal_sup S).
Proof.
Lemma
reflect (exists2 : \bar R, S y & y < x) (ereal_inf S < x).
Proof.
Lemma
- mathcomp.analysis.ess_sup_inf
Source code
reflect (exists2 : \bar R, S y & y <= x) (ereal_inf S <= x).
Proof.
Lemma
reflect (exists2 : \bar R, S y & x <= y) (x <= ereal_sup S).
Proof.
by move=> Sx; exists (ereal_sup S).
Qed.
Lemma
- mathcomp.analysis.sequences
Source code
ereal_inf S = -oo -> exists2 : \bar R, S x & x < e%:E.
Proof.
Lemma
Proof.
by apply/has_ubPn => x; exists (x+1)%R => //; rewrite ltrDl.
Qed.
Lemma
Proof.
End ereal_supremum_realType.
#[deprecated(since="mathcomp-analysis 1.14.0", note="Renamed `ge_ereal_inf`.")]
Notation
#[deprecated(since="mathcomp-analysis 1.14.0", note="Renamed `ereal_sup_le`.")]
Notation
#[deprecated(since="mathcomp-analysis 1.14.0", note="Renamed `ereal_inf_le_tmp`.")]
Notation
#[deprecated(since="mathcomp-analysis 1.14.0", note="Renamed `le_ereal_sup_tmp`.")]
Notation
Arguments ereal_supP {R S x}.
Arguments ereal_infP {R S x}.
Arguments ereal_sup_gtP {R S x}.
Arguments ereal_inf_ltP {R S x}.
Arguments ereal_sup_geP {R S x}.
Arguments ereal_inf_leP {R S x}.
Section ereal_sup_cst.
Context { : realFieldType}.
Implicit Types (x : \bar R) (X : set (\bar R)).
Local Open Scope ereal_scope.
Lemma
- mathcomp.analysis.sequences
Source code
Proof.
Lemma
Proof.
End ereal_sup_cst.
Section ereal_supZ.
Context { : realType}.
Implicit Types (r s : R) (X : set (\bar R)).
Local Open Scope ereal_scope.
Lemma
ereal_sup [set r%:E * x | in X] = r%:E * ereal_sup X.
Proof.
gen have gen : r r_gt0 {r_ge0 r_neq0} X /
ereal_sup [set r%:E * x | in X] <= r%:E * ereal_sup X.
apply/ereal_supP => y/= [x Ax <-]; rewrite lee_pmul2l//=.
by apply/ereal_supP => //=; exists x.
apply/eqP; rewrite eq_le gen//= -lee_pdivlMl//.
rewrite (le_trans _ (gen _ _ _)) ?invr_gt0 ?image_comp//=.
by under eq_imagel do rewrite /= muleA -EFinM mulVf ?mul1e//=; rewrite image_id.
Qed.
Lemma
ereal_sup [set r%:E * x | in X] = r%:E * ereal_sup X.
Proof.
by rewrite mul0e; under eq_imagel do rewrite mul0e/=; rewrite ereal_sup_cst.
Qed.
Lemma
ereal_inf [set r%:E * x | in X] = r%:E * ereal_inf X.
Proof.
by under eq_imagel do rewrite /= -muleN; rewrite -image_comp ereal_sup_pZl.
Qed.
Lemma
ereal_sup [set r%:E * x | in X] = r%:E * ereal_sup X.
Proof.
by under eq_imagel do rewrite /= -muleN; rewrite -image_comp ereal_inf_pZl.
Qed.
Lemma
(forall , X x -> 0 <= x) ->
ereal_sup [set c * x | in X] = c * ereal_sup X.
Proof.
case: c c0 => [r|_|//].
- rewrite lee_fin le_eqVlt => /predU1P[<-|r0].
+ rewrite mul0e.
under eq_imagel do rewrite mul0e.
by rewrite ereal_sup_cst.
+ exact/(ereal_supZl Xneq0)/ltW.
- have [Xall0|] := pselect (forall , X a -> a = 0).
+ rewrite [X in ereal_sup X = _](_ : _ = [set 0]%classic).
apply/seteqP; split.
* by move=> _ [z Xz <-]; rewrite (Xall0 _ Xz) mule0.
* by move=> y /= ->; exists x => //; rewrite (Xall0 _ Xx) mule0.
have -> : X = [set 0]%classic.
apply/seteqP; split.
* by move=> y /Xall0 ->.
* by move=> y /= ->; rewrite -(Xall0 _ Xx).
by rewrite ereal_sup1 mule0.
+ rewrite -existsNE => -[y /not_implyP[Xy /eqP]].
rewrite neq_lt ltNge X_ge0//= => y0.
rewrite gt0_mulye//; first by rewrite (lt_le_trans y0)// ereal_sup_ubound.
by rewrite ereal_supy//=; exists y => //; exact: gt0_mulye.
Qed.
Section ge0_ereal_supZl_range.
Context { : choiceType} ( : T -> nat -> \bar R).
Hypothesis
Lemma
c * ereal_sup (range (f x)) = ereal_sup (range (fun => c * f x n)).
Proof.
rewrite [X in _ = ereal_sup X](_ : _ = [set c * y | in range (f x)]%classic).
apply/seteqP; split.
- by move=> _ [n _ <-]; exists (f x n) => //; exists n.
- by move=> _ [_ [n _ <-] <-]; exists n.
rewrite ge0_ereal_supZl//.
- by apply/set0P; exists (f x 0%N), 0%N.
- by move=> _ [n _ <-]; exact: f_ge0.
Qed.
End ge0_ereal_supZl_range.
End ereal_supZ.
Lemma
- mathcomp.analysis.lebesgue_integral_theory.lebesgue_integrable
- mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_nonneg
Source code
(abse \o f) \_ D = abse \o (f \_ D).
Lemma
- mathcomp.analysis.lebesgue_integral_theory.lebesgue_Rintegral
- mathcomp.analysis.lebesgue_integral_theory.lebesgue_integrable
- mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_differentiation
- mathcomp.analysis.probability_theory.beta_distribution
- mathcomp.analysis.ftc
Source code
(EFin \o f) \_ D = EFin \o (f \_ D).
Section SignedRealFieldStability.
Context { : realFieldType}.
Lemma
( := Itv.real1 IntItv.keep_nonpos i) :
Itv.spec (@ext_num_sem R) r (ereal_sup [set x%:num | in S]).
Proof.
apply/and3P; split.
- rewrite real_fine -real_leey.
by rewrite ge_ereal_sup// => _ [[[x||] /=/and3P[? ? ?]] _ <-].
- by case: ereal_sup.
- case: u S => [[] [[| u] | u] S |//]; rewrite /= bnd_simp//;
apply: ge_ereal_sup => _ [[x /=/and3P[_ _ /= +]] _ <-]; rewrite bnd_simp//.
+ by move/ltW.
+ by move=> /ltW /le_trans; apply; rewrite lee_fin lerz0.
+ by move=> /le_trans; apply; rewrite lee_fin lerz0.
Qed.
Canonical
ereal_sup_inum : forall {R : realFieldType} [i : Itv.t], (Itv.def ext_num_sem i -> Prop) -> Itv.def ext_num_sem (Itv.real1 keep_nonpos i) ereal_sup_inum is not universe polymorphic Arguments ereal_sup_inum {R} [i] S%_function_scope ereal_sup_inum is transparent Expands to: Constant mathcomp.analysis.ereal.ereal_sup_inum Declared in library mathcomp.analysis.ereal, line 849, characters 10-24
Source code
Itv.mk (ext_num_spec_ereal_sup S).
Lemma
( := Itv.real1 IntItv.keep_nonneg i) :
Itv.spec (@ext_num_sem R) r (ereal_inf [set x%:num | in S]).
Proof.
apply/and3P; split.
- by rewrite real_fine -real_leNye leNye.
- case: l S => [[] [l | l] S |//]; rewrite /= bnd_simp//;
apply: le_ereal_inf_tmp => _ [[x /=/and3P[_ /= + _]] _ <-]; rewrite bnd_simp.
+ by apply: le_trans; rewrite lee_fin ler0z.
+ by move=> /ltW; apply: le_trans; rewrite lee_fin ler0z.
- by case: ereal_inf.
Qed.
Canonical
ereal_inf_inum : forall {R : realFieldType} [i : Itv.t], (Itv.def ext_num_sem i -> Prop) -> Itv.def ext_num_sem (Itv.real1 keep_nonneg i) ereal_inf_inum is not universe polymorphic Arguments ereal_inf_inum {R} [i] S%_function_scope ereal_inf_inum is transparent Expands to: Constant mathcomp.analysis.ereal.ereal_inf_inum Declared in library mathcomp.analysis.ereal, line 866, characters 10-24
Source code
Itv.mk (ext_num_spec_ereal_inf S).
End SignedRealFieldStability.
Section ereal_nbhs.
Context { : numFieldType}.
Local Open Scope ereal_scope.
Local Open Scope classical_set_scope.
Definition
ereal_dnbhs : forall {R : numFieldType}, \bar R -> set_system \bar R ereal_dnbhs is not universe polymorphic Arguments ereal_dnbhs {R} x%_ereal_scope _ ereal_dnbhs is transparent Expands to: Constant mathcomp.analysis.ereal.ereal_dnbhs Declared in library mathcomp.analysis.ereal, line 876, characters 11-22
Source code
[set | match x with
| r%:E => r^' (fun r => P r%:E)
| +oo => exists , M \is Num.real /\ forall , M%:E < y -> P y
| -oo => exists , M \is Num.real /\ forall , y < M%:E -> P y
end].
Definition
ereal_nbhs : forall {R : numFieldType}, \bar R -> set_system \bar R ereal_nbhs is not universe polymorphic Arguments ereal_nbhs {R} x%_ereal_scope _ ereal_nbhs is transparent Expands to: Constant mathcomp.analysis.ereal.ereal_nbhs Declared in library mathcomp.analysis.ereal, line 882, characters 11-21
Used by
- mathcomp.analysis.normedtype_theory.ereal_normedtype
Source code
[set | match x with
| x%:E => nbhs x (fun => P r%:E)
| +oo => exists , M \is Num.real /\ forall , M%:E < y -> P y
| -oo => exists , M \is Num.real /\ forall , y < M%:E -> P y
end].
.
End ereal_nbhs.
Section ereal_nbhs_instances.
Context { : numFieldType}.
Global Instance
forall : \bar R, ProperFilter (ereal_dnbhs x).
Proof.
- case: (Proper_dnbhs_numFieldType x) => x0 [//= xT xI xS].
by apply: Build_ProperFilter => //=; exact: Build_Filter.
- apply: Build_ProperFilter_ex.
move=> P [x [xr xP]] //; exists (x + 1)%:E; apply: xP => /=.
by rewrite lte_fin ltrDl.
split=> /= [|P Q [MP [MPr gtMP]] [MQ [MQr gtMQ]] |P Q sPQ [M [Mr gtM]]].
+ by exists 0%R.
+ have [MP0|MP0] := eqVneq MP 0%R.
have [MQ0|MQ0] := eqVneq MQ 0%R.
by exists 0%R; split => // x x0; split;
[apply/gtMP; rewrite MP0 | apply/gtMQ; rewrite MQ0].
exists `|MQ|%R; rewrite realE normr_ge0; split => // x MQx; split.
by apply: gtMP; rewrite (le_lt_trans _ MQx) // MP0 lee_fin.
apply: gtMQ.
by rewrite (le_lt_trans _ MQx)// lee_fin real_ler_normr ?lexx.
have [MQ0|MQ0] := eqVneq MQ 0%R.
exists `|MP|%R; rewrite realE normr_ge0; split => // x MPx; split.
apply: gtMP.
by rewrite (le_lt_trans _ MPx)// lee_fin real_ler_normr ?lexx.
by apply: gtMQ; rewrite (le_lt_trans _ MPx) // lee_fin MQ0.
have {}MP0 : (0 < `|MP|)%R by rewrite normr_gt0.
have {}MQ0 : (0 < `|MQ|)%R by rewrite normr_gt0.
exists (Num.max (PosNum MP0) (PosNum MQ0))%:num.
rewrite realE /= ge0 /=; split => //.
case=> [r| |//].
* rewrite lte_fin/= num_max num_gt_max /= => /andP[MPx MQx]; split.
by apply/gtMP; rewrite lte_fin (le_lt_trans _ MPx)// real_ler_normr ?lexx.
by apply/gtMQ; rewrite lte_fin (le_lt_trans _ MQx)// real_ler_normr ?lexx.
* by move=> _; split; [apply/gtMP | apply/gtMQ].
+ by exists M; split => // ? /gtM /sPQ.
- apply: Build_ProperFilter_ex.
+ move=> P [M [Mr ltMP]]; exists (M - 1)%:E.
by apply: ltMP; rewrite lte_fin gtrDl oppr_lt0.
+ split=> /= [|P Q [MP [MPr ltMP]] [MQ [MQr ltMQ]] |P Q sPQ [M [Mr ltM]]].
* by exists 0%R.
* have [MP0|MP0] := eqVneq MP 0%R.
have [MQ0|MQ0] := eqVneq MQ 0%R.
by exists 0%R; split => // x x0; split;
[apply/ltMP; rewrite MP0 | apply/ltMQ; rewrite MQ0].
exists (- `|MQ|)%R; rewrite realN realE normr_ge0; split => // x xMQ.
split.
by apply: ltMP; rewrite (lt_le_trans xMQ)// lee_fin MP0 lerNl oppr0.
apply: ltMQ; rewrite (lt_le_trans xMQ) // lee_fin lerNl -normrN.
by rewrite real_ler_normr ?realN // lexx.
* have [MQ0|MQ0] := eqVneq MQ 0%R.
exists (- `|MP|)%R; rewrite realN realE normr_ge0; split => // x MPx.
split.
apply: ltMP; rewrite (lt_le_trans MPx) // lee_fin lerNl -normrN.
by rewrite real_ler_normr ?realN // lexx.
by apply: ltMQ; rewrite (lt_le_trans MPx) // lee_fin MQ0 lerNl oppr0.
have {}MP0 : (0 < `|MP|)%R by rewrite normr_gt0.
have {}MQ0 : (0 < `|MQ|)%R by rewrite normr_gt0.
exists (- (Num.max (PosNum MP0) (PosNum MQ0))%:num)%R.
rewrite realN realE /= ge0 /=; split => //.
case=> [r|//|].
- rewrite lte_fin ltrNr num_max num_gt_max => /andP[].
rewrite ltrNr => MPx; rewrite ltrNr => MQx; split.
apply/ltMP; rewrite lte_fin (lt_le_trans MPx) //= lerNl -normrN.
by rewrite real_ler_normr ?realN // lexx.
apply/ltMQ; rewrite lte_fin (lt_le_trans MQx) //= lerNl -normrN.
by rewrite real_ler_normr ?realN // lexx.
- by move=> _; split; [apply/ltMP | apply/ltMQ].
* by exists M; split => // x /ltM /sPQ.
Qed.
Global Instance
Proof.
- case: (ereal_dnbhs_filter r%:E) => r0 [//= nrT rI rS].
apply: Build_ProperFilter_ex => P /nbhs_ballP[r2 r20 rr2].
by exists r%:E; exact/rr2/ballxx.
- exact: (ereal_dnbhs_filter +oo).
- exact: (ereal_dnbhs_filter -oo).
Qed.
End ereal_nbhs_instances.
Section ereal_nbhs_infty.
Context ( : numFieldType).
Implicit Type r : R.
Lemma
- mathcomp.analysis.normedtype_theory.ereal_normedtype
Source code
Proof.
Lemma
- mathcomp.analysis.normedtype_theory.ereal_normedtype
Source code
Proof.
Lemma
- mathcomp.analysis.normedtype_theory.ereal_normedtype
Source code
Proof.
Lemma
- mathcomp.analysis.normedtype_theory.ereal_normedtype
Source code
Proof.
Lemma
- mathcomp.analysis.normedtype_theory.ereal_normedtype
Source code
Proof.
Lemma
- mathcomp.analysis.normedtype_theory.ereal_normedtype
Source code
Proof.
End ereal_nbhs_infty.
Section ereal_topologicalType.
Variable : realFieldType.
Lemma
ereal_nbhs p A -> A p.
Proof.
move=> /nbhs_ballP[_/posnumP[e]]; apply; exact/ballxx.
Qed.
Lemma
ereal_nbhs p A -> ereal_nbhs p (ereal_nbhs^~ A).
Proof.
- move=> /nbhs_ballP[_/posnumP[e]] ballA.
apply/nbhs_ballP; exists (e%:num / 2)%R => //= r per.
apply/nbhs_ballP; exists (e%:num / 2)%R => //= x rex.
apply/ballA/(@ball_splitl _ _ r) => //; exact/ball_sym.
- exists (M + 1)%R; split; first by rewrite realD.
move=> -[x| _ |_] //=; last by exists M.
rewrite lte_fin => M'x /=.
apply/nbhs_ballP; exists 1%R => //= y x1y.
apply: MA; rewrite lte_fin.
rewrite addrC -ltrBrDl in M'x.
rewrite (lt_le_trans M'x) // lerBlDl addrC -lerBlDl.
rewrite (le_trans _ (ltW x1y)) // real_ler_norm // realB //.
rewrite ltrBrDr in M'x.
by rewrite -comparabler0 (@comparabler_trans _ (M + 1)%R).
by rewrite num_real. (* where we really use realFieldType *)
- exists (M - 1)%R; split; first by rewrite realB.
move=> -[x| _ |_] //=; last by exists M.
rewrite lte_fin => M'x /=.
apply/nbhs_ballP; exists 1%R => //= y x1y.
apply: MA; rewrite lte_fin.
rewrite ltrBrDl in M'x.
rewrite (le_lt_trans _ M'x) // addrC -lerBlDl.
rewrite (le_trans _ (ltW x1y)) // distrC real_ler_norm // realB //.
by rewrite num_real. (* where we really use realFieldType *)
rewrite addrC -ltrBrDr in M'x.
by rewrite -comparabler0 (@comparabler_trans _ (M - 1)%R).
Qed.
End ereal_topologicalType.
Local Open Scope classical_set_scope.
Lemma
nbhs (- x) = [set (-%E @` A) | in nbhs x].
Proof.
- rewrite /nbhs /= /ereal_nbhs -nbhs_ballE.
rewrite predeqE => S; split => [[_/posnumP[e] reS]|[S' [_ /posnumP[e] reS' <-]]].
exists (-%E @` S).
exists e%:num => //= r1 rer1; exists (- r1%:E); last by rewrite oppeK.
by apply: reS; rewrite /ball /= opprK -normrN opprD opprK.
rewrite predeqE => s; split => [[y [z Sz] <- <-]|Ss].
by rewrite oppeK.
by exists (- s); [exists s | rewrite oppeK].
exists e%:num => //= r1 rer1; exists (- r1%:E); last by rewrite oppeK.
by apply: reS'; rewrite /ball /= opprK -normrN opprD.
- rewrite predeqE => S; split=> [[M [Mreal MS]]|[x [M [Mreal Mx]] <-]].
exists (-%E @` S).
exists (- M)%R; rewrite realN Mreal; split => // x Mx.
by exists (- x); [apply: MS; rewrite lteNl | rewrite oppeK].
rewrite predeqE => x; split=> [[y [z Sz <- <-]]|Sx]; first by rewrite oppeK.
by exists (- x); [exists x | rewrite oppeK].
exists (- M)%R; rewrite realN; split => // y yM.
exists (- y); by [apply: Mx; rewrite lteNr|rewrite oppeK].
- rewrite predeqE => S; split=> [[M [Mreal MS]]|[x [M [Mreal Mx]] <-]].
exists (-%E @` S).
exists (- M)%R; rewrite realN Mreal; split => // x Mx.
by exists (- x); [apply: MS; rewrite lteNr | rewrite oppeK].
rewrite predeqE => x; split=> [[y [z Sz <- <-]]|Sx]; first by rewrite oppeK.
by exists (- x); [exists x | rewrite oppeK].
exists (- M)%R; rewrite realN; split => // y yM.
exists (- y); by [apply: Mx; rewrite lteNl|rewrite oppeK].
Qed.
Lemma
nbhs (- z) (-%E @` A) -> nbhs z A.
Proof.
exists (-%E @` S); first by rewrite nbhsNe; exists S.
rewrite predeqE => x; split => [[y [u Su <-{y} <-]]|Ax].
rewrite oppeK.
move: SA; rewrite predeqE => /(_ (- u)) [h _].
have : (exists2 , S y & - y = - u) by exists u.
by move/h => -[y Ay] /eqP; rewrite eqe_opp => /eqP <-.
exists (- x); last by rewrite oppeK.
exists x => //.
move: SA; rewrite predeqE => /(_ (- x)) [_ h].
have : (-%E @` A) (- x) by exists x.
by move/h => [y Sy] /eqP; rewrite eqe_opp => /eqP <-.
Qed.
Lemma
- mathcomp.analysis.normedtype_theory.normed_module
Source code
continuous (-%E : \bar R -> \bar R).
Proof.
by rewrite predeqE => y; split => // _; exists (- y) => //; rewrite oppeK.
Qed.
Section contract_expand.
Variable : realFieldType.
Implicit Types (x : \bar R) (r : R).
Local Open Scope ereal_scope.
Lemma
(@contract R) @` (-%E @` S) = -%R @` ((@contract R) @` S).
Proof.
Lemma
- mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_differentiation
Source code
Proof.
Lemma
Definition
le_expandLR : forall [R : realFieldType], {in [pred r | (`|r| <= 1)%R] & predT, forall (x : R) (y : \bar R), (expand (R:=R) x <= y)%E = (x <= contract (R:=R) y)%R} le_expandLR is not universe polymorphic Expanded type for implicit arguments le_expandLR : forall [R : realFieldType] [x : R] [y : \bar R], x \in [pred r | (`|r| <= 1)%R] -> y \in predT -> (expand (R:=R) x <= y)%E = (x <= contract (R:=R) y)%R Arguments le_expandLR [R x y] _ _ le_expandLR is transparent Expands to: Constant mathcomp.analysis.ereal.le_expandLR Declared in library mathcomp.analysis.ereal, line 1131, characters 11-22
Used by
- mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_differentiation
Source code
(in_onW_can _ predT contractK) (fun _ => contract_le1 x) (@le_expand_in R).
Definition
lt_expandLR : forall [R : realFieldType], {in [pred r | (`|r| <= 1)%R] & predT, forall (x : R) (y : \bar R), (expand (R:=R) x < y)%E = (x < contract (R:=R) y)%R} lt_expandLR is not universe polymorphic Expanded type for implicit arguments lt_expandLR : forall [R : realFieldType] [x : R] [y : \bar R], x \in [pred r | (`|r| <= 1)%R] -> y \in predT -> (expand (R:=R) x < y)%E = (x < contract (R:=R) y)%R Arguments lt_expandLR [R x y] _ _ lt_expandLR is transparent Expands to: Constant mathcomp.analysis.ereal.lt_expandLR Declared in library mathcomp.analysis.ereal, line 1133, characters 11-22
Source code
(in_onW_can _ predT contractK) (fun _ => contract_le1 x) (@lt_expand R).
Definition
le_expandRL : forall [R : realFieldType], {in predT & [pred r | (`|r| <= 1)%R], forall (x : \bar R) (y : R), (x <= expand (R:=R) y)%E = (contract (R:=R) x <= y)%R} le_expandRL is not universe polymorphic Expanded type for implicit arguments le_expandRL : forall [R : realFieldType] [x : \bar R] [y : R], x \in predT -> y \in [pred r | (`|r| <= 1)%R] -> (x <= expand (R:=R) y)%E = (contract (R:=R) x <= y)%R Arguments le_expandRL [R x y] _ _ le_expandRL is transparent Expands to: Constant mathcomp.analysis.ereal.le_expandRL Declared in library mathcomp.analysis.ereal, line 1135, characters 11-22
Source code
(in_onW_can _ predT contractK) (fun _ => contract_le1 x) (@le_expand_in R).
Definition
lt_expandRL : forall [R : realFieldType], {in predT & [pred r | (`|r| <= 1)%R], forall (x : \bar R) (y : R), (x < expand (R:=R) y)%E = (contract (R:=R) x < y)%R} lt_expandRL is not universe polymorphic Expanded type for implicit arguments lt_expandRL : forall [R : realFieldType] [x : \bar R] [y : R], x \in predT -> y \in [pred r | (`|r| <= 1)%R] -> (x < expand (R:=R) y)%E = (contract (R:=R) x < y)%R Arguments lt_expandRL [R x y] _ _ lt_expandRL is transparent Expands to: Constant mathcomp.analysis.ereal.lt_expandRL Declared in library mathcomp.analysis.ereal, line 1137, characters 11-22
Used by
- mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_differentiation
Source code
(in_onW_can _ predT contractK) (fun _ => contract_le1 x) (@lt_expand R).
Lemma
Lemma
Lemma
End contract_expand.
Section contract_expand_realType.
Variable : realType.
Let
Lemma
Proof.
apply: ge_sup; first by exists (contract x), x.
by move=> r [y Sy] <-; case/ler_normlP : (contract_le1 y).
rewrite (@le_trans _ _ (contract x)) //.
by case/ler_normlP : (contract_le1 x); rewrite lerNl.
apply: ub_le_sup; last by exists x.
by exists 1%R => r [y Sy <-]; case/ler_normlP : (contract_le1 y).
Qed.
Lemma
Proof.
apply: ge_sup.
by case: S0 => x Sx; exists (contract x), x.
by move=> x [y Sy] <-{x}; rewrite le_contract; exact/ereal_sup_ubound.
rewrite leNgt; apply/negP.
set supc := sup _; set csup := contract _; move=> ltsup.
suff [y [ysupS ?]] : exists , y < ereal_sup S /\ ubound S y.
have : ereal_sup S <= y by exact: ge_ereal_sup.
by move/(lt_le_trans ysupS); rewrite ltxx.
suff [x [? [ubSx x1]]] : exists , (x < csup)%R /\ ubound (contract @` S) x /\
(`|x| <= 1)%R.
exists (expand x); split => [|y Sy].
by rewrite -(contractK (ereal_sup S)) lt_expand // inE // contract_le1.
by rewrite -(contractK y) le_expand //; apply: ubSx; exists y.
exists ((supc + csup) / 2)%R; split; first by rewrite midf_lt.
split => [r [y Sy <-{r}]|].
rewrite (@le_trans _ _ supc) ?midf_le //; last by rewrite ltW.
apply: ub_le_sup; last by exists y.
by exists 1%R => r [z Sz <-]; case/ler_normlP : (contract_le1 z).
rewrite ler_norml; apply/andP; split; last first.
rewrite ler_pdivrMr // mul1r (_ : 2 = 1 + 1)%R // lerD //.
by case/ler_normlP : (sup_contract_le1 S0).
by case/ler_normlP : (contract_le1 (ereal_sup S)).
rewrite ler_pdivlMr // (_ : 2 = 1 + 1)%R // mulN1r opprD lerD //.
by case/ler_normlP : (sup_contract_le1 S0); rewrite lerNl.
by case/ler_normlP : (contract_le1 (ereal_sup S)); rewrite lerNl.
Qed.
Lemma
Proof.
End contract_expand_realType.
Section ereal_PseudoMetric.
Variable : realFieldType.
Implicit Types (x y : \bar R) (r : R).
Lemma
Proof.
Lemma
expand (1 - e%:num)%R < r%:E -> ereal_ball +oo e%:num r%:E.
Proof.
by case/ltr_normlP : (contract_lt1 r).
rewrite ltrBlDl addrC -ltrBlDl -[ltLHS]expandK ?lt_contract//.
by rewrite inE ger0_norm ?lerBlDl ?lerDr // subr_ge0.
Qed.
Lemma
(1 <= contract r%:E + e%:num)%R -> ereal_ball r%:E e%:num r'%:E.
Proof.
rewrite /ereal_ball ltr0_norm; first by rewrite subr_lt0 lt_contract lte_fin.
rewrite opprB ltrBlDl (lt_le_trans _ re1) //.
by case/ltr_normlP : (contract_lt1 r').
Qed.
Lemma
(contract r%:E - e%:num <= -1)%R -> ereal_ball r%:E e%:num r'%:E.
Proof.
rewrite gtr0_norm ?subr_gt0 ?lt_contract ?lte_fin//.
rewrite ltrBlDl addrC -ltrBlDl (le_lt_trans reN1) //.
by move: (contract_lt1 r'); rewrite ltr_norml => /andP[].
Qed.
Lemma
expand (contract r%:E - e%:num)%R < r'%:E ->
(`|contract r%:E - e%:num| < 1)%R -> ereal_ball r%:E e%:num r'%:E.
Proof.
rewrite /ereal_ball gtr0_norm ?subr_gt0 ?lt_contract ?lte_fin//.
by rewrite ltrBlDl addrC -ltrBlDl -lt_expandLR ?inE ?ltW.
Qed.
Lemma
let := (r - fine (expand (contract r%:E - e%:num)))%R in
ball r e' r' -> (r' < r)%R ->
(`|contract r%:E - e%:num| < 1)%R ->
ereal_ball r%:E e%:num r'%:E.
Proof.
rewrite gtr0_norm ?subr_gt0// ?lt_contract ?lte_fin//.
move: re'r'; rewrite /ball /= gtr0_norm ?subr_gt0// /e'.
rewrite ltrD2l ltrN2 -lte_fin fine_expand// lt_expandLR ?inE ?ltW//.
by rewrite ltrBlDl addrC -ltrBlDl.
Qed.
Lemma
let : R := (fine (expand (contract r%:E + e%:num)) - r)%R in
ball r e' r' -> (r <= r')%R ->
(`| contract r%:E + e%:num | < 1)%R ->
ereal_ball r%:E e%:num r'%:E.
Proof.
move: rr'; rewrite le_eqVlt => /predU1P[->|rr']; first by rewrite subrr normr0.
rewrite /ball /= ltr0_norm ?subr_lt0// opprB in r'e'r.
rewrite ltr0_norm ?subr_lt0 ?lt_contract ?lte_fin//.
rewrite opprB; move: r'e'r.
rewrite /e' -ltrBlDr opprK subrK -lte_fin fine_expand //.
by rewrite lt_expandRL ?inE ?ltW// ltrBlDl.
Qed.
Lemma
ereal_ball +oo e%:num `<=` A -> nbhs +oo A.
Proof.
exists (fine (expand (1 - e%:num)%R)); rewrite num_real; split => //.
case => [r | | //].
- rewrite fine_expand.
by rewrite ger0_norm ?ltrBlDl ?ltrDr // subr_ge0.
by move=> ?; exact/ooeA/expand_ereal_ball_pinfty.
- by move=> _; exact/ooeA/ereal_ball_center.
Qed.
Lemma
ereal_ball -oo e%:num `<=` A -> nbhs -oo A.
Proof.
rewrite (_ : -oo = - +oo) // nbhsNe; exists (-%E @` A) => //.
rewrite predeqE => x; split=> [[y [z Az <- <-]]|Ax]; rewrite ?oppeK //.
by exists (- x); [exists x | rewrite oppeK].
apply/ (@nbhs_oo_up_e1 _ e) => // x x1e; exists (- x); last by rewrite oppeK.
by apply/reA/ereal_ballN; rewrite oppeK.
Qed.
Lemma
ereal_ball +oo e%:num `<=` A -> nbhs +oo A.
Proof.
suff -> : A = setT by exists 0%R.
rewrite predeqE => x; split => // _; apply: reA.
exact/ereal_ballN/ereal_ball_ninfty_oversize.
have /andP[e10 e11] : (0 < e%:num - 1 <= 1)%R.
by rewrite subr_gt0 e1 /= lerBlDl.
apply: nbhsNKe.
have : ((PosNum e10)%:num <= 1)%R by [].
move/(@nbhs_oo_down_e1 (-%E @` A) (PosNum e10)); apply=> y ye.
exists (- y); last by rewrite oppeK.
apply/reA/ereal_ballN; rewrite oppeK /=.
by apply: le_ereal_ball ye => /=; rewrite lerBlDl lerDr.
Qed.
Lemma
ereal_ball -oo e%:num `<=` A -> nbhs -oo A.
Proof.
suff -> : A = setT by exists 0%R.
by rewrite predeqE => x; split => // _; exact/reA/ereal_ball_ninfty_oversize.
have /andP[e10 e11] : (0 < e%:num - 1 <= 1)%R.
by rewrite subr_gt0 e1 /= lerBlDl.
apply: nbhsNKe.
have : ((PosNum e10)%:num <= 1)%R by [].
move/(@nbhs_oo_up_e1 (-%E @` A) (PosNum e10)); apply.
move=> y ye; exists (- y); last by rewrite oppeK.
apply/reA/ereal_ballN; rewrite /= oppeK.
by apply: le_ereal_ball ye => /=; rewrite lerBlDl lerDr.
Qed.
Lemma
ereal_ball r%:E e%:num `<=` A ->
(- 1 < contract r%:E - e%:num)%R ->
(1 <= contract r%:E + e%:num)%R ->
nbhs r%:E A.
Proof.
have er1 : (`|contract r%:E - e%:num| < 1)%R.
rewrite ltr_norml reN1 andTb ltrBlDl ltr_pwDl //.
by move: (contract_le1 r%:E); rewrite ler_norml => /andP[].
pose e' := (r - fine (expand (contract r%:E - e%:num)))%R.
have e'0 : (0 < e')%R.
rewrite subr_gt0 -lte_fin -[ltRHS](contractK r%:E).
rewrite fine_expand // lt_expand ?inE ?contract_le1// ?ltW//.
by rewrite ltrBlDl ltrDr.
apply/nbhs_ballP; exists e' => // r' re'r'; apply: reA.
by have [?|?] := lerP r r';
[exact: contract_ereal_ball_fin_le | exact: ball_ereal_ball_fin_lt].
Qed.
Lemma
ereal_ball r%:E e%:num `<=` A ->
(contract r%:E - e%:num <= - 1)%R ->
(contract r%:E + e%:num < 1)%R ->
nbhs r%:E A.
Proof.
have ? : (`|contract r%:E + e%:num| < 1)%R.
rewrite ltr_norml re1 andbT (@lt_le_trans _ _ (contract r%:E)) // ?lerDl //.
by move: (contract_lt1 r); rewrite ltr_norml => /andP[].
pose e' : R := (fine (expand (contract r%:E + e%:num)) - r)%R.
have e'0 : (0 < e')%R.
rewrite /e' subr_gt0 -lte_fin -[in ltLHS](contractK r%:E).
by rewrite fine_expand // lt_expand ?inE ?contract_le1 ?ltrDl ?ltW.
apply/nbhs_ballP; exists e' => // r' r'e'r; apply: reA.
by have [?|?] := lerP r r';
[exact: ball_ereal_ball_fin_le | exact: contract_ereal_ball_fin_lt].
Qed.
Lemma
ereal_ball r%:E e%:num `<=` A ->
(contract r%:E - e%:num < -1)%R ->
(1 < contract r%:E + e%:num)%R ->
nbhs r%:E A.
Proof.
rewrite predeqE => x; split => // _; apply: reA.
case: x => [r'| |] //.
- have [?|?] := lerP r r'.
+ by apply: contract_ereal_ball_fin_le => //; exact/ltW.
+ by apply: contract_ereal_ball_fin_lt => //; exact/ltW.
- exact/contract_ereal_ball_pinfty.
- apply/ereal_ballN/contract_ereal_ball_pinfty.
by rewrite EFinN contractN -(opprK 1%R) ltrNl opprD opprK.
Qed.
Lemma
ereal_ball r%:E e%:num `<=` A -> nbhs r%:E A.
Proof.
have [/eqP|reN1] := eqVneq (contract r%:E - e%:num)%R (-1)%R.
rewrite subr_eq addrC => /eqP reN1.
have [re1|] := eqVneq (contract r%:E + e%:num)%R 1%R.
move/eqP: reN1; rewrite -re1 -subr_eq0 opprB addrK.
rewrite -mulr2n mulrn_eq0 orFb contract_eq0 => /eqP[r0].
move: re1; rewrite r0 contract0 add0r => e1.
apply/nbhs_ballP; exists 1%R => //= r'; rewrite /ball /= sub0r normrN => r'1.
apply: reA.
by rewrite /ereal_ball r0 contract0 sub0r normrN e1 contract_lt1.
rewrite neq_lt => /orP[re1|re1].
by apply: (@nbhs_fin_out_below _ e) => //; rewrite reN1 addrAC subrr sub0r.
have e1 : (1 < e%:num)%R.
move: re1; rewrite reN1 addrAC ltrBrDl -!mulr2n -(mulr_natl e%:num).
by rewrite -{1}(mulr1 2%:R) => ?; rewrite -(@ltr_pM2l _ 2).
have Aoo : setT `\ -oo `<=` A.
move=> x [_]; rewrite /set1 /= => xnoo; apply: reA.
case: x xnoo => [r' _ | _ |//].
have [rr'|r'r] := lerP (contract r%:E) (contract r'%:E).
apply: contract_ereal_ball_fin_le; last exact/ltW.
by rewrite -lee_fin -(contractK r%:E) -(contractK r'%:E) le_expand.
apply: contract_ereal_ball_fin_lt; last by rewrite reN1 lerBlDl.
rewrite -lte_fin -(contractK r%:E) -(contractK r'%:E).
by rewrite lt_expand // inE contract_le1.
exact: contract_ereal_ball_pinfty.
have : nbhs r%:E (setT `\ -oo) by apply/nbhs_ballP; exists 1%R => /=.
move=> /nbhs_ballP[_/posnumP[e']] /=; rewrite /ball /= => h.
by apply/nbhs_ballP; exists e'%:num => //= y /h; apply: Aoo.
move: reN1; rewrite eq_sym neq_lt => /orP[reN1|reN1].
have [re1|re1] := eqVneq (contract r%:E + e%:num)%R 1%R.
by apply: (@nbhs_fin_out_above _ e) => //; rewrite re1.
move: re1; rewrite neq_lt => /orP[re1|re1].
have ? : (`|contract r%:E - e%:num| < 1)%R.
rewrite ltr_norml reN1/= -/(contract _%:E) ltrBlDl.
rewrite (@lt_le_trans _ _ 1%R) // ?lerDr//.
by rewrite (le_lt_trans (ler_norm _))// contract_lt1.
have ? : (`|contract r%:E + e%:num| < 1)%R.
rewrite ltr_norml re1 andbT -(addr0 (- 1)%R) ler_ltD //.
by move: (contract_le1 r%:E); rewrite ler_norml => /andP[].
pose e' : R := Num.min
(r - fine (expand (contract r%:E - e%:num)))%R
(fine (expand (contract r%:E + e%:num)) - r)%R.
have e'0 : (0 < e')%R.
rewrite /e' lt_min; apply/andP; split.
rewrite subr_gt0 -lte_fin -[in ltRHS](contractK r%:E).
rewrite fine_expand // lt_expand// ?inE ?contract_le1 ?ltW//.
by rewrite ltrBlDl ltrDr.
rewrite subr_gt0 -lte_fin -[in ltLHS](contractK r%:E).
by rewrite fine_expand// lt_expand ?inE ?contract_le1 ?ltrDl ?ltW.
apply/nbhs_ballP; exists e' => // r' re'r'; apply: reA.
have [|r'r] := lerP r r'.
move=> rr'; apply: ball_ereal_ball_fin_le => //.
by apply: le_ball re'r'; rewrite ge_min lexx orbT.
move: re'r'; rewrite /ball /= lt_min => /andP[].
rewrite gtr0_norm ?subr_gt0// ltrD2l ltrN2 -lte_fin fine_expand// => re'r _.
exact: expand_ereal_ball_fin_lt.
by apply: (@nbhs_fin_out_above _ e) => //; rewrite ltW.
have [re1|re1] := ltrP 1 (contract r%:E + e%:num).
exact: (@nbhs_fin_out_above_below _ e).
move: re1; rewrite le_eqVlt => /orP[re1|re1].
have {}re1 : contract r%:E = (1 - e%:num)%R.
by move: re1; rewrite eq_sym -subr_eq => /eqP <-.
have e1 : (1 < e%:num)%R.
move: reN1.
rewrite re1 -addrA -opprD ltrBlDl ltrBrDl -!mulr2n.
rewrite -(mulr_natl e%:num) -{1}(mulr1 2%:R) => ?.
by rewrite -(@ltr_pM2l _ 2).
have Aoo : (setT `\ +oo `<=` A).
move=> x [_]; rewrite /set1 /= => xpoo; apply: reA.
case: x xpoo => [r' _ | // |_].
rewrite /ereal_ball.
have [rr'|r'r] := lerP (contract r%:E) (contract r'%:E).
rewrite re1 opprB addrCA -[ltRHS]addr0 ltrD2 subr_lt0.
by case/ltr_normlP : (contract_lt1 r').
rewrite /ereal_ball.
rewrite re1 addrAC ltrBlDl ltrD // (lt_trans _ e1) // ltrNl.
by move: (contract_lt1 r'); rewrite ltr_norml => /andP[].
rewrite /ereal_ball.
rewrite [contract -oo]/= opprK gtr0_norm ?subr_gt0.
rewrite -ltrBlDl add0r ltrNl.
by move: (contract_lt1 r); rewrite ltr_norml => /andP[].
by rewrite re1 addrAC ltrBlDl ltrD.
have : nbhs r%:E (setT `\ +oo) by exists 1%R => /=.
case => _/posnumP[x] /=; rewrite /ball_ => h.
by exists x%:num => //= y /h; exact: Aoo.
by apply: (@nbhs_fin_out_below _ e) => //; rewrite ltW.
Qed.
Lemma
Proof.
rewrite predeq2E => x A; split.
- rewrite {1}/nbhs /= /ereal_nbhs.
case: x => [/= r [_/posnumP[e] reA]| [M [/= Mreal MA]]| [M [/= Mreal MA]]].
+ pose e' : R := Num.min (contract r%:E - contract (r%:E - e%:num%:E))%R
(contract (r%:E + e%:num%:E) - contract r%:E)%R.
exists (diag e'); rewrite /diag.
exists e' => //.
rewrite /= /e' lt_min; apply/andP; split.
by rewrite subr_gt0 lt_contract lte_fin ltrBlDr ltrDl.
by rewrite subr_gt0 lt_contract lte_fin ltrDl.
case=> [r' /= /xsectionP/= re'r'| |]/=.
* rewrite /ereal_ball in re'r'.
have [r'r|rr'] := lerP (contract r'%:E) (contract r%:E).
apply: reA; rewrite /ball /= ltr_norml//.
rewrite ger0_norm ?subr_ge0// in re'r'.
have : (contract (r%:E - e%:num%:E) < contract r'%:E)%R.
move: re'r'; rewrite /e' lt_min => /andP[+ _].
rewrite /e' ltrBrDl addrC -ltrBrDl => /lt_le_trans.
by apply; rewrite opprB addrC subrK.
rewrite -lt_expandRL ?inE ?contract_le1 // !contractK lte_fin.
rewrite ltrBlDr addrC -ltrBlDr => ->; rewrite andbT.
by rewrite (@lt_le_trans _ _ 0%R)// subr_ge0 -lee_fin -le_contract.
apply: reA; rewrite /ball /= ltr_norml//.
rewrite ltr0_norm ?subr_lt0// opprB in re'r'.
apply/andP; split; last first.
by rewrite (@lt_trans _ _ 0%R) // subr_lt0 -lte_fin -lt_contract.
rewrite ltrNl opprB.
rewrite /e' in re'r'.
have r're : (contract r'%:E < contract (r%:E + e%:num%:E))%R.
move: re'r'; rewrite lt_min => /andP[_].
by rewrite ltrBlDr subrK.
rewrite ltrBlDr -lte_fin -(contractK (_ + r)%:E)%R.
by rewrite addrC -(contractK r'%:E) // lt_expand ?inE ?contract_le1.
* move=> /xsectionP/=; rewrite /ereal_ball [contract +oo]/=.
rewrite lt_min => /andP[re'1 re'2].
have [cr0|cr0] := lerP 0 (contract r%:E).
move: re'2; rewrite ler0_norm.
by rewrite subr_le0; case/ler_normlP : (contract_le1 r%:E).
rewrite opprB ltrBrDl addrC subrK ltNge; apply: contraNP => _.
by rewrite (le_trans (ler_norm _))// contract_le1.
move: re'2; rewrite ler0_norm.
by rewrite subr_le0; case/ler_normlP : (contract_le1 r%:E).
rewrite opprB ltrBrDl addrC subrK ltNge; apply: contraNP => _.
by rewrite (le_trans (ler_norm _))// contract_le1.
* move=> /xsectionP/=; rewrite /ereal_ball [contract -oo]/= opprK.
rewrite lt_min => /andP[re'1 _].
move: re'1.
rewrite ger0_norm.
rewrite addrC -lerBlDl add0r.
by move: (contract_le1 r%:E); rewrite ler_norml => /andP[].
rewrite ltrD2l ltNge; apply: contraNP => _.
by rewrite lerNl lerNnormlW// contract_le1.
+ exists (diag (1 - contract M%:E))%R; rewrite /diag.
exists (1 - contract M%:E)%R => //=.
by rewrite subr_gt0 (le_lt_trans _ (contract_lt1 M)) // ler_norm.
case=> [r| |]/= /xsectionP/=.
* rewrite /ereal_ball [_ +oo]/= ger0_norm.
by rewrite subr_ge0 // (le_trans _ (contract_le1 r%:E)) // ler_norm.
by rewrite ltrD2l ltrN2 => rM1; apply/MA; rewrite -lt_contract.
* by rewrite /ereal_ball /= subrr normr0 => h; exact: MA.
* rewrite /ereal_ball /= opprK ltNge; apply: contraNP => _.
rewrite [in leRHS]ger0_norm // lerD2l.
by rewrite -/(contract M%:E) lerNl lerNnormlW// contract_le1.
+ exists (diag (1 + contract M%:E)%R); rewrite /diag.
exists (1 + contract M%:E)%R => //=.
by rewrite -/(contract M%:E) -ltrBlDl sub0r ltrNnormlW// contract_lt1.
case=> [r| |] /xsectionP/=.
* rewrite /ereal_ball => /= rM1.
apply: MA; rewrite lte_fin.
rewrite ler0_norm in rM1.
by rewrite subr_le0 -/(contract r%:E) lerNnormlW// contract_le1.
move: rM1; rewrite opprB opprK -ltrBlDl addrK.
by rewrite -!/(contract _%:E) lt_contract lte_fin.
* rewrite /ereal_ball/= -opprD normrN ger0_norm// ltrD2l.
by rewrite -/(contract M%:E) ltNge (le_trans (ler_norm _))// contract_le1.
* by rewrite /ereal_ball /= => _; exact: MA.
- case: x => [r [E [_/posnumP[e] reA] sEA] | [E [_/posnumP[e] reA] sEA] |
[E [_/posnumP[e] reA] sEA]] //=.
+ by apply: (@nbhs_fin_inbound _ e) => ? ?; exact/sEA/xsectionP/reA.
+ have [|] := lerP e%:num 1%R.
* by move/nbhs_oo_up_e1; apply => x ex; exact/sEA/xsectionP/reA.
* by move/nbhs_oo_up_1e; apply => x ex; exact/sEA/xsectionP/reA.
+ have [|] := lerP e%:num 1%R.
* by move/nbhs_oo_down_e1; apply => x ex; exact/sEA/xsectionP/reA.
* by move/nbhs_oo_down_1e; apply => x ex; exact/sEA/xsectionP/reA.
Qed.
.
ereal_nbhsE ereal_ball_center ereal_ball_sym ereal_ball_triangle erefl.
End ereal_PseudoMetric.
Lemma
- mathcomp.analysis.normedtype_theory.ereal_normedtype
Source code
a < r%:E -> r%:E < b ->
(forall , a < y%:E -> y%:E < b -> P y) ->
nbhs r P.
Proof.
exists d%:num => //= y; rewrite /= distrC.
by move=> /rd /andP[? ?]; apply: abP.
Qed.
Lemma
ereal_dnbhs x --> ereal_nbhs x.
Proof.
Lemma
ereal_dnbhs r%:E --> nbhs r%:E.
Definition
ereal_loc_seq : forall [R : numDomainType], \bar R -> nat -> \bar R ereal_loc_seq is not universe polymorphic Arguments ereal_loc_seq [R] x%_ereal_scope n%_nat_scope ereal_loc_seq is transparent Expands to: Constant mathcomp.analysis.ereal.ereal_loc_seq Declared in library mathcomp.analysis.ereal, line 1599, characters 11-24
Source code
match x with
| x%:E => (x + (n%:R + 1)^-1)%:E
| +oo => n%:R%:E
| -oo => - n%:R%:E
end.
Lemma
ereal_loc_seq x @ \oo --> ereal_dnbhs x.
Proof.
case: x => /= [x [_/posnumP[d] dP] |[d [dreal dP]] |[d [dreal dP]]]; last 2 first.
- exists (Num.truncn (d + 1)) => // n /=.
by rewrite truncn_le_nat -natr1 ltrD2r => ltdn; apply: dP; rewrite lte_fin.
- exists (Num.truncn (- d + 1)) => // n /=.
rewrite truncn_le_nat -natr1 ltrD2r => ltNdn.
by apply: dP; rewrite lte_fin ltrNl.
exists (Num.truncn d%:num^-1) => // n /=.
rewrite truncn_le_nat invf_plt ?posrE// => ltnd; apply: dP; last first.
by rewrite addrC -subr_eq0 addrK invr_eq0 lt0r_neq0.
by rewrite /= opprD addNKr normrN normfV natr1 gtr0_norm.
Qed.
Section nbhs_ereal.
Context { : numFieldType} ( : \bar R -> Prop).
Lemma
- mathcomp.analysis.normedtype_theory.normed_module
Source code
Proof.
End nbhs_ereal.
Section cvg_fin.
Context { : numFieldType} { : set_system \bar R} { : Filter F}.
Lemma
- mathcomp.analysis.realfun
Source code
Proof.
End cvg_fin.
Section filter.
Context { : numFieldType} { : set_system \bar R} { : Filter F}.
Lemma
- mathcomp.analysis.lebesgue_measure
- mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_differentiation
- mathcomp.analysis.lebesgue_integral_theory.measurable_fun_approximation
Source code
Proof.
apply/(@metricType_numDomainType.cvgrPdist_lt _ R^o) => // _/posnumP[e].
rewrite near_simpl.
apply: Fa; apply/nbhs_EFin.
exact: (@metricType_numDomainType.cvgr_dist_lt _ _ _ (nbhs a)).
Qed.
End filter.
Section limit.
Context { : numFieldType} { : Type} { : set_system I} { : Filter F}
( : I -> \bar R).
Lemma
- mathcomp.analysis.sequences
- mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_under
- mathcomp.analysis.lebesgue_stieltjes_measure
- mathcomp.analysis.topology_theory.edist
- mathcomp.analysis.ftc
- mathcomp.analysis.normedtype_theory.normed_module
Source code
f @ F --> a%:E.
Proof.
Lemma
- mathcomp.analysis.lebesgue_measure
- mathcomp.analysis.sequences
- mathcomp.analysis.lebesgue_integral_theory.lebesgue_Rintegral
- mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_under
- mathcomp.analysis.measurable_realfun
- mathcomp.analysis.probability_theory.random_variable
- mathcomp.analysis.realfun
- mathcomp.analysis.normedtype_theory.normed_module
- mathcomp.analysis.normedtype_theory.urysohn
Source code
Proof.
Lemma
Proof.
Lemma
- mathcomp.analysis.lebesgue_measure
- mathcomp.analysis.esum
- mathcomp.analysis.sequences
- mathcomp.analysis.lebesgue_integral_theory.radon_nikodym
- mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_monotone_convergence
- mathcomp.analysis.lebesgue_integral_theory.lebesgue_Rintegral
- mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_under
- mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_differentiation
- mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_dominated_convergence
- mathcomp.analysis.topology_theory.edist
- mathcomp.analysis.realfun
- mathcomp.analysis.ftc
- mathcomp.analysis.measure_theory.signed_measure
- mathcomp.analysis.normedtype_theory.normed_module
Source code
f @ F --> a%:E <-> (\near , f F \is a fin_num) /\ fine \o f @ F --> a.
Proof.
End limit.