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 x_2 x => PUnit.{0} }
- 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
.
A HomRel
is a congruence when it's an equivalence on every hom-set, and it can be composed
from left and right.
Instances
- as : C
The object of
C
.
A type synonym for C
, thought of as the objects of the quotient category.
Instances For
Equations
- CategoryTheory.instInhabitedQuotient r = { default := { as := default } }
- intro: ∀ {C : Type u_1} [inst : 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), 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))
Generates the closure of a family of relations w.r.t. composition from left and right.
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
- CategoryTheory.Quotient.category r = CategoryTheory.Category.mk
The functor from a category to its quotient.
Equations
- CategoryTheory.Quotient.functor r = CategoryTheory.Functor.mk { obj := fun a => { as := a }, map := fun x x_1 f => Quot.mk (CategoryTheory.Quotient.CompClosure r) f }
Instances For
Equations
- CategoryTheory.Quotient.fullFunctor r = CategoryTheory.Full.mk fun X Y f => Quot.out f
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 τ = CategoryTheory.NatTrans.mk fun x => match x with | { as := X } => τ.app X
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
.