Documentation

LeanPool.FiniteGraphFundamentalGroup.Proof

The spanning-tree computation for finite quivers #

This file builds the combinatorial fundamental group of a finite weakly connected quiver from Mathlib's free groupoid and identifies a basis indexed by the edges outside a geodesic spanning tree.

def FiniteGraphFreeGroup.totalEquiv {V : Type u} [Quiver V] (T : WideSubquiver V) :
Quiver.Total (WideSubquiver.toType V T) ≃ (a : V) × (b : V) × { e : a ⟶ b // e ∈ T a b }

Identifies total arrows of a wide subquiver with their endpoints and underlying arrow.

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    @[reducible]
    noncomputable def FiniteGraphFreeGroup.totalFintype {V : Type u} [Quiver V] [Fintype V] [(a b : V) → Fintype (a ⟶ b)] (T : WideSubquiver V) :

    The finite structure on the total arrows of a finite wide subquiver.

    Equations
    Instances For
      @[instance_reducible]
      noncomputable instance FiniteGraphFreeGroup.wideSubquiverHomFintype {V : Type u} [Quiver V] [(a b : V) → Fintype (a ⟶ b)] (T : WideSubquiver V) (a b : WideSubquiver.toType V T) :
      Fintype (a ⟶ b)
      Equations
      def FiniteGraphFreeGroup.baseTotalEquiv (V : Type u) [Quiver V] :
      Quiver.Total V ≃ (a : V) × (b : V) × (a ⟶ b)

      Identifies total arrows of a quiver with their endpoints and arrow data.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        @[reducible]
        noncomputable def FiniteGraphFreeGroup.baseTotalFintype {V : Type u} [Quiver V] [Fintype V] [(a b : V) → Fintype (a ⟶ b)] :

        The finite structure on total arrows of a finite quiver.

        Equations
        Instances For
          @[instance_reducible]
          noncomputable instance FiniteGraphFreeGroup.symmetrifyHomFintype {V : Type u} [Quiver V] [(a b : V) → Fintype (a ⟶ b)] (a b : Quiver.Symmetrify V) :
          Fintype (a ⟶ b)
          Equations

          Identifies a wide subquiver's total arrows with the corresponding subset of base arrows.

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

            The penultimate vertex, prefix path, and last edge of the rooted path to a non-root vertex.

            Equations
            Instances For

              Identifies the edges of an arborescence with its non-root vertices.

              Equations
              • One or more equations did not get rendered due to their size.
              Instances For
                theorem FiniteGraphFreeGroup.no_reverse_edges {V : Type u} [Quiver V] (T : WideSubquiver (Quiver.Symmetrify V)) [Quiver.Arborescence (WideSubquiver.toType (Quiver.Symmetrify V) T)] {a b : V} (e : a ⟶ b) (h₁ : T a b (Sum.inl e)) (h₂ : T b a (Sum.inr e)) :

                Forgets the orientation tag on an edge of a symmetric wide subquiver.

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

                  Recovers the uniquely oriented tree edge from its underlying graph edge.

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

                    Equates oriented tree edges with the underlying edges of the symmetrified subquiver.

                    Equations
                    Instances For
                      @[reducible]

                      Close a groupoid morphism into a loop using the spanning-tree paths.

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

                        The free-group basis obtained from the arrows outside a spanning tree.

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

                          A quiver with a finite hom-set between every ordered pair of vertices.

                          • finiteHom (a b : V) : Fintype (a ⟶ b)

                            The finite structure on each hom-set.

                          Instances

                            A quiver whose symmetrification has a path between every pair of vertices.

                            Instances

                              Identifies the objects of the generated free groupoid with graph vertices.

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

                                The number of vertices in a finite graph.

                                Equations
                                Instances For
                                  noncomputable def FiniteGraphFreeGroup.edgeCount {V : Type u} [Quiver V] [Fintype V] [FiniteQuiver V] :

                                  The total number of directed edges in a finite quiver.

                                  Equations
                                  Instances For
                                    @[reducible, inline]
                                    noncomputable abbrev FiniteGraphFreeGroup.cycleRank {V : Type u} [Quiver V] [Fintype V] [FiniteQuiver V] :

                                    The graph cycle rank, written to account for truncated subtraction in ℕ.

                                    The spanning-tree inequality below identifies it with E - (V - 1) for a weakly connected graph.

                                    Equations
                                    Instances For
                                      @[reducible, inline]

                                      The endomorphism group at a root in the free groupoid generated by the graph.

                                      Equations
                                      Instances For
                                        @[reducible, inline]

                                        The canonical geodesic spanning tree rooted at the chosen graph vertex.

                                        Equations
                                        Instances For

                                          Identifies total free-groupoid generator arrows with total graph arrows.

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

                                            The complement of the geodesic tree, indexed by the actual non-tree generator arrows.

                                            Equations
                                            Instances For
                                              @[instance_reducible]
                                              noncomputable instance FiniteGraphFreeGroup.graphGeneratorSetFintype {V : Type u} [Quiver V] [Fintype V] [FiniteQuiver V] [WeaklyConnected V] (root : V) :
                                              Equations
                                              • One or more equations did not get rendered due to their size.

                                              The final theorem is kept in the original statement form for the Palomar Challenge/Solution correspondence. The reusable, basis-valued API and the consequences of the computation live in Consequences.lean.