Documentation

LeanPool.FiniteGraphFundamentalGroup.TopologicalCover

Local charts and topological graph covers #

This module verifies the local topology needed to realize the combinatorial path-lifting cover.

Local charts for graph realizations #

The quotient realization has two kinds of local charts. At a vertex we use the vertex together with the two half-open germs of every incident edge. At an edge-interior point we use the open interval cell. These sets are kept at the prequotient level so that openness is checked by isOpen_coinduced and the endpoint quotient is handled by a small saturation lemma.

The midpoint of the unit interval used to separate the two incident-edge stars.

Equations
Instances For

    Representatives of the open star of a vertex before taking the realization quotient.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For

      Representatives of an edge interior before taking the realization quotient.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        theorem FiniteGraphFreeGroup.graphRealization_interior_eqvGen_eq {V : Type u} [Quiver V] {e e' : Quiver.Total V} {t t' : unitInterval} (ht0 : 0 < t) (ht1 : t < 1) (ht0' : 0 < t') (ht1' : t' < 1) (h : Relation.EqvGen graphRealizationGenerator (Sum.inr graphDiscreteEdge e, t) (Sum.inr graphDiscreteEdge e', t')) :
        e = e' t = t'

        The combinatorial cover viewed through the same geometric-realization construction.

        @[reducible, inline]

        The realization of the canonical combinatorial cover based at root.

        Equations
        Instances For

          The cover vertex represented by the identity path at the root.

          Equations
          Instances For

            The discrete fiber of cover vertices over a base vertex.

            Equations
            Instances For
              theorem FiniteGraphFreeGroup.graphStar_total_injective {V : Type u} [Quiver V] {x : V} :
              Function.Injective fun (s : Quiver.Star x) => { left := x, right := s.fst, hom := s.snd }
              theorem FiniteGraphFreeGroup.graphCostar_total_injective {V : Type u} [Quiver V] {x : V} :
              Function.Injective fun (s : Quiver.Costar x) => { left := s.fst, right := x, hom := s.snd }
              theorem FiniteGraphFreeGroup.graphCoverStarEquiv_map_eq_of_total_eq {V : Type u} [Quiver V] {root : V} (x : graphCoverVertex root) (e f : Quiver.Total (graphCoverVertex root)) (he : e.left = x) (hf : f.left = x) (htot : { left := e.left.fst, right := e.right.fst, hom := e.hom } = { left := f.left.fst, right := f.right.fst, hom := f.hom }) :
              theorem FiniteGraphFreeGroup.graphCoverCostarEquiv_map_eq_of_total_eq {V : Type u} [Quiver V] {root : V} (x : graphCoverVertex root) (e f : Quiver.Total (graphCoverVertex root)) (he : e.right = x) (hf : f.right = x) (htot : { left := e.left.fst, right := e.right.fst, hom := e.hom } = { left := f.left.fst, right := f.right.fst, hom := f.hom }) :
              theorem FiniteGraphFreeGroup.graphCover_total_eq_of_star_eq {V : Type u} [Quiver V] {root : V} (x : graphCoverVertex root) (e f : Quiver.Total (graphCoverVertex root)) (he : e.left = x) (hf : f.left = x) (hstar : e.right, he e.hom = f.right, hf f.hom) :
              e = f
              theorem FiniteGraphFreeGroup.graphCover_total_eq_of_costar_eq {V : Type u} [Quiver V] {root : V} (x : graphCoverVertex root) (e f : Quiver.Total (graphCoverVertex root)) (he : e.right = x) (hf : f.right = x) (hcostar : e.left, he e.hom = f.left, hf f.hom) :
              e = f
              theorem FiniteGraphFreeGroup.graphCover_source_lift {V : Type u} [Quiver V] {root : V} (x : graphCoverVertex root) (e : Quiver.Total V) (h : x.fst = e.left) :
              ∃ (d : Quiver.Total (graphCoverVertex root)), d.left = x { left := d.left.fst, right := d.right.fst, hom := d.hom } = e
              theorem FiniteGraphFreeGroup.graphCover_target_lift {V : Type u} [Quiver V] {root : V} (x : graphCoverVertex root) (e : Quiver.Total V) (h : e.right = x.fst) :
              ∃ (d : Quiver.Total (graphCoverVertex root)), d.right = x { left := d.left.fst, right := d.right.fst, hom := d.hom } = e

              The forward open-set implication used by the vertex-star trivialization.

              Projects a total edge of the canonical cover to its underlying base edge.

              Equations
              Instances For

                The discrete fiber of cover edges over a base edge.

                Equations
                Instances For

                  The local charts above assemble into an honest covering map. Vertices use the lifted stars, while the open interval cells use their lifted interiors.