Connected components of a category #
Defines a type ConnectedComponents 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
The map ConnectedComponents J → ConnectedComponents K
induced by a functor J ⥤ K
.
Equations
- F.mapConnectedComponents x = Quotient.lift (Quotient.mk (CategoryTheory.Zigzag.setoid K) ∘ F.obj) ⋯ x
Equations
- CategoryTheory.instInhabitedConnectedComponents = { default := Quotient.mk'' default }
Every function from connected components of a category gives a functor to discrete category
Equations
- One or more equations did not get rendered due to their size.
Every functor to a discrete category gives a function from connected components
Equations
- CategoryTheory.ConnectedComponents.liftFunctor J F = Quotient.lift (fun (c : J) => (F.obj c).as) ⋯
Functions from connected components and functors to discrete category are in bijection
Equations
- One or more equations did not get rendered due to their size.
Given an index for a connected component, produce the actual component as a full subcategory.
Equations
- CategoryTheory.Component j = CategoryTheory.FullSubcategory fun (k : J) => Quotient.mk'' k = j
Equations
- CategoryTheory.instCategoryComponent = CategoryTheory.FullSubcategory.category fun (k : J) => Quotient.mk'' k = j
The inclusion functor from a connected component to the whole category.
Equations
- CategoryTheory.Component.ι j = CategoryTheory.fullSubcategoryInclusion fun (k : J) => Quotient.mk'' k = j
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Each connected component of the category is nonempty.
Equations
- ⋯ = ⋯
Equations
- CategoryTheory.instInhabitedComponent j = Classical.inhabited_of_nonempty'
Each connected component of the category is connected.
Equations
- ⋯ = ⋯
The disjoint union of J
s connected components, written explicitly as a sigma-type with the
category structure.
This category is equivalent to J
.
Equations
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
.
Equations
The forward direction of the equivalence between the decomposed category and the original.
Equations
- CategoryTheory.decomposedTo J = CategoryTheory.Sigma.desc CategoryTheory.Component.ι
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
This gives that any category is equivalent to a disjoint union of connected categories.
Equations
- CategoryTheory.decomposedEquiv = (CategoryTheory.decomposedTo J).asEquivalence