This file contains declarations missing from mathlib, to be upstreamed.
@[simp]
theorem
CategoryTheory.Limits.IsTerminal.comp_from_assoc
{C : Type u₁}
[Category.{v₁, u₁} C]
{Z : C}
(t : IsTerminal Z)
{X Y : C}
(f : X ⟶ Y)
{Z✝ : C}
(h : Z ⟶ Z✝)
:
@[simp]
theorem
CategoryTheory.Limits.IsInitial.to_comp_assoc
{C : Type u₁}
[Category.{v₁, u₁} C]
{X : C}
(t : IsInitial X)
{Y Z : C}
(f : Y ⟶ Z)
{Z✝ : C}
(h : Z ⟶ Z✝)
:
theorem
CategoryTheory.Limits.PullbackCone.IsLimit.comp_lift
{C : Type u_1}
[Category.{u_2, u_1} C]
{X Y Z W' W : C}
{f : X ⟶ Z}
{g : Y ⟶ Z}
{t : PullbackCone f g}
(σ : W' ⟶ W)
(ht : IsLimit t)
(h : W ⟶ X)
(k : W ⟶ Y)
(w : CategoryStruct.comp h f = CategoryStruct.comp k g)
:
CategoryStruct.comp σ (ht.lift (PullbackCone.mk h k w)) = ht.lift (PullbackCone.mk (CategoryStruct.comp σ h) (CategoryStruct.comp σ k) ⋯)
theorem
CategoryTheory.Limits.PullbackCone.IsLimit.comp_lift_assoc
{C : Type u_1}
[Category.{u_2, u_1} C]
{X Y Z W' W : C}
{f : X ⟶ Z}
{g : Y ⟶ Z}
{t : PullbackCone f g}
(σ : W' ⟶ W)
(ht : IsLimit t)
(h : W ⟶ X)
(k : W ⟶ Y)
(w : CategoryStruct.comp h f = CategoryStruct.comp k g)
{Z✝ : C}
(h✝ : t.pt ⟶ Z✝)
:
CategoryStruct.comp σ (CategoryStruct.comp (ht.lift (PullbackCone.mk h k w)) h✝) = CategoryStruct.comp (ht.lift (PullbackCone.mk (CategoryStruct.comp σ h) (CategoryStruct.comp σ k) ⋯)) h✝
theorem
CategoryTheory.ULift.comp_downFunctor_inj
{C : Type u₁}
{D : Type u₂}
[Category.{v₁, u₁} C]
[Category.{v₂, u₂} D]
(F G : Functor C (ULift.{u, u₂} D))
:
theorem
CategoryTheory.ULift.comp_upFunctor_inj
{C : Type u₁}
{D : Type u₂}
[Category.{v₁, u₁} C]
[Category.{v₂, u₂} D]
(F G : Functor C D)
:
@[reducible, inline]
abbrev
CategoryTheory.Cat.homOf
{C D : Type u}
[Category.{v, u} C]
[Category.{v, u} D]
(F : Functor C D)
:
Equations
Instances For
Equations
- CategoryTheory.Cat.ULift_lte_iso_self = { hom := CategoryTheory.ULift.downFunctor, inv := CategoryTheory.ULift.upFunctor, hom_inv_id := ⋯, inv_hom_id := ⋯ }
Instances For
@[simp]
theorem
CategoryTheory.Cat.ULift_lte_iso_self_inv
{C : Type (max u u₁)}
[Category.{v, max u u₁} C]
:
@[simp]
theorem
CategoryTheory.Cat.ULift_lte_iso_self_hom
{C : Type (max u u₁)}
[Category.{v, max u u₁} C]
:
Instances For
Instances For
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[simp]
theorem
CategoryTheory.prod.eqToHom_fst
(C : Type u_1)
[Category.{u_3, u_1} C]
(D : Type u_2)
[Category.{u_4, u_2} D]
(x y : C × D)
(h : x = y)
:
@[simp]
theorem
CategoryTheory.prod.eqToHom_snd
(C : Type u_1)
[Category.{u_4, u_1} C]
(D : Type u_2)
[Category.{u_3, u_2} D]
(x y : C × D)
(h : x = y)
:
theorem
CategoryTheory.IsPullback.of_iso_isPullback
{C : Type u₁}
[Category.{v₁, u₁} C]
{P X Y Z : C}
{fst : P ⟶ X}
{snd : P ⟶ Y}
{f : X ⟶ Z}
{g : Y ⟶ Z}
(h : IsPullback fst snd f g)
{Q : C}
(i : Q ≅ P)
:
IsPullback (CategoryStruct.comp i.hom fst) (CategoryStruct.comp i.hom snd) f g
@[simp]
theorem
CategoryTheory.AsSmall.up_map_down_map
{C : Type u₁}
[Category.{v₁, u₁} C]
{X Y : C}
(f : X ⟶ Y)
:
theorem
CategoryTheory.AsSmall.comp_up_inj
{C : Type u}
[Category.{v, u} C]
{D : Type u₁}
[Category.{v₁, u₁} D]
{F G : Functor C D}
(h : F.comp up = G.comp up)
:
theorem
CategoryTheory.AsSmall.comp_down_inj
{C : Type u}
[Category.{v, u} C]
{D : Type u₁}
[Category.{v₁, u₁} D]
{F G : Functor C (AsSmall D)}
(h : F.comp down = G.comp down)
:
@[simp]
@[simp]
instance
CategoryTheory.AsSmall.instIsEquivalenceUp_groupoidModel
{C : Type u}
[Category.{v, u} C]
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[reducible, inline]
abbrev
CategoryTheory.Equivalence.chosenTerminal
{C : Type u₁}
{D : Type u₂}
[Category.{v₁, u₁} C]
[Category.{v₂, u₂} D]
[CartesianMonoidalCategory C]
(e : C ≌ D)
:
D
The chosen terminal object in D
.
Equations
Instances For
def
CategoryTheory.Equivalence.chosenTerminalIsTerminal
{C : Type u₁}
{D : Type u₂}
[Category.{v₁, u₁} C]
[Category.{v₂, u₂} D]
[CartesianMonoidalCategory C]
(e : C ≌ D)
:
The chosen terminal object in D
is terminal.
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
CategoryTheory.Equivalence.prodCone
{C : Type u₁}
{D : Type u₂}
[Category.{v₁, u₁} C]
[Category.{v₂, u₂} D]
[CartesianMonoidalCategory C]
(e : C ≌ D)
(X Y : D)
:
Limits.BinaryFan X Y
Product cones in D
are defined using chosen products in C
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
CategoryTheory.Equivalence.isLimitProdCone
{C : Type u₁}
{D : Type u₂}
[Category.{v₁, u₁} C]
[Category.{v₂, u₂} D]
[CartesianMonoidalCategory C]
(e : C ≌ D)
(X Y : D)
:
Limits.IsLimit (e.prodCone X Y)
The chosen product cone in D
is a limit.
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
CategoryTheory.Equivalence.chosenFiniteProducts
{C : Type u₁}
{D : Type u₂}
[Category.{v₁, u₁} C]
[Category.{v₂, u₂} D]
(e : C ≌ D)
[CartesianMonoidalCategory C]
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
CategoryTheory.functorToAsSmallEquiv
{D : Type u₁}
[Category.{v₁, u₁} D]
{C : Type u}
[Category.{v, u} C]
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[simp]
theorem
CategoryTheory.Cat.map_id_obj
{Γ : Type u₂}
[Category.{v₂, u₂} Γ]
{A : Functor Γ Cat}
{x : Γ}
{a : ↑(A.obj x)}
:
theorem
CategoryTheory.Cat.map_id_map
{Γ : Type u₂}
[Category.{v₂, u₂} Γ]
{A : Functor Γ Cat}
{x : Γ}
{a b : ↑(A.obj x)}
{f : a ⟶ b}
:
(A.map (CategoryStruct.id x)).map f = CategoryStruct.comp (eqToHom ⋯) (CategoryStruct.comp f (eqToHom ⋯))
theorem
CategoryTheory.Functor.Grothendieck.cast_eq
{Γ : Type u_1}
[Category.{u_2, u_1} Γ]
{F G : Functor Γ Cat}
(h : F = G)
(p : F.Grothendieck)
:
theorem
CategoryTheory.Functor.Grothendieck.map_eqToHom_base_pf
{Γ : Type u_1}
[Category.{u_2, u_1} Γ]
{A : Functor Γ Cat}
{G1 G2 : A.Grothendieck}
(eq : G1 = G2)
:
theorem
CategoryTheory.Functor.Grothendieck.map_eqToHom_base
{Γ : Type u_1}
[Category.{u_2, u_1} Γ]
{A : Functor Γ Cat}
{G1 G2 : A.Grothendieck}
(eq : G1 = G2)
:
theorem
CategoryTheory.Functor.Grothendieck.map_eqToHom_obj_base
{Γ : Type u_1}
[Category.{u_2, u_1} Γ]
{F G : Functor Γ Cat}
(h : F = G)
(x : F.Grothendieck)
:
def
CategoryTheory.Functor.Grothendieck.asFunctorFrom_fib
{C : Type u}
[Category.{v, u} C]
{F : Functor C Cat}
{E : Type u_2}
[Category.{u_3, u_2} E]
(K : Functor F.Grothendieck E)
(c : C)
:
Equations
Instances For
def
CategoryTheory.Functor.Grothendieck.asFunctorFrom_hom
{C : Type u}
[Category.{v, u} C]
{F : Functor C Cat}
{E : Type u_2}
[Category.{u_3, u_2} E]
(K : Functor F.Grothendieck E)
{c c' : C}
(f : c ⟶ c')
:
Equations
Instances For
theorem
CategoryTheory.Functor.Grothendieck.asFunctorFrom_hom_app
{C : Type u}
[Category.{v, u} C]
{F : Functor C Cat}
{E : Type u_2}
[Category.{u_3, u_2} E]
(K : Functor F.Grothendieck E)
{c c' : C}
(f : c ⟶ c')
(p : ↑(F.obj c))
:
theorem
CategoryTheory.Functor.Grothendieck.asFunctorFrom_hom_id
{C : Type u}
[Category.{v, u} C]
{F : Functor C Cat}
{E : Type u_2}
[Category.{u_3, u_2} E]
(K : Functor F.Grothendieck E)
(c : C)
:
theorem
CategoryTheory.Functor.Grothendieck.asFunctorFrom_hom_comp
{C : Type u}
[Category.{v, u} C]
{F : Functor C Cat}
{E : Type u_2}
[Category.{u_3, u_2} E]
(K : Functor F.Grothendieck E)
(c₁ c₂ c₃ : C)
(f : c₁ ⟶ c₂)
(g : c₂ ⟶ c₃)
:
asFunctorFrom_hom K (CategoryStruct.comp f g) = CategoryStruct.comp (asFunctorFrom_hom K f)
(CategoryStruct.comp (whiskerLeft (F.map f) (asFunctorFrom_hom K g)) (eqToHom ⋯))
theorem
CategoryTheory.Functor.Grothendieck.asFunctorFrom
{C : Type u}
[Category.{v, u} C]
{F : Functor C Cat}
{E : Type u_2}
[Category.{u_3, u_2} E]
(K : Functor F.Grothendieck E)
:
def
CategoryTheory.Functor.Grothendieck.functorFrom_comp_fib
{C : Type u}
[Category.{v, u} C]
{F : Functor C Cat}
{E : Type u_2}
[Category.{u_4, u_2} E]
(fib : (c : C) → Functor (↑(F.obj c)) E)
{D : Type u_3}
[Category.{u_5, u_3} D]
(G : Functor E D)
(c : C)
:
Equations
- CategoryTheory.Functor.Grothendieck.functorFrom_comp_fib fib G c = (fib c).comp G
Instances For
def
CategoryTheory.Functor.Grothendieck.functorFrom_comp_hom
{C : Type u}
[Category.{v, u} C]
{F : Functor C Cat}
{E : Type u_2}
[Category.{u_4, u_2} E]
(fib : (c : C) → Functor (↑(F.obj c)) E)
(hom : {c c' : C} → (f : c ⟶ c') → fib c ⟶ comp (F.map f) (fib c'))
{D : Type u_3}
[Category.{u_5, u_3} D]
(G : Functor E D)
{c c' : C}
(f : c ⟶ c')
:
Equations
- CategoryTheory.Functor.Grothendieck.functorFrom_comp_hom fib hom G f = CategoryTheory.Functor.whiskerRight (hom f) G
Instances For
theorem
CategoryTheory.Functor.Grothendieck.functorFrom_comp_hom_id
{C : Type u}
[Category.{v, u} C]
{F : Functor C Cat}
{E : Type u_2}
[Category.{u_5, u_2} E]
(fib : (c : C) → Functor (↑(F.obj c)) E)
(hom : {c c' : C} → (f : c ⟶ c') → fib c ⟶ comp (F.map f) (fib c'))
(hom_id : ∀ (c : C), hom (CategoryStruct.id c) = eqToHom ⋯)
{D : Type u_3}
[Category.{u_4, u_3} D]
(G : Functor E D)
(c : C)
:
theorem
CategoryTheory.Functor.Grothendieck.functorFrom_comp_hom_comp
{C : Type u}
[Category.{v, u} C]
{F : Functor C Cat}
{E : Type u_2}
[Category.{u_5, u_2} E]
(fib : (c : C) → Functor (↑(F.obj c)) E)
(hom : {c c' : C} → (f : c ⟶ c') → fib c ⟶ comp (F.map f) (fib c'))
(hom_comp :
∀ (c₁ c₂ c₃ : C) (f : c₁ ⟶ c₂) (g : c₂ ⟶ c₃),
hom (CategoryStruct.comp f g) = CategoryStruct.comp (hom f) (CategoryStruct.comp (whiskerLeft (F.map f) (hom g)) (eqToHom ⋯)))
{D : Type u_3}
[Category.{u_4, u_3} D]
(G : Functor E D)
(c₁ c₂ c₃ : C)
(f : c₁ ⟶ c₂)
(g : c₂ ⟶ c₃)
:
functorFrom_comp_hom fib (fun {c c' : C} => hom) G (CategoryStruct.comp f g) = CategoryStruct.comp (functorFrom_comp_hom fib (fun {c c' : C} => hom) G f)
(CategoryStruct.comp (whiskerLeft (F.map f) (functorFrom_comp_hom fib (fun {c c' : C} => hom) G g)) (eqToHom ⋯))
theorem
CategoryTheory.Functor.Grothendieck.functorFrom_comp
{C : Type u}
[Category.{v, u} C]
{F : Functor C Cat}
{E : Type u_2}
[Category.{u_5, u_2} E]
(fib : (c : C) → Functor (↑(F.obj c)) E)
(hom : {c c' : C} → (f : c ⟶ c') → fib c ⟶ comp (F.map f) (fib c'))
(hom_id : ∀ (c : C), hom (CategoryStruct.id c) = eqToHom ⋯)
(hom_comp :
∀ (c₁ c₂ c₃ : C) (f : c₁ ⟶ c₂) (g : c₂ ⟶ c₃),
hom (CategoryStruct.comp f g) = CategoryStruct.comp (hom f) (CategoryStruct.comp (whiskerLeft (F.map f) (hom g)) (eqToHom ⋯)))
{D : Type u_3}
[Category.{u_4, u_3} D]
(G : Functor E D)
:
(functorFrom fib (fun {c c' : C} => hom) hom_id hom_comp).comp G = functorFrom (functorFrom_comp_fib fib G) (fun {c c' : C} => functorFrom_comp_hom fib (fun {c c' : C} => hom) G) ⋯ ⋯
theorem
CategoryTheory.Functor.Grothendieck.functorFrom_eq_of
{C : Type u}
[Category.{v, u} C]
{F : Functor C Cat}
{E : Type u_2}
[Category.{u_4, u_2} E]
(fib : (c : C) → Functor (↑(F.obj c)) E)
(hom : {c c' : C} → (f : c ⟶ c') → fib c ⟶ comp (F.map f) (fib c'))
(hom_id : ∀ (c : C), hom (CategoryStruct.id c) = eqToHom ⋯)
(hom_comp :
∀ (c₁ c₂ c₃ : C) (f : c₁ ⟶ c₂) (g : c₂ ⟶ c₃),
hom (CategoryStruct.comp f g) = CategoryStruct.comp (hom f) (CategoryStruct.comp (whiskerLeft (F.map f) (hom g)) (eqToHom ⋯)))
(fib' : (c : C) → Functor (↑(F.obj c)) E)
(hom' : {c c' : C} → (f : c ⟶ c') → fib' c ⟶ comp (F.map f) (fib' c'))
(hom_id' : ∀ (c : C), hom' (CategoryStruct.id c) = eqToHom ⋯)
(hom_comp' :
∀ (c₁ c₂ c₃ : C) (f : c₁ ⟶ c₂) (g : c₂ ⟶ c₃),
hom' (CategoryStruct.comp f g) = CategoryStruct.comp (hom' f) (CategoryStruct.comp (whiskerLeft (F.map f) (hom' g)) (eqToHom ⋯)))
(ef : fib = fib')
(hhom : ∀ {c c' : C} (f : c ⟶ c'), CategoryStruct.comp (hom f) (eqToHom ⋯) = CategoryStruct.comp (eqToHom ⋯) (hom' f))
:
functorFrom fib (fun {c c' : C} => hom) hom_id hom_comp = functorFrom fib' (fun {c c' : C} => hom') hom_id' hom_comp'
theorem
CategoryTheory.Functor.Grothendieck.functorFrom_ext
{C : Type u}
[Category.{v, u} C]
{F : Functor C Cat}
{E : Type u_2}
[Category.{u_4, u_2} E]
{K K' : Functor F.Grothendieck E}
(hfib : asFunctorFrom_fib K = asFunctorFrom_fib K')
(hhom :
∀ {c c' : C} (f : c ⟶ c'),
CategoryStruct.comp (asFunctorFrom_hom K f) (eqToHom ⋯) = CategoryStruct.comp (eqToHom ⋯) (asFunctorFrom_hom K' f))
:
theorem
CategoryTheory.Functor.Grothendieck.functorFrom_hext
{C : Type u}
[Category.{v, u} C]
{F : Functor C Cat}
{E : Type u_2}
[Category.{u_4, u_2} E]
{K K' : Functor F.Grothendieck E}
(hfib : asFunctorFrom_fib K = asFunctorFrom_fib K')
(hhom : ∀ {c c' : C} (f : c ⟶ c'), asFunctorFrom_hom K f ≍ asFunctorFrom_hom K' f)
:
@[simp]
theorem
CategoryTheory.isoWhiskerLeft_eqToIso
{C : Type u₁}
[Category.{v₁, u₁} C]
{D : Type u₂}
[Category.{v₂, u₂} D]
{E : Type u₃}
[Category.{v₃, u₃} E]
(F : Functor C D)
{G H : Functor D E}
(η : G = H)
:
noncomputable def
CategoryTheory.Limits.pullbackHomEquiv
{𝒞 : Type u}
[Category.{v, u} 𝒞]
{A B C Γ : 𝒞}
{f : A ⟶ C}
{g : B ⟶ C}
[HasPullback f g]
:
(Γ ⟶ pullback f g) ≃ (fst : Γ ⟶ A) × (snd : Γ ⟶ B) ×' CategoryStruct.comp fst f = CategoryStruct.comp snd g
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[simp]
theorem
CategoryTheory.IsPullback.lift_fst_snd
{C : Type u_1}
[Category.{u_2, u_1} C]
{P X Y Z : C}
{fst : P ⟶ X}
{snd : P ⟶ Y}
{f : X ⟶ Z}
{g : Y ⟶ Z}
(pb : IsPullback fst snd f g)
(w : CategoryStruct.comp fst f = CategoryStruct.comp snd g)
:
A presheaf F
on a small category C
is isomorphic to
the hom-presheaf Hom(y(•),F)
.
Equations
- CategoryTheory.yonedaIso F = CategoryTheory.NatIso.ofComponents (fun (x : Cᵒᵖ) => CategoryTheory.yonedaEquiv.toIso) ⋯
Instances For
def
CategoryTheory.yonedaIsoMap
{C : Type u₁}
[SmallCategory C]
{F G : Functor Cᵒᵖ (Type u₁)}
(app : {X : C} → (yoneda.obj X ⟶ F) → (yoneda.obj X ⟶ G))
(naturality :
∀ {X Y : C} (f : X ⟶ Y) (α : yoneda.obj Y ⟶ F),
app (CategoryStruct.comp (yoneda.map f) α) = CategoryStruct.comp (yoneda.map f) (app α))
:
Equations
- CategoryTheory.yonedaIsoMap app naturality = { app := fun (x : Cᵒᵖ) => app, naturality := ⋯ }
Instances For
def
CategoryTheory.NatTrans.yonedaMk
{C : Type u₁}
[SmallCategory C]
{F G : Functor Cᵒᵖ (Type u₁)}
(app : {X : C} → (yoneda.obj X ⟶ F) → (yoneda.obj X ⟶ G))
(naturality :
∀ {X Y : C} (f : X ⟶ Y) (α : yoneda.obj Y ⟶ F),
app (CategoryStruct.comp (yoneda.map f) α) = CategoryStruct.comp (yoneda.map f) (app α))
:
Build natural transformations between presheaves on a small category by defining their action when precomposing by a morphism with representable domain
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem
CategoryTheory.NatTrans.yonedaMk_app
{C : Type u₁}
[SmallCategory C]
{F G : Functor Cᵒᵖ (Type u₁)}
(app : {X : C} → (yoneda.obj X ⟶ F) → (yoneda.obj X ⟶ G))
(naturality :
∀ {X Y : C} (f : X ⟶ Y) (α : yoneda.obj Y ⟶ F),
app (CategoryStruct.comp (yoneda.map f) α) = CategoryStruct.comp (yoneda.map f) (app α))
{X : C}
(α : yoneda.obj X ⟶ F)
:
theorem
CategoryTheory.Functor.precomp_heq_of_heq_id
{A B : Type u}
{C : Type u_1}
[Category.{v, u} A]
[Category.{v, u} B]
[Category.{u_2, u_1} C]
(hAB : A = B)
(h0 : inferInstance ≍ inferInstance)
{F : Functor A B}
(h : F ≍ Functor.id B)
(G : Functor B C)
:
theorem
CategoryTheory.Functor.comp_heq_of_heq_id
{A B : Type u}
{C : Type u_1}
[Category.{v, u} A]
[Category.{v, u} B]
[Category.{u_2, u_1} C]
(hAB : A = B)
(h0 : inferInstance ≍ inferInstance)
{F : Functor B A}
(h : F ≍ Functor.id B)
(G : Functor C B)
: