Limits in concrete categories #
In this file, we combine the description of limits in Types and the API about
the preservation of products and pullbacks in order to describe these limits in a
concrete category C.
If F : J → C is a family of objects in C, we define a bijection
Limits.Concrete.productEquiv F : ToType (∏ᶜ F) ≃ ∀ j, ToType (F j).
Similarly, if f₁ : X₁ ⟶ S and f₂ : X₂ ⟶ S are two morphisms, the elements
in pullback f₁ f₂ are identified by Limits.Concrete.pullbackEquiv
to compatible tuples of elements in X₁ × X₂.
Some results are also obtained for the terminal object, binary products, wide-pullbacks, wide-pushouts, multiequalizers and cokernels.
The equivalence ToType (∏ᶜ F) ≃ ∀ j, ToType (F j) if F : J → C is a family of objects
in a concrete category C.
Equations
- One or more equations did not get rendered due to their size.
Instances For
If forget C preserves terminals and X is terminal, then ToType X is a
singleton.
Equations
- One or more equations did not get rendered due to their size.
Instances For
If forget C reflects terminals and ToType X is a singleton, then X is terminal.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The equivalence IsTerminal X ≃ Unique (ToType X) if the forgetful functor
preserves and reflects terminals.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The equivalence ToType (⊤_ C) ≃ PUnit when C is a concrete category.
Equations
Instances For
Equations
- CategoryTheory.Limits.Concrete.instUniqueToTypeTerminal C = { default := (CategoryTheory.Limits.Concrete.terminalEquiv C).symm PUnit.unit, uniq := ⋯ }
If forget C preserves initials and X is initial, then ToType X is empty.
If forget C reflects initials and ToType X is empty, then X is initial.
If forget C preserves and reflects initials, then X is initial if and only if
ToType X is empty.
The equivalence ToType (X₁ ⨯ X₂) ≃ (ToType X₁) × (ToType X₂)
if X₁ and X₂ are objects in a concrete category C.
Equations
- One or more equations did not get rendered due to their size.
Instances For
In a concrete category C, given two morphisms f₁ : X₁ ⟶ S and f₂ : X₂ ⟶ S,
the elements in pullback f₁ f₁ can be identified to compatible tuples of
elements in X₁ and X₂.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Constructor for elements in a pullback in a concrete category.
Equations
- CategoryTheory.Limits.Concrete.pullbackMk f₁ f₂ x₁ x₂ h = (CategoryTheory.Limits.Concrete.pullbackEquiv f₁ f₂).symm ⟨(x₁, x₂), h⟩
Instances For
An auxiliary equivalence to be used in multiequalizerEquiv below.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The equivalence between the noncomputable multiequalizer and the concrete multiequalizer.
Equations
- One or more equations did not get rendered due to their size.