/- Copyright 2026 The Formal Conjectures Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. -/ module public import Mathlib.Geometry.Manifold.Algebra.LieGroup public import Mathlib.Geometry.Manifold.Instances.Real public import Mathlib.Topology.Algebra.ContinuousMonoidHom

Topological groups admitting a Lie group structure

A topological group G admits a Lie group structure if it is continuously isomorphic to a finite-dimensional real-analytic Lie group. Lie groups are Hausdorff but not assumed to be second countable: every discrete group is a 0-dimensional Lie group.

Main definitions

    LieGroupPresentation G n: a continuous group isomorphism from G to an n-dimensional real-analytic Lie group.

    AdmitsLieGroupStructure G: G has a LieGroupPresentation in some finite dimension.

Main results

    admitsLieGroupStructure_of_lieGroup: a Hausdorff real-analytic Lie group admits a Lie group structure.

    admitsLieGroupStructure_of_discreteTopology: a discrete group admits a Lie group structure.

    AdmitsLieGroupStructure.locallyCompactSpace: a group admitting a Lie group structure is locally compact.

@[expose] public sectionopen scoped Manifold ContDiffuniverse uvariable {G : Type*} [Group G] [TopologicalSpace G]

A continuous group isomorphism from G to an n-dimensional real-analytic Lie group. The Lie group is not assumed to be second countable.

structure LieGroupPresentation (G : Type u) [TopologicalSpace G] [Group G] (n : ) where carrier : Type u [topologicalSpace : TopologicalSpace carrier] [group : Group carrier] [t2Space : T2Space carrier] [chartedSpace : ChartedSpace (EuclideanSpace (Fin n)) carrier] [isManifold : IsManifold (𝓡 n) ω carrier] [lieGroup : LieGroup (𝓡 n) ω carrier] equiv : G ≃ₜ* carrier

A topological group admits a Lie group structure if it has a LieGroupPresentation in some finite dimension.

def AdmitsLieGroupStructure (G : Type u) [Group G] [TopologicalSpace G] : Prop := n, Nonempty (LieGroupPresentation G n)

Every Hausdorff finite-dimensional real-analytic Lie group admits a Lie group structure.

theorem admitsLieGroupStructure_of_lieGroup {n : } [T2Space G] [ChartedSpace (EuclideanSpace (Fin n)) G] [LieGroup (𝓡 n) ω G] : AdmitsLieGroupStructure G := n, { carrier := G, equiv := ContinuousMulEquiv.refl G }

Every discrete group is a 0-dimensional Lie group.

theorem admitsLieGroupStructure_of_discreteTopology [DiscreteTopology G] : AdmitsLieGroupStructure G := G:Type u_1inst✝²:Group Ginst✝¹:TopologicalSpace Ginst✝:DiscreteTopology GAdmitsLieGroupStructure G G:Type u_1inst✝²:Group Ginst✝¹:TopologicalSpace Ginst✝:DiscreteTopology Gthis:ChartedSpace (EuclideanSpace (Fin 0)) G := ChartedSpace.ofDiscreteTopologyAdmitsLieGroupStructure G G:Type u_1inst✝²:Group Ginst✝¹:TopologicalSpace Ginst✝:DiscreteTopology Gthis✝:ChartedSpace (EuclideanSpace (Fin 0)) G := ChartedSpace.ofDiscreteTopologythis:IsManifold (𝓡 0) ω GAdmitsLieGroupStructure G G:Type u_1inst✝²:Group Ginst✝¹:TopologicalSpace Ginst✝:DiscreteTopology Gthis✝¹:ChartedSpace (EuclideanSpace (Fin 0)) G := ChartedSpace.ofDiscreteTopologythis✝:IsManifold (𝓡 0) ω Gthis:LieGroup (𝓡 0) ω GAdmitsLieGroupStructure G All goals completed! 🐙

A group admitting a Lie group structure is locally compact.

theorem AdmitsLieGroupStructure.locallyCompactSpace (h : AdmitsLieGroupStructure G) : LocallyCompactSpace G := G:Type u_1inst✝¹:Group Ginst✝:TopologicalSpace Gh:AdmitsLieGroupStructure GLocallyCompactSpace G G:Type u_1inst✝¹:Group Ginst✝:TopologicalSpace Gk:p:LieGroupPresentation G kLocallyCompactSpace G G:Type u_1inst✝¹:Group Ginst✝:TopologicalSpace Gk:p:LieGroupPresentation G kthis:TopologicalSpace p.carrier := p.topologicalSpaceLocallyCompactSpace G G:Type u_1inst✝¹:Group Ginst✝:TopologicalSpace Gk:p:LieGroupPresentation G kthis✝:TopologicalSpace p.carrier := p.topologicalSpacethis:Group p.carrier := p.groupLocallyCompactSpace G G:Type u_1inst✝¹:Group Ginst✝:TopologicalSpace Gk:p:LieGroupPresentation G kthis✝¹:TopologicalSpace p.carrier := p.topologicalSpacethis✝:Group p.carrier := p.groupthis:ChartedSpace (EuclideanSpace (Fin k)) p.carrier := p.chartedSpaceLocallyCompactSpace G G:Type u_1inst✝¹:Group Ginst✝:TopologicalSpace Gk:p:LieGroupPresentation G kthis✝²:TopologicalSpace p.carrier := p.topologicalSpacethis✝¹:Group p.carrier := p.groupthis✝:ChartedSpace (EuclideanSpace (Fin k)) p.carrier := p.chartedSpacethis:LocallyCompactSpace (EuclideanSpace (Fin k))LocallyCompactSpace G G:Type u_1inst✝¹:Group Ginst✝:TopologicalSpace Gk:p:LieGroupPresentation G kthis✝³:TopologicalSpace p.carrier := p.topologicalSpacethis✝²:Group p.carrier := p.groupthis✝¹:ChartedSpace (EuclideanSpace (Fin k)) p.carrier := p.chartedSpacethis✝:LocallyCompactSpace (EuclideanSpace (Fin k))this:LocallyCompactSpace p.carrierLocallyCompactSpace G All goals completed! 🐙