Quotient category #
Constructs the quotient of a category by an arbitrary family of relations on its hom-sets, by introducing a type synonym for the objects, and identifying homs as necessary.
This is analogous to 'the quotient of a group by the normal closure of a subset', rather
than 'the quotient of a group by a normal subgroup'. When taking the quotient by a congruence
relation, functor_map_eq_iff
says that no unnecessary identifications have been made.
Equations
- instInhabitedHomRel C = { default := fun (x x_1 : C) (x_2 x : x ⟶ x_1) => PUnit.{0} }
A functor induces a HomRel
on its domain, relating those maps that have the same image.
Instances For
A HomRel
is a congruence when it's an equivalence on every hom-set, and it can be composed
from left and right.
- equivalence {X Y : C} : Equivalence r
r
is an equivalence on every hom-set. - compLeft {X Y Z : C} (f : X ⟶ Y) {g g' : Y ⟶ Z} : r g g' → r (CategoryTheory.CategoryStruct.comp f g) (CategoryTheory.CategoryStruct.comp f g')
Precomposition with an arrow respects
r
. - compRight {X Y Z : C} {f f' : X ⟶ Y} (g : Y ⟶ Z) : r f f' → r (CategoryTheory.CategoryStruct.comp f g) (CategoryTheory.CategoryStruct.comp f' g)
Postcomposition with an arrow respects
r
.
Instances
For F : C ⥤ D
, F.homRel
is a congruence.
A type synonym for C
, thought of as the objects of the quotient category.
- as : C
The object of
C
.
Instances For
Equations
- CategoryTheory.instInhabitedQuotient r = { default := { as := default } }
Generates the closure of a family of relations w.r.t. composition from left and right.
- intro {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {r : HomRel C} ⦃s t : C⦄ {a b : C} (f : s ⟶ a) (m₁ m₂ : a ⟶ b) (g : b ⟶ t) (h : r m₁ m₂) : CategoryTheory.Quotient.CompClosure r (CategoryTheory.CategoryStruct.comp f (CategoryTheory.CategoryStruct.comp m₁ g)) (CategoryTheory.CategoryStruct.comp f (CategoryTheory.CategoryStruct.comp m₂ g))
Instances For
Hom-sets of the quotient category.
Equations
Instances For
Equations
- CategoryTheory.Quotient.instInhabitedHom r a = { default := Quot.mk (CategoryTheory.Quotient.CompClosure r) (CategoryTheory.CategoryStruct.id a.as) }
Composition in the quotient category.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
The functor from a category to its quotient.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The induced functor on the quotient category.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The original functor factors through the induced functor.
Equations
- One or more equations did not get rendered due to their size.
Instances For
In order to define a natural transformation F ⟶ G
with F G : Quotient r ⥤ D
, it suffices
to do so after precomposing with Quotient.functor r
.
Equations
- CategoryTheory.Quotient.natTransLift r τ = { app := fun (x : CategoryTheory.Quotient r) => match x with | { as := X } => τ.app X, naturality := ⋯ }
Instances For
In order to define a natural isomorphism F ≅ G
with F G : Quotient r ⥤ D
, it suffices
to do so after precomposing with Quotient.functor r
.
Equations
- CategoryTheory.Quotient.natIsoLift r τ = { hom := CategoryTheory.Quotient.natTransLift r τ.hom, inv := CategoryTheory.Quotient.natTransLift r τ.inv, hom_inv_id := ⋯, inv_hom_id := ⋯ }