# Documentation

Mathlib.AlgebraicTopology.DoldKan.Compatibility

Tools for compatibilities between Dold-Kan equivalences

The purpose of this file is to introduce tools which will enable the construction of the Dold-Kan equivalence SimplicialObject C ≌ ChainComplex C ℕ for a pseudoabelian category C from the equivalence Karoubi (SimplicialObject C) ≌ Karoubi (ChainComplex C ℕ) and the two equivalences simplicial_object C ≅ Karoubi (SimplicialObject C) and ChainComplex C ℕ ≅ Karoubi (ChainComplex C ℕ).

It is certainly possible to get an equivalence SimplicialObject C ≌ ChainComplex C ℕ using a compositions of the three equivalences above, but then neither the functor nor the inverse would have good definitional properties. For example, it would be better if the inverse functor of the equivalence was exactly the functor Γ₀ : SimplicialObject C ⥤ ChainComplex C ℕ which was constructed in FunctorGamma.lean.

In this file, given four categories A, A', B, B', equivalences eA : A ≅ A', eB : B ≅ B', e' : A' ≅ B', functors F : A ⥤ B', G : B ⥤ A equipped with certain compatibilities, we construct successive equivalences:

• equivalence₀ from A to B', which is the composition of eA and e'.
• equivalence₁ from A to B', with the same inverse functor as equivalence₀, but whose functor is F.
• equivalence₂ from A to B, which is the composition of equivalence₁ and the inverse of eB:
• equivalence from A to B, which has the same functor F ⋙ eB.inverse as equivalence₂, but whose inverse functor is G.

When extra assumptions are given, we shall also provide simplification lemmas for the unit and counit isomorphisms of equivalence.

(See Equivalence.lean for the general strategy of proof of the Dold-Kan equivalence.)

