Documentation

Mathlib.Combinatorics.Quiver.Covering

Covering #

This file defines coverings of quivers as prefunctors that are bijective on the so-called stars and costars at each vertex of the domain.

Main definitions #

Main statements #

TODO #

Clean up the namespaces by renaming Prefunctor to Quiver.Prefunctor.

Tags #

Cover, covering, quiver, path, lift

@[reducible, inline]
abbrev Quiver.Star {U : Type u_1} [Quiver U] (u : U) :
Type (max u_1 u)

The Quiver.Star at a vertex is the collection of arrows whose source is the vertex. The type Quiver.Star u is defined to be Σ (v : U), (u ⟶ v).

Equations
@[reducible, inline]
abbrev Quiver.Star.mk {U : Type u_1} [Quiver U] {u v : U} (f : u v) :

Constructor for Quiver.Star. Defined to be Sigma.mk.

Equations
@[reducible, inline]
abbrev Quiver.Costar {U : Type u_1} [Quiver U] (v : U) :
Type (max u_1 u)

The Quiver.Costar at a vertex is the collection of arrows whose target is the vertex. The type Quiver.Costar v is defined to be Σ (u : U), (u ⟶ v).

Equations
@[reducible, inline]
abbrev Quiver.Costar.mk {U : Type u_1} [Quiver U] {u v : U} (f : u v) :

Constructor for Quiver.Costar. Defined to be Sigma.mk.

Equations
def Prefunctor.star {U : Type u_1} [Quiver U] {V : Type u_2} [Quiver V] (φ : U ⥤q V) (u : U) :

A prefunctor induces a map of Quiver.Star at every vertex.

Equations
@[simp]
theorem Prefunctor.star_fst {U : Type u_1} [Quiver U] {V : Type u_2} [Quiver V] (φ : U ⥤q V) (u : U) (a✝ : Quiver.Star u) :
(φ.star u a✝).fst = φ.obj a✝.fst
@[simp]
theorem Prefunctor.star_snd {U : Type u_1} [Quiver U] {V : Type u_2} [Quiver V] (φ : U ⥤q V) (u : U) (a✝ : Quiver.Star u) :
(φ.star u a✝).snd = φ.map a✝.snd
def Prefunctor.costar {U : Type u_1} [Quiver U] {V : Type u_2} [Quiver V] (φ : U ⥤q V) (u : U) :

A prefunctor induces a map of Quiver.Costar at every vertex.

Equations
@[simp]
theorem Prefunctor.costar_fst {U : Type u_1} [Quiver U] {V : Type u_2} [Quiver V] (φ : U ⥤q V) (u : U) (a✝ : Quiver.Costar u) :
(φ.costar u a✝).fst = φ.obj a✝.fst
@[simp]
theorem Prefunctor.costar_snd {U : Type u_1} [Quiver U] {V : Type u_2} [Quiver V] (φ : U ⥤q V) (u : U) (a✝ : Quiver.Costar u) :
(φ.costar u a✝).snd = φ.map a✝.snd
@[simp]
theorem Prefunctor.star_apply {U : Type u_1} [Quiver U] {V : Type u_2} [Quiver V] (φ : U ⥤q V) {u v : U} (e : u v) :
@[simp]
theorem Prefunctor.costar_apply {U : Type u_1} [Quiver U] {V : Type u_2} [Quiver V] (φ : U ⥤q V) {u v : U} (e : u v) :
theorem Prefunctor.star_comp {U : Type u_1} [Quiver U] {V : Type u_3} [Quiver V] (φ : U ⥤q V) {W : Type u_2} [Quiver W] (ψ : V ⥤q W) (u : U) :
(φ ⋙q ψ).star u = ψ.star (φ.obj u) φ.star u
theorem Prefunctor.costar_comp {U : Type u_1} [Quiver U] {V : Type u_3} [Quiver V] (φ : U ⥤q V) {W : Type u_2} [Quiver W] (ψ : V ⥤q W) (u : U) :
(φ ⋙q ψ).costar u = ψ.costar (φ.obj u) φ.costar u
structure Prefunctor.IsCovering {U : Type u_1} [Quiver U] {V : Type u_2} [Quiver V] (φ : U ⥤q V) :

A prefunctor is a covering of quivers if it defines bijections on all stars and costars.

