Documentation

Mathlib.Topology.Covering.FundamentalGroupCircle

The fundamental group of the circle #

For 0 < p, the fundamental group of AddCircle p at any basepoint is isomorphic to ℤ (AddCircle.windingNumberIso). The winding number AddCircle.windingNumber of a loop is (f 1 - f 0) / p for any continuous lift f : I → ℝ of the loop (AddCircle.windingNumber_eq_div); in particular the loop t ↦ n • (t * p) + x has winding number n (AddCircle.windingNumber_zsmulLoop).

def AddCircle.zsmulLoop (p x : ℝ) (n : ℤ) :
Path ↑x ↑x

The loop in AddCircle p based at x that winds n times, defined as t ↦ n • (t * p) + x.

Equations
Instances For
    @[simp]
    theorem AddCircle.zsmulLoop_apply (p x : ℝ) (n : ℤ) (t : ↑unitInterval) :
    (zsmulLoop p x n) t = n • ↑(↑t * p) + ↑x
    noncomputable def AddCircle.windingNumberIso {p : ℝ} [hp : Fact (0 < p)] (x : AddCircle p) :

    The fundamental group of the circle is ℤ: the isomorphism sends the class of a loop to its winding number (windingNumber_eq_div). It does not depend on the choice of a lift of the basepoint (IsAddQuotientCoveringMap.fundamentalGroupEquiv_eq).

    Equations
    Instances For
      noncomputable def AddCircle.windingNumber {p : ℝ} [hp : Fact (0 < p)] {x : AddCircle p} (γ : FundamentalGroup (AddCircle p) x) :

      The winding number of a loop in AddCircle p, defined as its image under windingNumberIso.

      Equations
      Instances For
        theorem AddCircle.windingNumber_eq_div {p : ℝ} [hp : Fact (0 < p)] {x : AddCircle p} (γ : Path x x) (f : C(↑unitInterval, ℝ)) (hf : QuotientAddGroup.mk ∘ ⇑f = ⇑γ) :

        The winding number of a loop in AddCircle p is (f 1 - f 0) / p, for any continuous lift f of the loop to ℝ.

        The loop t ↦ n • (t * p) + x has winding number n.