Skip to content

Commit 0f50886

Browse files
mkerjeanaffeldt-aistCohenCyrilzstone1
authored
tvs structure (#1300)
Co-authored-by: Reynald Affeldt <reynald.affeldt@aist.go.jp> Co-authored-by: Cyril Cohen <cyril.cohen@inria.fr> Co-authored-by: Zachary Stone <zstonex@gmail.com>
1 parent b74a117 commit 0f50886

13 files changed

Lines changed: 551 additions & 42 deletions

CHANGELOG_UNRELEASED.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,13 +144,35 @@
144144
`subspace_valL_continuousP'`, `subspace_valL_continuousP`, `sigT_of_setXK`,
145145
`setX_of_sigTK`, `setX_of_sigT_continuous`, and `sigT_of_setX_continuous`.
146146

147+
- in `tvs.v`:
148+
+ HB.structure `Tvs`
149+
+ HB.factory `TopologicalLmod_isTvs`
150+
+ lemma `nbhs0N`
151+
+ lemma `nbhsN`
152+
+ lemma `nbhsT`
153+
+ lemma `nbhsB`
154+
+ lemma `nbhs0Z`
155+
+ lemma `nbhZ`
156+
+ HB.Instance of a Tvs od R^o
157+
+ HB.Instance of a Tvs on a product of Tvs
158+
147159
### Changed
148160

161+
- in normedtype.v
162+
+ HB structure `normedModule` now depends on a Tvs
163+
instead of a Lmodule
164+
+ Factory `PseudoMetricNormedZmod_Lmodule_isNormedModule` becomes
165+
`PseudoMetricNormedZmod_Tvs_isNormedModule`
166+
+ Section `prod_NormedModule` now depends on a `numFieldType`
167+
149168
### Renamed
150169

151170
- in `normedtype.v`:
152171
+ `near_in_itv` -> `near_in_itvoo`
153172

173+
- in normedtype.v
174+
+ Section `regular_topology` to `standard_topology`
175+
154176
### Generalized
155177

156178
- in `lebesgue_integral.v`:

_CoqProject

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ theories/separation_axioms.v
6868
theories/function_spaces.v
6969
theories/ereal.v
7070
theories/cantor.v
71+
theories/tvs.v
7172
theories/normedtype.v
7273
theories/realfun.v
7374
theories/sequences.v

theories/Make

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ homotopy_theory/wedge_sigT.v
3535
separation_axioms.v
3636
function_spaces.v
3737
cantor.v
38+
tvs.v
3839
normedtype.v
3940
realfun.v
4041
sequences.v

theories/charge.v

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ Unset Strict Implicit.
9292
Unset Printing Implicit Defensive.
9393

9494
Import Order.TTheory GRing.Theory Num.Def Num.Theory.
95-
Import numFieldTopology.Exports.
95+
Import numFieldNormedType.Exports.
9696

9797
Local Open Scope ring_scope.
9898
Local Open Scope classical_set_scope.

theories/derive.v

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
From HB Require Import structures.
33
From mathcomp Require Import all_ssreflect ssralg ssrnum matrix interval.
44
From mathcomp Require Import mathcomp_extra boolp classical_sets functions.
5-
From mathcomp Require Import reals signed topology prodnormedzmodule normedtype.
6-
From mathcomp Require Import landau forms.
5+
From mathcomp Require Import reals signed topology prodnormedzmodule tvs.
6+
From mathcomp Require Import normedtype landau forms.
77

88
(**md**************************************************************************)
99
(* # Differentiation *)
@@ -788,13 +788,14 @@ by rewrite prod_normE/= !normrZ !normfV !normr_id !mulVf ?gt_eqF// maxxx ltr1n.
788788
Qed.
789789

790790
Lemma bilinear_eqo (U V' W' : normedModType R) (f : {bilinear U -> V' -> W'}) :
791-
continuous (fun p => f p.1 p.2) -> (fun p => f p.1 p.2) =o_ 0 id.
791+
continuous (fun p => f p.1 p.2) -> (fun p => f p.1 p.2) =o_ (0 : U * V') id.
792792
Proof.
793793
move=> fc; have [_ /posnumP[k] fschwarz] := bilinear_schwarz fc.
794794
apply/eqoP=> _ /posnumP[e]; near=> x; rewrite (le_trans (fschwarz _ _))//.
795795
rewrite ler_pM ?pmulr_rge0 //; last by rewrite num_le_max /= lexx orbT.
796796
rewrite -ler_pdivlMl //.
797-
suff : `|x| <= k%:num ^-1 * e%:num by apply: le_trans; rewrite num_le_max /= lexx.
797+
suff : `|x| <= k%:num ^-1 * e%:num.
798+
by apply: le_trans; rewrite num_le_max /= lexx.
798799
near: x; rewrite !near_simpl; apply/nbhs_le_nbhs_norm.
799800
by exists (k%:num ^-1 * e%:num) => //= ? /=; rewrite /= distrC subr0 => /ltW.
800801
Unshelve. all: by end_near. Qed.
@@ -803,7 +804,7 @@ Fact dbilin (U V' W' : normedModType R) (f : {bilinear U -> V' -> W'}) p :
803804
continuous (fun p => f p.1 p.2) ->
804805
continuous (fun q => (f p.1 q.2 + f q.1 p.2)) /\
805806
(fun q => f q.1 q.2) \o shift p = cst (f p.1 p.2) +
806-
(fun q => f p.1 q.2 + f q.1 p.2) +o_ 0 id.
807+
(fun q => f p.1 q.2 + f q.1 p.2) +o_ (0 : U * V') id.
807808
Proof.
808809
move=> fc; split=> [q|].
809810
by apply: (@continuousD _ _ _ (fun q => f p.1 q.2) (fun q => f q.1 p.2));

theories/exp.v

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ From mathcomp Require Import all_ssreflect ssralg ssrint ssrnum matrix.
33
From mathcomp Require Import interval rat.
44
From mathcomp Require Import boolp classical_sets functions.
55
From mathcomp Require Import mathcomp_extra reals ereal signed.
6-
From mathcomp Require Import topology normedtype landau sequences derive.
6+
From mathcomp Require Import topology tvs normedtype landau sequences derive.
77
From mathcomp Require Import realfun itv convex.
88

99
(**md**************************************************************************)
@@ -228,7 +228,7 @@ suff Cc : limn (h^-1 *: (series (shx h - sx))) @[h --> 0^'] --> limn (series s).
228228
apply: cvg_zero => /=.
229229
suff Cc : limn
230230
(series (fun n => c n * (((h + x) ^+ n - x ^+ n) / h - n%:R * x ^+ n.-1)))
231-
@[h --> 0^'] --> (0 : R).
231+
@[h --> 0^'] --> 0.
232232
apply: cvg_sub0 Cc.
233233
apply/cvgrPdist_lt => eps eps_gt0 /=.
234234
near=> h; rewrite sub0r normrN /=.

theories/ftc.v

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ From HB Require Import structures.
33
From mathcomp Require Import all_ssreflect ssralg ssrnum ssrint interval finmap.
44
From mathcomp Require Import mathcomp_extra boolp classical_sets functions.
55
From mathcomp Require Import cardinality fsbigop signed reals ereal.
6-
From mathcomp Require Import topology normedtype sequences real_interval.
6+
From mathcomp Require Import topology tvs normedtype sequences real_interval.
77
From mathcomp Require Import esum measure lebesgue_measure numfun realfun.
88
From mathcomp Require Import lebesgue_integral derive charge.
99

@@ -24,7 +24,7 @@ Set Implicit Arguments.
2424
Unset Strict Implicit.
2525
Unset Printing Implicit Defensive.
2626
Import Order.TTheory GRing.Theory Num.Def Num.Theory.
27-
Import numFieldTopology.Exports.
27+
Import numFieldNormedType.Exports.
2828

2929
Local Open Scope classical_set_scope.
3030
Local Open Scope ring_scope.
@@ -358,7 +358,7 @@ Proof.
358358
move=> ab intf; pose fab := f \_ `[a, b].
359359
have intfab : mu.-integrable `[a, b] (EFin \o fab).
360360
by rewrite -restrict_EFin; apply/integrable_restrict => //=; rewrite setIidr.
361-
apply/cvgrPdist_le => /= e e0; rewrite near_simpl; near=> x.
361+
apply/cvgrPdist_le => /= e e0; near=> x.
362362
rewrite {1}/int /parameterized_integral sub0r normrN.
363363
have [|xa] := leP a x.
364364
move=> ax; apply/ltW; move: ax.
@@ -423,7 +423,6 @@ have intfab : mu.-integrable `[a, b] (EFin \o fab).
423423
by rewrite -restrict_EFin; apply/integrable_restrict => //=; rewrite setIidr.
424424
rewrite /int /parameterized_integral => z; rewrite in_itv/= => /andP[az zb].
425425
apply/cvgrPdist_le => /= e e0.
426-
rewrite near_simpl.
427426
have [d [d0 /= {}int_normr_cont]] := int_normr_cont _ e0.
428427
near=> x.
429428
have [xz|xz|->] := ltgtP x z; last by rewrite subrr normr0 ltW.
@@ -501,7 +500,7 @@ Corollary continuous_FTC2 f F a b : (a < b)%R ->
501500
Proof.
502501
move=> ab cf dF F'f.
503502
pose fab := f \_ `[a, b].
504-
pose G x : R := (\int[mu]_(t in `[a, x]) fab t)%R.
503+
pose G x := (\int[mu]_(t in `[a, x]) fab t)%R.
505504
have iabf : mu.-integrable `[a, b] (EFin \o f).
506505
by apply: continuous_compact_integrable => //; exact: segment_compact.
507506
have G'f : {in `]a, b[, forall x, G^`() x = fab x /\ derivable G x 1}.
@@ -730,7 +729,7 @@ Lemma increasing_cvg_at_left_comp F G a b (l : R) : (a < b)%R ->
730729
Proof.
731730
move=> ab incrF cFb GFb.
732731
apply/cvgrPdist_le => /= e e0.
733-
have/cvgrPdist_le /(_ e e0) [d /= d0 {}GFb] := GFb.
732+
have /cvgrPdist_le /(_ e e0) [d /= d0 {}GFb] := GFb.
734733
have := cvg_at_left_within cFb.
735734
move/cvgrPdist_lt/(_ _ d0) => [d' /= d'0 {}cFb].
736735
near=> t.
@@ -748,7 +747,7 @@ Lemma decreasing_cvg_at_right_comp F G a b (l : R) : (a < b)%R ->
748747
Proof.
749748
move=> ab decrF cFa GFa.
750749
apply/cvgrPdist_le => /= e e0.
751-
have/cvgrPdist_le /(_ e e0) [d' /= d'0 {}GFa] := GFa.
750+
have /cvgrPdist_le /(_ e e0) [d' /= d'0 {}GFa] := GFa.
752751
have := cvg_at_right_within cFa.
753752
move/cvgrPdist_lt/(_ _ d'0) => [d'' /= d''0 {}cFa].
754753
near=> t.
@@ -766,7 +765,7 @@ Lemma decreasing_cvg_at_left_comp F G a b (l : R) : (a < b)%R ->
766765
Proof.
767766
move=> ab decrF cFb GFb.
768767
apply/cvgrPdist_le => /= e e0.
769-
have/cvgrPdist_le /(_ e e0) [d' /= d'0 {}GFb] := GFb.
768+
have /cvgrPdist_le /(_ e e0) [d' /= d'0 {}GFb] := GFb.
770769
have := cvg_at_left_within cFb. (* different point from gt0 version *)
771770
move/cvgrPdist_lt/(_ _ d'0) => [d'' /= d''0 {}cFb].
772771
near=> t.
@@ -863,7 +862,7 @@ rewrite oppeD//= -(continuous_FTC2 ab _ _ DPGFE); last 2 first.
863862
exact: decreasing_image_oo.
864863
* have : -%R F^`() @ x --> (- f x)%R.
865864
by rewrite -fE//; apply: cvgN; exact: cF'.
866-
apply: cvg_trans; apply: near_eq_cvg; rewrite near_simpl.
865+
apply: cvg_trans; apply: near_eq_cvg.
867866
apply: (@open_in_nearW _ _ `]a, b[) ; last by rewrite inE.
868867
exact: interval_open.
869868
by move=> z; rewrite inE/= => zab; rewrite fctE fE.
@@ -978,7 +977,7 @@ rewrite (@integration_by_substitution_decreasing (- F)%R); first last.
978977
by case: Fab => + _ _; exact.
979978
rewrite -derive1E.
980979
have /cvgN := cF' _ xab; apply: cvg_trans; apply: near_eq_cvg.
981-
rewrite near_simpl; near=> y; rewrite fctE !derive1E deriveN//.
980+
near=> y; rewrite fctE !derive1E deriveN//.
982981
by case: Fab => + _ _; apply; near: y; exact: near_in_itvoo.
983982
- by move=> x y xab yab yx; rewrite ltrN2 incrF.
984983
- by [].

theories/lebesgue_integral.v

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ From mathcomp Require Import all_ssreflect ssralg ssrnum ssrint interval finmap.
44
From mathcomp Require Import archimedean.
55
From mathcomp Require Import boolp classical_sets functions.
66
From mathcomp Require Import cardinality fsbigop signed reals ereal topology.
7-
From mathcomp Require Import normedtype sequences real_interval esum measure.
7+
From mathcomp Require Import tvs normedtype sequences real_interval esum measure.
88
From mathcomp Require Import lebesgue_measure numfun realfun function_spaces.
99

1010
(**md**************************************************************************)
@@ -96,7 +96,7 @@ Set Implicit Arguments.
9696
Unset Strict Implicit.
9797
Unset Printing Implicit Defensive.
9898
Import Order.TTheory GRing.Theory Num.Def Num.Theory.
99-
Import numFieldTopology.Exports.
99+
Import numFieldNormedType.Exports.
100100
From mathcomp Require Import mathcomp_extra.
101101

102102
Local Open Scope classical_set_scope.
@@ -1775,7 +1775,7 @@ Qed.
17751775
End approximation_sfun.
17761776

17771777
Section lusin.
1778-
Hint Extern 0 (hausdorff_space _) => (exact: Rhausdorff ) : core.
1778+
Hint Extern 0 (hausdorff_space _) => (exact: Rhausdorff) : core.
17791779
Local Open Scope ereal_scope.
17801780
Context (rT : realType) (A : set rT).
17811781
Let mu := [the measure _ _ of @lebesgue_measure rT].

theories/lebesgue_measure.v

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ From mathcomp Require Import all_ssreflect ssralg ssrnum ssrint interval.
33
From mathcomp Require Import finmap fingroup perm rat archimedean.
44
From mathcomp Require Import mathcomp_extra boolp classical_sets functions.
55
From mathcomp Require Import cardinality fsbigop reals ereal signed.
6-
From mathcomp Require Import topology numfun normedtype function_spaces.
6+
From mathcomp Require Import topology numfun tvs normedtype function_spaces.
77
From HB Require Import structures.
88
From mathcomp Require Import sequences esum measure real_interval realfun exp.
99
From mathcomp Require Export lebesgue_stieltjes_measure.
@@ -61,7 +61,7 @@ Set Implicit Arguments.
6161
Unset Strict Implicit.
6262
Unset Printing Implicit Defensive.
6363
Import Order.TTheory GRing.Theory Num.Def Num.Theory.
64-
Import numFieldTopology.Exports.
64+
Import numFieldNormedType.Exports.
6565

6666
Local Open Scope classical_set_scope.
6767
Local Open Scope ring_scope.
@@ -1709,7 +1709,7 @@ Lemma ae_pointwise_almost_uniform
17091709
Proof.
17101710
move=> mf mg mA Afin [C [mC C0 nC] epspos].
17111711
have [B [mB Beps Bunif]] : exists B, [/\ d.-measurable B, mu B < eps%:E &
1712-
{uniform (A `\` C) `\` B, f @ \oo --> g}].
1712+
{uniform (A `\` C) `\` B, f @\oo --> g}].
17131713
apply: pointwise_almost_uniform => //.
17141714
- by move=> n; apply : (measurable_funS mA _ (mf n)) => ? [].
17151715
- by apply: measurableI => //; exact: measurableC.

0 commit comments

Comments
 (0)