Skip to content

Commit d934def

Browse files
committed
minor cleaning
1 parent 8eb7192 commit d934def

File tree

3 files changed

+124
-160
lines changed

3 files changed

+124
-160
lines changed

theories/kernel.v

Lines changed: 68 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -314,8 +314,8 @@ Definition finite_measure d (T : measurableType d) (R : realType)
314314

315315
Definition sfinite_measure d (T : measurableType d) (R : realType)
316316
(mu : set T -> \bar R) :=
317-
exists2 mu_ : {measure set T -> \bar R}^nat,
318-
forall n, finite_measure (mu_ n) & forall U, measurable U -> mu U = mseries mu_ 0 U.
317+
exists2 s : {measure set T -> \bar R}^nat,
318+
forall n, finite_measure (s n) & forall U, measurable U -> mu U = mseries s 0 U.
319319

320320
Lemma finite_measure_sigma_finite d (T : measurableType d) (R : realType)
321321
(mu : {measure set T -> \bar R}) :
@@ -337,49 +337,47 @@ Variable (mf : measurable_fun setT f).
337337
Lemma sfinite_fubini :
338338
\int[m1]_x \int[m2]_y f (x, y) = \int[m2]_y \int[m1]_x f (x, y).
339339
Proof.
340-
have [m1_ fm1 m1E] := sfm1.
341-
have [m2_ fm2 m2E] := sfm2.
342-
rewrite [LHS](eq_measure_integral [the measure _ _ of mseries m1_ 0]); last first.
340+
have [s1 fm1 m1E] := sfm1.
341+
have [s2 fm2 m2E] := sfm2.
342+
rewrite [LHS](eq_measure_integral [the measure _ _ of mseries s1 0]); last first.
343343
by move=> A mA _; rewrite m1E.
344-
transitivity (\int[[the measure _ _ of mseries m1_ 0]]_x
345-
\int[[the measure _ _ of mseries m2_ 0]]_y f (x, y)).
346-
by apply eq_integral => x _; apply: eq_measure_integral => U mA _; rewrite m2E.
347-
transitivity (\sum_(n <oo) \int[m1_ n]_x \sum_(m <oo) \int[m2_ m]_y f (x, y)).
344+
transitivity (\int[mseries s1 0]_x \int[mseries s2 0]_y f (x, y)).
345+
by apply eq_integral => x _; apply: eq_measure_integral => ? ? _; rewrite m2E.
346+
transitivity (\sum_(n <oo) \int[s1 n]_x \sum_(m <oo) \int[s2 m]_y f (x, y)).
348347
rewrite ge0_integral_measure_series; [|by []| |]; last 2 first.
349348
by move=> t _; exact: integral_ge0.
350349
rewrite [X in measurable_fun _ X](_ : _ =
351-
fun x => \sum_(n <oo) \int[m2_ n]_y f (x, y)); last first.
350+
fun x => \sum_(n <oo) \int[s2 n]_y f (x, y)); last first.
352351
apply/funext => x.
353352
by rewrite ge0_integral_measure_series//; exact/measurable_fun_prod1.
354353
apply: ge0_emeasurable_fun_sum; first by move=> k x; exact: integral_ge0.
355354
move=> k; apply: measurable_fun_fubini_tonelli_F => //=.
356355
exact: finite_measure_sigma_finite.
357356
apply: eq_nneseries => n _; apply eq_integral => x _.
358357
by rewrite ge0_integral_measure_series//; exact/measurable_fun_prod1.
359-
transitivity (\sum_(n <oo) \sum_(m <oo) \int[m1_ n]_x \int[m2_ m]_y f (x, y)).
358+
transitivity (\sum_(n <oo) \sum_(m <oo) \int[s1 n]_x \int[s2 m]_y f (x, y)).
360359
apply eq_nneseries => n _.
361360
rewrite integral_sum//.
362361
move=> m; apply: measurable_fun_fubini_tonelli_F => //=.
363362
exact: finite_measure_sigma_finite.
364363
by move=> m x _; exact: integral_ge0.
365-
transitivity (\sum_(n <oo) \sum_(m <oo) \int[m2_ m]_y \int[m1_ n]_x f (x, y)).
364+
transitivity (\sum_(n <oo) \sum_(m <oo) \int[s2 m]_y \int[s1 n]_x f (x, y)).
366365
apply eq_nneseries => n _; apply eq_nneseries => m _.
367366
by rewrite fubini_tonelli//; exact: finite_measure_sigma_finite.
368-
transitivity (\sum_(n <oo) \int[[the measure _ _ of mseries m2_ 0]]_y \int[m1_ n]_x f (x, y)).
367+
transitivity (\sum_(n <oo) \int[mseries s2 0]_y \int[s1 n]_x f (x, y)).
369368
apply eq_nneseries => n _ /=. rewrite ge0_integral_measure_series//.
370369
by move=> y _; exact: integral_ge0.
371370
apply: measurable_fun_fubini_tonelli_G => //=.
372371
by apply: finite_measure_sigma_finite; exact: fm1.
373-
transitivity (\int[[the measure _ _ of mseries m2_ 0]]_y \sum_(n <oo) \int[m1_ n]_x f (x, y)).
372+
transitivity (\int[mseries s2 0]_y \sum_(n <oo) \int[s1 n]_x f (x, y)).
374373
rewrite integral_sum//.
375374
move=> n; apply: measurable_fun_fubini_tonelli_G => //=.
376375
by apply: finite_measure_sigma_finite; exact: fm1.
377376
by move=> n y _; exact: integral_ge0.
378-
transitivity (\int[[the measure _ _ of mseries m2_ 0]]_y
379-
\int[[the measure _ _ of mseries m1_ 0]]_x f (x, y)).
377+
transitivity (\int[mseries s2 0]_y \int[mseries s1 0]_x f (x, y)).
380378
apply eq_integral => y _.
381379
by rewrite ge0_integral_measure_series//; exact/measurable_fun_prod2.
382-
transitivity (\int[m2]_y \int[mseries m1_ 0]_x f (x, y)).
380+
transitivity (\int[m2]_y \int[mseries s1 0]_x f (x, y)).
383381
by apply eq_measure_integral => A mA _ /=; rewrite m2E.
384382
by apply eq_integral => y _; apply eq_measure_integral => A mA _ /=; rewrite m1E.
385383
Qed.
@@ -867,34 +865,21 @@ Arguments measurable_fun_xsection_integral {_ _ _ _ _} k l.
867865
Arguments measurable_fun_integral_finite_kernel {_ _ _ _ _} k l.
868866
Arguments measurable_fun_integral_sfinite_kernel {_ _ _ _ _} k l.
869867

