Compatibilities of properties of morphisms with respect to composition #
Given P : MorphismProperty C
, we define the predicate P.IsStableUnderComposition
which means that P f → P g → P (f ≫ g)
. We also introduce the type classes
W.ContainsIdentities
, W.IsMultiplicative
, and W.HasTwoOutOfThreeProperty
.
Typeclass expressing that a morphism property contain identities.
- id_mem (X : C) : W (CategoryStruct.id X)
for all
X : C
, the identity ofX
satisfies the morphism property
Instances
A morphism property satisfies IsStableUnderComposition
if the composition of
two such morphisms still falls in the class.
Instances
A morphism property is StableUnderInverse
if the inverse of a morphism satisfying
the property still falls in the class.
Equations
- P.StableUnderInverse = ∀ ⦃X Y : C⦄ (e : X ≅ Y), P e.hom → P e.inv
Instances For
Given app : Π X, F₁.obj X ⟶ F₂.obj X
where F₁
and F₂
are two functors,
this is the morphism_property C
satisfied by the morphisms in C
with respect
to whom app
is natural.
Equations
- CategoryTheory.MorphismProperty.naturalityProperty app f = (CategoryTheory.CategoryStruct.comp (F₁.map f) (app Y) = CategoryTheory.CategoryStruct.comp (app X) (F₂.map f))
Instances For
A morphism property is multiplicative if it contains identities and is stable by composition.
Instances
Given a morphism property W
, the multiplicativeClosure W
is the smallest
multiplicative property greater than or equal to W
.
- of {C : Type u} [Category.{v, u} C] {W : MorphismProperty C} {x y : C} (f : x ⟶ y) (hf : W f) : W.multiplicativeClosure f
- id {C : Type u} [Category.{v, u} C] {W : MorphismProperty C} (x : C) : W.multiplicativeClosure (CategoryStruct.id x)
- comp_of {C : Type u} [Category.{v, u} C] {W : MorphismProperty C} {x y z : C} (f : x ⟶ y) (g : y ⟶ z) (hf : W.multiplicativeClosure f) (hg : W g) : W.multiplicativeClosure (CategoryStruct.comp f g)
Instances For
A variant of multiplicativeClosure
in which compositions are taken on the left rather than
on the right. It is not intended to be used directly, and one should rather access this via
multiplicativeClosure_eq_multiplicativeClosure'
in cases where the inductive principle of this
variant is needed.
- of {C : Type u} [Category.{v, u} C] {W : MorphismProperty C} {x y : C} (f : x ⟶ y) (hf : W f) : W.multiplicativeClosure' f
- id {C : Type u} [Category.{v, u} C] {W : MorphismProperty C} (x : C) : W.multiplicativeClosure' (CategoryStruct.id x)
- of_comp {C : Type u} [Category.{v, u} C] {W : MorphismProperty C} {x y z : C} (f : x ⟶ y) (g : y ⟶ z) (hf : W f) (hg : W.multiplicativeClosure' g) : W.multiplicativeClosure' (CategoryStruct.comp f g)
Instances For
multiplicativeClosure W
is multiplicative.
multiplicativeClosure' W
is multiplicative.
The multiplicative closure is greater than or equal to the original property.
The multiplicative closure of a multiplicative property is equal to itself.
The multiplicative closure of W
is the smallest multiplicative property greater than or equal
to W
.
A class of morphisms W
has the of-postcomp property wrt. W'
if whenever
g
is in W'
and f ≫ g
is in W
, also f
is in W
.
Instances
A class of morphisms W
has the of-precomp property wrt. W'
if whenever
f
is in W'
and f ≫ g
is in W
, also g
is in W
.
Instances
A class of morphisms W
has the two-out-of-three property if whenever two out
of three maps in f
, g
, f ≫ g
are in W
, then the third map is also in W
.