Documentation

TauCeti.Topology.Homotopy.Monodromy.Basic

The subgroup a cover recovers from a chosen lift of the basepoint #

Let p : E → X be a covering map and let e be a point of the fibre over x. Mathlib's IsCoveringMap.fundamentalGroupMulAction makes π₁(X, x) act on that fibre by monodromy. This file identifies the stabiliser of e for that action with the image of π₁(E, e) under p:

MulAction.stabilizer (π₁(X, x)) e = (FundamentalGroup.mapOfEq ⟨p, hp.continuous⟩ e.2).range.

That image is the subgroup the classification of covering spaces attaches to the pointed cover (E, e), so the identification is the bridge between the topological side (which loops of the base lift to loops of the cover) and the group-theoretic side (which subgroup of π₁(X, x) is recovered).

Three consequences follow, and are the reason the identification is worth isolating.

Mathlib proves the analogous statement IsQuotientCoveringMap.ker_monodromyPerm only for a cover presented as a quotient by a group action, where the stabiliser of a single point is automatically the kernel of the whole monodromy representation. For a general cover the two subgroups differ, and it is the stabiliser, not the kernel, that the classification uses.

Main declarations #

References #

This is Stage 2 of TauCetiRoadmap/UniversalCovers/README.md: item 7 asks for the subgroup a pointed cover recovers and for the way it transforms when the chosen lift changes, and item 8 splits the classification into a pointed statement about subgroups and an unpointed statement about conjugacy classes, phrased "via transitive π₁(X)-sets". Everything here is built from Junyan Xu's monodromy API in Mathlib/Topology/Homotopy/Lifting.lean; no Mathlib proof is vendored.

Monodromy as a bijection between fibres #

