{-# OPTIONS --safe #-}
module Cubical.Categories.Constructions.ChangeOfObjects where
open import Cubical.Foundations.Prelude
open import Cubical.Foundations.Equiv
open import Cubical.Foundations.Equiv.Properties
open import Cubical.Functions.Embedding
open import Cubical.Data.Sigma
open import Cubical.HITs.PropositionalTruncation as PropTrunc
open import Cubical.Categories.Category
open import Cubical.Categories.Functor
open import Cubical.Categories.Constructions.FullSubcategory
private
variable
ℓC ℓC' ℓD ℓD' ℓX : Level
open Category
open Functor
module _
{X : Type ℓX}
(C : Category ℓC ℓC')
(F : X → (C .ob)) where
ChangeOfObjects : Category ℓX ℓC'
ChangeOfObjects .ob = X
ChangeOfObjects .Hom[_,_] x y = C [ F x , F y ]
ChangeOfObjects .id = C .id
ChangeOfObjects ._⋆_ = C ._⋆_
ChangeOfObjects .⋆IdL = C .⋆IdL
ChangeOfObjects .⋆IdR = C .⋆IdR
ChangeOfObjects .⋆Assoc = C .⋆Assoc
ChangeOfObjects .isSetHom = C .isSetHom
π : Functor ChangeOfObjects C
π .F-ob = F
π .F-hom = λ z → z
π .F-id = refl
π .F-seq _ _ = refl