Anna Williams, 30 October 2025
Definition of a displayed functor.
\begin{code}
{-# OPTIONS --safe --without-K #-}
open import MLTT.Spartan
open import Notation.UnderlyingType
open import UF.DependentEquality
open import Categories.Pre
open import Categories.Functor
open import Categories.Notation.Pre
open import Categories.Notation.Functor
open import Categories.Displayed.Pre
open import Categories.Displayed.Notation.Pre
module Categories.Displayed.Functor where
\end{code}
We define displayed functors analagously to functors, but analogously to
displayed categories we work with some "base" functor. Using this functor, we
map between the base precategories which lie below the displayed precategories.
\begin{code}
record DisplayedFunctor {P : Precategory đŚ đŁ}
{P' : Precategory đŚ' đŁ'}
(F' : Functor ⨠P ⊠⨠P' âŠ)
(D : DisplayedPrecategory đ¤ đĽ P)
(D' : DisplayedPrecategory đ¤' đĽ' P')
: (đŚ â đŁ â đ¤ â đ¤' â đĽ â đĽ') Ě where
open PrecategoryNotation P
open FunctorNotation F' renaming (functor-map to F)
open DispPrecatNotation D
open DispPrecatNotation D'
field
Fâ : {p : obj P}
â obj[ p ]
â obj[ F p ]
Fâ : {a b : obj P}
{f : hom a b}
{x : obj[ a ]}
{y : obj[ b ]}
â hom[ f ] x y
â hom[ F f ] (Fâ x) (Fâ y)
disp-id-preserved : {c : obj P}
{a : obj[ c ]}
â Fâ D-đđ
ďźâŚ (Îť - â hom[ - ] (Fâ a) (Fâ a)) , id-preserved c â§
D-đđ
disp-distrib : {a b c : obj P}
{x : obj[ a ]}
{y : obj[ b ]}
{z : obj[ c ]}
{f : hom a b}
{g : hom b c}
{đ : hom[ f ] x y}
{đ : hom[ g ] y z}
â Fâ (đ â đ)
ďźâŚ (Îť - â hom[ - ] _ _) , distributivity g f â§
Fâ đ â Fâ đ
\end{code}