module Cat.Morphism.Lifts where
Lifting properties of morphismsπ
private module Impl {o β} {C : Precategory o β} where open Precategory C private variable a b c d x y : β C β f g h u v : Hom a b
Let be a square of morphisms fitting into a commutative square like so:
A lifting of such a square is a morphism such that and
Lifting : (f : Hom a b) (g : Hom x y) (u : Hom a x) (v : Hom b y) β Type _ Lifting {a} {b} {x} {y} f g u v = Ξ£[ w β Hom b x ] w β f β‘ u Γ g β w β‘ v
Let be two morphisms of We say that left lifts against and right lifts against if for every commutative square
there merely exists a lifting
We can also talk about objects with left or right lifting properties. An object left lifts against a morphism if for every cospan there merely exists a map with
Similarly, an object right lifts against a morphism if for every span there merely exists a map with
Finally, we say that a class of morphisms lifts against another class of morphisms when every lifts against every Note that we can also consider liftings of objects/morphisms against classes of morphisms, but we will leave the reader to fill in the definitions.
In the formalisation, we will write Lifts
to denote all
of the aforementioned lifting properties.
record Lifts-against {βl βr} (L : Type βl) (R : Type βr) (βp : Level) : Type (βl β βr β (lsuc βp)) where field lifts-prop : L β R β Type βp orthogonal-prop : L β R β Type βp open Lifts-against Lifts : β {βl βr βp} {L : Type βl} {R : Type βr} β L β R β β¦ _ : Lifts-against L R βp β¦ β Type _ Lifts l r β¦ Lifts β¦ = Lifts .lifts-prop l r Orthogonal : β {βl βr βp} {L : Type βl} {R : Type βr} β L β R β β¦ _ : Lifts-against L R βp β¦ β Type _ Orthogonal l r β¦ Lifts β¦ = Lifts .orthogonal-prop l r instance Lifts-against-hom-hom : β {a b x y} β Lifts-against (Hom a b) (Hom x y) β Lifts-against-hom-hom .lifts-prop f g = β u v β v β f β‘ g β u β β₯ Lifting f g u v β₯ Lifts-against-hom-hom .orthogonal-prop f g = β u v β v β f β‘ g β u β is-contr (Lifting f g u v) Lifts-against-ob-hom : β {x y} β Lifts-against Ob (Hom x y) β Lifts-against-ob-hom {x} {y} .lifts-prop a f = β (u : Hom a y) β β₯ Ξ£[ h β Hom a x ] f β h β‘ u β₯ Lifts-against-ob-hom {x} {y} .orthogonal-prop a f = β (u : Hom a y) β is-contr (Ξ£[ h β Hom a x ] f β h β‘ u) Lifts-against-hom-ob : β {a b} β Lifts-against (Hom a b) Ob β Lifts-against-hom-ob {a} {b} .lifts-prop f x = β (u : Hom a x) β β₯ Ξ£[ h β Hom b x ] h β f β‘ u β₯ Lifts-against-hom-ob {a} {b} .orthogonal-prop f x = β (u : Hom a x) β is-contr (Ξ£[ h β Hom b x ] h β f β‘ u) -- We need an INCOHERENT here to avoid competing instances for -- 'Lifts L R' when 'L, R : Arrows C'. We prefer to use the left instance first, as that -- will lay out our arguments left-to-right. Lifts-against-arrows-left : β {βr βp ΞΊ} {R : Type βr} β β¦ _ : β {a b} β Lifts-against (Hom a b) R βp β¦ β Lifts-against (Arrows C ΞΊ) R (o β β β βp β ΞΊ) Lifts-against-arrows-left .lifts-prop L r = β {a b} β (f : Hom a b) β f β L β Lifts f r Lifts-against-arrows-left .orthogonal-prop L r = β {a b} β (f : Hom a b) β f β L β Orthogonal f r Lifts-against-arrows-right : β {βl βp ΞΊ} {L : Type βl} β β¦ _ : β {x y} β Lifts-against L (Hom x y) βp β¦ β Lifts-against L (Arrows C ΞΊ) (o β β β βp β ΞΊ) Lifts-against-arrows-right .lifts-prop l R = β {x y} β (f : Hom x y) β f β R β Lifts l f Lifts-against-arrows-right .orthogonal-prop l R = β {x y} β (f : Hom x y) β f β R β Orthogonal l f {-# INCOHERENT Lifts-against-arrows-right #-} open Impl hiding (Lifts; Orthogonal; Lifting) public module _ {o β} (C : Precategory o β) where open Impl {C = C} using (Lifts ; Orthogonal ; Lifting) public module _ {o β} (C : Precategory o β) where open Cat.Reasoning C private module Arr = Cat.Reasoning (Arr C) variable a b c d x y : β C β f g h u v : Hom a b
Basic properties of liftingsπ
Invertible morphisms have left and right liftings against all morphisms.
invertible-left-lifts : Lifts C Isos g invertible-right-lifts : Lifts C f Isos
Consider a square like the one below with invertible.
The composite fits perfectly along the diagonal, and some short calculations show that both triangles commute.
invertible-left-lifts f f-inv u v vf=gu = pure (u β f.inv , cancelr f.invr , pulll (sym vf=gu) β cancelr f.invl) where module f = is-invertible f-inv
The proof for right lifts is formally dual.
invertible-right-lifts g g-inv u v vf=gu = pure (g.inv β v , pullr vf=gu β cancell g.invr , cancell g.invl) where module g = is-invertible g-inv
If both and left lift against some then so does
βl-lifts-against : Lifts C f h β Lifts C g h β Lifts C (f β g) h
Showing that lifts against amounts to finding a diagonal for the rectangle
under the assumption that Our first move is to re-orient the square and use lifting property to find a map with and
The bottom triangle of the above diagram can be arranged as a square with on the right and on the left, which lets us use lifting property to find a map
If we place along the diagonal of our original square, we can see that and
βl-lifts-against {f = f} f-lifts g-lifts u v vfg=hu = do (w , wg=u , hw=vf) β g-lifts u (v β f) (reassocl.from vfg=hu) (t , tf=w , ht=v) β f-lifts w v (sym hw=vf) pure (t , pulll tf=w β wg=u , ht=v)
Dually, if and both right lift against a morphism then so does
βr-lifts-against : Lifts C f g β Lifts C f h β Lifts C f (g β h)
The proof follows the exact same trajectory as the left case, so we will spare the reader the details.
βr-lifts-against {h = h} f-lifts g-lifts u v ve=fgu = do (w , we=gu , fw=v) β f-lifts (h β u) v (reassocr.to ve=fgu) (t , te=u , gt=w) β g-lifts u w we=gu pure (t , te=u , pullr gt=w β fw=v)
For the next few lemmas, consider a square of the following form, where and are both lifts of the outer square
βl-lifts-class : β {ΞΊ} (R : Arrows C ΞΊ) β Lifts C f R β Lifts C g R β Lifts C (f β g) R βl-lifts-class R f-lifts g-lifts r rβR = βl-lifts-against (f-lifts r rβR) (g-lifts r rβR) βr-lifts-class : β {ΞΊ} (L : Arrows C ΞΊ) β Lifts C L f β Lifts C L g β Lifts C L (f β g) βr-lifts-class L f-lifts g-lifts l lβL = βr-lifts-against (f-lifts l lβL) (g-lifts l lβL)
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 : is-epic f β v β f β‘ g β u β is-prop (Lifting C 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 proposition.
right-monicβlift-is-prop : is-monic g β v β f β‘ g β u β is-prop (Lifting C 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))