{-# OPTIONS --without-K --safe #-} open import Categories.Category module Categories.Category.Cocomplete.Properties.Construction {o ℓ e} (C : Category o ℓ e) where open import Level open import Categories.Category.Construction.Arrow using (Morphism) open import Categories.Category.Cocomplete using (Cocomplete) open import Categories.Diagram.Coequalizer C using (Coequalizer) open import Categories.Diagram.Colimit.Properties using (build-colim) open import Categories.Functor using (Functor) open import Categories.Object.Coproduct.Indexed C using (AllCoproductsOf) open import Categories.Object.Coproduct.Indexed.Properties C using (lowerAllCoproductsOf) private variable o′ ℓ′ e′ : Level module _ (coprods : AllCoproductsOf (o′ ⊔ ℓ′)) (coequalizer : ∀ {A B} (f g : C [ A , B ]) → Coequalizer f g) where AllCoproducts×Coequalizer⇒Cocomplete : Cocomplete o′ ℓ′ e′ C AllCoproducts×Coequalizer⇒Cocomplete F = build-colim {OP = OP} {MP = MP} (coequalizer _ _) where open Functor F OP = lowerAllCoproductsOf ℓ′ coprods F₀ MP = lowerAllCoproductsOf o′ coprods λ f → F₀ (Morphism.dom f)