open import Cat.Diagram.Coequaliser.RegularEpi
open import Cat.Diagram.Pullback.Properties
open import Cat.Instances.Shape.Terminal
open import Cat.Functor.FullSubcategory
open import Cat.Diagram.Limit.Finite
open import Cat.Morphism.Orthogonal
open import Cat.Diagram.Equaliser
open import Cat.Diagram.Pullback
open import Cat.Diagram.Initial
open import Cat.Instances.Comma
open import Cat.Instances.Slice
open import Cat.Diagram.Image
open import Cat.Prelude

import Cat.Reasoning

module Cat.Morphism.StrongEpi {o β} (C : Precategory o β) where

open Cat.Reasoning C


A strong epimorphism is an epimorphism which is, additionally, left orthogonal to every monomorphism. Unfolding that definition, for to be a strong epimorphism means that, given any mono, and arbitrarily fit into a commutative diagram like

there is a contractible space of maps which make the two triangles commute. In the particular case of strong epimorphisms, it actually suffices to have any lift: they are automatically unique.

is-strong-epi : β {a b} β Hom a b β Type _
is-strong-epi f = is-epic f Γ β {c d} (m : c βͺ d) β mβ₯m C f (m .mor)

liftsβis-strong-epi
: β {a b} {f : Hom a b}
β is-epic f
β ( β {c d} (m : c βͺ d) {u} {v} β v β f β‘ m .mor β u
β Ξ£[ w β Hom b c ] ((w β f β‘ u) Γ (m .mor β w β‘ v)))
β is-strong-epi f
liftsβis-strong-epi epic lift-it = epic , Ξ» {c} {d} mm sq β
contr (lift-it mm sq) Ξ» { (x , p , q) β Ξ£-prop-path!
(mm .monic _ _ (sym (q β sym (lift-it mm sq .snd .snd)))) }

abstract
is-strong-epi-is-prop
: β {a b} (f : Hom a b) β is-prop (is-strong-epi f)
is-strong-epi-is-prop f = hlevel 1


To see that the uniqueness needed for orthogonality against a monomorphism is redundant, suppose youβd had two fillers as in

Since is a monomorphism, it suffices to have but by commutativity of the lower triangles we have

## Propertiesπ

The proofs here are transcribed from . Strong epimorphisms are closed under composition, for suppose that and are strong epics, and is the monomorphism to lift against. Fit them in a skewed commutative rectangle like

By considering most of the right half as a single, weirdly-shaped square (the commutative βsquareβ), we get an intermediate lift such that and β such that and organise into the faces of a lifting diagram, too$Since is a strong epic, we have a second lift now satisfying and A quick calculation, implicit in the diagram, shows that is precisely the lift for against strong-epi-compose : β {a b c} (g : Hom a b) (f : Hom b c) β is-strong-epi g β is-strong-epi f β is-strong-epi (f β g) strong-epi-compose g f (g-e , g-s) (f-e , f-s) = liftsβis-strong-epi epi fg-s where epi : is-epic (f β g) epi Ξ± Ξ² p = f-e Ξ± Ξ²$ g-e (Ξ± β f) (Ξ² β f) $sym (assoc _ _ _) Β·Β· p Β·Β· assoc _ _ _ fg-s : β {c d} (m : c βͺ d) {u v} β v β f β g β‘ m .mor β u β _ fg-s z {u} {v} vfg=zu = let (w , wg=u , zw=vf) = g-s z (sym (assoc _ _ _) β vfg=zu) .centre (t , tf=w , zt=v) = f-s z (sym zw=vf) .centre in t , pulll tf=w β wg=u , zt=v  Additionally, there is a partial converse to this result: If the composite is a strong epi, then is, too! Still thinking of the same diagram, suppose the whole diagram is a strong epi, and youβre given to lift against We donβt have a as before, but we can take to get a lift strong-epi-cancel-l : β {a b c} (f : Hom b c) (g : Hom a b) β is-strong-epi (f β g) β is-strong-epi f strong-epi-cancel-l g f (gf-epi , gf-str) = liftsβis-strong-epi epi lifts where epi : is-epic g epi Ξ± Ξ² p = gf-epi Ξ± Ξ² (extendl p) lifts : β {c d} (m : c βͺ d) {u} {v} β v β g β‘ m .mor β u β _ lifts {Ξ±} {Ξ²} mm {u} {v} sq = lifted .fst , lemma , lifted .snd .snd where lifted = gf-str mm {u = u β f} {v = v} (extendl sq) .centre lemma = mm .monic _ _ (pulll (lifted .snd .snd) β sq)  As an immediate consequence of the definition, a monic strong epi is an isomorphism. This is because, being left orthogonal to all monos, itβd be, in particular, left orthogonal to itself, and the only self-orthogonal maps are isos. strong-epi-monoβis-invertible : β {a b} {f : Hom a b} β is-monic f β is-strong-epi f β is-invertible f strong-epi-monoβis-invertible mono (_ , epi) = self-orthogonalβis-iso C _ (epi (record { monic = mono }))  # Regular epis are strongπ Suppose that is a regular epimorphism, that is, it identifies as some quotient of β the stuff of is that of but with new potential identifications thrown in. Since weβre taking βstrong epimorphismβ as the definition of βwell-behaved epimorphismβ, weβd certainly like regular epis to be strong epis! This is fortunately the case. Suppose that is the coequaliser of some maps 1, and that is a monomorphism we want to lift against. By the universal property of a coequaliser, to βslide overβ to a map it suffices to show that it also coequalises the pair i.e.Β that Since is a mono, itβll suffice to show that but note that since the square commutes. Then we have so there is a map such that β thatβs commutativity of the top triangle handled. For the bottom triangle, since is a regular epic (thus an epic), to show itβll suffice to show that But by assumption, and by the universal property! Weβre done. is-regular-epiβis-strong-epi : β {a b} (f : Hom a b) β is-regular-epi C f β is-strong-epi f is-regular-epiβis-strong-epi {a} {b} f regular = liftsβis-strong-epi r.is-regular-epiβis-epic (Ξ» m x β map m x , r.factors , lemma m x) where module r = is-regular-epi regular renaming (arrβ to s ; arrβ to t) module _ {c} {d} (z : c βͺ d) {u} {v} (vf=zu : v β f β‘ z .mor β u) where module z = _βͺ_ z map : Hom b c map = r.universal {e' = u}$ z.monic _ _ $z .mor β u β r.s β‘β¨ extendl (sym vf=zu) β©β‘ v β f β r.s β‘β¨ reflβ©ββ¨ r.coequal β©β‘ v β f β r.t β‘Λβ¨ extendl (sym vf=zu) β©β‘Λ z .mor β u β r.t β lemma = r.is-regular-epiβis-epic _ _$
sym (vf=zu β pushr (sym r.factors))


# Imagesπ

Now we come to the raison dβΓͺtre for strong epimorphisms: Images. The definition of image we use is very complicated, and the justification is already present there, but the short of it is that the image of a morphism is a monomorphism which is universal amongst those through which factors.

Since images have a universal property, and one involving comma categories of slice categories at that, they are tricky to come by. However, in the case where we factor as

and the epimorphism is strong, then we automatically have an image factorisation of on our hands!

strong-epi-monoβimage
: β {a b im} (f : Hom a b)
β (aβim : Hom a im) β is-strong-epi aβim
β (imβb : Hom im b) β is-monic imβb
β imβb β aβim β‘ f
β Image C f
strong-epi-monoβimage f aβim (_ , str-epi) imβb mono fact = go where
open Initial
open /-Obj
open /-Hom
open βObj
open βHom

obj : βObj (!Const (cut f)) (Forget-full-subcat {P = is-monic β map})
obj .x = tt
obj .y = cut imβb , mono
obj .map = record { map = aβim ; commutes = fact }


Actually, for an image factorisation, we donβt need that be an epimorphism β we just need it to be orthogonal to every monomorphism. This turns out to be precisely the data of being initial in the relevant comma categories.

  go : Image C f
go .bot = obj
go .hasβ₯ other = contr dh unique where
module o = βObj other

the-lifting =
str-epi
(record { monic = o.y .snd })
{u = o.map .map}
{v = imβb} (sym (o.map .commutes β sym fact))

dh : βHom (!Const (cut f)) _ obj other
dh .Ξ± = tt
dh .Ξ² .map = the-lifting .centre .fst
dh .Ξ² .commutes = the-lifting .centre .snd .snd
dh .sq = ext (idr _ β sym (the-lifting .centre .snd .fst))

unique : β om β dh β‘ om
unique om = βHom-path _ _ refl $ext$ ap fst $the-lifting .paths$
om .Ξ² .map , sym (ap map (om .sq)) β idr _ , om .Ξ² .commutes


# In the lex caseπ

Suppose that is additionally left exact, or more restrictively, that it has all equalisers. In that case, a map left orthogonal to all monomorphisms is automatically an epimorphism, thus a strong epi. Letβs see how. First, thereβs a quick observation to be made about epimorphisms: if is such that there exists a with then is an epimorphism. You can think of this as a special case of β epic implies epicβ or as a short calculation:

retract-is-epi
: β {a b} {f : Hom a b} {g : Hom b a}
β f β g β‘ id
β is-epic f
retract-is-epi {f = f} {g} p Ξ± Ξ² q =
Ξ± β f β g β‘β¨ extendl q β©β‘
Ξ² β f β g β‘β¨ elimr p β©β‘
Ξ²         β


