module Cat.Morphism.Lifts whereLifting 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 bLet 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 β‘ vLet 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 bBasic 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 IsosConsider 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-invThe 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-invIf both and left lift against some then so does
βl-lifts-against : Lifts C f h β Lifts C g h β Lifts C (f β g) hShowing 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))