@@ -5346,65 +5346,6 @@ Qed.
53465346End sfinite_fubini.
53475347Arguments sfinite_Fubini {d d' X Y R} m1 m2 f.
53485348
5349- (* PR in progress *)
5350- Lemma eseries_cond {R : numFieldType} (f : nat -> \bar R) P N :
5351- (\sum_(N <= i <oo | P i) f i = \sum_(i <oo | P i && (N <= i)%N) f i)%E.
5352- Proof . by congr (lim _); apply: eq_fun => n /=; apply: big_nat_widenl. Qed .
5353-
5354- Lemma eseries_mkcondr {R : numFieldType} (f : nat -> \bar R) P Q :
5355- (\sum_(i <oo | P i && Q i) f i = \sum_(i <oo | P i) if Q i then f i else 0)%E.
5356- Proof . by congr (lim _); apply/funext => n; rewrite big_mkcondr. Qed .
5357-
5358- Lemma lee_addgt0Pr {R : realType} (x y : \bar R) :
5359- reflect (forall e, (0 < e)%R -> (x <= y + e%:E)%E) (x <= y)%E.
5360- Proof .
5361- apply/(iffP idP) => [|].
5362- - move: x y => [x| |] [y| |]//.
5363- + rewrite lee_fin => xy e e0.
5364- rewrite -EFinD lee_fin.
5365- by rewrite ler_paddr// ltW.
5366- + by move=> _ e e0; rewrite leNye.
5367- - move: x y => [x| |] [y| |]// xy.
5368- + rewrite lee_fin; apply/ler_addgt0Pr => e e0.
5369- by rewrite -lee_fin EFinD xy.
5370- + by rewrite leey.
5371- + by move: xy => /(_ 1 lte01).
5372- + by move: xy => /(_ 1 lte01).
5373- + by move: xy => /(_ 1 lte01).
5374- + by rewrite leNye.
5375- Qed .
5376- (* /PR in progress *)
5377-
5378- Section outer_measureU.
5379- Context d (T : semiRingOfSetsType d) (R : realType).
5380- Variable mu : {outer_measure set T -> \bar R}.
5381- Local Open Scope ereal_scope.
5382-
5383- Lemma outer_measure_subadditive (F : nat -> set T) n :
5384- mu (\big[setU/set0]_(i < n) F i) <= \sum_(i < n) mu (F i).
5385- Proof .
5386- set F' := fun k => if (k < n)%N then F k else set0.
5387- rewrite -(big_mkord xpredT F) big_nat (eq_bigr F')//; last first.
5388- by move=> k /= kn; rewrite /F' kn.
5389- rewrite -big_nat big_mkord.
5390- have := outer_measure_sigma_subadditive mu F'.
5391- rewrite (bigcup_splitn n) (_ : bigcup _ _ = set0) ?setU0; last first.
5392- by rewrite bigcup0 // => k _; rewrite /F' /= ltnNge leq_addr.
5393- move/le_trans; apply.
5394- rewrite (nneseries_split n)// [X in _ + X](_ : _ = 0) ?adde0//; last first.
5395- rewrite eseries_cond/= eseries_mkcond eseries0//.
5396- by move=> k _; case: ifPn => //; rewrite /F' leqNgt => /negbTE ->.
5397- by apply: lee_sum => i _; rewrite /F' ltn_ord.
5398- Qed .
5399-
5400- Lemma outer_measureU2 A B : mu (A `|` B) <= mu A + mu B.
5401- Proof .
5402- have := outer_measure_subadditive (bigcup2 A B) 2.
5403- by rewrite !big_ord_recl/= !big_ord0 setU0 adde0.
5404- Qed .
5405-
5406- End outer_measureU.
5407-
54085349Lemma ereal_sup_le {R : realType} (A : set (\bar R)) x :
54095350 A !=set0 -> (forall y, A y -> x <= y)%E ->
54105351 (x <= ereal_sup A)%E.
@@ -5447,24 +5388,6 @@ rewrite -(@ge0_integral_bigsetU _ _ _ _ (fun i => F (nth h (in_tuple (h :: t)) i
54475388exact/trivIset_nth.
54485389Qed .
54495390
5450- Lemma lebesgue_measure_inner_regular {R : realType} (A : set R) :
5451- measurable A ->
5452- let mu := @lebesgue_measure R in
5453- (mu A < +oo)%E ->
5454- mu A = ereal_sup [set mu K | K in [set K | compact K /\ K `<=` A]].
5455- Proof .
5456- move=> mA mu muA; apply/eqP; rewrite eq_le; apply/andP; split; last first.
5457- apply: ub_ereal_sup => /= x [B /= [cB BA <-{x}]].
5458- exact: le_outer_measure.
5459- apply/lee_addgt0Pr => e e0.
5460- have [B [cB BA /= ABe]] := lebesgue_regularity_inner mA muA e0.
5461- rewrite -{1}(setDKU BA).
5462- rewrite (@le_trans _ _ (mu B + mu (A `\` B))%E)//.
5463- by rewrite setUC outer_measureU2.
5464- rewrite lee_add//; last by rewrite ltW.
5465- by apply: ereal_sup_ub => /=; exists B.
5466- Qed .
5467-
54685391Section lower_semicontinuous.
54695392Local Open Scope ereal_scope.
54705393
@@ -5656,11 +5579,10 @@ have r_proof x : M f x > c%:E -> {r | (0 < r)%R &
56565579 by rewrite lebesgue_measure_ball ?ltry// ltW.
56575580 rewrite -lte_pdivl_mulr// 1?muleC// fine_gt0//.
56585581 by rewrite lebesgue_measure_ball 1?ltW// ltry lte_fin mulrn_wgt0.
5659- rewrite lebesgue_measure_inner_regular //; last 2 first.
5582+ rewrite lebesgue_regularity_inner_sup //; last 1 first.
56605583 - rewrite -[X in measurable X]setTI; apply: emeasurable_fun_o_infty => //.
56615584 apply: lower_semicontinuous_measurable.
56625585 exact: lower_semicontinuous_HL_maximal.
5663- - admit.
56645586apply: ub_ereal_sup => /= x /= [K [cK Kcmf <-{x}]].
56655587pose r_ x :=
56665588 if pselect (M f x > c%:E) is left H then s2val (r_proof _ H) else 1%R.
@@ -5686,13 +5608,13 @@ have {ED}E'D : {subset E' <= D} by move=> x; rewrite mem_undup => /ED.
56865608have {tEB}tE'B : trivIset [set` E'] (scale_ball 1 \o B).
56875609 by apply: sub_trivIset tEB => x/=; rewrite mem_undup.
56885610have {DE}DE' : cover [set` D] (scale_ball 1 \o B) `<=`
5689- cover [set` E'] (scale_ball 3 \o B).
5611+ cover [set` E'] (scale_ball 3%:R \o B).
56905612 by move=> x /DE [r/= rE] Brx; exists r => //=; rewrite mem_undup.
56915613have uniqE' : uniq E' by exact: undup_uniq.
56925614rewrite (@le_trans _ _ (3%:R%:E * \sum_(i <- E') mu (scale_ball 1 (B i))))//.
56935615 have {}DE' := subset_trans KDB DE'.
5694- apply: (le_trans (@content_sub_additive _ _ _ mu
5695- K (fun i => scale_ball 3 (B (nth 0%R E' i))) (size E') _ _ _)) => //.
5616+ apply: (le_trans (@content_sub_additive _ _ _ [the measure _ _ of mu]
5617+ K (fun i => scale_ball 3%:R (B (nth 0%R E' i))) (size E') _ _ _)) => //.
56965618 - by move=> k ?; exact: measurable_ball.
56975619 - by apply: closed_measurable; apply: compact_closed => //; exact: Rhausdorff.
56985620 - apply: (subset_trans DE'); rewrite /cover bigcup_set.
@@ -5715,6 +5637,6 @@ apply: subset_integral => //.
57155637- by apply: bigsetU_measurable => ? ?; exact: measurable_ball.
57165638- apply: measurableT_comp => //.
57175639 by apply: measurableT_comp => //; case: locf.
5718- Admitted .
5640+ Qed .
57195641
57205642End hardy_littlewood.
0 commit comments