Index Formula #
Adapted for Lean Pool from Arthur742Ramos/KuroshSubgroupTheorem,
commit 911707126c8b9bb0c764bf853008fe1053c0aad9: imports, API compatibility,
and proof organization were revised.
@[instance_reducible]
noncomputable instance
GraphCoveringTheory.actionCategoryFintype
(M A : Type u)
[Monoid M]
[MulAction M A]
[Fintype A]
:
Equations
@[instance_reducible]
noncomputable instance
GraphCoveringTheory.coverHomFintype
(α A : Type u)
[MulAction (FreeGroup α) A]
[Fintype α]
(a b : CoverVertex α A)
:
Equations
A Schreier edge is determined by its source and its free generator.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The action groupoid's chosen generating edges are indexed by a point and a generator.
Equations
Instances For
noncomputable def
GraphCoveringTheory.freeGroupoidTree
(G : Type u)
[CategoryTheory.Groupoid G]
[IsFreeGroupoid G]
[CategoryTheory.IsConnected G]
(r : G)
:
The geodesic spanning tree in the symmetrified generating quiver, rooted at r.
Equations
- GraphCoveringTheory.freeGroupoidTree G r = Quiver.geodesicSubtree (have this := r; this)
Instances For
@[reducible]
noncomputable def
GraphCoveringTheory.freeGroupoidTreeArborescence
(G : Type u)
[CategoryTheory.Groupoid G]
[IsFreeGroupoid G]
[CategoryTheory.IsConnected G]
(r : G)
:
The chosen geodesic spanning tree is an arborescence rooted at r.
Equations
- GraphCoveringTheory.freeGroupoidTreeArborescence G r = id (Quiver.geodesicArborescence (have this := r; this))
Instances For
@[reducible, inline]
noncomputable abbrev
GraphCoveringTheory.freeGroupoidGeneratorSet
(G : Type u)
[CategoryTheory.Groupoid G]
[IsFreeGroupoid G]
[CategoryTheory.IsConnected G]
(r : G)
:
The generators outside the chosen geodesic spanning tree.
Equations
Instances For
@[instance_reducible]
noncomputable instance
GraphCoveringTheory.freeGroupoidGeneratorSetFintype
(G : Type u)
[CategoryTheory.Groupoid G]
[IsFreeGroupoid G]
[CategoryTheory.IsConnected G]
[Fintype (IsFreeGroupoid.Generators G)]
[(a b : IsFreeGroupoid.Generators G) → Fintype (a ⟶ b)]
(r : G)
:
Fintype ↑(freeGroupoidGeneratorSet G r)
@[reducible, inline]
noncomputable abbrev
GraphCoveringTheory.generatorComplement
(G : Type u)
[CategoryTheory.Groupoid G]
[IsFreeGroupoid G]
(T : WideSubquiver (Quiver.Symmetrify (IsFreeGroupoid.Generators G)))
:
The generating edges outside a given wide subquiver and its reverse.
Equations
Instances For
@[instance_reducible]
noncomputable instance
GraphCoveringTheory.generatorComplementFintype
(G : Type u)
[CategoryTheory.Groupoid G]
[IsFreeGroupoid G]
[Fintype (IsFreeGroupoid.Generators G)]
[(a b : IsFreeGroupoid.Generators G) → Fintype (a ⟶ b)]
(T : WideSubquiver (Quiver.Symmetrify (IsFreeGroupoid.Generators G)))
:
Fintype ↑(generatorComplement G T)
Equations
theorem
GraphCoveringTheory.generatorComplement_card
(G : Type u)
[CategoryTheory.Groupoid G]
[IsFreeGroupoid G]
[Fintype (IsFreeGroupoid.Generators G)]
[(a b : IsFreeGroupoid.Generators G) → Fintype (a ⟶ b)]
(T : WideSubquiver (Quiver.Symmetrify (IsFreeGroupoid.Generators G)))
[Quiver.Arborescence (WideSubquiver.toType (Quiver.Symmetrify (IsFreeGroupoid.Generators G)) T)]
:
theorem
GraphCoveringTheory.freeGroupoidGeneratorSet_card
(G : Type u)
[CategoryTheory.Groupoid G]
[IsFreeGroupoid G]
[CategoryTheory.IsConnected G]
[Fintype (IsFreeGroupoid.Generators G)]
[(a b : IsFreeGroupoid.Generators G) → Fintype (a ⟶ b)]
(r : G)
:
theorem
GraphCoveringTheory.freeGroupoid_end_free_basis
(G : Type u)
[CategoryTheory.Groupoid G]
[IsFreeGroupoid G]
[CategoryTheory.IsConnected G]
[Fintype (IsFreeGroupoid.Generators G)]
[(a b : IsFreeGroupoid.Generators G) → Fintype (a ⟶ b)]
(r : G)
:
theorem
GraphCoveringTheory.freeGroupoid_end_free_rank
(G : Type u)
[CategoryTheory.Groupoid G]
[IsFreeGroupoid G]
[CategoryTheory.IsConnected G]
[Fintype (IsFreeGroupoid.Generators G)]
[(a b : IsFreeGroupoid.Generators G) → Fintype (a ⟶ b)]
(r : G)
:
theorem
GraphCoveringTheory.schreier_basis_fintype
(α : Type u)
[Fintype α]
(H : Subgroup (FreeGroup α))
[H.FiniteIndex]
:
Nonempty (FreeGroupBasis (Fin (H.index * Fintype.card α + 1 - H.index)) ↥H)
theorem
GraphCoveringTheory.schreier_basis_fintype_proved
(α : Type u)
[Fintype α]
[Nonempty α]
(H : Subgroup (FreeGroup α))
[H.FiniteIndex]
:
Nonempty (FreeGroupBasis (Fin (1 + H.index * (Fintype.card α - 1))) ↥H)