Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(Topology/Algebra/Field): ContinuousSMul for intermediate fields #18142

Open
wants to merge 13 commits into
base: master
Choose a base branch
from
1 change: 1 addition & 0 deletions Mathlib.lean
Original file line number Diff line number Diff line change
Expand Up @@ -4621,6 +4621,7 @@ import Mathlib.Topology.Algebra.InfiniteSum.Nonarchimedean
import Mathlib.Topology.Algebra.InfiniteSum.Order
import Mathlib.Topology.Algebra.InfiniteSum.Real
import Mathlib.Topology.Algebra.InfiniteSum.Ring
import Mathlib.Topology.Algebra.IntermediateField
import Mathlib.Topology.Algebra.Localization
import Mathlib.Topology.Algebra.Module.Alternating.Basic
import Mathlib.Topology.Algebra.Module.Alternating.Topology
Expand Down
4 changes: 4 additions & 0 deletions Mathlib/Topology/Algebra/Algebra.lean
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,10 @@ theorem continuousSMul_of_algebraMap [TopologicalSemiring A] (h : Continuous (al
ContinuousSMul R A :=
⟨(continuous_algebraMap_iff_smul R A).1 h⟩

instance Subalgebra.continuousSMul (S : Subalgebra R A) (X) [TopologicalSpace X] [MulAction A X]
[ContinuousSMul A X] : ContinuousSMul S X :=
Subsemiring.continuousSMul S.toSubsemiring X

section
variable [ContinuousSMul R A]

Expand Down
10 changes: 10 additions & 0 deletions Mathlib/Topology/Algebra/Field.lean
Original file line number Diff line number Diff line change
Expand Up @@ -149,3 +149,13 @@ theorem IsPreconnected.eq_of_sq_eq [Field 𝕜] [HasContinuousInv₀ 𝕜] [Cont
(iff_of_eq (iff_false _)).2 (hg_ne _)] at hy' ⊢ <;> assumption

end Preconnected

section ContinuousSMul

variable {F : Type*} [DivisionRing F] [TopologicalSpace F] [TopologicalRing F]
(X : Type*) [TopologicalSpace X] [MulAction F X] [ContinuousSMul F X]

instance Subfield.continuousSMul (M : Subfield F) : ContinuousSMul M X :=
Subring.continuousSMul M.toSubring X

end ContinuousSMul
27 changes: 27 additions & 0 deletions Mathlib/Topology/Algebra/IntermediateField.lean
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
/-
Copyright (c) 2024 Jiedong Jiang. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Jiedong Jiang
-/
import Mathlib.FieldTheory.Adjoin
import Mathlib.Topology.Algebra.Field

/-!
# Topology on intermediate fields

In this file we define the instances related topology on intermediate fields. The topology is
already defined in earlier files as the subspace topology.
-/

variable {K L : Type*} [Field K] [Field L] [Algebra K L]
[TopologicalSpace L] [TopologicalRing L]

variable (X : Type*) [TopologicalSpace X] [MulAction L X] [ContinuousSMul L X]

instance IntermediateField.continuousSMul (M : IntermediateField K L) : ContinuousSMul M X :=
M.toSubfield.continuousSMul X

instance IntermediateField.botContinuousSMul (M : IntermediateField K L) :
ContinuousSMul (⊥ : IntermediateField K L) M :=
Inducing.continuousSMul (X := L) (N := (⊥ : IntermediateField K L)) (Y := M)
(M := (⊥ : IntermediateField K L)) inducing_subtype_val continuous_id rfl
8 changes: 8 additions & 0 deletions Mathlib/Topology/Algebra/Ring/Basic.lean
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,10 @@ namespace Subsemiring
instance topologicalSemiring (S : Subsemiring α) : TopologicalSemiring S :=
{ S.toSubmonoid.continuousMul, S.toAddSubmonoid.continuousAdd with }

instance continuousSMul (s : Subsemiring α) (X) [TopologicalSpace X] [MulAction α X]
[ContinuousSMul α X] : ContinuousSMul s X :=
Submonoid.continuousSMul

end Subsemiring

/-- The (topological-space) closure of a subsemiring of a topological semiring is
Expand Down Expand Up @@ -234,6 +238,10 @@ variable [Ring α] [TopologicalRing α]
instance Subring.instTopologicalRing (S : Subring α) : TopologicalRing S :=
{ S.toSubmonoid.continuousMul, inferInstanceAs (TopologicalAddGroup S.toAddSubgroup) with }

instance Subring.continuousSMul (s : Subring α) (X) [TopologicalSpace X] [MulAction α X]
[ContinuousSMul α X] : ContinuousSMul s X :=
Subsemiring.continuousSMul s.toSubsemiring X

/-- The (topological-space) closure of a subring of a topological ring is
itself a subring. -/
def Subring.topologicalClosure (S : Subring α) : Subring α :=
Expand Down