The Grothendieck construction gives a fibered category #
In this file we show that the Grothendieck applied to a pseudofunctor F
gives a fibered category over the base category.
We also provide a HasFibers
instance to ∫ F
, such that the fiber over S
is the
category F(S)
.
References #
[Vistoli2008] "Notes on Grothendieck Topologies, Fibered Categories and Descent Theory" by Angelo Vistoli
@[reducible, inline]
abbrev
CategoryTheory.Pseudofunctor.Grothendieck.domainCartesianLift
{𝒮 : Type u_1}
[Category.{u_2, u_1} 𝒮]
{F : Pseudofunctor (LocallyDiscrete 𝒮ᵒᵖ) Cat}
{R S : 𝒮}
(a : ↑(F.obj { as := Opposite.op S }))
(f : R ⟶ S)
:
The domain of the cartesian lift of f
.
Equations
Instances For
@[reducible, inline]
abbrev
CategoryTheory.Pseudofunctor.Grothendieck.cartesianLift
{𝒮 : Type u_1}
[Category.{u_2, u_1} 𝒮]
{F : Pseudofunctor (LocallyDiscrete 𝒮ᵒᵖ) Cat}
{R S : 𝒮}
(a : ↑(F.obj { as := Opposite.op S }))
(f : R ⟶ S)
:
The cartesian lift of f
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
instance
CategoryTheory.Pseudofunctor.Grothendieck.isHomLift_cartesianLift
{𝒮 : Type u_1}
[Category.{u_2, u_1} 𝒮]
{F : Pseudofunctor (LocallyDiscrete 𝒮ᵒᵖ) Cat}
{R S : 𝒮}
(a : ↑(F.obj { as := Opposite.op S }))
(f : R ⟶ S)
:
(forget F).IsHomLift f (cartesianLift a f)
@[reducible, inline]
abbrev
CategoryTheory.Pseudofunctor.Grothendieck.homCartesianLift
{𝒮 : Type u_1}
[Category.{u_2, u_1} 𝒮]
{F : Pseudofunctor (LocallyDiscrete 𝒮ᵒᵖ) Cat}
{R S : 𝒮}
{a : ↑(F.obj { as := Opposite.op S })}
(f : R ⟶ S)
{a' : F.Grothendieck}
(g : a'.base ⟶ R)
(φ' : a' ⟶ { base := S, fiber := a })
[(forget F).IsHomLift (CategoryStruct.comp g f) φ']
:
Given some lift φ'
of g ≫ f
, the canonical map from the domain of φ'
to the domain of
the cartesian lift of f
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
instance
CategoryTheory.Pseudofunctor.Grothendieck.isHomLift_homCartesianLift
{𝒮 : Type u_1}
[Category.{u_2, u_1} 𝒮]
{F : Pseudofunctor (LocallyDiscrete 𝒮ᵒᵖ) Cat}
{R S : 𝒮}
(a : ↑(F.obj { as := Opposite.op S }))
(f : R ⟶ S)
{a' : F.Grothendieck}
{φ' : a' ⟶ { base := S, fiber := a }}
{g : a'.base ⟶ R}
[(forget F).IsHomLift (CategoryStruct.comp g f) φ']
:
(forget F).IsHomLift g (homCartesianLift f g φ')
theorem
CategoryTheory.Pseudofunctor.Grothendieck.isStronglyCartesian_homCartesianLift
{𝒮 : Type u_1}
[Category.{u_2, u_1} 𝒮]
{F : Pseudofunctor (LocallyDiscrete 𝒮ᵒᵖ) Cat}
{R S : 𝒮}
(a : ↑(F.obj { as := Opposite.op S }))
(f : R ⟶ S)
:
(forget F).IsStronglyCartesian f (cartesianLift a f)
instance
CategoryTheory.Pseudofunctor.Grothendieck.instIsFiberedForget
{𝒮 : Type u_1}
[Category.{u_2, u_1} 𝒮]
{F : Pseudofunctor (LocallyDiscrete 𝒮ᵒᵖ) Cat}
:
forget F : ∫ F ⥤ 𝒮
is a fibered category.
def
CategoryTheory.Pseudofunctor.Grothendieck.ι
{𝒮 : Type u_1}
[Category.{u_2, u_1} 𝒮]
(F : Pseudofunctor (LocallyDiscrete 𝒮ᵒᵖ) Cat)
(S : 𝒮)
:
Functor (↑(F.obj { as := Opposite.op S })) F.Grothendieck
The inclusion map from F(S)
into ∫ F
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[simp]
theorem
CategoryTheory.Pseudofunctor.Grothendieck.ι_obj_base
{𝒮 : Type u_1}
[Category.{u_2, u_1} 𝒮]
(F : Pseudofunctor (LocallyDiscrete 𝒮ᵒᵖ) Cat)
(S : 𝒮)
(a : ↑(F.obj { as := Opposite.op S }))
:
@[simp]
theorem
CategoryTheory.Pseudofunctor.Grothendieck.ι_map_base
{𝒮 : Type u_1}
[Category.{u_2, u_1} 𝒮]
(F : Pseudofunctor (LocallyDiscrete 𝒮ᵒᵖ) Cat)
(S : 𝒮)
{a b : ↑(F.obj { as := Opposite.op S })}
(φ : a ⟶ b)
:
@[simp]
theorem
CategoryTheory.Pseudofunctor.Grothendieck.ι_obj_fiber
{𝒮 : Type u_1}
[Category.{u_2, u_1} 𝒮]
(F : Pseudofunctor (LocallyDiscrete 𝒮ᵒᵖ) Cat)
(S : 𝒮)
(a : ↑(F.obj { as := Opposite.op S }))
:
@[simp]
theorem
CategoryTheory.Pseudofunctor.Grothendieck.ι_map_fiber
{𝒮 : Type u_1}
[Category.{u_2, u_1} 𝒮]
(F : Pseudofunctor (LocallyDiscrete 𝒮ᵒᵖ) Cat)
(S : 𝒮)
{a b : ↑(F.obj { as := Opposite.op S })}
(φ : a ⟶ b)
:
def
CategoryTheory.Pseudofunctor.Grothendieck.compIso
{𝒮 : Type u_1}
[Category.{u_2, u_1} 𝒮]
(F : Pseudofunctor (LocallyDiscrete 𝒮ᵒᵖ) Cat)
(S : 𝒮)
:
The natural isomorphism encoding comp_const
.
Equations
- CategoryTheory.Pseudofunctor.Grothendieck.compIso F S = CategoryTheory.NatIso.ofComponents (fun (a : ↑(F.obj { as := Opposite.op S })) => CategoryTheory.eqToIso ⋯) ⋯
Instances For
@[simp]
theorem
CategoryTheory.Pseudofunctor.Grothendieck.compIso_hom_app
{𝒮 : Type u_1}
[Category.{u_2, u_1} 𝒮]
(F : Pseudofunctor (LocallyDiscrete 𝒮ᵒᵖ) Cat)
(S : 𝒮)
(X : ↑(F.obj { as := Opposite.op S }))
:
@[simp]
theorem
CategoryTheory.Pseudofunctor.Grothendieck.compIso_inv_app
{𝒮 : Type u_1}
[Category.{u_2, u_1} 𝒮]
(F : Pseudofunctor (LocallyDiscrete 𝒮ᵒᵖ) Cat)
(S : 𝒮)
(X : ↑(F.obj { as := Opposite.op S }))
:
theorem
CategoryTheory.Pseudofunctor.Grothendieck.comp_const
{𝒮 : Type u_1}
[Category.{u_2, u_1} 𝒮]
(F : Pseudofunctor (LocallyDiscrete 𝒮ᵒᵖ) Cat)
(S : 𝒮)
:
instance
CategoryTheory.Pseudofunctor.Grothendieck.instFullαCategoryObjLocallyDiscreteOppositeCatMkOpFiberForgetInducedFunctor
{𝒮 : Type u_1}
[Category.{u_3, u_1} 𝒮]
(F : Pseudofunctor (LocallyDiscrete 𝒮ᵒᵖ) Cat)
(S : 𝒮)
:
noncomputable instance
CategoryTheory.Pseudofunctor.Grothendieck.instHasFibersForget
{𝒮 : Type u_1}
[Category.{u_2, u_1} 𝒮]
(F : Pseudofunctor (LocallyDiscrete 𝒮ᵒᵖ) Cat)
:
HasFibers
instance for ∫ F
, where the fiber over S
is F.obj ⟨op S⟩
.
Equations
- One or more equations did not get rendered due to their size.