{-# OPTIONS --safe #-} module Cubical.Categories.Constructions.Power where open import Cubical.Foundations.Prelude open import Cubical.Categories.Category open import Cubical.Categories.Constructions.Product open import Cubical.Categories.Functor open import Cubical.Categories.Instances.Sets private variable ℓ ℓc ℓc' : Level open Category PowerCategory : (X : Type ℓ) (C : Category ℓc ℓc') → Category _ _ PowerCategory X C = ΠC X (λ _ → C) PseudoYoneda : {C : Category ℓc ℓc'} → Functor C (PowerCategory (C .ob) (SET ℓc')) PseudoYoneda {C = C} = Π-intro _ (λ _ → SET _) λ a → C [ a ,-] isFaithfulPseudoYoneda : {C : Category ℓc ℓc'} → Functor.isFaithful (PseudoYoneda {C = C}) isFaithfulPseudoYoneda {C = C} x y f g p = sym (C .⋆IdL f) ∙ (λ i → p i _ (C .id)) ∙ C .⋆IdL g