@[simp]
theorem Prefunctor.IsCovering.map_injective {U : Type u_1} [Quiver U] {V : Type u_2} [Quiver V] (φ : U ⥤q V) (hφ : φ.IsCovering) {u v : U} :
Function.Injective fun (f : u v) => φ.map f
theorem Prefunctor.IsCovering.comp {U : Type u_1} [Quiver U] {V : Type u_2} [Quiver V] (φ : U ⥤q V) {W : Type u_3} [Quiver W] (ψ : V ⥤q W) (hφ : φ.IsCovering) (hψ : ψ.IsCovering) :
theorem Prefunctor.IsCovering.of_comp_right {U : Type u_3} [Quiver U] {V : Type u_1} [Quiver V] (φ : U ⥤q V) {W : Type u_2} [Quiver W] (ψ : V ⥤q W) (hψ : ψ.IsCovering) (hφψ : (φ ⋙q ψ).IsCovering) :
theorem Prefunctor.IsCovering.of_comp_left {U : Type u_1} [Quiver U] {V : Type u_2} [Quiver V] (φ : U ⥤q V) {W : Type u_3} [Quiver W] (ψ : V ⥤q W) (hφ : φ.IsCovering) (hφψ : (φ ⋙q ψ).IsCovering) (φsur : Function.Surjective φ.obj) :

The star of the symmetrification of a quiver at a vertex u is equivalent to the sum of the star and the costar at u in the original quiver.

Equations

The costar of the symmetrification of a quiver at a vertex u is equivalent to the sum of the costar and the star at u in the original quiver.

Equations
theorem Prefunctor.symmetrifyStar {U : Type u_1} [Quiver U] {V : Type u_2} [Quiver V] (φ : U ⥤q V) (u : U) :
theorem Prefunctor.symmetrifyCostar {U : Type u_1} [Quiver U] {V : Type u_2} [Quiver V] (φ : U ⥤q V) (u : U) :
theorem Prefunctor.IsCovering.symmetrify {U : Type u_1} [Quiver U] {V : Type u_2} [Quiver V] (φ : U ⥤q V) (hφ : φ.IsCovering) :
@[reducible, inline]
abbrev Quiver.PathStar {U : Type u_1} [Quiver U] (u : U) :
Type (max u_1 u u_1)

The path star at a vertex u is the type of all paths starting at u. The type Quiver.PathStar u is defined to be Σ v : U, Path u v.

Equations
@[reducible, inline]
abbrev Quiver.PathStar.mk {U : Type u_1} [Quiver U] {u v : U} (p : Path u v) :

Constructor for Quiver.PathStar. Defined to be Sigma.mk.

Equations
def Prefunctor.pathStar {U : Type u_1} [Quiver U] {V : Type u_2} [Quiver V] (φ : U ⥤q V) (u : U) :

A prefunctor induces a map of path stars.

Equations
@[simp]
theorem Prefunctor.pathStar_apply {U : Type u_1} [Quiver U] {V : Type u_2} [Quiver V] (φ : U ⥤q V) {u v : U} (p : Quiver.Path u v) :
theorem Prefunctor.pathStar_injective {U : Type u_1} [Quiver U] {V : Type u_2} [Quiver V] (φ : U ⥤q V) (hφ : ∀ (u : U), Function.Injective (φ.star u)) (u : U) :
theorem Prefunctor.pathStar_surjective {U : Type u_1} [Quiver U] {V : Type u_2} [Quiver V] (φ : U ⥤q V) (hφ : ∀ (u : U), Function.Surjective (φ.star u)) (u : U) :
theorem Prefunctor.pathStar_bijective {U : Type u_1} [Quiver U] {V : Type u_2} [Quiver V] (φ : U ⥤q V) (hφ : ∀ (u : U), Function.Bijective (φ.star u)) (u : U) :
theorem Prefunctor.IsCovering.pathStar_bijective {U : Type u_1} [Quiver U] {V : Type u_2} [Quiver V] {φ : U ⥤q V} (hφ : φ.IsCovering) (u : U) :

In a quiver with involutive inverses, the star and costar at every vertex are equivalent. This map is induced by Quiver.reverse.

Equations
  • One or more equations did not get rendered due to their size.
@[simp]
theorem Quiver.starEquivCostar_apply_fst {U : Type u_1} [Quiver U] [HasInvolutiveReverse U] (u : U) (e : Star u) :
@[simp]
@[simp]
@[simp]
theorem Quiver.starEquivCostar_apply {U : Type u_1} [Quiver U] [HasInvolutiveReverse U] {u v : U} (e : u v) :
@[simp]