{-# OPTIONS --cubical --safe #-} open import Prelude open import Categories module Categories.Pullback {ℓ₁ ℓ₂} (C : Category ℓ₁ ℓ₂) where open Category C record Pullback (f : X ⟶ Z) (g : Y ⟶ Z) : Type (ℓ₁ ℓ⊔ ℓ₂) where field {P} : Ob p₁ : P ⟶ X p₂ : P ⟶ Y commute : f · p₁ ≡ g · p₂ ump : ∀ {A : Ob} (h₁ : A ⟶ X) (h₂ : A ⟶ Y) → f · h₁ ≡ g · h₂ → ∃![ u ] ((p₁ · u ≡ h₁) × (p₂ · u ≡ h₂)) HasPullbacks : Type (ℓ₁ ℓ⊔ ℓ₂) HasPullbacks = ∀ {X Y Z} (f : X ⟶ Z) (g : Y ⟶ Z) → Pullback f g