ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- CategoryTheory.Functor.IsCoverDense.presheafIso_inv
@[simps!]
noncomputable def presheafIso {ℱ ℱ' : Sheaf K A} (i : G.op ⋙ ℱ.val ≅ G.op ⋙ ℱ'.val) :
    ℱ.val ≅ ℱ'.val 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_5, u_1} C] {D : Type u_2} [CategoryTheory.Category.{u_6, u_2} D] {K : CategoryTheory.GrothendieckTopology D} {A : Type u_4} [CategoryTheory.Category.{u_7, u_4} A] {G : CategoryTheory.Functor C D} [G.IsCoverDense K] [G.IsLocallyFull K] {ℱ ℱ' : CategoryTheory.Sheaf K A} (i : G.op.comp ℱ.val ≅ G.op.comp ℱ'.val)
Goal: (CategoryTheory.Functor.IsCoverDense.presheafIso i).inv =
  CategoryTheory.inv (CategoryTheory.Functor.IsCoverDense.sheafHom i.hom)
-- CategoryTheory.Functor.IsCoverDense.sheafIso_inv_val
@[simps]
noncomputable def sheafIso {ℱ ℱ' : Sheaf K A} (i : G.op ⋙ ℱ.val ≅ G.op ⋙ ℱ'.val) : ℱ ≅ ℱ' 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_5, u_1} C] {D : Type u_2} [CategoryTheory.Category.{u_6, u_2} D] {K : CategoryTheory.GrothendieckTopology D} {A : Type u_4} [CategoryTheory.Category.{u_7, u_4} A] {G : CategoryTheory.Functor C D} [G.IsCoverDense K] [G.IsLocallyFull K] {ℱ ℱ' : CategoryTheory.Sheaf K A} (i : G.op.comp ℱ.val ≅ G.op.comp ℱ'.val)
Goal: (CategoryTheory.Functor.IsCoverDense.sheafIso i).inv.val = (CategoryTheory.Functor.IsCoverDense.presheafIso i).inv
-- CategoryTheory.Functor.IsCoverDense.sheafIso_hom_val
@[simps]
noncomputable def sheafIso {ℱ ℱ' : Sheaf K A} (i : G.op ⋙ ℱ.val ≅ G.op ⋙ ℱ'.val) : ℱ ≅ ℱ' 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_5, u_1} C] {D : Type u_2} [CategoryTheory.Category.{u_6, u_2} D] {K : CategoryTheory.GrothendieckTopology D} {A : Type u_4} [CategoryTheory.Category.{u_7, u_4} A] {G : CategoryTheory.Functor C D} [G.IsCoverDense K] [G.IsLocallyFull K] {ℱ ℱ' : CategoryTheory.Sheaf K A} (i : G.op.comp ℱ.val ≅ G.op.comp ℱ'.val)
Goal: (CategoryTheory.Functor.IsCoverDense.sheafIso i).hom.val = (CategoryTheory.Functor.IsCoverDense.presheafIso i).hom
-- CategoryTheory.Functor.IsCoverDense.sheafHom_restrict_eq
theorem sheafHom_restrict_eq (α : G.op ⋙ ℱ ⟶ G.op ⋙ ℱ'.val) :
    whiskerLeft G.op (sheafHom α) = α 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_6, u_1} C] {D : Type u_2} [CategoryTheory.Category.{u_7, u_2} D] {K : CategoryTheory.GrothendieckTopology D} {A : Type u_4} [CategoryTheory.Category.{u_5, u_4} A] {G : CategoryTheory.Functor C D} [G.IsCoverDense K] [G.IsLocallyFull K] {ℱ : CategoryTheory.Functor Dᵒᵖ A} {ℱ' : CategoryTheory.Sheaf K A} (α : G.op.comp ℱ ⟶ G.op.comp ℱ'.val)
