Displayed category #
Given a type family F : C → Type*
on a category C
we define the type class Displayed F
of displayed categories over F
. A displayed category structure associates to each morphism f
in C
and terms X : F I
and Y : F J
a type HomOver f X Y
.
We think of F I
as the Fiber over I
, and we think of HomOver f X Y
as the type of morphisms
lying over f
starting from X
and ending at Y
. The data of a displayed category structure
also provides the dependent operations of identity and composition for HomOver
.
Finally, the modified laws of associativity and unitality hold dependently over the associativity
and unitality equalities in C
.
Main declarations #
Our main construction is the displayed category of a functor. Given a functor P : E ⥤ C
, the
associated displayed category on the fiber family fun I => P⁻¹ I
is provided by the instance
Functor.display
. Here HomOver f X Y
is given by the type BasedLift f src tgt
carrying data
witnessing morphisms in E
starting from src
and ending at tgt
and are mapped to f
under P
.
There is another displayed structure EBasedLift
associated to a functor P : E ⥤ C
which is
defined in terms of the displayed family of "fat" fibers, namely fun I => P⁻¹ᵉ I
where P⁻¹ᵉ I
is the fibers of P
at J
for all J
isomorphic to I
. The type EBasedLift f src tgt
is the
type of morphisms in E
starting from src
and ending at tgt
and are mapped, up to the specified
isomorphisms of src
and tgt
, to f
under P
.
We also provide various useful constructors for based-lifts:
BasedLift.tauto
regards a morphismg
of the domain categoryE
as a tautological based-lift of its imageP.map g
.BasedLift.id
andBasedLift.comp
provide the identity and composition of based-lifts, respectively.BasedLift.cast
casts a based-lift along an equality of the base morphisms using the equivalenceBasedLift.cast
.
Notation #
We provide the following notations:
X ⟶[f] Y
forDisplayedStruct.HomOver f x y
f ≫ₒ g
forDisplayedStruct.comp_over f g
𝟙ₒ X
forDisplayedStruct.id_over
Transporting a morphism f : I ⟶ J
along equalities w : I = I'
and w' : J = J'
.
Note: It might be a good idea to add this to eqToHom file.
Equations
- CategoryTheory.eqToHom.map w w' f = w' ▸ w ▸ f
Instances For
The diagram below commutes:
I --eqToHom w --> J
| |
f | | eqToHom.map w w' f
v v
I' --eqToHom w'-> J'
Cast an element of a Fiber along an equality of the base objects.
Equations
- CategoryTheory.Fiber.cast F w X = w ▸ X
Instances For
The type of morphisms indexed over morphisms of
C
.The identity morphism overlying the identity morphism of
C
.- comp_over {I J K : C} {f₁ : I ⟶ J} {f₂ : J ⟶ K} {X : F I} {Y : F J} {Z : F K} : (X ⟶[f₁] Y) → (Y ⟶[f₂] Z) → X ⟶[CategoryStruct.comp f₁ f₂] Z
Composition of morphisms overlying composition of morphisms of
C
.
Instances
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- CategoryTheory.«term𝟙ₒ» = Lean.ParserDescr.node `CategoryTheory.«term𝟙ₒ» 1024 (Lean.ParserDescr.symbol "𝟙ₒ")
Instances For
Equations
- CategoryTheory.«term_≫ₒ_» = Lean.ParserDescr.trailingNode `CategoryTheory.«term_≫ₒ_» 80 81 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ≫ₒ ") (Lean.ParserDescr.cat `term 80))
Instances For
- assoc_cast {I J K L : C} {f₁ : I ⟶ J} {f₂ : J ⟶ K} {f₃ : K ⟶ L} {X : F I} {Y : F J} {Z : F K} {W : F L} (g₁ : X ⟶[f₁] Y) (g₂ : Y ⟶[f₂] Z) (g₃ : Z ⟶[f₃] W) : DisplayedStruct.comp_over (DisplayedStruct.comp_over g₁ g₂) g₃ = ⋯ ▸ DisplayedStruct.comp_over g₁ (DisplayedStruct.comp_over g₂ g₃)
Instances
Equations
- CategoryTheory.Displayed.cast w g = w ▸ g
Instances For
Equations
- CategoryTheory.Displayed.castToHomInv w X = w ▸ 𝟙ₒ X
Instances For
Equations
- CategoryTheory.Displayed.castToHomMap w w' g = w ▸ w' ▸ g
Instances For
Equations
Instances For
The displayed diagram
X --------g--------> Y
| |
eqToHom w X | | eqToHom w' Y
v v
w ▸ X -------------> w ▸ Y
eqToHom.map w w' g
commutes.
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- CategoryTheory.Displayed.Total.mk X = ⟨I, X⟩
Instances For
Equations
- CategoryTheory.Displayed.Total.Hom.mk g = ⟨f, g⟩
Instances For
Equations
- One or more equations did not get rendered due to their size.
Equations
- CategoryTheory.Displayed.Total.category = { toCategoryStruct := CategoryTheory.Displayed.Total.categoryStruct, id_comp := ⋯, comp_id := ⋯, assoc := ⋯ }
Equations
Instances For
The type of lifts of a given morphism in the base with fixed source and target in the Fibers of the domain and codomain respectively.
- over_eq : CategoryStruct.comp (P.map self.hom) (CategoryTheory.eqToHom ⋯) = CategoryStruct.comp (CategoryTheory.eqToHom ⋯) f
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
The structure of based-lifts up to an isomorphism of the domain objects in the base.
X -------------------------------> Y
_ -
| |
| |
v v
P.obj X --------> I ------> J ----> P.obj Y
≅ f ≅
Instances For
The identity based-lift.
Equations
- CategoryTheory.BasedLift.id X = { hom := CategoryTheory.CategoryStruct.id ↑X, over_eq := ⋯ }
Instances For
The composition of based-lifts
Equations
- g₁.comp g₂ = { hom := CategoryTheory.CategoryStruct.comp g₁.hom g₂.hom, over_eq := ⋯ }
Instances For
Equations
- CategoryTheory.BasedLift.cast w g = { hom := g.hom, over_eq := ⋯ }
Instances For
Equations
- CategoryTheory.EBasedLift.id X = { hom := CategoryTheory.CategoryStruct.id X.obj, over_eq := ⋯ }
Instances For
Equations
- g₁.comp g₂ = { hom := CategoryTheory.CategoryStruct.comp g₁.hom g₂.hom, over_eq := ⋯ }
Instances For
Equations
- CategoryTheory.EBasedLift.cast w g = { hom := g.hom, over_eq := ⋯ }
Instances For
The display structure DisplayedStruct P
associated to a functor P : E ⥤ C
.
This instance makes the displayed notations _ ⟶[f] _
, _ ≫ₒ _
and 𝟙ₒ
available for based-lifts.
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
BasedLift.tauto
regards a morphism g
of the domain category E
as a
based-lift of its image P g
under functor P
.
Equations
- CategoryTheory.BasedLift.tauto g = { hom := g, over_eq := ⋯ }
Instances For
A morphism of E
coerced as a tautological based-lift.
Equations
Equations
Instances For
Equations
Instances For
EBasedLift.tauto
regards a morphism g
of the domain category E
as a
based-lift of its image P g
under functor P
.
Equations
- CategoryTheory.EBasedLift.tauto g = { hom := g, over_eq := ⋯ }
Instances For
A morphism of E
coerced as a tautological based-lift.
Equations
The displayed category of a functor P : E ⥤ C
.
Equations
- P.display = { toDisplayedStruct := P.displayedStruct, id_comp_cast := ⋯, comp_id_cast := ⋯, assoc_cast := ⋯ }
Equations
- P.edisplay = { toDisplayedStruct := P.isodisplay, id_comp_cast := ⋯, comp_id_cast := ⋯, assoc_cast := ⋯ }
The type Lift f tgt
of a lift of f
with the target tgt
consists of an object src
in
the Fiber of the domain of f
and a based-lift of f
starting at src
and ending at tgt
.
- src : F I
Instances For
The type CoLift f src
of a colift of f
with the source src
consists of an object tgt
in
the Fiber of the codomain of f
and a based-lift of f
starting at src
and ending at tgt
.
- tgt : F J