Skip to content

Commit c542f25

Browse files
authored
generalize pushforward (#1661)
Generalize pushforward
1 parent 035fa1d commit c542f25

6 files changed

Lines changed: 21 additions & 20 deletions

File tree

CHANGELOG_UNRELEASED.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,7 @@
113113
+ lemma `ae_eq_comp2`
114114
+ lemma `ae_foralln`
115115
+ lemma `ae_eqe_mul2l`
116+
+ definition `pushforward` (to take a function instead of a proof)
116117

117118
- new file `ess_sup_inf.v`:
118119
+ lemma `measure0_ae`

theories/charge.v

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -488,16 +488,16 @@ Variables (R : realFieldType) (nu : {charge set T1 -> \bar R}).
488488

489489
Hypothesis mf : measurable_fun setT f.
490490

491-
Let pushforward0 : pushforward nu mf set0 = 0.
491+
Let pushforward0 : pushforward nu f set0 = 0.
492492
Proof. by rewrite /pushforward preimage_set0 charge0. Qed.
493493

494-
Let pushforward_finite A : measurable A -> pushforward nu mf A \is a fin_num.
494+
Let pushforward_finite A : measurable A -> pushforward nu f A \is a fin_num.
495495
Proof.
496496
move=> mA; apply: fin_num_measure.
497497
by rewrite -[X in measurable X]setTI; exact: mf.
498498
Qed.
499499

500-
Let pushforward_sigma_additive : semi_sigma_additive (pushforward nu mf).
500+
Let pushforward_sigma_additive : semi_sigma_additive (pushforward nu f).
501501
Proof.
502502
move=> F mF tF mUF; rewrite /pushforward preimage_bigcup.
503503
apply: charge_semi_sigma_additive.
@@ -507,7 +507,7 @@ apply: charge_semi_sigma_additive.
507507
- by rewrite -preimage_bigcup -[X in measurable X]setTI; exact: mf.
508508
Qed.
509509

510-
HB.instance Definition _ := isCharge.Build _ _ _ (pushforward nu mf)
510+
HB.instance Definition _ := isCharge.Build _ _ _ (pushforward nu f)
511511
pushforward0 pushforward_finite pushforward_sigma_additive.
512512

513513
End pushforward_charge.
@@ -528,7 +528,7 @@ Section dominates_pushforward.
528528
Lemma dominates_pushforward d d' (T : measurableType d) (T' : measurableType d')
529529
(R : realType) (mu : {measure set T -> \bar R})
530530
(nu : {charge set T -> \bar R}) (f : T -> T') (mf : measurable_fun setT f) :
531-
nu `<< mu -> pushforward nu mf `<< pushforward mu mf.
531+
nu `<< mu -> pushforward nu f `<< pushforward mu f.
532532
Proof.
533533
by move=> numu A mA; apply: numu; rewrite -[X in measurable X]setTI; exact: mf.
534534
Qed.

theories/lebesgue_integral_theory/lebesgue_integrable.v

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -757,7 +757,7 @@ Let mf_mixin := isMeasurableFun.Build _ _ _ _ _ mf.
757757
Let mf_pack := MeasurableFun.Pack (MeasurableFun.Class mf_mixin).
758758

759759
Lemma integrable_pushforward :
760-
measurable D -> (pushforward mu mphi).-integrable D f.
760+
measurable D -> (pushforward mu phi).-integrable D f.
761761
Proof.
762762
move=> mD; apply/integrableP; split; first exact: (measurable_funP mf_pack).
763763
move/integrableP : (intf) => [_]; apply: le_lt_trans.
@@ -768,7 +768,7 @@ Qed.
768768
Local Open Scope ereal_scope.
769769

770770
Lemma integral_pushforward : measurable D ->
771-
\int[pushforward mu mphi]_(y in D) f y =
771+
\int[pushforward mu phi]_(y in D) f y =
772772
\int[mu]_(x in phi @^-1` D) (f \o phi) x.
773773
Proof.
774774
move=> mD.
@@ -782,7 +782,7 @@ rewrite -[X in _ = _ - X]ge0_integral_pushforward//; last first.
782782
rewrite -integralB//=; last first.
783783
- by apply: integrable_funeneg => //=; exact: integrable_pushforward.
784784
- by apply: integrable_funepos => //=; exact: integrable_pushforward.
785-
- by apply/eq_integral => x _; rewrite /= [in LHS](funeposneg f).
785+
- by apply/eq_integral=> // x _; rewrite /= [in LHS](funeposneg f).
786786
Qed.
787787

788788
End transfer.

theories/lebesgue_integral_theory/lebesgue_integral_nonneg.v

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -520,14 +520,14 @@ Import HBNNSimple.
520520

521521
Lemma ge0_integral_pushforward D (f : Y -> \bar R) :
522522
measurable D -> measurable_fun D f -> {in D, forall y, 0 <= f y} ->
523-
\int[pushforward mu mphi]_(y in D) f y =
523+
\int[pushforward mu phi]_(y in D) f y =
524524
\int[mu]_(x in phi @^-1` D) (f \o phi) x.
525525
Proof.
526526
move=> mD mf f0.
527527
have mphiD : measurable (phi @^-1` D).
528528
by rewrite -(setTI (_ @^-1` _)); exact: (measurable_funP mphi_pack).
529529
pose f_ := nnsfun_approx mD mf.
530-
transitivity (limn (fun n => \int[pushforward mu mphi]_(x in D) (f_ n x)%:E)).
530+
transitivity (limn (fun n => \int[pushforward mu phi]_(x in D) (f_ n x)%:E)).
531531
rewrite -monotone_convergence//.
532532
- apply: eq_integral => y /[!inE] yD; apply/esym/cvg_lim => //.
533533
by apply: cvg_nnsfun_approx=> // *; apply: f0; rewrite inE.

theories/measure.v

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -157,9 +157,9 @@ From mathcomp Require Import sequences esum numfun.
157157
(* *)
158158
(* ## Instances of measures *)
159159
(* ``` *)
160-
(* pushforward m mf == pushforward/image measure of m by f, where mf is a *)
161-
(* proof that f is measurable *)
162-
(* m has type set T -> \bar R. *)
160+
(* pushforward m f == pushforward of a set function m : set T1 -> \bar R *)
161+
(* by f : T1 -> T2; pushforward/image measure if m is *)
162+
(* a measure and f measurable *)
163163
(* \d_a == Dirac measure *)
164164
(* msum mu n == the measure corresponding to the sum of the measures *)
165165
(* mu_0, ..., mu_{n-1} *)
@@ -2245,8 +2245,8 @@ Arguments measure_bigcup {d R T} _ _.
22452245

22462246
Definition pushforward d1 d2 (T1 : sigmaRingType d1) (T2 : sigmaRingType d2)
22472247
(R : realFieldType) (m : set T1 -> \bar R) (f : T1 -> T2)
2248-
of measurable_fun [set: T1] f := fun A => m (f @^-1` A).
2249-
Arguments pushforward {d1 d2 T1 T2 R} m {f}.
2248+
:= fun A => m (f @^-1` A).
2249+
Arguments pushforward {d1 d2 T1 T2 R}.
22502250

22512251
Section pushforward_measure.
22522252
Local Open Scope ereal_scope.
@@ -2255,13 +2255,13 @@ Context d d' (T1 : measurableType d) (T2 : measurableType d')
22552255
Variables (m : {measure set T1 -> \bar R}) (f : T1 -> T2).
22562256
Hypothesis mf : measurable_fun [set: T1] f.
22572257

2258-
Let pushforward0 : pushforward m mf set0 = 0.
2258+
Let pushforward0 : pushforward m f set0 = 0.
22592259
Proof. by rewrite /pushforward preimage_set0 measure0. Qed.
22602260

2261-
Let pushforward_ge0 A : 0 <= pushforward m mf A.
2261+
Let pushforward_ge0 A : 0 <= pushforward m f A.
22622262
Proof. by apply: measure_ge0; rewrite -[X in measurable X]setIT; apply: mf. Qed.
22632263

2264-
Let pushforward_sigma_additive : semi_sigma_additive (pushforward m mf).
2264+
Let pushforward_sigma_additive : semi_sigma_additive (pushforward m f).
22652265
Proof.
22662266
move=> F mF tF mUF; rewrite /pushforward preimage_bigcup.
22672267
apply: measure_semi_sigma_additive.
@@ -2272,7 +2272,7 @@ apply: measure_semi_sigma_additive.
22722272
Qed.
22732273

22742274
HB.instance Definition _ := isMeasure.Build _ _ _
2275-
(pushforward m mf) pushforward0 pushforward_ge0 pushforward_sigma_additive.
2275+
(pushforward m f) pushforward0 pushforward_ge0 pushforward_sigma_additive.
22762276

22772277
End pushforward_measure.
22782278

theories/probability.v

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ Proof. by rewrite preimage_range probability_setT. Qed.
105105

106106
Definition distribution d d' (T : measurableType d) (T' : measurableType d')
107107
(R : realType) (P : probability T R) (X : {mfun T >-> T'}) :=
108-
pushforward P (@measurable_funP _ _ _ _ _ X).
108+
pushforward P X.
109109

110110
Section distribution_is_probability.
111111
Context d d' {T : measurableType d} {T' : measurableType d'} {R : realType}

0 commit comments

Comments
 (0)