Theorem: CategoryTheory.Functor.isLeftKanExtension_iff_of_iso
File: Mathlib/CategoryTheory/Functor/KanExtension/Basic.lean

tactic: constructor
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.46762, u_2} C'
inst✝⁴ : Category.{u_8, u_3} H
inst✝³ : Category.{?u.46770, u_4} H'
inst✝² : Category.{u_7, u_5} D
inst✝¹ : Category.{?u.46778, u_6} D'
F'✝ : D ⥤ H
L✝ : C ⥤ D
F✝ : C ⥤ H
α✝ : F✝ ⟶ L✝ ⋙ F'✝
inst✝ : F'✝.IsLeftKanExtension α✝
F' F'' : D ⥤ H
e : F' ≅ F''
L : C ⥤ D
F : C ⥤ H
α : F ⟶ L ⋙ F'
α' : F ⟶ L ⋙ F''
comm : α ≫ whiskerLeft L e.hom = α'
⊢ F'.IsLeftKanExtension α ↔ F''.IsLeftKanExtension α'
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.46762, u_2} C'
inst✝⁴ : Category.{u_8, u_3} H
inst✝³ : Category.{?u.46770, u_4} H'
inst✝² : Category.{u_7, u_5} D
inst✝¹ : Category.{?u.46778, u_6} D'
F'✝ : D ⥤ H
L✝ : C ⥤ D
F✝ : C ⥤ H
α✝ : F✝ ⟶ L✝ ⋙ F'✝
inst✝ : F'✝.IsLeftKanExtension α✝
F' F'' : D ⥤ H
e : F' ≅ F''
L : C ⥤ D
F : C ⥤ H
α : F ⟶ L ⋙ F'
α' : F ⟶ L ⋙ F''
comm : α ≫ whiskerLeft L e.hom = α'
⊢ F'.IsLeftKanExtension α → F''.IsLeftKanExtension α'

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.46762, u_2} C'
inst✝⁴ : Category.{u_8, u_3} H
inst✝³ : Category.{?u.46770, u_4} H'
inst✝² : Category.{u_7, u_5} D
inst✝¹ : Category.{?u.46778, u_6} D'
F'✝ : D ⥤ H
L✝ : C ⥤ D
F✝ : C ⥤ H
α✝ : F✝ ⟶ L✝ ⋙ F'✝
inst✝ : F'✝.IsLeftKanExtension α✝
F' F'' : D ⥤ H
e : F' ≅ F''
L : C ⥤ D
F : C ⥤ H
α : F ⟶ L ⋙ F'
α' : F ⟶ L ⋙ F''
comm : α ≫ whiskerLeft L e.hom = α'
⊢ F''.IsLeftKanExtension α' → F'.IsLeftKanExtension α

tactic: intro
state_before: 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.46762, u_2} C'
inst✝⁴ : Category.{u_8, u_3} H
inst✝³ : Category.{?u.46770, u_4} H'
inst✝² : Category.{u_7, u_5} D
inst✝¹ : Category.{?u.46778, u_6} D'
F'✝ : D ⥤ H
L✝ : C ⥤ D
F✝ : C ⥤ H
α✝ : F✝ ⟶ L✝ ⋙ F'✝
inst✝ : F'✝.IsLeftKanExtension α✝
F' F'' : D ⥤ H
e : F' ≅ F''
L : C ⥤ D
F : C ⥤ H
α : F ⟶ L ⋙ F'
α' : F ⟶ L ⋙ F''
comm : α ≫ whiskerLeft L e.hom = α'
⊢ F'.IsLeftKanExtension α → F''.IsLeftKanExtension α'
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.46762, u_2} C'
inst✝⁴ : Category.{u_8, u_3} H
inst✝³ : Category.{?u.46770, u_4} H'
inst✝² : Category.{u_7, u_5} D
inst✝¹ : Category.{?u.46778, u_6} D'
F'✝ : D ⥤ H
L✝ : C ⥤ D
F✝ : C ⥤ H
α✝ : F✝ ⟶ L✝ ⋙ F'✝
inst✝ : F'✝.IsLeftKanExtension α✝
F' F'' : D ⥤ H
e : F' ≅ F''
L : C ⥤ D
F : C ⥤ H
α : F ⟶ L ⋙ F'
α' : F ⟶ L ⋙ F''
comm : α ≫ whiskerLeft L e.hom = α'
a✝ : F'.IsLeftKanExtension α
⊢ F''.IsLeftKanExtension α'

tactic: exact isLeftKanExtension_of_iso e α α' comm
state_before: 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.46762, u_2} C'
inst✝⁴ : Category.{u_8, u_3} H
inst✝³ : Category.{?u.46770, u_4} H'
inst✝² : Category.{u_7, u_5} D
inst✝¹ : Category.{?u.46778, u_6} D'
F'✝ : D ⥤ H
L✝ : C ⥤ D
F✝ : C ⥤ H
α✝ : F✝ ⟶ L✝ ⋙ F'✝
inst✝ : F'✝.IsLeftKanExtension α✝
F' F'' : D ⥤ H
e : F' ≅ F''
L : C ⥤ D
F : C ⥤ H
α : F ⟶ L ⋙ F'
α' : F ⟶ L ⋙ F''
comm : α ≫ whiskerLeft L e.hom = α'
a✝ : F'.IsLeftKanExtension α
⊢ F''.IsLeftKanExtension α'
state_after: no goals

