module Cat.Functor.Adjoint.Epireflective whereEpireflective subcategories🔗
A reflective subcategory is epireflective if the unit of the adjunction is an epimorphism.
module _
{oc ℓc od ℓd}
{C : Precategory oc ℓc}
{D : Precategory od ℓd}
{L : Functor C D} {R : Functor D C}
where
private
module C where
open Cat.Reasoning C public
open Cat.Morphism.Strong.Epi C public
module D = Cat.Reasoning D
module L = Cat.Functor.Reasoning L
module R = Cat.Functor.Reasoning R record is-epireflective (L⊣R : L ⊣ R) : Type (oc ⊔ od ⊔ ℓc ⊔ ℓd) where
no-eta-equality
open _⊣_ L⊣R
field
reflective : is-reflective L⊣R
unit-epic : ∀ {x} → C.is-epic (η x)Likewise, a strong epireflective category is a reflective subcategory where the unit is a strong epimorphism.
record is-strong-epireflective (L⊣R : L ⊣ R) : Type (oc ⊔ od ⊔ ℓc ⊔ ℓd) where
no-eta-equality
open _⊣_ L⊣R
field
reflective : is-reflective L⊣R
unit-strong-epi : ∀ {x} → C.is-strong-epi (η x)module _
{oc ℓc od ℓd}
{C : Precategory oc ℓc}
{D : Precategory od ℓd}
{L : Functor C D} {R : Functor D C}
(L⊣R : L ⊣ R)
where
private
module C where
open Cat.Reasoning C public
open Cat.Morphism.Strong.Epi C public
open Cat.Morphism.Strong.Mono C public
module D = Cat.Reasoning D
module L = Cat.Functor.Reasoning L
module R = Cat.Functor.Reasoning R
open _⊣_ L⊣REpireflective subcategories and strong monos🔗
If is epireflective, and is a strong monomorphism, then is invertible.
epireflective+strong-mono→unit-invertible
: is-epireflective L⊣R
→ ∀ {x a} {f : C.Hom x (R.₀ a)} → C.is-strong-mono f → C.is-invertible (η x)It suffices to show that is a strong monomorphism, as strong monos that are epic are isos. Luckily, this is rather straightforward: strong monos can be left cancelled, so we can resort to showing that is strong monic. However, is natural, which gives us the following commutative square:
Strong monos compose, so all that remains is to check that is a strong mono. However, is invertible, as the adjunction is reflective!
epireflective+strong-mono→unit-invertible epireflective {x} {a} {f} f-strong-mono =
C.strong-mono+epi→invertible
unit-strong-mono
unit-epic
where
open is-epireflective epireflective
unit-strong-mono : C.is-strong-mono (η x)
unit-strong-mono =
C.strong-mono-cancell (R.₁ (L.₁ f)) (η x) $
C.subst-is-strong-mono (unit.is-natural _ _ _) $
C.∘-is-strong-monic
(C.invertible→strong-mono (is-reflective→unit-right-is-iso L⊣R reflective))
f-strong-monoWe also can prove a partial converse. is epireflective if:
- is reflective.
- is invertible if there is a strong mono
- Every morphism factors as an epi followed by a strong mono.
By our assumptions, is reflective, so all we need to show is that the unit is always epic.
factor+strong-mono-unit-invertible→epireflective
: is-reflective L⊣R
→ (∀ {x a} {f : C.Hom x (R.₀ a)} → C.is-strong-mono f → C.is-invertible (η x))
→ (∀ {x y} → (f : C.Hom x y) → Factorisation C C.Epis C.StrongMonos f)
→ ∀ {x} → C.is-epic (η x)The proof starts by factoring the unit as Moreover, we can extend this factorisation along yielding the following diagram:
factor+strong-mono-unit-invertible→epireflective reflective unit-inv factor {x} =
unit-epic
where
open Factorisation (factor (η x)) renaming
( mid to im
; right to m
; left to e
; right∈R to m-strong-mono
; left∈L to e-epi
)What follows is a massive diagram chase. First, note that must be invertible, as is a strong mono.
unit-im-invertible : C.is-invertible (η im)
unit-im-invertible =
unit-inv (m-strong-mono)Next, observe that must also be invertible: their composite is which is always invertible if is reflective.
RL[m]∘RL[e]-invertible
: C.is-invertible (R.₁ (L.₁ m) C.∘ R.₁ (L.₁ e))
RL[m]∘RL[e]-invertible =
C.subst-is-invertible (R.expand (L.expand factors)) $
R.F-map-invertible $
is-reflective→left-unit-is-iso L⊣R reflectiveThis in turn means that must be a strong mono, as we can cancel strong monos.
RL[e]-strong-mono : C.is-strong-mono (R.₁ (L.₁ e))
RL[e]-strong-mono =
C.strong-mono-cancell (R.₁ (L.₁ m)) (R.₁ (L.₁ e)) $
C.invertible→strong-mono $
RL[m]∘RL[e]-invertibleMoreover, is also epic. This follows from a somewhat convoluted chase: has to be epic, as is invertible. Moreover, so we can use right-cancellation of epis to deduce that must be epic.
RL[e]-epic : C.is-epic (R.₁ (L.₁ e))
RL[e]-epic =
C.epic-cancelr $
C.subst-is-epic (unit.is-natural _ _ _) $
C.∘-is-epic
(C.invertible→epic unit-im-invertible)
e-epiWe can put the previous two observations together to show that must be invertible. Additionally, must also be invertible by 2-out-of-3.
RL[e]-invertible : C.is-invertible (R.₁ (L.₁ e))
RL[e]-invertible =
C.strong-mono+epi→invertible
RL[e]-strong-mono
RL[e]-epic
RL[m]-invertible : C.is-invertible (R.₁ (L.₁ m))
RL[m]-invertible =
C.invertible-cancell RL[e]-invertible $
RL[m]∘RL[e]-invertibleWe’re on to the home stretch now! Our final penultimate step is to show that must be invertible. This is another somewhat convoluted chase: is invertible, so must also be invertible by naturality. However, must itself be invertible, so is invertible via 2-out-of-3.
m-invertible : C.is-invertible m
m-invertible =
C.invertible-cancelr
(is-reflective→unit-right-is-iso L⊣R reflective)
(C.subst-is-invertible (sym (unit.is-natural _ _ _)) $
C.invertible-∘ RL[m]-invertible unit-im-invertible)The prior step means that factors into a pair of epis, so it must also be an epi.
unit-epic : C.is-epic (η x)
unit-epic =
C.subst-is-epic (sym factors) $
C.∘-is-epic
(C.invertible→epic m-invertible)
e-epiStrong epireflective subcategories and monos🔗
Our previous results relating epireflections and strong monos relied on the (very useful) fact that morphisms that are both strong monos and epis are isos. However, we can alternatively use monos and strong epis to prove invertability: this suggests that we can weaken the preconditions when is a strong epireflective category.
strong-epireflective+mono→unit-invertible
: is-strong-epireflective L⊣R
→ ∀ {x a} {f : C.Hom x (R.₀ a)} → C.is-monic f → C.is-invertible (η x)
factor+mono-unit-invertible→strong-epireflective
: is-reflective L⊣R
→ (∀ {x a} {f : C.Hom x (R.₀ a)} → C.is-monic f → C.is-invertible (η x))
→ (∀ {x y} → (f : C.Hom x y) → Factorisation C C.StrongEpis C.Monos f)
→ ∀ {x} → C.is-strong-epi (η x)Fortunately, the proofs are almost identical to their non-strong counterparts. Unfortunately, this means that we need to replay the giant diagram chase; we will spare the innocent reader the details.
strong-epireflective+mono→unit-invertible strong-epirefl {x} {a} {f} f-mono =
C.strong-epi+mono→invertible
unit-strong-epi
unit-mono
where
open is-strong-epireflective strong-epirefl
unit-mono : C.is-monic (η x)
unit-mono =
C.monic-cancell $
C.subst-is-monic (unit.is-natural _ _ _) $
C.∘-is-monic
(C.invertible→monic (is-reflective→unit-right-is-iso L⊣R reflective))
f-mono
factor+mono-unit-invertible→strong-epireflective reflective unit-inv factor {x} =
unit-strong-epi
where
open Factorisation (factor (η x)) renaming
( mid to im
; right to m
; left to e
; right∈R to m-mono
; left∈L to e-strong-epi
)
unit-im-invertible : C.is-invertible (η im)
unit-im-invertible =
unit-inv m-mono
RL[m]∘RL[e]-invertible
: C.is-invertible (R.₁ (L.₁ m) C.∘ R.₁ (L.₁ e))
RL[m]∘RL[e]-invertible =
C.subst-is-invertible (R.expand (L.expand factors)) $
R.F-map-invertible $
is-reflective→left-unit-is-iso L⊣R reflective
RL[e]-mono : C.is-monic (R.₁ (L.₁ e))
RL[e]-mono =
C.monic-cancell $
C.invertible→monic $
RL[m]∘RL[e]-invertible
RL[e]-strong-epi : C.is-strong-epi (R.₁ (L.₁ e))
RL[e]-strong-epi =
C.strong-epi-cancelr _ _ $
C.subst-is-strong-epi (unit.is-natural _ _ _) $
C.∘-is-strong-epic
(C.invertible→strong-epi unit-im-invertible)
e-strong-epi
RL[e]-invertible : C.is-invertible (R.₁ (L.₁ e))
RL[e]-invertible =
C.strong-epi+mono→invertible
RL[e]-strong-epi
RL[e]-mono
RL[m]-invertible : C.is-invertible (R.₁ (L.₁ m))
RL[m]-invertible =
C.invertible-cancell RL[e]-invertible $
RL[m]∘RL[e]-invertible
m-invertible : C.is-invertible m
m-invertible =
C.invertible-cancelr
(is-reflective→unit-right-is-iso L⊣R reflective)
(C.subst-is-invertible (sym (unit.is-natural _ _ _)) $
C.invertible-∘ RL[m]-invertible unit-im-invertible)
unit-strong-epi : C.is-strong-epi (η x)
unit-strong-epi =
C.subst-is-strong-epi (sym factors) $
C.∘-is-strong-epic
(C.invertible→strong-epi m-invertible)
e-strong-epi