@@ -376,57 +376,60 @@ Canonical hlength_measure (f : R -> R) (f_monotone : {homo f : x y / (x <= y)%R}
376376
377377Hint Extern 0 (measurable _) => solve [apply: is_ocitv] : core.
378378
379- Lemma hlength_sigma_sub_additive (f:R -> R) (f_monotone:{homo f : x y / (x <= y)%R}) : sigma_sub_additive (hlength f).
379+ Lemma hlength_semi_additive_helper (F : R -> R) (n : nat) a0 b0 (a b :
380+ nat -> R) :
381+ `[ a0, b0] `<=` \big[setU/set0]_(i < n) `] a i, b i[%classic
382+ ->
383+ F b0 - F a0 <= \sum_(i < n) (F (b i) - F (a i)).
384+ Proof .
385+ Admitted .
386+
387+ Lemma hlength_sigma_sub_additive (f : R -> R)
388+ (f_monotone : {homo f : x y / (x <= y)%R}) :
389+ sigma_sub_additive (hlength f).
380390Proof .
381391move=> I A /(_ _)/cid2-/all_sig[b]/all_and2[_]/(_ _)/esym AE.
382392move=> [a _ <-]; rewrite hlength_itv ?lte_fin/= -EFinB => lebig.
383- case: ifPn => a12; last first. rewrite nneseries_esum//; last first.
384- move=> n _.
385- by apply:hlength_ge0'.
386- rewrite esum_ge0//.
387- move=> n _.
388- by apply:hlength_ge0'.
393+ case: ifPn => a12; last first. rewrite nneseries_esum; last first.
394+ by move=> ? _; exact: hlength_ge0'.
395+ by rewrite esum_ge0// => ? _; exact: hlength_ge0'.
389396apply: lee_adde => e.
390397rewrite [e%:num]splitr [in leRHS]EFinD addeA -lee_subl_addr//.
391398apply: le_trans (epsilon_trick _ _ _) => //=; last first.
392- move=> n .
393- by apply hlength_ge0'.
394- have eVn_gt0 n : 0 < e%:num / 2 / (2 ^ n.+1)%:R.
395- by rewrite divr_gt0// ltr0n// expn_gt0.
396- have eVn_ge0 n := ltW (eVn_gt0 n).
397- pose Aoo i : set itvs :=
398- (`]((b i).1), ((b i).2 + e%:num / 2 / (2 ^ i.+1)%:R)[)%classic.
399- pose Aoc i : set itvs :=
400- (`]((b i).1), ((b i).2 + e%:num / 2 / (2 ^ i.+1)%:R)])%classic.
401- have: `[a.1 + e%:num / 2, a.2] `<=` \bigcup_i Aoo i. (* <- *)
402- apply: (@subset_trans _ `]a.1, a.2]).
403- move=> x; rewrite /= !in_itv /= => /andP[+ -> //].
404- by move=> /lt_le_trans-> //; rewrite ltr_addl.
405- apply: (subset_trans lebig); apply: subset_bigcup => i _; rewrite AE /Aoo/=.
406- move=> x /=; rewrite !in_itv /= => /andP[-> /le_lt_trans->]//=.
407- by rewrite ltr_addl.
408- have := @segment_compact _ (a.1 + e%:num / 2) a.2; rewrite compact_cover.
409- move=> /[apply]-[i _|X _ Xc]; first by rewrite /Aoo//; apply: interval_open.
410- have: `](a.1 + e%:num / 2), a.2] `<=` \bigcup_(i in [set` X]) Aoc i.
411- move=> x /subset_itv_oc_cc /Xc [i /= Xi] Aooix.
412- by exists i => //; apply: subset_itv_oo_oc Aooix.
413- have /[apply] := @content_sub_fsum _ _ [additive_measure of (hlength f)] _ [set` X].
414- move=> /(_ f_monotone _ _ _)/Box[]//=. apply: le_le_trans.
415- rewrite hlength_itv ?lte_fin -?EFinD/= -addrA -opprD.
416- case: ltP.
417- rewrite lee_fin.
418- move=> ae.(* *)
419- apply ler_sub =>//.
420- rewrite lerr.
421- rewrite lee_fin. move=> ae.
422- apply ler_sub =>//. rewrite subr_le0.
423- rewrite nneseries_esum//; last by move=> *; rewrite adde_ge0//= ?lee_fin.
424- rewrite esum_ge//; exists X => //; rewrite fsbig_finite// ?set_fsetK//=.
425- rewrite lee_sum // => i _; rewrite ?AE// !hlength_itv/= ?lte_fin -?EFinD/=.
426- do !case: ifPn => //= ?; do ?by rewrite ?adde_ge0 ?lee_fin// ?subr_ge0// ?ltW.
427- by rewrite addrAC.
428- by rewrite addrAC lee_fin ler_add// subr_le0 leNgt.
429- Qed .
399+ by move=> ?; exact: hlength_ge0'.
400+ have [Delta hDelta] : exists Delta, f (a.1 + Delta) <= f a.1 + e%:num / 2.
401+ (* by continuity *)
402+ admit.
403+ have [delta hdelta] :
404+ exists delta : nat -> R, forall i, f ((b i).2 + delta i) <= f ((b
405+ i).2) + (e%:num / 2) / 2 ^ i.+1.
406+ suff : forall i, exists deltai, f ((b i).2 + deltai) <= f ((b i).2)
407+ + (e%:num / 2) / 2 ^ i.+1.
408+ by move/choice => -[f' hf']; exists f'.
409+ (* by continuity *)
410+ admit.
411+ have H1 : `[ a.2 + Delta , a.1] `<=` \bigcup_i `](b i).1, (b i).2 +
412+ delta i[%classic.
413+ admit.
414+ have [n hn] : exists n, `[ a.1 + Delta , a.2] `<=` \big[setU/set0]_(i
415+ < n) `](b i).1, (b i).2 + delta i[%classic.
416+ (* by cover_compact *)
417+ admit.
418+ have H2 : f a.2 - f (a.1 + Delta) <= \sum_(i < n) (f ((b i).2 + delta
419+ i) - f (b i).1).
420+ (* by hlength_semi_additive_helper *)
421+ admit.
422+ have H3 : (((f a.2 - f (a.1) - e%:num / 2))%:E <=
423+ \sum_(i < n) ((hlength f) ( `](b i).1, (b i).2]%classic))
424+ +
425+ \sum_(i < n) (f ((b i).2 + delta i)%R - f (b i).2)%:E)%E.
426+ admit.
427+ have H4 : (((f a.2 - f (a.1) - e%:num / 2))%:E <=
428+ \sum_(i < n) ((hlength f) ( `](b i).1, (b i).2]%classic))
429+ +
430+ (e%:num / 2)%:E)%E.
431+ admit.
432+ Admitted .
430433
431434Lemma hlength_sigma_finite : sigma_finite [set: itvs] hlength.
432435Proof .
0 commit comments