tactic: intro
state_before: 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.46762, u_2} C'
inst✝⁴ : Category.{u_8, u_3} H
inst✝³ : Category.{?u.46770, u_4} H'
inst✝² : Category.{u_7, u_5} D
inst✝¹ : Category.{?u.46778, u_6} D'
F'✝ : D ⥤ H
L✝ : C ⥤ D
F✝ : C ⥤ H
α✝ : F✝ ⟶ L✝ ⋙ F'✝
inst✝ : F'✝.IsLeftKanExtension α✝
F' F'' : D ⥤ H
e : F' ≅ F''
L : C ⥤ D
F : C ⥤ H
α : F ⟶ L ⋙ F'
α' : F ⟶ L ⋙ F''
comm : α ≫ whiskerLeft L e.hom = α'
⊢ F''.IsLeftKanExtension α' → F'.IsLeftKanExtension α
state_after: 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.46762, u_2} C'
inst✝⁴ : Category.{u_8, u_3} H
inst✝³ : Category.{?u.46770, u_4} H'
inst✝² : Category.{u_7, u_5} D
inst✝¹ : Category.{?u.46778, u_6} D'
F'✝ : D ⥤ H
L✝ : C ⥤ D
F✝ : C ⥤ H
α✝ : F✝ ⟶ L✝ ⋙ F'✝
inst✝ : F'✝.IsLeftKanExtension α✝
F' F'' : D ⥤ H
e : F' ≅ F''
L : C ⥤ D
F : C ⥤ H
α : F ⟶ L ⋙ F'
α' : F ⟶ L ⋙ F''
comm : α ≫ whiskerLeft L e.hom = α'
a✝ : F''.IsLeftKanExtension α'
⊢ F'.IsLeftKanExtension α

tactic: refine isLeftKanExtension_of_iso e.symm α' α ?_
state_before: 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.46762, u_2} C'
inst✝⁴ : Category.{u_8, u_3} H
inst✝³ : Category.{?u.46770, u_4} H'
inst✝² : Category.{u_7, u_5} D
inst✝¹ : Category.{?u.46778, u_6} D'
F'✝ : D ⥤ H
L✝ : C ⥤ D
F✝ : C ⥤ H
α✝ : F✝ ⟶ L✝ ⋙ F'✝
inst✝ : F'✝.IsLeftKanExtension α✝
F' F'' : D ⥤ H
e : F' ≅ F''
L : C ⥤ D
F : C ⥤ H
α : F ⟶ L ⋙ F'
α' : F ⟶ L ⋙ F''
comm : α ≫ whiskerLeft L e.hom = α'
a✝ : F''.IsLeftKanExtension α'
⊢ F'.IsLeftKanExtension α
state_after: 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.46762, u_2} C'
inst✝⁴ : Category.{u_8, u_3} H
inst✝³ : Category.{?u.46770, u_4} H'
inst✝² : Category.{u_7, u_5} D
inst✝¹ : Category.{?u.46778, u_6} D'
F'✝ : D ⥤ H
L✝ : C ⥤ D
F✝ : C ⥤ H
α✝ : F✝ ⟶ L✝ ⋙ F'✝
inst✝ : F'✝.IsLeftKanExtension α✝
F' F'' : D ⥤ H
e : F' ≅ F''
L : C ⥤ D
F : C ⥤ H
α : F ⟶ L ⋙ F'
α' : F ⟶ L ⋙ F''
comm : α ≫ whiskerLeft L e.hom = α'
a✝ : F''.IsLeftKanExtension α'
⊢ α' ≫ whiskerLeft L e.symm.hom = α

tactic: rw [← comm, assoc, ← whiskerLeft_comp, Iso.symm_hom, e.hom_inv_id, whiskerLeft_id', comp_id]
state_before: 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.46762, u_2} C'
inst✝⁴ : Category.{u_8, u_3} H
inst✝³ : Category.{?u.46770, u_4} H'
inst✝² : Category.{u_7, u_5} D
inst✝¹ : Category.{?u.46778, u_6} D'
F'✝ : D ⥤ H
L✝ : C ⥤ D
F✝ : C ⥤ H
α✝ : F✝ ⟶ L✝ ⋙ F'✝
inst✝ : F'✝.IsLeftKanExtension α✝
F' F'' : D ⥤ H
e : F' ≅ F''
L : C ⥤ D
F : C ⥤ H
α : F ⟶ L ⋙ F'
α' : F ⟶ L ⋙ F''
comm : α ≫ whiskerLeft L e.hom = α'
a✝ : F''.IsLeftKanExtension α'
⊢ α' ≫ whiskerLeft L e.symm.hom = α
state_after: no goals