Displayed Category #
Given a type family F : C → Type*
on a category C
we define the type class Display F
of
displayed categories over F
. A displayed category structure associates to each morphism f
in C
and terms X : F c
and Y : F d
a type HomOver f X Y
whose terms are to be thought of as
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, up to casting, dependently over
the associativity and unitality equalities in C
.
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 c => P⁻¹ c
is provided by the instance
instDisplayOfFunctor
. 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
.
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.- We can cast a based-lift along an equality of the base morphisms using the equivalence
BasedLift.cast
.
We provide the following notations:
X ⟶[f] Y
forDisplayStruct.HomOver f x y
f ≫ₗ g
forDisplayStruct.comp_over f g
We show that for a functor P
, the type BasedLift P
induces a display category structure on the
fiber family fun c => P⁻¹ c
.
Equations
- CategoryTheory.Fiber F I = F I
Instances For
Cast an element of a fiber along an equality of the base objects.
Equations
- CategoryTheory.fiberCast F w X = w ▸ X
Instances For
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.eqToHomMap w w' f = w' ▸ w ▸ f
Instances For
Equations
- ⋯ = ⋯
Instances For
The type of morphisms indexed over morphisms of
C
.- id_over : {I : C} → (X : F I) → X ⟶[CategoryTheory.CategoryStruct.id I] X
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 ⟶[CategoryTheory.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
- id_over : {I : C} → (X : F I) → X ⟶[CategoryTheory.CategoryStruct.id I] X
- 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), CategoryTheory.DisplayStruct.comp_over (CategoryTheory.DisplayStruct.comp_over g₁ g₂) g₃ = ⋯ ▸ CategoryTheory.DisplayStruct.comp_over g₁ (CategoryTheory.DisplayStruct.comp_over g₂ g₃)
Instances
Equations
- CategoryTheory.HomOver.cast w g = w ▸ g
Instances For
EqToHom w X
is a hom-over eqToHom w
from X
to w ▸ X
.
Equations
- CategoryTheory.HomOver.eqToHom w X = w ▸ 𝟙ₗ X
Instances For
Equations
- CategoryTheory.HomOver.eqToHomMap w w' g = w ▸ w' ▸ g
Instances For
Equations
- CategoryTheory.HomOver.eqToHomMapId w g = w ▸ g
Instances For
Equations
Instances For
Equations
- CategoryTheory.Display.«term∫_» = Lean.ParserDescr.node `CategoryTheory.Display.term∫_ 75 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ∫ ") (Lean.ParserDescr.cat `term 75))
Instances For
Equations
- CategoryTheory.Display.TotalHom X Y = ((f : X.fst ⟶ Y.fst) × X.snd ⟶[f] Y.snd)
Instances For
Equations
- One or more equations did not get rendered due to their size.
Equations
- CategoryTheory.Display.instPartialOrderHomTotal = PartialOrder.mk ⋯
Equations
- CategoryTheory.Display.instCategoryTotalHom = inferInstance
Equations
- One or more equations did not get rendered due to their size.
Equations
- CategoryTheory.Display.instCategoryTotal = CategoryTheory.Category.mk ⋯ ⋯ ⋯
The category structure on the fibers of a display category.
Equations
- CategoryTheory.Display.instCategoryFiber = CategoryTheory.Category.mk ⋯ ⋯ ⋯
Equations
- CategoryTheory.Display.Vert F = ((I : C) × F I)
Instances For
- base_eq : X.fst = Y.fst
- over_id : X.snd ⟶[CategoryTheory.CategoryStruct.id X.fst] ⋯ ▸ Y.snd
Instances For
Equations
- CategoryTheory.Display.instCategoryVert = CategoryTheory.Category.mk ⋯ ⋯ ⋯
A hom-over of an isomorphism is invertible if
- out : ∃ (inv : Y ⟶[CategoryTheory.inv f] X), ⋯ ▸ CategoryTheory.DisplayStruct.comp_over g inv = 𝟙ₗ X ∧ ⋯ ▸ CategoryTheory.DisplayStruct.comp_over inv g = 𝟙ₗ Y
The existence of an inverse hom-over.
Instances
The existence of an inverse hom-over.
The IsoDisplay structure associated to a family F
of types over a category C
: A display category is iso-display if every hom-over an isomorphism is itself a display isomorphism.
- id_over : {I : C} → (X : F I) → X ⟶[CategoryTheory.CategoryStruct.id I] X
- 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), CategoryTheory.DisplayStruct.comp_over (CategoryTheory.DisplayStruct.comp_over g₁ g₂) g₃ = ⋯ ▸ CategoryTheory.DisplayStruct.comp_over g₁ (CategoryTheory.DisplayStruct.comp_over g₂ g₃)
- iso_HomOver : ∀ {I J : C} {f : I ⟶ J} [inst : CategoryTheory.IsIso f] {X : F I} {Y : F J} (g : X ⟶[f] Y), CategoryTheory.Display.IsIso g