Skip to content

Commit ebf1870

Browse files
committed
feat: make topologicalClosure a ClosureOperator
1 parent 032b054 commit ebf1870

3 files changed

Lines changed: 17 additions & 13 deletions

File tree

Mathlib/Analysis/Convex/Cone/InnerDual.lean

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -117,12 +117,12 @@ theorem relative_hyperplane_separation {C : ProperCone ℝ E} {f : E →L[ℝ] F
117117
mp := by
118118
-- suppose `b ∈ C.map f`
119119
simp only [map, ClosedSubmodule.map, Submodule.closure, Submodule.topologicalClosure,
120-
AddSubmonoid.topologicalClosure, Submodule.coe_toAddSubmonoid, Submodule.map_coe,
121-
ContinuousLinearMap.coe_coe,
122-
ContinuousLinearMap.coe_restrictScalars', ClosedSubmodule.coe_toSubmodule,
123-
ClosedSubmodule.mem_mk, Submodule.mem_mk, AddSubmonoid.mem_mk, AddSubsemigroup.mem_mk,
124-
mem_closure_iff_seq_limit, mem_image, SetLike.mem_coe, Classical.skolem, forall_and,
125-
mem_innerDual, ContinuousLinearMap.adjoint_inner_right, forall_exists_index, and_imp]
120+
AddSubmonoid.topologicalClosure, ClosureOperator.mk₂_apply, Submodule.coe_toAddSubmonoid,
121+
ContinuousLinearMap.coe_restrictScalars, Submodule.map_coe, coe_restrictScalars,
122+
ContinuousLinearMap.coe_coe, ClosedSubmodule.coe_toSubmodule, ClosedSubmodule.mem_mk,
123+
Submodule.mem_mk, AddSubmonoid.mem_mk, AddSubsemigroup.mem_mk, mem_closure_iff_seq_limit,
124+
mem_image, SetLike.mem_coe, Classical.skolem, forall_and, mem_innerDual,
125+
ContinuousLinearMap.adjoint_inner_right, forall_exists_index, and_imp]
126126
-- there is a sequence `seq : ℕ → F` in the image of `f` that converges to `b`
127127
rintro x seq hmem hx htends y hinner
128128
obtain rfl : f ∘ seq = x := funext hx

Mathlib/Topology/Algebra/Module/Basic.lean

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -154,9 +154,10 @@ variable [ContinuousAdd M]
154154

155155
/-- The (topological-space) closure of a submodule of a topological `R`-module `M` is itself
156156
a submodule. -/
157-
def Submodule.topologicalClosure (s : Submodule R M) : Submodule R M :=
158-
{ s.toAddSubmonoid.topologicalClosure with
159-
smul_mem' := s.mapsTo_smul_closure }
157+
def Submodule.topologicalClosure : ClosureOperator (Submodule R M) := .mk₂
158+
(fun s ↦ { s.toAddSubmonoid.topologicalClosure with smul_mem' := s.mapsTo_smul_closure })
159+
(fun _ ↦ subset_closure)
160+
(fun _ _ h ↦ closure_minimal h isClosed_closure)
160161

161162
@[simp, norm_cast]
162163
theorem Submodule.topologicalClosure_coe (s : Submodule R M) :

Mathlib/Topology/Algebra/Monoid.lean

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ public import Mathlib.Order.Filter.Pointwise
1313
public import Mathlib.Topology.Algebra.MulAction
1414
public import Mathlib.Topology.ContinuousMap.Basic
1515
public import Mathlib.Topology.Algebra.Monoid.Defs
16+
public import Mathlib.Order.Closure
1617

1718
/-!
1819
# Theory of topological monoids
@@ -691,10 +692,12 @@ theorem Submonoid.top_closure_mul_self_eq (s : Submonoid M) :
691692
itself a submonoid. -/
692693
@[to_additive /-- The (topological-space) closure of an additive submonoid of a space `M` with
693694
`ContinuousAdd` is itself an additive submonoid. -/]
694-
def Submonoid.topologicalClosure (s : Submonoid M) : Submonoid M where
695-
carrier := _root_.closure (s : Set M)
696-
one_mem' := _root_.subset_closure s.one_mem
697-
mul_mem' ha hb := s.top_closure_mul_self_subset ⟨_, ha, _, hb, rfl⟩
695+
def Submonoid.topologicalClosure : ClosureOperator (Submonoid M) := .mk₂
696+
(fun s ↦ { carrier := _root_.closure s
697+
one_mem' := _root_.subset_closure s.one_mem
698+
mul_mem' ha hb := s.top_closure_mul_self_subset ⟨_, ha, _, hb, rfl⟩})
699+
(fun _ ↦ _root_.subset_closure)
700+
(fun _ _ h ↦ closure_minimal h isClosed_closure)
698701

699702
@[to_additive]
700703
theorem Submonoid.coe_topologicalClosure (s : Submonoid M) :

0 commit comments

Comments
 (0)