@[simp]
theorem AlgebraicTopology.DoldKan.Compatibility.equivalence₀_inverse {A : Type u_1} {A' : Type u_2} {B' : Type u_4} [] [] [] (eA : A A') (e' : A' B') :
().inverse = CategoryTheory.Functor.comp e'.inverse eA.inverse
@[simp]
theorem AlgebraicTopology.DoldKan.Compatibility.equivalence₀_unitIso_hom_app {A : Type u_1} {A' : Type u_2} {B' : Type u_4} [] [] [] (eA : A A') (e' : A' B') (X : A) :
().unitIso.hom.app X = CategoryTheory.CategoryStruct.comp (eA.unitIso.hom.app X) (eA.inverse.map (e'.unitIso.hom.app (eA.functor.obj X)))
@[simp]
theorem AlgebraicTopology.DoldKan.Compatibility.equivalence₀_functor {A : Type u_1} {A' : Type u_2} {B' : Type u_4} [] [] [] (eA : A A') (e' : A' B') :
().functor = CategoryTheory.Functor.comp eA.functor e'.functor
def AlgebraicTopology.DoldKan.Compatibility.equivalence₀ {A : Type u_1} {A' : Type u_2} {B' : Type u_4} [] [] [] (eA : A A') (e' : A' B') :
A B'

A basic equivalence A ≅ B' obtained by composing eA : A ≅ A' and e' : A' ≅ B'.

Instances For
@[simp]
theorem AlgebraicTopology.DoldKan.Compatibility.equivalence₁_functor {A : Type u_1} {A' : Type u_2} {B' : Type u_4} [] [] [] {eA : A A'} {e' : A' B'} {F : } (hF : CategoryTheory.Functor.comp eA.functor e'.functor F) :
().functor = F
def AlgebraicTopology.DoldKan.Compatibility.equivalence₁ {A : Type u_1} {A' : Type u_2} {B' : Type u_4} [] [] [] {eA : A A'} {e' : A' B'} {F : } (hF : CategoryTheory.Functor.comp eA.functor e'.functor F) :
A B'

An intermediate equivalence A ≅ B' whose functor is F and whose inverse is e'.inverse ⋙ eA.inverse.

Instances For
theorem AlgebraicTopology.DoldKan.Compatibility.equivalence₁_inverse {A : Type u_1} {A' : Type u_2} {B' : Type u_4} [] [] [] {eA : A A'} {e' : A' B'} {F : } (hF : CategoryTheory.Functor.comp eA.functor e'.functor F) :
().inverse = CategoryTheory.Functor.comp e'.inverse eA.inverse
@[simp]
theorem AlgebraicTopology.DoldKan.Compatibility.equivalence₁CounitIso_inv_app {A : Type u_1} {A' : Type u_2} {B' : Type u_4} [] [] [] {eA : A A'} {e' : A' B'} {F : } (hF : CategoryTheory.Functor.comp eA.functor e'.functor F) (X : B') :
= CategoryTheory.CategoryStruct.comp (e'.counitIso.inv.app X) (CategoryTheory.CategoryStruct.comp (e'.functor.map (eA.counitIso.inv.app (e'.inverse.obj X))) (hF.hom.app (eA.inverse.obj (e'.inverse.obj X))))
@[simp]
theorem AlgebraicTopology.DoldKan.Compatibility.equivalence₁CounitIso_hom_app {A : Type u_1} {A' : Type u_2} {B' : Type u_4} [] [] [] {eA : A A'} {e' : A' B'} {F : } (hF : CategoryTheory.Functor.comp eA.functor e'.functor F) (X : B') :
= CategoryTheory.CategoryStruct.comp (hF.inv.app (eA.inverse.obj (e'.inverse.obj X))) (CategoryTheory.CategoryStruct.comp (e'.functor.map (eA.counitIso.hom.app (e'.inverse.obj X))) (e'.counitIso.hom.app X))
def AlgebraicTopology.DoldKan.Compatibility.equivalence₁CounitIso {A : Type u_1} {A' : Type u_2} {B' : Type u_4} [] [] [] {eA : A A'} {e' : A' B'} {F : } (hF : CategoryTheory.Functor.comp eA.functor e'.functor F) :

The counit isomorphism of the equivalence equivalence₁ between A and B'.

Instances For
theorem AlgebraicTopology.DoldKan.Compatibility.equivalence₁CounitIso_eq {A : Type u_1} {A' : Type u_2} {B' : Type u_4} [] [] [] {eA : A A'} {e' : A' B'} {F : } (hF : CategoryTheory.Functor.comp eA.functor e'.functor F) :
@[simp]
theorem AlgebraicTopology.DoldKan.Compatibility.equivalence₁UnitIso_inv_app {A : Type u_1} {A' : Type u_2} {B' : Type u_4} [] [] [] {eA : A A'} {e' : A' B'} {F : } (hF : CategoryTheory.Functor.comp eA.functor e'.functor F) (X : A) :
= CategoryTheory.CategoryStruct.comp (eA.inverse.map (e'.inverse.map (hF.inv.app X))) (CategoryTheory.CategoryStruct.comp (eA.inverse.map (e'.unitIso.inv.app (eA.functor.obj X))) (eA.unitIso.inv.app X))
@[simp]
theorem AlgebraicTopology.DoldKan.Compatibility.equivalence₁UnitIso_hom_app {A : Type u_1} {A' : Type u_2} {B' : Type u_4} [] [] [] {eA : A A'} {e' : A' B'} {F : } (hF : CategoryTheory.Functor.comp eA.functor e'.functor F) (X : A) :
= CategoryTheory.CategoryStruct.comp (eA.unitIso.hom.app X) (CategoryTheory.CategoryStruct.comp (eA.inverse.map (e'.unitIso.hom.app (eA.functor.obj X))) (eA.inverse.map (e'.inverse.map (hF.hom.app X))))
def AlgebraicTopology.DoldKan.Compatibility.equivalence₁UnitIso {A : Type u_1} {A' : Type u_2} {B' : Type u_4} [] [] [] {eA : A A'} {e' : A' B'} {F : } (hF : CategoryTheory.Functor.comp eA.functor e'.functor F) :

The unit isomorphism of the equivalence equivalence₁ between A and B'.

Instances For
theorem AlgebraicTopology.DoldKan.Compatibility.equivalence₁UnitIso_eq {A : Type u_1} {A' : Type u_2} {B' : Type u_4} [] [] [] {eA : A A'} {e' : A' B'} {F : } (hF : CategoryTheory.Functor.comp eA.functor e'.functor F) :
@[simp]
theorem AlgebraicTopology.DoldKan.Compatibility.equivalence₂_functor {A : Type u_1} {A' : Type u_2} {B : Type u_3} {B' : Type u_4} [] [] [] [] {eA : A A'} (eB : B B') {e' : A' B'} {F : } (hF : CategoryTheory.Functor.comp eA.functor e'.functor F) :
().functor = CategoryTheory.Functor.comp F eB.inverse
def AlgebraicTopology.DoldKan.Compatibility.equivalence₂ {A : Type u_1} {A' : Type u_2} {B : Type u_3} {B' : Type u_4} [] [] [] [] {eA : A A'} (eB : B B') {e' : A' B'} {F : } (hF : CategoryTheory.Functor.comp eA.functor e'.functor F) :
A B

An intermediate equivalence A ≅ B obtained as the composition of equivalence₁ and the inverse of eB : B ≌ B'.

Instances For
theorem AlgebraicTopology.DoldKan.Compatibility.equivalence₂_inverse {A : Type u_1} {A' : Type u_2} {B : Type u_3} {B' : Type u_4} [] [] [] [] {eA : A A'} (eB : B B') {e' : A' B'} {F : } (hF : CategoryTheory.Functor.comp eA.functor e'.functor F) :
().inverse = CategoryTheory.Functor.comp eB.functor (CategoryTheory.Functor.comp e'.inverse eA.inverse)
@[simp]
theorem AlgebraicTopology.DoldKan.Compatibility.equivalence₂CounitIso_hom_app {A : Type u_1} {A' : Type u_2} {B : Type u_3} {B' : Type u_4} [] [] [] [] {eA : A A'} (eB : B B') {e' : A' B'} {F : } (hF : CategoryTheory.Functor.comp eA.functor e'.functor F) (X : B) :
.app X = CategoryTheory.CategoryStruct.comp (eB.inverse.map (hF.inv.app (eA.inverse.obj (e'.inverse.obj (eB.functor.obj X))))) (CategoryTheory.CategoryStruct.comp (eB.inverse.map (e'.functor.map (eA.counitIso.hom.app (e'.inverse.obj (eB.functor.obj X))))) (CategoryTheory.CategoryStruct.comp (eB.inverse.map (e'.counitIso.hom.app (eB.functor.obj X))) (eB.unitIso.inv.app X)))
@[simp]
theorem AlgebraicTopology.DoldKan.Compatibility.equivalence₂CounitIso_inv_app {A : Type u_1} {A' : Type u_2} {B : Type u_3} {B' : Type u_4} [] [] [] [] {eA : A A'} (eB : B B') {e' : A' B'} {F : } (hF : CategoryTheory.Functor.comp eA.functor e'.functor F) (X : B) :
.app X = CategoryTheory.CategoryStruct.comp (eB.unitIso.hom.app X) (CategoryTheory.CategoryStruct.comp (eB.inverse.map (e'.counitIso.inv.app (eB.functor.obj X))) (CategoryTheory.CategoryStruct.comp (eB.inverse.map (e'.functor.map (eA.counitIso.inv.app (e'.inverse.obj (eB.functor.obj X))))) (eB.inverse.map (hF.hom.app (eA.inverse.obj (e'.inverse.obj (eB.functor.obj X)))))))
def AlgebraicTopology.DoldKan.Compatibility.equivalence₂CounitIso {A : Type u_1} {A' : Type u_2} {B : Type u_3} {B' : Type u_4} [] [] [] [] {eA : A A'} (eB : B B') {e' : A' B'} {F : } (hF : CategoryTheory.Functor.comp eA.functor e'.functor F) :

The counit isomorphism of the equivalence equivalence₂ between A and B.

Instances For
theorem AlgebraicTopology.DoldKan.Compatibility.equivalence₂CounitIso_eq {A : Type u_1} {A' : Type u_2} {B : Type u_3} {B' : Type u_4} [] [] [] [] {eA : A A'} (eB : B B') {e' : A' B'} {F : } (hF : CategoryTheory.Functor.comp eA.functor e'.functor F) :
@[simp]
theorem AlgebraicTopology.DoldKan.Compatibility.equivalence₂UnitIso_inv_app {A : Type u_1} {A' : Type u_2} {B : Type u_3} {B' : Type u_4} [] [] [] [] {eA : A A'} (eB : B B') {e' : A' B'} {F : } (hF : CategoryTheory.Functor.comp eA.functor e'.functor F) (X : A) :
.app X = CategoryTheory.CategoryStruct.comp (eA.inverse.map (e'.inverse.map (eB.counitIso.hom.app (F.obj X)))) (CategoryTheory.CategoryStruct.comp (eA.inverse.map (e'.inverse.map (hF.inv.app X))) (CategoryTheory.CategoryStruct.comp (eA.inverse.map (e'.unitIso.inv.app (eA.functor.obj X))) (eA.unitIso.inv.app X)))
@[simp]
theorem AlgebraicTopology.DoldKan.Compatibility.equivalence₂UnitIso_hom_app {A : Type u_1} {A' : Type u_2} {B : Type u_3} {B' : Type u_4} [] [] [] [] {eA : A A'} (eB : B B') {e' : A' B'} {F : } (hF : CategoryTheory.Functor.comp eA.functor e'.functor F) (X : A) :
.app X = CategoryTheory.CategoryStruct.comp (eA.unitIso.hom.app X) (CategoryTheory.CategoryStruct.comp (eA.inverse.map (e'.unitIso.hom.app (eA.functor.obj X))) (CategoryTheory.CategoryStruct.comp (eA.inverse.map (e'.inverse.map (hF.hom.app X))) (eA.inverse.map (e'.inverse.map (eB.counitIso.inv.app (F.obj X))))))
def AlgebraicTopology.DoldKan.Compatibility.equivalence₂UnitIso {A : Type u_1} {A' : Type u_2} {B : Type u_3} {B' : Type u_4} [] [] [] [] {eA : A A'} (eB : B B') {e' : A' B'} {F : } (hF : CategoryTheory.Functor.comp eA.functor e'.functor F) :

The unit isomorphism of the equivalence equivalence₂ between A and B.

Instances For
theorem AlgebraicTopology.DoldKan.Compatibility.equivalence₂UnitIso_eq {A : Type u_1} {A' : Type u_2} {B : Type u_3} {B' : Type u_4} [] [] [] [] {eA : A A'} (eB : B B') {e' : A' B'} {F : } (hF : CategoryTheory.Functor.comp eA.functor e'.functor F) :
@[simp]
theorem AlgebraicTopology.DoldKan.Compatibility.equivalence_inverse {A : Type u_1} {A' : Type u_2} {B : Type u_3} {B' : Type u_4} [] [] [] [] {eA : A A'} {eB : B B'} {e' : A' B'} {F : } (hF : CategoryTheory.Functor.comp eA.functor e'.functor F) {G : } (hG : CategoryTheory.Functor.comp eB.functor e'.inverse CategoryTheory.Functor.comp G eA.functor) :
().inverse = ().functor
def AlgebraicTopology.DoldKan.Compatibility.equivalence {A : Type u_1} {A' : Type u_2} {B : Type u_3} {B' : Type u_4} [] [] [] [] {eA : A A'} {eB : B B'} {e' : A' B'} {F : } (hF : CategoryTheory.Functor.comp eA.functor e'.functor F) {G : } (hG : CategoryTheory.Functor.comp eB.functor e'.inverse CategoryTheory.Functor.comp G eA.functor) :
A B

The equivalence A ≅ B whose functor is F ⋙ eB.inverse and whose inverse is G : B ≅ A.

Instances For
theorem AlgebraicTopology.DoldKan.Compatibility.equivalence_functor {A : Type u_1} {A' : Type u_2} {B : Type u_3} {B' : Type u_4} [] [] [] [] {eA : A A'} {eB : B B'} {e' : A' B'} {F : } (hF : CategoryTheory.Functor.comp eA.functor e'.functor F) {G : } (hG : CategoryTheory.Functor.comp eB.functor e'.inverse CategoryTheory.Functor.comp G eA.functor) :
().functor = CategoryTheory.Functor.comp F eB.inverse
@[simp]
theorem AlgebraicTopology.DoldKan.Compatibility.τ₀_hom_app {A' : Type u_2} {B : Type u_3} {B' : Type u_4} [] [] [] {eB : B B'} {e' : A' B'} (X : B) :
AlgebraicTopology.DoldKan.Compatibility.τ₀.hom.app X = e'.counitIso.hom.app (eB.functor.obj X)
def AlgebraicTopology.DoldKan.Compatibility.τ₀ {A' : Type u_2} {B : Type u_3} {B' : Type u_4} [] [] [] {eB : B B'} {e' : A' B'} :
CategoryTheory.Functor.comp eB.functor (CategoryTheory.Functor.comp e'.inverse e'.functor) eB.functor

The isomorphism eB.functor ⋙ e'.inverse ⋙ e'.functor ≅ eB.functor deduced from the counit isomorphism of e'.

Instances For
@[simp]
theorem AlgebraicTopology.DoldKan.Compatibility.τ₁_hom_app {A : Type u_1} {A' : Type u_2} {B : Type u_3} {B' : Type u_4} [] [] [] [] {eA : A A'} {eB : B B'} {e' : A' B'} {F : } (hF : CategoryTheory.Functor.comp eA.functor e'.functor F) {G : } (hG : CategoryTheory.Functor.comp eB.functor e'.inverse CategoryTheory.Functor.comp G eA.functor) (η : eB.functor) (X : B) :
().hom.app X = CategoryTheory.CategoryStruct.comp (e'.functor.map (hG.hom.app X)) (CategoryTheory.CategoryStruct.comp (hF.hom.app (G.obj X)) (η.hom.app X))
def AlgebraicTopology.DoldKan.Compatibility.τ₁ {A : Type u_1} {A' : Type u_2} {B : Type u_3} {B' : Type u_4} [] [] [] [] {eA : A A'} {eB : B B'} {e' : A' B'} {F : } (hF : CategoryTheory.Functor.comp eA.functor e'.functor F) {G : } (hG : CategoryTheory.Functor.comp eB.functor e'.inverse CategoryTheory.Functor.comp G eA.functor) (η : eB.functor) :
CategoryTheory.Functor.comp eB.functor (CategoryTheory.Functor.comp e'.inverse e'.functor) eB.functor

The isomorphism eB.functor ⋙ e'.inverse ⋙ e'.functor ≅ eB.functor deduced from the isomorphisms hF : eA.functor ⋙ e'.functor ≅ F, hG : eB.functor ⋙ e'.inverse ≅ G ⋙ eA.functor and the datum of an isomorphism η : G ⋙ F ≅ eB.functor.

Instances For
@[simp]
theorem AlgebraicTopology.DoldKan.Compatibility.equivalenceCounitIso_inv_app {A : Type u_1} {B : Type u_3} {B' : Type u_4} [] [] [] {eB : B B'} {F : } {G : } (η : eB.functor) (X : B) :
= CategoryTheory.CategoryStruct.comp (eB.unitIso.hom.app X) (eB.inverse.map (η.inv.app X))
@[simp]
theorem AlgebraicTopology.DoldKan.Compatibility.equivalenceCounitIso_hom_app {A : Type u_1} {B : Type u_3} {B' : Type u_4} [] [] [] {eB : B B'} {F : } {G : } (η : eB.functor) (X : B) :
= CategoryTheory.CategoryStruct.comp (eB.inverse.map (η.hom.app X)) (eB.unitIso.inv.app X)
def AlgebraicTopology.DoldKan.Compatibility.equivalenceCounitIso {A : Type u_1} {B : Type u_3} {B' : Type u_4} [] [] [] {eB : B B'} {F : } {G : } (η : eB.functor) :

The counit isomorphism of equivalence.

Instances For
theorem AlgebraicTopology.DoldKan.Compatibility.equivalenceCounitIso_eq {A : Type u_1} {A' : Type u_2} {B : Type u_3} {B' : Type u_4} [] [] [] [] {eA : A A'} {eB : B B'} {e' : A' B'} {F : } {hF : CategoryTheory.Functor.comp eA.functor e'.functor F} {G : } {hG : CategoryTheory.Functor.comp eB.functor e'.inverse CategoryTheory.Functor.comp G eA.functor} {η : eB.functor} (hη : AlgebraicTopology.DoldKan.Compatibility.τ₀ = ) :
@[simp]
theorem AlgebraicTopology.DoldKan.Compatibility.υ_hom_app {A : Type u_1} {A' : Type u_2} {B' : Type u_4} [] [] [] {eA : A A'} {e' : A' B'} {F : } (hF : CategoryTheory.Functor.comp eA.functor e'.functor F) (X : A) :
.app X = CategoryTheory.CategoryStruct.comp (e'.unitIso.hom.app (eA.functor.obj X)) (e'.inverse.map (hF.hom.app X))
@[simp]
theorem AlgebraicTopology.DoldKan.Compatibility.υ_inv_app {A : Type u_1} {A' : Type u_2} {B' : Type u_4} [] [] [] {eA : A A'} {e' : A' B'} {F : } (hF : CategoryTheory.Functor.comp eA.functor e'.functor F) (X : A) :
.app X = CategoryTheory.CategoryStruct.comp (e'.inverse.map (hF.inv.app X)) (e'.unitIso.inv.app (eA.functor.obj X))
def AlgebraicTopology.DoldKan.Compatibility.υ {A : Type u_1} {A' : Type u_2} {B' : Type u_4} [] [] [] {eA : A A'} {e' : A' B'} {F : } (hF : CategoryTheory.Functor.comp eA.functor e'.functor F) :
eA.functor CategoryTheory.Functor.comp F e'.inverse

The isomorphism eA.functor ≅ F ⋙ e'.inverse deduced from the unit isomorphism of e' and the isomorphism hF : eA.functor ⋙ e'.functor ≅ F.

Instances For
@[simp]
theorem AlgebraicTopology.DoldKan.Compatibility.equivalenceUnitIso_hom_app {A : Type u_1} {A' : Type u_2} {B : Type u_3} {B' : Type u_4} [] [] [] [] {eA : A A'} {eB : B B'} {e' : A' B'} {F : } {G : } (hG : CategoryTheory.Functor.comp eB.functor e'.inverse CategoryTheory.Functor.comp G eA.functor) (ε : eA.functor CategoryTheory.Functor.comp F e'.inverse) (X : A) :
.app X = CategoryTheory.CategoryStruct.comp (eA.unitIso.hom.app X) (CategoryTheory.CategoryStruct.comp (eA.inverse.map (ε.hom.app X)) (CategoryTheory.CategoryStruct.comp (eA.inverse.map (e'.inverse.map (eB.counitIso.inv.app (F.obj X)))) (CategoryTheory.CategoryStruct.comp (eA.inverse.map (hG.hom.app (eB.inverse.obj (F.obj X)))) (eA.unitIso.inv.app (G.obj (eB.inverse.obj (F.obj X)))))))
@[simp]
theorem AlgebraicTopology.DoldKan.Compatibility.equivalenceUnitIso_inv_app {A : Type u_1} {A' : Type u_2} {B : Type u_3} {B' : Type u_4} [] [] [] [] {eA : A A'} {eB : B B'} {e' : A' B'} {F : } {G : } (hG : CategoryTheory.Functor.comp eB.functor e'.inverse CategoryTheory.Functor.comp G eA.functor) (ε : eA.functor CategoryTheory.Functor.comp F e'.inverse) (X : A) :
.app X = CategoryTheory.CategoryStruct.comp (eA.unitIso.hom.app (G.obj (eB.inverse.obj (F.obj X)))) (CategoryTheory.CategoryStruct.comp (eA.inverse.map (hG.inv.app (eB.inverse.obj (F.obj X)))) (CategoryTheory.CategoryStruct.comp (eA.inverse.map (e'.inverse.map (eB.counitIso.hom.app (F.obj X)))) (CategoryTheory.CategoryStruct.comp (eA.inverse.map (ε.inv.app X)) (eA.unitIso.inv.app X))))
def AlgebraicTopology.DoldKan.Compatibility.equivalenceUnitIso {A : Type u_1} {A' : Type u_2} {B : Type u_3} {B' : Type u_4} [] [] [] [] {eA : A A'} {eB : B B'} {e' : A' B'} {F : } {G : } (hG : CategoryTheory.Functor.comp eB.functor e'.inverse CategoryTheory.Functor.comp G eA.functor) (ε : eA.functor CategoryTheory.Functor.comp F e'.inverse) :

The unit isomorphism of equivalence.

Instances For
theorem AlgebraicTopology.DoldKan.Compatibility.equivalenceUnitIso_eq {A : Type u_1} {A' : Type u_2} {B : Type u_3} {B' : Type u_4} [] [] [] [] {eA : A A'} {eB : B B'} {e' : A' B'} {F : } {hF : CategoryTheory.Functor.comp eA.functor e'.functor F} {G : } {hG : CategoryTheory.Functor.comp eB.functor e'.inverse CategoryTheory.Functor.comp G eA.functor} {ε : eA.functor CategoryTheory.Functor.comp F e'.inverse} (hε : ) :