{-# OPTIONS --safe #-}
module Cubical.Categories.Instances.Sets.More where
open import Cubical.Foundations.Prelude
open import Cubical.Foundations.HLevels
open import Cubical.Foundations.Equiv
open import Cubical.Foundations.Isomorphism
open import Cubical.Foundations.Structure
open import Cubical.Foundations.Univalence
open import Cubical.Data.Sigma
open import Cubical.Data.Unit
open import Cubical.Categories.Category
open import Cubical.Categories.Functor
open import Cubical.Categories.Bifunctor.Redundant
open import Cubical.Categories.Instances.Sets
open import Cubical.Categories.Constructions.BinProduct
open import Cubical.Categories.Presheaf
private
variable
ℓ ℓ' : Level
open Functor
×SetsBif : Bifunctor (SET ℓ) (SET ℓ) (SET ℓ)
×SetsBif = mkBifunctorParAx F where
open BifunctorParAx
F : BifunctorParAx (SET ℓ) (SET ℓ) (SET ℓ)
F .Bif-ob A B = ⟨ A ⟩ × ⟨ B ⟩ , isSet× (A .snd) (B .snd)
F .Bif-homL f B (x , y) = f x , y
F .Bif-homR A g (x , y) = x , (g y)
F .Bif-hom× f g (x , y) = (f x) , (g y)
F .Bif-×-id = refl
F .Bif-×-seq f f' g g' = refl
F .Bif-L×-agree f = refl
F .Bif-R×-agree g = refl
×Sets : Functor ((SET ℓ) ×C (SET ℓ)) (SET ℓ)
×Sets = BifunctorToParFunctor ×SetsBif