The factorization axiom #
In this file, we introduce a type-class HasFactorization W₁ W₂
, which, given
two classes of morphisms W₁
and W₂
in a category C
, asserts that any morphism
in C
can be factored as a morphism in W₁
followed by a morphism in W₂
. The data
of such factorizations can be packaged in the type FactorizationData W₁ W₂
.
This shall be used in the formalization of model categories for which the CM5 axiom asserts that any morphism can be factored as a cofibration followed by a trivial fibration (or a trivial cofibration followed by a fibration).
We also provide a structure FunctorialFactorizationData W₁ W₂
which contains
the data of a functorial factorization as above. With this design, when we
formalize certain constructions (e.g. cylinder objects in model categories),
we may first construct them using using data : FactorizationData W₁ W₂
.
Without duplication of code, it shall be possible to show these cylinders
are functorial when a term data : FunctorialFactorizationData W₁ W₂
is available,
the existence of which is asserted in the type-class HasFunctorialFactorization W₁ W₂
.
We also introduce the class W₁.comp W₂
of morphisms of the form i ≫ p
with W₁ i
and W₂ p
and show that W₁.comp W₂ = ⊤
iff HasFactorization W₁ W₂
holds (this
is MorphismProperty.comp_eq_top_iff
).
Given two classes of morphisms W₁
and W₂
on a category C
, this is
the data of the factorization of a morphism f : X ⟶ Y
as i ≫ p
with
W₁ i
and W₂ p
.
- Z : C
the intermediate object in the factorization
- i : X ⟶ self.Z
the first morphism in the factorization
- p : self.Z ⟶ Y
the second morphism in the factorization
- fac : CategoryTheory.CategoryStruct.comp self.i self.p = f
- hi : W₁ self.i
- hp : W₂ self.p
Instances For
The data of a term in MapFactorizationData W₁ W₂ f
for any morphism f
.
Instances For
The factorization axiom for two classes of morphisms W₁
and W₂
in a category C
. It
asserts that any morphism can be factored as a morphism in W₁
followed by a morphism
in W₂
.
Instances
A chosen term in FactorizationData W₁ W₂
when HasFactorization W₁ W₂
holds.
Equations
- W₁.factorizationData W₂ x✝ = ⋯.some
Instances For
The class of morphisms that are of the form i ≫ p
with W₁ i
and W₂ p
.
Instances For
The data of a functorial factorization of any morphism in C
as a morphism in W₁
followed by a morphism in W₂
.
- Z : CategoryTheory.Functor (CategoryTheory.Arrow C) C
the intermediate objects in the factorizations
- i : CategoryTheory.Arrow.leftFunc ⟶ self.Z
the first morphism in the factorizations
- p : self.Z ⟶ CategoryTheory.Arrow.rightFunc
the second morphism in the factorizations
- fac : CategoryTheory.CategoryStruct.comp self.i self.p = CategoryTheory.Arrow.leftToRight
- hi (f : CategoryTheory.Arrow C) : W₁ (self.i.app f)
- hp (f : CategoryTheory.Arrow C) : W₂ (self.p.app f)
Instances For
If W₁ ≤ W₁'
and W₂ ≤ W₂'
, then a functorial factorization for W₁
and W₂
induces
a functorial factorization for W₁'
and W₂'
.
Equations
- data.ofLE le₁ le₂ = { Z := data.Z, i := data.i, p := data.p, fac := ⋯, hi := ⋯, hp := ⋯ }
Instances For
The term in FactorizationData W₁ W₂
that is deduced from a functorial factorization.
Equations
- data.factorizationData f = { Z := data.Z.obj (CategoryTheory.Arrow.mk f), i := data.i.app (CategoryTheory.Arrow.mk f), p := data.p.app (CategoryTheory.Arrow.mk f), fac := ⋯, hi := ⋯, hp := ⋯ }
Instances For
When data : FunctorialFactorizationData W₁ W₂
, this is the
morphism (data.factorizationData f).Z ⟶ (data.factorizationData g).Z
expressing the
functoriality of the intermediate objects of the factorizations
for φ : Arrow.mk f ⟶ Arrow.mk g
.
Equations
- data.mapZ φ = data.Z.map φ
Instances For
Auxiliary definition for FunctorialFactorizationData.functorCategory
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A functorial factorization in the category C
extends to the functor category J ⥤ C
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The functorial factorization axiom for two classes of morphisms W₁
and W₂
in a
category C
. It asserts that any morphism can be factored in a functorial manner
as a morphism in W₁
followed by a morphism in W₂
.
- nonempty_functorialFactorizationData : Nonempty (W₁.FunctorialFactorizationData W₂)
Instances
A chosen term in FunctorialFactorizationData W₁ W₂
when the functorial factorization
axiom HasFunctorialFactorization W₁ W₂
holds.
Equations
- W₁.functorialFactorizationData W₂ = ⋯.some