Home
module category-theory.displayed-category where
Imports
open import foundations.universe
open import foundations.identity-type
open import foundations.set
open import foundations.transport
open import category-theory.category
record DisplayedCategoryData {o h} (π : CategoryData o h) oβ² hβ² : Type (o β h β lsuc oβ² β lsuc hβ²) where
private module π = CategoryData π
field
Ob : π.Ob β Type oβ²
Hom : β {A B : π.Ob} (f : π.Hom A B) (X : Ob A) (Y : Ob B) β Type hβ²
id : β {A} (X : Ob A) β Hom (π.id A) X X
_β_ : β {A B C} {g : π.Hom B C} {f : π.Hom A B}
β β {X : Ob A} {Y : Ob B} {Z : Ob C}
β (gβ² : Hom g Y Z)
β (fβ² : Hom f X Y)
β Hom (g π.β f) X Z
infix 35 _β_
record isDisplayedCategory {o h} (π : Category o h)
{oβ² hβ²} (π : DisplayedCategoryData (Category.π π) oβ² hβ²) : Type (o β h β oβ² β hβ²) where
open DisplayedCategoryData π
private module π = Category π
field
identΛ‘ : β {A B} {f : π.Hom A B} {X Y} (fβ² : Hom f X Y)
β subst (Ξ» x β Hom x X Y) (π.identΛ‘ f) (id Y β fβ²) οΌ fβ²
identΚ³ : β {A B} {f : π.Hom A B} {X Y} (fβ² : Hom f X Y)
β subst (Ξ» x β Hom x X Y) (π.identΚ³ f) (fβ² β id X) οΌ fβ²
identΒ² : β {A} X
β subst (Ξ» x β Hom x X X) (π.identΒ² A) (id X β id X) οΌ id X
assoc : β {A B C D} {f : π.Hom A B} {g : π.Hom B C} {h : π.Hom C D}
β β {X Y Z W} {fβ² : Hom f X Y} {gβ² : Hom g Y Z} {hβ² : Hom h Z W}
β subst (Ξ» x β Hom x X W) π.assoc ((hβ² β gβ²) β fβ²) οΌ hβ² β (gβ² β fβ²)
sym-assoc : β {A B C D} {f : π.Hom A B} {g : π.Hom B C} {h : π.Hom C D}
β β {X Y Z W} {fβ² : Hom f X Y} {gβ² : Hom g Y Z} {hβ² : Hom h Z W}
β subst (Ξ» x β Hom x X W) π.sym-assoc (hβ² β (gβ² β fβ²)) οΌ (hβ² β gβ²) β fβ²
is-set-hom : β {A B} {f : π.Hom A B} {X Y}
β isSet (Hom f X Y)
record DisplayedCategory {o h} (π : Category o h) oβ² hβ² : Type (o β h β lsuc oβ² β lsuc hβ²) where
field
π : DisplayedCategoryData (Category.π π) oβ² hβ²
is-displayed-category : isDisplayedCategory π π
open DisplayedCategoryData π public
open isDisplayedCategory is-displayed-category public
private variable
o h : Level
π : Category o h
oppositeDispCat : DisplayedCategory π o h β DisplayedCategory (oppositeCat π) o h
oppositeDispCat π = record
{ π = record
{ Ob = Ob
; Hom = Ξ» f X Y β Hom f Y X
; id = id
; _β_ = Ξ» gβ² fβ² β fβ² β gβ²
}
; is-displayed-category = record
{ identΛ‘ = identΚ³
; identΚ³ = identΛ‘
; identΒ² = identΒ²
; assoc = sym-assoc
; sym-assoc = assoc
; is-set-hom = is-set-hom
}
}
where
open DisplayedCategory π
_ : β {o h} {π : Category o h} {oβ² hβ²} {π : DisplayedCategory π oβ² hβ²}
β oppositeDispCat (oppositeDispCat π) οΌ π
_ = refl