Here we define pointed categories and pointed groupoids as well as prove some basic lemmas.
@[reducible, inline]
Instances For
@[reducible, inline]
The functor that takes PCat to Cat by forgetting the points
Equations
Instances For
Equations
- CategoryTheory.PCat.«term⇓_» = Lean.ParserDescr.node `CategoryTheory.PCat.«term⇓_» 1024 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol "⇓") (Lean.ParserDescr.cat `term 1024))
Instances For
Equations
- CategoryTheory.PCat.«term_⟱» = Lean.ParserDescr.trailingNode `CategoryTheory.PCat.«term_⟱» 1024 1024 (Lean.ParserDescr.symbol "⟱")
Instances For
@[simp]
@[simp]
@[simp]
theorem
CategoryTheory.PCat.id_fiber
{C : PCat}
:
(CategoryStruct.id C).fiber = CategoryStruct.id (((Functor.id Cat).map (CategoryStruct.id C).base).obj C.fiber)
@[simp]
theorem
CategoryTheory.PCat.comp_obj
{C D E : PCat}
(F : C ⟶ D)
(G : D ⟶ E)
(X : ↑C.base)
:
(forgetToCat.map (CategoryStruct.comp F G)).obj X = (forgetToCat.map G).obj ((forgetToCat.map F).obj X)
@[simp]
theorem
CategoryTheory.PCat.comp_map
{C D E : PCat}
(F : C ⟶ D)
(G : D ⟶ E)
{X Y : ↑C.base}
(f : X ⟶ Y)
:
(forgetToCat.map (CategoryStruct.comp F G)).map f = (forgetToCat.map G).map ((forgetToCat.map F).map f)
@[simp]
@[simp]
theorem
CategoryTheory.PCat.map_id_fiber
{C : Type u}
[Category.{v, u} C]
{F : Functor C PCat}
{x : C}
:
@[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)
:
(F.map (CategoryStruct.comp f g)).fiber = CategoryStruct.comp (eqToHom ⋯)
(CategoryStruct.comp ((forgetToCat.map (F.map g)).map (F.map f).fiber) (F.map g).fiber)
def
CategoryTheory.PCat.objFiber
{Γ : Type u₂}
[Category.{v₂, u₂} Γ]
(α : Functor Γ PCat)
(x : Γ)
:
↑(forgetToCat.obj (α.obj x))
Equations
- CategoryTheory.PCat.objFiber α x = (α.obj x).fiber
Instances For
def
CategoryTheory.PCat.mapObjFiber
{Γ : Type u₂}
[Category.{v₂, u₂} Γ]
(α : Functor Γ PCat)
{x y : Γ}
(f : x ⟶ y)
:
↑(forgetToCat.obj (α.obj y))
Equations
Instances For
def
CategoryTheory.PCat.mapFiber
{Γ : Type u₂}
[Category.{v₂, u₂} Γ]
(α : Functor Γ PCat)
{x y : Γ}
(f : x ⟶ y)
:
Equations
- CategoryTheory.PCat.mapFiber α f = (α.map f).fiber
Instances For
@[simp]
theorem
CategoryTheory.PCat.mapFiber_id
{Γ : Type u₂}
[Category.{v₂, u₂} Γ]
(α : Functor Γ PCat)
{x : Γ}
:
theorem
CategoryTheory.PCat.mapFiber_comp
{Γ : Type u₂}
[Category.{v₂, u₂} Γ]
(α : Functor Γ PCat)
{x y z : Γ}
(f : x ⟶ y)
(g : y ⟶ z)
:
mapFiber α (CategoryStruct.comp f g) = CategoryStruct.comp (eqToHom ⋯) (CategoryStruct.comp ((forgetToCat.map (α.map g)).map (mapFiber α f)) (mapFiber α g))
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[reducible, inline]
Instances For
@[reducible, inline]
The functor that takes PGrpd to Grpd by forgetting the points
Equations
Instances For
The forgetful functor from PGrpd to PCat
Equations
Instances For
Equations
- CategoryTheory.PGrpd.«term⇓_» = Lean.ParserDescr.node `CategoryTheory.PGrpd.«term⇓_» 1024 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol "⇓") (Lean.ParserDescr.cat `term 1024))
Instances For
Equations
- CategoryTheory.PGrpd.«term_⟱» = Lean.ParserDescr.trailingNode `CategoryTheory.PGrpd.«term_⟱» 1024 1024 (Lean.ParserDescr.symbol "⟱")
Instances For
@[simp]
@[simp]
@[simp]
theorem
CategoryTheory.PGrpd.id_fiber
{C : PGrpd}
:
(CategoryStruct.id C).fiber = CategoryStruct.id ((Grpd.forgetToCat.map (CategoryStruct.id C).base).obj C.fiber)
@[simp]
theorem
CategoryTheory.PGrpd.comp_obj
{C D E : PGrpd}
(F : C ⟶ D)
(G : D ⟶ E)
(X : ↑C.base)
:
(forgetToGrpd.map (CategoryStruct.comp F G)).obj X = (forgetToGrpd.map G).obj ((forgetToGrpd.map F).obj X)
@[simp]
theorem
CategoryTheory.PGrpd.comp_map
{C D E : PGrpd}
(F : C ⟶ D)
(G : D ⟶ E)
{X Y : ↑C.base}
(f : X ⟶ Y)
:
(forgetToGrpd.map (CategoryStruct.comp F G)).map f = (forgetToGrpd.map G).map ((forgetToGrpd.map F).map f)
@[simp]
@[simp]
theorem
CategoryTheory.PGrpd.map_id_fiber
{C : Type u}
[Category.{v, u} C]
{F : Functor C PGrpd}
{x : C}
:
@[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)
:
(F.map (CategoryStruct.comp f g)).fiber = CategoryStruct.comp (eqToHom ⋯)
(CategoryStruct.comp ((forgetToGrpd.map (F.map g)).map (F.map f).fiber) (F.map g).fiber)
def
CategoryTheory.PGrpd.objFiber
{Γ : Type u₂}
[Category.{v₂, u₂} Γ]
(α : Functor Γ PGrpd)
(x : Γ)
:
↑(forgetToGrpd.obj (α.obj x))
Equations
- CategoryTheory.PGrpd.objFiber α x = (α.obj x).fiber
Instances For
theorem
CategoryTheory.PGrpd.objFiber_naturality
{Γ : Type u₂}
[Category.{v₂, u₂} Γ]
{Δ : Type u_1}
[Category.{u_2, u_1} Δ]
(σ : Functor Δ Γ)
(α : Functor Γ PGrpd)
(x : Δ)
:
def
CategoryTheory.PGrpd.mapObjFiber
{Γ : Type u₂}
[Category.{v₂, u₂} Γ]
(α : Functor Γ PGrpd)
{x y : Γ}
(f : x ⟶ y)
:
↑(forgetToGrpd.obj (α.obj y))
Equations
Instances For
def
CategoryTheory.PGrpd.mapFiber
{Γ : Type u₂}
[Category.{v₂, u₂} Γ]
(α : Functor Γ PGrpd)
{x y : Γ}
(f : x ⟶ y)
:
Equations
- CategoryTheory.PGrpd.mapFiber α f = (α.map f).fiber
Instances For
@[simp]
theorem
CategoryTheory.PGrpd.mapFiber_id
{Γ : Type u₂}
[Category.{v₂, u₂} Γ]
(α : Functor Γ PGrpd)
{x : Γ}
:
theorem
CategoryTheory.PGrpd.mapFiber_comp
{Γ : Type u₂}
[Category.{v₂, u₂} Γ]
(α : Functor Γ PGrpd)
{x y z : Γ}
(f : x ⟶ y)
(g : y ⟶ z)
:
mapFiber α (CategoryStruct.comp f g) = CategoryStruct.comp (eqToHom ⋯) (CategoryStruct.comp ((forgetToGrpd.map (α.map g)).map (mapFiber α f)) (mapFiber α g))
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)
:
@[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
def
CategoryTheory.PGrpd.objFiber'
{Γ : Type u₂}
[Category.{v₂, u₂} Γ]
{A : Functor Γ Grpd}
{α : Functor Γ PGrpd}
(h : α.comp forgetToGrpd = A)
(x : Γ)
:
↑(A.obj x)
Equations
Instances For
@[simp]
theorem
CategoryTheory.PGrpd.objFiber'_rfl
{Γ : Type u₂}
[Category.{v₂, u₂} Γ]
{α : Functor Γ PGrpd}
(x : Γ)
:
@[simp]
theorem
CategoryTheory.PGrpd.objFiber'_heq
{Γ : Type u₂}
[Category.{v₂, u₂} Γ]
{A : Functor Γ Grpd}
{α : Functor Γ PGrpd}
(h : α.comp forgetToGrpd = A)
{x : Γ}
:
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 : Δ)
:
def
CategoryTheory.PGrpd.mapFiber'EqToHom
{Γ : Type u₂}
[Category.{v₂, u₂} Γ]
{A : Functor Γ Grpd}
{α : Functor Γ PGrpd}
(h : α.comp forgetToGrpd = A)
{x y : Γ}
(f : x ⟶ y)
:
Equations
Instances For
def
CategoryTheory.PGrpd.mapFiber'
{Γ : Type u₂}
[Category.{v₂, u₂} Γ]
{A : Functor Γ Grpd}
{α : Functor Γ PGrpd}
(h : α.comp forgetToGrpd = A)
{x y : Γ}
(f : x ⟶ y)
:
Equations
Instances For
@[simp]
theorem
CategoryTheory.PGrpd.mapFiber'_id
{Γ : Type u₂}
[Category.{v₂, u₂} Γ]
{A : Functor Γ Grpd}
{α : Functor Γ PGrpd}
(h : α.comp forgetToGrpd = A)
{x : Γ}
:
theorem
CategoryTheory.PGrpd.mapFiber'_comp_aux0
{Γ : Type u₂}
[Category.{v₂, u₂} Γ]
{A : Functor Γ Grpd}
{α : Functor Γ PGrpd}
(h : α.comp forgetToGrpd = A)
{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)
:
(A.map (CategoryStruct.comp f g)).obj (objFiber' h x) = (eqToHom ⋯).obj ((forgetToGrpd.map (α.map (CategoryStruct.comp f g))).obj (α.obj x).fiber)
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)
:
@[simp]
theorem
CategoryTheory.PGrpd.mapFiber'_rfl
{Γ : Type u₂}
[Category.{v₂, u₂} Γ]
{α : Functor Γ PGrpd}
{x y : Γ}
(f : x ⟶ y)
:
theorem
CategoryTheory.PGrpd.functorTo_map_id_aux
{Γ : Type u₁}
[Category.{v₁, u₁} Γ]
(A : Functor Γ Grpd)
(fibObj : (x : Γ) → ↑(A.obj x))
(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
- CategoryTheory.PGrpd.functorTo A fibObj fibMap map_id map_comp = CategoryTheory.Functor.Grothendieck.functorTo A fibObj (fun {x y : Γ} => fibMap) map_id ⋯
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 : Γ)
:
@[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 : Γ)
:
@[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)
:
@[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)
:
@[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))}
: