module Cat.Morphism.Strong.Mono {o β} (C : Precategory o β) where
Strong monomorphismsπ
A strong monomorphism is a monomorphism that is right orthogonal to every epimorphism. Note that strong monomorphisms are the formal dual of strong epimorphisms. Explicitly, is a strong mono if every commutative square of the form
has a contractible space of lifts
is-strong-mono : β {c d} β Hom c d β Type _ is-strong-mono f = is-monic f Γ (β {a b} (e : a β b) β mβ₯m C (e .mor) f)
As it turns out, the contractibility requirement is redundant, as every lift of a mono is unique.
liftsβis-strong-mono : β {c d} {f : Hom c d} β is-monic f β (β {a b} (e : a β b) {u v} β v β e .mor β‘ f β u β Lifting C (e .mor) f u v) β is-strong-mono f liftsβis-strong-mono monic lift-it = monic , Ξ» e β right-monic-liftβorthogonal C (e .mor) monic (lift-it e)
This condition seems somewhat arbitrary, so letβs take a second to do some exposition. First, note that in every mono is strong. The key insight here is that epis are surjections, and monos are embeddings. In particular, suppose that is some surjection and is some embedding, and are a pair of arbitrary maps; our job is to build a function Now, is a surjection, so we know that each fibre is merely inhabited. However, is an embedding, so its fibres are propositions: therefore, we can eliminate from the truncation of to via This suggests that we ought to think of strong monomorphisms as a categorical generalization of maps with propositional fibres.
abstract is-strong-mono-is-prop : β {a b} (f : Hom a b) β is-prop (is-strong-mono f) is-strong-mono-is-prop f = hlevel 1
With that bit of intuition out of the way, we can proceed to prove some basic facts. Letβs start by showing that every isomorphism is a strong mono.
invertibleβstrong-mono : β {a b} {f : Hom a b} β is-invertible f β is-strong-mono f
The argument here is quite straightforward: every iso is monic, and isos are right orthogonal to every map.
invertibleβstrong-mono f-inv = invertibleβmonic f-inv , Ξ» e β invertibleβright-orthogonal C (e .mor) f-inv
Next, letβs show that strong monos compose. This is completely dual to the proof that strong epis compose, so we direct the reader there for exposition.
strong-mono-β : β {a b c} (f : Hom b c) (g : Hom a b) β is-strong-mono f β is-strong-mono g β is-strong-mono (f β g) strong-mono-β f g (f-mono , f-str) (g-mono , g-str) = liftsβis-strong-mono (monic-β f-mono g-mono) Ξ» e β βr-lifts-against C (orthogonalβlifts-against C (f-str e)) (orthogonalβlifts-against C (g-str e))
Like their non-strong counterparts, strong monomorphisms satisfy a left cancellation property. This is dual to the proof that strong epis cancel, so we omit the details.
strong-mono-cancell : β {a b c} (f : Hom b c) (g : Hom a b) β is-strong-mono (f β g) β is-strong-mono g
strong-mono-cancell f g (fg-mono , fg-str) = liftsβis-strong-mono g-mono g-str where g-mono : is-monic g g-mono = monic-cancell fg-mono g-str : β {a b} (e : a β b) {u v} β v β e .mor β‘ g β u β _ g-str e {u} {v} ve=gu = let (w , we=u , fgw=fv) = fg-str e (extendr ve=gu) .centre in w , we=u , e .epic (g β w) v (pullr we=u β sym ve=gu)
If a morphism is both strong monic and epic, then it is orthogonal to itself, and thus invertible.
strong-mono+epiβinvertible : β {a b} {f : Hom a b} β is-strong-mono f β is-epic f β is-invertible f strong-mono+epiβinvertible {f = f} (_ , strong) epi = self-orthogonalβinvertible C f (strong (make-epi f epi))
subst-is-strong-mono : β {a b} {f g : Hom a b} β f β‘ g β is-strong-mono f β is-strong-mono g subst-is-strong-mono f=g f-strong-mono = liftsβis-strong-mono (subst-is-monic f=g (f-strong-mono .fst)) Ξ» e vg=mu β let (h , he=u , fh=v) = f-strong-mono .snd e (vg=mu β apβ _β_ (sym f=g) refl) .centre in h , he=u , ap (_β h) (sym f=g) β fh=v