File: Mathlib/AlgebraicTopology/DoldKan/Compatibility.lean

full_name: AlgebraicTopology.DoldKan.Compatibility.equivalence₀
code: /-- A basic equivalence `A ≅ B'` obtained by composing `eA : A ≅ A'` and `e' : A' ≅ B'`. -/
@[simps! functor inverse unitIso_hom_app]
def equivalence₀ : A ≌ B' 
goal: A ≌ B'

full_name: AlgebraicTopology.DoldKan.Compatibility.equivalence₀_unitIso_hom_app
code: /-- A basic equivalence `A ≅ B'` obtained by composing `eA : A ≅ A'` and `e' : A' ≅ B'`. -/
@[simps! functor inverse unitIso_hom_app]
def equivalence₀ : A ≌ B' 
goal: (AlgebraicTopology.DoldKan.Compatibility.equivalence₀ eA e').unitIso.hom.app X =
  eA.unitIso.hom.app X ≫ eA.inverse.map (e'.unitIso.hom.app (eA.functor.obj X))

full_name: AlgebraicTopology.DoldKan.Compatibility.equivalence₀_functor
code: /-- A basic equivalence `A ≅ B'` obtained by composing `eA : A ≅ A'` and `e' : A' ≅ B'`. -/
@[simps! functor inverse unitIso_hom_app]
def equivalence₀ : A ≌ B' 
goal: (AlgebraicTopology.DoldKan.Compatibility.equivalence₀ eA e').functor = eA.functor ⋙ e'.functor

full_name: AlgebraicTopology.DoldKan.Compatibility.equivalence₀_inverse
code: /-- A basic equivalence `A ≅ B'` obtained by composing `eA : A ≅ A'` and `e' : A' ≅ B'`. -/
@[simps! functor inverse unitIso_hom_app]
def equivalence₀ : A ≌ B' 
goal: (AlgebraicTopology.DoldKan.Compatibility.equivalence₀ eA e').inverse = e'.inverse ⋙ eA.inverse

full_name: AlgebraicTopology.DoldKan.Compatibility.equivalence₁_functor
code: /-- An intermediate equivalence `A ≅ B'` whose functor is `F` and whose inverse is
`e'.inverse ⋙ eA.inverse`. -/
@[simps! functor]
def equivalence₁ : A ≌ B' 
goal: (AlgebraicTopology.DoldKan.Compatibility.equivalence₁ hF).functor = F

full_name: AlgebraicTopology.DoldKan.Compatibility.equivalence₁
code: /-- An intermediate equivalence `A ≅ B'` whose functor is `F` and whose inverse is
`e'.inverse ⋙ eA.inverse`. -/
@[simps! functor]
def equivalence₁ : A ≌ B' 
goal: A ≌ B'

full_name: AlgebraicTopology.DoldKan.Compatibility.equivalence₁_inverse
code: theorem equivalence₁_inverse : (equivalence₁ hF).inverse = e'.inverse ⋙ eA.inverse 
goal: (AlgebraicTopology.DoldKan.Compatibility.equivalence₁ hF).inverse = e'.inverse ⋙ eA.inverse

full_name: AlgebraicTopology.DoldKan.Compatibility.equivalence₁CounitIso_inv_app
code: /-- The counit isomorphism of the equivalence `equivalence₁` between `A` and `B'`. -/
@[simps!]
def equivalence₁CounitIso : (e'.inverse ⋙ eA.inverse) ⋙ F ≅ 𝟭 B' 
goal: (AlgebraicTopology.DoldKan.Compatibility.equivalence₁CounitIso hF).inv.app X =
  e'.counitIso.inv.app X ≫
    e'.functor.map (eA.counitIso.inv.app (e'.inverse.obj X)) ≫ hF.hom.app (eA.inverse.obj (e'.inverse.obj X))

full_name: AlgebraicTopology.DoldKan.Compatibility.equivalence₁CounitIso
code: /-- The counit isomorphism of the equivalence `equivalence₁` between `A` and `B'`. -/
@[simps!]
def equivalence₁CounitIso : (e'.inverse ⋙ eA.inverse) ⋙ F ≅ 𝟭 B' 
goal: (e'.inverse ⋙ eA.inverse) ⋙ F ≅ 𝟭 B'

full_name: AlgebraicTopology.DoldKan.Compatibility.equivalence₁CounitIso_hom_app
code: /-- The counit isomorphism of the equivalence `equivalence₁` between `A` and `B'`. -/
@[simps!]
def equivalence₁CounitIso : (e'.inverse ⋙ eA.inverse) ⋙ F ≅ 𝟭 B' 
goal: (AlgebraicTopology.DoldKan.Compatibility.equivalence₁CounitIso hF).hom.app X =
  hF.inv.app (eA.inverse.obj (e'.inverse.obj X)) ≫
    e'.functor.map (eA.counitIso.hom.app (e'.inverse.obj X)) ≫ e'.counitIso.hom.app X

full_name: AlgebraicTopology.DoldKan.Compatibility.equivalence₁CounitIso_eq
code: theorem equivalence₁CounitIso_eq : (equivalence₁ hF).counitIso = equivalence₁CounitIso hF 
goal: (AlgebraicTopology.DoldKan.Compatibility.equivalence₁ hF).counitIso =
  AlgebraicTopology.DoldKan.Compatibility.equivalence₁CounitIso hF

full_name: AlgebraicTopology.DoldKan.Compatibility.equivalence₁UnitIso_inv_app
code: /-- The unit isomorphism of the equivalence `equivalence₁` between `A` and `B'`. -/
@[simps!]
def equivalence₁UnitIso : 𝟭 A ≅ F ⋙ e'.inverse ⋙ eA.inverse 
goal: (AlgebraicTopology.DoldKan.Compatibility.equivalence₁UnitIso hF).inv.app X =
  eA.inverse.map (e'.inverse.map (hF.inv.app X)) ≫
    eA.inverse.map (e'.unitIso.inv.app (eA.functor.obj X)) ≫ eA.unitIso.inv.app X

full_name: AlgebraicTopology.DoldKan.Compatibility.equivalence₁UnitIso_hom_app
code: /-- The unit isomorphism of the equivalence `equivalence₁` between `A` and `B'`. -/
@[simps!]
def equivalence₁UnitIso : 𝟭 A ≅ F ⋙ e'.inverse ⋙ eA.inverse 
goal: (AlgebraicTopology.DoldKan.Compatibility.equivalence₁UnitIso hF).hom.app X =
  eA.unitIso.hom.app X ≫
    eA.inverse.map (e'.unitIso.hom.app (eA.functor.obj X)) ≫ eA.inverse.map (e'.inverse.map (hF.hom.app X))

full_name: AlgebraicTopology.DoldKan.Compatibility.equivalence₁UnitIso
code: /-- The unit isomorphism of the equivalence `equivalence₁` between `A` and `B'`. -/
@[simps!]
def equivalence₁UnitIso : 𝟭 A ≅ F ⋙ e'.inverse ⋙ eA.inverse 
goal: 𝟭 A ≅ F ⋙ e'.inverse ⋙ eA.inverse

full_name: AlgebraicTopology.DoldKan.Compatibility.equivalence₁UnitIso_eq
code: theorem equivalence₁UnitIso_eq : (equivalence₁ hF).unitIso = equivalence₁UnitIso hF 
goal: (AlgebraicTopology.DoldKan.Compatibility.equivalence₁ hF).unitIso =
  AlgebraicTopology.DoldKan.Compatibility.equivalence₁UnitIso hF

full_name: AlgebraicTopology.DoldKan.Compatibility.equivalence₂_functor
code: /-- An intermediate equivalence `A ≅ B` obtained as the composition of `equivalence₁` and
the inverse of `eB : B ≌ B'`. -/
@[simps! functor]
def equivalence₂ : A ≌ B 
goal: (AlgebraicTopology.DoldKan.Compatibility.equivalence₂ eB hF).functor = F ⋙ eB.inverse

full_name: AlgebraicTopology.DoldKan.Compatibility.equivalence₂
code: /-- An intermediate equivalence `A ≅ B` obtained as the composition of `equivalence₁` and
the inverse of `eB : B ≌ B'`. -/
@[simps! functor]
def equivalence₂ : A ≌ B 
goal: A ≌ B

full_name: AlgebraicTopology.DoldKan.Compatibility.equivalence₂_inverse
code: theorem equivalence₂_inverse :
    (equivalence₂ eB hF).inverse = eB.functor ⋙ e'.inverse ⋙ eA.inverse 
goal: (AlgebraicTopology.DoldKan.Compatibility.equivalence₂ eB hF).inverse = eB.functor ⋙ e'.inverse ⋙ eA.inverse

full_name: AlgebraicTopology.DoldKan.Compatibility.equivalence₂CounitIso_hom_app
code: /-- The counit isomorphism of the equivalence `equivalence₂` between `A` and `B`. -/
@[simps!]
def equivalence₂CounitIso : (eB.functor ⋙ e'.inverse ⋙ eA.inverse) ⋙ F ⋙ eB.inverse ≅ 𝟭 B 
goal: (AlgebraicTopology.DoldKan.Compatibility.equivalence₂CounitIso eB hF).hom.app X =
  eB.inverse.map (hF.inv.app (eA.inverse.obj (e'.inverse.obj (eB.functor.obj X)))) ≫
    eB.inverse.map (e'.functor.map (eA.counitIso.hom.app (e'.inverse.obj (eB.functor.obj X)))) ≫
      eB.inverse.map (e'.counitIso.hom.app (eB.functor.obj X)) ≫ eB.unitIso.inv.app X

full_name: AlgebraicTopology.DoldKan.Compatibility.equivalence₂CounitIso
code: /-- The counit isomorphism of the equivalence `equivalence₂` between `A` and `B`. -/
@[simps!]
def equivalence₂CounitIso : (eB.functor ⋙ e'.inverse ⋙ eA.inverse) ⋙ F ⋙ eB.inverse ≅ 𝟭 B 
goal: (eB.functor ⋙ e'.inverse ⋙ eA.inverse) ⋙ F ⋙ eB.inverse ≅ 𝟭 B

full_name: AlgebraicTopology.DoldKan.Compatibility.equivalence₂CounitIso_inv_app
code: /-- The counit isomorphism of the equivalence `equivalence₂` between `A` and `B`. -/
@[simps!]
def equivalence₂CounitIso : (eB.functor ⋙ e'.inverse ⋙ eA.inverse) ⋙ F ⋙ eB.inverse ≅ 𝟭 B 
goal: (AlgebraicTopology.DoldKan.Compatibility.equivalence₂CounitIso eB hF).inv.app X =
  eB.unitIso.hom.app X ≫
    eB.inverse.map (e'.counitIso.inv.app (eB.functor.obj X)) ≫
      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))))

full_name: AlgebraicTopology.DoldKan.Compatibility.equivalence₂CounitIso_eq
code: theorem equivalence₂CounitIso_eq :
    (equivalence₂ eB hF).counitIso = equivalence₂CounitIso eB hF 
goal: (AlgebraicTopology.DoldKan.Compatibility.equivalence₂ eB hF).counitIso =
  AlgebraicTopology.DoldKan.Compatibility.equivalence₂CounitIso eB hF

full_name: AlgebraicTopology.DoldKan.Compatibility.equivalence₂UnitIso_hom_app
code: /-- The unit isomorphism of the equivalence `equivalence₂` between `A` and `B`. -/
@[simps!]
def equivalence₂UnitIso : 𝟭 A ≅ (F ⋙ eB.inverse) ⋙ eB.functor ⋙ e'.inverse ⋙ eA.inverse 
goal: (AlgebraicTopology.DoldKan.Compatibility.equivalence₂UnitIso eB hF).hom.app X =
  eA.unitIso.hom.app X ≫
    eA.inverse.map (e'.unitIso.hom.app (eA.functor.obj X)) ≫
      eA.inverse.map (e'.inverse.map (hF.hom.app X)) ≫ eA.inverse.map (e'.inverse.map (eB.counitIso.inv.app (F.obj X)))

full_name: AlgebraicTopology.DoldKan.Compatibility.equivalence₂UnitIso
code: /-- The unit isomorphism of the equivalence `equivalence₂` between `A` and `B`. -/
@[simps!]
def equivalence₂UnitIso : 𝟭 A ≅ (F ⋙ eB.inverse) ⋙ eB.functor ⋙ e'.inverse ⋙ eA.inverse 
goal: 𝟭 A ≅ (F ⋙ eB.inverse) ⋙ eB.functor ⋙ e'.inverse ⋙ eA.inverse

full_name: AlgebraicTopology.DoldKan.Compatibility.equivalence₂UnitIso_inv_app
code: /-- The unit isomorphism of the equivalence `equivalence₂` between `A` and `B`. -/
@[simps!]
def equivalence₂UnitIso : 𝟭 A ≅ (F ⋙ eB.inverse) ⋙ eB.functor ⋙ e'.inverse ⋙ eA.inverse 
goal: (AlgebraicTopology.DoldKan.Compatibility.equivalence₂UnitIso eB hF).inv.app X =
  eA.inverse.map (e'.inverse.map (eB.counitIso.hom.app (F.obj X))) ≫
    eA.inverse.map (e'.inverse.map (hF.inv.app X)) ≫
      eA.inverse.map (e'.unitIso.inv.app (eA.functor.obj X)) ≫ eA.unitIso.inv.app X

full_name: AlgebraicTopology.DoldKan.Compatibility.equivalence₂UnitIso_eq
code: theorem equivalence₂UnitIso_eq : (equivalence₂ eB hF).unitIso = equivalence₂UnitIso eB hF 
goal: (AlgebraicTopology.DoldKan.Compatibility.equivalence₂ eB hF).unitIso =
  AlgebraicTopology.DoldKan.Compatibility.equivalence₂UnitIso eB hF

full_name: AlgebraicTopology.DoldKan.Compatibility.equivalence
code: /-- The equivalence `A ≅ B` whose functor is `F ⋙ eB.inverse` and
whose inverse is `G : B ≅ A`. -/
@[simps! inverse]
def equivalence : A ≌ B 
goal: A ≌ B

full_name: AlgebraicTopology.DoldKan.Compatibility.equivalence_inverse
code: /-- The equivalence `A ≅ B` whose functor is `F ⋙ eB.inverse` and
whose inverse is `G : B ≅ A`. -/
@[simps! inverse]
def equivalence : A ≌ B 
goal: (AlgebraicTopology.DoldKan.Compatibility.equivalence hF hG).inverse = G

full_name: AlgebraicTopology.DoldKan.Compatibility.equivalence_functor
code: theorem equivalence_functor : (equivalence hF hG).functor = F ⋙ eB.inverse 
goal: (AlgebraicTopology.DoldKan.Compatibility.equivalence hF hG).functor = F ⋙ eB.inverse

full_name: AlgebraicTopology.DoldKan.Compatibility.τ₀
code: /-- The isomorphism `eB.functor ⋙ e'.inverse ⋙ e'.functor ≅ eB.functor` deduced
from the counit isomorphism of `e'`. -/
@[simps! hom_app]
def τ₀ : eB.functor ⋙ e'.inverse ⋙ e'.functor ≅ eB.functor 
goal: eB.functor ⋙ e'.inverse ⋙ e'.functor ≅ eB.functor

full_name: AlgebraicTopology.DoldKan.Compatibility.τ₀_hom_app
code: /-- The isomorphism `eB.functor ⋙ e'.inverse ⋙ e'.functor ≅ eB.functor` deduced
from the counit isomorphism of `e'`. -/
@[simps! hom_app]
def τ₀ : eB.functor ⋙ e'.inverse ⋙ e'.functor ≅ eB.functor 
goal: AlgebraicTopology.DoldKan.Compatibility.τ₀.hom.app X = e'.counitIso.hom.app (eB.functor.obj X)

full_name: AlgebraicTopology.DoldKan.Compatibility.τ₁_hom_app
code: /-- 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`. -/
@[simps! hom_app]
def τ₁ (η : G ⋙ F ≅ eB.functor) : eB.functor ⋙ e'.inverse ⋙ e'.functor ≅ eB.functor 
goal: (AlgebraicTopology.DoldKan.Compatibility.τ₁ hF hG η).hom.app X =
  e'.functor.map (hG.hom.app X) ≫ hF.hom.app (G.obj X) ≫ η.hom.app X

full_name: AlgebraicTopology.DoldKan.Compatibility.τ₁
code: /-- 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`. -/
@[simps! hom_app]
def τ₁ (η : G ⋙ F ≅ eB.functor) : eB.functor ⋙ e'.inverse ⋙ e'.functor ≅ eB.functor 
goal: eB.functor ⋙ e'.inverse ⋙ e'.functor ≅ eB.functor

full_name: AlgebraicTopology.DoldKan.Compatibility.equivalenceCounitIso_hom_app
code: /-- The counit isomorphism of `equivalence`. -/
@[simps!]
def equivalenceCounitIso : G ⋙ F ⋙ eB.inverse ≅ 𝟭 B 
goal: (AlgebraicTopology.DoldKan.Compatibility.equivalenceCounitIso η).hom.app X =
  eB.inverse.map (η.hom.app X) ≫ eB.unitIso.inv.app X

full_name: AlgebraicTopology.DoldKan.Compatibility.equivalenceCounitIso
code: /-- The counit isomorphism of `equivalence`. -/
@[simps!]
def equivalenceCounitIso : G ⋙ F ⋙ eB.inverse ≅ 𝟭 B 
goal: G ⋙ F ⋙ eB.inverse ≅ 𝟭 B

full_name: AlgebraicTopology.DoldKan.Compatibility.equivalenceCounitIso_inv_app
code: /-- The counit isomorphism of `equivalence`. -/
@[simps!]
def equivalenceCounitIso : G ⋙ F ⋙ eB.inverse ≅ 𝟭 B 
goal: (AlgebraicTopology.DoldKan.Compatibility.equivalenceCounitIso η).inv.app X =
  eB.unitIso.hom.app X ≫ eB.inverse.map (η.inv.app X)

full_name: AlgebraicTopology.DoldKan.Compatibility.equivalenceCounitIso_eq
code: theorem equivalenceCounitIso_eq (hη : τ₀ = τ₁ hF hG η) :
    (equivalence hF hG).counitIso = equivalenceCounitIso η 
goal: (AlgebraicTopology.DoldKan.Compatibility.equivalence hF hG).counitIso =
  AlgebraicTopology.DoldKan.Compatibility.equivalenceCounitIso η

full_name: AlgebraicTopology.DoldKan.Compatibility.υ
code: /-- The isomorphism `eA.functor ≅ F ⋙ e'.inverse` deduced from the
unit isomorphism of `e'` and the isomorphism `hF : eA.functor ⋙ e'.functor ≅ F`. -/
@[simps!]
def υ : eA.functor ≅ F ⋙ e'.inverse 
goal: eA.functor ≅ F ⋙ e'.inverse

full_name: AlgebraicTopology.DoldKan.Compatibility.υ_inv_app
code: /-- The isomorphism `eA.functor ≅ F ⋙ e'.inverse` deduced from the
unit isomorphism of `e'` and the isomorphism `hF : eA.functor ⋙ e'.functor ≅ F`. -/
@[simps!]
def υ : eA.functor ≅ F ⋙ e'.inverse 
goal: (AlgebraicTopology.DoldKan.Compatibility.υ hF).inv.app X =
  e'.inverse.map (hF.inv.app X) ≫ e'.unitIso.inv.app (eA.functor.obj X)

full_name: AlgebraicTopology.DoldKan.Compatibility.υ_hom_app
code: /-- The isomorphism `eA.functor ≅ F ⋙ e'.inverse` deduced from the
unit isomorphism of `e'` and the isomorphism `hF : eA.functor ⋙ e'.functor ≅ F`. -/
@[simps!]
def υ : eA.functor ≅ F ⋙ e'.inverse 
goal: (AlgebraicTopology.DoldKan.Compatibility.υ hF).hom.app X =
  e'.unitIso.hom.app (eA.functor.obj X) ≫ e'.inverse.map (hF.hom.app X)

full_name: AlgebraicTopology.DoldKan.Compatibility.equivalenceUnitIso
code: /-- The unit isomorphism of `equivalence`. -/
@[simps!]
def equivalenceUnitIso : 𝟭 A ≅ (F ⋙ eB.inverse) ⋙ G 
goal: 𝟭 A ≅ (F ⋙ eB.inverse) ⋙ G

full_name: AlgebraicTopology.DoldKan.Compatibility.equivalenceUnitIso_inv_app
code: /-- The unit isomorphism of `equivalence`. -/
@[simps!]
def equivalenceUnitIso : 𝟭 A ≅ (F ⋙ eB.inverse) ⋙ G 
goal: (AlgebraicTopology.DoldKan.Compatibility.equivalenceUnitIso hG ε).inv.app X =
  eA.unitIso.hom.app (G.obj (eB.inverse.obj (F.obj X))) ≫
    eA.inverse.map (hG.inv.app (eB.inverse.obj (F.obj X))) ≫
      eA.inverse.map (e'.inverse.map (eB.counitIso.hom.app (F.obj X))) ≫
        eA.inverse.map (ε.inv.app X) ≫ eA.unitIso.inv.app X

full_name: AlgebraicTopology.DoldKan.Compatibility.equivalenceUnitIso_hom_app
code: /-- The unit isomorphism of `equivalence`. -/
@[simps!]
def equivalenceUnitIso : 𝟭 A ≅ (F ⋙ eB.inverse) ⋙ G 
goal: (AlgebraicTopology.DoldKan.Compatibility.equivalenceUnitIso hG ε).hom.app X =
  eA.unitIso.hom.app X ≫
    eA.inverse.map (ε.hom.app X) ≫
      eA.inverse.map (e'.inverse.map (eB.counitIso.inv.app (F.obj X))) ≫
        eA.inverse.map (hG.hom.app (eB.inverse.obj (F.obj X))) ≫ eA.unitIso.inv.app (G.obj (eB.inverse.obj (F.obj X)))

full_name: AlgebraicTopology.DoldKan.Compatibility.equivalenceUnitIso_eq
code: theorem equivalenceUnitIso_eq (hε : υ hF = ε) :
    (equivalence hF hG).unitIso = equivalenceUnitIso hG ε 
goal: (AlgebraicTopology.DoldKan.Compatibility.equivalence hF hG).unitIso =
  AlgebraicTopology.DoldKan.Compatibility.equivalenceUnitIso hG ε