Theorem: CategoryTheory.TwoSquare.GuitartExact.whiskerVertical_iff
File: Mathlib/CategoryTheory/GuitartExact/VerticalComposition.lean

tactic: constructor
state_before: C₁ : Type u_1
C₂ : Type u_2
C₃ : Type u_3
D₁ : Type u_4
D₂ : Type u_5
D₃ : Type u_6
inst✝⁵ : Category.{u_8, u_1} C₁
inst✝⁴ : Category.{u_7, u_2} C₂
inst✝³ : Category.{?u.17114, u_3} C₃
inst✝² : Category.{u_10, u_4} D₁
inst✝¹ : Category.{u_9, u_5} D₂
inst✝ : Category.{?u.17126, u_6} D₃
T : C₁ ⥤ D₁
L : C₁ ⥤ C₂
R : D₁ ⥤ D₂
B : C₂ ⥤ D₂
w : TwoSquare T L R B
L' : C₁ ⥤ C₂
R' : D₁ ⥤ D₂
α : L ≅ L'
β : R ≅ R'
⊢ (w.whiskerVertical α.hom β.inv).GuitartExact ↔ w.GuitartExact
state_after: case mp
C₁ : Type u_1
C₂ : Type u_2
C₃ : Type u_3
D₁ : Type u_4
D₂ : Type u_5
D₃ : Type u_6
inst✝⁵ : Category.{u_8, u_1} C₁
inst✝⁴ : Category.{u_7, u_2} C₂
inst✝³ : Category.{?u.17114, u_3} C₃
inst✝² : Category.{u_10, u_4} D₁
inst✝¹ : Category.{u_9, u_5} D₂
inst✝ : Category.{?u.17126, u_6} D₃
T : C₁ ⥤ D₁
L : C₁ ⥤ C₂
R : D₁ ⥤ D₂
B : C₂ ⥤ D₂
w : TwoSquare T L R B
L' : C₁ ⥤ C₂
R' : D₁ ⥤ D₂
α : L ≅ L'
β : R ≅ R'
⊢ (w.whiskerVertical α.hom β.inv).GuitartExact → w.GuitartExact

case mpr
C₁ : Type u_1
C₂ : Type u_2
C₃ : Type u_3
D₁ : Type u_4
D₂ : Type u_5
D₃ : Type u_6
inst✝⁵ : Category.{u_8, u_1} C₁
inst✝⁴ : Category.{u_7, u_2} C₂
inst✝³ : Category.{?u.17114, u_3} C₃
inst✝² : Category.{u_10, u_4} D₁
inst✝¹ : Category.{u_9, u_5} D₂
inst✝ : Category.{?u.17126, u_6} D₃
T : C₁ ⥤ D₁
L : C₁ ⥤ C₂
R : D₁ ⥤ D₂
B : C₂ ⥤ D₂
w : TwoSquare T L R B
L' : C₁ ⥤ C₂
R' : D₁ ⥤ D₂
α : L ≅ L'
β : R ≅ R'
⊢ w.GuitartExact → (w.whiskerVertical α.hom β.inv).GuitartExact

tactic: intro h
state_before: case mp
C₁ : Type u_1
C₂ : Type u_2
C₃ : Type u_3
D₁ : Type u_4
D₂ : Type u_5
D₃ : Type u_6
inst✝⁵ : Category.{u_8, u_1} C₁
inst✝⁴ : Category.{u_7, u_2} C₂
inst✝³ : Category.{?u.17114, u_3} C₃
inst✝² : Category.{u_10, u_4} D₁
inst✝¹ : Category.{u_9, u_5} D₂
inst✝ : Category.{?u.17126, u_6} D₃
T : C₁ ⥤ D₁
L : C₁ ⥤ C₂
R : D₁ ⥤ D₂
B : C₂ ⥤ D₂
w : TwoSquare T L R B
L' : C₁ ⥤ C₂
R' : D₁ ⥤ D₂
α : L ≅ L'
β : R ≅ R'
⊢ (w.whiskerVertical α.hom β.inv).GuitartExact → w.GuitartExact
state_after: case mp
C₁ : Type u_1
C₂ : Type u_2
C₃ : Type u_3
D₁ : Type u_4
D₂ : Type u_5
D₃ : Type u_6
inst✝⁵ : Category.{u_8, u_1} C₁
inst✝⁴ : Category.{u_7, u_2} C₂
inst✝³ : Category.{?u.17114, u_3} C₃
inst✝² : Category.{u_10, u_4} D₁
inst✝¹ : Category.{u_9, u_5} D₂
inst✝ : Category.{?u.17126, u_6} D₃
T : C₁ ⥤ D₁
L : C₁ ⥤ C₂
R : D₁ ⥤ D₂
B : C₂ ⥤ D₂
w : TwoSquare T L R B
L' : C₁ ⥤ C₂
R' : D₁ ⥤ D₂
α : L ≅ L'
β : R ≅ R'
h : (w.whiskerVertical α.hom β.inv).GuitartExact
⊢ w.GuitartExact

