module Cat.Morphism.Duality {o β} (π : Precategory o β) where
private module π = Cat.Morphism π module π^op = Cat.Morphism (π ^op) private variable a b c d : π.Ob f g : π.Hom a b
Duality of morphism classesπ
In this file we prove that morphisms classes in a category correspond to their duals in the opposite category. There is very little interesting mathematical content in this file; it is pure boilerplate.
We start by showing that monos and epis are dual.
co-monoβepi : a π^op.βͺ b β b π.β a co-monoβepi f .Cat.Morphism.mor = π^op.mor f co-monoβepi f .Cat.Morphism.epic = π^op.monic f epiβco-mono : b π.β a β a π^op.βͺ b epiβco-mono f .Cat.Morphism.mor = π.mor f epiβco-mono f .Cat.Morphism.monic = π.epic f co-epiβmono : a π^op.β b β b π.βͺ a co-epiβmono f .Cat.Morphism.mor = π^op.mor f co-epiβmono f .Cat.Morphism.monic = π^op.epic f monoβco-epi : b π.βͺ a β a π^op.β b monoβco-epi f .Cat.Morphism.mor = π.mor f monoβco-epi f .Cat.Morphism.epic = π.monic f
Next, sections and retractions.
co-sectionβretract : π^op.has-section f β π.has-retract f co-sectionβretract f .Cat.Morphism.retract = π^op.section f co-sectionβretract f .Cat.Morphism.is-retract = π^op.is-section f retractβco-section : π.has-retract f β π^op.has-section f retractβco-section f .Cat.Morphism.section = π.retract f retractβco-section f .Cat.Morphism.is-section = π.is-retract f co-retractβsection : π^op.has-retract f β π.has-section f co-retractβsection f .Cat.Morphism.section = π^op.retract f co-retractβsection f .Cat.Morphism.is-section = π^op.is-retract f sectionβco-retract : π.has-section f β π^op.has-retract f sectionβco-retract f .Cat.Morphism.retract = π.section f sectionβco-retract f .Cat.Morphism.is-retract = π.is-section f
Next, we show that invertible morphisms are self-dual.
co-inversesβinverses : π^op.Inverses f g β π.Inverses f g co-inversesβinverses i .Cat.Morphism.Inverses.invl = π^op.Inverses.invr i co-inversesβinverses i .Cat.Morphism.Inverses.invr = π^op.Inverses.invl i inversesβco-inverses : π.Inverses f g β π^op.Inverses f g inversesβco-inverses i .Cat.Morphism.Inverses.invl = π.Inverses.invr i inversesβco-inverses i .Cat.Morphism.Inverses.invr = π.Inverses.invl i co-invertibleβinvertible : π^op.is-invertible f β π.is-invertible f co-invertibleβinvertible i .Cat.Morphism.is-invertible.inv = π^op.is-invertible.inv i co-invertibleβinvertible i .Cat.Morphism.is-invertible.inverses = co-inversesβinverses (π^op.is-invertible.inverses i) invertibleβco-invertible : π.is-invertible f β π^op.is-invertible f invertibleβco-invertible i .Cat.Morphism.is-invertible.inv = π.is-invertible.inv i invertibleβco-invertible i .Cat.Morphism.is-invertible.inverses = inversesβco-inverses (π.is-invertible.inverses i) co-isoβiso : a π^op.β b β b π.β a co-isoβiso f .Cat.Morphism.to = π^op.to f co-isoβiso f .Cat.Morphism.from = π^op.from f co-isoβiso f .Cat.Morphism.inverses = co-inversesβinverses (π^op.inverses f) isoβco-iso : b π.β a β a π^op.β b isoβco-iso f .Cat.Morphism.to = π.to f isoβco-iso f .Cat.Morphism.from = π.from f isoβco-iso f .Cat.Morphism.inverses = inversesβco-inverses (π.inverses f)