{-# OPTIONS --without-K #-}
module pointed.core where
open import sum
open import equality.core
open import function.core
open import function.isomorphism.core
PSet : ∀ i → Set _
PSet i = Σ (Set i) λ X → X
PMap : ∀ {i j} → PSet i → PSet j → Set _
PMap (X , x) (Y , y) = Σ (X → Y) λ f → f x ≡ y
_∘P_ : ∀ {i j k}{𝓧 : PSet i}{𝓨 : PSet j}{𝓩 : PSet k}
→ PMap 𝓨 𝓩 → PMap 𝓧 𝓨 → PMap 𝓧 𝓩
(g , q) ∘P (f , p) = (g ∘ f , ap g p · q)
instance
pmap-comp : ∀ {i j k} → Composition _ _ _ _ _ _
pmap-comp {i}{j}{k} = record
{ U₁ = PSet i
; U₂ = PSet j
; U₃ = PSet k
; hom₁₂ = PMap
; hom₂₃ = PMap
; hom₁₃ = PMap
; _∘_ = _∘P_ }