Skip to content

Commit dbc9e07

Browse files
authored
fixes #1734 (#1747)
1 parent 00514bb commit dbc9e07

4 files changed

Lines changed: 65 additions & 46 deletions

File tree

CHANGELOG_UNRELEASED.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -357,6 +357,13 @@
357357
- in `sequences.v`:
358358
+ `adjacent` -> `adjacent_seq`
359359

360+
- in `realfun.v`:
361+
+ `derivable_oo_continuous_bnd` -> `derivable_oo_LRcontinuous`
362+
+ `derivable_oo_continuous_bnd_within` -> `derivable_oo_LRcontinuous_within`
363+
+ `derivable_Nyo_continuous_bnd` -> `derivable_Nyo_Lcontinuous`
364+
+ `derivable_oy_continuous_bnd` -> `derivable_oy_Rcontinuous`
365+
+ `derivable_oy_continuous_within_itvcy` -> `derivable_oy_Rcontinuous_within_itvcy`
366+
360367
### Generalized
361368

362369
- in `pseudometric_normed_Zmodule.v`:

theories/convex.v

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -281,7 +281,7 @@ have [c2 Ic2 Hc2] : exists2 c2, x < c2 < b & (f b - f x) / (b - x) = 'D_1 f c2.
281281
have derivef z : z \in `]x, b[ -> is_derive z 1 f ('D_1 f z).
282282
by move=> zxb; apply/derivableP/xbf; exact: zxb.
283283
have [|z zxb fbfx] := MVT xb derivef.
284-
apply/(derivable_oo_continuous_bnd_within (And3 xbf _ cvg_left)).
284+
apply/(derivable_oo_LRcontinuous_within (And3 xbf _ cvg_left)).
285285
apply/cvg_at_right_filter.
286286
have := derivable_within_continuous HDf.
287287
rewrite continuous_open_subspace//.
@@ -293,7 +293,7 @@ have [c1 Ic1 Hc1] : exists2 c1, a < c1 < x & (f x - f a) / (x - a) = 'D_1 f c1.
293293
have derivef z : z \in `]a, x[ -> is_derive z 1 f ('D_1 f z).
294294
by move=> zax; apply /derivableP/axf.
295295
have [|z zax fxfa] := MVT ax derivef.
296-
apply/(derivable_oo_continuous_bnd_within (And3 axf cvg_right _)).
296+
apply/(derivable_oo_LRcontinuous_within (And3 axf cvg_right _)).
297297
apply/cvg_at_left_filter.
298298
have := derivable_within_continuous HDf.
299299
rewrite continuous_open_subspace//.
@@ -311,7 +311,7 @@ have [d Id h] :
311311
have derivef z : z \in `]c1, c2[ -> is_derive z 1 Df ('D_1 Df z).
312312
by move=> zc1c2; apply/derivableP/h.
313313
have [|z zc1c2 {}h] := MVT c1c2 derivef.
314-
apply: (derivable_oo_continuous_bnd_within (And3 h _ _)).
314+
apply: (derivable_oo_LRcontinuous_within (And3 h _ _)).
315315
+ apply: cvg_at_right_filter.
316316
move: cDf; rewrite continuous_open_subspace//.
317317
by apply; rewrite inE/= in_itv/= (andP Ic1).1 (lt_trans _ (andP Ic2).2).

theories/ftc.v

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -544,7 +544,7 @@ Qed.
544544

545545
Corollary continuous_FTC2 f F a b : (a < b)%R ->
546546
{within `[a, b], continuous f} ->
547-
derivable_oo_continuous_bnd F a b ->
547+
derivable_oo_LRcontinuous F a b ->
548548
{in `]a, b[, F^`() =1 f} ->
549549
(\int[mu]_(x in `[a, b]) (f x)%:E = (F b)%:E - (F a)%:E)%E.
550550
Proof.
@@ -791,10 +791,10 @@ Implicit Types (F G f g : R -> R) (a b : R).
791791

792792
Lemma integration_by_parts F G f g a b : (a < b)%R ->
793793
{within `[a, b], continuous f} ->
794-
derivable_oo_continuous_bnd F a b ->
794+
derivable_oo_LRcontinuous F a b ->
795795
{in `]a, b[, F^`() =1 f} ->
796796
{within `[a, b], continuous g} ->
797-
derivable_oo_continuous_bnd G a b ->
797+
derivable_oo_LRcontinuous G a b ->
798798
{in `]a, b[, G^`() =1 g} ->
799799
\int[mu]_(x in `[a, b]) (F x * g x)%:E = (F b * G b - F a * G a)%:E -
800800
\int[mu]_(x in `[a, b]) (f x * G x)%:E.
@@ -804,13 +804,13 @@ have cfg : {within `[a, b], continuous (f * G + F * g)%R}.
804804
apply/subspace_continuousP => x abx; apply: cvgD.
805805
- apply: cvgM.
806806
+ by move/subspace_continuousP : cf; exact.
807-
+ have := derivable_oo_continuous_bnd_within Gab.
807+
+ have := derivable_oo_LRcontinuous_within Gab.
808808
by move/subspace_continuousP; exact.
809809
- apply: cvgM.
810-
+ have := derivable_oo_continuous_bnd_within Fab.
810+
+ have := derivable_oo_LRcontinuous_within Fab.
811811
by move/subspace_continuousP; exact.
812812
+ by move/subspace_continuousP : cg; exact.
813-
have FGab : derivable_oo_continuous_bnd (F * G)%R a b.
813+
have FGab : derivable_oo_LRcontinuous (F * G)%R a b.
814814
move: Fab Gab => /= [abF FFa FFb] [abG GGa GGb];split; [|exact:cvgM..].
815815
by move=> z zab; apply: derivableM; [exact: abF|exact: abG].
816816
have FGfg : {in `]a, b[, (F * G)^`() =1 f * G + F * g}%R.
@@ -823,13 +823,13 @@ have ? : mu.-integrable `[a, b] (fun x => ((f * G) x)%:E).
823823
apply: continuous_compact_integrable => //; first exact: segment_compact.
824824
apply/subspace_continuousP => x abx; apply: cvgM.
825825
+ by move/subspace_continuousP : cf; exact.
826-
+ have := derivable_oo_continuous_bnd_within Gab.
826+
+ have := derivable_oo_LRcontinuous_within Gab.
827827
by move/subspace_continuousP; exact.
828828
rewrite /= integralD//=.
829829
- by rewrite addeAC subee ?add0e// integrable_fin_num.
830830
- apply: continuous_compact_integrable => //; first exact: segment_compact.
831831
apply/subspace_continuousP => x abx;apply: cvgM.
832-
+ have := derivable_oo_continuous_bnd_within Fab.
832+
+ have := derivable_oo_LRcontinuous_within Fab.
833833
by move/subspace_continuousP; exact.
834834
+ by move/subspace_continuousP : cg; exact.
835835
Qed.
@@ -844,10 +844,10 @@ Implicit Types (F G f g : R -> R) (a b : R).
844844
Lemma Rintegration_by_parts F G f g a b :
845845
(a < b)%R ->
846846
{within `[a, b], continuous f} ->
847-
derivable_oo_continuous_bnd F a b ->
847+
derivable_oo_LRcontinuous F a b ->
848848
{in `]a, b[, F^`() =1 f} ->
849849
{within `[a, b], continuous g} ->
850-
derivable_oo_continuous_bnd G a b ->
850+
derivable_oo_LRcontinuous G a b ->
851851
{in `]a, b[, G^`() =1 g} ->
852852
\int[mu]_(x in `[a, b]) (F x * g x) = (F b * G b - F a * G a) -
853853
\int[mu]_(x in `[a, b]) (f x * G x).
@@ -861,7 +861,7 @@ suff: mu.-integrable `[a, b] (fun x => (f x * G x)%:E).
861861
apply: continuous_compact_integrable.
862862
exact: segment_compact.
863863
move=> /= z; apply: continuousM; [exact: cf|].
864-
exact: (derivable_oo_continuous_bnd_within Gab).
864+
exact: (derivable_oo_LRcontinuous_within Gab).
865865
Qed.
866866

867867
End Rintegration_by_parts.
@@ -1054,13 +1054,13 @@ Lemma integration_by_substitution_decreasing F G a b : (a < b)%R ->
10541054
{in `]a, b[, continuous F^`()} ->
10551055
cvg (F^`() x @[x --> a^'+]) ->
10561056
cvg (F^`() x @[x --> b^'-]) ->
1057-
derivable_oo_continuous_bnd F a b ->
1057+
derivable_oo_LRcontinuous F a b ->
10581058
{within `[F b, F a], continuous G} ->
10591059
\int[mu]_(x in `[F b, F a]) (G x)%:E =
10601060
\int[mu]_(x in `[a, b]) (((G \o F) * - F^`()) x)%:E.
10611061
Proof.
10621062
move=> ab decrF cF' /cvg_ex[/= r F'ar] /cvg_ex[/= l F'bl] Fab cG.
1063-
have cF := derivable_oo_continuous_bnd_within Fab.
1063+
have cF := derivable_oo_LRcontinuous_within Fab.
10641064
have FbFa : (F b < F a)%R by apply: decrF; rewrite //= in_itv/= (ltW ab) lexx.
10651065
have mGFF' : measurable_fun `]a, b[ ((G \o F) * F^`())%R.
10661066
apply: measurable_funM.
@@ -1077,7 +1077,7 @@ have {}mGFF' : measurable_fun `[a, b] ((G \o F) * F^`())%R.
10771077
have intG : mu.-integrable `[F b, F a] (EFin \o G).
10781078
by apply: continuous_compact_integrable => //; exact: segment_compact.
10791079
pose PG x := parameterized_integral mu (F b) x G.
1080-
have PGFbFa : derivable_oo_continuous_bnd PG (F b) (F a).
1080+
have PGFbFa : derivable_oo_LRcontinuous PG (F b) (F a).
10811081
have [/= dF rF lF] := Fab; split => /=.
10821082
- move=> x xFbFa /=.
10831083
have xFa : (x < F a)%R by move: xFbFa; rewrite in_itv/= => /andP[].
@@ -1147,7 +1147,7 @@ rewrite oppeD//= -(continuous_FTC2 ab _ _ DPGFE); last 2 first.
11471147
apply: cvgN; apply: cvg_trans F'bl; apply: near_eq_cvg.
11481148
by near=> z; rewrite fE// in_itv/=; apply/andP; split.
11491149
- have [/= dF rF lF] := Fab.
1150-
have := derivable_oo_continuous_bnd_within PGFbFa.
1150+
have := derivable_oo_LRcontinuous_within PGFbFa.
11511151
move=> /(continuous_within_itvP _ FbFa)[_ PGFb PGFa]; split => /=.
11521152
- move=> x xab; apply/derivable1_diffP; apply: differentiable_comp => //.
11531153
apply: differentiable_comp; apply/derivable1_diffP.
@@ -1205,7 +1205,7 @@ Lemma integration_by_substitution_increasing F G a b : (a < b)%R ->
12051205
{in `]a, b[, continuous F^`()} ->
12061206
cvg (F^`() x @[x --> a^'+]) ->
12071207
cvg (F^`() x @[x --> b^'-]) ->
1208-
derivable_oo_continuous_bnd F a b ->
1208+
derivable_oo_LRcontinuous F a b ->
12091209
{within `[F a, F b], continuous G} ->
12101210
\int[mu]_(x in `[F a, F b]) (G x)%:E =
12111211
\int[mu]_(x in `[a, b]) (((G \o F) * F^`()) x)%:E.
@@ -1275,7 +1275,7 @@ Lemma decreasing_ge0_integration_by_substitutiony F G a :
12751275
{in `]a, +oo[, continuous F^`()} ->
12761276
cvg (F^`() x @[x --> a^'+]) ->
12771277
cvg (F^`() x @[x --> +oo%R]) ->
1278-
derivable_oy_continuous_bnd F a -> F x @[x --> +oo%R] --> -oo%R ->
1278+
derivable_oy_Rcontinuous F a -> F x @[x --> +oo%R] --> -oo%R ->
12791279
{within `]-oo, F a], continuous G} ->
12801280
{in `]-oo, F a[, forall x, (0 <= G x)%R} ->
12811281
\int[mu]_(x in `]-oo, F a]) (G x)%:E =
@@ -1452,7 +1452,7 @@ Lemma increasing_ge0_integration_by_substitutiony F G a :
14521452
{in `]a, +oo[, continuous F^`()} ->
14531453
cvg (F^`() x @[x --> a^'+]) ->
14541454
cvg (F^`() x @[x --> +oo%R]) ->
1455-
derivable_oy_continuous_bnd F a -> F x @[x --> +oo%R] --> +oo%R->
1455+
derivable_oy_Rcontinuous F a -> F x @[x --> +oo%R] --> +oo%R->
14561456
{within `[F a, +oo[, continuous G} ->
14571457
{in `]F a, +oo[, forall x, (0 <= G x)%R} ->
14581458
\int[mu]_(x in `[F a, +oo[) (G x)%:E =
@@ -1551,7 +1551,7 @@ Lemma increasing_ge0_integration_by_substitutionNy F G b :
15511551
{in `]-oo, b[, continuous F^`()} ->
15521552
cvg (F^`() x @[x --> -oo%R]) ->
15531553
F^`() x @[x --> b^'-] --> F^`() b (* TODO: try with cvg (F^`() x @[x --> b^'-]) *) ->
1554-
derivable_Nyo_continuous_bnd F b -> F x @[x --> -oo%R] --> -oo%R->
1554+
derivable_Nyo_Lcontinuous F b -> F x @[x --> -oo%R] --> -oo%R->
15551555
{within `]-oo, F b], continuous G} ->
15561556
{in `]-oo, F b[, forall x, (0 <= G x)%R} ->
15571557
\int[mu]_(x in `]-oo, F b]) (G x)%:E =

