module Cat.Morphism.Factorisation.Orthogonal whereOrthogonal factorisation systems🔗
module _
{o ℓ ℓl ℓr}
(C : Precategory o ℓ)
(L : Arrows C ℓl)
(R : Arrows C ℓr) where
private module C = Cat.Reasoning C
open FactorisationSuppose you have some category and you, inspired by the wisdom of King Solomon, want to chop every morphism in half. An orthogonal factorisation system on will provide a tool for doing so, in a particularly coherent way. Here, and are predicates on the space of morphisms of First, we package the data of an -factorisation of a morphism
record is-ofs : Type (o ⊔ ℓ ⊔ ℓl ⊔ ℓr) where
field
factor : ∀ {a b} (f : C.Hom a b) → Factorisation C L R fIn addition to mandating that every map factors as a map where and the classes must satisfy the following properties:
Every isomorphism is in both and in 1.
Both classes are stable under composition: if and then and likewise for
is-iso→in-L : ∀ {a b} (f : C.Hom a b) → C.is-invertible f → f ∈ L
L-is-stable
: ∀ {a b c} (f : C.Hom b c) (g : C.Hom a b) → f ∈ L → g ∈ L
→ (f C.∘ g) ∈ L
is-iso→in-R : ∀ {a b} (f : C.Hom a b) → C.is-invertible f → f ∈ R
R-is-stable
: ∀ {a b c} (f : C.Hom b c) (g : C.Hom a b) → f ∈ R → g ∈ R
→ (f C.∘ g) ∈ RMost importantly, the class is orthogonal to i.e: for every and we have 2
L⊥R : Orthogonal C L RThe canonical example of an orthogonal factorisation system is the (surjective, injective) factorisation system on the category of sets, which uniquely factors a function through the image of 3
L-subcat : Wide-subcat C ℓl
L-subcat .Wide-subcat.P f = f ∈ L
L-subcat .Wide-subcat.P-prop f = hlevel 1
L-subcat .Wide-subcat.P-id = is-iso→in-L C.id C.id-invertible
L-subcat .Wide-subcat.P-∘ = L-is-stable _ _
R-subcat : Wide-subcat C ℓr
R-subcat .Wide-subcat.P f = f ∈ R
R-subcat .Wide-subcat.P-prop f = hlevel 1
R-subcat .Wide-subcat.P-id = is-iso→in-R C.id C.id-invertible
R-subcat .Wide-subcat.P-∘ = R-is-stable _ _module _
{o ℓ ℓl ℓr}
(C : Precategory o ℓ)
(L : Arrows C ℓl)
(R : Arrows C ℓr)
(fs : is-ofs C L R)
where
private module C = Cat.Reasoning C
open is-ofs fs
open FactorisationThe first thing we observe is that factorisations for a morphism are
unique. Working in precategorical generality, we weaken this to
essential uniqueness: Given two factorisations of
we exhibit an isomorphism between their replacements
which commutes with both the left
morphism and the right morphism. We
reproduce the proof from (Borceux
1994, vol. 1, sec. 5.5).
factorisation-essentially-unique
: ∀ {a b} (f : C.Hom a b) (fa1 fa2 : Factorisation C L R f)
→ Σ[ f ∈ fa1 .mid C.≅ fa2 .mid ]
( (f .C.to C.∘ fa1 .left ≡ fa2 .left)
× (fa1 .right C.∘ f .C.from ≡ fa2 .right))
factorisation-essentially-unique f fa1 fa2 =
C.make-iso (upq .fst) (vp'q' .fst) vu=id uv=id , upq .snd .fst , vp'q' .snd .snd
whereSuppose that and are both of We use the fact that and to get maps satisfying and
upq =
L⊥R _ (fa1 .left∈L) _ (fa2 .right∈R) _ _
(sym (fa1 .factors) ∙ fa2 .factors) .centre
vp'q' = L⊥R _ (fa2 .left∈L) _ (fa1 .right∈R) _ _
(sym (fa2 .factors) ∙ fa1 .factors) .centreTo show that and are inverses, fit first and into a lifting diagram like the one below. Since we have that the space of diagonals is contractible, hence a proposition, and since both and the identity are in that diagonal,
vu=id : upq .fst C.∘ vp'q' .fst ≡ C.id
vu=id = ap fst $ is-contr→is-prop
(L⊥R _ (fa2 .left∈L) _ (fa2 .right∈R) _ _ refl)
( upq .fst C.∘ vp'q' .fst
, C.pullr (vp'q' .snd .fst) ∙ upq .snd .fst
, C.pulll (upq .snd .snd) ∙ vp'q' .snd .snd
) (C.id , C.idl _ , C.idr _)A dual argument works by making a lifting square with and as its faces. We omit it for brevity. By the characterisation of path spaces in categories, this implies that factorisations of a fixed morphism are a proposition.
uv=id : vp'q' .fst C.∘ upq .fst ≡ C.id
uv=id = ap fst $ is-contr→is-prop
(L⊥R _ (fa1 .left∈L) _ (fa1 .right∈R) _ _ refl)
( vp'q' .fst C.∘ upq .fst
, C.pullr (upq .snd .fst) ∙ vp'q' .snd .fst
, C.pulll (vp'q' .snd .snd) ∙ upq .snd .snd
) (C.id , C.idl _ , C.idr _) factorisation-unique
: ∀ {a b} (f : C.Hom a b) → is-category C → is-prop (Factorisation C L R f)
factorisation-unique f c-cat x y = go where
isop1p2 = factorisation-essentially-unique f x y
p = Univalent.Hom-pathp-reflr-iso c-cat {q = isop1p2 .fst} (isop1p2 .snd .fst)
q = Univalent.Hom-pathp-refll-iso c-cat {p = isop1p2 .fst} (isop1p2 .snd .snd)
go : x ≡ y
go i .mid = c-cat .to-path (isop1p2 .fst) i
go i .left = p i
go i .right = q i go i .left∈L = is-prop→pathp (λ i → is-tr (L · (p i))) (x .left∈L) (y .left∈L) i
go i .right∈R = is-prop→pathp (λ i → is-tr (R · (q i))) (x .right∈R) (y .right∈R) i
go i .factors =
is-prop→pathp (λ i → C.Hom-set _ _ f (q i C.∘ p i)) (x .factors) (y .factors) iAs a passing observation, note that the intersection is precisely the class of isomorphisms of Every isomorphism is in both classes, by the definition, and if a morphism is in both classes, it is orthogonal to itself, hence an isomorphism.
in-intersection→is-iso
: ∀ {a b} (f : C.Hom a b) → f ∈ L → f ∈ R → C.is-invertible f
in-intersection→is-iso f f∈L f∈R = self-orthogonal→invertible C f $ L⊥R f f∈L f f∈R
in-intersection≃is-iso
: ∀ {a b} (f : C.Hom a b) → C.is-invertible f ≃ (f ∈ L × f ∈ R)
in-intersection≃is-iso f = prop-ext!
(λ fi → is-iso→in-L f fi , is-iso→in-R f fi)
λ { (a , b) → in-intersection→is-iso f a b }The final observation is that the class is precisely the class of morphisms left-orthogonal to those in One direction is by definition, and the other is rather technical. Let’s focus on the technical one.
L-is-⊥R
: ∀ {a b} (f : C.Hom a b)
→ (f ∈ L) ≃ (∀ {c d} (m : C.Hom c d) → m ∈ R → Orthogonal C f m)
L-is-⊥R f = prop-ext! (λ m f∈L m∈R → to f∈L m m∈R) from where
to : ∀ {c d} (m : C.Hom c d) → f ∈ L → m ∈ R → Orthogonal C f m
to m f∈L m∈R u v square = L⊥R f f∈L m m∈R u v square
from : (∀ {c d} (m : C.Hom c d) → m ∈ R → Orthogonal C f m) → f ∈ L
from ortho = subst (_∈ L) (sym (fa .factors)) $ L-is-stable _ _ m∈L (fa .left∈L)
whereSuppose that is left-orthogonal to every and write out the By a syntactic limitation in Agda, we start with the conclusion: We’ll show that is in and since is closed under composition, so is Since is orthogonal to we can fit it into a lifting diagram
and make note of the diagonal filler and that it satisfies and
fa = factor f
gpq = ortho (fa .right) (fa .right∈R) (fa .left) C.id (C.idl _ ∙ (fa .factors))We’ll show by fitting it into a lifting diagram. But since the factorisation is unique, and as needed.
gm=id : gpq .centre .fst C.∘ (fa .right) ≡ C.id
gm=id = ap fst $ is-contr→is-prop
(L⊥R _ (fa .left∈L) _ (fa .right∈R) _ _ refl)
( _ , C.pullr (sym (fa .factors)) ∙ gpq .centre .snd .fst
, C.cancell (gpq .centre .snd .snd)) (C.id , C.idl _ , C.idr _)Think back to the conclusion we wanted to reach: is in so since and is stable, so is
m∈L : fa .right ∈ L
m∈L = is-iso→in-L (fa .right) $
C.make-invertible (gpq .centre .fst) (gpq .centre .snd .snd) gm=idReflecting orthogonal factorisations systems🔗
Let be a category equipped with an orthogonal factorisation system and be a reflective subcategory of with reflector If and then forms an orthogonal factorisation system on
module _
{oc ℓc od ℓd ℓld ℓrd}
{C : Precategory oc ℓc} {D : Precategory od ℓd}
{L : Arrows D ℓld} {R : Arrows D ℓrd}
{ι : Functor C D} {r : Functor D C}
where reflect-ofs
: (r⊣ι : r ⊣ ι)
→ is-reflective r⊣ι
→ L ⊆ F-restrict-arrows (ι F∘ r) L
→ R ⊆ F-restrict-arrows (ι F∘ r) R
→ is-ofs D L R
→ is-ofs C (F-restrict-arrows ι L) (F-restrict-arrows ι R)
reflect-ofs r⊣ι ι-ff ι∘r-in-L ι∘r-in-R D-ofs = C-ofs where module C = Cat.Reasoning C
module D where
open Cat.Reasoning D public
open is-ofs D-ofs public
module ι = Cat.Functor.Reasoning.FullyFaithful ι ι-ff
module r = Cat.Functor.Reasoning r
open _⊣_ r⊣ι
open is-ofs
open FactorisationFirst, some preliminaries. Note that is closed under composition and inverses, as preserves isomorphisms and is functorial.
is-iso→in-ι^*L
: ∀ {a b}
→ (f : C.Hom a b)
→ C.is-invertible f
→ ι.₁ f ∈ L
is-iso→in-ι^*L f f-inv = D.is-iso→in-L (ι.F₁ f) (ι.F-map-invertible f-inv)
ι^*L-is-stable
: ∀ {a b c}
→ (f : C.Hom b c) (g : C.Hom a b)
→ ι.₁ f ∈ L → ι.₁ g ∈ L
→ ι.₁ (f C.∘ g) ∈ L
ι^*L-is-stable f g ι[f]∈L ι[g]∈L =
subst (_∈ L) (sym (ι.F-∘ f g)) $
D.L-is-stable (ι.F₁ f) (ι.F₁ g) ι[f]∈L ι[g]∈LA similar argument lets us conclude that is also closed under composition and inverses.
is-iso→in-ι^*R
: ∀ {a b}
→ (f : C.Hom a b)
→ C.is-invertible f
→ ι.₁ f ∈ R
is-iso→in-ι^*R f f-inv = D.is-iso→in-R (ι.F₁ f) (ι.F-map-invertible f-inv)
ι^*R-is-stable
: ∀ {a b c}
→ (f : C.Hom b c) (g : C.Hom a b)
→ ι.₁ f ∈ R → ι.₁ g ∈ R
→ ι.₁ (f C.∘ g) ∈ R
ι^*R-is-stable f g ι[f]∈R ι[g]∈R =
subst (_∈ R) (sym (ι.F-∘ f g)) $
D.R-is-stable (ι.F₁ f) (ι.F₁ g) ι[f]∈R ι[g]∈RNext, recall that if is reflective, then the counit of the adjunction must be invertible.
ε-inv : ∀ (x : C.Ob) → C.is-invertible (ε x)
ε-inv x = is-reflective→counit-is-invertible r⊣ι ι-ff
module ε (x : C.Ob) = C.is-invertible (ε-inv x)With those preliminaries out of the way, we can get into the meat of the proof. We’ve already proved the requisite closure properties of and so we can get that out of the way.
C-ofs : is-ofs C (F-restrict-arrows ι L) (F-restrict-arrows ι R)
C-ofs .is-iso→in-L = is-iso→in-ι^*L
C-ofs .L-is-stable = ι^*L-is-stable
C-ofs .is-iso→in-R = is-iso→in-ι^*R
C-ofs .R-is-stable = ι^*R-is-stableMoreover, and are orthogonal, as fully faithful functors reflect orthogonality.
C-ofs .L⊥R f ι[f]∈L g ι[g]∈R =
ff→reflect-orthogonal ι ι-ff (D.L⊥R (ι.₁ f) ι[f]∈L (ι.₁ g) ι[g]∈R)The final step is the most difficult. Let be a morphism in we somehow need to factor it into a and with and
We start by factoring into a and We can take an adjoint transpose of to find a map but this same trick does not work for Luckily the counit is invertible, so we can transpose to a map in via
C-ofs .factor {a} {b} f = f-factor
where
module ι[f] = Factorisation (D.factor (ι.₁ f))
f-factor : Factorisation C (F-restrict-arrows ι L) (F-restrict-arrows ι R) f
f-factor .mid = r.₀ ι[f].mid
f-factor .left = r.₁ ι[f].left C.∘ ε.inv a
f-factor .right = ε b C.∘ r.₁ ι[f].rightA bit of quick algebra shows that these two transposes actually factor
f-factor .factors =
f ≡⟨ C.intror (ε.invl a) ⟩
f C.∘ ε _ C.∘ ε.inv a ≡⟨ C.extendl (sym $ counit.is-natural a b f) ⟩
ε b C.∘ r.F₁ (ι.₁ f) C.∘ ε.inv a ≡⟨ C.push-inner (r.expand ι[f].factors) ⟩
(ε b C.∘ r.₁ ι[f].right) C.∘ (r.₁ ι[f].left C.∘ ε.inv a) ∎Finally, we need to show that and Both and are closed under inverses and composition, so it suffices to show that and By assumption, we have and so it suffices to show that and This follows from the construction of and via an factorisation, which completes the proof.
f-factor .left∈L =
ι^*L-is-stable (r.₁ ι[f].left) (ε.inv a)
(ι∘r-in-L ι[f].left ι[f].left∈L)
(is-iso→in-ι^*L (ε.inv a) (ε.op a))
f-factor .right∈R =
ι^*R-is-stable (ε b) (r.₁ ι[f].right)
(is-iso→in-ι^*R (ε b) (ε-inv b))
(ι∘r-in-R ι[f].right ι[f].right∈R)We’ll see, in a bit, that the converse is true, too.↩︎
As we shall shortly see, is actually exactly the class of morphisms that is left orthogonal to and vice-versa for ↩︎
This factorisation system is a special case of the (strong epimorphism, monomorphism) orthogonal factorisation system on a regular category.↩︎
References
- Borceux, Francis. 1994. Handbook of Categorical Algebra. Vol. 1. Encyclopedia of Mathematics and Its Applications. Cambridge University Press. https://doi.org/10.1017/CBO9780511525858.