{-# OPTIONS --without-K --safe #-}
open import Categories.Category.Core
module Categories.Morphism.Regular {o â„“ e} (đť’ž : Category o â„“ e) where
open import Level
open import Categories.Morphism đť’ž
open import Categories.Diagram.Equalizer đť’ž
open import Categories.Diagram.Coequalizer đť’ž
open Category đť’ž
private
variable
A B : Obj
f : A ⇒ B
record RegularMono (f : A ⇒ B) : Set (o ⊔ ℓ ⊔ e) where
field
{ C } : Obj
g : B ⇒ C
h : B ⇒ C
equalizer : IsEqualizer f h g
record RegularEpi (f : A ⇒ B) : Set (o ⊔ ℓ ⊔ e) where
field
{ C } : Obj
h : C ⇒ A
g : C ⇒ A
coequalizer : IsCoequalizer h g f
RegularMono⇒Mono : RegularMono f → Mono f
RegularMono⇒Mono regular = IsEqualizer⇒Mono equalizer
where
open RegularMono regular
RegularEpi⇒Epi : RegularEpi f → Epi f
RegularEpi⇒Epi regular = IsCoequalizer⇒Epi coequalizer
where
open RegularEpi regular