Quotient category #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
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.
- is_equiv : ∀ {X Y : C}, is_equiv (X ⟶ Y) r
- comp_left : ∀ {X Y Z : C} (f : X ⟶ Y) {g g' : Y ⟶ Z}, r g g' → r (f ≫ g) (f ≫ g')
- comp_right : ∀ {X Y Z : C} {f f' : X ⟶ Y} (g : Y ⟶ Z), r f f' → r (f ≫ g) (f' ≫ g)
A hom_rel
is a congruence when it's an equivalence on every hom-set, and it can be composed
from left and right.
Instances of this typeclass
- as : C
A type synonym for C
, thought of as the objects of the quotient category.
Instances for category_theory.quotient
- category_theory.quotient.has_sizeof_inst
- category_theory.quotient.inhabited
- category_theory.quotient.category
Equations
- category_theory.quotient.inhabited r = {default := {as := inhabited.default _inst_2}}
- intro : ∀ {C : Type u_1} [_inst_1 : category_theory.category C] {r : hom_rel C} ⦃s t : C⦄ {a b : C} (f : s ⟶ a) (m₁ m₂ : a ⟶ b) (g : b ⟶ t), r m₁ m₂ → category_theory.quotient.comp_closure r (f ≫ m₁ ≫ g) (f ≫ m₂ ≫ g)
Generates the closure of a family of relations w.r.t. composition from left and right.
Hom-sets of the quotient category.
Equations
- category_theory.quotient.hom r s t = quot (category_theory.quotient.comp_closure r)
Instances for category_theory.quotient.hom
Equations
- category_theory.quotient.hom.inhabited r a = {default := quot.mk (category_theory.quotient.comp_closure r) (𝟙 a.as)}
Composition in the quotient category.
Equations
- category_theory.quotient.comp r = λ (hf : category_theory.quotient.hom r a b) (hg : category_theory.quotient.hom r b c), quot.lift_on hf (λ (f : a.as ⟶ b.as), quot.lift_on hg (λ (g : b.as ⟶ c.as), quot.mk (category_theory.quotient.comp_closure r) (f ≫ g)) _) _
Equations
- category_theory.quotient.category r = {to_category_struct := {to_quiver := {hom := category_theory.quotient.hom r}, id := λ (a : category_theory.quotient r), quot.mk (category_theory.quotient.comp_closure r) (𝟙 a.as), comp := category_theory.quotient.comp r}, id_comp' := _, comp_id' := _, assoc' := _}
The functor from a category to its quotient.
Equations
Instances for category_theory.quotient.functor
Equations
- category_theory.quotient.functor.category_theory.full r = {preimage := λ (X Y : C) (f : (category_theory.quotient.functor r).obj X ⟶ (category_theory.quotient.functor r).obj Y), quot.out f, witness' := _}
The induced functor on the quotient category.
Equations
- category_theory.quotient.lift r F H = {obj := λ (a : category_theory.quotient r), F.obj a.as, map := λ (a b : category_theory.quotient r) (hf : a ⟶ b), quot.lift_on hf (λ (f : a.as ⟶ b.as), F.map f) _, map_id' := _, map_comp' := _}
The original functor factors through the induced functor.
Equations
- category_theory.quotient.lift.is_lift r F H = category_theory.nat_iso.of_components (λ (X : C), category_theory.iso.refl ((category_theory.quotient.functor r ⋙ category_theory.quotient.lift r F H).obj X)) _