ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- CategoryTheory.ShortComplex.moduleCatMkOfKerLERange_g
@[simps]
def moduleCatMkOfKerLERange {X₁ X₂ X₃ : ModuleCat.{v} R} (f : X₁ ⟶ X₂) (g : X₂ ⟶ X₃)
    (hfg : LinearMap.range f ≤ LinearMap.ker g) : ShortComplex (ModuleCat.{v} R) 
Arguments: {R : Type u} [Ring R] {X₁ X₂ X₃ : ModuleCat R} (f : X₁ ⟶ X₂) (g : X₂ ⟶ X₃) (hfg : LinearMap.range f ≤ LinearMap.ker g)
Goal: (CategoryTheory.ShortComplex.moduleCatMkOfKerLERange f g hfg).g = g
-- CategoryTheory.ShortComplex.moduleCatMkOfKerLERange_X₁
@[simps]
def moduleCatMkOfKerLERange {X₁ X₂ X₃ : ModuleCat.{v} R} (f : X₁ ⟶ X₂) (g : X₂ ⟶ X₃)
    (hfg : LinearMap.range f ≤ LinearMap.ker g) : ShortComplex (ModuleCat.{v} R) 
Arguments: {R : Type u} [Ring R] {X₁ X₂ X₃ : ModuleCat R} (f : X₁ ⟶ X₂) (g : X₂ ⟶ X₃) (hfg : LinearMap.range f ≤ LinearMap.ker g)
Goal: (CategoryTheory.ShortComplex.moduleCatMkOfKerLERange f g hfg).X₁ = X₁
-- CategoryTheory.ShortComplex.Exact.moduleCat_of_range_eq_ker
lemma Exact.moduleCat_of_range_eq_ker {X₁ X₂ X₃ : ModuleCat.{v} R}
    (f : X₁ ⟶ X₂) (g : X₂ ⟶ X₃) (hfg : LinearMap.range f = LinearMap.ker g) :
    (moduleCatMkOfKerLERange f g (by rw [hfg])).Exact 
Arguments: {R : Type u} [Ring R] {X₁ X₂ X₃ : ModuleCat R} (f : X₁ ⟶ X₂) (g : X₂ ⟶ X₃) (hfg : LinearMap.range f = LinearMap.ker g)
Goal: (CategoryTheory.ShortComplex.moduleCatMkOfKerLERange f g ⋯).Exact
-- CategoryTheory.ShortComplex.moduleCatToCycles_apply_coe
@[simps]
def moduleCatToCycles : S.X₁ →ₗ[R] LinearMap.ker S.g 
Arguments: {R : Type u} [Ring R] (S : CategoryTheory.ShortComplex (ModuleCat R)) (x : ↑S.X₁)
Goal: ↑(S.moduleCatToCycles x) = S.f x
-- CategoryTheory.ShortComplex.moduleCatLeftHomologyData_i
@[simps]
def moduleCatLeftHomologyData : S.LeftHomologyData 
Arguments: {R : Type u} [Ring R] (S : CategoryTheory.ShortComplex (ModuleCat R))
Goal: S.moduleCatLeftHomologyData.i = (LinearMap.ker S.g).subtype
-- CategoryTheory.ShortComplex.moduleCatLeftHomologyData_H
@[simps]
def moduleCatLeftHomologyData : S.LeftHomologyData 
Arguments: {R : Type u} [Ring R] (S : CategoryTheory.ShortComplex (ModuleCat R))
Goal: S.moduleCatLeftHomologyData.H = S.moduleCatHomology
-- CategoryTheory.ShortComplex.moduleCatLeftHomologyData_π
@[simps]
def moduleCatLeftHomologyData : S.LeftHomologyData 
Arguments: {R : Type u} [Ring R] (S : CategoryTheory.ShortComplex (ModuleCat R))
Goal: S.moduleCatLeftHomologyData.π = S.moduleCatHomologyπ
-- CategoryTheory.ShortComplex.moduleCatLeftHomologyData_K
@[simps]
def moduleCatLeftHomologyData : S.LeftHomologyData 
Arguments: {R : Type u} [Ring R] (S : CategoryTheory.ShortComplex (ModuleCat R))
Goal: S.moduleCatLeftHomologyData.K = ModuleCat.of R ↥(LinearMap.ker S.g)
-- CategoryTheory.ShortComplex.moduleCatLeftHomologyData_f'
@[simp]
lemma moduleCatLeftHomologyData_f' :
    S.moduleCatLeftHomologyData.f' = S.moduleCatToCycles 
