{-# OPTIONS --without-K --safe #-} open import Categories.Category module Categories.Category.Topos {o ℓ e} (C : Category o ℓ e) where open import Level open import Categories.Category.CartesianClosed C open import Categories.Category.Complete.Finitely C open import Categories.Diagram.Equalizer C open import Categories.Diagram.SubobjectClassifier C import Categories.Category.Complete.Finitely.Properties as Fₚ open Category C record Topos : Set (levelOfTerm C) where field cartesianClosed : CartesianClosed subobjectClassifier : SubobjectClassifier equalizer : ∀ {A B} (f g : A ⇒ B) → Equalizer f g finitelyComplete : FinitelyComplete finitelyComplete = record { cartesian = CartesianClosed.cartesian cartesianClosed ; equalizer = equalizer } open FinitelyComplete finitelyComplete using (module equalizer; pullback) public open Fₚ finitelyComplete using (finiteLimit) public