File: Mathlib/CategoryTheory/Functor/Derived/RightDerived.lean

full_name: CategoryTheory.Functor.IsRightDerivedFunctor
code: /-- A functor `RF : D ⥤ H` is a right derived functor of `F : C ⥤ H`
if it is equipped with a natural transformation `α : F ⟶ L ⋙ RF`
which makes it a left Kan extension of `F` along `L`,
where `L : C ⥤ D` is a localization functor for `W : MorphismProperty C`. -/
class IsRightDerivedFunctor [L.IsLocalization W] : Prop where
  isLeftKanExtension' : RF.IsLeftKanExtension α
goal: Prop

full_name: CategoryTheory.Functor.IsRightDerivedFunctor.isLeftKanExtension'
code: /-- A functor `RF : D ⥤ H` is a right derived functor of `F : C ⥤ H`
if it is equipped with a natural transformation `α : F ⟶ L ⋙ RF`
which makes it a left Kan extension of `F` along `L`,
where `L : C ⥤ D` is a localization functor for `W : MorphismProperty C`. -/
class IsRightDerivedFunctor [L.IsLocalization W] : Prop where
  isLeftKanExtension' : RF.IsLeftKanExtension α
goal: RF.IsLeftKanExtension α

full_name: CategoryTheory.Functor.IsRightDerivedFunctor.isLeftKanExtension
code: lemma IsRightDerivedFunctor.isLeftKanExtension
    [L.IsLocalization W] [RF.IsRightDerivedFunctor α W] :
    RF.IsLeftKanExtension α 
goal: RF.IsLeftKanExtension α

full_name: CategoryTheory.Functor.isRightDerivedFunctor_iff_isLeftKanExtension
code: lemma isRightDerivedFunctor_iff_isLeftKanExtension [L.IsLocalization W] :
    RF.IsRightDerivedFunctor α W ↔ RF.IsLeftKanExtension α 
goal: RF.IsRightDerivedFunctor α W ↔ RF.IsLeftKanExtension α

full_name: CategoryTheory.Functor.isRightDerivedFunctor_iff_of_iso
code: lemma isRightDerivedFunctor_iff_of_iso (α' : F ⟶ L ⋙ RF') (W : MorphismProperty C)
    [L.IsLocalization W] (e : RF ≅ RF') (comm : α ≫ whiskerLeft L e.hom = α') :
    RF.IsRightDerivedFunctor α W ↔ RF'.IsRightDerivedFunctor α' W 
goal: RF.IsRightDerivedFunctor α W ↔ RF'.IsRightDerivedFunctor α' W

full_name: CategoryTheory.Functor.rightDerivedDesc
code: /-- Constructor for natural transformations from a right derived functor. -/
noncomputable def rightDerivedDesc (G : D ⥤ H) (β : F ⟶ L ⋙ G) : RF ⟶ G 
goal: RF ⟶ G

full_name: CategoryTheory.Functor.rightDerived_fac
code: @[reassoc (attr := simp)]
lemma rightDerived_fac (G : D ⥤ H) (β : F ⟶ L ⋙ G) :
    α ≫ whiskerLeft L (RF.rightDerivedDesc α W G β) = β 
goal: CategoryTheory.CategoryStruct.comp α (CategoryTheory.whiskerLeft L (RF.rightDerivedDesc α W G β)) = β

full_name: CategoryTheory.Functor.rightDerived_fac_app
code: @[reassoc (attr := simp)]
lemma rightDerived_fac_app (G : D ⥤ H) (β : F ⟶ L ⋙ G) (X : C) :
    α.app X ≫ (RF.rightDerivedDesc α W G β).app (L.obj X) = β.app X 
goal: CategoryTheory.CategoryStruct.comp (α.app X) ((RF.rightDerivedDesc α W G β).app (L.obj X)) = β.app X

full_name: CategoryTheory.Functor.rightDerived_ext
code: lemma rightDerived_ext (G : D ⥤ H) (γ₁ γ₂ : RF ⟶ G)
    (hγ : α ≫ whiskerLeft L γ₁ = α ≫ whiskerLeft L γ₂) : γ₁ = γ₂ 
goal: γ₁ = γ₂