Arguments: {R : Type u} [Ring R] (S : CategoryTheory.ShortComplex (ModuleCat R))
Goal: S.moduleCatLeftHomologyData.f' = S.moduleCatToCycles
-- CategoryTheory.ShortComplex.moduleCatCyclesIso_hom_subtype
@[reassoc (attr := simp, elementwise)]
lemma moduleCatCyclesIso_hom_subtype :
    S.moduleCatCyclesIso.hom ≫ (LinearMap.ker S.g).subtype = S.iCycles 
Arguments: {R : Type u} [Ring R] (S : CategoryTheory.ShortComplex (ModuleCat R))
Goal: CategoryTheory.CategoryStruct.comp S.moduleCatCyclesIso.hom (LinearMap.ker S.g).subtype = S.iCycles
-- CategoryTheory.ShortComplex.moduleCatCyclesIso_inv_iCycles
@[reassoc (attr := simp, elementwise)]
lemma moduleCatCyclesIso_inv_iCycles :
    S.moduleCatCyclesIso.inv ≫ S.iCycles = (LinearMap.ker S.g).subtype 
Arguments: {R : Type u} [Ring R] (S : CategoryTheory.ShortComplex (ModuleCat R))
Goal: CategoryTheory.CategoryStruct.comp S.moduleCatCyclesIso.inv S.iCycles = (LinearMap.ker S.g).subtype
-- CategoryTheory.ShortComplex.toCycles_moduleCatCyclesIso_hom
@[reassoc (attr := simp, elementwise)]
lemma toCycles_moduleCatCyclesIso_hom :
    S.toCycles ≫ S.moduleCatCyclesIso.hom = S.moduleCatToCycles 
Arguments: {R : Type u} [Ring R] (S : CategoryTheory.ShortComplex (ModuleCat R))
Goal: CategoryTheory.CategoryStruct.comp S.toCycles S.moduleCatCyclesIso.hom = S.moduleCatToCycles
-- CategoryTheory.ShortComplex.π_moduleCatCyclesIso_hom
@[reassoc (attr := simp, elementwise)]
lemma π_moduleCatCyclesIso_hom :
    S.homologyπ ≫ S.moduleCatHomologyIso.hom =
      S.moduleCatCyclesIso.hom ≫ S.moduleCatHomologyπ 
Arguments: {R : Type u} [Ring R] (S : CategoryTheory.ShortComplex (ModuleCat R))
Goal: CategoryTheory.CategoryStruct.comp S.homologyπ S.moduleCatHomologyIso.hom =
  CategoryTheory.CategoryStruct.comp S.moduleCatCyclesIso.hom S.moduleCatHomologyπ
-- CategoryTheory.ShortComplex.moduleCatCyclesIso_inv_π
@[reassoc (attr := simp, elementwise)]
lemma moduleCatCyclesIso_inv_π :
    S.moduleCatCyclesIso.inv ≫ S.homologyπ =
       S.moduleCatHomologyπ ≫ S.moduleCatHomologyIso.inv 
Arguments: {R : Type u} [Ring R] (S : CategoryTheory.ShortComplex (ModuleCat R))
Goal: CategoryTheory.CategoryStruct.comp S.moduleCatCyclesIso.inv S.homologyπ =
  CategoryTheory.CategoryStruct.comp S.moduleCatHomologyπ S.moduleCatHomologyIso.inv
-- CategoryTheory.ShortComplex.exact_iff_surjective_moduleCatToCycles
lemma exact_iff_surjective_moduleCatToCycles :
    S.Exact ↔ Function.Surjective S.moduleCatToCycles 