tactic: have : w = TwoSquare.whiskerVertical
    (TwoSquare.whiskerVertical w α.hom β.inv) α.inv β.hom := by
  ext X₁
  simp only [Functor.comp_obj, whiskerVertical_app, assoc, Iso.hom_inv_id_app_assoc,
    ← B.map_comp, Iso.hom_inv_id_app, B.map_id, comp_id]
state_before: case mp
C₁ : Type u_1
C₂ : Type u_2
C₃ : Type u_3
D₁ : Type u_4
D₂ : Type u_5
D₃ : Type u_6
inst✝⁵ : Category.{u_8, u_1} C₁
inst✝⁴ : Category.{u_7, u_2} C₂
inst✝³ : Category.{?u.17114, u_3} C₃
inst✝² : Category.{u_10, u_4} D₁
inst✝¹ : Category.{u_9, u_5} D₂
inst✝ : Category.{?u.17126, u_6} D₃
T : C₁ ⥤ D₁
L : C₁ ⥤ C₂
R : D₁ ⥤ D₂
B : C₂ ⥤ D₂
w : TwoSquare T L R B
L' : C₁ ⥤ C₂
R' : D₁ ⥤ D₂
α : L ≅ L'
β : R ≅ R'
h : (w.whiskerVertical α.hom β.inv).GuitartExact
⊢ w.GuitartExact
state_after: case mp
C₁ : Type u_1
C₂ : Type u_2
C₃ : Type u_3
D₁ : Type u_4
D₂ : Type u_5
D₃ : Type u_6
inst✝⁵ : Category.{u_8, u_1} C₁
inst✝⁴ : Category.{u_7, u_2} C₂
inst✝³ : Category.{?u.17114, u_3} C₃
inst✝² : Category.{u_10, u_4} D₁
inst✝¹ : Category.{u_9, u_5} D₂
inst✝ : Category.{?u.17126, u_6} D₃
T : C₁ ⥤ D₁
L : C₁ ⥤ C₂
R : D₁ ⥤ D₂
B : C₂ ⥤ D₂
w : TwoSquare T L R B
L' : C₁ ⥤ C₂
R' : D₁ ⥤ D₂
α : L ≅ L'
β : R ≅ R'
h : (w.whiskerVertical α.hom β.inv).GuitartExact
this : w = (w.whiskerVertical α.hom β.inv).whiskerVertical α.inv β.hom
⊢ w.GuitartExact

tactic: rw [this]
state_before: case mp
C₁ : Type u_1
C₂ : Type u_2
C₃ : Type u_3
D₁ : Type u_4
D₂ : Type u_5
D₃ : Type u_6
inst✝⁵ : Category.{u_8, u_1} C₁
inst✝⁴ : Category.{u_7, u_2} C₂
inst✝³ : Category.{?u.17114, u_3} C₃
inst✝² : Category.{u_10, u_4} D₁
inst✝¹ : Category.{u_9, u_5} D₂
inst✝ : Category.{?u.17126, u_6} D₃
T : C₁ ⥤ D₁
L : C₁ ⥤ C₂
R : D₁ ⥤ D₂
B : C₂ ⥤ D₂
w : TwoSquare T L R B
L' : C₁ ⥤ C₂
R' : D₁ ⥤ D₂
α : L ≅ L'
β : R ≅ R'
h : (w.whiskerVertical α.hom β.inv).GuitartExact
this : w = (w.whiskerVertical α.hom β.inv).whiskerVertical α.inv β.hom
⊢ w.GuitartExact
state_after: case mp
C₁ : Type u_1
C₂ : Type u_2
C₃ : Type u_3
D₁ : Type u_4
D₂ : Type u_5
D₃ : Type u_6
inst✝⁵ : Category.{u_8, u_1} C₁
inst✝⁴ : Category.{u_7, u_2} C₂
inst✝³ : Category.{?u.17114, u_3} C₃
inst✝² : Category.{u_10, u_4} D₁
inst✝¹ : Category.{u_9, u_5} D₂
inst✝ : Category.{?u.17126, u_6} D₃
T : C₁ ⥤ D₁
L : C₁ ⥤ C₂
R : D₁ ⥤ D₂
B : C₂ ⥤ D₂
w : TwoSquare T L R B
L' : C₁ ⥤ C₂
R' : D₁ ⥤ D₂
α : L ≅ L'
β : R ≅ R'
h : (w.whiskerVertical α.hom β.inv).GuitartExact
this : w = (w.whiskerVertical α.hom β.inv).whiskerVertical α.inv β.hom
⊢ ((w.whiskerVertical α.hom β.inv).whiskerVertical α.inv β.hom).GuitartExact