870-
Section kprobability.
871-
Variables (d d' : _) (X : measurableType d) (Y : measurableType d').
872-
Variables (R : realType) (P : probability Y R).
873-
874-
Definition kprobability : X -> {measure set Y -> \bar R} := fun=> P.
875-
876-
Let measurable_fun_kprobability U : measurable U ->
877-
measurable_fun setT (kprobability ^~ U).
878-
Proof. by move=> mU; exact: measurable_fun_cst. Qed.
879-
880-
HB.instance Definition _ :=
881-
@isKernel.Build _ _ X Y R kprobability measurable_fun_kprobability.
868+
Section pdirac.
869+
Variables (d : _) (T : measurableType d) (R : realType).
882870

883-
Let kprobability_prob x : kprobability x setT = 1.
884-
Proof. by rewrite /kprobability/= probability_setT. Qed.
885-
886-
HB.instance Definition _ :=
887-
@Kernel_isProbability.Build _ _ X Y R kprobability kprobability_prob.
871+
HB.instance Definition _ x :=
872+
isProbability.Build _ _ _ (@dirac _ T x R) (diracT R x).
888873

889-
End kprobability.
874+
End pdirac.
890875

891876
Section kdirac.
892877
Variables (d d' : _) (X : measurableType d) (Y : measurableType d').
893878
Variables (R : realType) (f : X -> Y).
894879

895880
Definition kdirac (mf : measurable_fun setT f)
896881
: X -> {measure set Y -> \bar R} :=
897-
fun x : X => [the measure _ _ of dirac (f x)].
882+
fun x => [the measure _ _ of dirac (f x)].
898883

899884
Hypothesis mf : measurable_fun setT f.
900885

