Documentation

GroupoidModel.Pointed.Basic

Here we define pointed categories and pointed groupoids as well as prove some basic lemmas.

@[reducible, inline]
abbrev CategoryTheory.PCat :
Type (max (max (u + 1) (v + 1)) u)
Equations
Instances For
    @[reducible, inline]

    The functor that takes PCat to Cat by forgetting the points

    Equations
    Instances For
      @[simp]
      @[simp]
      theorem CategoryTheory.PCat.id_map {C : PCat} {X Y : C.base} (f : X Y) :
      @[simp]
      theorem CategoryTheory.PCat.comp_obj {C D E : PCat} (F : C D) (G : D E) (X : C.base) :
      @[simp]
      theorem CategoryTheory.PCat.comp_map {C D E : PCat} (F : C D) (G : D E) {X Y : C.base} (f : X Y) :
      @[simp]
      theorem CategoryTheory.PCat.map_comp_fiber {C : Type u} [Category.{v, u} C] {F : Functor C PCat} {x y z : C} (f : x y) (g : y z) :
      theorem CategoryTheory.PCat.eqToHom_point_aux {P1 P2 : PCat} (eq : P1 = P2) :

      This is the proof of equality used in the eqToHom in PCat.eqToHom_point

      theorem CategoryTheory.PCat.eqToHom_fiber {P1 P2 : PCat} (eq : P1 = P2) :

      This shows that the fiber map of an eqToHom in PCat is an eqToHom

      def CategoryTheory.PCat.objFiber {Γ : Type u₂} [Category.{v₂, u₂} Γ] (α : Functor Γ PCat) (x : Γ) :
      (forgetToCat.obj (α.obj x))
      Equations
      Instances For
        def CategoryTheory.PCat.mapFiber {Γ : Type u₂} [Category.{v₂, u₂} Γ] (α : Functor Γ PCat) {x y : Γ} (f : x y) :
        Equations
        Instances For
          @[simp]
          theorem CategoryTheory.PCat.mapFiber_comp {Γ : Type u₂} [Category.{v₂, u₂} Γ] (α : Functor Γ PCat) {x y z : Γ} (f : x y) (g : y z) :
          theorem CategoryTheory.PCat.eqToHom_base_map {x y : PCat} (eq : x = y) {a b : x.base} (f : a b) :
          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            @[reducible, inline]
            abbrev CategoryTheory.PGrpd :
            Type (max (max (u + 1) (v + 1)) u)
            Equations
            Instances For
              @[reducible, inline]

              The functor that takes PGrpd to Grpd by forgetting the points

              Equations
              Instances For
                @[simp]
                theorem CategoryTheory.PGrpd.id_map {C : PGrpd} {X Y : C.base} (f : X Y) :
                @[simp]
                theorem CategoryTheory.PGrpd.comp_obj {C D E : PGrpd} (F : C D) (G : D E) (X : C.base) :
                @[simp]
                theorem CategoryTheory.PGrpd.comp_map {C D E : PGrpd} (F : C D) (G : D E) {X Y : C.base} (f : X Y) :
                @[simp]
                theorem CategoryTheory.PGrpd.map_comp_fiber {C : Type u} [Category.{v, u} C] {F : Functor C PGrpd} {x y z : C} (f : x y) (g : y z) :
                theorem CategoryTheory.PGrpd.eqToHom_point_aux {P1 P2 : PGrpd} (eq : P1 = P2) :

                This is the proof of equality used in the eqToHom in PGrpd.eqToHom_point

                theorem CategoryTheory.PGrpd.eqToHom_fiber {P1 P2 : PGrpd} (eq : P1 = P2) :

                This shows that the fiber map of an eqToHom in PGrpd is an eqToHom

                def CategoryTheory.PGrpd.objFiber {Γ : Type u₂} [Category.{v₂, u₂} Γ] (α : Functor Γ PGrpd) (x : Γ) :
                (forgetToGrpd.obj (α.obj x))
                Equations
                Instances For
                  theorem CategoryTheory.PGrpd.objFiber_naturality {Γ : Type u₂} [Category.{v₂, u₂} Γ] {Δ : Type u_1} [Category.{u_2, u_1} Δ] (σ : Functor Δ Γ) (α : Functor Γ PGrpd) (x : Δ) :
                  objFiber (σ.comp α) x = objFiber α (σ.obj x)
                  def CategoryTheory.PGrpd.mapFiber {Γ : Type u₂} [Category.{v₂, u₂} Γ] (α : Functor Γ PGrpd) {x y : Γ} (f : x y) :
                  Equations
                  Instances For
                    @[simp]
                    theorem CategoryTheory.PGrpd.mapFiber_comp {Γ : Type u₂} [Category.{v₂, u₂} Γ] (α : Functor Γ PGrpd) {x y z : Γ} (f : x y) (g : y z) :
                    theorem CategoryTheory.PGrpd.mapFiber_naturality {Γ : Type u₂} [Category.{v₂, u₂} Γ] (α : Functor Γ PGrpd) {Δ : Type u_1} [Category.{u_2, u_1} Δ] (σ : Functor Δ Γ) {x y : Δ} (f : x y) :
                    mapFiber (σ.comp α) f = mapFiber α (σ.map f)
                    @[reducible, inline]
                    abbrev CategoryTheory.PGrpd.objFiber'EqToHom {Γ : Type u₂} [Category.{v₂, u₂} Γ] {A : Functor Γ Grpd} {α : Functor Γ PGrpd} (h : α.comp forgetToGrpd = A) (x : Γ) :
                    Functor ((α.comp forgetToGrpd).obj x) (A.obj x)

                    This definition ensures that we deal with the functor (α ⋙ forgetToGrpd).obj x ⥤ A.obj x as opposed to the

                    Equations
                    Instances For
                      @[simp]
                      theorem CategoryTheory.PGrpd.objFiber'_rfl {Γ : Type u₂} [Category.{v₂, u₂} Γ] {α : Functor Γ PGrpd} (x : Γ) :
                      objFiber' x = objFiber α x
                      @[simp]
                      theorem CategoryTheory.PGrpd.objFiber'_heq {Γ : Type u₂} [Category.{v₂, u₂} Γ] {A : Functor Γ Grpd} {α : Functor Γ PGrpd} (h : α.comp forgetToGrpd = A) {x : Γ} :
                      objFiber' h x (α.obj x).fiber
                      theorem CategoryTheory.PGrpd.objFiber'_naturality {Γ : Type u₂} [Category.{v₂, u₂} Γ] {Δ : Type u_1} [Category.{u_2, u_1} Δ] (σ : Functor Δ Γ) {A : Functor Γ Grpd} {α : Functor Γ PGrpd} (h : α.comp forgetToGrpd = A) (x : Δ) :
                      objFiber' x = objFiber' h (σ.obj x)
                      def CategoryTheory.PGrpd.mapFiber'EqToHom {Γ : Type u₂} [Category.{v₂, u₂} Γ] {A : Functor Γ Grpd} {α : Functor Γ PGrpd} (h : α.comp forgetToGrpd = A) {x y : Γ} (f : x y) :
                      (A.map f).obj (objFiber' h x) (objFiber'EqToHom h y).obj ((α.map f).base.obj (α.obj x).fiber)
                      Equations
                      Instances For
                        @[simp]
                        theorem CategoryTheory.PGrpd.mapFiber'_id {Γ : Type u₂} [Category.{v₂, u₂} Γ] {A : Functor Γ Grpd} {α : Functor Γ PGrpd} (h : α.comp forgetToGrpd = A) {x : Γ} :
                        @[simp]
                        theorem CategoryTheory.PGrpd.mapFiber'_heq {Γ : Type u₂} [Category.{v₂, u₂} Γ] {A : Functor Γ Grpd} {α : Functor Γ PGrpd} (h : α.comp forgetToGrpd = A) {x y : Γ} (f : x y) :
                        mapFiber' h f (α.map f).fiber
                        theorem CategoryTheory.PGrpd.mapFiber'_comp_aux0 {Γ : Type u₂} [Category.{v₂, u₂} Γ] {A : Functor Γ Grpd} {α : Functor Γ PGrpd} (h : α.comp forgetToGrpd = A) {z : Γ} :
                        Grpd.of (forgetToGrpd.obj (α.obj z)) = A.obj z
                        theorem CategoryTheory.PGrpd.mapFiber'_comp_aux1 {Γ : Type u₂} [Category.{v₂, u₂} Γ] {A : Functor Γ Grpd} {α : Functor Γ PGrpd} (h : α.comp forgetToGrpd = A) {x y z : Γ} (f : x y) (g : y z) :
                        theorem CategoryTheory.PGrpd.mapFiber'_comp {Γ : Type u₂} [Category.{v₂, u₂} Γ] {A : Functor Γ Grpd} {α : Functor Γ PGrpd} (h : α.comp forgetToGrpd = A) {x y z : Γ} (f : x y) (g : y z) :
                        theorem CategoryTheory.PGrpd.mapFiber'_naturality {Γ : Type u₂} [Category.{v₂, u₂} Γ] {A : Functor Γ Grpd} {α : Functor Γ PGrpd} (h : α.comp forgetToGrpd = A) {Δ : Type u_1} [Category.{u_2, u_1} Δ] (σ : Functor Δ Γ) {x y : Δ} (f : x y) :
                        mapFiber' f = mapFiber' h (σ.map f)
                        @[simp]
                        theorem CategoryTheory.PGrpd.mapFiber'_rfl {Γ : Type u₂} [Category.{v₂, u₂} Γ] {α : Functor Γ PGrpd} {x y : Γ} (f : x y) :
                        mapFiber' f = mapFiber α f
                        theorem CategoryTheory.PGrpd.Functor.hext {Γ : Type u₂} [Category.{v₂, u₂} Γ] (F G : Functor Γ PGrpd) (hbase : F.comp forgetToGrpd = G.comp forgetToGrpd) (hfiber_obj : ∀ (x : Γ), (F.obj x).fiber (G.obj x).fiber) (hfiber_map : ∀ {x y : Γ} (f : x y), (F.map f).fiber (G.map f).fiber) :
                        F = G
                        theorem CategoryTheory.PGrpd.functorTo_map_id_aux {Γ : Type u₁} [Category.{v₁, u₁} Γ] (A : Functor Γ Grpd) (fibObj : (x : Γ) → (A.obj x)) (x : Γ) :
                        (A.map (CategoryStruct.id x)).obj (fibObj x) = fibObj x
                        theorem CategoryTheory.PGrpd.functorTo_map_comp_aux {Γ : Type u₁} [Category.{v₁, u₁} Γ] (A : Functor Γ Grpd) (fibObj : (x : Γ) → (A.obj x)) {x y z : Γ} (f : x y) (g : y z) :
                        (A.map (CategoryStruct.comp f g)).obj (fibObj x) = (A.map g).obj ((A.map f).obj (fibObj x))
                        def CategoryTheory.PGrpd.functorTo {Γ : Type u₁} [Category.{v₁, u₁} Γ] (A : Functor Γ Grpd) (fibObj : (x : Γ) → (A.obj x)) (fibMap : {x y : Γ} → (f : x y) → (A.map f).obj (fibObj x) fibObj y) (map_id : ∀ (x : Γ), fibMap (CategoryStruct.id x) = eqToHom ) (map_comp : ∀ {x y z : Γ} (f : x y) (g : y z), fibMap (CategoryStruct.comp f g) = CategoryStruct.comp (eqToHom ) (CategoryStruct.comp ((A.map g).map (fibMap f)) (fibMap g))) :

                        To define a functor into PGrpd we can make use of an existing functor into Grpd. This is definitinoally just Grothendieck.functorTo, but giving the user a slightly less bloated context.

                        Equations
                        Instances For
                          @[simp]
                          theorem CategoryTheory.PGrpd.functorTo_obj_base {Γ : Type u₁} [Category.{v₁, u₁} Γ] (A : Functor Γ Grpd) (fibObj : (x : Γ) → (A.obj x)) (fibMap : {x y : Γ} → (f : x y) → (A.map f).obj (fibObj x) fibObj y) (map_id : ∀ (x : Γ), fibMap (CategoryStruct.id x) = eqToHom ) (map_comp : ∀ {x y z : Γ} (f : x y) (g : y z), fibMap (CategoryStruct.comp f g) = CategoryStruct.comp (eqToHom ) (CategoryStruct.comp ((A.map g).map (fibMap f)) (fibMap g))) (x : Γ) :
                          ((functorTo A fibObj (fun {x y : Γ} => fibMap) map_id ).obj x).base = A.obj x
                          @[simp]
                          theorem CategoryTheory.PGrpd.functorTo_obj_fiber {Γ : Type u₁} [Category.{v₁, u₁} Γ] (A : Functor Γ Grpd) (fibObj : (x : Γ) → (A.obj x)) (fibMap : {x y : Γ} → (f : x y) → (A.map f).obj (fibObj x) fibObj y) (map_id : ∀ (x : Γ), fibMap (CategoryStruct.id x) = eqToHom ) (map_comp : ∀ {x y z : Γ} (f : x y) (g : y z), fibMap (CategoryStruct.comp f g) = CategoryStruct.comp (eqToHom ) (CategoryStruct.comp ((A.map g).map (fibMap f)) (fibMap g))) (x : Γ) :
                          ((functorTo A fibObj (fun {x y : Γ} => fibMap) map_id ).obj x).fiber = fibObj x
                          @[simp]
                          theorem CategoryTheory.PGrpd.functorTo_map_base {Γ : Type u₁} [Category.{v₁, u₁} Γ] (A : Functor Γ Grpd) (fibObj : (x : Γ) → (A.obj x)) (fibMap : {x y : Γ} → (f : x y) → (A.map f).obj (fibObj x) fibObj y) (map_id : ∀ (x : Γ), fibMap (CategoryStruct.id x) = eqToHom ) (map_comp : ∀ {x y z : Γ} (f : x y) (g : y z), fibMap (CategoryStruct.comp f g) = CategoryStruct.comp (eqToHom ) (CategoryStruct.comp ((A.map g).map (fibMap f)) (fibMap g))) {x y : Γ} (f : x y) :
                          ((functorTo A fibObj (fun {x y : Γ} => fibMap) map_id ).map f).base = A.map f
                          @[simp]
                          theorem CategoryTheory.PGrpd.functorTo_map_fiber {Γ : Type u₁} [Category.{v₁, u₁} Γ] (A : Functor Γ Grpd) (fibObj : (x : Γ) → (A.obj x)) (fibMap : {x y : Γ} → (f : x y) → (A.map f).obj (fibObj x) fibObj y) (map_id : ∀ (x : Γ), fibMap (CategoryStruct.id x) = eqToHom ) (map_comp : ∀ {x y z : Γ} (f : x y) (g : y z), fibMap (CategoryStruct.comp f g) = CategoryStruct.comp (eqToHom ) (CategoryStruct.comp ((A.map g).map (fibMap f)) (fibMap g))) {x y : Γ} (f : x y) :
                          ((functorTo A fibObj (fun {x y : Γ} => fibMap) map_id ).map f).fiber = fibMap f
                          @[simp]
                          theorem CategoryTheory.PGrpd.functorTo_forget {Γ : Type u₁} [Category.{v₁, u₁} Γ] {A : Functor Γ Grpd} {fibObj : (x : Γ) → (A.obj x)} {fibMap : {x y : Γ} → (f : x y) → (A.map f).obj (fibObj x) fibObj y} {map_id : ∀ (x : Γ), fibMap (CategoryStruct.id x) = eqToHom } {map_comp : ∀ {x y z : Γ} (f : x y) (g : y z), fibMap (CategoryStruct.comp f g) = CategoryStruct.comp (eqToHom ) (CategoryStruct.comp ((A.map g).map (fibMap f)) (fibMap g))} :