{-# OPTIONS --without-K --safe #-}
open import Categories.Category
open import Data.Product
open import Categories.Morphism
open import Categories.Diagram.Cocone.Properties
open import Categories.Category.Construction.Cocones
open import Categories.Functor
module Helper-Definitions where
open import Level
_[_β
_] : {o β e : Level} (π : Category o β e) β (A B : Category.Obj π) β Set _
_[_β
_] π A B = _β
_ π A B
record Full-β {o β e} {π : Category o β e} {o' β' e' : Level} {π : Category o' β' e'} (F : Functor π π) : Set (o β β β e β o' β β' β e') where
private
module π = Category π
module π = Category π
module F = Functor F
field
preimage : β (X Y : π.Obj) β π [ F.β X , F.β Y ] β π [ X , Y ]
preimage-prop : β (X Y : π.Obj) β (f : π [ F.β X , F.β Y ]) β π [ F.β (preimage X Y f) β f ]
record singleton-hom {o β e} (π : Category o β e) (X Y : Category.Obj π) : Set (β β e) where
field
arr : π [ X , Y ]
unique : β (f : π [ X , Y ]) β π [ arr β f ]
uniqueβ : β (f g : π [ X , Y ]) β π [ f β g ]
uniqueβ f g =
let open Category π in
Equiv.trans (Equiv.sym (unique f)) (unique g)
_[_=β!=>_] : {o β e : Level} β (π : Category o β e) (X Y : Category.Obj π) β Set _
_[_=β!=>_] = singleton-hom
_<===>_ : β {a b : Level} β Set a β Set b β Set (a β b)
_<===>_ x y = (x β y) Γ (y β x)
infix -5 _<===>_
private
variable
o β e : Level
C D J Jβ² : Category o β e
module _ {F : Functor J C} (G : Functor C D) where
private
module C = Category C
module D = Category D
module F = Functor F
module G = Functor G
module CF = Cocone F
GF = G βF F
module CGF = Cocone GF
F-map-Cocone-Functor : Functor (Cocones F) (Cocones (G βF F))
F-map-Cocone-Functor = record
{ Fβ = F-map-CoconeΛ‘ G
; Fβ = F-map-CoconeβΛ‘ G
; identity = Ξ» {A} β G.identity
; homomorphism = Ξ» {X} {Y} {Z} {f} {g} β G.homomorphism
; F-resp-β = G.F-resp-β
}