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
    Instances For
      @[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
        Instances For
          @[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
            Instances For
              @[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
                Instances For
                  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
                    Instances For
                      @[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
                      @[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
                      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
                        Instances For
                          @[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.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.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.

                          Instances For
                            @[simp]
                            theorem Prefunctor.IsCovering.map_injective {U : Type u_1} [Quiver U] {V : Type u_2} [Quiver V] (φ : U ⥤q V) ( : φ.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) ( : φ.IsCovering) ( : ψ.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) ( : ψ.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) ( : φ.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
                              Instances For

                                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
                                  Instances For
                                    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) ( : φ.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
                                      Instances For
                                        @[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
                                          Instances For
                                            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
                                              Instances For
                                                @[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) ( : ∀ (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) ( : ∀ (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) ( : ∀ (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} ( : φ.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
                                                  Instances For
                                                    @[simp]
                                                    @[simp]
                                                    @[simp]
                                                    theorem Quiver.starEquivCostar_apply_fst {U : Type u_1} [Quiver U] [HasInvolutiveReverse U] (u : U) (e : Star u) :
                                                    @[simp]
                                                    theorem Quiver.starEquivCostar_apply {U : Type u_1} [Quiver U] [HasInvolutiveReverse U] {u v : U} (e : u v) :
                                                    @[simp]