File: Mathlib/Algebra/Homology/SingleHomology.lean

full_name: HomologicalComplex.instHasHomologyObjSingle
code: instance (i : ι) : ((single C c j).obj A).HasHomology i 
goal: ((HomologicalComplex.single C c j).obj A).HasHomology i

full_name: HomologicalComplex.exactAt_single_obj
code: lemma exactAt_single_obj (A : C) (i : ι) (hi : i ≠ j) :
    ExactAt ((single C c j).obj A) i 
goal: ((HomologicalComplex.single C c j).obj A).ExactAt i

full_name: HomologicalComplex.isZero_single_obj_homology
code: lemma isZero_single_obj_homology (A : C) (i : ι) (hi : i ≠ j) :
    IsZero (((single C c j).obj A).homology i) 
goal: CategoryTheory.Limits.IsZero (((HomologicalComplex.single C c j).obj A).homology i)

full_name: HomologicalComplex.singleObjCyclesSelfIso
code: /-- The canonical isomorphism `((single C c j).obj A).cycles j ≅ A` -/
noncomputable def singleObjCyclesSelfIso :
    ((single C c j).obj A).cycles j ≅ A 
goal: ((HomologicalComplex.single C c j).obj A).cycles j ≅ A

full_name: HomologicalComplex.singleObjCyclesSelfIso_hom
code: @[reassoc]
lemma singleObjCyclesSelfIso_hom :
    (singleObjCyclesSelfIso c j A).hom =
      ((single C c j).obj A).iCycles j ≫ (singleObjXSelf c j A).hom 
goal: (HomologicalComplex.singleObjCyclesSelfIso c j A).hom =
  ((HomologicalComplex.single C c j).obj A).iCycles j ≫ (HomologicalComplex.singleObjXSelf c j A).hom

full_name: HomologicalComplex.singleObjOpcyclesSelfIso
code: /-- The canonical isomorphism `((single C c j).obj A).opcycles j ≅ A` -/
noncomputable def singleObjOpcyclesSelfIso :
    A ≅ ((single C c j).obj A).opcycles j 
goal: A ≅ ((HomologicalComplex.single C c j).obj A).opcycles j

full_name: HomologicalComplex.singleObjOpcyclesSelfIso_hom
code: @[reassoc]
lemma singleObjOpcyclesSelfIso_hom :
    (singleObjOpcyclesSelfIso c j A).hom =
      (singleObjXSelf c j A).inv ≫ ((single C c j).obj A).pOpcycles j 
goal: (HomologicalComplex.singleObjOpcyclesSelfIso c j A).hom =
  (HomologicalComplex.singleObjXSelf c j A).inv ≫ ((HomologicalComplex.single C c j).obj A).pOpcycles j

full_name: HomologicalComplex.singleObjHomologySelfIso
code: /-- The canonical isomorphism `((single C c j).obj A).homology j ≅ A` -/
noncomputable def singleObjHomologySelfIso :
    ((single C c j).obj A).homology j ≅ A 
goal: ((HomologicalComplex.single C c j).obj A).homology j ≅ A

full_name: HomologicalComplex.singleObjCyclesSelfIso_inv_iCycles
code: @[reassoc (attr := simp)]
lemma singleObjCyclesSelfIso_inv_iCycles :
    (singleObjCyclesSelfIso _ _ _).inv ≫ ((single C c j).obj A).iCycles j =
      (singleObjXSelf c j A).inv 
goal: (HomologicalComplex.singleObjCyclesSelfIso c j A).inv ≫ ((HomologicalComplex.single C c j).obj A).iCycles j =
  (HomologicalComplex.singleObjXSelf c j A).inv

full_name: HomologicalComplex.homologyπ_singleObjHomologySelfIso_hom
code: @[reassoc (attr := simp)]
lemma homologyπ_singleObjHomologySelfIso_hom :
    ((single C c j).obj A).homologyπ j ≫ (singleObjHomologySelfIso _ _ _).hom =
      (singleObjCyclesSelfIso _ _ _).hom 
goal: ((HomologicalComplex.single C c j).obj A).homologyπ j ≫ (HomologicalComplex.singleObjHomologySelfIso c j A).hom =
  (HomologicalComplex.singleObjCyclesSelfIso c j A).hom

full_name: HomologicalComplex.singleObjHomologySelfIso_hom_singleObjHomologySelfIso_inv
code: @[reassoc (attr := simp)]
lemma singleObjHomologySelfIso_hom_singleObjHomologySelfIso_inv :
    (singleObjCyclesSelfIso c j A).hom ≫ (singleObjHomologySelfIso c j A).inv =
      ((single C c j).obj A).homologyπ j 
goal: (HomologicalComplex.singleObjCyclesSelfIso c j A).hom ≫ (HomologicalComplex.singleObjHomologySelfIso c j A).inv =
  ((HomologicalComplex.single C c j).obj A).homologyπ j

