Over X when C has strict initial objects #
In this file we define the canonical equivalence of Over X with Discrete PUnit when
C has strict initial objects. We also provide the variants for P.Over Q X
and the dual versions.
noncomputable def CategoryTheory.overEquivOfIsInitial {C : Type u_1} [Category.{v_1, u_1} C] [Limits.HasStrictInitialObjects C] (X : C) (h : Limits.IsInitial X) :
If C has strict initial objects and X is an initial object, the category
Over X is equivalent to a point.
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[simp]
theorem CategoryTheory.overEquivOfIsInitial_counitIso {C : Type u_1} [Category.{v_1, u_1} C] [Limits.HasStrictInitialObjects C] (X : C) (h : Limits.IsInitial X) :
(overEquivOfIsInitial.{w, v_1, u_1} X h).counitIso = Iso.refl ((Functor.fromPUnit (Over.mk (CategoryStruct.id X))).comp (Functor.star (Over X)))
@[simp]
theorem CategoryTheory.overEquivOfIsInitial_functor {C : Type u_1} [Category.{v_1, u_1} C] [Limits.HasStrictInitialObjects C] (X : C) (h : Limits.IsInitial X) :
@[simp]
theorem CategoryTheory.overEquivOfIsInitial_inverse {C : Type u_1} [Category.{v_1, u_1} C] [Limits.HasStrictInitialObjects C] (X : C) (h : Limits.IsInitial X) :
@[simp]
theorem CategoryTheory.overEquivOfIsInitial_unitIso {C : Type u_1} [Category.{v_1, u_1} C] [Limits.HasStrictInitialObjects C] (X : C) (h : Limits.IsInitial X) :
(overEquivOfIsInitial.{w, v_1, u_1} X h).unitIso = NatIso.ofComponents (fun (A : Over X) => Over.isoMk (asIso A.hom) ⋯) ⋯
noncomputable def CategoryTheory.underEquivOfIsTerminal {C : Type u_1} [Category.{v_1, u_1} C] [Limits.HasStrictTerminalObjects C] (X : C) (h : Limits.IsTerminal X) :
If C has strict terminal objects and X is a terminal object, the category
Under X is equivalent to a point.
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[simp]
theorem CategoryTheory.underEquivOfIsTerminal_inverse {C : Type u_1} [Category.{v_1, u_1} C] [Limits.HasStrictTerminalObjects C] (X : C) (h : Limits.IsTerminal X) :
@[simp]
theorem CategoryTheory.underEquivOfIsTerminal_unitIso {C : Type u_1} [Category.{v_1, u_1} C] [Limits.HasStrictTerminalObjects C] (X : C) (h : Limits.IsTerminal X) :
(underEquivOfIsTerminal.{w, v_1, u_1} X h).unitIso = NatIso.ofComponents (fun (A : Under X) => Under.isoMk (asIso A.hom).symm ⋯) ⋯
@[simp]
theorem CategoryTheory.underEquivOfIsTerminal_counitIso {C : Type u_1} [Category.{v_1, u_1} C] [Limits.HasStrictTerminalObjects C] (X : C) (h : Limits.IsTerminal X) :
(underEquivOfIsTerminal.{w, v_1, u_1} X h).counitIso = Iso.refl ((Functor.fromPUnit (Under.mk (CategoryStruct.id X))).comp (Functor.star (Under X)))
@[simp]
theorem CategoryTheory.underEquivOfIsTerminal_functor {C : Type u_1} [Category.{v_1, u_1} C] [Limits.HasStrictTerminalObjects C] (X : C) (h : Limits.IsTerminal X) :
noncomputable def CategoryTheory.MorphismProperty.overEquivOfIsInitial {C : Type u_1} [Category.{v_1, u_1} C] (P Q : MorphismProperty C) [P.ContainsIdentities] [Q.IsMultiplicative] [Q.RespectsIso] [Limits.HasStrictInitialObjects C] (X : C) (h : Limits.IsInitial X) :
If C has strict initial objects and X is an initial object, the category
P.Over Q X is equivalent to a point.
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[simp]
theorem CategoryTheory.MorphismProperty.overEquivOfIsInitial_counitIso {C : Type u_1} [Category.{v_1, u_1} C] (P Q : MorphismProperty C) [P.ContainsIdentities] [Q.IsMultiplicative] [Q.RespectsIso] [Limits.HasStrictInitialObjects C] (X : C) (h : Limits.IsInitial X) :
(overEquivOfIsInitial.{w, v_1, u_1} P Q X h).counitIso = Iso.refl ((Functor.fromPUnit (Over.mk Q (CategoryStruct.id X) ⋯)).comp (Functor.star (P.Over Q X)))
@[simp]
theorem CategoryTheory.MorphismProperty.overEquivOfIsInitial_unitIso {C : Type u_1} [Category.{v_1, u_1} C] (P Q : MorphismProperty C) [P.ContainsIdentities] [Q.IsMultiplicative] [Q.RespectsIso] [Limits.HasStrictInitialObjects C] (X : C) (h : Limits.IsInitial X) :
(overEquivOfIsInitial.{w, v_1, u_1} P Q X h).unitIso = NatIso.ofComponents (fun (A : P.Over Q X) => Over.isoMk (asIso A.hom) ⋯) ⋯
@[simp]
theorem CategoryTheory.MorphismProperty.overEquivOfIsInitial_functor {C : Type u_1} [Category.{v_1, u_1} C] (P Q : MorphismProperty C) [P.ContainsIdentities] [Q.IsMultiplicative] [Q.RespectsIso] [Limits.HasStrictInitialObjects C] (X : C) (h : Limits.IsInitial X) :
@[simp]
theorem CategoryTheory.MorphismProperty.overEquivOfIsInitial_inverse {C : Type u_1} [Category.{v_1, u_1} C] (P Q : MorphismProperty C) [P.ContainsIdentities] [Q.IsMultiplicative] [Q.RespectsIso] [Limits.HasStrictInitialObjects C] (X : C) (h : Limits.IsInitial X) :
(overEquivOfIsInitial.{w, v_1, u_1} P Q X h).inverse = Functor.fromPUnit (Over.mk Q (CategoryStruct.id X) ⋯)
noncomputable def CategoryTheory.MorphismProperty.underEquivOfIsTerminal {C : Type u_1} [Category.{v_1, u_1} C] (P Q : MorphismProperty C) [P.ContainsIdentities] [Q.IsMultiplicative] [Q.RespectsIso] [Limits.HasStrictTerminalObjects C] (X : C) (h : Limits.IsTerminal X) :
If C has strict terminal objects and X is a terminal object, the category
P.Under Q X is equivalent to a point.
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[simp]
theorem CategoryTheory.MorphismProperty.underEquivOfIsTerminal_unitIso {C : Type u_1} [Category.{v_1, u_1} C] (P Q : MorphismProperty C) [P.ContainsIdentities] [Q.IsMultiplicative] [Q.RespectsIso] [Limits.HasStrictTerminalObjects C] (X : C) (h : Limits.IsTerminal X) :
(underEquivOfIsTerminal.{w, v_1, u_1} P Q X h).unitIso = NatIso.ofComponents (fun (A : P.Under Q X) => Under.isoMk (asIso A.hom).symm ⋯) ⋯
@[simp]
theorem CategoryTheory.MorphismProperty.underEquivOfIsTerminal_counitIso {C : Type u_1} [Category.{v_1, u_1} C] (P Q : MorphismProperty C) [P.ContainsIdentities] [Q.IsMultiplicative] [Q.RespectsIso] [Limits.HasStrictTerminalObjects C] (X : C) (h : Limits.IsTerminal X) :
(underEquivOfIsTerminal.{w, v_1, u_1} P Q X h).counitIso = Iso.refl ((Functor.fromPUnit (Under.mk Q (CategoryStruct.id X) ⋯)).comp (Functor.star (P.Under Q X)))
@[simp]
theorem CategoryTheory.MorphismProperty.underEquivOfIsTerminal_inverse {C : Type u_1} [Category.{v_1, u_1} C] (P Q : MorphismProperty C) [P.ContainsIdentities] [Q.IsMultiplicative] [Q.RespectsIso] [Limits.HasStrictTerminalObjects C] (X : C) (h : Limits.IsTerminal X) :
(underEquivOfIsTerminal.{w, v_1, u_1} P Q X h).inverse = Functor.fromPUnit (Under.mk Q (CategoryStruct.id X) ⋯)
@[simp]
theorem CategoryTheory.MorphismProperty.underEquivOfIsTerminal_functor {C : Type u_1} [Category.{v_1, u_1} C] (P Q : MorphismProperty C) [P.ContainsIdentities] [Q.IsMultiplicative] [Q.RespectsIso] [Limits.HasStrictTerminalObjects C] (X : C) (h : Limits.IsTerminal X) :