@@ -917,6 +902,49 @@ HB.instance Definition _ := Kernel_isProbability.Build _ _ _ _ _
917902
End kdirac.
918903
Arguments kdirac {d d' X Y R f}.
919904

905+
Section dist_salgebra_instance.
906+
Variables (d : measure_display) (T : measurableType d) (R : realType).
907+
908+
Let p0 : probability T R := [the probability T R of @dirac d T point R].
909+
910+
Definition prob_pointed := Pointed.Class
911+
(Choice.Class gen_eqMixin (Choice.Class gen_eqMixin gen_choiceMixin)) p0.
912+
913+
Canonical probability_eqType := EqType (probability T R) prob_pointed.
914+
Canonical probability_choiceType := ChoiceType (probability T R) prob_pointed.
915+
Canonical probability_ptType := PointedType (probability T R) prob_pointed.
916+
917+
Definition mset (U : set T) (r : R) := [set mu : probability T R | mu U < r%:E].
918+
919+
Definition pset : set (set (probability T R)) :=
920+
[set mset U r | r in `[0%R,1%R]%classic & U in @measurable d T].
921+
922+
Definition pprobability := [the measurableType pset.-sigma of salgebraType pset].
923+
924+
End dist_salgebra_instance.
925+
926+
Section kprobability.
927+
Variables (d d' : _) (X : measurableType d) (Y : measurableType d').
928+
Variables (R : realType) (P : probability Y R).
929+
930+
Definition kprobability
931+
: X -> {measure set Y -> \bar R} := fun=> P.
932+
933+
Let measurable_fun_kprobability U : measurable U ->
934+
measurable_fun setT (kprobability ^~ U).
935+
Proof. by move=> mU; exact: measurable_fun_cst. Qed.
936+
937+
HB.instance Definition _ :=
938+
@isKernel.Build _ _ X Y R kprobability measurable_fun_kprobability.
939+
940+
Let kprobability_prob x : kprobability x setT = 1.
941+
Proof. by rewrite /kprobability/= probability_setT. Qed.
942+
943+
HB.instance Definition _ :=
944+
@Kernel_isProbability.Build _ _ X Y R kprobability kprobability_prob.
945+
946+
End kprobability.
947+
920948
Section kadd.
921949
Variables (d d' : _) (X : measurableType d) (Y : measurableType d').
922950
Variables (R : realType) (k1 k2 : R.-ker X ~> Y).
@@ -1041,12 +1069,11 @@ Qed.
10411069
Let mnormalize_ge0 x U : 0 <= mnormalize x U.
10421070
Proof. by rewrite /mnormalize; case: ifPn => //; case: ifPn. Qed.
10431071

1044-
Lemma mnormalize_sigma_additive x : semi_sigma_additive (mnormalize x).
1072+
Let mnormalize_sigma_additive x : semi_sigma_additive (mnormalize x).
10451073
Proof.
10461074
move=> F mF tF mUF; rewrite /mnormalize/=.
1047-
case: ifPn => [_|_].
1048-
exact: measure_semi_sigma_additive.
1049-
rewrite (_ : (fun n => _) = ((fun n => \sum_(0 <= i < n) f x (F i)) \*
1075+
case: ifPn => [_|_]; first exact: measure_semi_sigma_additive.
1076+
rewrite (_ : (fun _ => _) = ((fun n => \sum_(0 <= i < n) f x (F i)) \*
10501077
cst ((fine (f x setT))^-1)%:E)); last first.
10511078
by apply/funext => n; rewrite -ge0_sume_distrl.
10521079
by apply: ereal_cvgMr => //; exact: measure_semi_sigma_additive.
@@ -1055,7 +1082,7 @@ Qed.
10551082
HB.instance Definition _ x := isMeasure.Build _ _ _ (mnormalize x)
10561083
(mnormalize0 x) (mnormalize_ge0 x) (@mnormalize_sigma_additive x).
10571084

1058-
Lemma mnormalize1 x : mnormalize x setT = 1.
1085+
Let mnormalize1 x : mnormalize x setT = 1.
10591086
Proof.
10601087
rewrite /mnormalize; case: ifPn; first by rewrite probability_setT.
10611088
rewrite negb_or => /andP[ft0 ftoo].

0 commit comments

Comments
 (0)