Documentation

LeanPool.Kurosh.KuroshTree

Kurosh Tree #

Adapted for Lean Pool from Arthur742Ramos/KuroshSubgroupTheorem, commit 911707126c8b9bb0c764bf853008fe1053c0aad9: imports, API compatibility, and proof organization were revised.

@[instance_reducible]

Classical equality used locally in this part of the Kurosh construction.

Equations
Instances For
    theorem GraphCoveringTheory.Kurosh.Internal.rightAppendLastIdx {ι : Type v} (G : ι → Type u) [(i : ι) → Group (G i)] (i : ι) (w : RightFactorWord i) (a : G i) (ha : a ≠ 1) :
    theorem GraphCoveringTheory.Kurosh.Internal.factorCentralInjective {ι : Type v} (G : ι → Type u) [(i : ι) → Group (G i)] {i i' : ι} {w : RightFactorWord i} {w' : RightFactorWord i'} {a : G i} {a' : G i'} (ha : a ≠ 1) (ha' : a' ≠ 1) (h : rightAppendCanonical i w a ha = rightAppendCanonical i' w' a' ha') :
    i = i' ∧ w ≍ w' ∧ a ≍ a'
    @[reducible, inline]
    abbrev GraphCoveringTheory.Kurosh.Internal.bassAllEdge {ι : Type v} (G : ι → Type u) [(i : ι) → Group (G i)] :
    Type (max (max u v) (max v u) u v)

    All edges in the word model, bundled with their endpoints.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      @[reducible, inline]
      abbrev GraphCoveringTheory.Kurosh.Internal.bassEdgeCode {ι : Type v} (G : ι → Type u) [(i : ι) → Group (G i)] :
      Type (max u v)

      Nondependent codes for the two constructors of word-model edges.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        def GraphCoveringTheory.Kurosh.Internal.bassEdgeCodeOf {ι : Type v} (G : ι → Type u) [(i : ι) → Group (G i)] :

        Encode a word-model edge without its dependent endpoint indices.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          noncomputable def GraphCoveringTheory.Kurosh.Internal.bassEdgeOfCode {ι : Type v} (G : ι → Type u) [(i : ι) → Group (G i)] :

          Recover a bundled word-model edge from its constructor code.

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            theorem GraphCoveringTheory.Kurosh.Internal.bassEdgeCodeOf_ofCode {ι : Type v} (G : ι → Type u) [(i : ι) → Group (G i)] (c : bassEdgeCode G) :
            theorem GraphCoveringTheory.Kurosh.Internal.bassEdgeOfCode_of {ι : Type v} (G : ι → Type u) [(i : ι) → Group (G i)] (e : bassAllEdge G) :
            def GraphCoveringTheory.Kurosh.Internal.bassEdgeTarget {ι : Type v} (G : ι → Type u) [(i : ι) → Group (G i)] :

            The target of a bundled word-model edge.

            Equations
            Instances For
              theorem GraphCoveringTheory.Kurosh.Internal.bassEdgeCodeTarget_injective {ι : Type v} (G : ι → Type u) [(i : ι) → Group (G i)] {c d : bassEdgeCode G} (h : bassEdgeCodeTarget G c = bassEdgeCodeTarget G d) :
              c = d
              theorem GraphCoveringTheory.Kurosh.Internal.bassAllEdge_target_injective {ι : Type v} (G : ι → Type u) [(i : ι) → Group (G i)] {e f : bassAllEdge G} (h : bassEdgeTarget G e = bassEdgeTarget G f) :
              e = f
              theorem GraphCoveringTheory.Kurosh.Internal.bassUniqueIncoming {ι : Type v} (G : ι → Type u) [(i : ι) → Group (G i)] {a b c : BassSerreVertex G} (e : a ⟶ c) (f : b ⟶ c) :
              a = b ∧ e ≍ f
              theorem GraphCoveringTheory.Kurosh.Internal.wordLastIdx_exists {ι : Type v} (G : ι → Type u) [(i : ι) → Group (G i)] (w : Monoid.CoprodI.Word G) (hw : w.toList ≠ []) :
              ∃ (i : ι), wordLastIdx w = some i
              theorem GraphCoveringTheory.Kurosh.Internal.bassHeight_lt {ι : Type v} (G : ι → Type u) [(i : ι) → Group (G i)] {a b : BassSerreVertex G} (e : a ⟶ b) :
              @[instance_reducible]
              noncomputable def GraphCoveringTheory.Kurosh.Internal.bassSerreFullArborescence {ι : Type v} (G : ι → Type u) [(i : ι) → Group (G i)] :

              The directed word model is an arborescence rooted at the empty word.

              Equations
              • One or more equations did not get rendered due to their size.
              Instances For
                theorem GraphCoveringTheory.Kurosh.Internal.bassHeight_edge_eq_succ {ι : Type v} (G : ι → Type u) [(i : ι) → Group (G i)] {a b : BassSerreVertex G} (e : a ⟶ b) :
                def GraphCoveringTheory.Kurosh.Internal.bassSymmHeight {ι : Type v} (G : ι → Type u) [(i : ι) → Group (G i)] (x : Quiver.Symmetrify (BassSerreVertex G)) :

                The word-length height function on symmetrified word-model vertices.

                Equations
                Instances For
                  theorem GraphCoveringTheory.Kurosh.Internal.bassHeight_symm_edge {ι : Type v} (G : ι → Type u) [(i : ι) → Group (G i)] {a b : BassSerreVertex G} (e : a ⟶ b) :
                  theorem GraphCoveringTheory.Kurosh.Internal.bassHeight_path_le {ι : Type v} (G : ι → Type u) [(i : ι) → Group (G i)] {a b : BassSerreVertex G} (p : Quiver.Path a b) :
                  theorem GraphCoveringTheory.Kurosh.Internal.bassHeight_directed_path_eq {ι : Type v} (G : ι → Type u) [(i : ι) → Group (G i)] {a b : BassSerreVertex G} (p : Quiver.Path a b) :

                  Include the directed word model into its symmetrification.

                  Equations
                  Instances For
                    theorem GraphCoveringTheory.Kurosh.Internal.bassToSymm_mapPath_length {ι : Type v} (G : ι → Type u) [(i : ι) → Group (G i)] {a b : BassSerreVertex G} (p : Quiver.Path a b) :
                    theorem GraphCoveringTheory.Kurosh.Internal.bass_edge_mem_geodesicTree {ι : Type v} (G : ι → Type u) [(i : ι) → Group (G i)] {a b : BassSerreVertex G} (e : a ⟶ b) :
                    noncomputable def GraphCoveringTheory.Kurosh.Internal.rawCanonicalFactor {ι : Type v} (G : ι → Type u) [(i : ι) → Group (G i)] (i : ι) (c : FactorCoset G i) :

                    Choose the canonical reduced-word representative of a factor coset.

                    Equations
                    Instances For
                      noncomputable def GraphCoveringTheory.Kurosh.Internal.rawCanonicalVertex {ι : Type v} (G : ι → Type u) [(i : ι) → Group (G i)] :

                      Convert a group-and-coset vertex into its canonical word-model vertex.

                      Equations
                      Instances For

                        Evaluate a word-model vertex in the group-and-coset model.

                        Equations
                        Instances For
                          theorem GraphCoveringTheory.Kurosh.Internal.rawCanonicalFactor_coset {ι : Type v} (G : ι → Type u) [(i : ι) → Group (G i)] (i : ι) (c : FactorCoset G i) :
                          @[reducible]
                          def GraphCoveringTheory.Kurosh.Internal.bassTreeQuiver {ι : Type v} (G : ι → Type u) [(i : ι) → Group (G i)] :

                          The chosen word-model spanning tree on the ambient vertex type.

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

                            The unique path in the chosen word-model tree from the empty word.

                            Equations
                            Instances For
                              theorem GraphCoveringTheory.Kurosh.Internal.bassTreePathMap_cons {ι : Type v} (G : ι → Type u) [(i : ι) → Group (G i)] {x y z : BassSerreVertex G} (p : Quiver.Path x y) (e : y ⟶ z) :
                              theorem GraphCoveringTheory.Kurosh.Internal.bassTreePathMap_edge_pos {ι : Type v} (G : ι → Type u) [(i : ι) → Group (G i)] {x y : BassSerreVertex G} (e : x ⟶ y) (he : e.toPos ∈ bassSerreTree G x y) :

                              Interpret a symmetrified word-model path in its free groupoid.

                              Equations
                              Instances For
                                theorem GraphCoveringTheory.Kurosh.Internal.bass_factorCoset_append {ι : Type v} (G : ι → Type u) [(i : ι) → Group (G i)] (i : ι) (w : RightFactorWord i) (a : G i) (ha : a ≠ 1) :

                                Evaluate word-model edges as morphisms in the raw model's free groupoid.

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

                                  Express group-and-coset edges as paths in the word model's free groupoid.

                                  Equations
                                  • One or more equations did not get rendered due to their size.
                                  Instances For
                                    theorem GraphCoveringTheory.Kurosh.Internal.functor_map_homOfEq {C : Type u_1} {D : Type u_2} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Category.{u_4, u_2} D] {X Y X' Y' : C} (F : CategoryTheory.Functor C D) (f : X ⟶ Y) (hX : X = X') (hY : Y = Y') :
                                    F.map (Quiver.homOfEq f hX hY) = Quiver.homOfEq (F.map f) ⋯ ⋯
                                    theorem GraphCoveringTheory.Kurosh.Internal.homOfEq_transport {C : Type u_1} [Quiver C] {X Y X' Y' X'' Y'' : C} (f : X ⟶ Y) (g : X' ⟶ Y') (hX : X = X') (hY : Y = Y') (kX : X' = X'') (kY : Y' = Y'') (h : Quiver.homOfEq f hX hY = g) :
                                    Quiver.homOfEq f ⋯ ⋯ = Quiver.homOfEq g kX kY
                                    theorem GraphCoveringTheory.Kurosh.Internal.homOfEq_transport' {C : Type u_1} [Quiver C] {X Y X' Y' X'' Y'' : C} (f : X ⟶ Y) (g : X' ⟶ Y') (hX : X = X') (hY : Y = Y') (kX : X' = X'') (kY : Y' = Y'') (lX : X = X'') (lY : Y = Y'') (h : Quiver.homOfEq f hX hY = g) :
                                    theorem GraphCoveringTheory.Kurosh.Internal.homOfEq_eq_of_heq {C : Type u_1} [Quiver C] {X Y X' Y' : C} {f : X ⟶ Y} {g : X' ⟶ Y'} (hX : X = X') (hY : Y = Y') (hfg : f ≍ g) :
                                    Quiver.homOfEq f hX hY = g
                                    @[reducible, inline]
                                    abbrev GraphCoveringTheory.Kurosh.Internal.rawEdgeSigma {ι : Type v} (G : ι → Type u) [(i : ι) → Group (G i)] :
                                    Type (max (max u v) (max v u) u v)

                                    All edges of the group-and-coset model, bundled with their endpoints.

                                    Equations
                                    • One or more equations did not get rendered due to their size.
                                    Instances For
                                      theorem GraphCoveringTheory.Kurosh.Internal.rawEdge_heq {ι : Type v} (G : ι → Type u) [(i : ι) → Group (G i)] (g h : FreeProduct G) (i : ι) (gh : g = h) :
                                      @[reducible, inline]
                                      abbrev GraphCoveringTheory.Kurosh.Internal.orbitAllEdge {ι : Type v} (G : ι → Type u) [(i : ι) → Group (G i)] (H : Subgroup (FreeProduct G)) :
                                      Type (max u v)

                                      All quotient-graph edges bundled with their endpoints.

                                      Equations
                                      Instances For
                                        def GraphCoveringTheory.Kurosh.Internal.treeDataGeneratorSet {ι : Type v} (G : ι → Type u) [(i : ι) → Group (G i)] (H : Subgroup (FreeProduct G)) :
                                        Set ↥H

                                        The union of the vertex stabilizers and the quotient-edge labels inside H.

                                        Equations
                                        • One or more equations did not get rendered due to their size.
                                        Instances For
                                          def GraphCoveringTheory.Kurosh.Internal.treeDataGenerated {ι : Type v} (G : ι → Type u) [(i : ι) → Group (G i)] (H : Subgroup (FreeProduct G)) :

                                          The subgroup generated by vertex stabilizers and quotient-edge labels.

                                          Equations
                                          Instances For
                                            @[reducible]

                                            The raw model's chosen spanning tree on the ambient vertex type.

                                            Equations
                                            • One or more equations did not get rendered due to their size.
                                            Instances For
                                              noncomputable def GraphCoveringTheory.Kurosh.Internal.actionOrbitAlign {A X : Type w} [Group A] [MulAction A X] {x y : X} (h : actionOrbitMk A X x = actionOrbitMk A X y) :
                                              A

                                              Choose a group element sending one point to another in the same orbit.

                                              Equations
                                              Instances For
                                                noncomputable def GraphCoveringTheory.Kurosh.Internal.rawEdgeOrbitAlign {ι : Type v} (G : ι → Type u) [(i : ι) → Group (G i)] (H : Subgroup (FreeProduct G)) {a b : RawBassSerreVertex G} (e : a ⟶ b) :
                                                ↥H

                                                Align a raw edge with the chosen representative of its quotient edge.

                                                Equations
                                                Instances For
                                                  theorem GraphCoveringTheory.Kurosh.Internal.conjugate_mem_stabilizer {A X : Type w} [Group A] [MulAction A X] (x : X) (s k : A) (hk : k • x = x) :
                                                  theorem GraphCoveringTheory.Kurosh.Internal.stabilizer_conjugate_eq {A : Type w} [Group A] (s k u r : A) :
                                                  u * (s * k * s⁻¹) * s = r ↔ k = (u * s)⁻¹ * r
                                                  theorem GraphCoveringTheory.Kurosh.Internal.positive_step {ι : Type v} (G : ι → Type u) [(i : ι) → Group (G i)] (H : Subgroup (FreeProduct G)) {a b : RawBassSerreVertex G} (e : a ⟶ b) (u : ↥H) (hu : ↑u • rawTreeRepresentative G H (actionOrbitMk (↥H) (RawBassSerreVertex G) a) = a) :
                                                  noncomputable def GraphCoveringTheory.Kurosh.Internal.positiveStepVertex {ι : Type v} (G : ι → Type u) [(i : ι) → Group (G i)] (H : Subgroup (FreeProduct G)) {a b : RawBassSerreVertex G} (e : a ⟶ b) (u : ↥H) (hu : ↑u • rawTreeRepresentative G H (actionOrbitMk (↥H) (RawBassSerreVertex G) a) = a) :

                                                  The stabilizer correction required when traversing a positive raw edge.

                                                  Equations
                                                  Instances For
                                                    theorem GraphCoveringTheory.Kurosh.Internal.positiveStepVertex_endpoint {ι : Type v} (G : ι → Type u) [(i : ι) → Group (G i)] (H : Subgroup (FreeProduct G)) {a b : RawBassSerreVertex G} (e : a ⟶ b) (u : ↥H) (hu : ↑u • rawTreeRepresentative G H (actionOrbitMk (↥H) (RawBassSerreVertex G) a) = a) :
                                                    noncomputable def GraphCoveringTheory.Kurosh.Internal.negativeStepVertex {ι : Type v} (G : ι → Type u) [(i : ι) → Group (G i)] (H : Subgroup (FreeProduct G)) {a b : RawBassSerreVertex G} (e : a ⟶ b) (u : ↥H) (hu : ↑u • rawTreeRepresentative G H (actionOrbitMk (↥H) (RawBassSerreVertex G) b) = b) :

                                                    The stabilizer correction required when traversing a negative raw edge.

                                                    Equations
                                                    Instances For
                                                      theorem GraphCoveringTheory.Kurosh.Internal.negativeStepVertex_endpoint {ι : Type v} (G : ι → Type u) [(i : ι) → Group (G i)] (H : Subgroup (FreeProduct G)) {a b : RawBassSerreVertex G} (e : a ⟶ b) (u : ↥H) (hu : ↑u • rawTreeRepresentative G H (actionOrbitMk (↥H) (RawBassSerreVertex G) b) = b) :

                                                      Align the endpoint of a rooted raw tree path using the subgroup generated by tree data.

                                                      Equations
                                                      Instances For
                                                        noncomputable def GraphCoveringTheory.Kurosh.Internal.rawPathProduct {ι : Type v} (G : ι → Type u) [(i : ι) → Group (G i)] (H : Subgroup (FreeProduct G)) {x : RawBassSerreVertex G} :

                                                        The element of the tree Kurosh product reconstructed along a rooted raw tree path.

                                                        Equations
                                                        Instances For
                                                          noncomputable def GraphCoveringTheory.Kurosh.Internal.rawSpanningTreePath {ι : Type v} (G : ι → Type u) [(i : ι) → Group (G i)] (x : RawBassSerreVertex G) :

                                                          The unique path in the raw spanning tree from the identity vertex.

                                                          Equations
                                                          Instances For