Definitions/Def_Mathlib_Topology_Algebra_ContinuousMonoidHom.lean
Continuous additive and multiplicative equivalences: products, quotients, units
This module collects constructions of continuous isomorphisms for topological groups and monoids. ContinuousAddEquiv.toIntContinuousLinearEquiv turns a continuous additive isomorphism e : M \simeq M_2 of topological abelian groups into a continuous \mathbb{Z}-linear equivalence M \simeq_{L[\mathbb{Z}]} M_2: the underlying map is e viewed as \mathbb{Z}-linear, with continuity of e and of e^{-1} as the two continuity fields. ContinuousAddEquiv.quotientPi concerns a finite index type \iota and a family of topological abelian groups G_i (each a topological additive group) together with subgroups p_i \le G_i; it exhibits a continuous additive isomorphism \bigl(\prod_i G_i\bigr)/\prod_i p_i \simeq \prod_i (G_i/p_i), where the subgroup of the product is AddSubgroup.pi Set.univ p. It is obtained from the imported Submodule.quotientPiContinuousLinearEquiv, which gives the corresponding R-linear homeomorphism for submodules p_i \le G_i over a commutative ring R (the companion Submodule.Quotient.continuousLinearEquiv transports a continuous linear equivalence G \simeq H carrying G' onto H' to a continuous linear equivalence G/G' \simeq H/H'), applied to the \mathbb{Z}-submodules underlying the p_i.
The remaining declarations are multiplicative, each with an additive counterpart generated by to_additive. For a family M_j of topological magmas indexed by a type with a unique element, ContinuousMulEquiv.piUnique is evaluation at the distinguished index, a continuous multiplicative isomorphism \prod_j M_j \simeq M_{\mathrm{default}}. For a decidable predicate p on \iota and topological magmas Y_i, ContinuousMulEquiv.piEquivPiSubtypeProd upgrades the standard homeomorphism \prod_i Y_i \simeq \bigl(\prod_{p(i)} Y_i\bigr) \times \bigl(\prod_{\neg p(i)} Y_i\bigr) to a multiplicative one. ContinuousMulEquiv.units_map sends a continuous multiplicative isomorphism f : M \simeq N of topological monoids to the induced continuous isomorphism M^\times \simeq N^\times of unit groups. Finally, ContinuousMulEquiv.coe_toHomeomorph records that the underlying homeomorphism of such an f has the same underlying function as f.
Relation to Mathlib
These are additions to Mathlib's ContinuousMulEquiv/ContinuousAddEquiv and continuous-linear-equivalence API: continuous refinements of the existing Mathlib equivalences MulEquiv.piUnique, Homeomorph.piEquivPiSubtypeProd, Units.mapEquiv, AddMonoidHom.toIntLinearMap and Submodule.quotientPi, rather than notions specific to this project.
Where it is used
The constructions are general-purpose tools of topological algebra, used when products of topological groups and their quotients by componentwise subgroups have to be compared, and when an index set is split according to a predicate.
English text generated automatically from the Lean source; the Lean statement is authoritative.
- 51 lines
- 6 declarations
- used in the statements of 0 theorems and imported by 0 proofs
- imports 1 definition modules
Source file: Definitions/Def_Mathlib_Topology_Algebra_ContinuousMonoidHom.lean
Declarations
- def
ContinuousAddEquiv.toIntContinuousLinearEquiv - def
ContinuousAddEquiv.quotientPi - def
ContinuousMulEquiv.piUnique - def
ContinuousMulEquiv.piEquivPiSubtypeProd - def
ContinuousMulEquiv.units_map - theorem
ContinuousMulEquiv.coe_toHomeomorph
Source
import Mathlib import Definitions.Def_Mathlib_Topology_Algebra_Module_Quotient section def ContinuousAddEquiv.toIntContinuousLinearEquiv {M M₂ : Type*} [AddCommGroup M] [TopologicalSpace M] [AddCommGroup M₂] [TopologicalSpace M₂] (e : M ≃ₜ+ M₂) : M ≃L[ℤ] M₂ where __ := e.toIntLinearEquiv continuous_toFun := e.continuous continuous_invFun := e.continuous_invFun def ContinuousAddEquiv.quotientPi {ι : Type*} {G : ι → Type*} [(i : ι) → AddCommGroup (G i)] [(i : ι) → TopologicalSpace (G i)] [(i : ι) → IsTopologicalAddGroup (G i)] [Fintype ι] (p : (i : ι) → AddSubgroup (G i)) [DecidableEq ι] : ((i : ι) → G i) ⧸ AddSubgroup.pi (_root_.Set.univ) p ≃ₜ+ ((i : ι) → G i ⧸ p i) := (Submodule.quotientPiContinuousLinearEquiv (fun (i : ι) => AddSubgroup.toIntSubmodule (p i))).toContinuousAddEquiv @[to_additive ] def ContinuousMulEquiv.piUnique {ι : Type*} (M : ι → Type*) [(j : ι) → Mul (M j)] [(j : ι) → TopologicalSpace (M j)] [Unique ι] : ((j : ι) → M j) ≃ₜ* M default where __ := MulEquiv.piUnique M continuous_toFun := continuous_apply default continuous_invFun := by simpa [continuous_pi_iff, Unique.forall_iff] using continuous_id' @[to_additive piEquivPiSubtypeProd ] def ContinuousMulEquiv.piEquivPiSubtypeProd {ι : Type*} (p : ι → Prop) (Y : ι → Type*) [(i : ι) → TopologicalSpace (Y i)] [(i : ι) → Mul (Y i)] [DecidablePred p] : ((i : ι) → Y i) ≃ₜ* ((i : { x : ι // p x }) → Y i) × ((i : { x : ι // ¬p x }) → Y i) := {Homeomorph.piEquivPiSubtypeProd p Y with map_mul' _ _ := rfl} def ContinuousMulEquiv.units_map {M N : Type*} [TopologicalSpace M] [TopologicalSpace N] [Monoid M] [Monoid N] (f : M ≃ₜ* N) : Mˣ ≃ₜ* Nˣ := { __ := Units.mapEquiv f continuous_toFun := by apply Continuous.units_map _ f.continuous_toFun continuous_invFun := by apply Continuous.units_map _ f.continuous_invFun } @[to_additive] theorem ContinuousMulEquiv.coe_toHomeomorph {M N : Type*} [TopologicalSpace M] [TopologicalSpace N] [CommMonoid M] [CommMonoid N] (f : M ≃ₜ* N) : f.toHomeomorph = ⇑f := rfl
Statements phrased using this module (0)
No statement module imports it directly (it is used through other definition modules or by proofs).