full_name: HomologicalComplex.singleObjCyclesSelfIso_hom_singleObjOpcyclesSelfIso_hom
code: @[reassoc (attr := simp)]
lemma singleObjCyclesSelfIso_hom_singleObjOpcyclesSelfIso_hom :
    (singleObjCyclesSelfIso c j A).hom ≫ (singleObjOpcyclesSelfIso c j A).hom =
      ((single C c j).obj A).iCycles j ≫ ((single C c j).obj A).pOpcycles j 
goal: (HomologicalComplex.singleObjCyclesSelfIso c j A).hom ≫ (HomologicalComplex.singleObjOpcyclesSelfIso c j A).hom =
  ((HomologicalComplex.single C c j).obj A).iCycles j ≫ ((HomologicalComplex.single C c j).obj A).pOpcycles j

full_name: HomologicalComplex.singleObjCyclesSelfIso_inv_homologyπ
code: @[reassoc (attr := simp)]
lemma singleObjCyclesSelfIso_inv_homologyπ  :
    (singleObjCyclesSelfIso _ _ _).inv ≫ ((single C c j).obj A).homologyπ j =
      (singleObjHomologySelfIso _ _ _).inv 
goal: (HomologicalComplex.singleObjCyclesSelfIso c j A).inv ≫ ((HomologicalComplex.single C c j).obj A).homologyπ j =
  (HomologicalComplex.singleObjHomologySelfIso c j A).inv

full_name: HomologicalComplex.singleObjHomologySelfIso_inv_homologyι
code: @[reassoc (attr := simp)]
lemma singleObjHomologySelfIso_inv_homologyι :
    (singleObjHomologySelfIso _ _ _).inv ≫ ((single C c j).obj A).homologyι j =
      (singleObjOpcyclesSelfIso _ _ _).hom 
goal: (HomologicalComplex.singleObjHomologySelfIso c j A).inv ≫ ((HomologicalComplex.single C c j).obj A).homologyι j =
  (HomologicalComplex.singleObjOpcyclesSelfIso c j A).hom

full_name: HomologicalComplex.homologyι_singleObjOpcyclesSelfIso_inv
code: @[reassoc (attr := simp)]
lemma homologyι_singleObjOpcyclesSelfIso_inv :
    ((single C c j).obj A).homologyι j ≫ (singleObjOpcyclesSelfIso _ _ _).inv =
      (singleObjHomologySelfIso _ _ _).hom 
goal: ((HomologicalComplex.single C c j).obj A).homologyι j ≫ (HomologicalComplex.singleObjOpcyclesSelfIso c j A).inv =
  (HomologicalComplex.singleObjHomologySelfIso c j A).hom

full_name: HomologicalComplex.singleObjHomologySelfIso_hom_singleObjOpcyclesSelfIso_hom
code: @[reassoc (attr := simp)]
lemma singleObjHomologySelfIso_hom_singleObjOpcyclesSelfIso_hom :
    (singleObjHomologySelfIso _ _ _).hom ≫ (singleObjOpcyclesSelfIso _ _ _).hom =
      ((single C c j).obj A).homologyι j 
goal: (HomologicalComplex.singleObjHomologySelfIso c j A).hom ≫ (HomologicalComplex.singleObjOpcyclesSelfIso c j A).hom =
  ((HomologicalComplex.single C c j).obj A).homologyι j

full_name: HomologicalComplex.singleObjCyclesSelfIso_hom_naturality
code: @[reassoc (attr := simp)]
lemma singleObjCyclesSelfIso_hom_naturality :
    cyclesMap ((single C c j).map f) j ≫ (singleObjCyclesSelfIso c j B).hom =
      (singleObjCyclesSelfIso c j A).hom ≫ f 
goal: HomologicalComplex.cyclesMap ((HomologicalComplex.single C c j).map f) j ≫
    (HomologicalComplex.singleObjCyclesSelfIso c j B).hom =
  (HomologicalComplex.singleObjCyclesSelfIso c j A).hom ≫ f

full_name: HomologicalComplex.singleObjCyclesSelfIso_inv_naturality
code: @[reassoc (attr := simp)]
lemma singleObjCyclesSelfIso_inv_naturality :
    (singleObjCyclesSelfIso c j A).inv ≫ cyclesMap ((single C c j).map f) j =
      f ≫ (singleObjCyclesSelfIso c j B).inv 
goal: (HomologicalComplex.singleObjCyclesSelfIso c j A).inv ≫
    HomologicalComplex.cyclesMap ((HomologicalComplex.single C c j).map f) j =
  f ≫ (HomologicalComplex.singleObjCyclesSelfIso c j B).inv