We already know that if lifts exist and the map is epic, then itβs a strong epi, so letβs assume that lifts exist β weβll have no need for uniqueness, here. Given and to lift against, form their equaliser and arrange them like

equaliser-liftsβis-strong-epi
: β {a b} {f : Hom a b}
β (β {a b} (f g : Hom a b) β Equaliser C f g)
β ( β {c d} (m : c βͺ d) {u} {v} β v β f β‘ m .mor β u
β Ξ£[ w β Hom b c ] ((w β f β‘ u) Γ (m .mor β w β‘ v)))
β is-strong-epi f
equaliser-liftsβis-strong-epi {f = f} eqs ls = liftsβis-strong-epi epi ls where


By the universal property of since thereβs thereβs a unique map such that Arranging and the identity(!) into a lifting square like the one above, we conclude the existence of a dotted map satisfying, most importantly, β so that being a retract, is an epimorphism.

  epi : is-epic f
epi u v uf=vf =
let
module ker = Equaliser (eqs u v)
k = ker.universal uf=vf
(w , p , q) = ls
(record { monic = is-equaliserβis-monic _ ker.has-is-eq })
{u = k} {v = id}
(idl _ β sym ker.factors)
e-epi : is-epic ker.equ
e-epi = retract-is-epi q


Now, is the universal map which equalises and β so that we have and since weβve just shown that is epic, this means we have β exactly what we wanted!

    in e-epi u v ker.equal


## Extremal epimorphismsπ

Another well-behaved subclass of epimorphism are the extremal epimorphisms: An epimorphism is extremal if when, given a factorisation through a monomorphism then is an isomorphism. In a finitely complete category, every extremal epimorphism is strong; the converse is immediate.

is-extremal-epiβis-strong-epi
: β {a b} {e : Hom a b}
β Finitely-complete C
β (β {c} (m : c βͺ b) (g : Hom a c) β e β‘ m .mor β g β is-invertible (m .mor))
β is-strong-epi e
is-extremal-epiβis-strong-epi {a} {b} {e} lex extremal =
equaliser-liftsβis-strong-epi lex.equalisers Ξ» w β Mk.the-lift w where
module lex = Finitely-complete lex


We adapt the proof from [Borceux (1994); Β§4.3.7]. After equaliser-liftsβis-strong-epi, it will suffice to construct some lift for a square with with monic. Pull back along to obtain the square

and obtain the unique factorisation Note that the map is a monomorphism since it results from pulling back a monomorphism.

    module Mk {c d : Ob} (m : c βͺ d) {u : Hom a c} {v : Hom b d}
(wit : v β e β‘ m .mor β u) where
module P = Pullback (lex.pullbacks v (m .mor)) renaming (pβ to q ; pβ to p)
r : Hom a P.apex
r = P.universal {pβ' = e} {pβ' = u} wit

abstract
q-mono : is-monic P.q
q-mono = is-monicβpullback-is-monic (m .monic) (rotate-pullback P.has-is-pb)


We thus have a factorisation of through a monomorphism which since was assumed extremal, must be an isomorphism. We define the diagonal map to be and compute that it commutes appropriately:

      q-iso : is-invertible P.q
q-iso = extremal record{ monic = q-mono } r (sym P.pββuniversal)

qβ»ΒΉ = q-iso .is-invertible.inv

the-lift : Ξ£ (Hom b c) Ξ» w β (w β e β‘ u) Γ (m .mor β w β‘ v)
the-lift .fst = P.p β qβ»ΒΉ
the-lift .snd .fst = m .monic _ _ $m .mor β (P.p β qβ»ΒΉ) β e β‘β¨ extendl (pulll (sym P.square)) β©β‘ (v β P.q) β qβ»ΒΉ β e β‘β¨ cancel-inner (q-iso .is-invertible.invl) β©β‘ v β e β‘β¨ wit β©β‘ m .mor β u β the-lift .snd .snd = invertibleβepic q-iso _ _$
(m .mor β (P.p β qβ»ΒΉ)) β P.q β‘β¨ pullr (cancelr (q-iso .is-invertible.invr)) β©β‘
m .mor β P.p                 β‘Λβ¨ P.square β©β‘Λ
v β P.q                      β

is-strong-epiβis-extremal-epi
: β {a b} {e : Hom a b}
β is-strong-epi e
β β {c} (m : c βͺ b) (g : Hom a c) β e β‘ m .mor β g β is-invertible (m .mor)
is-strong-epiβis-extremal-epi (s , ortho) m g p =
make-invertible (inv' .centre .fst) (inv' .centre .snd .snd)
(m .monic _ _ (pulll (inv' .centre .snd .snd) β id-comm-sym))
where
inv' = ortho m (idl _ β p)


1. If you care, is for βrelationβ β the intuition is that specifies the relations imposed on to get β©οΈ