tactic: exact whiskerVertical (w.whiskerVertical α.hom β.inv) α.symm β.symm
state_before: case mp
C₁ : Type u_1
C₂ : Type u_2
C₃ : Type u_3
D₁ : Type u_4
D₂ : Type u_5
D₃ : Type u_6
inst✝⁵ : Category.{u_8, u_1} C₁
inst✝⁴ : Category.{u_7, u_2} C₂
inst✝³ : Category.{?u.17114, u_3} C₃
inst✝² : Category.{u_10, u_4} D₁
inst✝¹ : Category.{u_9, u_5} D₂
inst✝ : Category.{?u.17126, u_6} D₃
T : C₁ ⥤ D₁
L : C₁ ⥤ C₂
R : D₁ ⥤ D₂
B : C₂ ⥤ D₂
w : TwoSquare T L R B
L' : C₁ ⥤ C₂
R' : D₁ ⥤ D₂
α : L ≅ L'
β : R ≅ R'
h : (w.whiskerVertical α.hom β.inv).GuitartExact
this : w = (w.whiskerVertical α.hom β.inv).whiskerVertical α.inv β.hom
⊢ ((w.whiskerVertical α.hom β.inv).whiskerVertical α.inv β.hom).GuitartExact
state_after: no goals

tactic: ext X₁
state_before: C₁ : Type u_1
C₂ : Type u_2
C₃ : Type u_3
D₁ : Type u_4
D₂ : Type u_5
D₃ : Type u_6
inst✝⁵ : Category.{u_8, u_1} C₁
inst✝⁴ : Category.{u_7, u_2} C₂
inst✝³ : Category.{?u.17114, u_3} C₃
inst✝² : Category.{u_10, u_4} D₁
inst✝¹ : Category.{u_9, u_5} D₂
inst✝ : Category.{?u.17126, u_6} D₃
T : C₁ ⥤ D₁
L : C₁ ⥤ C₂
R : D₁ ⥤ D₂
B : C₂ ⥤ D₂
w : TwoSquare T L R B
L' : C₁ ⥤ C₂
R' : D₁ ⥤ D₂
α : L ≅ L'
β : R ≅ R'
h : (w.whiskerVertical α.hom β.inv).GuitartExact
⊢ w = (w.whiskerVertical α.hom β.inv).whiskerVertical α.inv β.hom
state_after: case h
C₁ : Type u_1
C₂ : Type u_2
C₃ : Type u_3
D₁ : Type u_4
D₂ : Type u_5
D₃ : Type u_6
inst✝⁵ : Category.{u_8, u_1} C₁
inst✝⁴ : Category.{u_7, u_2} C₂
inst✝³ : Category.{?u.17114, u_3} C₃
inst✝² : Category.{u_10, u_4} D₁
inst✝¹ : Category.{u_9, u_5} D₂
inst✝ : Category.{?u.17126, u_6} D₃
T : C₁ ⥤ D₁
L : C₁ ⥤ C₂
R : D₁ ⥤ D₂
B : C₂ ⥤ D₂
w : TwoSquare T L R B
L' : C₁ ⥤ C₂
R' : D₁ ⥤ D₂
α : L ≅ L'
β : R ≅ R'
h : (w.whiskerVertical α.hom β.inv).GuitartExact
X₁ : C₁
⊢ w.app X₁ = ((w.whiskerVertical α.hom β.inv).whiskerVertical α.inv β.hom).app X₁

