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.tautoregards a morphismgof the domain categoryEas a tautological based-lift of its imageP.map g.BasedLift.idandBasedLift.compprovide the identity and composition of based-lifts, respectively.BasedLift.castcasts a based-lift along an equality of the base morphisms using the equivalenceBasedLift.cast.
Notation #
We provide the following notations:
X ⟶[f] YforDisplayedStruct.HomOver f x yf ≫ₒ gforDisplayedStruct.comp_over f g𝟙ₒ XforDisplayedStruct.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