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 liftings (dashed) which commute with everything is contractible. We will also speak of orthogonality of an object and a morphism, a morphism and a class of morphisms, and so on.
In the formalisation, we will write Orthogonal
to denote all of the
aforementioned orthogonality properties.
module _ {o â} (C : Precategory o â) where
open Cat.Reasoning C
open Terminal
private
variable
: â C â
a b c d x y : Hom a b f g h u v
If the ambient category has enough co/limits, being orthogonal to an object is equivalent to being orthogonal to a morphism. For example, iff. where is the unique map from into the terminal object.
object-orthogonal-!-orthogonal: â {X : Ob} (T : Terminal C) (f : Hom a b)
â Orthogonal C f X â Orthogonal C f (! T {X})
The proof is mostly a calculation, so we present it without a lot of comment.
{X = X} T f = prop-ext! fwd bwd where
object-orthogonal-!-orthogonal module T = Terminal T
: Orthogonal C f X â Orthogonal C f T.!
fwd .centre =
fwd fâ„X u v sq .centre .fst
fâ„X u .centre .snd
, fâ„X u .!-uniqueâ _ _
, T.paths m = ÎŁ-prop-path! $
fwd fâ„X u v sq (fâ„X u .paths (m .fst , m .snd .fst))
ap fst
: Orthogonal C f (! T) â Orthogonal C f X
bwd .centre =
bwd fâ„! u .! (T.!-uniqueâ _ _) .centre .fst
fâ„! u T.! (T.!-uniqueâ _ _) .centre .snd .fst
, fâ„! u T.paths (w , eq) = ÎŁ-prop-path! $
bwd fâ„! u (fâ„! _ _ _ .paths (w , eq , (T.!-uniqueâ _ _))) ap fst
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.
obj-orthogonal-iso: â {a b} {X Y} (f : Hom a b)
â X â
Y â Orthogonal C f X â Orthogonal C f Y
=
obj-orthogonal-iso f xâ
y fâ„X a
contr( g.to â contr' .centre .fst
(contr' .centre .snd) â cancell g.invl )
, pullr λ x â ÎŁ-prop-path! $
_â_ refl (ap fst (contr' .paths (g.from â x .fst , pullr (x .snd))))
apâ .invl
â cancell gwhere
module g = _â
_ xâ
y
= fâ„X (g.from â a) contr'
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) â Orthogonal C f f â is-invertible f
=
self-orthogonalâinvertible f fâ„f let (f , p , q) = fâ„f id id (idl _ â intror refl) .centre in
make-invertible f q p
If is an epi or is a mono, then the mere existence of any lift is enough to establish that
left-epic-liftâorthogonal: (g : Hom c d)
â is-epic f â Lifts C f g â Orthogonal C f g
= is-propâ„â„âis-contr
left-epic-liftâorthogonal g f-epi lifts u v vf=gu (left-epicâlift-is-prop C f-epi vf=gu)
(lifts u v vf=gu)
right-monic-liftâorthogonal: (f : Hom a b)
â is-monic g â Lifts C f g â Orthogonal C f g
= is-propâ„â„âis-contr
right-monic-liftâorthogonal f g-mono lifts u v vf=gu (right-monicâlift-is-prop C g-mono vf=gu)
(lifts u v vf=gu)
left-epic-liftâorthogonal-class: â {Îș} (R : Arrows C Îș)
â is-epic f â Lifts C f R â Orthogonal C f R
= left-epic-liftâorthogonal
left-epic-liftâorthogonal-class R f-epic lifts r râR (lifts r râR)
r f-epic
right-monic-liftâorthogonal-class: â {Îș} (L : Arrows C Îș)
â is-monic f â Lifts C L f â Orthogonal C L f
=
right-monic-liftâorthogonal-class L f-epic lifts l lâL (lifts l lâL) right-monic-liftâorthogonal l f-epic
As a corollary, we get that isomorphisms are left and right orthogonal to every other morphism.
: (g : Hom c d) â Orthogonal C Isos g
invertibleâleft-orthogonal =
invertibleâleft-orthogonal g f f-inv (invertibleâepic f-inv)
left-epic-liftâorthogonal g
$ invertible-left-lifts C f f-inv
: (f : Hom a b) â Orthogonal C f Isos
invertibleâright-orthogonal =
invertibleâright-orthogonal f g g-inv (invertibleâmonic g-inv)
right-monic-liftâorthogonal f $ invertible-right-lifts C g g-inv
Phrased another way, the class of isomorphisms is left and right orthogonal to every other class.
: â {Îș} (R : Arrows C Îș) â Orthogonal C Isos R
isos-left-orthogonal = invertibleâleft-orthogonal r f f-inv
isos-left-orthogonal R f f-inv r râR
: â {Îș} (L : Arrows C Îș) â Orthogonal C L Isos
isos-right-orthogonal = invertibleâright-orthogonal l f f-inv isos-right-orthogonal L l lâL f f-inv
: â {Îș} (R : Arrows C Îș) â is-invertible f â Orthogonal C f R
invertibleâleft-orthogonal-class _ = invertibleâleft-orthogonal r _ f-inv
invertibleâleft-orthogonal-class R f-inv r
: â {Îș} (L : Arrows C Îș) â is-invertible f â Orthogonal C L f
invertibleâright-orthogonal-class _ = invertibleâright-orthogonal l _ f-inv invertibleâright-orthogonal-class L f-inv l
: Orthogonal C f g â Lifts C f g
orthogonalâlifts-against = pure (o u v p .centre)
orthogonalâlifts-against o u v p
orthogonalâlifts-left-class: â {Îș} (L : Arrows C Îș)
â Orthogonal C L f â Lifts C L f
=
orthogonalâlifts-left-class L Lâ„f l lâL (Lâ„f l lâL)
orthogonalâlifts-against
orthogonalâlifts-right-class: â {Îș} (R : Arrows C Îș)
â Orthogonal C f R â Lifts C f R
=
orthogonalâlifts-right-class R fâ„R r râR (fâ„R r râR) orthogonalâlifts-against
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 = Cat.Reasoning C
module D = Cat.Reasoning D
module Îč = Cat.Functor.Reasoning Îč
module r = Cat.Functor.Reasoning r
module rÎč = Cat.Functor.Reasoning (r Fâ Îč)
module Îčr = Cat.Functor.Reasoning (Îč 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) â Orthogonal C f (Îč.â X)
{X} {A} {B} {f} rf-inv aâx =
in-subcategoryâorthogonal-to-inverted (fact , factors) λ { (g , factors') â ÎŁ-prop-path! (hâĄk factors factors') }
contr where
module rf = D.is-invertible rf-inv
module ηâ»Âč {a} = C.is-invertible (is-reflectiveâunit-right-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
: C.Hom (Îč.â (r.â A)) (Îč.â X)
b = ηâ»Âč.inv C.â Îč.â (r.â aâx) b
satisfying (by naturality of the unit map) the property that This is an intermediate step in what we have to do: construct a map
: aâx ⥠b C.â unit.η _
p = sym (C.pullr (sym (unit.is-natural _ _ _)) â C.cancell zag) p
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
: C.Hom B (Îč.â X)
fact = b C.â Îč.â rf.inv C.â unit.η _
fact
=
factors (b C.â Îč.â rf.inv C.â unit.η B) C.â f âĄâš C.pullr (C.pullr (unit.is-natural _ _ _)) â©
.â Îč.â rf.inv C.â (Îčr.â f) C.â unit.η A âĄâš C.reflâ©ââš C.cancell (Îč.annihilate rf.invr) â©
b C.â unit.η A âĄËâš p â©
b C 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
: r.â h ⥠r.â k
rhâĄrk = D.invertibleâepic rf-inv (r.â h) (r.â k) (r.weave (p â sym q))
rhâĄrk
= C.invertibleâmonic (is-reflectiveâunit-right-is-iso râŁÎč Îč-ff) _ _ $
hâĄk .η (Îč.â X) C.â h âĄâš unit.is-natural _ _ _ â©
unit.â h C.â unit.η B âĄâš ap Îč.â rhâĄrk C.â©ââšrefl â©
Îčr.â k C.â unit.η B âĄËâš unit.is-natural _ _ _ â©
Îčr.η (Îč.â X) C.â k â unit
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 â Orthogonal C (unit.η B) X) â C.is-invertible (unit.η X)
{X} ortho =
orthogonal-to-ηsâin-subcategory .make-invertible x lemma (ortho X C.id .centre .snd) where
C= ortho X C.id .centre .fst
x =
lemma .η _ C.â x âĄâš unit.is-natural _ _ _ â©
unit.â 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) â©
Îčr.id â C
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) â Orthogonal C (unit.η B) X
=
in-subcategoryâorthogonal-to-ηs inv (unit.η _)
obj-orthogonal-iso C (C.invertibleâiso _ (C.is-invertible-inverse inv))
$ in-subcategoryâorthogonal-to-inverted(is-reflectiveâleft-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.