tactic: simp only [Functor.comp_obj, whiskerVertical_app, assoc, Iso.hom_inv_id_app_assoc,
  ← B.map_comp, Iso.hom_inv_id_app, B.map_id, comp_id]
state_before: case h
C₁ : Type u_1
C₂ : Type u_2
C₃ : Type u_3
D₁ : Type u_4
D₂ : Type u_5
D₃ : Type u_6
inst✝⁵ : Category.{u_8, u_1} C₁
inst✝⁴ : Category.{u_7, u_2} C₂
inst✝³ : Category.{?u.17114, u_3} C₃
inst✝² : Category.{u_10, u_4} D₁
inst✝¹ : Category.{u_9, u_5} D₂
inst✝ : Category.{?u.17126, u_6} D₃
T : C₁ ⥤ D₁
L : C₁ ⥤ C₂
R : D₁ ⥤ D₂
B : C₂ ⥤ D₂
w : TwoSquare T L R B
L' : C₁ ⥤ C₂
R' : D₁ ⥤ D₂
α : L ≅ L'
β : R ≅ R'
h : (w.whiskerVertical α.hom β.inv).GuitartExact
X₁ : C₁
⊢ w.app X₁ = ((w.whiskerVertical α.hom β.inv).whiskerVertical α.inv β.hom).app X₁
state_after: no goals

tactic: intro h
state_before: case mpr
C₁ : Type u_1
C₂ : Type u_2
C₃ : Type u_3
D₁ : Type u_4
D₂ : Type u_5
D₃ : Type u_6
inst✝⁵ : Category.{u_8, u_1} C₁
inst✝⁴ : Category.{u_7, u_2} C₂
inst✝³ : Category.{?u.17114, u_3} C₃
inst✝² : Category.{u_10, u_4} D₁
inst✝¹ : Category.{u_9, u_5} D₂
inst✝ : Category.{?u.17126, u_6} D₃
T : C₁ ⥤ D₁
L : C₁ ⥤ C₂
R : D₁ ⥤ D₂
B : C₂ ⥤ D₂
w : TwoSquare T L R B
L' : C₁ ⥤ C₂
R' : D₁ ⥤ D₂
α : L ≅ L'
β : R ≅ R'
⊢ w.GuitartExact → (w.whiskerVertical α.hom β.inv).GuitartExact
state_after: case mpr
C₁ : Type u_1
C₂ : Type u_2
C₃ : Type u_3
D₁ : Type u_4
D₂ : Type u_5
D₃ : Type u_6
inst✝⁵ : Category.{u_8, u_1} C₁
inst✝⁴ : Category.{u_7, u_2} C₂
inst✝³ : Category.{?u.17114, u_3} C₃
inst✝² : Category.{u_10, u_4} D₁
inst✝¹ : Category.{u_9, u_5} D₂
inst✝ : Category.{?u.17126, u_6} D₃
T : C₁ ⥤ D₁
L : C₁ ⥤ C₂
R : D₁ ⥤ D₂
B : C₂ ⥤ D₂
w : TwoSquare T L R B
L' : C₁ ⥤ C₂
R' : D₁ ⥤ D₂
α : L ≅ L'
β : R ≅ R'
h : w.GuitartExact
⊢ (w.whiskerVertical α.hom β.inv).GuitartExact

tactic: exact whiskerVertical w α β
state_before: case mpr
C₁ : Type u_1
C₂ : Type u_2
C₃ : Type u_3
D₁ : Type u_4
D₂ : Type u_5
D₃ : Type u_6
inst✝⁵ : Category.{u_8, u_1} C₁
inst✝⁴ : Category.{u_7, u_2} C₂
inst✝³ : Category.{?u.17114, u_3} C₃
inst✝² : Category.{u_10, u_4} D₁
inst✝¹ : Category.{u_9, u_5} D₂
inst✝ : Category.{?u.17126, u_6} D₃
T : C₁ ⥤ D₁
L : C₁ ⥤ C₂
R : D₁ ⥤ D₂
B : C₂ ⥤ D₂
w : TwoSquare T L R B
L' : C₁ ⥤ C₂
R' : D₁ ⥤ D₂
α : L ≅ L'
β : R ≅ R'
h : w.GuitartExact
⊢ (w.whiskerVertical α.hom β.inv).GuitartExact
state_after: no goals