theorem IsCoveringMap.coe_monodromy_mk {E : Type u_1} {X : Type u_2} [TopologicalSpace E] [TopologicalSpace X] {p : E → X} (hp : IsCoveringMap p) {x y : X} (γ : Path x y) (e : ↑(p ⁻¹' {x})) (h : γ.toContinuousMap 0 = p ↑e) :

Monodromy along the class of a path γ sends a lift e of its source to the endpoint of the lift of γ starting at e. This is the defining formula of IsCoveringMap.monodromy on a representative path.

noncomputable def TauCeti.coveringFiberEquiv {E : Type u_1} {X : Type u_2} [TopologicalSpace E] [TopologicalSpace X] {p : E → X} (hp : IsCoveringMap p) {x y : X} (γ : Path.Homotopic.Quotient x y) :
↑(p ⁻¹' {x}) ≃ ↑(p ⁻¹' {y})

Monodromy along a homotopy class of paths is a bijection between the fibres over its endpoints. It is IsCoveringMap.monodromy, whose bijectivity Mathlib records, packaged as an equivalence.

Equations
Instances For
    @[simp]
    theorem TauCeti.coveringFiberEquiv_apply {E : Type u_1} {X : Type u_2} [TopologicalSpace E] [TopologicalSpace X] {p : E → X} (hp : IsCoveringMap p) {x y : X} (γ : Path.Homotopic.Quotient x y) (e : ↑(p ⁻¹' {x})) :
    (coveringFiberEquiv hp γ) e = hp.monodromy γ e
    @[simp]
    theorem TauCeti.coveringFiberEquiv_symm_apply {E : Type u_1} {X : Type u_2} [TopologicalSpace E] [TopologicalSpace X] {p : E → X} (hp : IsCoveringMap p) {x y : X} (γ : Path.Homotopic.Quotient x y) (e : ↑(p ⁻¹' {y})) :

    The inverse of monodromy along γ is monodromy along the reversed class γ.symm.

    The permutation representation of the monodromy action of π₁(X, x) on the fibre over x is Mathlib's monodromy homomorphism IsCoveringMap.monodromyPerm, which is defined as it.

    The recovered subgroup #

    theorem IsCoveringMap.monodromy_eq_self_iff_mem_range {E : Type u_1} {X : Type u_2} [TopologicalSpace E] [TopologicalSpace X] {p : E → X} {x : X} (hp : IsCoveringMap p) (e : ↑(p ⁻¹' {x})) (γ : FundamentalGroup X x) :
    hp.monodromy γ e = e ↔ γ ∈ (FundamentalGroup.mapOfEq { toFun := p, continuous_toFun := ⋯ } ⋯).range

    A loop class of the base fixes a chosen lift e of the basepoint under monodromy exactly when it is the image of a loop class of the total space based at e.

    The image subgroup on the right is the subgroup of π₁(X, x) that the classification of covers attaches to the pointed cover (E, e).

    @[simp]
    theorem IsCoveringMap.stabilizer_eq_range {E : Type u_1} {X : Type u_2} [TopologicalSpace E] [TopologicalSpace X] {p : E → X} {x : X} (hp : IsCoveringMap p) (e : ↑(p ⁻¹' {x})) :
    MulAction.stabilizer (FundamentalGroup X x) e = (FundamentalGroup.mapOfEq { toFun := p, continuous_toFun := ⋯ } ⋯).range

    The stabiliser of a chosen lift e of the basepoint, for the monodromy action of π₁(X, x) on the fibre over x, is the image of π₁(E, e) under the covering map.

    theorem IsCoveringMap.comap_stabilizer_monodromyPerm {E : Type u_1} {X : Type u_2} [TopologicalSpace E] [TopologicalSpace X] {p : E → X} {x : X} (hp : IsCoveringMap p) (e : ↑(p ⁻¹' {x})) :
    Subgroup.comap (hp.monodromyPerm x) (MulAction.stabilizer (Equiv.Perm ↑(p ⁻¹' {x})) e) = (FundamentalGroup.mapOfEq { toFun := p, continuous_toFun := ⋯ } ⋯).range

    The preimage under the monodromy homomorphism IsCoveringMap.monodromyPerm of the stabiliser of a chosen lift e of the basepoint is the image of π₁(E, e) under the covering map.

    theorem IsCoveringMap.monodromyPerm_pow_eq_one {E : Type u_1} {X : Type u_2} [TopologicalSpace E] [TopologicalSpace X] {p : E → X} {x : X} (hp : IsCoveringMap p) [Finite ↑(p ⁻¹' {x})] {n : ℕ} (hn : (Nat.card ↑(p ⁻¹' {x})).factorial ∣ n) (γ : FundamentalGroup X x) :
    (hp.monodromyPerm x) (γ ^ n) = 1

    Over a finite fibre, a suitable power of every loop has trivial monodromy. If the fibre over x has d points and d ! divides n, then the n-th power of every loop class at x acts trivially on that fibre, because the monodromy permutation lies in a group of order d !.

    Transitivity on a fibre #

    theorem IsCoveringMap.exists_monodromy_eq_of_joined {E : Type u_1} {X : Type u_2} [TopologicalSpace E] [TopologicalSpace X] {p : E → X} {x : X} (hp : IsCoveringMap p) {e e' : ↑(p ⁻¹' {x})} (h : Joined ↑e ↑e') :
    ∃ (γ : FundamentalGroup X x), hp.monodromy γ e = e'

    A path joining two lifts of the basepoint projects to a loop of the base whose monodromy carries the first lift to the second.

    theorem IsCoveringMap.exists_monodromy_eq {E : Type u_1} {X : Type u_2} [TopologicalSpace E] [TopologicalSpace X] {p : E → X} {x : X} [PathConnectedSpace E] (hp : IsCoveringMap p) (e e' : ↑(p ⁻¹' {x})) :
    ∃ (γ : FundamentalGroup X x), hp.monodromy γ e = e'

    On a fibre of a path-connected cover, monodromy is transitive.

    The monodromy action of π₁(X, x) on a fibre of a path-connected cover is transitive.

    theorem IsCoveringMap.joined_monodromy {E : Type u_1} {X : Type u_2} [TopologicalSpace E] [TopologicalSpace X] {p : E → X} (hp : IsCoveringMap p) {x y : X} (γ : Path.Homotopic.Quotient x y) (e : ↑(p ⁻¹' {x})) :
    Joined ↑e ↑(hp.monodromy γ e)

    A point of a fibre is joined to its image under monodromy, by the lifted path.

    A cover of a path-connected space is path connected exactly when monodromy is transitive on a nonempty fibre. Every point of the total space is joined to the fibre over x by lifting a path to x, and two points of that fibre are joined by lifting a loop.

    The fibre as a coset space #

    noncomputable def IsCoveringMap.fiberEquivQuotientRange {E : Type u_1} {X : Type u_2} [TopologicalSpace E] [TopologicalSpace X] {p : E → X} {x : X} [PathConnectedSpace E] (hp : IsCoveringMap p) (e : ↑(p ⁻¹' {x})) :
    ↑(p ⁻¹' {x}) ≃ FundamentalGroup X x ⧸ (FundamentalGroup.mapOfEq { toFun := p, continuous_toFun := ⋯ } ⋯).range

    Orbit-stabiliser for a covering map. Choosing a lift e of the basepoint identifies the fibre over x with the coset space of the subgroup of π₁(X, x) recovered from (E, e), provided the cover is path connected.

    Equations
    Instances For
      @[simp]
      theorem IsCoveringMap.fiberEquivQuotientRange_symm_apply_mk {E : Type u_1} {X : Type u_2} [TopologicalSpace E] [TopologicalSpace X] {p : E → X} {x : X} [PathConnectedSpace E] (hp : IsCoveringMap p) (e : ↑(p ⁻¹' {x})) (γ : FundamentalGroup X x) :

      The inverse of the orbit-stabiliser identification sends the coset of a loop class to the monodromy translate of the chosen lift.

      theorem IsCoveringMap.card_fiber_eq_index {E : Type u_1} {X : Type u_2} [TopologicalSpace E] [TopologicalSpace X] {p : E → X} {x : X} [PathConnectedSpace E] (hp : IsCoveringMap p) (e : ↑(p ⁻¹' {x})) :
      Nat.card ↑(p ⁻¹' {x}) = (FundamentalGroup.mapOfEq { toFun := p, continuous_toFun := ⋯ } ⋯).range.index

      The number of sheets of a path-connected cover is the index of the recovered subgroup.

      Dependence on the chosen lift #

      theorem IsCoveringMap.range_mapOfEq_monodromy {E : Type u_1} {X : Type u_2} [TopologicalSpace E] [TopologicalSpace X] {p : E → X} {x : X} (hp : IsCoveringMap p) (e : ↑(p ⁻¹' {x})) (γ : FundamentalGroup X x) :
      (FundamentalGroup.mapOfEq { toFun := p, continuous_toFun := ⋯ } ⋯).range = Subgroup.map (MulEquiv.toMonoidHom (MulAut.conj γ)) (FundamentalGroup.mapOfEq { toFun := p, continuous_toFun := ⋯ } ⋯).range

      Moving the chosen lift by monodromy conjugates the recovered subgroup.

      theorem IsCoveringMap.exists_range_eq_map_conj_of_joined {E : Type u_1} {X : Type u_2} [TopologicalSpace E] [TopologicalSpace X] {p : E → X} {x : X} (hp : IsCoveringMap p) {e e' : ↑(p ⁻¹' {x})} (h : Joined ↑e ↑e') :
      ∃ (γ : FundamentalGroup X x), (FundamentalGroup.mapOfEq { toFun := p, continuous_toFun := ⋯ } ⋯).range = Subgroup.map (MulEquiv.toMonoidHom (MulAut.conj γ)) (FundamentalGroup.mapOfEq { toFun := p, continuous_toFun := ⋯ } ⋯).range

      Two lifts of the basepoint joined by a path in the cover recover conjugate subgroups.

      theorem IsCoveringMap.exists_range_eq_map_conj {E : Type u_1} {X : Type u_2} [TopologicalSpace E] [TopologicalSpace X] {p : E → X} {x : X} [PathConnectedSpace E] (hp : IsCoveringMap p) (e e' : ↑(p ⁻¹' {x})) :
      ∃ (γ : FundamentalGroup X x), (FundamentalGroup.mapOfEq { toFun := p, continuous_toFun := ⋯ } ⋯).range = Subgroup.map (MulEquiv.toMonoidHom (MulAut.conj γ)) (FundamentalGroup.mapOfEq { toFun := p, continuous_toFun := ⋯ } ⋯).range

      On a path-connected cover, any two lifts of the basepoint recover conjugate subgroups: an unpointed connected cover determines only the conjugacy class of the subgroup.

      theorem IsCoveringMap.normal_range_iff {E : Type u_1} {X : Type u_2} [TopologicalSpace E] [TopologicalSpace X] {p : E → X} {x : X} [PathConnectedSpace E] (hp : IsCoveringMap p) (e : ↑(p ⁻¹' {x})) :
      (FundamentalGroup.mapOfEq { toFun := p, continuous_toFun := ⋯ } ⋯).range.Normal ↔ ∀ (e' : ↑(p ⁻¹' {x})), (FundamentalGroup.mapOfEq { toFun := p, continuous_toFun := ⋯ } ⋯).range = (FundamentalGroup.mapOfEq { toFun := p, continuous_toFun := ⋯ } ⋯).range

      On a path-connected cover, the subgroup recovered from a lift of the basepoint is normal exactly when it does not depend on which lift is chosen. This is the subgroup-side criterion for the cover to be regular.