@@ -65,6 +65,7 @@ From mathcomp Require Import lebesgue_measure lebesgue_integral.
6565(* decomposition nuPN: hahn_decomposition nu P N *)
6666(* charge_variation nuPN == variation of the charge nu *)
6767(* := jordan_pos nuPN \+ jordan_neg nuPN *)
68+ (* charge_dominates mu nuPN := content_dominates mu (charge_variation nuPN) *)
6869(* induced_charge intf == charge induced by a function f : T -> \bar R *)
6970(* R has type realType; T is a measurableType. *)
7071(* intf is a proof that f is integrable over *)
@@ -433,7 +434,7 @@ Lemma dominates_cscalel d (T : measurableType d) (R : realType)
433434 (nu : {charge set T -> \bar R})
434435 (c : R) : nu `<< mu -> cscale c nu `<< mu.
435436Proof .
436- move=> /measure_null_dominatesP numu; apply/measure_null_dominatesP => E mE.
437+ move=> /content_null_dominatesP numu; apply/content_null_dominatesP => E mE.
437438by move/(numu _ mE) => E0; apply/eqP; rewrite mule_eq0 eqe E0/= eqxx orbT.
438439Qed .
439440
@@ -516,8 +517,8 @@ Lemma dominates_cadd d (T : measurableType d) (R : realType)
516517 nu0 `<< mu -> nu1 `<< mu ->
517518 cadd nu0 nu1 `<< mu.
518519Proof .
519- move=> /measure_null_dominatesP nu0mu.
520- move=> /measure_null_dominatesP nu1mu A nA A0 mA0 A0A.
520+ move=> /content_null_dominatesP nu0mu.
521+ move=> /content_null_dominatesP nu1mu A nA A0 mA0 A0A.
521522by have muA0 := nA _ mA0 A0A; rewrite /cadd nu0mu// nu1mu// adde0.
522523Qed .
523524
@@ -563,19 +564,15 @@ HB.instance Definition _ := isCharge.Build _ _ _
563564
564565HB.end .
565566
566- Section dominates_pushforward.
567-
568567Lemma dominates_pushforward d d' (T : measurableType d) (T' : measurableType d')
569568 (R : realType) (mu : {measure set T -> \bar R})
570569 (nu : {charge set T -> \bar R}) (f : T -> T') (mf : measurable_fun setT f) :
571570 nu `<< mu -> pushforward nu f `<< pushforward mu f.
572571Proof .
573- move=> /measure_null_dominatesP numu; apply/measure_null_dominatesP => A mA.
572+ move=> /content_null_dominatesP numu; apply/content_null_dominatesP => A mA.
574573by apply: numu; rewrite -[X in measurable X]setTI; exact: mf.
575574Qed .
576575
577- End dominates_pushforward.
578-
579576Section positive_negative_set.
580577Context d (T : semiRingOfSetsType d) (R : numDomainType).
581578Implicit Types nu : set T -> \bar R.
@@ -1022,8 +1019,8 @@ Qed.
10221019Lemma jordan_pos_dominates (mu : {measure set T -> \bar R}) :
10231020 nu `<< mu -> jordan_pos `<< mu.
10241021Proof .
1025- move=> /measure_null_dominatesP nu_mu.
1026- apply/measure_null_dominatesP => A mA muA0.
1022+ move=> /content_null_dominatesP nu_mu.
1023+ apply/content_null_dominatesP => A mA muA0.
10271024have := nu_mu A mA muA0.
10281025rewrite jordan_posE// cjordan_posE /crestr0 mem_set// /crestr/=.
10291026have mAP : measurable (A `&` P) by exact: measurableI.
@@ -1034,8 +1031,8 @@ Qed.
10341031Lemma jordan_neg_dominates (mu : {measure set T -> \bar R}) :
10351032 nu `<< mu -> jordan_neg `<< mu.
10361033Proof .
1037- move=> /measure_null_dominatesP nu_mu.
1038- apply/measure_null_dominatesP => A mA muA0.
1034+ move=> /content_null_dominatesP nu_mu.
1035+ apply/content_null_dominatesP => A mA muA0.
10391036have := nu_mu A mA muA0.
10401037rewrite jordan_negE// cjordan_negE /crestr0 mem_set// /crestr/=.
10411038have mAN : measurable (A `&` N) by exact: measurableI.
@@ -1085,9 +1082,14 @@ HB.instance Definition _ := isCharge.Build _ _ _ mu
10851082
10861083End charge_variation.
10871084
1085+ Definition charge_dominates d (T : measurableType d) {R : realType}
1086+ (mu : {content set T -> \bar R}) (nu : {charge set T -> \bar R})
1087+ (P N : set T) (nuPN : hahn_decomposition nu P N) :=
1088+ content_dominates mu (charge_variation nuPN).
1089+
10881090Section charge_variation_continuous.
10891091Local Open Scope ereal_scope.
1090- Context {R : realType} d (T : measurableType d).
1092+ Context d (T : measurableType d) {R : realType} .
10911093Variable nu : {charge set T -> \bar R}.
10921094Variables (P N : set T) (nuPN : hahn_decomposition nu P N).
10931095
@@ -1099,34 +1101,44 @@ rewrite (jordan_decomp nuPN mA) /cadd/= cscaleN1 /charge_variation.
10991101by rewrite (le_trans (lee_abs_sub _ _))// !gee0_abs.
11001102Qed .
11011103
1102- Lemma dominates_charge_variation (mu : {measure set T -> \bar R}) :
1104+ Lemma __deprecated__dominates_charge_variation (mu : {measure set T -> \bar R}) :
11031105 nu `<< mu -> charge_variation nuPN `<< mu.
11041106Proof .
1105- move=> /[dup]numu /measure_null_dominatesP nu0mu0.
1106- apply/measure_null_dominatesP => A mA muA0; rewrite /charge_variation/=.
1107- have /measure_null_dominatesP ->// := jordan_pos_dominates nuPN numu.
1107+ move=> /[dup]numu /content_null_dominatesP nu0mu0.
1108+ apply/content_null_dominatesP => A mA muA0; rewrite /charge_variation/=.
1109+ have /content_null_dominatesP ->// := jordan_pos_dominates nuPN numu.
11081110rewrite add0e.
1109- by have /measure_null_dominatesP -> := jordan_neg_dominates nuPN numu.
1111+ by have /content_null_dominatesP -> := jordan_neg_dominates nuPN numu.
11101112Qed .
11111113
11121114Lemma charge_null_dominatesP (mu : {measure set T -> \bar R}) :
1113- nu `<< mu <->
1114- (forall A, measurable A -> mu A = 0 -> charge_variation nuPN A = 0).
1115+ nu `<< mu <-> charge_dominates mu nuPN.
11151116Proof .
11161117split => [|numu].
1117- - move/dominates_charge_variation/measure_null_dominatesP => + Am A A0.
1118- exact.
1119- - apply/measure_null_dominatesP => A mA /numu => /(_ mA) nuA0.
1118+ - move=> /[dup]numu /content_null_dominatesP nu0mu0.
1119+ move=> A mA muA0; rewrite /charge_variation/=.
1120+ have /content_null_dominatesP ->// := jordan_pos_dominates nuPN numu.
1121+ rewrite add0e.
1122+ by have /content_null_dominatesP -> := jordan_neg_dominates nuPN numu.
1123+ - apply/content_null_dominatesP => A mA /numu => /(_ mA) nuA0.
11201124 apply/eqP; rewrite -abse_eq0 eq_le abse_ge0 andbT.
11211125 by rewrite -nuA0 abse_charge_variation.
11221126Qed .
11231127
1128+ Lemma content_charge_dominatesP (mu : {measure set T -> \bar R}) :
1129+ content_dominates mu nu <-> charge_dominates mu nuPN.
1130+ Proof .
1131+ split.
1132+ - by move/content_null_dominatesP/charge_null_dominatesP.
1133+ - by move/charge_null_dominatesP/content_null_dominatesP.
1134+ Qed .
1135+
11241136Lemma charge_variation_continuous (mu : {measure set T -> \bar R}) :
11251137 nu `<< mu -> forall e : R, (0 < e)%R ->
11261138 exists d : R, (0 < d)%R /\
11271139 forall A, measurable A -> mu A < d%:E -> charge_variation nuPN A < e%:E.
11281140Proof .
1129- move=> /[dup]nudommu /measure_null_dominatesP numu.
1141+ move=> /[dup]nudommu /content_null_dominatesP numu.
11301142apply/not_forallP => -[e] /not_implyP[e0] /forallNP H.
11311143have {H} : forall n, exists A,
11321144 [/\ measurable A, mu A < (2 ^- n.+1)%:E & charge_variation nuPN A >= e%:E].
@@ -1153,8 +1165,7 @@ have : mu (lim_sup_set F) = 0.
11531165 by move/cvg_lim : h => ->//; rewrite ltry.
11541166have : measurable (lim_sup_set F).
11551167 by apply: bigcap_measurable => // k _; exact: bigcup_measurable.
1156- have /measure_null_dominatesP/[apply]/[apply] :=
1157- dominates_charge_variation nudommu.
1168+ move/charge_null_dominatesP : nudommu => /[apply] /[apply].
11581169apply/eqP; rewrite neq_lt// ltNge measure_ge0//=.
11591170suff : charge_variation nuPN (lim_sup_set F) >= e%:E by exact: lt_le_trans.
11601171have echarge n : e%:E <= charge_variation nuPN (\bigcup_(j >= n) F j).
@@ -1171,27 +1182,9 @@ have /(_ _ _)/cvg_lim <-// := lim_sup_set_cvg (charge_variation nuPN) F.
11711182by rewrite -ge0_fin_numE// fin_num_measure//; exact: bigcup_measurable.
11721183Qed .
11731184
1174- Lemma measure_charge_dominatesP (mu : {measure set T -> \bar R}) :
1175- (forall A, measurable A -> mu A = 0 -> nu A = 0)
1176- <->
1177- (forall A, measurable A -> mu A = 0 -> charge_variation nuPN A = 0).
1178- Proof .
1179- split.
1180- move/measure_null_dominatesP => numu.
1181- move=> A mA muA0.
1182- apply/eqP; rewrite eq_le measure_ge0 andbT.
1183- rewrite /charge_variation.
1184- rewrite adde_le0//.
1185- by have /measure_null_dominatesP->// := jordan_pos_dominates nuPN numu.
1186- by have /measure_null_dominatesP->// := jordan_neg_dominates nuPN numu.
1187- move=> H A mA muA0.
1188- apply/eqP.
1189- rewrite -abse_eq0 eq_le abse_ge0 andbT.
1190- have <- := H _ mA muA0.
1191- exact: abse_charge_variation.
1192- Qed .
1193-
11941185End charge_variation_continuous.
1186+ #[deprecated(since="mathcomp-analysis 1.15.0", note="use `charge_null_dominatesP` instead")]
1187+ Notation dominates_charge_variation := __deprecated__dominates_charge_variation (only parsing).
11951188
11961189Definition induced_charge d (T : measurableType d) {R : realType}
11971190 (mu : {measure set T -> \bar R}) (f : T -> \bar R)
@@ -1261,7 +1254,7 @@ Proof. exact: integrable_abse. Qed.
12611254
12621255Lemma dominates_induced : induced_charge intnf `<< mu.
12631256Proof .
1264- apply/measure_null_dominatesP => /= A mA muA.
1257+ apply/content_null_dominatesP => /= A mA muA.
12651258rewrite /induced_charge; apply/eqP; rewrite -abse_eq0 eq_le abse_ge0 andbT.
12661259rewrite (le_trans (le_abse_integral _ _ _))//=.
12671260 by case/integrableP : intnf => /= + _; exact: measurable_funTS.
@@ -1769,7 +1762,7 @@ pose AP := A `&` P.
17691762have mAP : measurable AP by exact: measurableI.
17701763have muAP_gt0 : 0 < mu AP.
17711764 rewrite lt0e measure_ge0// andbT.
1772- move/measure_null_dominatesP in nu_mu.
1765+ move/content_null_dominatesP in nu_mu.
17731766 apply/eqP/(contra_not (nu_mu _ mAP))/eqP; rewrite gt_eqF//.
17741767 rewrite (@lt_le_trans _ _ (sigma AP))//.
17751768 rewrite (@lt_le_trans _ _ (sigma A))//; last first.
@@ -1864,8 +1857,8 @@ pose mu_ j : {finite_measure set T -> \bar R} := mfrestr (mE j) (muEoo j).
18641857have nuEoo i : nu (E i) < +oo by rewrite ltey_eq fin_num_measure.
18651858pose nu_ j : {finite_measure set T -> \bar R} := mfrestr (mE j) (nuEoo j).
18661859have nu_mu_ k : nu_ k `<< mu_ k.
1867- apply/measure_null_dominatesP => S mS mu_kS0.
1868- move/measure_null_dominatesP : nu_mu; apply => //.
1860+ apply/content_null_dominatesP => S mS mu_kS0.
1861+ move/content_null_dominatesP : nu_mu; apply => //.
18691862 exact: measurableI.
18701863have [g_] := choice (fun j => radon_nikodym_finite (nu_mu_ j)).
18711864move=> /all_and3[g_ge0 ig_ int_gE].
0 commit comments