Zero objects #
A category "has a zero object" if it has an object which is both initial and terminal. Having a
zero object provides zero morphisms, as the unique morphisms factoring through the zero object;
see CategoryTheory.Limits.Shapes.ZeroMorphisms
.
References #
- [F. Borceux, Handbook of Categorical Algebra 2][borceux-vol2]
An object X
in a category is a zero object if for every object Y
there is a unique morphism to : X → Y
and a unique morphism from : Y → X
.
This is a characteristic predicate for has_zero_object
.
there are unique morphisms to the object
there are unique morphisms from the object
Instances For
If h : IsZero X
, then h.to_ Y
is a choice of unique morphism X → Y
.
Equations
- CategoryTheory.Limits.IsZero.to_ h Y = default
Instances For
If h : is_zero X
, then h.from_ Y
is a choice of unique morphism Y → X
.
Equations
- CategoryTheory.Limits.IsZero.from_ h Y = default
Instances For
Any two zero objects are isomorphic.
Equations
Instances For
A zero object is in particular initial.
Instances For
A zero object is in particular terminal.
Instances For
The (unique) isomorphism between any initial object and the zero object.
Equations
Instances For
The (unique) isomorphism between any terminal object and the zero object.
Equations
Instances For
A category "has a zero object" if it has an object which is both initial and terminal.
- zero : ∃ (X : C), CategoryTheory.Limits.IsZero X
there exists a zero object
Instances
Construct a Zero C
for a category with a zero object.
This can not be a global instance as it will trigger for every Zero C
typeclass search.
Equations
- CategoryTheory.Limits.HasZeroObject.zero' C = { zero := Exists.choose (_ : ∃ (X : C), CategoryTheory.Limits.IsZero X) }
Instances For
Equations
Every zero object is isomorphic to the zero object.
Equations
Instances For
There is a unique morphism from the zero object to any object X
.
Equations
- CategoryTheory.Limits.HasZeroObject.uniqueTo X = Nonempty.some (_ : Nonempty (Unique (0 ⟶ X)))
Instances For
There is a unique morphism from any object X
to the zero object.
Equations
- CategoryTheory.Limits.HasZeroObject.uniqueFrom X = Nonempty.some (_ : Nonempty (Unique (X ⟶ 0)))
Instances For
Equations
- (_ : Subsingleton (X ≅ 0)) = (_ : Subsingleton (X ≅ 0))
Equations
- (_ : CategoryTheory.Mono f) = (_ : CategoryTheory.Mono f)
Equations
- (_ : CategoryTheory.Epi f) = (_ : CategoryTheory.Epi f)
Equations
- (_ : CategoryTheory.IsIso f) = (_ : CategoryTheory.IsIso f)
A zero object is in particular initial.
Equations
- CategoryTheory.Limits.HasZeroObject.zeroIsInitial = CategoryTheory.Limits.IsZero.isInitial (_ : CategoryTheory.Limits.IsZero 0)
Instances For
A zero object is in particular terminal.
Equations
- CategoryTheory.Limits.HasZeroObject.zeroIsTerminal = CategoryTheory.Limits.IsZero.isTerminal (_ : CategoryTheory.Limits.IsZero 0)
Instances For
A zero object is in particular initial.
Equations
- (_ : CategoryTheory.Limits.HasInitial C) = (_ : CategoryTheory.Limits.HasInitial C)
A zero object is in particular terminal.
Equations
- (_ : CategoryTheory.Limits.HasTerminal C) = (_ : CategoryTheory.Limits.HasTerminal C)
The (unique) isomorphism between any initial object and the zero object.
Equations
- CategoryTheory.Limits.HasZeroObject.zeroIsoIsInitial t = CategoryTheory.Limits.IsInitial.uniqueUpToIso CategoryTheory.Limits.HasZeroObject.zeroIsInitial t
Instances For
The (unique) isomorphism between any terminal object and the zero object.
Equations
- CategoryTheory.Limits.HasZeroObject.zeroIsoIsTerminal t = CategoryTheory.Limits.IsTerminal.uniqueUpToIso CategoryTheory.Limits.HasZeroObject.zeroIsTerminal t
Instances For
The (unique) isomorphism between the chosen initial object and the chosen zero object.
Equations
- CategoryTheory.Limits.HasZeroObject.zeroIsoInitial = CategoryTheory.Limits.IsInitial.uniqueUpToIso CategoryTheory.Limits.HasZeroObject.zeroIsInitial CategoryTheory.Limits.initialIsInitial
Instances For
The (unique) isomorphism between the chosen terminal object and the chosen zero object.
Equations
- CategoryTheory.Limits.HasZeroObject.zeroIsoTerminal = CategoryTheory.Limits.IsTerminal.uniqueUpToIso CategoryTheory.Limits.HasZeroObject.zeroIsTerminal CategoryTheory.Limits.terminalIsTerminal