Goal: CategoryTheory.whiskerLeft G.op (CategoryTheory.Functor.IsCoverDense.sheafHom α) = α
-- CategoryTheory.Functor.IsCoverDense.sheafHom_eq
theorem sheafHom_eq (α : ℱ ⟶ ℱ'.val) : sheafHom (whiskerLeft G.op α) = α 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_7, u_1} C] {D : Type u_2} [CategoryTheory.Category.{u_6, u_2} D] {K : CategoryTheory.GrothendieckTopology D} {A : Type u_4} [CategoryTheory.Category.{u_5, u_4} A] (G : CategoryTheory.Functor C D) [G.IsCoverDense K] [G.IsLocallyFull K] {ℱ : CategoryTheory.Functor Dᵒᵖ A} {ℱ' : CategoryTheory.Sheaf K A} (α : ℱ ⟶ ℱ'.val)
Goal: CategoryTheory.Functor.IsCoverDense.sheafHom (CategoryTheory.whiskerLeft G.op α) = α
-- CategoryTheory.Functor.IsCoverDense.iso_of_restrict_iso
theorem iso_of_restrict_iso {ℱ ℱ' : Sheaf K A} (α : ℱ ⟶ ℱ') (i : IsIso (whiskerLeft G.op α.val)) :
    IsIso α 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_7, u_1} C] {D : Type u_2} [CategoryTheory.Category.{u_5, u_2} D] {K : CategoryTheory.GrothendieckTopology D} {A : Type u_4} [CategoryTheory.Category.{u_6, u_4} A] {G : CategoryTheory.Functor C D} [G.IsCoverDense K] [G.IsLocallyFull K] {ℱ ℱ' : CategoryTheory.Sheaf K A} (α : ℱ ⟶ ℱ') (i : CategoryTheory.IsIso (CategoryTheory.whiskerLeft G.op α.val))
Goal: CategoryTheory.IsIso α
-- CategoryTheory.Functor.IsCoverDense.compatiblePreserving
lemma compatiblePreserving [G.IsLocallyFaithful K] : CompatiblePreserving K G 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_5, u_1} C] {D : Type u_2} [CategoryTheory.Category.{u_6, u_2} D] (K : CategoryTheory.GrothendieckTopology D) (G : CategoryTheory.Functor C D) [G.IsCoverDense K] [G.IsLocallyFull K] [G.IsLocallyFaithful K]
Goal: CategoryTheory.CompatiblePreserving K G
-- CategoryTheory.Functor.IsCoverDense.isContinuous
lemma isContinuous [G.IsLocallyFaithful K] (Hp : CoverPreserving J K G) : G.IsContinuous J K 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_5, u_1} C] {D : Type u_2} [CategoryTheory.Category.{u_6, u_2} D] (J : CategoryTheory.GrothendieckTopology C) (K : CategoryTheory.GrothendieckTopology D) (G : CategoryTheory.Functor C D) [G.IsCoverDense K] [G.IsLocallyFull K] [G.IsLocallyFaithful K] (Hp : CategoryTheory.CoverPreserving J K G)
Goal: G.IsContinuous J K
-- CategoryTheory.Functor.whiskerLeft_obj_map_bijective_of_isCoverDense
lemma whiskerLeft_obj_map_bijective_of_isCoverDense (G : C ⥤ D)
    [G.IsCoverDense K] [G.IsLocallyFull K] {A : Type*} [Category A]
    (P Q : Dᵒᵖ ⥤ A) (hQ : Presheaf.IsSheaf K Q) :
    Function.Bijective (((whiskeringLeft Cᵒᵖ Dᵒᵖ A).obj G.op).map : (P ⟶ Q) → _) 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_5, u_1} C] {D : Type u_2} [CategoryTheory.Category.{u_6, u_2} D] (K : CategoryTheory.GrothendieckTopology D) (G : CategoryTheory.Functor C D) [G.IsCoverDense K] [G.IsLocallyFull K] {A : Type u_4} [CategoryTheory.Category.{u_7, u_4} A] (P Q : CategoryTheory.Functor Dᵒᵖ A) (hQ : CategoryTheory.Presheaf.IsSheaf K Q)