full_name: HomologicalComplex.singleObjHomologySelfIso_hom_naturality
code: @[reassoc (attr := simp)]
lemma singleObjHomologySelfIso_hom_naturality :
    homologyMap ((single C c j).map f) j ≫ (singleObjHomologySelfIso c j B).hom =
      (singleObjHomologySelfIso c j A).hom ≫ f 
goal: HomologicalComplex.homologyMap ((HomologicalComplex.single C c j).map f) j ≫
    (HomologicalComplex.singleObjHomologySelfIso c j B).hom =
  (HomologicalComplex.singleObjHomologySelfIso c j A).hom ≫ f

full_name: HomologicalComplex.singleObjHomologySelfIso_inv_naturality
code: @[reassoc (attr := simp)]
lemma singleObjHomologySelfIso_inv_naturality :
    (singleObjHomologySelfIso c j A).inv ≫ homologyMap ((single C c j).map f) j =
      f ≫ (singleObjHomologySelfIso c j B).inv 
goal: (HomologicalComplex.singleObjHomologySelfIso c j A).inv ≫
    HomologicalComplex.homologyMap ((HomologicalComplex.single C c j).map f) j =
  f ≫ (HomologicalComplex.singleObjHomologySelfIso c j B).inv

full_name: HomologicalComplex.singleObjOpcyclesSelfIso_hom_naturality
code: @[reassoc (attr := simp)]
lemma singleObjOpcyclesSelfIso_hom_naturality :
    (singleObjOpcyclesSelfIso c j A).hom ≫ opcyclesMap ((single C c j).map f) j  =
      f ≫ (singleObjOpcyclesSelfIso c j B).hom 
goal: (HomologicalComplex.singleObjOpcyclesSelfIso c j A).hom ≫
    HomologicalComplex.opcyclesMap ((HomologicalComplex.single C c j).map f) j =
  f ≫ (HomologicalComplex.singleObjOpcyclesSelfIso c j B).hom

full_name: HomologicalComplex.singleObjOpcyclesSelfIso_inv_naturality
code: @[reassoc (attr := simp)]
lemma singleObjOpcyclesSelfIso_inv_naturality :
    opcyclesMap ((single C c j).map f) j ≫ (singleObjOpcyclesSelfIso c j B).inv =
      (singleObjOpcyclesSelfIso c j A).inv ≫ f 
goal: HomologicalComplex.opcyclesMap ((HomologicalComplex.single C c j).map f) j ≫
    (HomologicalComplex.singleObjOpcyclesSelfIso c j B).inv =
  (HomologicalComplex.singleObjOpcyclesSelfIso c j A).inv ≫ f

full_name: HomologicalComplex.homologyFunctorSingleIso_inv_app
code: /-- The computation of the homology of single complexes, as a natural isomorphism
`single C c j ⋙ homologyFunctor C c j ≅ 𝟭 C`. -/
@[simps!]
noncomputable def homologyFunctorSingleIso [CategoryWithHomology C] :
    single C c j ⋙ homologyFunctor C c j ≅ 𝟭 _ 
goal: (HomologicalComplex.homologyFunctorSingleIso C c j).inv.app X = (HomologicalComplex.singleObjHomologySelfIso c j X).inv

full_name: HomologicalComplex.homologyFunctorSingleIso
code: /-- The computation of the homology of single complexes, as a natural isomorphism
`single C c j ⋙ homologyFunctor C c j ≅ 𝟭 C`. -/
@[simps!]
noncomputable def homologyFunctorSingleIso [CategoryWithHomology C] :
    single C c j ⋙ homologyFunctor C c j ≅ 𝟭 _ 
goal: HomologicalComplex.single C c j ⋙ HomologicalComplex.homologyFunctor C c j ≅ 𝟭 C

full_name: HomologicalComplex.homologyFunctorSingleIso_hom_app
code: /-- The computation of the homology of single complexes, as a natural isomorphism
`single C c j ⋙ homologyFunctor C c j ≅ 𝟭 C`. -/
@[simps!]
noncomputable def homologyFunctorSingleIso [CategoryWithHomology C] :
    single C c j ⋙ homologyFunctor C c j ≅ 𝟭 _ 
goal: (HomologicalComplex.homologyFunctorSingleIso C c j).hom.app X = (HomologicalComplex.singleObjHomologySelfIso c j X).hom

full_name: ChainComplex.exactAt_succ_single_obj
code: lemma ChainComplex.exactAt_succ_single_obj (A : C) (n : ℕ) :
    ExactAt ((single₀ C).obj A) (n + 1) 
goal: HomologicalComplex.ExactAt ((ChainComplex.single₀ C).obj A) (n + 1)

full_name: CochainComplex.exactAt_succ_single_obj
code: lemma CochainComplex.exactAt_succ_single_obj (A : C) (n : ℕ) :
    ExactAt ((single₀ C).obj A) (n + 1) 
goal: HomologicalComplex.ExactAt ((CochainComplex.single₀ C).obj A) (n + 1)