Theorem: CategoryTheory.Functor.isRightKanExtension_iff_of_iso₂
File: Mathlib/CategoryTheory/Functor/KanExtension/Basic.lean

Proof steps:
state_before: C : Type u_1
C' : Type u_2
H : Type u_3
H' : Type u_4
D : Type u_5
D' : Type u_6
inst✝⁵ : Category.{u_9, u_1} C
inst✝⁴ : Category.{?u.177840, u_2} C'
inst✝³ : Category.{u_8, u_3} H
inst✝² : Category.{?u.177848, u_4} H'
inst✝¹ : Category.{u_7, u_5} D
inst✝ : Category.{?u.177856, u_6} D'
L : C ⥤ D
F₁ F₂ : C ⥤ H
F₁' F₂' : D ⥤ H
α₁ : L ⋙ F₁' ⟶ F₁
α₂ : L ⋙ F₂' ⟶ F₂
e : F₁ ≅ F₂
e' : F₁' ≅ F₂'
h : whiskerLeft L e'.hom ≫ α₂ = α₁ ≫ e.hom
⊢ F₁'.IsRightKanExtension α₁ ↔ F₂'.IsRightKanExtension α₂
state_after: C : Type u_1
C' : Type u_2
H : Type u_3
H' : Type u_4
D : Type u_5
D' : Type u_6
inst✝⁵ : Category.{u_9, u_1} C
inst✝⁴ : Category.{?u.177840, u_2} C'
inst✝³ : Category.{u_8, u_3} H
inst✝² : Category.{?u.177848, u_4} H'
inst✝¹ : Category.{u_7, u_5} D
inst✝ : Category.{?u.177856, u_6} D'
L : C ⥤ D
F₁ F₂ : C ⥤ H
F₁' F₂' : D ⥤ H
α₁ : L ⋙ F₁' ⟶ F₁
α₂ : L ⋙ F₂' ⟶ F₂
e : F₁ ≅ F₂
e' : F₁' ≅ F₂'
h : whiskerLeft L e'.hom ≫ α₂ = α₁ ≫ e.hom
eq : CostructuredArrow.IsUniversal (RightExtension.mk F₁' α₁) ≃
  CostructuredArrow.IsUniversal (RightExtension.mk F₂' α₂) :=
  (RightExtension.mk F₁' α₁).isUniversalEquivOfIso₂ (RightExtension.mk F₂' α₂) e e' h
⊢ F₁'.IsRightKanExtension α₁ ↔ F₂'.IsRightKanExtension α₂
tactic: let eq := RightExtension.isUniversalEquivOfIso₂ (RightExtension.mk _ α₁)
    (RightExtension.mk _ α₂) e e' h
state_before: C : Type u_1
C' : Type u_2
H : Type u_3
H' : Type u_4
D : Type u_5
D' : Type u_6
inst✝⁵ : Category.{u_9, u_1} C
inst✝⁴ : Category.{?u.177840, u_2} C'
inst✝³ : Category.{u_8, u_3} H
inst✝² : Category.{?u.177848, u_4} H'
inst✝¹ : Category.{u_7, u_5} D
inst✝ : Category.{?u.177856, u_6} D'
L : C ⥤ D
F₁ F₂ : C ⥤ H
F₁' F₂' : D ⥤ H
α₁ : L ⋙ F₁' ⟶ F₁
α₂ : L ⋙ F₂' ⟶ F₂
e : F₁ ≅ F₂
e' : F₁' ≅ F₂'
h : whiskerLeft L e'.hom ≫ α₂ = α₁ ≫ e.hom
eq : CostructuredArrow.IsUniversal (RightExtension.mk F₁' α₁) ≃
  CostructuredArrow.IsUniversal (RightExtension.mk F₂' α₂) :=
  (RightExtension.mk F₁' α₁).isUniversalEquivOfIso₂ (RightExtension.mk F₂' α₂) e e' h
⊢ F₁'.IsRightKanExtension α₁ ↔ F₂'.IsRightKanExtension α₂
state_after: case mp
C : Type u_1
C' : Type u_2
H : Type u_3
H' : Type u_4
D : Type u_5
D' : Type u_6
inst✝⁵ : Category.{u_9, u_1} C
inst✝⁴ : Category.{?u.177840, u_2} C'
inst✝³ : Category.{u_8, u_3} H
inst✝² : Category.{?u.177848, u_4} H'
inst✝¹ : Category.{u_7, u_5} D
inst✝ : Category.{?u.177856, u_6} D'
L : C ⥤ D
F₁ F₂ : C ⥤ H
F₁' F₂' : D ⥤ H
α₁ : L ⋙ F₁' ⟶ F₁
α₂ : L ⋙ F₂' ⟶ F₂
e : F₁ ≅ F₂
e' : F₁' ≅ F₂'
h : whiskerLeft L e'.hom ≫ α₂ = α₁ ≫ e.hom
eq : CostructuredArrow.IsUniversal (RightExtension.mk F₁' α₁) ≃
  CostructuredArrow.IsUniversal (RightExtension.mk F₂' α₂) :=
  (RightExtension.mk F₁' α₁).isUniversalEquivOfIso₂ (RightExtension.mk F₂' α₂) e e' h
⊢ F₁'.IsRightKanExtension α₁ → F₂'.IsRightKanExtension α₂

case mpr
C : Type u_1
C' : Type u_2
H : Type u_3
H' : Type u_4
D : Type u_5
D' : Type u_6
inst✝⁵ : Category.{u_9, u_1} C
inst✝⁴ : Category.{?u.177840, u_2} C'
inst✝³ : Category.{u_8, u_3} H
inst✝² : Category.{?u.177848, u_4} H'
inst✝¹ : Category.{u_7, u_5} D
inst✝ : Category.{?u.177856, u_6} D'
L : C ⥤ D
F₁ F₂ : C ⥤ H
F₁' F₂' : D ⥤ H
α₁ : L ⋙ F₁' ⟶ F₁
α₂ : L ⋙ F₂' ⟶ F₂
e : F₁ ≅ F₂
e' : F₁' ≅ F₂'
h : whiskerLeft L e'.hom ≫ α₂ = α₁ ≫ e.hom
eq : CostructuredArrow.IsUniversal (RightExtension.mk F₁' α₁) ≃
  CostructuredArrow.IsUniversal (RightExtension.mk F₂' α₂) :=
  (RightExtension.mk F₁' α₁).isUniversalEquivOfIso₂ (RightExtension.mk F₂' α₂) e e' h
⊢ F₂'.IsRightKanExtension α₂ → F₁'.IsRightKanExtension α₁
tactic: constructor