@@ -39,6 +39,8 @@ Require Import esum measure realfun lebesgue_measure lebesgue_integral.
3939(* jordan_neg nu nuPN == the charge obtained by restricting the charge *)
4040(* nu to the positive set N of the Hahn *)
4141(* decomposition nuPN: hahn_decomposition nu P N *)
42+ (* mu.-derivative nu == Radon-Nikodym derivative of nu w.r.t. mu if *)
43+ (* mu dominates nu, cst -oo otherwise *)
4244(* *)
4345(***************************************************************************** *)
4446
@@ -48,6 +50,7 @@ Reserved Notation "{ 'additive_charge' 'set' T '->' '\bar' R }"
4850Reserved Notation "{ 'charge' 'set' T '->' '\bar' R }"
4951 (at level 36, T, R at next level,
5052 format "{ 'charge' 'set' T '->' '\bar' R }").
53+ Reserved Notation "mu .-derivative" (at level 2, format "mu .-derivative").
5154
5255Set Implicit Arguments .
5356Unset Strict Implicit .
@@ -364,10 +367,10 @@ Context d (R : numDomainType) (T : measurableType d).
364367Implicit Types nu : set T -> \bar R.
365368
366369Definition positive_set nu (P : set T) :=
367- measurable P /\ forall E , measurable E -> E `<=` P -> nu E >= 0.
370+ measurable P /\ forall A , measurable A -> A `<=` P -> nu A >= 0.
368371
369372Definition negative_set nu (N : set T) :=
370- measurable N /\ forall E , measurable E -> E `<=` N -> nu E <= 0.
373+ measurable N /\ forall A , measurable A -> A `<=` N -> nu A <= 0.
371374
372375End positive_negative_set.
373376
@@ -863,7 +866,7 @@ Variables mu nu : {measure set T -> \bar R}.
863866
864867Definition approxRN := [set g : T -> \bar R | [/\
865868 forall x, 0 <= g x, mu.-integrable [set: T] g &
866- forall E , measurable E -> \int[mu]_(x in E ) g x <= nu E ] ].
869+ forall A , measurable A -> \int[mu]_(x in A ) g x <= nu A ] ].
867870
868871Let approxRN_neq0 : approxRN !=set0.
869872Proof .
@@ -1316,7 +1319,7 @@ Let f_ge0 := fRN_ge0.
13161319
13171320Lemma radon_nikodym_finite : nu `<< mu -> exists f : T -> \bar R,
13181321 [/\ forall x, f x >= 0, mu.-integrable [set: T] f &
1319- forall E , measurable E -> nu E = \int[mu]_(x in E ) f x].
1322+ forall A , measurable A -> nu A = \int[mu]_(x in A ) f x].
13201323Proof .
13211324move=> nu_mu; exists f; split.
13221325 - by move=> x; exact: f_ge0.
@@ -1330,11 +1333,11 @@ pose AP := A `&` P.
13301333have mAP : measurable AP by exact: measurableI.
13311334have muAP_gt0 : 0 < mu AP.
13321335 rewrite lt_neqAle measure_ge0// andbT eq_sym.
1333- apply/eqP/(@contra_not _ _ (nu_mu _ mAP))/eqP; rewrite gt_eqF //.
1336+ apply/eqP/(@contra_not _ _ (nu_mu _ mAP))/eqP; rewrite gt_eqF//.
13341337 rewrite (@lt_le_trans _ _ (sigma AP))//.
13351338 rewrite (@lt_le_trans _ _ (sigma A))//; last first.
1336- rewrite (charge_partition _ _ mP mN)// gee_addl//.
1337- by apply: negN => //; exact: measurableI.
1339+ rewrite (charge_partition _ _ mP mN)// gee_addl// negN// .
1340+ exact: measurableI.
13381341 by rewrite sube_gt0// (proj2_sig (epsRN_ex mA abs)).
13391342 rewrite /sigma/= /sigmaRN lee_subel_addl ?fin_num_measure//.
13401343 by rewrite lee_paddl// integral_ge0// => x _; rewrite adde_ge0//; exact: f_ge0.
@@ -1365,10 +1368,9 @@ have hnu S : measurable S -> \int[mu]_(x in S) h x <= nu S.
13651368 rewrite -(setD0 S) -(setDv AP) setDDr.
13661369 have mSIAP : measurable (S `&` AP) by exact: measurableI.
13671370 have mSDAP : measurable (S `\` AP) by exact: measurableD.
1368- rewrite integral_setU //.
1369- - rewrite measureU//.
1370- by apply: lee_add; [exact: hnuN|exact: hnuP].
1371- by rewrite setDE setIACA setICl setI0.
1371+ rewrite integral_setU//.
1372+ - rewrite measureU//; last by by rewrite setDE setIACA setICl setI0.
1373+ by apply: lee_add; [exact: hnuN|exact: hnuP].
13721374 - exact: measurable_funTS.
13731375 - by rewrite disj_set2E setDE setIACA setICl setI0.
13741376have int_h_M : \int[mu]_x h x > M.
@@ -1496,24 +1498,45 @@ rewrite -measure_bigcup//.
14961498- exact: trivIset_setIl.
14971499Qed .
14981500
1501+ Definition radon_nikodym_derivative
1502+ (mu : {sigma_finite_measure set T -> \bar R})
1503+ (nu : {charge set T -> \bar R}) : T -> \bar R :=
1504+ let PN := svalP (cid (svalP (cid (Hahn_decomposition nu)))) in
1505+ if pselect (nu `<< mu) is left numu then
1506+ let fp :=
1507+ sval (cid2 (radon_nikodym_sigma_finite (jordan_pos_dominates PN numu))) in
1508+ let fn :=
1509+ sval (cid2 (radon_nikodym_sigma_finite (jordan_neg_dominates PN numu))) in
1510+ fp \- fn
1511+ else cst -oo.
1512+
1513+ Notation "mu .-derivative" := (radon_nikodym_derivative mu) : type_scope.
1514+
1515+ Lemma integrable_radon_nikodym_derivative
1516+ (mu : {sigma_finite_measure set T -> \bar R})
1517+ (nu : {charge set T -> \bar R}) :
1518+ nu `<< mu -> mu.-integrable [set: T] (mu.-derivative nu).
1519+ Proof .
1520+ move=> h; rewrite /radon_nikodym_derivative; case: pselect => //= h'.
1521+ by apply: integrableB => //; case: cid2.
1522+ Qed .
1523+
14991524Theorem Radon_Nikodym
1500- (mu : {sigma_finite_measure set T -> \bar R}) (nu : {charge set T -> \bar R}) :
1501- nu `<< mu ->
1502- exists2 f : T -> \bar R, mu.-integrable [set: T] f &
1503- forall E, measurable E -> nu E = \int[mu]_(x in E) f x.
1525+ (mu : {sigma_finite_measure set T -> \bar R})
1526+ (nu : {charge set T -> \bar R}) : nu `<< mu ->
1527+ forall A, measurable A -> nu A = \int[mu]_(x in A) (mu.-derivative nu) x.
15041528Proof .
1505- move=> nu_mu; have [P [N nuPN]] := Hahn_decomposition nu.
1506- have [fp intfp fpE] := @radon_nikodym_sigma_finite mu
1507- [the {finite_measure set _ -> \bar _} of jordan_pos nuPN]
1508- (jordan_pos_dominates nuPN nu_mu).
1509- have [fn intfn fnE] := @radon_nikodym_sigma_finite mu
1510- [the {finite_measure set _ -> \bar _} of jordan_neg nuPN]
1511- (jordan_neg_dominates nuPN nu_mu).
1512- exists (fp \- fn); first exact: integrableB.
1513- move=> E mE; rewrite [LHS](jordan_decomp nuPN mE)// integralB//.
1514- - by rewrite -fpE ?inE// -fnE ?inE.
1515- - exact: (integrableS measurableT).
1516- - exact: (integrableS measurableT).
1529+ set PN := svalP (cid (svalP (cid (Hahn_decomposition nu)))).
1530+ move=> h A mA.
1531+ rewrite /radon_nikodym_derivative; case: pselect => // h'.
1532+ rewrite [LHS](jordan_decomp PN mA)// integralB//.
1533+ - set fpE :=
1534+ (svalP (cid2 (radon_nikodym_sigma_finite (jordan_pos_dominates PN h')))).2.
1535+ set fnE :=
1536+ (svalP (cid2 (radon_nikodym_sigma_finite (jordan_neg_dominates PN h')))).2.
1537+ by rewrite -fpE ?inE// -fnE ?inE.
1538+ - by apply: (integrableS measurableT) => //; case: cid2.
1539+ - by apply: (integrableS measurableT) => //; case: cid2.
15171540Qed .
15181541
15191542End radon_nikodym.
0 commit comments