Connected components of a category #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
Defines a type connected_components J
indexing the connected components of a category, and the
full subcategories giving each connected component: component j : Type u₁
.
We show that each component j
is in fact connected.
We show every category can be expressed as a disjoint union of its connected components, in
particular decomposed J
is the category (definitionally) given by the sigma-type of the connected
components of J
, and it is shown that this is equivalent to J
.
This type indexes the connected components of the category J
.
Equations
Instances for category_theory.connected_components
Given an index for a connected component, produce the actual component as a full subcategory.
Equations
- category_theory.component j = category_theory.full_subcategory (λ (k : J), quotient.mk' k = j)
Instances for category_theory.component
The inclusion functor from a connected component to the whole category.
Equations
- category_theory.component.ι j = category_theory.full_subcategory_inclusion (λ (k : J), quotient.mk' k = j)
Instances for category_theory.component.ι
Each connected component of the category is nonempty.
Each connected component of the category is connected.
The disjoint union of J
s connected components, written explicitly as a sigma-type with the
category structure.
This category is equivalent to J
.
The inclusion of each component into the decomposed category. This is just sigma.incl
but having
this abbreviation helps guide typeclass search to get the right category instance on decomposed J
.
The forward direction of the equivalence between the decomposed category and the original.
Instances for category_theory.decomposed_to
Equations
- category_theory.decomposed_to.full = {preimage := λ (X Y : category_theory.decomposed J) (f : (category_theory.decomposed_to J).obj X ⟶ (category_theory.decomposed_to J).obj Y), sigma.cases_on X (λ (j' : category_theory.connected_components J) (X_snd : category_theory.component j') (f : (category_theory.decomposed_to J).obj ⟨j', X_snd⟩ ⟶ (category_theory.decomposed_to J).obj Y), category_theory.full_subcategory.cases_on X_snd (λ (X : J) (hX : quotient.mk' X = j') (f : (category_theory.decomposed_to J).obj ⟨j', {obj := X, property := hX}⟩ ⟶ (category_theory.decomposed_to J).obj Y), sigma.cases_on Y (λ (k' : category_theory.connected_components J) (Y_snd : category_theory.component k') (f : (category_theory.decomposed_to J).obj ⟨j', {obj := X, property := hX}⟩ ⟶ (category_theory.decomposed_to J).obj ⟨k', Y_snd⟩), category_theory.full_subcategory.cases_on Y_snd (λ (Y : J) (hY : quotient.mk' Y = k') (f : (category_theory.decomposed_to J).obj ⟨j', {obj := X, property := hX}⟩ ⟶ (category_theory.decomposed_to J).obj ⟨k', {obj := Y, property := hY}⟩), id (λ (f : X ⟶ Y), eq.rec (λ (hY : quotient.mk' Y = j'), category_theory.sigma.sigma_hom.mk f) _ hY) f) f) f) f) f, witness' := _}
This gives that any category is equivalent to a disjoint union of connected categories.