@@ -25,6 +25,7 @@ Unset Strict Implicit.
2525Unset Printing Implicit Defensive.
2626Import Order.TTheory GRing.Theory Num.Def Num.Theory.
2727Import numFieldTopology.Exports.
28+ Import numFieldNormedType.Exports.
2829
2930Local Open Scope classical_set_scope.
3031Local Open Scope ring_scope.
@@ -36,7 +37,7 @@ Local Open Scope ereal_scope.
3637Implicit Types (f : R -> R) (a : itv_bound R).
3738
3839Let FTC0 f a : mu.-integrable setT (EFin \o f) ->
39- let F x : R^o : = (\int[mu]_(t in [set` Interval a (BRight x)]) f t)%R in
40+ let F x := (\int[mu]_(t in [set` Interval a (BRight x)]) f t)%R in
4041 forall x, a < BRight x -> lebesgue_pt f x ->
4142 h^-1 *: (F (h + x) - F x) @[h --> (0:R)%R^'] --> f x.
4243Proof .
@@ -79,7 +80,7 @@ apply: cvg_at_right_left_dnbhs.
7980 by apply/negP; rewrite negb_and -!leNgt xz orbT.
8081 - by apply/negP; rewrite -leNgt.
8182 rewrite [f in f n @[n --> _] --> _](_ : _ =
82- fun n => (d n)^-1 *: ( fine (\int[mu]_(t in E x n) (f t)%:E) : R^o )); last first.
83+ fun n => (d n)^-1 *: fine (\int[mu]_(t in E x n) (f t)%:E)); last first.
8384 apply/funext => n; congr (_ *: _); rewrite -fineB/=.
8485 by rewrite /= (addrC (d n) x) ixdf.
8586 by apply: integral_fune_fin_num => //; exact: integrableS intf.
@@ -106,7 +107,7 @@ apply: cvg_at_right_left_dnbhs.
106107 have nice_E y : nicely_shrinking y (E y).
107108 split=> [n|]; first exact: measurable_itv.
108109 exists (2, (fun n => PosNum (Nd_gt0 n))); split => //=.
109- by rewrite -oppr0; exact: (@ cvgN _ R^o) .
110+ by rewrite -oppr0; exact: cvgN.
110111 move=> n z.
111112 rewrite /E/= in_itv/= /ball/= => /andP[yz zy].
112113 by rewrite ltr_distlC opprK yz /= (le_lt_trans zy)// ltrDl.
@@ -141,7 +142,7 @@ apply: cvg_at_right_left_dnbhs.
141142 rewrite /E /= !in_itv/= leNgt => xdnz.
142143 by apply/negP; rewrite negb_and xdnz.
143144 move=> b a ax.
144- move/(@ cvgrPdist_le _ R^o) : d0.
145+ move/cvgrPdist_le : d0.
145146 move/(_ (x - a)%R); rewrite subr_gt0 => /(_ ax)[m _ /=] h.
146147 near=> n.
147148 have mn : (m <= n)%N by near: n; exists m.
@@ -170,7 +171,7 @@ apply: cvg_at_right_left_dnbhs.
170171 by apply/negP; rewrite negb_and -leNgt zxdn.
171172 suff: ((d n)^-1 * - fine (\int[mu]_(y in E x n) (f y)%:E))%R
172173 @[n --> \oo] --> f x.
173- apply: cvg_trans; apply: near_eq_cvg; near=> n; congr (_ *: (_ : R^o) ).
174+ apply: cvg_trans; apply: near_eq_cvg; near=> n; congr (_ *: _ ).
174175 rewrite /F -fineN -fineB; last 2 first.
175176 by apply: integral_fune_fin_num => //; exact: integrableS intf.
176177 by apply: integral_fune_fin_num => //; exact: integrableS intf.
@@ -188,9 +189,9 @@ Unshelve. all: by end_near. Qed.
188189
189190Let FTC0_restrict f a x (u : R) : (x < u)%R ->
190191 mu.-integrable [set` Interval a (BRight u)] (EFin \o f) ->
191- let F y : R^o : = (\int[mu]_(t in [set` Interval a (BRight y)]) f t)%R in
192+ let F y := (\int[mu]_(t in [set` Interval a (BRight y)]) f t)%R in
192193 a < BRight x -> lebesgue_pt f x ->
193- h^-1 *: (F (h + x) - F x) @[h --> ((0:R^o )%R^')] --> f x.
194+ h^-1 *: (F (h + x) - F x) @[h --> ((0:R)%R^')] --> f x.
194195Proof .
195196move=> xu + F ax fx.
196197rewrite integrable_mkcond//= (restrict_EFin f) => intf.
@@ -204,8 +205,7 @@ apply: cvg_trans; apply: near_eq_cvg; near=> r; congr (_ *: (_ - _)).
204205 move: yaxr; rewrite /= !in_itv/= inE/= in_itv/= => /andP[->/=].
205206 move=> /le_trans; apply; rewrite -lerBrDr.
206207 have [r0|r0] := leP r 0%R; first by rewrite (le_trans r0)// subr_ge0 ltW.
207- rewrite -(gtr0_norm r0); near: r.
208- by apply: (@dnbhs0_le _ R^o); rewrite subr_gt0.
208+ by rewrite -(gtr0_norm r0); near: r; apply: dnbhs0_le; rewrite subr_gt0.
209209- apply: eq_Rintegral => y yaxr; rewrite patchE mem_set//=.
210210 move: yaxr => /=; rewrite !in_itv/= inE/= in_itv/= => /andP[->/=].
211211 by move=> /le_trans; apply; exact/ltW.
@@ -214,9 +214,9 @@ Unshelve. all: by end_near. Qed.
214214(* NB: right-closed interval *)
215215Lemma FTC1_lebesgue_pt f a x (u : R) : (x < u)%R ->
216216 mu.-integrable [set` Interval a (BRight u)] (EFin \o f) ->
217- let F (y : R^o) := (\int[mu]_(t in [set` Interval a (BRight y)]) (f t))%R in
217+ let F y := (\int[mu]_(t in [set` Interval a (BRight y)]) (f t))%R in
218218 a < BRight x -> lebesgue_pt f x ->
219- derivable (F : R^o -> R^o) x 1 /\ ((F : R^o -> R^o)^ `() x = f x) .
219+ derivable F x 1 /\ F^ `() x = f x.
220220Proof .
221221move=> xu intf F ax fx; split; last first.
222222 by apply/cvg_lim; [exact: Rhausdorff|exact: (@FTC0_restrict _ _ _ u)].
231231Corollary FTC1 f a :
232232 (forall y, mu.-integrable [set` Interval a (BRight y)] (EFin \o f)) ->
233233 locally_integrable [set: R] f ->
234- let F x : R^o : = (\int[mu]_(t in [set` Interval a (BRight x)]) (f t))%R in
235- {ae mu, forall x, a < BRight x -> derivable (F : R^o -> R^o) x 1 /\ F^`() x = f x}.
234+ let F x := (\int[mu]_(t in [set` Interval a (BRight x)]) (f t))%R in
235+ {ae mu, forall x, a < BRight x -> derivable F x 1 /\ F^`() x = f x}.
236236Proof .
237237move=> intf locf F; move: (locf) => /lebesgue_differentiation.
238238apply: filterS; first exact: (ae_filter_ringOfSetsType mu).
@@ -243,23 +243,23 @@ Qed.
243243Corollary FTC1Ny f :
244244 (forall y, mu.-integrable `]-oo, y] (EFin \o f)) ->
245245 locally_integrable [set: R] f ->
246- let F x : R^o : = (\int[mu]_(t in [set` `]-oo, x]]) (f t))%R in
247- {ae mu, forall x, derivable (F : R^o -> R^o) x 1 /\ F^`() x = f x}.
246+ let F x := (\int[mu]_(t in [set` `]-oo, x]]) (f t))%R in
247+ {ae mu, forall x, derivable F x 1 /\ F^`() x = f x}.
248248Proof .
249249move=> intf locf F; have := FTC1 intf locf.
250250apply: filterS; first exact: (ae_filter_ringOfSetsType mu).
251251by move=> r /=; apply; rewrite ltNyr.
252252Qed .
253253
254- Let itv_continuous_lebesgue_pt f a (x : R^o) (u : R) : (x < u)%R ->
254+ Let itv_continuous_lebesgue_pt f a x (u : R) : (x < u)%R ->
255255 measurable_fun [set` Interval a (BRight u)] f ->
256256 a < BRight x ->
257257 {for x, continuous f} -> lebesgue_pt f x.
258258Proof .
259259move=> xu fi + fx.
260260move: a fi => [b a fi /[1!(@lte_fin R)] ax|[|//] fi _].
261261- near (0%R:R)^'+ => e; apply: (@continuous_lebesgue_pt _ _ _ (ball x e)) => //.
262- + exact: ( ball_open_nbhs x) .
262+ + exact: ball_open_nbhs.
263263 + exact: measurable_ball.
264264 + apply: measurable_funS fi => //; rewrite ball_itv.
265265 apply: (@subset_trans _ `](x - e)%R, u]) => //.
@@ -279,9 +279,9 @@ Unshelve. all: by end_near. Qed.
279279
280280Corollary continuous_FTC1 f a x (u : R) : (x < u)%R ->
281281 mu.-integrable [set` Interval a (BRight u)] (EFin \o f) ->
282- let F x : R^o : = (\int[mu]_(t in [set` Interval a (BRight x)]) (f t))%R in
282+ let F x := (\int[mu]_(t in [set` Interval a (BRight x)]) (f t))%R in
283283 a < BRight x -> {for x, continuous f} ->
284- derivable (F : R^o -> R^o) x 1 /\ F^`() x = f x.
284+ derivable F x 1 /\ F^`() x = f x.
285285Proof .
286286move=> xu fi F ax fx; suff lfx : lebesgue_pt f x.
287287 have /(_ ax lfx)[dfx f'xE] := @FTC1_lebesgue_pt _ a _ _ xu fi.
292292
293293Corollary continuous_FTC1_closed f (a x : R) (u : R) : (x < u)%R ->
294294 mu.-integrable `[a, u] (EFin \o f) ->
295- let F x : R^o : = (\int[mu]_(t in [set` `[a, x]]) (f t))%R in
295+ let F x := (\int[mu]_(t in [set` `[a, x]]) (f t))%R in
296296 (a < x)%R -> {for x, continuous f} ->
297- derivable (F : R^o -> R^o) x 1 /\ F^`() x = f x.
297+ derivable F x 1 /\ F^`() x = f x.
298298Proof . by move=> xu locf F ax fx; exact: (@continuous_FTC1 _ _ _ u). Qed .
299299
300300End FTC.
@@ -359,7 +359,7 @@ Proof.
359359move=> ab intf; pose fab := f \_ `[a, b].
360360have intfab : mu.-integrable `[a, b] (EFin \o fab).
361361 by rewrite -restrict_EFin; apply/integrable_restrict => //=; rewrite setIidr.
362- apply/(@ cvgrPdist_le _ R^o) => /= e e0; near=> x.
362+ apply/cvgrPdist_le => /= e e0; near=> x.
363363rewrite {1}/int /parameterized_integral sub0r normrN.
364364have [|xa] := leP a x.
365365 move=> ax; apply/ltW; move: ax.
@@ -379,7 +379,7 @@ have /= int_normr_cont : forall e : R, 0 < e ->
379379 by rewrite -restrict_EFin; apply/integrable_restrict => //=; rewrite setTI.
380380have intfab : mu.-integrable `[a, b] (EFin \o fab).
381381 by rewrite -restrict_EFin; apply/integrable_restrict => //=; rewrite setIidr.
382- rewrite /int /parameterized_integral; apply/(@ cvgrPdist_le _ R^o) => /= e e0.
382+ rewrite /int /parameterized_integral; apply/cvgrPdist_le => /= e e0.
383383have [d [d0 /= {}int_normr_cont]] := int_normr_cont _ e0.
384384near=> x.
385385rewrite [in X in X - _](@itv_bndbnd_setU _ _ _ (BRight x))//;
@@ -423,7 +423,7 @@ have /= int_normr_cont : forall e : R, 0 < e ->
423423have intfab : mu.-integrable `[a, b] (EFin \o fab).
424424 by rewrite -restrict_EFin; apply/integrable_restrict => //=; rewrite setIidr.
425425rewrite /int /parameterized_integral => z; rewrite in_itv/= => /andP[az zb].
426- apply/(@ cvgrPdist_le _ R^o) => /= e e0.
426+ apply/cvgrPdist_le => /= e e0.
427427have [d [d0 /= {}int_normr_cont]] := int_normr_cont _ e0.
428428near=> x.
429429have [xz|xz|->] := ltgtP x z; last by rewrite subrr normr0 ltW.
@@ -493,15 +493,15 @@ rewrite mem_set ?mulr1 /=; last exact: subset_itv_oo_cc.
493493exact: cvg_patch.
494494Qed .
495495
496- Corollary continuous_FTC2 ( f F : R^o -> R^o) a b : (a < b)%R ->
496+ Corollary continuous_FTC2 f F a b : (a < b)%R ->
497497 {within `[a, b], continuous f} ->
498498 derivable_oo_continuous_bnd F a b ->
499499 {in `]a, b[, F^`() =1 f} ->
500500 (\int[mu]_(x in `[a, b]) (f x)%:E = (F b)%:E - (F a)%:E)%E.
501501Proof .
502502move=> ab cf dF F'f.
503503pose fab := f \_ `[a, b].
504- pose G (x : R^o) : R^o := (\int[mu]_(t in `[a, x]) fab t)%R.
504+ pose G x := (\int[mu]_(t in `[a, x]) fab t)%R.
505505have iabf : mu.-integrable `[a, b] (EFin \o f).
506506 by apply: continuous_compact_integrable => //; exact: segment_compact.
507507have G'f : {in `]a, b[, forall x, G^`() x = fab x /\ derivable G x 1}.
@@ -528,11 +528,11 @@ have [k FGk] : exists k : R, {in `]a, b[, (F - G =1 cst k)%R}.
528528 + by move: yab; rewrite in_itv/= => /andP[_ /ltW].
529529 have Fz1 : derivable F z 1.
530530 by case: dF => /= + _ _; apply; rewrite inE in zab.
531- have Gz1 : derivable (G : R^o -> R^o) z 1 by have [|] := G'f z.
531+ have Gz1 : derivable G z 1 by have [|] := G'f z.
532532 apply: DeriveDef.
533533 + by apply: derivableB; [exact: Fz1|exact: Gz1].
534534 + by rewrite deriveB -?derive1E; [by []|exact: Fz1|exact: Gz1].
535- - apply: (@ derivable_within_continuous _ R^o) => z zxy.
535+ - apply: derivable_within_continuous => z zxy.
536536 apply: derivableB.
537537 + case: dF => /= + _ _; apply.
538538 apply: subset_itvSoo zxy => //.
@@ -572,7 +572,7 @@ have GbcFb : G x @[x --> b^'-] --> (- c + F b)%R.
572572 by apply/funext => x/=; rewrite subrK.
573573have contF : {within `[a, b], continuous F}.
574574 apply/(continuous_within_itvP _ ab); split => //.
575- move=> z zab; apply/(@ differentiable_continuous _ R^o R^o) /derivable1_diffP.
575+ move=> z zab; apply/differentiable_continuous/derivable1_diffP.
576576 by case: dF => /= + _ _; exact.
577577have iabfab : mu.-integrable `[a, b] (EFin \o fab).
578578 by rewrite -restrict_EFin; apply/integrable_restrict => //; rewrite setIidr.
@@ -603,7 +603,7 @@ Notation mu := lebesgue_measure.
603603Local Open Scope ereal_scope.
604604Implicit Types (F G f g : R -> R) (a b : R).
605605
606- Lemma integration_by_parts (F : R^o -> R^o) (G : R^o -> R^o) ( f g : R^o -> R^o) a b : (a < b)%R ->
606+ Lemma integration_by_parts F G f g a b : (a < b)%R ->
607607 {within `[a, b], continuous f} ->
608608 derivable_oo_continuous_bnd F a b ->
609609 {in `]a, b[, F^`() =1 f} ->
@@ -615,7 +615,7 @@ Lemma integration_by_parts (F : R^o -> R^o) (G : R^o -> R^o) (f g : R^o -> R^o)
615615Proof .
616616move=> ab cf Fab Ff cg Gab Gg.
617617have cfg : {within `[a, b], continuous (f * G + F * g)%R}.
618- apply/subspace_continuousP => x abx; apply:cvgD .
618+ apply/subspace_continuousP => x abx; apply: cvgD .
619619 - apply: cvgM.
620620 + by move/subspace_continuousP : cf; exact.
621621 + have := derivable_oo_continuous_bnd_within Gab.
@@ -655,7 +655,7 @@ Context {R : realType}.
655655Notation mu := lebesgue_measure.
656656Implicit Types (F G f g : R -> R) (a b : R).
657657
658- Lemma Rintegration_by_parts ( F G : R^o -> R^o) f g a b :
658+ Lemma Rintegration_by_parts F G f g a b :
659659 (a < b)%R ->
660660 {within `[a, b], continuous f} ->
661661 derivable_oo_continuous_bnd F a b ->
@@ -730,7 +730,7 @@ Lemma increasing_cvg_at_left_comp F G a b (l : R) : (a < b)%R ->
730730Proof .
731731move=> ab incrF cFb GFb.
732732apply/cvgrPdist_le => /= e e0.
733- have/cvgrPdist_le /(_ e e0) [d /= d0 {}GFb] := GFb.
733+ have /cvgrPdist_le /(_ e e0) [d /= d0 {}GFb] := GFb.
734734have := cvg_at_left_within cFb.
735735move/cvgrPdist_lt/(_ _ d0) => [d' /= d'0 {}cFb].
736736near=> t.
@@ -748,7 +748,7 @@ Lemma decreasing_cvg_at_right_comp F G a b (l : R) : (a < b)%R ->
748748Proof .
749749move=> ab decrF cFa GFa.
750750apply/cvgrPdist_le => /= e e0.
751- have/cvgrPdist_le /(_ e e0) [d' /= d'0 {}GFa] := GFa.
751+ have /cvgrPdist_le /(_ e e0) [d' /= d'0 {}GFa] := GFa.
752752have := cvg_at_right_within cFa.
753753move/cvgrPdist_lt/(_ _ d'0) => [d'' /= d''0 {}cFa].
754754near=> t.
@@ -766,7 +766,7 @@ Lemma decreasing_cvg_at_left_comp F G a b (l : R) : (a < b)%R ->
766766Proof .
767767move=> ab decrF cFb GFb.
768768apply/cvgrPdist_le => /= e e0.
769- have/cvgrPdist_le /(_ e e0) [d' /= d'0 {}GFb] := GFb.
769+ have /cvgrPdist_le /(_ e e0) [d' /= d'0 {}GFb] := GFb.
770770have := cvg_at_left_within cFb. (* different point from gt0 version *)
771771move/cvgrPdist_lt/(_ _ d'0) => [d'' /= d''0 {}cFb].
772772near=> t.
@@ -863,7 +863,7 @@ rewrite oppeD//= -(continuous_FTC2 ab _ _ DPGFE); last 2 first.
863863 exact: decreasing_image_oo.
864864 * have : -%R F^`() @ x --> (- f x)%R.
865865 by rewrite -fE//; apply: cvgN; exact: cF'.
866- apply: cvg_trans; apply: near_eq_cvg; rewrite near_simpl .
866+ apply: cvg_trans; apply: near_eq_cvg.
867867 apply: (@open_in_nearW _ _ `]a, b[) ; last by rewrite inE.
868868 exact: interval_open.
869869 by move=> z; rewrite inE/= => zab; rewrite fctE fE.
@@ -978,7 +978,7 @@ rewrite (@integration_by_substitution_decreasing (- F)%R); first last.
978978 by case: Fab => + _ _; exact.
979979 rewrite -derive1E.
980980 have /cvgN := cF' _ xab; apply: cvg_trans; apply: near_eq_cvg.
981- rewrite near_simpl; near=> y; rewrite fctE !derive1E deriveN//.
981+ near=> y; rewrite fctE !derive1E deriveN//.
982982 by case: Fab => + _ _; apply; near: y; exact: near_in_itv.
983983- by move=> x y xab yab yx; rewrite ltrN2 incrF.
984984- by [].
0 commit comments