full_name: CategoryTheory.Functor.rightDerivedNatTrans
code: /-- The natural transformation `RF ⟶ RF'` on right derived functors that is
induced by a natural transformation `F ⟶ F'`.  -/
noncomputable def rightDerivedNatTrans (τ : F ⟶ F') : RF ⟶ RF' 
goal: RF ⟶ RF'

full_name: CategoryTheory.Functor.rightDerivedNatTrans_fac
code: @[reassoc (attr := simp)]
lemma rightDerivedNatTrans_fac (τ : F ⟶ F') :
    α ≫ whiskerLeft L (rightDerivedNatTrans RF RF' α α' W τ) = τ ≫ α' 
goal: CategoryTheory.CategoryStruct.comp α (CategoryTheory.whiskerLeft L (RF.rightDerivedNatTrans RF' α α' W τ)) =
  CategoryTheory.CategoryStruct.comp τ α'

full_name: CategoryTheory.Functor.rightDerivedNatTrans_app
code: @[reassoc (attr := simp)]
lemma rightDerivedNatTrans_app (τ : F ⟶ F') (X : C) :
    α.app X ≫ (rightDerivedNatTrans RF RF' α α' W τ).app (L.obj X) =
    τ.app X ≫ α'.app X 
goal: CategoryTheory.CategoryStruct.comp (α.app X) ((RF.rightDerivedNatTrans RF' α α' W τ).app (L.obj X)) =
  CategoryTheory.CategoryStruct.comp (τ.app X) (α'.app X)

full_name: CategoryTheory.Functor.rightDerivedNatTrans_id
code: @[simp]
lemma rightDerivedNatTrans_id :
    rightDerivedNatTrans RF RF α α W (𝟙 F) = 𝟙 RF 
goal: RF.rightDerivedNatTrans RF α α W (CategoryTheory.CategoryStruct.id F) = CategoryTheory.CategoryStruct.id RF

full_name: CategoryTheory.Functor.rightDerivedNatTrans_comp
code: @[reassoc (attr := simp)]
lemma rightDerivedNatTrans_comp (τ : F ⟶ F') (τ' : F' ⟶ F'') :
    rightDerivedNatTrans RF RF' α α' W τ ≫ rightDerivedNatTrans RF' RF'' α' α'' W τ' =
    rightDerivedNatTrans RF RF'' α α'' W (τ ≫ τ') 
goal: CategoryTheory.CategoryStruct.comp (RF.rightDerivedNatTrans RF' α α' W τ) (RF'.rightDerivedNatTrans RF'' α' α'' W τ') =
  RF.rightDerivedNatTrans RF'' α α'' W (CategoryTheory.CategoryStruct.comp τ τ')

full_name: CategoryTheory.Functor.rightDerivedNatIso_hom
code: /-- The natural isomorphism `RF ≅ RF'` on right derived functors that is
induced by a natural isomorphism `F ≅ F'`.  -/
@[simps]
noncomputable def rightDerivedNatIso (τ : F ≅ F') :
    RF ≅ RF' 
goal: (RF.rightDerivedNatIso RF' α α' W τ).hom = RF.rightDerivedNatTrans RF' α α' W τ.hom

full_name: CategoryTheory.Functor.rightDerivedNatIso
code: /-- The natural isomorphism `RF ≅ RF'` on right derived functors that is
induced by a natural isomorphism `F ≅ F'`.  -/
@[simps]
noncomputable def rightDerivedNatIso (τ : F ≅ F') :
    RF ≅ RF' 
goal: RF ≅ RF'

full_name: CategoryTheory.Functor.rightDerivedNatIso_inv
code: /-- The natural isomorphism `RF ≅ RF'` on right derived functors that is
induced by a natural isomorphism `F ≅ F'`.  -/
@[simps]
noncomputable def rightDerivedNatIso (τ : F ≅ F') :
    RF ≅ RF' 
goal: (RF.rightDerivedNatIso RF' α α' W τ).inv = RF'.rightDerivedNatTrans RF α' α W τ.inv

full_name: CategoryTheory.Functor.rightDerivedUnique
code: /-- Uniqueness (up to a natural isomorphism) of the right derived functor. -/
noncomputable abbrev rightDerivedUnique [RF'.IsRightDerivedFunctor α'₂ W] : RF ≅ RF' 
goal: RF ≅ RF'

full_name: CategoryTheory.Functor.isRightDerivedFunctor_iff_isIso_rightDerivedDesc
code: lemma isRightDerivedFunctor_iff_isIso_rightDerivedDesc (G : D ⥤ H) (β : F ⟶ L ⋙ G) :
    G.IsRightDerivedFunctor β W ↔ IsIso (RF.rightDerivedDesc α W G β) 
goal: G.IsRightDerivedFunctor β W ↔ CategoryTheory.IsIso (RF.rightDerivedDesc α W G β)

full_name: CategoryTheory.Functor.HasRightDerivedFunctor
code: /-- A functor `F : C ⥤ H` has a right derived functor with respect to
`W : MorphismProperty C` if it has a left Kan extension along
`W.Q : C ⥤ W.Localization` (or any localization functor `L : C ⥤ D`
for `W`, see `hasRightDerivedFunctor_iff`). -/
class HasRightDerivedFunctor : Prop where
  hasLeftKanExtension' : HasLeftKanExtension W.Q F
goal: Prop

full_name: CategoryTheory.Functor.HasRightDerivedFunctor.hasLeftKanExtension'
code: /-- A functor `F : C ⥤ H` has a right derived functor with respect to
`W : MorphismProperty C` if it has a left Kan extension along
`W.Q : C ⥤ W.Localization` (or any localization functor `L : C ⥤ D`
for `W`, see `hasRightDerivedFunctor_iff`). -/
class HasRightDerivedFunctor : Prop where
  hasLeftKanExtension' : HasLeftKanExtension W.Q F
goal: W.Q.HasLeftKanExtension F

full_name: CategoryTheory.Functor.hasRightDerivedFunctor_iff
code: lemma hasRightDerivedFunctor_iff :
    F.HasRightDerivedFunctor W ↔ HasLeftKanExtension L F 
goal: F.HasRightDerivedFunctor W ↔ L.HasLeftKanExtension F

full_name: CategoryTheory.Functor.hasRightDerivedFunctor_iff_of_iso
code: lemma hasRightDerivedFunctor_iff_of_iso :
    HasRightDerivedFunctor F W ↔ HasRightDerivedFunctor F' W 
goal: F.HasRightDerivedFunctor W ↔ F'.HasRightDerivedFunctor W

full_name: CategoryTheory.Functor.HasRightDerivedFunctor.hasLeftKanExtension
code: lemma HasRightDerivedFunctor.hasLeftKanExtension [HasRightDerivedFunctor F W] :
    HasLeftKanExtension L F 
goal: L.HasLeftKanExtension F

full_name: CategoryTheory.Functor.HasRightDerivedFunctor.mk'
code: lemma HasRightDerivedFunctor.mk' [RF.IsRightDerivedFunctor α W] :
    HasRightDerivedFunctor F W 
goal: F.HasRightDerivedFunctor W

full_name: CategoryTheory.Functor.totalRightDerived
code: /-- Given a functor `F : C ⥤ H`, and a localization functor `L : D ⥤ H` for `W`,
this is the right derived functor `D ⥤ H` of `F`, i.e. the left Kan extension
of `F` along `L`. -/
noncomputable def totalRightDerived : D ⥤ H 
goal: CategoryTheory.Functor D H

full_name: CategoryTheory.Functor.totalRightDerivedUnit
code: /-- The canonical natural transformation `F ⟶ L ⋙ F.totalRightDerived L W`. -/
noncomputable def totalRightDerivedUnit : F ⟶ L ⋙ F.totalRightDerived L W 
goal: F ⟶ L.comp (CategoryTheory.Functor.totalRightDerived L W)

full_name: CategoryTheory.Functor.instIsRightDerivedFunctorTotalRightDerivedTotalRightDerivedUnit
code: instance : (F.totalRightDerived L W).IsRightDerivedFunctor
    (F.totalRightDerivedUnit L W) W 
goal: (CategoryTheory.Functor.totalRightDerived L W).IsRightDerivedFunctor (CategoryTheory.Functor.totalRightDerivedUnit L W)
  W