Cartesian Lifts #
For a functor P : E ⥤ C
, the structure BasedLift
provides the type of lifts
of a given morphism in the base with fixed source and target in the fibers of P
:
More precisely, BasedLift P f
is the type of morphisms in the domain category E
which are lifts of f
.
We provide various useful constructors:
BasedLift.tauto
regards a morphismg
of the domain categoryE
as a based-lift of its imageP g
under functorP
.BasedLift.id
andBasedLift.comp
provide the identity and composition of based-lifts, respectively.- We can cast a based-lift along an equality of the base morphisms using the equivalence
BasedLift.cast
.
There are also typeclasses CartesianBasedLift
and CoCartesianBasedLift
carrying data witnessing that a given based-lift is cartesian and cocartesian, respectively.
For a functor P : E ⥤ C
, we provide the class CartMor
of cartesian morphisms in E
.
The type CartMor P
is defined in terms of the predicate isCartesianMorphism
.
We prove the following closure properties of the class CartMor
of cartesian morphisms:
cart_id
proves that the identity morphism is cartesian.cart_comp
proves that the composition of cartesian morphisms is cartesian.cart_iso_closed
proves that the class of cartesian morphisms is closed under isomorphisms.cart_pullback
proves that, ifP
preserves pullbacks, then the pullback of a cartesian morphism is cartesian.
instCatCart
provides a category instance for the class of cartesian morphisms,
and Cart.forget
provides the forgetful functor from the category of cartesian morphisms to
the domain category E
.
Finally, We provide the following notations:
x ⟶[f] y
forBasedLift P f x y
f ≫[l] g
for the composition of based-lifts given byBasedLift.comp f g
The type of lifts of a given morphism in the base with fixed source and target in the fibers of the domain and codomain respectively.
- hom : ↑src ⟶ ↑tgt
- over : CategoryTheory.CategoryStruct.comp (P.map self.hom) (CategoryTheory.eqToHom ⋯) = CategoryTheory.CategoryStruct.comp (CategoryTheory.eqToHom ⋯) f
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
A lift of a morphism in the base with a fixed target in the fiber of the codomain
- src : P ⁻¹ c
- based_lift : CategoryTheory.BasedLift P f self.src tgt
Instances For
A lift of a morphism in the base with a fixed source in the fiber of the domain
- tgt : P ⁻¹ d
- based_colift : CategoryTheory.BasedLift P f src self.tgt
Instances For
HasLift P f y
represents the mere existence of a lift of the morphism f
with target y
.
Equations
- CategoryTheory.HasLift P f y = Nonempty (CategoryTheory.Lift P f y)
Instances For
HasColift P f x
represents the mere existence of a lift of the morphism f
with source x
.
Equations
- CategoryTheory.HasCoLift P f x = Nonempty (CategoryTheory.CoLift P f x)
Instances For
Two based-lifts of the same base morphism are equal if their underlying morphisms are equal in the domain category.
Coercion from BasedLift to the domain category.
Equations
- CategoryTheory.BasedLift.instCoeOutHomValEqObj P f x y = { coe := fun (l : CategoryTheory.BasedLift P f x y) => l.hom }
BasedLift.tauto
regards a morphism g
of the domain category E
as a
based-lift of its image P g
under functor P
.
Equations
- CategoryTheory.BasedLift.tauto g = { hom := g, over := ⋯ }
Instances For
A tautological based-lift associated to a given morphism in the domain E
.
Equations
- CategoryTheory.BasedLift.instCoeTautoBasedLift = { coe := CategoryTheory.BasedLift.tauto g }
Regarding a based-lift x ⟶[𝟙 c] y
of the identity morphism 𝟙 c
as a morphism in the fiber P⁻¹ c
.
Equations
- CategoryTheory.BasedLift.instCoeFiberHom = { coe := fun (f : CategoryTheory.BasedLift P (CategoryTheory.CategoryStruct.id c) x y) => ⟨f.hom, ⋯⟩ }
BasedLift.ofFiberHom
regards a morphism in the fiber category P⁻¹ c
as a based-lift of the identity morphism of c
.
Equations
- CategoryTheory.BasedLift.ofFiberHom f = { hom := ↑f, over := ⋯ }
Instances For
The identity based-lift.
Equations
- CategoryTheory.BasedLift.id x = { hom := CategoryTheory.CategoryStruct.id ↑x, over := ⋯ }
Instances For
The composition of based-lifts
Equations
- (g ≫[l] g') = { hom := CategoryTheory.CategoryStruct.comp g.hom g'.hom, over := ⋯ }
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
The underlying morphism of a composition of based-lifts is the composition of the underlying morphisms.
Casting a based-lift along an equality of the base morphisms induces an equivalence of the based-lifts.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Casting equivalence along postcomposition with the identity morphism.
Equations
- CategoryTheory.BasedLift.castIdComp = CategoryTheory.BasedLift.cast ⋯
Instances For
Casting equivalence along precomposition with the identity morphism.
Equations
- CategoryTheory.BasedLift.castCompId = CategoryTheory.BasedLift.cast ⋯
Instances For
Equations
- CategoryTheory.BasedLift.castAssoc = CategoryTheory.BasedLift.cast ⋯
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
The composition of based-lifts is associative up to casting along equalities of the base morphisms.
Equations
- CategoryTheory.Lift.instCoeOutSigmaHomValEqObj = { coe := fun (l : CategoryTheory.Lift P f y) => ⟨↑l.src, l.based_lift.hom⟩ }
Equations
- g.homOf = g.based_lift.hom
Instances For
Regarding a morphism in Lift P f as a morphism in the total category E.
Equations
- CategoryTheory.Lift.instCoeDepHomValEqObjSrc = { coe := g.based_lift.hom }
The identity lift.
Equations
- CategoryTheory.Lift.id x = { src := x, based_lift := CategoryTheory.BasedLift.id x }
Instances For
The type of iso-based-lifts of an isomorphism in the base with fixed source and target.
- hom : ↑x ⟶ ↑y
- over : CategoryTheory.CategoryStruct.comp (P.map CategoryTheory.IsoBasedLift.toBasedLift.hom) (CategoryTheory.eqToHom ⋯) = CategoryTheory.CategoryStruct.comp (CategoryTheory.eqToHom ⋯) f
- is_iso_hom : CategoryTheory.IsIso CategoryTheory.IsoBasedLift.toBasedLift.hom
Instances
Equations
- One or more equations did not get rendered due to their size.
Instances For
Any iso-based-lift is in particular an isomorphism.
Equations
- ⋯ = ⋯
Coercion from IsoBasedLift to BasedLift
Equations
- CategoryTheory.IsoBasedLift.instCoeBasedLift = { coe := fun (l : CategoryTheory.IsoBasedLift f x y) => { hom := CategoryTheory.IsoBasedLift.toBasedLift.hom, over := ⋯ } }
Equations
- g.Inv = { hom := CategoryTheory.inv CategoryTheory.IsoBasedLift.toBasedLift.hom, over := ⋯, is_iso_hom := ⋯ }
Instances For
A lift g : x ⟶[f] y
over a base morphism f
is cartesian if for every
morphism u
in the base and every lift g' : x ⟶[u ≫ f] z
over the composite
u ≫ f
, there is a unique morphism l : y ⟶[u] z
over u
such that
l ≫ g = g'
.
- uniq_lift : ⦃c' : C⦄ → ⦃z : P ⁻¹ c'⦄ → (u : c' ⟶ c) → (g' : CategoryTheory.BasedLift P (CategoryTheory.CategoryStruct.comp u f) z y) → Unique { l : CategoryTheory.BasedLift P u z x // (l ≫[l] g) = g' }
Instances
A morphism g : x ⟶[f] y
over f
is cocartesian if for all morphisms u
in the base and
g' : x ⟶[f ≫ u] z
over the composite f ≫ u
, there is a unique morphism l : y ⟶[u] z
over u
such that g ≫ l = g'
.
- uniq_colift : ⦃d' : C⦄ → ⦃z : P ⁻¹ d'⦄ → (u : d ⟶ d') → (g' : CategoryTheory.BasedLift P (CategoryTheory.CategoryStruct.comp f u) x z) → Unique { l : CategoryTheory.BasedLift P u y z // (g ≫[l] l) = g' }
Instances
gaplift g u g'
is the canonical map from a lift g' : x' ⟶[u ≫ f] y
to a
cartesian lift g
of f
.
Equations
- CategoryTheory.CartesianBasedLift.gaplift g u g' = ↑default
Instances For
A variant of gaplift
for g' : x' ⟶[f'] y
with casting along f' = u ≫ f
baked into the definition.
Equations
- CategoryTheory.CartesianBasedLift.gaplift' g u g' h = ↑default
Instances For
The composition of the gap lift and the cartesian lift is the given lift
A variant of the gaplift property for equality of the underlying morphisms.
The uniqueness part of the universal property of the gap lift.
A variant of the uniqueness lemma.
The gaplift of any cartesian based-lift with respect to itself is the identity.
A morphism is cartesian if the gap map is unique.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The class of cartesian morphisms
Equations
Instances For
gapmap g gcart u g'
is a unique morphism l
over u
such that l ≫ g = g'
.
Equations
- CategoryTheory.gapmap g gcart u g' = (Classical.choose ⋯).hom
Instances For
The composition of the gap map of a map g' and the cartesian lift g is the given map g'.
cart_id e
says that the identity morphism 𝟙 e
is cartesian.
Given a morphism f
in the base category C
, the type
CartLifts P f src tgt
consists of the based-lifts of f
with
the source src
and the target tgt
which are cartesian with respect to P
.
- hom : ↑src ⟶ ↑tgt
- over : CategoryTheory.CategoryStruct.comp (P.map CategoryTheory.CartBasedLifts.toBasedLift.hom) (CategoryTheory.eqToHom ⋯) = CategoryTheory.CategoryStruct.comp (CategoryTheory.eqToHom ⋯) f
- is_cart : CategoryTheory.CartesianBasedLift CategoryTheory.CartBasedLifts.toBasedLift
Instances
Equations
- CategoryTheory.instCoeHomOfCartBasedLift f src tgt = { coe := fun (l : CategoryTheory.CartBasedLifts P f src tgt) => CategoryTheory.CartBasedLifts.toBasedLift.hom }
The type of cartesian lifts of a morphism f
with fixed target.
- src : P ⁻¹ c
- based_lift : CategoryTheory.BasedLift P f CategoryTheory.CartLift.toLift.src y
- is_cart : {x x_1 : C} → {x_2 : x ⟶ x_1} → {x_3 : P ⁻¹ x} → {x_4 : P ⁻¹ x_1} → {lift : CategoryTheory.BasedLift P x_2 x_3 x_4} → CategoryTheory.CartesianBasedLift lift
Instances
Equations
- g.homOf = CategoryTheory.CartLift.toLift.based_lift.hom
Instances For
Equations
- CategoryTheory.instCoeLiftOfCartLift = { coe := fun (l : CategoryTheory.CartLift f y) => CategoryTheory.CartLift.toLift }
- tgt : P ⁻¹ d
- based_colift : CategoryTheory.BasedLift P f x CategoryTheory.CoCartLift.toCoLift.tgt
- is_cart : {x x_1 : C} → {x_2 : x ⟶ x_1} → {x_3 : P ⁻¹ x} → {x_4 : P ⁻¹ x_1} → {colift : CategoryTheory.BasedLift P x_2 x_3 x_4} → CategoryTheory.CoCartesianBasedLift colift
Instances
Mere existence of a cartesian lift with fixed target.
Equations
Instances For
Equations
Instances For
Equations
- CategoryTheory.Cart x = E
Instances For
The subcategory of cartesian morphisms.
Equations
- CategoryTheory.instCategoryCart = CategoryTheory.Category.mk ⋯ ⋯ ⋯
The forgetful functor from the category of cartesian morphisms to the domain category.
Equations
- CategoryTheory.Cart.forget = { obj := fun (x : CategoryTheory.Cart P) => x, map := fun (x y : CategoryTheory.Cart P) (f : x ⟶ y) => f, map_id := ⋯, map_comp := ⋯ }