Arguments: {R : Type u} [Ring R] (S : CategoryTheory.ShortComplex (ModuleCat R))
Goal: S.Exact ↔ Function.Surjective ⇑S.moduleCatToCycles
-- PresheafOfModules.Sheafify.app_eq_of_isLocallyInjective
lemma _root_.PresheafOfModules.Sheafify.app_eq_of_isLocallyInjective
    {Y : C} (r₀ r₀' : R₀.obj (Opposite.op Y))
    (m₀ m₀' : M₀.presheaf.obj (Opposite.op Y))
    (hr₀ : α.app _ r₀ = α.app _ r₀')
    (hm₀ : φ.app _ m₀ = φ.app _ m₀') :
    φ.app _ (r₀ • m₀) = φ.app _ (r₀' • m₀') 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {J : CategoryTheory.GrothendieckTopology C} {R₀ R : Cᵒᵖ ⥤ RingCat} (α : R₀ ⟶ R) [CategoryTheory.Presheaf.IsLocallyInjective J α] {M₀ : PresheafOfModules R₀} {A : Cᵒᵖ ⥤ AddCommGrp} (φ : M₀.presheaf ⟶ A) [CategoryTheory.Presheaf.IsLocallyInjective J φ] (hA : CategoryTheory.Presheaf.IsSeparated J A) {Y : C} (r₀ r₀' : ↑(R₀.obj (Opposite.op Y))) (m₀ m₀' : ↑(M₀.presheaf.obj (Opposite.op Y))) (hr₀ : (α.app (Opposite.op Y)) r₀ = (α.app (Opposite.op Y)) r₀') (hm₀ : (φ.app (Opposite.op Y)) m₀ = (φ.app (Opposite.op Y)) m₀')
Goal: (φ.app (Opposite.op Y)) (r₀ • m₀) = (φ.app (Opposite.op Y)) (r₀' • m₀')
-- CategoryTheory.Presieve.FamilyOfElements.isCompatible_map_smul_aux
lemma isCompatible_map_smul_aux {Y Z : C} (f : Y ⟶ X) (g : Z ⟶ Y)
    (r₀ : R₀.obj (Opposite.op Y)) (r₀' : R₀.obj (Opposite.op Z))
    (m₀ : M₀.presheaf.obj (Opposite.op Y)) (m₀' : M₀.presheaf.obj (Opposite.op Z))
    (hr₀ : α.app _ r₀ = R.map f.op r) (hr₀' : α.app _ r₀' = R.map (f.op ≫ g.op) r)
    (hm₀ : φ.app _ m₀ = A.map f.op m) (hm₀' : φ.app _ m₀' = A.map (f.op ≫ g.op) m) :
    φ.app _ (M₀.presheaf.map g.op (r₀ • m₀)) = φ.app _ (r₀' • m₀') 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {J : CategoryTheory.GrothendieckTopology C} {R₀ R : Cᵒᵖ ⥤ RingCat} (α : R₀ ⟶ R) [CategoryTheory.Presheaf.IsLocallyInjective J α] {M₀ : PresheafOfModules R₀} {A : Cᵒᵖ ⥤ AddCommGrp} (φ : M₀.presheaf ⟶ A) [CategoryTheory.Presheaf.IsLocallyInjective J φ] (hA : CategoryTheory.Presheaf.IsSeparated J A) {X : C} (r : ↑(R.obj (Opposite.op X))) (m : ↑(A.obj (Opposite.op X))) {Y Z : C} (f : Y ⟶ X) (g : Z ⟶ Y) (r₀ : ↑(R₀.obj (Opposite.op Y))) (r₀' : ↑(R₀.obj (Opposite.op Z))) (m₀ : ↑(M₀.presheaf.obj (Opposite.op Y))) (m₀' : ↑(M₀.presheaf.obj (Opposite.op Z))) (hr₀ : (α.app (Opposite.op Y)) r₀ = (R.map f.op) r) (hr₀' : (α.app (Opposite.op Z)) r₀' = (R.map (f.op ≫ g.op)) r) (hm₀ : (φ.app (Opposite.op Y)) m₀ = (A.map f.op) m) (hm₀' : (φ.app (Opposite.op Z)) m₀' = (A.map (f.op ≫ g.op)) m)
Goal: (φ.app (Opposite.op Z)) ((M₀.presheaf.map g.op) (r₀ • m₀)) = (φ.app (Opposite.op Z)) (r₀' • m₀')
-- CategoryTheory.Presieve.FamilyOfElements.isCompatible_map_smul
lemma isCompatible_map_smul : ((r₀.smul m₀).map (whiskerRight φ (forget _))).Compatible 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {J : CategoryTheory.GrothendieckTopology C} {R₀ R : Cᵒᵖ ⥤ RingCat} (α : R₀ ⟶ R) [CategoryTheory.Presheaf.IsLocallyInjective J α] {M₀ : PresheafOfModules R₀} {A : Cᵒᵖ ⥤ AddCommGrp} (φ : M₀.presheaf ⟶ A) [CategoryTheory.Presheaf.IsLocallyInjective J φ] (hA : CategoryTheory.Presheaf.IsSeparated J A) {X : C} (r : ↑(R.obj (Opposite.op X))) (m : ↑(A.obj (Opposite.op X))) {P : CategoryTheory.Presieve X} (r₀ : CategoryTheory.Presieve.FamilyOfElements (R₀ ⋙ CategoryTheory.forget RingCat) P) (m₀ : CategoryTheory.Presieve.FamilyOfElements (M₀.presheaf ⋙ CategoryTheory.forget AddCommGrp) P) (hr₀ : (r₀.map (CategoryTheory.whiskerRight α (CategoryTheory.forget RingCat))).IsAmalgamation r) (hm₀ : (m₀.map (CategoryTheory.whiskerRight φ (CategoryTheory.forget AddCommGrp))).IsAmalgamation m)
Goal: ((r₀.smul m₀).map (CategoryTheory.whiskerRight φ (CategoryTheory.forget AddCommGrp))).Compatible
-- PresheafOfModules.Sheafify.SMulCandidate.h
structure SMulCandidate where
    x : A.val.obj X
  h ⦃Y : Cᵒᵖ⦄ (f : X ⟶ Y) (r₀ : R₀.obj Y) (hr₀ : α.app Y r₀ = R.val.map f r)
    (m₀ : M₀.obj Y) (hm₀ : φ.app Y m₀ = A.val.map f m) : A.val.map f x = φ.app Y (r₀ • m₀)
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {J : CategoryTheory.GrothendieckTopology C} {R₀ : Cᵒᵖ ⥤ RingCat} {R : CategoryTheory.Sheaf J RingCat} {α : R₀ ⟶ R.val} {M₀ : PresheafOfModules R₀} {A : CategoryTheory.Sheaf J AddCommGrp} {φ : M₀.presheaf ⟶ A.val} {X : Cᵒᵖ} {r : ↑(R.val.obj X)} {m : ↑(A.val.obj X)} (self : PresheafOfModules.Sheafify.SMulCandidate α φ r m) ⦃Y : Cᵒᵖ⦄ (f : X ⟶ Y) (r₀ : ↑(R₀.obj Y)) (hr₀ : (α.app Y) r₀ = (R.val.map f) r) (m₀ : ↑(M₀.obj Y)) (hm₀ : (φ.app Y) m₀ = (A.val.map f) m)
Goal: (A.val.map f) self.x = (φ.app Y) (r₀ • m₀)
-- PresheafOfModules.Sheafify.map_smul_eq
lemma map_smul_eq {Y : Cᵒᵖ} (f : X ⟶ Y) (r₀ : R₀.obj Y) (hr₀ : α.app Y r₀ = R.val.map f r)
    (m₀ : M₀.obj Y) (hm₀ : φ.app Y m₀ = A.val.map f m) :
    A.val.map f (smul α φ r m) = φ.app Y (r₀ • m₀) 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {J : CategoryTheory.GrothendieckTopology C} {R₀ : Cᵒᵖ ⥤ RingCat} {R : CategoryTheory.Sheaf J RingCat} (α : R₀ ⟶ R.val) [CategoryTheory.Presheaf.IsLocallyInjective J α] [CategoryTheory.Presheaf.IsLocallySurjective J α] {M₀ : PresheafOfModules R₀} {A : CategoryTheory.Sheaf J AddCommGrp} (φ : M₀.presheaf ⟶ A.val) [CategoryTheory.Presheaf.IsLocallyInjective J φ] [CategoryTheory.Presheaf.IsLocallySurjective J φ] {X : Cᵒᵖ} (r : ↑(R.val.obj X)) (m : ↑(A.val.obj X)) {Y : Cᵒᵖ} (f : X ⟶ Y) (r₀ : ↑(R₀.obj Y)) (hr₀ : (α.app Y) r₀ = (R.val.map f) r) (m₀ : ↑(M₀.obj Y)) (hm₀ : (φ.app Y) m₀ = (A.val.map f) m)
Goal: (A.val.map f) (PresheafOfModules.Sheafify.smul α φ r m) = (φ.app Y) (r₀ • m₀)
-- PresheafOfModules.Sheafify.one_smul
protected lemma one_smul : smul α φ 1 m = m 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {J : CategoryTheory.GrothendieckTopology C} {R₀ : Cᵒᵖ ⥤ RingCat} {R : CategoryTheory.Sheaf J RingCat} (α : R₀ ⟶ R.val) [CategoryTheory.Presheaf.IsLocallyInjective J α] [CategoryTheory.Presheaf.IsLocallySurjective J α] {M₀ : PresheafOfModules R₀} {A : CategoryTheory.Sheaf J AddCommGrp} (φ : M₀.presheaf ⟶ A.val) [CategoryTheory.Presheaf.IsLocallyInjective J φ] [CategoryTheory.Presheaf.IsLocallySurjective J φ] {X : Cᵒᵖ} (m : ↑(A.val.obj X))
Goal: PresheafOfModules.Sheafify.smul α φ 1 m = m
-- PresheafOfModules.Sheafify.zero_smul
protected lemma zero_smul : smul α φ 0 m = 0 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {J : CategoryTheory.GrothendieckTopology C} {R₀ : Cᵒᵖ ⥤ RingCat} {R : CategoryTheory.Sheaf J RingCat} (α : R₀ ⟶ R.val) [CategoryTheory.Presheaf.IsLocallyInjective J α] [CategoryTheory.Presheaf.IsLocallySurjective J α] {M₀ : PresheafOfModules R₀} {A : CategoryTheory.Sheaf J AddCommGrp} (φ : M₀.presheaf ⟶ A.val) [CategoryTheory.Presheaf.IsLocallyInjective J φ] [CategoryTheory.Presheaf.IsLocallySurjective J φ] {X : Cᵒᵖ} (m : ↑(A.val.obj X))
Goal: PresheafOfModules.Sheafify.smul α φ 0 m = 0
-- PresheafOfModules.Sheafify.smul_zero
protected lemma smul_zero : smul α φ r 0 = 0 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {J : CategoryTheory.GrothendieckTopology C} {R₀ : Cᵒᵖ ⥤ RingCat} {R : CategoryTheory.Sheaf J RingCat} (α : R₀ ⟶ R.val) [CategoryTheory.Presheaf.IsLocallyInjective J α] [CategoryTheory.Presheaf.IsLocallySurjective J α] {M₀ : PresheafOfModules R₀} {A : CategoryTheory.Sheaf J AddCommGrp} (φ : M₀.presheaf ⟶ A.val) [CategoryTheory.Presheaf.IsLocallyInjective J φ] [CategoryTheory.Presheaf.IsLocallySurjective J φ] {X : Cᵒᵖ} (r : ↑(R.val.obj X))
Goal: PresheafOfModules.Sheafify.smul α φ r 0 = 0
-- PresheafOfModules.Sheafify.smul_add
protected lemma smul_add : smul α φ r (m + m') = smul α φ r m + smul α φ r m' 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {J : CategoryTheory.GrothendieckTopology C} {R₀ : Cᵒᵖ ⥤ RingCat} {R : CategoryTheory.Sheaf J RingCat} (α : R₀ ⟶ R.val) [CategoryTheory.Presheaf.IsLocallyInjective J α] [CategoryTheory.Presheaf.IsLocallySurjective J α] {M₀ : PresheafOfModules R₀} {A : CategoryTheory.Sheaf J AddCommGrp} (φ : M₀.presheaf ⟶ A.val) [CategoryTheory.Presheaf.IsLocallyInjective J φ] [CategoryTheory.Presheaf.IsLocallySurjective J φ] {X : Cᵒᵖ} (r : ↑(R.val.obj X)) (m m' : ↑(A.val.obj X))
Goal: PresheafOfModules.Sheafify.smul α φ r (m + m') =
  PresheafOfModules.Sheafify.smul α φ r m + PresheafOfModules.Sheafify.smul α φ r m'
-- PresheafOfModules.Sheafify.add_smul
protected lemma add_smul : smul α φ (r + r') m = smul α φ r m + smul α φ r' m 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {J : CategoryTheory.GrothendieckTopology C} {R₀ : Cᵒᵖ ⥤ RingCat} {R : CategoryTheory.Sheaf J RingCat} (α : R₀ ⟶ R.val) [CategoryTheory.Presheaf.IsLocallyInjective J α] [CategoryTheory.Presheaf.IsLocallySurjective J α] {M₀ : PresheafOfModules R₀} {A : CategoryTheory.Sheaf J AddCommGrp} (φ : M₀.presheaf ⟶ A.val) [CategoryTheory.Presheaf.IsLocallyInjective J φ] [CategoryTheory.Presheaf.IsLocallySurjective J φ] {X : Cᵒᵖ} (r r' : ↑(R.val.obj X)) (m : ↑(A.val.obj X))
Goal: PresheafOfModules.Sheafify.smul α φ (r + r') m =
  PresheafOfModules.Sheafify.smul α φ r m + PresheafOfModules.Sheafify.smul α φ r' m
-- PresheafOfModules.Sheafify.mul_smul
protected lemma mul_smul : smul α φ (r * r') m = smul α φ r (smul α φ r' m) 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {J : CategoryTheory.GrothendieckTopology C} {R₀ : Cᵒᵖ ⥤ RingCat} {R : CategoryTheory.Sheaf J RingCat} (α : R₀ ⟶ R.val) [CategoryTheory.Presheaf.IsLocallyInjective J α] [CategoryTheory.Presheaf.IsLocallySurjective J α] {M₀ : PresheafOfModules R₀} {A : CategoryTheory.Sheaf J AddCommGrp} (φ : M₀.presheaf ⟶ A.val) [CategoryTheory.Presheaf.IsLocallyInjective J φ] [CategoryTheory.Presheaf.IsLocallySurjective J φ] {X : Cᵒᵖ} (r r' : ↑(R.val.obj X)) (m : ↑(A.val.obj X))
Goal: PresheafOfModules.Sheafify.smul α φ (r * r') m =
  PresheafOfModules.Sheafify.smul α φ r (PresheafOfModules.Sheafify.smul α φ r' m)
-- PresheafOfModules.Sheafify.map_smul
lemma map_smul :
    A.val.map π (smul α φ r m) = smul α φ (R.val.map π r) (A.val.map π m) 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {J : CategoryTheory.GrothendieckTopology C} {R₀ : Cᵒᵖ ⥤ RingCat} {R : CategoryTheory.Sheaf J RingCat} (α : R₀ ⟶ R.val) [CategoryTheory.Presheaf.IsLocallyInjective J α] [CategoryTheory.Presheaf.IsLocallySurjective J α] {M₀ : PresheafOfModules R₀} {A : CategoryTheory.Sheaf J AddCommGrp} (φ : M₀.presheaf ⟶ A.val) [CategoryTheory.Presheaf.IsLocallyInjective J φ] [CategoryTheory.Presheaf.IsLocallySurjective J φ] (X : Cᵒᵖ) {Y : Cᵒᵖ} (π : X ⟶ Y) (r : ↑(R.val.obj X)) (m : ↑(A.val.obj X))
Goal: (A.val.map π) (PresheafOfModules.Sheafify.smul α φ r m) =
  PresheafOfModules.Sheafify.smul α φ ((R.val.map π) r) ((A.val.map π) m)
-- PresheafOfModules.toSheafify_hom
@[simps]
def toSheafify : M₀ ⟶ (restrictScalars α).obj (sheafify α φ).val 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {J : CategoryTheory.GrothendieckTopology C} {R₀ : Cᵒᵖ ⥤ RingCat} {R : CategoryTheory.Sheaf J RingCat} (α : R₀ ⟶ R.val) [CategoryTheory.Presheaf.IsLocallyInjective J α] [CategoryTheory.Presheaf.IsLocallySurjective J α] {M₀ : PresheafOfModules R₀} {A : CategoryTheory.Sheaf J AddCommGrp} (φ : M₀.presheaf ⟶ A.val) [CategoryTheory.Presheaf.IsLocallyInjective J φ] [CategoryTheory.Presheaf.IsLocallySurjective J φ]
Goal: (PresheafOfModules.toSheafify α φ).hom = φ
-- PresheafOfModules.comp_sheafifyHomEquiv'_symm_hom
lemma comp_sheafifyHomEquiv'_symm_hom {F : PresheafOfModules.{v} R.val}
    (hF : Presheaf.IsSheaf J F.presheaf) (f : M₀ ⟶ (restrictScalars α).obj F) :
    φ ≫ ((sheafifyHomEquiv' α φ hF).symm f).hom = f.hom 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {J : CategoryTheory.GrothendieckTopology C} {R₀ : Cᵒᵖ ⥤ RingCat} {R : CategoryTheory.Sheaf J RingCat} (α : R₀ ⟶ R.val) [CategoryTheory.Presheaf.IsLocallyInjective J α] [CategoryTheory.Presheaf.IsLocallySurjective J α] {M₀ : PresheafOfModules R₀} {A : CategoryTheory.Sheaf J AddCommGrp} (φ : M₀.presheaf ⟶ A.val) [CategoryTheory.Presheaf.IsLocallyInjective J φ] [CategoryTheory.Presheaf.IsLocallySurjective J φ] [J.WEqualsLocallyBijective AddCommGrp] {F : PresheafOfModules R.val} (hF : CategoryTheory.Presheaf.IsSheaf J F.presheaf) (f : M₀ ⟶ (PresheafOfModules.restrictScalars α).obj F)
Goal: φ ≫ ((PresheafOfModules.sheafifyHomEquiv' α φ hF).symm f).hom = f.hom
-- PresheafOfModules.sheafifyMap_val_hom
@[simps]
def sheafifyMap : sheafify α φ ⟶ sheafify α φ' 
Arguments: {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {J : CategoryTheory.GrothendieckTopology C} {R₀ : Cᵒᵖ ⥤ RingCat} {R : CategoryTheory.Sheaf J RingCat} (α : R₀ ⟶ R.val) [CategoryTheory.Presheaf.IsLocallyInjective J α] [CategoryTheory.Presheaf.IsLocallySurjective J α] {M₀ : PresheafOfModules R₀} {A : CategoryTheory.Sheaf J AddCommGrp} (φ : M₀.presheaf ⟶ A.val) [CategoryTheory.Presheaf.IsLocallyInjective J φ] [CategoryTheory.Presheaf.IsLocallySurjective J φ] [J.WEqualsLocallyBijective AddCommGrp] {M₀' : PresheafOfModules R₀} {A' : CategoryTheory.Sheaf J AddCommGrp} (φ' : M₀'.presheaf ⟶ A'.val) [CategoryTheory.Presheaf.IsLocallyInjective J φ'] [CategoryTheory.Presheaf.IsLocallySurjective J φ'] (τ₀ : M₀ ⟶ M₀') (τ : A ⟶ A') (fac : τ₀.hom ≫ φ' = φ ≫ τ.val)
Goal: (PresheafOfModules.sheafifyMap α φ φ' τ₀ τ fac).val.hom = τ.val
-- imageToKernel_op
theorem imageToKernel_op {X Y Z : V} (f : X ⟶ Y) (g : Y ⟶ Z) (w : f ≫ g = 0) :
    imageToKernel g.op f.op (by rw [← op_comp, w, op_zero]) =
      (imageSubobjectIso _ ≪≫ (imageOpOp _).symm).hom ≫
        (cokernel.desc f (factorThruImage g)
              (by rw [← cancel_mono (image.ι g), Category.assoc, image.fac, w, zero_comp])).op ≫
          (kernelSubobjectIso _ ≪≫ kernelOpOp _).inv 
Arguments: {V : Type u_1} [CategoryTheory.Category.{u_2, u_1} V] [CategoryTheory.Abelian V] {X Y Z : V} (f : X ⟶ Y) (g : Y ⟶ Z) (w : f ≫ g = 0)
Goal: imageToKernel g.op f.op ⋯ =
  (CategoryTheory.Limits.imageSubobjectIso g.op ≪≫ (CategoryTheory.imageOpOp g).symm).hom ≫
    (CategoryTheory.Limits.cokernel.desc f (CategoryTheory.Limits.factorThruImage g) ⋯).op ≫
      (CategoryTheory.Limits.kernelSubobjectIso f.op ≪≫ CategoryTheory.kernelOpOp f).inv
-- imageToKernel_unop
theorem imageToKernel_unop {X Y Z : Vᵒᵖ} (f : X ⟶ Y) (g : Y ⟶ Z) (w : f ≫ g = 0) :
    imageToKernel g.unop f.unop (by rw [← unop_comp, w, unop_zero]) =
      (imageSubobjectIso _ ≪≫ (imageUnopUnop _).symm).hom ≫
        (cokernel.desc f (factorThruImage g)
              (by rw [← cancel_mono (image.ι g), Category.assoc, image.fac, w, zero_comp])).unop ≫
          (kernelSubobjectIso _ ≪≫ kernelUnopUnop _).inv 
Arguments: {V : Type u_1} [CategoryTheory.Category.{u_2, u_1} V] [CategoryTheory.Abelian V] {X Y Z : Vᵒᵖ} (f : X ⟶ Y) (g : Y ⟶ Z) (w : f ≫ g = 0)
Goal: imageToKernel g.unop f.unop ⋯ =
  (CategoryTheory.Limits.imageSubobjectIso g.unop ≪≫ (CategoryTheory.imageUnopUnop g).symm).hom ≫
    (CategoryTheory.Limits.cokernel.desc f (CategoryTheory.Limits.factorThruImage g) ⋯).unop ≫
      (CategoryTheory.Limits.kernelSubobjectIso f.unop ≪≫ CategoryTheory.kernelUnopUnop f).inv
-- HomologicalComplex.op_X
@[simps]
protected def op (X : HomologicalComplex V c) : HomologicalComplex Vᵒᵖ c.symm 
Arguments: {ι : Type u_1} {V : Type u_2} [CategoryTheory.Category.{u_3, u_2} V] {c : ComplexShape ι} [CategoryTheory.Limits.HasZeroMorphisms V] (X : HomologicalComplex V c) (i : ι)
Goal: X.op.X i = Opposite.op (X.X i)
-- HomologicalComplex.op_d
@[simps]
protected def op (X : HomologicalComplex V c) : HomologicalComplex Vᵒᵖ c.symm 
Arguments: {ι : Type u_1} {V : Type u_2} [CategoryTheory.Category.{u_3, u_2} V] {c : ComplexShape ι} [CategoryTheory.Limits.HasZeroMorphisms V] (X : HomologicalComplex V c) (i j : ι)
Goal: X.op.d i j = (X.d j i).op
-- HomologicalComplex.opSymm_X
@[simps]
protected def opSymm (X : HomologicalComplex V c.symm) : HomologicalComplex Vᵒᵖ c 
Arguments: {ι : Type u_1} {V : Type u_2} [CategoryTheory.Category.{u_3, u_2} V] {c : ComplexShape ι} [CategoryTheory.Limits.HasZeroMorphisms V] (X : HomologicalComplex V c.symm) (i : ι)
Goal: X.opSymm.X i = Opposite.op (X.X i)
-- HomologicalComplex.opSymm_d
@[simps]
protected def opSymm (X : HomologicalComplex V c.symm) : HomologicalComplex Vᵒᵖ c 
Arguments: {ι : Type u_1} {V : Type u_2} [CategoryTheory.Category.{u_3, u_2} V] {c : ComplexShape ι} [CategoryTheory.Limits.HasZeroMorphisms V] (X : HomologicalComplex V c.symm) (i j : ι)
Goal: X.opSymm.d i j = (X.d j i).op
-- HomologicalComplex.unop_d
@[simps]
protected def unop (X : HomologicalComplex Vᵒᵖ c) : HomologicalComplex V c.symm 
Arguments: {ι : Type u_1} {V : Type u_2} [CategoryTheory.Category.{u_3, u_2} V] {c : ComplexShape ι} [CategoryTheory.Limits.HasZeroMorphisms V] (X : HomologicalComplex Vᵒᵖ c) (i j : ι)
Goal: X.unop.d i j = (X.d j i).unop
-- HomologicalComplex.unop_X
@[simps]
protected def unop (X : HomologicalComplex Vᵒᵖ c) : HomologicalComplex V c.symm 
Arguments: {ι : Type u_1} {V : Type u_2} [CategoryTheory.Category.{u_3, u_2} V] {c : ComplexShape ι} [CategoryTheory.Limits.HasZeroMorphisms V] (X : HomologicalComplex Vᵒᵖ c) (i : ι)
Goal: X.unop.X i = Opposite.unop (X.X i)
-- HomologicalComplex.unopSymm_d
@[simps]
protected def unopSymm (X : HomologicalComplex Vᵒᵖ c.symm) : HomologicalComplex V c 
Arguments: {ι : Type u_1} {V : Type u_2} [CategoryTheory.Category.{u_3, u_2} V] {c : ComplexShape ι} [CategoryTheory.Limits.HasZeroMorphisms V] (X : HomologicalComplex Vᵒᵖ c.symm) (i j : ι)
Goal: X.unopSymm.d i j = (X.d j i).unop
-- HomologicalComplex.unopSymm_X
@[simps]
protected def unopSymm (X : HomologicalComplex Vᵒᵖ c.symm) : HomologicalComplex V c 
Arguments: {ι : Type u_1} {V : Type u_2} [CategoryTheory.Category.{u_3, u_2} V] {c : ComplexShape ι} [CategoryTheory.Limits.HasZeroMorphisms V] (X : HomologicalComplex Vᵒᵖ c.symm) (i : ι)
Goal: X.unopSymm.X i = Opposite.unop (X.X i)
-- HomologicalComplex.opFunctor_map_f
@[simps]
def opFunctor : (HomologicalComplex V c)ᵒᵖ ⥤ HomologicalComplex Vᵒᵖ c.symm 
Arguments: {ι : Type u_1} (V : Type u_2) [CategoryTheory.Category.{u_3, u_2} V] (c : ComplexShape ι) [CategoryTheory.Limits.HasZeroMorphisms V]
Goal: ∀ {X Y : (HomologicalComplex V c)ᵒᵖ} (f : X ⟶ Y) (i : ι),
  ((HomologicalComplex.opFunctor V c).map f).f i = (f.unop.f i).op
-- HomologicalComplex.opFunctor_obj
@[simps]
def opFunctor : (HomologicalComplex V c)ᵒᵖ ⥤ HomologicalComplex Vᵒᵖ c.symm 
Arguments: {ι : Type u_1} (V : Type u_2) [CategoryTheory.Category.{u_3, u_2} V] (c : ComplexShape ι) [CategoryTheory.Limits.HasZeroMorphisms V] (X : (HomologicalComplex V c)ᵒᵖ)
Goal: (HomologicalComplex.opFunctor V c).obj X = (Opposite.unop X).op
-- HomologicalComplex.opInverse_map
@[simps]
def opInverse : HomologicalComplex Vᵒᵖ c.symm ⥤ (HomologicalComplex V c)ᵒᵖ 
Arguments: {ι : Type u_1} (V : Type u_2) [CategoryTheory.Category.{u_3, u_2} V] (c : ComplexShape ι) [CategoryTheory.Limits.HasZeroMorphisms V]
Goal: ∀ {X Y : HomologicalComplex Vᵒᵖ c.symm} (f : X ⟶ Y),
  (HomologicalComplex.opInverse V c).map f = Quiver.Hom.op { f := fun i => (f.f i).unop, comm' := ⋯ }