module Cat.Morphism.Orthogonal where
Orthogonal mapsπ
A pair of maps and are called orthogonal, written 1, if for every fitting into a commutative diagram like
the space of arrows
(dashed) which commute with everything is contractible. We refer to the
type of these dashed arrows as a Lifting
, and this type is
parametrised over all maps in the square.
module _ {o β} (C : Precategory o β) where private module C = Cr C variable a b c d : β C β f g h u v : C.Hom a b open C using (Ob ; Hom ; _β_ ; _β _)
Lifting : (f : Hom a b) (g : Hom c d) (u : Hom a c) (v : Hom b d) β Type _ Lifting f g u v = Ξ£[ w β Hom _ _ ] w β f β‘ u Γ g β w β‘ v mβ₯m : Hom a b β Hom c d β Type _ mβ₯m {b = b} {c = c} f g = β {u v} β v β f β‘ g β u β is-contr (Lifting f g u v)
In some of the proofs below, weβll also need a name for a weakening of orthogonality, where the requirement that lifts are unique is dropped. We say lifts against if there is a map assigning lifts to every commutative squares with opposing and faces, as above.
lifts-against : (f : Hom a b) (g : Hom c d) β Type _ lifts-against f g = β {u v} β v β f β‘ g β u β Lifting f g u v
We also outline concepts of a map being orthogonal to an object, which is informally written and an object being orthogonal to a map
mβ₯o : Hom a b β β C β β Type _ mβ₯o {a} {b} f X = (a : Hom a X) β is-contr (Ξ£[ b β Hom b X ] (b β f β‘ a)) oβ₯m : β C β β Hom a b β Type _ oβ₯m {a} {b} Y f = (c : Hom Y b) β is-contr (Ξ£[ d β Hom Y a ] (f β d β‘ c))
In the formalisation, we donβt write
infix, since it must be explicitly applied to the category in which the
morphisms live. Thus, we define three distinct predicates expressing
orthogonality: mβ₯m
(βmap-mapβ), mβ₯o
(βmap-objectβ), and
oβ₯m
(βobject-mapβ). If the ambient category
has enough co/limits, being orthogonal to an object is equivalent to
being orthogonal to an object. For example,
iff.
where
is the unique map from
into the terminal
object.
The proof is mostly a calculation, so we present it without a lot of comment.
object-orthogonal-!-orthogonal : β {X} (T : Terminal C) (f : Hom a b) β mβ₯o f X β mβ₯m f (! T) object-orthogonal-!-orthogonal {X = X} T f = prop-ext (hlevel 1) (hlevel 1) to from where to : mβ₯o f X β mβ₯m f (! T) to fβ₯X {u} {v} sq = contr (fβ₯X u .centre .fst , fβ₯X u .centre .snd , !-uniqueβ T _ _) Ξ» m β Ξ£-prop-path! (ap fst (fβ₯X u .paths (m .fst , m .snd .fst))) from : mβ₯m f (! T) β mβ₯o f X from fβ₯! a = contr ( fβ₯! {v = ! T} (!-uniqueβ T _ _) .centre .fst , fβ₯! (!-uniqueβ T _ _) .centre .snd .fst ) Ξ» x β Ξ£-prop-path! (ap fst (fβ₯! _ .paths (x .fst , x .snd , !-uniqueβ T _ _)))
As a passing observation we note that if and then Of course, this is immediate in categories, but it holds in the generality of precategories.
mβ₯-iso : β {a b} {X Y} (f : Hom a b) β X β Y β mβ₯o f X β mβ₯o f Y
mβ₯-iso f xβ y fβ₯X a = contr ( g.to β contr' .centre .fst , C.pullr (contr' .centre .snd) β C.cancell g.invl ) Ξ» x β Ξ£-prop-path! $ apβ _β_ refl (ap fst (contr' .paths (g.from β x .fst , C.pullr (x .snd)))) β C.cancell g.invl where module g = C._β _ xβ y contr' = fβ₯X (g.from β a)
A slightly more interesting lemma is that, if is orthogonal to itself, then it is an isomorphism:
self-orthogonalβinvertible : β {a b} (f : Hom a b) β mβ₯m f f β C.is-invertible f self-orthogonalβinvertible f fβ₯f = C.make-invertible (gpq .fst) (gpq .snd .snd) (gpq .snd .fst) where gpq = fβ₯f (C.idl _ β C.intror refl) .centre
For the next few lemmas, consider a square of the following form, where and are both lifts of the outer square.
If is an epimorphism, then In more succinct terms, the type of lifts of such a square is a proposition.
left-epicβlift-is-prop : C.is-epic f β v C.β f β‘ g C.β u β is-prop (Lifting f g u v) left-epicβlift-is-prop f-epi vf=gu (l , lf=u , _) (k , kf=u , _) = Ξ£-prop-path! (f-epi l k (lf=u β sym kf=u))
Dually, if is a monomorphism, then we the type of lifts is also a propostion.
right-monicβlift-is-prop : C.is-monic g β v C.β f β‘ g C.β u β is-prop (Lifting f g u v) right-monicβlift-is-prop g-mono vf=gu (l , _ , gl=v) (k , _ , gk=v) = Ξ£-prop-path! (g-mono l k (gl=v β sym gk=v))
As a corollary, if is an epi or is a mono, then it is sufficient to find any lift to establish that
left-epic-liftβorthogonal : (g : C.Hom c d) β C.is-epic f β lifts-against f g β mβ₯m f g left-epic-liftβorthogonal g f-epi lifts vf=gu = is-propββis-contr (left-epicβlift-is-prop f-epi vf=gu) (lifts vf=gu) right-monic-liftβorthogonal : (f : C.Hom a b) β C.is-monic g β lifts-against f g β mβ₯m f g right-monic-liftβorthogonal f g-mono lifts vf=gu = is-propββis-contr (right-monicβlift-is-prop g-mono vf=gu) (lifts vf=gu)
Isomorphisms are left and right orthogonal to every other morphism.
invertibleβleft-orthogonal : (g : C.Hom c d) β C.is-invertible f β mβ₯m f g invertibleβright-orthogonal : (f : C.Hom a b) β C.is-invertible g β mβ₯m f g
We will focus our attention on the left orthogonal case, as the proof for right orthogonality is completely dual. Suppose that is invertible, and is an arbitrary morphism. Invertible morphisms are epis, so it suffices to establish the existence of lifts to prove that is orthogonal to Luckily, these lifts are easy to find: if we have some square then fits perfectly along the diagonal:
A short calculation verifies that is indeed a lift.
invertibleβleft-orthogonal {f = f} g f-inv = left-epic-liftβorthogonal g (C.invertibleβepic f-inv) Ξ» {u} {v} vf=gu β u β f.inv , C.cancelr f.invr , Equiv.from (g β u β f.inv β‘ v ββ¨ C.reassocl eβ»ΒΉ βe C.pre-invr f-inv β©β g β u β‘ v β f ββ¨ sym-equiv β©β v β f β‘ g β u ββ) vf=gu where module f = C.is-invertible f-inv
The proof of right orthogonality follows the exact same plan, so we omit the details.
invertibleβright-orthogonal {g = g} f g-inv = right-monic-liftβorthogonal f (C.invertibleβmonic g-inv) Ξ» {u} {v} vf=gu β g.inv β v , Equiv.from ((g.inv β v) β f β‘ u ββ¨ C.reassocl βe C.pre-invl g-inv β©β v β f β‘ g β u ββ) vf=gu , C.cancell g.invl where module g = C.is-invertible g-inv
orthogonalβlifts-against : mβ₯m f g β lifts-against f g orthogonalβlifts-against o p = o p .centre
We also have the following two properties, which state that βlifting againstβ is, as a property of morphisms, closed under composition on both the left and the right. To understand the proof, itβs helpful to visualise the inputs in a diagram. Suppose we have and assume that both and lift against Showing that lifts against amounts to finding a diagonal for the rectangle
under the assumption that Weβll populate this diagram a bit by observing that, by composing the and edges together, we have a commutative square with faces and β and since lifts against this implies that we have a diagonal map which appears dashed in
This map satisfies and, importantly, This latter equation implies that we can now treat the right half of the diagram as another square, with faces and Since also lifts against this implies that we can find the dotted map in the diagram
satisfying and The map fits the type of fillers for our original rectangle, but we must still show that it makes both triangles commute. But this is easy: we have by a short calculation and immediately.
βl-lifts-against : lifts-against f h β lifts-against g h β lifts-against (f β g) h βl-lifts-against f-lifts g-lifts vfg=hu = let (w , wg=u , hw=vf) = g-lifts (C.reassocl.from vfg=hu) (t , tf=w , ht=v) = f-lifts (sym hw=vf) in t , C.pulll tf=w β wg=u , ht=v
This proof dualises almost term-for-term the case where weβre composing on the bottom face, i.e., when we have some which lifts against both and and we want to show lifts against
βr-lifts-against : lifts-against f g β lifts-against f h β lifts-against f (g β h) βr-lifts-against f-lifts g-lifts ve=fgu = let (w , we=gu , fw=v) = f-lifts (C.reassocr.to ve=fgu) (t , te=u , gt=w) = g-lifts we=gu in t , te=u , C.pullr gt=w β fw=v
Regarding reflectionsπ
module _ {o β o' β'} {C : Precategory o β} {D : Precategory o' β'} {r : Functor C D} {ΞΉ : Functor D C} (rβ£ΞΉ : r β£ ΞΉ) (ΞΉ-ff : is-fully-faithful ΞΉ) where private module C = Cr C module D = Cr D module ΞΉ = Func ΞΉ module r = Func r module rΞΉ = Func (r Fβ ΞΉ) module ΞΉr = Func (ΞΉ Fβ r) open _β£_ rβ£ΞΉ
Let be an arbitrary reflective subcategory. Speaking abstractly, there is a βuniversalβ choice of test for whether an object is βinβ the subcategory: Whether the adjunction unit: is an isomorphism. The theory of orthogonality gives a second way to detect this situation. The proof here is from (Borceux 1994, vol. 1, sec. 5.4).
The first thing we observe is that any map such that is an isomorphism is orthogonal to every object in the subcategory: Let be inverted by and be the object. Given a map
in-subcategoryβorthogonal-to-inverted : β {X} {a b} {f : C.Hom a b} β D.is-invertible (r.β f) β mβ₯o C f (ΞΉ.β X) in-subcategoryβorthogonal-to-inverted {X} {A} {B} {f} rf-inv aβx = contr (fact , factors) Ξ» { (g , factors') β Ξ£-prop-path! (hβ‘k factors factors') } where module rf = D.is-invertible rf-inv module Ξ·β»ΒΉ {a} = C.is-invertible (is-reflectiveβunit-G-is-iso rβ£ΞΉ ΞΉ-ff {a})
Observe that, since is a reflective subcategory, every unit morphism is an isomorphism; We define a morphism as the composite
b : C.Hom (ΞΉ.β (r.β A)) (ΞΉ.β X) b = Ξ·β»ΒΉ.inv C.β ΞΉ.β (r.β aβx)
satisfying (by naturality of the unit map) the property that This is an intermediate step in what we have to do: construct a map
p : aβx β‘ b C.β unit.Ξ· _ p = sym (C.pullr (sym (unit.is-natural _ _ _)) β C.cancell zag)
We define that using the map we just constructed. Itβs the composite
and a calculation shows us that this map is indeed a factorisation of through
fact : C.Hom B (ΞΉ.β X) fact = b C.β ΞΉ.β rf.inv C.β unit.Ξ· _ factors = (b C.β ΞΉ.β rf.inv C.β unit.Ξ· B) C.β f β‘β¨ C.pullr (C.pullr (unit.is-natural _ _ _)) β©β‘ b C.β ΞΉ.β rf.inv C.β (ΞΉr.β f) C.β unit.Ξ· A β‘β¨ C.reflβ©ββ¨ C.cancell (ΞΉ.annihilate rf.invr) β©β‘ b C.β unit.Ξ· A β‘Λβ¨ p β©β‘Λ aβx β
The proof that this factorisation is unique is surprisingly totally independent of the actual map we just constructed: If note that we must have (since is invertible, it is epic); But then we have
and since is an isomorphism, thus monic, we have
module _ {h k : C.Hom B (ΞΉ.β X)} (p : h C.β f β‘ aβx) (q : k C.β f β‘ aβx) where rhβ‘rk : r.β h β‘ r.β k rhβ‘rk = D.invertibleβepic rf-inv (r.β h) (r.β k) (r.weave (p β sym q)) hβ‘k = C.invertibleβmonic (is-reflectiveβunit-G-is-iso rβ£ΞΉ ΞΉ-ff) _ _ $ unit.Ξ· (ΞΉ.β X) C.β h β‘β¨ unit.is-natural _ _ _ β©β‘ ΞΉr.β h C.β unit.Ξ· B β‘β¨ ap ΞΉ.β rhβ‘rk C.β©ββ¨refl β©β‘ ΞΉr.β k C.β unit.Ξ· B β‘Λβ¨ unit.is-natural _ _ _ β©β‘Λ unit.Ξ· (ΞΉ.β X) C.β k β
As a partial converse, if an object is orthogonal to every unit map (it suffices to be orthogonal to its own unit map), then it lies in the subcategory:
orthogonal-to-Ξ·sβin-subcategory : β {X} β (β B β mβ₯o C (unit.Ξ· B) X) β C.is-invertible (unit.Ξ· X) orthogonal-to-Ξ·sβin-subcategory {X} ortho = C.make-invertible x lemma (ortho X C.id .centre .snd) where x = ortho X C.id .centre .fst lemma = unit.Ξ· _ C.β x β‘β¨ unit.is-natural _ _ _ β©β‘ ΞΉr.β x C.β unit.Ξ· (ΞΉr.β X) β‘β¨ C.reflβ©ββ¨ Ξ·-comonad-commute rβ£ΞΉ ΞΉ-ff β©β‘ ΞΉr.β x C.β ΞΉr.β (unit.Ξ· X) β‘β¨ ΞΉr.annihilate (ortho X C.id .centre .snd) β©β‘ C.id β
And the converse to that is a specialisation of the first thing we proved: We established that if is invertible by the reflection functor, and we know that is invertible by the reflection functor; It remains to replace with any object for which is an isomorphism.
in-subcategoryβorthogonal-to-Ξ·s : β {X B} β C.is-invertible (unit.Ξ· X) β mβ₯o C (unit.Ξ· B) X in-subcategoryβorthogonal-to-Ξ·s inv = mβ₯-iso C (unit.Ξ· _) (C.invertibleβiso _ (C.is-invertible-inverse inv)) (in-subcategoryβorthogonal-to-inverted (is-reflectiveβF-unit-is-iso rβ£ΞΉ ΞΉ-ff))
Though hang tight for a note on formalised notationβ©οΈ
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.