Module mathcomp.analysis.real_measure.lebesgue_stieltjes_measure
From HB Require Import structures.From mathcomp Require Import boot order finmap ssralg ssrnum ssrint interval.
From mathcomp Require Import interval_inference archimedean.
#[warning="-warn-library-file-internal-analysis"]
From mathcomp Require Import unstable.
From mathcomp Require Import boolp classical_sets fsbigop cardinality.
From mathcomp Require Import reals ereal topology normedtype sequences esum
measure realfun.
Set Implicit Arguments.
Unset Strict Implicit.
Unset Printing Implicit Defensive.
Import Order.TTheory GRing.Theory Num.Def Num.Theory.
Import numFieldTopology.Exports.
Local Open Scope classical_set_scope.
Local Open Scope ring_scope.
Reserved Notation "R .-ocitv" (at level 1, format "R .-ocitv").
Reserved Notation "R .-ocitv.-measurable"
(at level 2, format "R .-ocitv.-measurable").
Reserved Notation "R .-open" (at level 1, format "R .-open").
Reserved Notation "R .-open.-measurable"
(at level 2, format "R .-open.-measurable").
Notation
- mathcomp.analysis.probability_theory.random_variable
Source code
(forall , f%function @ at_right x --> f%function x).
Lemma
( : R -> U) : continuous f -> right_continuous f.
Proof.
.
(f : R -> U) := {
cumulative_is_nondecreasing : nondecreasing f ;
cumulative_is_right_continuous : right_continuous f }.
.
(
Arguments cumulative_is_nondecreasing {R d U} _.
Arguments cumulative_is_right_continuous {R d U} _.
Lemma
( : cumulative R R) :
e > 0 -> exists : {posnum R}, f (a + d%:num) <= f a + e.
Proof.
move=> /(_ a) /(@cvgr_dist_lt _ R^o) /(_ _ e0)[] _ /posnumP[d] => h.
exists (PosNum [gt0 of (d%:num / 2)]) => //=.
move: h => /(_ (a + d%:num / 2)) /=.
rewrite opprD addNKr normrN ger0_norm// ltr_pdivrMr// ltr_pMr// 2!ltrDl.
rewrite ltr01 divr_gt0// => /(_ erefl erefl).
rewrite ler0_norm.
by rewrite subr_le0 (cumulative_is_nondecreasing f)// lerDl.
by rewrite opprB ltrBlDl; exact: ltW.
Qed.
Section id_is_cumulative.
Context { : realFieldType}.
Let
Proof.
Let
Proof.
.
End id_is_cumulative.
.
cumulativeNy : f @ -oo --> l ;
cumulativey : f @ +oo --> r }.
.
{ of isCumulativeBounded R l r f & Cumulative R f}.
Arguments cumulativeNy {R l r} s.
Arguments cumulativey {R l r} s.
Section itv_semiRingOfSets.
Context ( : realType).
Implicit Types (I J K : set R).
Definition
ocitv_type : realType -> Type ocitv_type is not universe polymorphic Arguments ocitv_type R ocitv_type is transparent Expands to: Constant mathcomp.analysis.real_measure.lebesgue_stieltjes_measure.ocitv_type Declared in library mathcomp.analysis.real_measure.lebesgue_stieltjes_measure, line 164, characters 11-21
Used by
- mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_nonneg
- mathcomp.analysis.real_measure.lebesgue_measure
Source code
Definition
ocitv : forall [R : realType], set (set R) ocitv is not universe polymorphic Arguments ocitv [R] _ ocitv is transparent Expands to: Constant mathcomp.analysis.real_measure.lebesgue_stieltjes_measure.ocitv Declared in library mathcomp.analysis.real_measure.lebesgue_stieltjes_measure, line 166, characters 11-16
Used by
- mathcomp.analysis.real_measure.measurable_realfun
- mathcomp.analysis.real_measure.lebesgue_measure
Source code
Lemma
- mathcomp.analysis.probability_theory.random_variable
- mathcomp.analysis.real_measure.lebesgue_measure
Source code
Hint Extern 0 (ocitv _) => solve [apply: is_ocitv] : core.
Lemma
Proof.
Lemma
- mathcomp.analysis.real_measure.measurable_realfun
- mathcomp.analysis.real_measure.lebesgue_measure
Source code
Proof.
case: (boolP (x.1 < x.2)) => x12; first by right; exists x.
by left; rewrite set_itv_ge.
Qed.
Lemma
Proof.
rewrite setD0; exists [set `]a.1, a.2]%classic].
by split=> [//|? ->//||? ? -> ->//]; rewrite bigcup_set1.
rewrite setDE setCitv/= setIUr -!set_itvI.
rewrite /Order.meet/= /Order.meet/= /Order.join/=
?(andbF, orbF)/= ?(meetEtotal, joinEtotal).
rewrite -negb_or le_total/=; set c := minr _ _; set d := maxr _ _.
have inside : a.1 < c -> d < a.2 -> `]a.1, c] `&` `]d, a.2] = set0.
rewrite -subset0 lt_min gt_max => /andP[a12 ab1] /andP[_ ba2] x /= [].
have b1a2 : b.1 <= a.2 by rewrite ltW// (lt_trans ltb).
have a1b2 : a.1 <= b.2 by rewrite ltW// (lt_trans _ ltb).
rewrite /c /d (min_idPr _)// (max_idPr _)// !in_itv /=.
move=> /andP[a1x xb1] /andP[b2x xa2].
by have := lt_le_trans b2x xb1; case: ltgtP ltb.
exists ((if a.1 < c then [set `]a.1, c]%classic] else set0) `|`
(if d < a.2 then [set `]d, a.2]%classic] else set0)); split.
- by rewrite finite_setU; do! case: ifP.
- by move=> ? []; case: ifP => ? // ->//=.
- by rewrite bigcup_setU; congr (_ `|` _);
case: ifPn => ?; rewrite ?bigcup_set1 ?bigcup_set0// set_itv_ge.
- move=> I J/=; case: ifP => //= ac; case: ifP => //= da [] // -> []// ->.
by rewrite inside// => -[].
by rewrite setIC inside// => -[].
Qed.
Lemma
Proof.
Definition
ocitv_display : Type -> measure_display ocitv_display is not universe polymorphic Arguments ocitv_display _%_type_scope ocitv_display is opaque Expands to: Constant mathcomp.analysis.real_measure.lebesgue_stieltjes_measure.ocitv_display Declared in library mathcomp.analysis.real_measure.lebesgue_stieltjes_measure, line 218, characters 11-24
Source code
Proof.
.
.
ocitv_type ocitv ocitv0 ocitvI ocitvD.
End itv_semiRingOfSets.
Notation
- mathcomp.analysis.real_measure.lebesgue_measure
Source code
Notation
- mathcomp.analysis.real_measure.measurable_realfun
Source code
classical_set_scope.
Module
Section measurableRocitv.
Context { : realType}.
Definition
MeasurableRocitv.measurableTypeR : realType -> Type MeasurableRocitv.measurableTypeR is not universe polymorphic Arguments MeasurableRocitv.measurableTypeR R MeasurableRocitv.measurableTypeR is transparent Expands to: Constant mathcomp.analysis.real_measure.lebesgue_stieltjes_measure.MeasurableRocitv.measurableTypeR Declared in library mathcomp.analysis.real_measure.lebesgue_stieltjes_measure, line 235, characters 11-26
Source code
Definition
MeasurableRocitv.lebesgue_display : realType -> measure_display MeasurableRocitv.lebesgue_display is not universe polymorphic Arguments MeasurableRocitv.lebesgue_display {R} MeasurableRocitv.lebesgue_display is transparent Expands to: Constant mathcomp.analysis.real_measure.lebesgue_stieltjes_measure.MeasurableRocitv.lebesgue_display Declared in library mathcomp.analysis.real_measure.lebesgue_stieltjes_measure, line 237, characters 11-27
Source code
Definition
MeasurableRocitv.measurableR : forall {R : realType}, set_system R MeasurableRocitv.measurableR is not universe polymorphic Arguments MeasurableRocitv.measurableR {R} _ MeasurableRocitv.measurableR is transparent Expands to: Constant mathcomp.analysis.real_measure.lebesgue_stieltjes_measure.MeasurableRocitv.measurableR Declared in library mathcomp.analysis.real_measure.lebesgue_stieltjes_measure, line 239, characters 11-22
Source code
.
Measurable.on measurableTypeR.
.
Lemma
Proof.
by apply: sub_sigma_algebra; exact/is_ocitv.
Qed.
Lemma
Proof.
by apply: sub_sigma_algebra; apply: is_ocitv.
have mopoo ( : R) : measurable `]x, +oo[.
by rewrite itv_bndy_bigcup_BRight; exact: bigcup_measurable.
have mnooc ( : R) : measurable `]-oo, x].
by rewrite -setCitvr; exact/measurableC.
have ooE ( : R) : `]a, b[%classic = `]a, b] `\ b.
by rewrite setDitv1r.
have moo ( : R) : measurable `]a, b[ by rewrite ooE; exact: measurableD.
have mcc ( : R) : measurable `[a, b].
case: (boolP (a <= b)) => ab; last by rewrite set_itv_ge.
by rewrite -setU_1itvob//; apply/measurableU.
have mco ( : R) : measurable `[a, b[.
case: (boolP (a < b)) => ab; last by rewrite set_itv_ge.
by rewrite -setU_1itvob//; apply/measurableU.
have oooE ( : R) : `]-oo, b[%classic = `]-oo, b] `\ b.
by rewrite setDitv1r.
case: i => [[[] a|[]] [[] b|[]]] => //; do ?by rewrite set_itv_ge.
- by rewrite -setU_1itvob//; exact/measurableU.
- by rewrite oooE; exact/measurableD.
- by rewrite set_itvNyy.
Qed.
End measurableRocitv.
Arguments measurableTypeR : clear implicits.
#[global]
Hint Extern 0 (measurable (_ @^-1` [set _])) =>
solve [apply: measurable_funPTI; exact: measurable_set1] : core.
#[global]
Hint Extern 0 (measurable [set _]) => solve [apply: measurable_set1] : core.
#[global]
Hint Extern 0 (measurable [set` _] ) => exact: measurable_itv : core.
End MeasurableRocitv.
Module
Section rgenoinfty.
Context ( : realType).
Implicit Types x y z : R.
Definition
RGenOInfty.G : forall [R : realType], set (set R) RGenOInfty.G is not universe polymorphic Arguments RGenOInfty.G [R] _ RGenOInfty.G is transparent Expands to: Constant mathcomp.analysis.real_measure.lebesgue_stieltjes_measure.RGenOInfty.G Declared in library mathcomp.analysis.real_measure.lebesgue_stieltjes_measure, line 296, characters 11-12
Source code
Lemma
- mathcomp.analysis.real_measure.measurable_realfun
Source code
G.-sigma.-measurable [set` Interval (BSide b x) +oo%O].
Proof.
rewrite itvcyEbigcap; apply: bigcapT_measurable => k.
by apply: sub_sigma_algebra; eexists; reflexivity.
Qed.
Lemma
G.-sigma.-measurable [set` Interval a (BSide b x)].
Proof.
by rewrite set_itv_splitD; apply: measurableD => //;
exact: measurable_itv_bnd_infty.
by rewrite -setCitvr; apply: measurableC; exact: measurable_itv_bnd_infty.
Qed.
Lemma
- mathcomp.analysis.real_measure.measurable_realfun
Source code
Proof.
apply: smallest_sub; first exact: smallest_sigma_algebra.
by move=> I [x _ <-]; exact: measurable_itv_bounded.
by apply: smallest_sub; [exact: smallest_sigma_algebra|move=> A' /= [x ->]].
Qed.
End rgenoinfty.
End RGenOInfty.
Module
Section rgeninftyo.
Context ( : realType).
Implicit Types x y z : R.
Definition
RGenInftyO.G : forall [R : realType], set (set R) RGenInftyO.G is not universe polymorphic Arguments RGenInftyO.G [R] _ RGenInftyO.G is transparent Expands to: Constant mathcomp.analysis.real_measure.lebesgue_stieltjes_measure.RGenInftyO.G Declared in library mathcomp.analysis.real_measure.lebesgue_stieltjes_measure, line 331, characters 11-12
Source code
Lemma
G.-sigma.-measurable [set` Interval -oo%O (BSide b x)].
Proof.
rewrite -setCitvr itvoyEbigcup; apply/measurableC/bigcupT_measurable => n.
rewrite -setCitvl; apply: measurableC.
by apply: sub_sigma_algebra; eexists; reflexivity.
Qed.
Lemma
G.-sigma.-measurable [set` Interval (BSide b x) a].
Proof.
by rewrite set_itv_splitD; apply/measurableD => //;
rewrite -setCitvl; apply: measurableC; exact: measurable_itv_bnd_infty.
by rewrite -setCitvl; apply: measurableC; exact: measurable_itv_bnd_infty.
Qed.
Lemma
- mathcomp.analysis.real_measure.measurable_realfun
Source code
Proof.
apply: smallest_sub; first exact: smallest_sigma_algebra.
by move=> I [x _ <-]; exact: measurable_itv_bounded.
by apply: smallest_sub; [exact: smallest_sigma_algebra|move=> A' /= [x ->]].
Qed.
End rgeninftyo.
End RGenInftyO.
Module
Section rgencinfty.
Context ( : realType).
Implicit Types x y z : R.
Definition
RGenCInfty.G : forall [R : realType], set_system R RGenCInfty.G is not universe polymorphic Arguments RGenCInfty.G [R] _ RGenCInfty.G is transparent Expands to: Constant mathcomp.analysis.real_measure.lebesgue_stieltjes_measure.RGenCInfty.G Declared in library mathcomp.analysis.real_measure.lebesgue_stieltjes_measure, line 367, characters 11-12
Source code
Lemma
G.-sigma.-measurable [set` Interval (BSide b x) +oo%O].
Proof.
rewrite itvoyEbigcup; apply: bigcupT_measurable => k.
by apply: sub_sigma_algebra; eexists; reflexivity.
Qed.
Lemma
G.-sigma.-measurable [set` Interval a (BSide b y)].
Proof.
rewrite set_itv_splitD.
by apply: measurableD; exact: measurable_itv_bnd_infty.
by rewrite -setCitvr; apply: measurableC; exact: measurable_itv_bnd_infty.
Qed.
Lemma
- mathcomp.analysis.real_measure.measurable_realfun
Source code
Proof.
apply: smallest_sub; first exact: smallest_sigma_algebra.
by move=> I [x _ <-]; exact: measurable_itv_bounded.
by apply: smallest_sub; [exact: smallest_sigma_algebra|move=> A' /= [x ->]].
Qed.
End rgencinfty.
End RGenCInfty.
Module
Section rgenopens.
Context ( : realType).
Implicit Types x y z : R.
Definition
RGenOpens.G : forall [R : realType], set (set R) RGenOpens.G is not universe polymorphic Arguments RGenOpens.G [R] _ RGenOpens.G is transparent Expands to: Constant mathcomp.analysis.real_measure.lebesgue_stieltjes_measure.RGenOpens.G Declared in library mathcomp.analysis.real_measure.lebesgue_stieltjes_measure, line 402, characters 11-12
Source code
Local Lemma
Proof.
Local Lemma
Proof.
Lemma
G.-sigma.-measurable [set` Interval (BSide b x) +oo%O].
Proof.
rewrite itvcyEbigcap; apply: bigcapT_measurable => k.
exact: measurable_itv_o_infty.
Qed.
Lemma
G.-sigma.-measurable [set` Interval -oo%O (BSide b x)].
Proof.
Lemma
G.-sigma.-measurable [set` Interval (BSide a x) (BSide b y)].
Proof.
apply: measurableC; apply: measurableU; try solve[
exact: measurable_itv_infty_bnd|exact: measurable_itv_bnd_infty].
Qed.
Lemma
- mathcomp.analysis.real_measure.measurable_realfun
Source code
Proof.
apply: smallest_sub; first exact: smallest_sigma_algebra.
by move=> I [x _ <-]; exact: measurable_itv_bounded.
by apply: smallest_sub; [exact: smallest_sigma_algebra|move=> A' /= [x [y ->]]].
Qed.
End rgenopens.
End RGenOpens.
Module
Section rgenopensets.
Context ( : realType).
Implicit Types a b : R.
Import MeasurableRocitv.
Lemma
- mathcomp.analysis.real_measure.measurable_realfun
- mathcomp.analysis.real_measure.lebesgue_measure
Source code
Proof.
apply: sigma_algebra_subl=> U.
- by rewrite /RGenOpens.G/= => -[a [b ->]]; exact: sub_sigma_algebra.
- move=> oU; rewrite (open_disjoint_itv_bigcup oU).
apply: sigma_algebra_bigcup => k.
have /is_intervalP -> := @open_disjoint_itv_is_interval _ U oU k.
exact: measurable_itv.
Qed.
End rgenopensets.
End RGenOpenSets.
Section open.
Context { : realType}.
Definition
open_type : realType -> Type open_type is not universe polymorphic Arguments open_type {R} open_type is transparent Expands to: Constant mathcomp.analysis.real_measure.lebesgue_stieltjes_measure.open_type Declared in library mathcomp.analysis.real_measure.lebesgue_stieltjes_measure, line 469, characters 11-20
Source code
.
Let
Let
Proof.
Let
Proof.
Let
measurable (\bigcup_ (F i)).
Proof.
.
open_type measurable measurable0 measurableC measurable_bigcup.
End open.
Notation
Notation
- mathcomp.analysis.real_measure.lebesgue_measure
Source code
classical_set_scope.
Module
Section measurableRopen.
Context { : realType}.
Definition
MeasurableRopen.measurableTypeR : realType -> Type MeasurableRopen.measurableTypeR is not universe polymorphic Arguments MeasurableRopen.measurableTypeR R MeasurableRopen.measurableTypeR is transparent Expands to: Constant mathcomp.analysis.real_measure.lebesgue_stieltjes_measure.MeasurableRopen.measurableTypeR Declared in library mathcomp.analysis.real_measure.lebesgue_stieltjes_measure, line 498, characters 11-26
Used by
- mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_differentiation
- mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_nonneg
- mathcomp.analysis.lebesgue_integral_theory.measurable_fun_approximation
- mathcomp.analysis.probability_theory.random_variable
Source code
Definition
MeasurableRopen.lebesgue_display : realType -> measure_display MeasurableRopen.lebesgue_display is not universe polymorphic Arguments MeasurableRopen.lebesgue_display {R} MeasurableRopen.lebesgue_display is transparent Expands to: Constant mathcomp.analysis.real_measure.lebesgue_stieltjes_measure.MeasurableRopen.lebesgue_display Declared in library mathcomp.analysis.real_measure.lebesgue_stieltjes_measure, line 500, characters 11-27
Used by
- mathcomp.analysis.real_measure.measurable_realfun
Source code
Definition
MeasurableRopen.measurableR : forall {R : realType}, set_system R MeasurableRopen.measurableR is not universe polymorphic Arguments MeasurableRopen.measurableR {R} _ MeasurableRopen.measurableR is transparent Expands to: Constant mathcomp.analysis.real_measure.lebesgue_stieltjes_measure.MeasurableRopen.measurableR Declared in library mathcomp.analysis.real_measure.lebesgue_stieltjes_measure, line 502, characters 11-22
Source code
.
Measurable.on measurableTypeR.
.
Lemma
- mathcomp.analysis.probability_theory.random_variable
- mathcomp.analysis.probability_theory.independence
Source code
Proof.
Lemma
- mathcomp.analysis.probability_theory.normal_distribution
- mathcomp.analysis.ftc
Source code
Proof.
rewrite /MeasurableRocitv.lebesgue_display.
by rewrite RGenOpenSets.measurableE.
Qed.
End measurableRopen.
Arguments measurableTypeR : clear implicits.
#[global]
Hint Extern 0 (measurable (_ @^-1` [set _])) =>
solve [apply: measurable_funPTI; exact: measurable_set1] : core.
#[global]
Hint Extern 0 (measurable [set _]) => solve [apply: measurable_set1] : core.
#[global]
Hint Extern 0 (measurable [set` _] ) => exact: measurable_itv : core.
Lemma
( : {mfun aT >-> rT}) ( : rT) :
measurable D -> measurable (D `&` f @^-1` [set y]).
Proof.
Notation
#[global] Hint Extern 0 (measurable (_ `&` _ @^-1` [set _])) =>
solve [apply: measurable_funP1; assumption] : core.
Section ocitv_measure.
Context { : realType} ( : measure (measurableTypeR R) R).
Definition
ocitv_measure : forall {R : realType}, {measure set MeasurableRopen.measurableTypeR R -> \bar R}%R -> set (measurableTypeR R) -> \bar R ocitv_measure is not universe polymorphic Arguments ocitv_measure {R} mu _%_classical_set_scope ocitv_measure is transparent Expands to: Constant mathcomp.analysis.real_measure.lebesgue_stieltjes_measure.MeasurableRopen.ocitv_measure Declared in library mathcomp.analysis.real_measure.lebesgue_stieltjes_measure, line 547, characters 11-24
Source code
mu.
Let
Proof.
Let
Proof.
Let
Proof.
- move=> i; apply: H1; split => //=; first exact: sigma_algebra_measurable.
by rewrite -RGenOpenSets.measurableE; exact: sub_sigma_algebra.
- by rewrite -RGenOpenSets.measurableE.
Qed.
.
measure0 measure_ge0 measure_semi_sigma_additive.
Lemma
Proof.
End ocitv_measure.
End MeasurableRopen.
Module
- mathcomp.analysis.kernel
- mathcomp.analysis.lebesgue_integral_theory.radon_nikodym
- mathcomp.analysis.lebesgue_integral_theory.lebesgue_Rintegral
- mathcomp.analysis.lebesgue_integral_theory.simple_functions
- mathcomp.analysis.lebesgue_integral_theory.lebesgue_integrable
- mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_definition
- mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_fubini
- mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_dominated_convergence
- mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_differentiation
- mathcomp.analysis.lebesgue_integral_theory.lebesgue_integral_nonneg
- mathcomp.analysis.lebesgue_integral_theory.measurable_fun_approximation
- mathcomp.analysis.lebesgue_integral_theory.giry
- mathcomp.analysis.elementary_functions.trigonometry_integral
- mathcomp.analysis.hoelder
- mathcomp.analysis.borel_hierarchy
- mathcomp.analysis.gauss_integral
- mathcomp.analysis.probability_theory.normal_distribution
- mathcomp.analysis.probability_theory.bernoulli_distribution
- mathcomp.analysis.probability_theory.uniform_distribution
- mathcomp.analysis.probability_theory.beta_distribution
- mathcomp.analysis.probability_theory.poisson_distribution
- mathcomp.analysis.probability_theory.binomial_distribution
- mathcomp.analysis.probability_theory.exponential_distribution
- mathcomp.analysis.probability_theory.random_variable
- mathcomp.analysis.probability_theory.independence
- mathcomp.analysis.real_measure.measurable_realfun
- mathcomp.analysis.real_measure.lebesgue_measure
- mathcomp.analysis.ftc
Source code
Export MeasurableRopen.
End MeasurableR.
Section wlength.
Context { : realType} ( : R -> R).
Import MeasurableR.
Local Open Scope ereal_scope.
Implicit Types i j : interval R.
Let : \bar R -> \bar R := er_map f.
Definition
wlength : forall {R : realType}, (R -> R) -> set (ocitv_type R) -> \bar R wlength is not universe polymorphic Arguments wlength {R} f%_function_scope A%_classical_set_scope wlength is transparent Expands to: Constant mathcomp.analysis.real_measure.lebesgue_stieltjes_measure.wlength Declared in library mathcomp.analysis.real_measure.lebesgue_stieltjes_measure, line 587, characters 11-18
Used by
- mathcomp.analysis.real_measure.measurable_realfun
- mathcomp.analysis.real_measure.lebesgue_measure
Source code
let := Rhull A in g i.2 - g i.1.
Lemma
- mathcomp.analysis.probability_theory.random_variable
- mathcomp.analysis.real_measure.measurable_realfun
- mathcomp.analysis.real_measure.lebesgue_measure
Source code
Lemma
Proof.
Lemma
Lemma
- mathcomp.analysis.real_measure.measurable_realfun
- mathcomp.analysis.real_measure.lebesgue_measure
Source code
Proof.
rewrite le_eqVlt => /orP[|/lt_ereal_bnd i12]; last first.
rewrite -wlength0; congr (wlength _).
by apply/eqP/negPn; rewrite -/(neitv _) neitvE -leNgt (ltW i12).
case: i => -[ba a|[|]] [bb b|[|]] //=.
- rewrite /= => /eqP[->{b}]; move: ba bb => -[] []; try
by rewrite set_itvE wlength0.
by rewrite wlength_singleton.
- by move=> _; rewrite set_itvE wlength0.
- by move=> _; rewrite set_itvE wlength0.
Qed.
Lemma
((i.1 : \bar R) \is a fin_num) /\ ((i.2 : \bar R) \is a fin_num).
Proof.
by move=> _; rewrite wlength_itv /= ltry.
by move=> _; rewrite wlength_itv /= ltNye.
by move=> _; rewrite wlength_itv.
Qed.
Lemma
wlength [set` i] = (fine (g i.2))%:E - (fine (g i.1))%:E.
Proof.
rewrite fineK.
by rewrite /g; move: i2f; case: (ereal_of_itv_bound i.2).
rewrite fineK.
by rewrite /g; move: i1f; case: (ereal_of_itv_bound i.1).
rewrite wlength_itv; case: ifPn => //; rewrite -leNgt le_eqVlt => /predU1P[->|].
by rewrite subee// /g; move: i1f; case: (ereal_of_itv_bound i.1).
by move/lt_ereal_bnd/ltW; rewrite leNgt; move: i0 => /neitvP => ->.
Qed.
Lemma
- mathcomp.analysis.probability_theory.random_variable
Source code
wlength [set` Interval (BSide x a) (BSide y b)] = (f b - f a)%:E.
Proof.
Lemma
wlength [set` Interval -oo%O (BSide b r)] = +oo :> \bar R.
Proof.
Lemma
wlength [set` Interval (BSide b r) +oo%O] = +oo :> \bar R.
Proof.
Lemma
(exists , i = Interval -oo%O (BSide s r) \/ i = Interval (BSide s r) +oo%O)
\/ i = `]-oo, +oo[.
Proof.
- by case: ifPn.
- by left; exists ba, a; right.
- by left; exists bb, b; left.
- by right.
Qed.
Lemma
0 <= wlength [set` i].
Proof.
Lemma
- mathcomp.analysis.real_measure.lebesgue_measure
Source code
Proof.
Lemma
{subset i <= j} -> wlength [set` i] <= wlength [set` j].
Proof.
have [->|/set0P I0] := eqVneq I set0; first by rewrite wlength0 wlength_itv_ge0.
have [J0|/set0P J0] := eqVneq J set0.
by move/subset_itvP; rewrite -/J J0 subset0 -/I => ->.
move=> /subset_itvP ij; apply: leeB => /=.
have [ui|ui] := asboolP (has_ubound I).
have [uj /=|uj] := asboolP (has_ubound J); last by rewrite leey.
by rewrite lee_fin ndf// supS.
have [uj /=|//] := asboolP (has_ubound J).
by move: ui; have := subset_has_ubound ij uj.
have [lj /=|lj] := asboolP (has_lbound J); last by rewrite leNye.
have [li /=|li] := asboolP (has_lbound I); last first.
by move: li; have := subset_has_lbound ij lj.
by rewrite lee_fin; exact/ndf/infS.
Qed.
Lemma
{homo wlength : / A `<=` B >-> A <= B}.
Proof.
End wlength.
Section wlength_extension.
Context { : realType}.
Lemma
measure_function.semi_additive (wlength f).
Proof.
move=> Itriv [[/= a1 a2] _] /esym /[dup] + ->.
rewrite wlength_itv ?lte_fin/= -EFinB.
case: ifPn => a12; last first.
pose I := `](b i).1, (b i).2]%classic.
rewrite set_itv_ge//= -(bigcup_mkord _ I) /I => /bigcup0P I0.
by under eq_bigr => i _ do rewrite I0//= wlength0; rewrite big1.
set A := `]a1, a2]%classic.
rewrite -bigcup_pred; set P := xpredT; rewrite (eq_bigl P)//.
move: P => P; have [p] := ubnP #|P|; elim: p => // p IHp in P a2 a12 A *.
rewrite ltnS => cP /esym AE.
have : A a2 by rewrite /A /= in_itv/= lexx andbT.
rewrite AE/= => -[i /= Pi] a2bi.
case: (boolP ((b i).1 < (b i).2)) => bi; last by rewrite itv_ge in a2bi.
have {}a2bi : a2 = (b i).2.
apply/eqP; rewrite eq_le (itvP a2bi)/=.
suff: A (b i).2 by move=> /itvP->.
by rewrite AE; exists i=> //=; rewrite in_itv/= lexx andbT.
rewrite {a2}a2bi in a12 A AE *.
rewrite (bigD1 i)//= wlength_itv ?lte_fin/= bi !EFinD -addeA.
congr (_ + _)%E; apply/eqP; rewrite addeC -sube_eq// 1?adde_defC//.
rewrite ?EFinN oppeK addeC; apply/eqP.
have [a1bi|a1bi] := eqVneq a1 (b i).1.
rewrite {a1}a1bi in a12 A AE {IHp} *; rewrite subee ?big1// => j.
move=> /andP[Pj Nji]; rewrite wlength_itv ?lte_fin/=; case: ifPn => bj//.
exfalso; have /trivIsetP/(_ j i I I Nji) := Itriv.
pose m := ((b j).1 + (b j).2) / 2%:R.
have mbj : `](b j).1, (b j).2]%classic m.
by rewrite /= !in_itv/= ?(midf_lt, midf_le)//= ltW.
rewrite -subset0 => /(_ m); apply; split=> //.
by suff: A m by []; rewrite AE; exists j.
have a1b2 j : P j -> (b j).1 < (b j).2 -> a1 <= (b j).2.
move=> Pj bj; suff /itvP-> : A (b j).2 by [].
by rewrite AE; exists j => //=; rewrite ?in_itv/= bj/=.
have a1b j : P j -> (b j).1 < (b j).2 -> a1 <= (b j).1.
move=> Pj bj; case: ltP=> // bj1a.
suff : A a1 by rewrite /A/= in_itv/= ltxx.
by rewrite AE; exists j; rewrite //= in_itv/= bj1a//= a1b2.
have bbi2 j : P j -> (b j).1 < (b j).2 -> (b j).2 <= (b i).2.
move=> Pj bj; suff /itvP-> : A (b j).2 by [].
by rewrite AE; exists j => //=; rewrite ?in_itv/= bj/=.
apply/IHp.
- by rewrite lt_neqAle a1bi/= a1b.
- rewrite (leq_trans _ cP)// -(cardID (pred1 i) P).
rewrite [X in (_ < X + _)%N](@eq_card _ _ (pred1 i)).
by move=> j; rewrite !inE andbC; case: eqVneq => // ->.
rewrite ?card1 ?ltnS// subset_leq_card//.
by apply/fintype.subsetP => j; rewrite -topredE/= !inE andbC.
apply/seteqP; split=> /= [x [j/= /andP[Pj Nji]]|x/= xabi].
case: (boolP ((b j).1 < (b j).2)) => bj; last by rewrite itv_ge.
apply: subitvP; rewrite subitvE ?bnd_simp a1b//= leNgt.
have /trivIsetP/(_ j i I I Nji) := Itriv.
rewrite -subset0 => /(_ (b j).2); apply: contra_notN => /= bi1j2.
by rewrite !in_itv/= bj !lexx bi1j2 bbi2.
have: A x.
rewrite /A/= in_itv/= (itvP xabi)/= ltW//.
by rewrite (le_lt_trans _ bi) ?(itvP xabi).
rewrite AE => -[j /= Pj xbj].
exists j => //=.
apply/andP; split=> //; apply: contraTneq xbj => ->.
by rewrite in_itv/= le_gtF// (itvP xabi).
Qed.
Lemma
(0 <= wlength f I)%E.
Proof.
#[local] Hint Extern 0 (0%:E <= wlength _ _) => solve[apply: wlength_ge0] : core.
.
isContent.Build _ _ R (wlength f)
(wlength_ge0 f)
(wlength_semi_additive f).
Hint Extern 0 (measurable _) => solve [apply: is_ocitv] : core.
Lemma
( : nat -> R) : (forall , i \in D -> a i <= b i) ->
`]a0, b0] `<=` \big[setU/set0]_( <- D) `]a i, b i]%classic ->
f b0 - f a0 <= \sum_( <- D) (f (b i) - f (a i)).
Proof.
apply (@le_trans _ _ 0).
by rewrite subr_le0 cumulative_is_nondecreasing// ltW.
rewrite big_seq sumr_ge0// => i iD.
by rewrite subr_ge0 cumulative_is_nondecreasing// Dab.
have mab k : [set` D] k -> R.-ocitv.-measurable `]a k, b k]%classic by [].
move: h; rewrite -bigcup_fset.
move/(content_sub_fsum (wlength f) (finite_fset D) mab (is_ocitv a0 b0)) => /=.
rewrite wlength_itv_bnd// -lee_fin => /le_trans; apply.
rewrite -sumEFin fsbig_finite//= set_fsetK// big_seq [in leRHS]big_seq.
by apply: lee_sum => i iD; rewrite wlength_itv_bnd// Dab.
Qed.
Lemma
measurable_subset_sigma_subadditive (wlength f).
Proof.
rewrite /subset_sigma_subadditive wlength_itv ?lte_fin/= -EFinB => lebig.
case: ifPn => a12; last by rewrite nneseries_esum ?esum_ge0.
wlog wlogh : b A AE lebig / forall , (b n).1 <= (b n).2.
move=> /= h.
set A' := fun => if (b n).1 >= (b n).2 then set0 else A n.
set b' := fun => if (b n).1 >= (b n).2 then (0, 0) else b n.
rewrite [leRHS](_ : _ = \sum_( <oo) wlength f (A' n))%E.
apply: (@eq_eseriesr _ (wlength f \o A) (wlength f \o A')) => k.
rewrite /= /A' AE; case: ifPn => // bn.
by rewrite set_itv_ge//= bnd_simp -leNgt.
apply: (h b').
- move=> k; rewrite /A'; case: ifPn => // bk.
by rewrite set_itv_ge//= bnd_simp -leNgt /b' bk.
- by rewrite AE /b' (negbTE bk).
- apply: (subset_trans lebig); apply subset_bigcup => k _.
rewrite /A' AE; case: ifPn => bk //.
by rewrite subset0 set_itv_ge//= bnd_simp -leNgt.
- by move=> k; rewrite /b'; case: ifPn => //; rewrite -ltNge => /ltW.
apply/lee_addgt0Pr => _/posnumP[e].
rewrite [e%:num]splitr [in leRHS]EFinD addeA -leeBlDr//.
apply: le_trans (epsilon_trick _ _ _) => //=.
have [c ce] := nondecreasing_right_continuousP a.1 f [gt0 of e%:num / 2].
have [D De] : exists : nat -> {posnum R}, forall ,
f ((b i).2 + (D i)%:num) <= f ((b i).2) + (e%:num / 2) / 2 ^ i.+1.
suff : forall , exists : {posnum R},
f ((b i).2 + di%:num) <= f ((b i).2) + (e%:num / 2) / 2 ^ i.+1.
by move/choice => -[g hg]; exists g.
by move=> k; apply nondecreasing_right_continuousP.
have acbd : `[ a.1 + c%:num / 2, a.2] `<=`
\bigcup_ `](b i).1, (b i).2 + (D i)%:num[%classic.
apply: (@subset_trans _ `]a.1, a.2]).
move=> r; rewrite /= !in_itv/= => /andP [+ ->].
by rewrite andbT; apply: lt_le_trans; rewrite ltrDl.
apply: (subset_trans lebig) => r [n _ Anr]; exists n => //.
move: Anr; rewrite AE /= !in_itv/= => /andP [->]/= /le_lt_trans.
by apply; rewrite ltrDl.
have := @segment_compact _ (a.1 + c%:num / 2) a.2; rewrite compact_cover.
have obd k : [set: nat] k -> open `](b k).1, ((b k).2 + (D k)%:num)[%classic.
by move=> _; exact: interval_open.
move=> /(_ _ _ _ obd acbd){obd acbd}.
case=> X _ acXbd.
rewrite /cover in acXbd.
rewrite -EFinD.
apply: (@le_trans _ _ (\sum_( <- X) (wlength f `](b i).1, (b i).2]%classic) +
\sum_( <- X) (f ((b i).2 + (D i)%:num)%R - f (b i).2)%:E)%E).
apply: (@le_trans _ _ (f a.2 - f (a.1 + c%:num / 2))%:E).
rewrite lee_fin -addrA -opprD lerB// (le_trans _ ce)//.
rewrite cumulative_is_nondecreasing//.
by rewrite lerD2l ler_pdivrMr// ler_pMr// ler1n.
apply: (@le_trans _ _
(\sum_( <- X) (f ((b i).2 + (D i)%:num) - f (b i).1)%:E)%E).
rewrite sumEFin lee_fin cumulative_content_sub_fsum//.
by move=> k kX; rewrite (@le_trans _ _ (b k).2)// lerDl.
apply: subset_trans.
exact/(subset_trans _ acXbd)/subset_itv_oc_cc.
move=> x [k kX] kx; rewrite -bigcup_fset; exists k => //.
by move: x kx; exact: subset_itv_oo_oc.
rewrite addeC -big_split/=; apply: lee_sum => k _.
by rewrite !(EFinB, wlength_itv_bnd)// addeA subeK.
rewrite -big_split/= nneseries_esum//; first by move=> k _; rewrite adde_ge0.
rewrite esum_ge//=; first by move=> n _; rewrite adde_ge0.
exists [set` X] => //; rewrite fsbig_finite//= set_fsetK.
rewrite big_seq [in X in (_ <= X)%E]big_seq; apply: lee_sum => k kX.
by rewrite AE leeD2l// lee_fin lerBlDl natrX De.
Qed.
.
Content_SigmaSubAdditive_isMeasure.Build _ _ _
(wlength f) (wlength_sigma_subadditive f).
Lemma
- mathcomp.analysis.real_measure.lebesgue_measure
Source code
sigma_finite [set: (ocitv_type R)] (wlength f).
Proof.
Definition
ocitv_lebesgue_stieltjes_measure : forall {R : realType}, cumulative R R -> set (g_sigma_algebraType (R.-ocitv).-measurable%classic) -> \bar R ocitv_lebesgue_stieltjes_measure is not universe polymorphic Arguments ocitv_lebesgue_stieltjes_measure {R} f _%_classical_set_scope ocitv_lebesgue_stieltjes_measure is transparent Expands to: Constant mathcomp.analysis.real_measure.lebesgue_stieltjes_measure.ocitv_lebesgue_stieltjes_measure Declared in library mathcomp.analysis.real_measure.lebesgue_stieltjes_measure, line 891, characters 11-43
Source code
measure_extension (wlength f).
.
Measure.on (ocitv_lebesgue_stieltjes_measure f).
Let
sigma_finite setT (ocitv_lebesgue_stieltjes_measure f).
Proof.
by move=> [X bX fX]; exists X.
Qed.
.
@Measure_isSigmaFinite.Build _ _ _ (ocitv_lebesgue_stieltjes_measure f)
(ocitv_sigmaT_finite_lebesgue_stieltjes_measure f).
Definition
lebesgue_stieltjes_measure : forall {R : realType}, cumulative R R -> set (g_sigma_algebraType topology_structure.open) -> \bar R lebesgue_stieltjes_measure is not universe polymorphic Arguments lebesgue_stieltjes_measure {R} f _%_classical_set_scope lebesgue_stieltjes_measure is transparent Expands to: Constant mathcomp.analysis.real_measure.lebesgue_stieltjes_measure.lebesgue_stieltjes_measure Declared in library mathcomp.analysis.real_measure.lebesgue_stieltjes_measure, line 907, characters 11-37
Used by
- mathcomp.analysis.probability_theory.random_variable
- mathcomp.analysis.real_measure.lebesgue_measure
Source code
set (g_sigma_algebraType (@open R)) -> \bar R :=
measure_extension (wlength f).
Let
Proof.
Let
Proof.
Let
semi_sigma_additive (lebesgue_stieltjes_measure f).
Proof.
rewrite RGenOpenSets.measurableE//=.
Qed.
.
isMeasure.Build _ _ _ (lebesgue_stieltjes_measure f)
(lsm0 f) (lsm_ge0 f) (@lsm_semi_sigma_additive f).
Let
sigma_finite setT (lebesgue_stieltjes_measure f).
Proof.
by move=> [X bX fX]; exists X=>// i; rewrite -RGenOpenSets.measurableE.
Qed.
.
@Measure_isSigmaFinite.Build _ _ _ (lebesgue_stieltjes_measure f)
(sigmaT_finite_lebesgue_stieltjes_measure f).
End wlength_extension.
Arguments lebesgue_stieltjes_measure {R}.
Section lebesgue_stieltjes_measure_unique.
Context { : realType} ( : cumulative R R).
Import MeasurableR.
Let
( : {measure set (MeasurableRocitv.measurableTypeR R) -> \bar R}) :
(forall , ocitv X -> lebesgue_stieltjes_measure f X = mu X) ->
forall : set R, measurable A -> lebesgue_stieltjes_measure f A = mu A.
Proof.
apply: measure_extension_unique => //=.
- exact: wlength_sigma_finite.
- by move=> X mX; rewrite -muE// -measurable_mu_extE.
- by rewrite RGenOpenSets.measurableE.
Qed.
Lemma
- mathcomp.analysis.probability_theory.random_variable
- mathcomp.analysis.real_measure.lebesgue_measure
Source code
( : {measure set (MeasurableRopen.measurableTypeR R) -> \bar R}) :
(forall , ocitv X -> lebesgue_stieltjes_measure f X = mu X) ->
forall : set R, measurable A -> lebesgue_stieltjes_measure f A = mu A.
Proof.
End lebesgue_stieltjes_measure_unique.
Section completed_lebesgue_stieltjes_measure.
Context { : realType}.
Definition
completed_lebesgue_stieltjes_measure : forall {R : realType} (f : cumulative R R), set (caratheodory_type (R:=R) (T:=lebesgue_stieltjes_measure_ocitv_type__canonical__measurable_structure_SemiRingOfSets R) (wlength f)^*%mu) -> \bar R completed_lebesgue_stieltjes_measure is not universe polymorphic Arguments completed_lebesgue_stieltjes_measure {R} f _%_classical_set_scope completed_lebesgue_stieltjes_measure is transparent Expands to: Constant mathcomp.analysis.real_measure.lebesgue_stieltjes_measure.completed_lebesgue_stieltjes_measure Declared in library mathcomp.analysis.real_measure.lebesgue_stieltjes_measure, line 972, characters 11-47
Used by
- mathcomp.analysis.real_measure.lebesgue_measure
Source code
@completed_measure_extension _ _ _ (wlength f).
.
Measure.on (@completed_lebesgue_stieltjes_measure f).
Let
sigma_finite setT (@completed_lebesgue_stieltjes_measure f).
Proof.
.
@Measure_isSigmaFinite.Build _ _ _
(@completed_lebesgue_stieltjes_measure f)
(sigmaT_finite_completed_lebesgue_stieltjes_measure f).
End completed_lebesgue_stieltjes_measure.
Arguments completed_lebesgue_stieltjes_measure {R}.
Section probability_measure_of_lebesgue_stieltjes_measure.
Context { : realType} ( : cumulativeBounded (0:R) (1:R)).
Local Open Scope measure_display_scope.
Let
Let
Proof.
pose I : set R := `]- (n%:R), n%:R]%classic.
have : (lsf \o I) n @[ --> \oo] --> 1%E.
have -> : lsf \o I = (fun => (f n%:R)%:E - (f (- n%:R))%:E)%E.
apply/funext=> n; rewrite /= /lsf/= /lebesgue_stieltjes_measure.
rewrite /measure_extension measurable_mu_extE/=; first exact: is_ocitv.
by rewrite wlength_itv_bnd// ge0_cp.
rewrite -(sube0 1); apply: cvgeB => //.
- by apply/cvg_EFin; [near=> F
|exact/(cvg_comp _ _ (@cvgr_idn R))/cumulativey].
- apply/cvg_EFin; [by near=> F|apply: (cvg_ninftyP _ _).1 => //].
exact: cumulativeNy.
by apply: (cvg_comp _ _ (@cvgr_idn R)); rewrite ninfty.
have : (lsf \o I) n @[ --> \oo] --> lsf (\bigcup_ I n).
apply: nondecreasing_cvg_measure; rewrite /I//; first exact: bigcup_measurable.
by move=> *; apply/subsetPset/subset_itv; rewrite leBSide/= ?lerN2 ler_nat.
exact: cvg_unique.
Unshelve. all: end_near. Qed.
.
(lebesgue_stieltjes_measure f) lebesgue_stieltjes_setT.
End probability_measure_of_lebesgue_stieltjes_measure.