Goal: Function.Bijective ((CategoryTheory.whiskeringLeft Cᵒᵖ Dᵒᵖ A).obj G.op).map
-- CategoryTheory.Functor.IsDenseSubsite.isCoverDense'
class IsDenseSubsite : Prop where
  isCoverDense' : G.IsCoverDense K := by infer_instance
  isLocallyFull' : G.IsLocallyFull K := by infer_instance
  isLocallyFaithful' : G.IsLocallyFaithful K := by infer_instance
  functorPushforward_mem_iff : ∀ {X : C} {S : Sieve X}, S.functorPushforward G ∈ K _ ↔ S ∈ J _
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_5, u_1} C] {D : Type u_2} [CategoryTheory.Category.{u_6, u_2} D] (J : CategoryTheory.GrothendieckTopology C) {K : CategoryTheory.GrothendieckTopology D} {G : CategoryTheory.Functor C D} [self : CategoryTheory.Functor.IsDenseSubsite J K G]
Goal: G.IsCoverDense K
-- CategoryTheory.Functor.IsDenseSubsite.isLocallyFull'
class IsDenseSubsite : Prop where
  isCoverDense' : G.IsCoverDense K := by infer_instance
  isLocallyFull' : G.IsLocallyFull K := by infer_instance
  isLocallyFaithful' : G.IsLocallyFaithful K := by infer_instance
  functorPushforward_mem_iff : ∀ {X : C} {S : Sieve X}, S.functorPushforward G ∈ K _ ↔ S ∈ J _
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_5, u_1} C] {D : Type u_2} [CategoryTheory.Category.{u_6, u_2} D] (J : CategoryTheory.GrothendieckTopology C) {K : CategoryTheory.GrothendieckTopology D} {G : CategoryTheory.Functor C D} [self : CategoryTheory.Functor.IsDenseSubsite J K G]
Goal: G.IsLocallyFull K
-- CategoryTheory.Functor.IsDenseSubsite.isLocallyFaithful'
class IsDenseSubsite : Prop where
  isCoverDense' : G.IsCoverDense K := by infer_instance
  isLocallyFull' : G.IsLocallyFull K := by infer_instance
  isLocallyFaithful' : G.IsLocallyFaithful K := by infer_instance
  functorPushforward_mem_iff : ∀ {X : C} {S : Sieve X}, S.functorPushforward G ∈ K _ ↔ S ∈ J _
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_5, u_1} C] {D : Type u_2} [CategoryTheory.Category.{u_6, u_2} D] (J : CategoryTheory.GrothendieckTopology C) {K : CategoryTheory.GrothendieckTopology D} {G : CategoryTheory.Functor C D} [self : CategoryTheory.Functor.IsDenseSubsite J K G]
Goal: G.IsLocallyFaithful K
-- CategoryTheory.Functor.IsDenseSubsite.functorPushforward_mem_iff
class IsDenseSubsite : Prop where
  isCoverDense' : G.IsCoverDense K := by infer_instance
  isLocallyFull' : G.IsLocallyFull K := by infer_instance
  isLocallyFaithful' : G.IsLocallyFaithful K := by infer_instance
  functorPushforward_mem_iff : ∀ {X : C} {S : Sieve X}, S.functorPushforward G ∈ K _ ↔ S ∈ J _
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_5, u_1} C] {D : Type u_2} [CategoryTheory.Category.{u_6, u_2} D] {J : CategoryTheory.GrothendieckTopology C} {K : CategoryTheory.GrothendieckTopology D} {G : CategoryTheory.Functor C D} [self : CategoryTheory.Functor.IsDenseSubsite J K G] {X : C} {S : CategoryTheory.Sieve X}
Goal: CategoryTheory.Sieve.functorPushforward G S ∈ K.sieves (G.obj X) ↔ S ∈ J.sieves X
-- CategoryTheory.Functor.IsDenseSubsite.isCoverDense
lemma isCoverDense : G.IsCoverDense K 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_5, u_1} C] {D : Type u_2} [CategoryTheory.Category.{u_6, u_2} D] (J : CategoryTheory.GrothendieckTopology C) (K : CategoryTheory.GrothendieckTopology D) (G : CategoryTheory.Functor C D) [CategoryTheory.Functor.IsDenseSubsite J K G]
Goal: G.IsCoverDense K
-- CategoryTheory.Functor.IsDenseSubsite.isLocallyFull
lemma isLocallyFull : G.IsLocallyFull K 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_5, u_1} C] {D : Type u_2} [CategoryTheory.Category.{u_6, u_2} D] (J : CategoryTheory.GrothendieckTopology C) (K : CategoryTheory.GrothendieckTopology D) (G : CategoryTheory.Functor C D) [CategoryTheory.Functor.IsDenseSubsite J K G]
Goal: G.IsLocallyFull K
-- CategoryTheory.Functor.IsDenseSubsite.isLocallyFaithful
lemma isLocallyFaithful : G.IsLocallyFaithful K 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_5, u_1} C] {D : Type u_2} [CategoryTheory.Category.{u_6, u_2} D] (J : CategoryTheory.GrothendieckTopology C) (K : CategoryTheory.GrothendieckTopology D) (G : CategoryTheory.Functor C D) [CategoryTheory.Functor.IsDenseSubsite J K G]
Goal: G.IsLocallyFaithful K
-- CategoryTheory.Functor.IsDenseSubsite.coverPreserving
lemma coverPreserving [G.IsDenseSubsite J K] : CoverPreserving J K G 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_5, u_1} C] {D : Type u_2} [CategoryTheory.Category.{u_6, u_2} D] (J : CategoryTheory.GrothendieckTopology C) (K : CategoryTheory.GrothendieckTopology D) (G : CategoryTheory.Functor C D) [CategoryTheory.Functor.IsDenseSubsite J K G]
Goal: CategoryTheory.CoverPreserving J K G
-- CategoryTheory.Functor.IsDenseSubsite.imageSieve_mem
lemma imageSieve_mem [G.IsDenseSubsite J K] {U V} (f : G.obj U ⟶ G.obj V) :
    G.imageSieve f ∈ J _ 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_5, u_1} C] {D : Type u_2} [CategoryTheory.Category.{u_6, u_2} D] (J : CategoryTheory.GrothendieckTopology C) (K : CategoryTheory.GrothendieckTopology D) (G : CategoryTheory.Functor C D) [CategoryTheory.Functor.IsDenseSubsite J K G] {U V : C} (f : G.obj U ⟶ G.obj V)