theories/realfun.v

Lines changed: 36 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,12 @@ From mathcomp Require Import normedtype derive sequences real_interval.
2121
(* increasing_fun f == the function f is (strictly) increasing *)
2222
(* decreasing_fun f == the function f is (strictly) decreasing *)
2323
(* *)
24-
(* derivable_oo_continuous_bnd f x y == f is derivable in `]x, y[ and *)
24+
(* derivable_oo_LRcontinuous f x y == f is derivable in `]x, y[ and *)
2525
(* continuous up to the boundary, i.e., *)
2626
(* f @ x^'+ --> f x and f @ y^'- --> f y *)
27-
(* derivable_oy_continuous_bnd f x == f is derivable in `]x, +oo[ and *)
27+
(* derivable_oy_Rcontinuous f x == f is derivable in `]x, +oo[ and *)
2828
(* f @ x^'+ --> f x *)
29-
(* derivable_Nyo_continuous_bnd f x == f is derivable in `]-oo, x[ and *)
29+
(* derivable_Nyo_Lcontinuous f x == f is derivable in `]-oo, x[ and *)
3030
(* f @ x^'- --> f x *)
3131
(* *)
3232
(* itv_partition a b s == s is a partition of the interval `[a, b] *)
@@ -1163,15 +1163,15 @@ End lime_sup_inf.
11631163
#[deprecated(since="mathcomp-analysis 1.3.0", note="use `limf_esup_ge0` instead")]
11641164
Notation lime_sup_ge0 := __deprecated__lime_sup_ge0 (only parsing).
11651165

1166-
Section derivable_oo_continuous_bnd.
1166+
Section derivable_oo_LRcontinuous.
11671167
Context {R : numFieldType} {V : normedModType R}.
11681168

1169-
Definition derivable_oo_continuous_bnd (f : R -> V) (x y : R) :=
1169+
Definition derivable_oo_LRcontinuous (f : R -> V) (x y : R) :=
11701170
[/\ {in `]x, y[, forall x, derivable f x 1},
11711171
f @ x^'+ --> f x & f @ y^'- --> f y].
11721172

1173-
Lemma derivable_oo_continuous_bnd_within (f : R -> V) (x y : R) :
1174-
derivable_oo_continuous_bnd f x y -> {within `[x, y], continuous f}.
1173+
Lemma derivable_oo_LRcontinuous_within (f : R -> V) (x y : R) :
1174+
derivable_oo_LRcontinuous f x y -> {within `[x, y], continuous f}.
11751175
Proof.
11761176
move=> [fxy fxr fyl]; apply/subspace_continuousP => z /=.
11771177
rewrite in_itv/= => /andP[]; rewrite le_eqVlt => /predU1P[<-{z} xy|].
@@ -1186,14 +1186,14 @@ apply/differentiable_continuous; rewrite -derivable1_diffP.
11861186
by apply: fxy; rewrite in_itv/= xz zy.
11871187
Qed.
11881188

1189-
Definition derivable_Nyo_continuous_bnd (f : R -> V) (x : R) :=
1189+
Definition derivable_Nyo_Lcontinuous (f : R -> V) (x : R) :=
11901190
{in `]-oo, x[, forall x, derivable f x 1} /\ f @ x^'- --> f x.
11911191

1192-
Definition derivable_oy_continuous_bnd (f : R -> V) (x : R) :=
1192+
Definition derivable_oy_Rcontinuous (f : R -> V) (x : R) :=
11931193
{in `]x, +oo[, forall x, derivable f x 1} /\ f @ x^'+ --> f x.
11941194

1195-
Lemma derivable_oy_continuous_within_itvcy (f : R -> V) (x : R) :
1196-
derivable_oy_continuous_bnd f x -> {within `[x, +oo[, continuous f}.
1195+
Lemma derivable_oy_Rcontinuous_within_itvcy (f : R -> V) (x : R) :
1196+
derivable_oy_Rcontinuous f x -> {within `[x, +oo[, continuous f}.
11971197
Proof.
11981198
move=> [df cfx]; apply/subspace_continuousP => z /=.
11991199
rewrite in_itv/= => /andP[]; rewrite le_eqVlt => /predU1P[<-{z} _|].
@@ -1204,8 +1204,8 @@ apply/differentiable_continuous; rewrite -derivable1_diffP.
12041204
by apply: df; rewrite in_itv/= xz.
12051205
Qed.
12061206

1207-
Lemma derivable_Noy_continuous_within_itvNyc (f : R -> V) (x : R) :
1208-
derivable_Nyo_continuous_bnd f x -> {within `]-oo, x], continuous f}.
1207+
Lemma derivable_Noy_Lcontinuous_within_itvNyc (f : R -> V) (x : R) :
1208+
derivable_Nyo_Lcontinuous f x -> {within `]-oo, x], continuous f}.
12091209
Proof.
12101210
move=> [df cfx]; apply/subspace_continuousP => z /=.
12111211
rewrite in_itv/=; rewrite le_eqVlt => /predU1P[->{z}|].
@@ -1216,16 +1216,28 @@ apply/differentiable_continuous; rewrite -derivable1_diffP.
12161216
by apply: df; rewrite in_itv.
12171217
Qed.
12181218

1219-
End derivable_oo_continuous_bnd.
1219+
End derivable_oo_LRcontinuous.
1220+
(*#[deprecated(since="mathcomp-analysis 1.14.0", note="use `derivable_oo_LRcontinuous` instead")]
1221+
Notation derivable_oo_continuous_bnd := derivable_oo_LRcontinuous (only parsing).
1222+
#[deprecated(since="mathcomp-analysis 1.14.0", note="use `derivable_oo_LRcontinuous_within` instead")]
1223+
Notation derivable_oo_continuous_bnd_within := derivable_oo_LRcontinuous_within (only parsing).
1224+
#[deprecated(since="mathcomp-analysis 1.14.0", note="use `derivable_Nyo_Lcontinuous` instead")]
1225+
Notation derivable_Nyo_continuous_bnd := derivable_Nyo_Lcontinuous (only parsing).
1226+
#[deprecated(since="mathcomp-analysis 1.14.0", note="use `derivable_oy_Rcontinuous` instead")]
1227+
Notation derivable_oy_continuous_bnd := derivable_oy_Rcontinuous (only parsing).
1228+
#[deprecated(since="mathcomp-analysis 1.14.0", note="use `derivable_oy_Rcontinuous_within_itvcy` instead")]
1229+
Notation derivable_oy_continuous_within_itvcy := derivable_oy_Rcontinuous_within_itvcy (only parsing).
1230+
#[deprecated(since="mathcomp-analysis 1.14.0", note="use `derivable_Noy_Lcontinuous_within_itvNyc` instead")]
1231+
Notation derivable_Noy_continuous_within_itvNyc := derivable_Noy_Lcontinuous_within_itvNyc (only parsing).*)
12201232

12211233
Section derivable_oo_continuousW.
12221234
Context {R : realFieldType} {V : normedModType R}.
12231235

12241236
Lemma derivable_oo_continuousW (a b c d : R) (f : R -> V) :
12251237
c < d ->
12261238
`[c, d] `<=` `[a, b] ->
1227-
derivable_oo_continuous_bnd f a b ->
1228-
derivable_oo_continuous_bnd f c d.
1239+
derivable_oo_LRcontinuous f a b ->
1240+
derivable_oo_LRcontinuous f c d.
12291241
Proof.
12301242
move=> cd cdab [/[dup]df + fa fb].
12311243
have /andP[ac db] : (a <= c) && (d <= b).
@@ -1247,8 +1259,8 @@ Qed.
12471259
Lemma derivable_oy_continuousWoo (a c d : R) (f : R -> V) :
12481260
c < d ->
12491261
a <= c ->
1250-
derivable_oy_continuous_bnd f a ->
1251-
derivable_oo_continuous_bnd f c d.
1262+
derivable_oy_Rcontinuous f a ->
1263+
derivable_oo_LRcontinuous f c d.
12521264
Proof.
12531265
move=> cd ac [df fa]; split.
12541266
- by apply: in1_subset_itv df; exact: subset_itv.
@@ -1265,8 +1277,8 @@ Qed.
12651277

12661278
Lemma derivable_oy_continuousW (a c : R) (f : R -> V) :
12671279
a <= c ->
1268-
derivable_oy_continuous_bnd f a ->
1269-
derivable_oy_continuous_bnd f c.
1280+
derivable_oy_Rcontinuous f a ->
1281+
derivable_oy_Rcontinuous f c.
12701282
Proof.
12711283
move=> ac [df fa]; split.
12721284
- by apply: in1_subset_itv df; exact: subset_itv.
@@ -1280,8 +1292,8 @@ Qed.
12801292
Lemma derivable_Nyo_continuousWoo (b c d : R) (f : R -> V) :
12811293
c < d ->
12821294
d <= b ->
1283-
derivable_Nyo_continuous_bnd f b ->
1284-
derivable_oo_continuous_bnd f c d.
1295+
derivable_Nyo_Lcontinuous f b ->
1296+
derivable_oo_LRcontinuous f c d.
12851297
Proof.
12861298
move=> cd db [df fa]; split.
12871299
- by apply: in1_subset_itv df; exact: subset_itv.
@@ -1298,8 +1310,8 @@ Qed.
12981310

12991311
Lemma derivable_Nyo_continuousW (b d : R) (f : R -> V) :
13001312
d <= b ->
1301-
derivable_Nyo_continuous_bnd f b ->
1302-
derivable_Nyo_continuous_bnd f d.
1313+
derivable_Nyo_Lcontinuous f b ->
1314+
derivable_Nyo_Lcontinuous f d.
13031315
Proof.
13041316
move=> db [df fa]; split.
13051317
- by apply: in1_subset_itv df; exact: subset_itv.

0 commit comments

Comments
 (0)