Lifting operations
module orthogonal-factorization-systems.lifting-operations where
Imports
open import foundation.dependent-pair-types open import foundation.functions open import foundation.homotopies open import foundation.sections open import foundation.universe-levels open import orthogonal-factorization-systems.pullback-hom
Idea
Given two maps, f : A → X
and g : B → Y
, a lifting operation between f
and g
is a choice of lifting square for every commuting square
A ------> B
| |
f| |g
| |
V V
X ------> Y.
Given a lifting operation we can say that f
has a left lifting structure
with respect to g
and that g
has a right lifting structure with respect to
f
.
Warning
This is the Curry–Howard interpretation of what is classically called lifting properties. However, these are generally additional structure on the maps.
For the proof-irrelevant notion see
mere lifting properties
.
Definition
We define lifting operations to be sections of the pullback-hom.
module _ {l1 l2 l3 l4 : Level} {A : UU l1} {B : UU l2} {X : UU l3} {Y : UU l4} (f : A → X) (g : B → Y) where diagonal-lift : UU (l1 ⊔ l2 ⊔ l3 ⊔ l4) diagonal-lift = sec (pullback-hom f g) _⧄_ = diagonal-lift -- This symbol doesn't have an input sequence :( map-diagonal-lift : diagonal-lift → type-pullback-hom f g → X → B map-diagonal-lift = pr1 issec-map-diagonal-lift : (d : diagonal-lift) → (pullback-hom f g ∘ map-diagonal-lift d) ~ id issec-map-diagonal-lift = pr2