Goal: G.imageSieve f ∈ J.sieves U
-- CategoryTheory.Functor.IsDenseSubsite.equalizer_mem
lemma equalizer_mem [G.IsDenseSubsite J K] {U V} (f₁ f₂ : U ⟶ V) (e : G.map f₁ = G.map f₂) :
    Sieve.equalizer f₁ f₂ ∈ J _ 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_5, u_1} C] {D : Type u_2} [CategoryTheory.Category.{u_6, u_2} D] (J : CategoryTheory.GrothendieckTopology C) (K : CategoryTheory.GrothendieckTopology D) (G : CategoryTheory.Functor C D) [CategoryTheory.Functor.IsDenseSubsite J K G] {U V : C} (f₁ f₂ : U ⟶ V) (e : G.map f₁ = G.map f₂)
Goal: CategoryTheory.Sieve.equalizer f₁ f₂ ∈ J.sieves U
-- CategoryTheory.Functor.IsDenseSubsite.isIso_ranCounit_app_of_isDenseSubsite
lemma isIso_ranCounit_app_of_isDenseSubsite (Y : Sheaf J A) (U X) :
    IsIso ((yoneda.map ((G.op.ranCounit.app Y.val).app (op U))).app (op X)) 
Arguments: {C : Type u_1} {D : Type u_2} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Category.{u_4, u_2} D] (G : CategoryTheory.Functor C D) (J : CategoryTheory.GrothendieckTopology C) (K : CategoryTheory.GrothendieckTopology D) {A : Type w} [CategoryTheory.Category.{w', w} A] [∀ (X : Dᵒᵖ), CategoryTheory.Limits.HasLimitsOfShape (CategoryTheory.StructuredArrow X G.op) A] [CategoryTheory.Functor.IsDenseSubsite J K G] (Y : CategoryTheory.Sheaf J A) (U : C) (X : A)
Goal: CategoryTheory.IsIso ((CategoryTheory.yoneda.map ((G.op.ranCounit.app Y.val).app (Opposite.op U))).app (Opposite.op X))
-- CategoryTheory.Functor.IsDenseSubsite.sheafEquiv_functor
@[simps! functor inverse]
noncomputable def sheafEquiv : Sheaf J A ≌ Sheaf K A 
Arguments: {C : Type u_1} {D : Type u_2} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Category.{u_4, u_2} D] (G : CategoryTheory.Functor C D) (J : CategoryTheory.GrothendieckTopology C) (K : CategoryTheory.GrothendieckTopology D) (A : Type w) [CategoryTheory.Category.{w', w} A] [∀ (X : Dᵒᵖ), CategoryTheory.Limits.HasLimitsOfShape (CategoryTheory.StructuredArrow X G.op) A] [CategoryTheory.Functor.IsDenseSubsite J K G]
Goal: (CategoryTheory.Functor.IsDenseSubsite.sheafEquiv G J K A).functor = G.sheafPushforwardCocontinuous A J K
-- CategoryTheory.Functor.IsDenseSubsite.sheafEquiv_inverse
@[simps! functor inverse]
noncomputable def sheafEquiv : Sheaf J A ≌ Sheaf K A 
Arguments: {C : Type u_1} {D : Type u_2} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Category.{u_4, u_2} D] (G : CategoryTheory.Functor C D) (J : CategoryTheory.GrothendieckTopology C) (K : CategoryTheory.GrothendieckTopology D) (A : Type w) [CategoryTheory.Category.{w', w} A] [∀ (X : Dᵒᵖ), CategoryTheory.Limits.HasLimitsOfShape (CategoryTheory.StructuredArrow X G.op) A] [CategoryTheory.Functor.IsDenseSubsite J K G]
Goal: (CategoryTheory.Functor.IsDenseSubsite.sheafEquiv G J K A).inverse = G.sheafPushforwardContinuous A J K
-- CategoryTheory.Functor.Iteration.restrictionLT_obj
@[simp]
lemma restrictionLT_obj (k : J) (hk : k < i) :
    (restrictionLT F hi).obj ⟨k, hk⟩ = F.obj ⟨k, hk.le.trans hi⟩ 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {J : Type u} [LinearOrder J] {j : J} (F : CategoryTheory.Functor { i // i ≤ j } C) {i : J} (hi : i ≤ j) (k : J) (hk : k < i)
Goal: (CategoryTheory.Functor.Iteration.restrictionLT F hi).obj ⟨k, hk⟩ = F.obj ⟨k, ⋯⟩
-- CategoryTheory.Functor.Iteration.restrictionLT_map
@[simp]
lemma restrictionLT_map {k₁ k₂ : { k // k < i }} (φ : k₁ ⟶ k₂) :
    (restrictionLT F hi).map φ = F.map (homOfLE (by simpa using leOfHom φ)) 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {J : Type u} [LinearOrder J] {j : J} (F : CategoryTheory.Functor { i // i ≤ j } C) {i : J} (hi : i ≤ j) {k₁ k₂ : { k // k < i }} (φ : k₁ ⟶ k₂)
Goal: (CategoryTheory.Functor.Iteration.restrictionLT F hi).map φ = F.map (CategoryTheory.homOfLE ⋯)
-- CategoryTheory.Functor.Iteration.coconeOfLE_ι_app
@[simps]
def coconeOfLE : Cocone (restrictionLT F hi) 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {J : Type u} [LinearOrder J] {j : J} (F : CategoryTheory.Functor { i // i ≤ j } C) {i : J} (hi : i ≤ j)
Goal: ∀ (x : { k // k < i }),
  (CategoryTheory.Functor.Iteration.coconeOfLE F hi).ι.app x =
    match x with
    | ⟨k, hk⟩ => F.map (CategoryTheory.homOfLE ⋯)
-- CategoryTheory.Functor.Iteration.coconeOfLE_pt
@[simps]
def coconeOfLE : Cocone (restrictionLT F hi) 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {J : Type u} [LinearOrder J] {j : J} (F : CategoryTheory.Functor { i // i ≤ j } C) {i : J} (hi : i ≤ j)
Goal: (CategoryTheory.Functor.Iteration.coconeOfLE F hi).pt = F.obj ⟨i, hi⟩
-- CategoryTheory.Functor.Iteration.mapSucc'_eq
structure Iteration (j : J) where
    F : { i // i ≤ j } ⥤ C ⥤ C
    isoZero : F.obj ⟨⊥, bot_le⟩ ≅ 𝟭 C
    isoSucc (i : J) (hi : i < j) :
    F.obj ⟨wellOrderSucc i, wellOrderSucc_le hi⟩ ≅ F.obj ⟨i, hi.le⟩ ⋙ Φ
    mapSucc'_eq (i : J) (hi : i < j) :
    Iteration.mapSucc' F i hi = whiskerLeft _ ε ≫ (isoSucc i hi).inv
    isColimit (i : J) [IsWellOrderLimitElement i] (hi : i ≤ j) :
    IsColimit (Iteration.coconeOfLE F hi)
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {Φ : CategoryTheory.Functor C C} {ε : CategoryTheory.Functor.id C ⟶ Φ} {J : Type u} [LinearOrder J] [IsWellOrder J fun x x_1 => x < x_1] [OrderBot J] {j : J} (self : CategoryTheory.Functor.Iteration ε j) (i : J) (hi : i < j)
Goal: CategoryTheory.Functor.Iteration.mapSucc' self.F i hi =
  CategoryTheory.CategoryStruct.comp (CategoryTheory.whiskerLeft (self.F.obj ⟨i, ⋯⟩) ε) (self.isoSucc i hi).inv
-- CategoryTheory.Functor.Iteration.mapSucc_eq
lemma mapSucc_eq (i : J) (hi : i < j) :
    iter.mapSucc i hi = whiskerLeft _ ε ≫ (iter.isoSucc i hi).inv 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {Φ : CategoryTheory.Functor C C} {ε : CategoryTheory.Functor.id C ⟶ Φ} {J : Type u} [LinearOrder J] [IsWellOrder J fun x x_1 => x < x_1] [OrderBot J] {j : J} (iter : CategoryTheory.Functor.Iteration ε j) (i : J) (hi : i < j)
Goal: iter.mapSucc i hi =
  CategoryTheory.CategoryStruct.comp (CategoryTheory.whiskerLeft (iter.F.obj ⟨i, ⋯⟩) ε) (iter.isoSucc i hi).inv
-- CategoryTheory.Functor.Iteration.Hom.natTrans_app_succ
structure Hom where
    natTrans : iter₁.F ⟶ iter₂.F
  natTrans_app_zero :
    natTrans.app ⟨⊥, bot_le⟩ = iter₁.isoZero.hom ≫ iter₂.isoZero.inv := by aesop_cat
  natTrans_app_succ (i : J) (hi : i < j) :
    natTrans.app ⟨wellOrderSucc i, wellOrderSucc_le hi⟩ = (iter₁.isoSucc i hi).hom ≫
      whiskerRight (natTrans.app ⟨i, hi.le⟩) _ ≫ (iter₂.isoSucc i hi).inv := by aesop_cat
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {Φ : CategoryTheory.Functor C C} {ε : CategoryTheory.Functor.id C ⟶ Φ} {J : Type u} [LinearOrder J] [IsWellOrder J fun x x_1 => x < x_1] [OrderBot J] {j : J} {iter₁ iter₂ : CategoryTheory.Functor.Iteration ε j} (self : iter₁.Hom iter₂) (i : J) (hi : i < j)
Goal: self.natTrans.app ⟨wellOrderSucc i, ⋯⟩ =
  CategoryTheory.CategoryStruct.comp (iter₁.isoSucc i hi).hom
    (CategoryTheory.CategoryStruct.comp (CategoryTheory.whiskerRight (self.natTrans.app ⟨i, ⋯⟩) Φ)
      (iter₂.isoSucc i hi).inv)
-- CategoryTheory.Functor.Iteration.Hom.natTrans_app_zero
structure Hom where
    natTrans : iter₁.F ⟶ iter₂.F
  natTrans_app_zero :
    natTrans.app ⟨⊥, bot_le⟩ = iter₁.isoZero.hom ≫ iter₂.isoZero.inv := by aesop_cat
  natTrans_app_succ (i : J) (hi : i < j) :
    natTrans.app ⟨wellOrderSucc i, wellOrderSucc_le hi⟩ = (iter₁.isoSucc i hi).hom ≫
      whiskerRight (natTrans.app ⟨i, hi.le⟩) _ ≫ (iter₂.isoSucc i hi).inv := by aesop_cat
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {Φ : CategoryTheory.Functor C C} {ε : CategoryTheory.Functor.id C ⟶ Φ} {J : Type u} [LinearOrder J] [IsWellOrder J fun x x_1 => x < x_1] [OrderBot J] {j : J} {iter₁ iter₂ : CategoryTheory.Functor.Iteration ε j} (self : iter₁.Hom iter₂)
Goal: self.natTrans.app ⟨⊥, ⋯⟩ = CategoryTheory.CategoryStruct.comp iter₁.isoZero.hom iter₂.isoZero.inv
-- CategoryTheory.Functor.Iteration.Hom.id_natTrans
@[simps]
def id : Hom iter₁ iter₁ 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {Φ : CategoryTheory.Functor C C} {ε : CategoryTheory.Functor.id C ⟶ Φ} {J : Type u} [LinearOrder J] [IsWellOrder J fun x x_1 => x < x_1] [OrderBot J] {j : J} (iter₁ : CategoryTheory.Functor.Iteration ε j)
Goal: (CategoryTheory.Functor.Iteration.Hom.id iter₁).natTrans = CategoryTheory.CategoryStruct.id iter₁.F
-- CategoryTheory.Functor.Iteration.Hom.ext'
lemma ext' {f g : Hom iter₁ iter₂} (h : f.natTrans = g.natTrans) : f = g 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {Φ : CategoryTheory.Functor C C} {ε : CategoryTheory.Functor.id C ⟶ Φ} {J : Type u} [LinearOrder J] [IsWellOrder J fun x x_1 => x < x_1] [OrderBot J] {j : J} {iter₁ iter₂ : CategoryTheory.Functor.Iteration ε j} {f g : iter₁.Hom iter₂} (h : f.natTrans = g.natTrans)
Goal: f = g
-- CategoryTheory.Functor.Iteration.Hom.comp_natTrans
@[simps]
def comp {iter₃ : Iteration ε j} (f : Hom iter₁ iter₂) (g : Hom iter₂ iter₃) :
    Hom iter₁ iter₃ 
Arguments: {C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {Φ : CategoryTheory.Functor C C} {ε : CategoryTheory.Functor.id C ⟶ Φ} {J : Type u} [LinearOrder J] [IsWellOrder J fun x x_1 => x < x_1] [OrderBot J] {j : J} {iter₁ iter₂ iter₃ : CategoryTheory.Functor.Iteration ε j} (f : iter₁.Hom iter₂) (g : iter₂.Hom iter₃)
Goal: (f.comp g).natTrans = CategoryTheory.CategoryStruct.comp f.natTrans g.natTrans
-- CategoryTheory.Projective.projective_iff_preservesEpimorphisms_preadditiveCoyoneda_obj
theorem projective_iff_preservesEpimorphisms_preadditiveCoyoneda_obj (P : C) :
    Projective P ↔ (preadditiveCoyoneda.obj (op P)).PreservesEpimorphisms 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Preadditive C] (P : C)
Goal: CategoryTheory.Projective P ↔ (CategoryTheory.preadditiveCoyoneda.obj (Opposite.op P)).PreservesEpimorphisms
-- CategoryTheory.Projective.projective_iff_preservesEpimorphisms_preadditiveCoyoneda_obj'
theorem projective_iff_preservesEpimorphisms_preadditiveCoyoneda_obj' (P : C) :
    Projective P ↔ (preadditiveCoyoneda.obj (op P)).PreservesEpimorphisms 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Preadditive C] (P : C)
Goal: CategoryTheory.Projective P ↔ (CategoryTheory.preadditiveCoyoneda.obj (Opposite.op P)).PreservesEpimorphisms
-- CategoryTheory.Injective.injective_iff_preservesEpimorphisms_preadditiveYoneda_obj
theorem injective_iff_preservesEpimorphisms_preadditiveYoneda_obj (J : C) :
    Injective J ↔ (preadditiveYoneda.obj J).PreservesEpimorphisms 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Preadditive C] (J : C)
Goal: CategoryTheory.Injective J ↔ (CategoryTheory.preadditiveYoneda.obj J).PreservesEpimorphisms
-- CategoryTheory.Injective.injective_iff_preservesEpimorphisms_preadditive_yoneda_obj'
theorem injective_iff_preservesEpimorphisms_preadditive_yoneda_obj' (J : C) :
    Injective J ↔ (preadditiveYonedaObj J).PreservesEpimorphisms 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Preadditive C] (J : C)
Goal: CategoryTheory.Injective J ↔ (CategoryTheory.preadditiveYonedaObj J).PreservesEpimorphisms
-- CategoryTheory.GrothendieckTopology.coneCompEvaluationOfConeCompDiagramFunctorCompEvaluation_pt
@[simps]
def coneCompEvaluationOfConeCompDiagramFunctorCompEvaluation {X : C} {K : Type max v u}
    [SmallCategory K] {F : K ⥤ Cᵒᵖ ⥤ D} {W : J.Cover X} (i : W.Arrow)
    (E : Cone (F ⋙ J.diagramFunctor D X ⋙ (evaluation (J.Cover X)ᵒᵖ D).obj (op W))) :
    Cone (F ⋙ (evaluation _ _).obj (op i.Y)) 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] {J : CategoryTheory.GrothendieckTopology C} {D : Type w} [CategoryTheory.Category.{max v u, w} D] [∀ (P : Cᵒᵖ ⥤ D) (X : C) (S : J.Cover X), CategoryTheory.Limits.HasMultiequalizer (S.index P)] {X : C} {K : Type (max v u)} [CategoryTheory.SmallCategory K] {F : K ⥤ Cᵒᵖ ⥤ D} {W : J.Cover X} (i : W.Arrow) (E :
  CategoryTheory.Limits.Cone
    (F ⋙ J.diagramFunctor D X ⋙ (CategoryTheory.evaluation (J.Cover X)ᵒᵖ D).obj (Opposite.op W)))
Goal: (CategoryTheory.GrothendieckTopology.coneCompEvaluationOfConeCompDiagramFunctorCompEvaluation i E).pt = E.pt
-- CategoryTheory.GrothendieckTopology.coneCompEvaluationOfConeCompDiagramFunctorCompEvaluation_π_app
@[simps]
def coneCompEvaluationOfConeCompDiagramFunctorCompEvaluation {X : C} {K : Type max v u}
    [SmallCategory K] {F : K ⥤ Cᵒᵖ ⥤ D} {W : J.Cover X} (i : W.Arrow)
    (E : Cone (F ⋙ J.diagramFunctor D X ⋙ (evaluation (J.Cover X)ᵒᵖ D).obj (op W))) :
    Cone (F ⋙ (evaluation _ _).obj (op i.Y)) 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] {J : CategoryTheory.GrothendieckTopology C} {D : Type w} [CategoryTheory.Category.{max v u, w} D] [∀ (P : Cᵒᵖ ⥤ D) (X : C) (S : J.Cover X), CategoryTheory.Limits.HasMultiequalizer (S.index P)] {X : C} {K : Type (max v u)} [CategoryTheory.SmallCategory K] {F : K ⥤ Cᵒᵖ ⥤ D} {W : J.Cover X} (i : W.Arrow) (E :
  CategoryTheory.Limits.Cone
    (F ⋙ J.diagramFunctor D X ⋙ (CategoryTheory.evaluation (J.Cover X)ᵒᵖ D).obj (Opposite.op W))) (k : K)
Goal: (CategoryTheory.GrothendieckTopology.coneCompEvaluationOfConeCompDiagramFunctorCompEvaluation i E).π.app k =
  E.π.app k ≫ CategoryTheory.Limits.Multiequalizer.ι (W.index (F.obj k)) i