|
| 1 | +/- |
| 2 | +Copyright (c) 2025 Imperial College London. All rights reserved. |
| 3 | +Released under Apache 2.0 license as described in the file LICENSE. |
| 4 | +Authors: Imperial College London FLT Project Contributors |
| 5 | +-/ |
| 6 | +import Mathlib.Algebra.Group.Pi.Units |
| 7 | +import Mathlib.Algebra.Group.Submonoid.Units |
| 8 | +import Mathlib.Topology.Algebra.Constructions |
| 9 | +import Mathlib.Topology.Algebra.ContinuousMonoidHom |
| 10 | +import Mathlib.Topology.Algebra.Group.Basic |
| 11 | + |
| 12 | +/-! |
| 13 | +# Topological properties of units |
| 14 | +
|
| 15 | +This file contains lemmas about the topology of units in topological monoids, |
| 16 | +including results about submonoid units and units of product spaces. |
| 17 | +-/ |
| 18 | + |
| 19 | +open Units |
| 20 | + |
| 21 | +/-- If a submonoid is open in a topological monoid, then its units form an open subset |
| 22 | +of the units of the monoid. -/ |
| 23 | +lemma Submonoid.units_isOpen {M : Type*} [TopologicalSpace M] [Monoid M] |
| 24 | + {U : Submonoid M} (hU : IsOpen (U : Set M)) : IsOpen (U.units : Set Mˣ) := |
| 25 | + (hU.preimage Units.continuous_val).inter (hU.preimage Units.continuous_coe_inv) |
| 26 | + |
| 27 | +/-- The monoid homeomorphism between the units of a product of topological monoids |
| 28 | +and the product of the units of the monoids. -/ |
| 29 | +def ContinuousMulEquiv.piUnits {ι : Type*} |
| 30 | + {M : ι → Type*} [(i : ι) → Monoid (M i)] [(i : ι) → TopologicalSpace (M i)] : |
| 31 | + (Π i, M i)ˣ ≃ₜ* Π i, (M i)ˣ where |
| 32 | + __ := MulEquiv.piUnits |
| 33 | + continuous_toFun := by |
| 34 | + simp only [MulEquiv.toEquiv_eq_coe, Equiv.toFun_as_coe, EquivLike.coe_coe] |
| 35 | + refine continuous_pi (fun i => ?_) |
| 36 | + refine Units.continuous_iff.mpr ⟨?_, ?_⟩ |
| 37 | + · simp only [Function.comp_def, MulEquiv.val_piUnits_apply] |
| 38 | + exact (continuous_apply i).comp' Units.continuous_val |
| 39 | + · simp only [MulEquiv.val_inv_piUnits_apply, Units.inv_eq_val_inv] |
| 40 | + exact (continuous_apply i).comp' Units.continuous_coe_inv |
| 41 | + continuous_invFun := by |
| 42 | + simp only [MulEquiv.toEquiv_eq_coe, Equiv.invFun_as_coe, MulEquiv.coe_toEquiv_symm] |
| 43 | + refine Units.continuous_iff.mpr ⟨?_, ?_⟩ |
| 44 | + · refine continuous_pi (fun i => ?_) |
| 45 | + simp only [Function.comp_def, MulEquiv.val_piUnits_symm_apply] |
| 46 | + exact Units.continuous_val.comp' (continuous_apply i) |
| 47 | + · refine continuous_pi (fun i => ?_) |
| 48 | + simp only [MulEquiv.val_inv_piUnits_symm_apply, Units.inv_eq_val_inv] |
| 49 | + exact Units.continuous_coe_inv.comp' (continuous_apply i) |
0 commit comments