Skip to content

Commit 0840309

Browse files
kim-emclaude
andcommitted
feat(Topology/Algebra/Group/Units): add topological properties of units
Add lemmas about units in topological monoids: - `Submonoid.units_isOpen`: units of open submonoids are open - `ContinuousMulEquiv.piUnits`: homeomorphism between units of product and product of units Ported from the FLT project. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
1 parent 2b4a36b commit 0840309

2 files changed

Lines changed: 50 additions & 0 deletions

File tree

Mathlib.lean

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6296,6 +6296,7 @@ import Mathlib.Topology.Algebra.Group.Pointwise
62966296
import Mathlib.Topology.Algebra.Group.Quotient
62976297
import Mathlib.Topology.Algebra.Group.SubmonoidClosure
62986298
import Mathlib.Topology.Algebra.Group.TopologicalAbelianization
6299+
import Mathlib.Topology.Algebra.Group.Units
62996300
import Mathlib.Topology.Algebra.GroupCompletion
63006301
import Mathlib.Topology.Algebra.GroupWithZero
63016302
import Mathlib.Topology.Algebra.Indicator
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
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

Comments
 (0)