Skip to content

Commit bf28bf4

Browse files
committed
feat(Analysis.LocallyConvex.WithSeminorms): WithSeminorms for infimum of topologies (#5816)
1 parent 5149cfa commit bf28bf4

File tree

1 file changed

+20
-8
lines changed

1 file changed

+20
-8
lines changed

Mathlib/Analysis/LocallyConvex/WithSeminorms.lean

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -270,8 +270,8 @@ section Topology
270270
variable [NormedField 𝕜] [AddCommGroup E] [Module 𝕜 E] [Nonempty ι]
271271

272272
/-- The proposition that the topology of `E` is induced by a family of seminorms `p`. -/
273-
structure WithSeminorms (p : SeminormFamily 𝕜 E ι) [t : TopologicalSpace E] : Prop where
274-
topology_eq_withSeminorms : t = p.moduleFilterBasis.topology
273+
structure WithSeminorms (p : SeminormFamily 𝕜 E ι) [topology : TopologicalSpace E] : Prop where
274+
topology_eq_withSeminorms : topology = p.moduleFilterBasis.topology
275275
#align with_seminorms WithSeminorms
276276

277277
theorem WithSeminorms.withSeminorms_eq {p : SeminormFamily 𝕜 E ι} [t : TopologicalSpace E]
@@ -448,16 +448,15 @@ theorem WithSeminorms.continuous_seminorm [NontriviallyNormedField 𝕝] [Module
448448
each seminorm individually. We express this as a characterization of `WithSeminorms p`. -/
449449
theorem SeminormFamily.withSeminorms_iff_topologicalSpace_eq_iInf (p : SeminormFamily 𝕜 E ι) :
450450
WithSeminorms p ↔
451-
t = ⨅ i,
452-
(p i).toAddGroupSeminorm.toSeminormedAddCommGroup.toUniformSpace.toTopologicalSpace := by
451+
t = ⨅ i, (p i).toSeminormedAddCommGroup.toUniformSpace.toTopologicalSpace := by
453452
rw [p.withSeminorms_iff_nhds_eq_iInf,
454453
TopologicalAddGroup.ext_iff inferInstance (topologicalAddGroup_iInf fun i => inferInstance),
455454
nhds_iInf]
456455
-- Porting note: next three lines was `congrm (_ = ⨅ i, _)`
457456
refine Eq.to_iff ?_
458457
congr
459458
funext i
460-
exact @comap_norm_nhds_zero _ (p i).toAddGroupSeminorm.toSeminormedAddGroup
459+
exact @comap_norm_nhds_zero _ (p i).toSeminormedAddGroup
461460
#align seminorm_family.with_seminorms_iff_topological_space_eq_infi SeminormFamily.withSeminorms_iff_topologicalSpace_eq_iInf
462461

463462
end TopologicalSpace
@@ -467,8 +466,7 @@ induced by each seminorm individually. We express this as a characterization of
467466
`WithSeminorms p`. -/
468467
theorem SeminormFamily.withSeminorms_iff_uniformSpace_eq_iInf [u : UniformSpace E]
469468
[UniformAddGroup E] (p : SeminormFamily 𝕜 E ι) :
470-
WithSeminorms p ↔
471-
u = ⨅ i, (p i).toAddGroupSeminorm.toSeminormedAddCommGroup.toUniformSpace := by
469+
WithSeminorms p ↔ u = ⨅ i, (p i).toSeminormedAddCommGroup.toUniformSpace := by
472470
rw [p.withSeminorms_iff_nhds_eq_iInf,
473471
UniformAddGroup.ext_iff inferInstance (uniformAddGroup_iInf fun i => inferInstance),
474472
toTopologicalSpace_iInf, nhds_iInf]
@@ -798,7 +796,7 @@ variable [TopologicalSpace F] [TopologicalAddGroup F]
798796

799797
theorem LinearMap.withSeminorms_induced [hι : Nonempty ι] {q : SeminormFamily 𝕜₂ F ι}
800798
(hq : WithSeminorms q) (f : E →ₛₗ[σ₁₂] F) :
801-
@WithSeminorms 𝕜 E ι _ _ _ _ (q.comp f) (induced f inferInstance) := by
799+
WithSeminorms (topology := induced f inferInstance) (q.comp f) := by
802800
letI : TopologicalSpace E := induced f inferInstance
803801
letI : TopologicalAddGroup E := topologicalAddGroup_induced f
804802
rw [(q.comp f).withSeminorms_iff_nhds_eq_iInf, nhds_induced, map_zero,
@@ -813,6 +811,20 @@ theorem Inducing.withSeminorms [hι : Nonempty ι] {q : SeminormFamily 𝕜₂ F
813811
exact f.withSeminorms_induced hq
814812
#align inducing.with_seminorms Inducing.withSeminorms
815813

814+
/-- (Disjoint) union of seminorm families. -/
815+
protected def SeminormFamily.sigma {κ : ι → Type _} (p : (i : ι) → SeminormFamily 𝕜 E (κ i)) :
816+
SeminormFamily 𝕜 E ((i : ι) × κ i) :=
817+
fun ⟨i, k⟩ => p i k
818+
819+
theorem withSeminorms_iInf {κ : ι → Type _} [Nonempty ((i : ι) × κ i)] [∀ i, Nonempty (κ i)]
820+
{p : (i : ι) → SeminormFamily 𝕜 E (κ i)} {t : ι → TopologicalSpace E}
821+
[∀ i, @TopologicalAddGroup E (t i) _] (hp : ∀ i, WithSeminorms (topology := t i) (p i)) :
822+
WithSeminorms (topology := ⨅ i, t i) (SeminormFamily.sigma p) := by
823+
haveI : @TopologicalAddGroup E (⨅ i, t i) _ := topologicalAddGroup_iInf (fun i ↦ inferInstance)
824+
simp_rw [@SeminormFamily.withSeminorms_iff_topologicalSpace_eq_iInf _ _ _ _ _ _ _ (_)] at hp ⊢
825+
rw [iInf_sigma]
826+
exact iInf_congr hp
827+
816828
end TopologicalConstructions
817829

818830
section TopologicalProperties

0 commit comments

Comments
 (0)