Theorem: CategoryTheory.MorphismProperty.IsInvertedBy.iff_comp
File: Mathlib/CategoryTheory/MorphismProperty/IsInvertedBy.lean

tactic: constructor
state_before: C : Type u
inst✝⁵ : Category.{v, u} C
D : Type u'
inst✝⁴ : Category.{v', u'} D
C₁ : Type u_1
C₂ : Type u_2
C₃ : Type u_3
inst✝³ : Category.{u_4, u_1} C₁
inst✝² : Category.{u_5, u_2} C₂
inst✝¹ : Category.{u_6, u_3} C₃
W : MorphismProperty C₁
F : C₁ ⥤ C₂
G : C₂ ⥤ C₃
inst✝ : G.ReflectsIsomorphisms
⊢ W.IsInvertedBy (F ⋙ G) ↔ W.IsInvertedBy F
state_after: case mp
C : Type u
inst✝⁵ : Category.{v, u} C
D : Type u'
inst✝⁴ : Category.{v', u'} D
C₁ : Type u_1
C₂ : Type u_2
C₃ : Type u_3
inst✝³ : Category.{u_4, u_1} C₁
inst✝² : Category.{u_5, u_2} C₂
inst✝¹ : Category.{u_6, u_3} C₃
W : MorphismProperty C₁
F : C₁ ⥤ C₂
G : C₂ ⥤ C₃
inst✝ : G.ReflectsIsomorphisms
⊢ W.IsInvertedBy (F ⋙ G) → W.IsInvertedBy F

case mpr
C : Type u
inst✝⁵ : Category.{v, u} C
D : Type u'
inst✝⁴ : Category.{v', u'} D
C₁ : Type u_1
C₂ : Type u_2
C₃ : Type u_3
inst✝³ : Category.{u_4, u_1} C₁
inst✝² : Category.{u_5, u_2} C₂
inst✝¹ : Category.{u_6, u_3} C₃
W : MorphismProperty C₁
F : C₁ ⥤ C₂
G : C₂ ⥤ C₃
inst✝ : G.ReflectsIsomorphisms
⊢ W.IsInvertedBy F → W.IsInvertedBy (F ⋙ G)

tactic: intro h X Y f hf
state_before: case mp
C : Type u
inst✝⁵ : Category.{v, u} C
D : Type u'
inst✝⁴ : Category.{v', u'} D
C₁ : Type u_1
C₂ : Type u_2
C₃ : Type u_3
inst✝³ : Category.{u_4, u_1} C₁
inst✝² : Category.{u_5, u_2} C₂
inst✝¹ : Category.{u_6, u_3} C₃
W : MorphismProperty C₁
F : C₁ ⥤ C₂
G : C₂ ⥤ C₃
inst✝ : G.ReflectsIsomorphisms
⊢ W.IsInvertedBy (F ⋙ G) → W.IsInvertedBy F
state_after: case mp
C : Type u
inst✝⁵ : Category.{v, u} C
D : Type u'
inst✝⁴ : Category.{v', u'} D
C₁ : Type u_1
C₂ : Type u_2
C₃ : Type u_3
inst✝³ : Category.{u_4, u_1} C₁
inst✝² : Category.{u_5, u_2} C₂
inst✝¹ : Category.{u_6, u_3} C₃
W : MorphismProperty C₁
F : C₁ ⥤ C₂
G : C₂ ⥤ C₃
inst✝ : G.ReflectsIsomorphisms
h : W.IsInvertedBy (F ⋙ G)
X Y : C₁
f : X ⟶ Y
hf : W f
⊢ IsIso (F.map f)

tactic: have : IsIso (G.map (F.map f)) := h _ hf
state_before: case mp
C : Type u
inst✝⁵ : Category.{v, u} C
D : Type u'
inst✝⁴ : Category.{v', u'} D
C₁ : Type u_1
C₂ : Type u_2
C₃ : Type u_3
inst✝³ : Category.{u_4, u_1} C₁
inst✝² : Category.{u_5, u_2} C₂
inst✝¹ : Category.{u_6, u_3} C₃
W : MorphismProperty C₁
F : C₁ ⥤ C₂
G : C₂ ⥤ C₃
inst✝ : G.ReflectsIsomorphisms
h : W.IsInvertedBy (F ⋙ G)
X Y : C₁
f : X ⟶ Y
hf : W f
⊢ IsIso (F.map f)
state_after: case mp
C : Type u
inst✝⁵ : Category.{v, u} C
D : Type u'
inst✝⁴ : Category.{v', u'} D
C₁ : Type u_1
C₂ : Type u_2
C₃ : Type u_3
inst✝³ : Category.{u_4, u_1} C₁
inst✝² : Category.{u_5, u_2} C₂
inst✝¹ : Category.{u_6, u_3} C₃
W : MorphismProperty C₁
F : C₁ ⥤ C₂
G : C₂ ⥤ C₃
inst✝ : G.ReflectsIsomorphisms
h : W.IsInvertedBy (F ⋙ G)
X Y : C₁
f : X ⟶ Y
hf : W f
this : IsIso (G.map (F.map f))
⊢ IsIso (F.map f)

tactic: exact isIso_of_reflects_iso (F.map f) G
state_before: case mp
C : Type u
inst✝⁵ : Category.{v, u} C
D : Type u'
inst✝⁴ : Category.{v', u'} D
C₁ : Type u_1
C₂ : Type u_2
C₃ : Type u_3
inst✝³ : Category.{u_4, u_1} C₁
inst✝² : Category.{u_5, u_2} C₂
inst✝¹ : Category.{u_6, u_3} C₃
W : MorphismProperty C₁
F : C₁ ⥤ C₂
G : C₂ ⥤ C₃
inst✝ : G.ReflectsIsomorphisms
h : W.IsInvertedBy (F ⋙ G)
X Y : C₁
f : X ⟶ Y
hf : W f
this : IsIso (G.map (F.map f))
⊢ IsIso (F.map f)
state_after: no goals

tactic: intro hF
state_before: case mpr
C : Type u
inst✝⁵ : Category.{v, u} C
D : Type u'
inst✝⁴ : Category.{v', u'} D
C₁ : Type u_1
C₂ : Type u_2
C₃ : Type u_3
inst✝³ : Category.{u_4, u_1} C₁
inst✝² : Category.{u_5, u_2} C₂
inst✝¹ : Category.{u_6, u_3} C₃
W : MorphismProperty C₁
F : C₁ ⥤ C₂
G : C₂ ⥤ C₃
inst✝ : G.ReflectsIsomorphisms
⊢ W.IsInvertedBy F → W.IsInvertedBy (F ⋙ G)
state_after: case mpr
C : Type u
inst✝⁵ : Category.{v, u} C
D : Type u'
inst✝⁴ : Category.{v', u'} D
C₁ : Type u_1
C₂ : Type u_2
C₃ : Type u_3
inst✝³ : Category.{u_4, u_1} C₁
inst✝² : Category.{u_5, u_2} C₂
inst✝¹ : Category.{u_6, u_3} C₃
W : MorphismProperty C₁
F : C₁ ⥤ C₂
G : C₂ ⥤ C₃
inst✝ : G.ReflectsIsomorphisms
hF : W.IsInvertedBy F
⊢ W.IsInvertedBy (F ⋙ G)

tactic: exact IsInvertedBy.of_comp W F hF G
state_before: case mpr
C : Type u
inst✝⁵ : Category.{v, u} C
D : Type u'
inst✝⁴ : Category.{v', u'} D
C₁ : Type u_1
C₂ : Type u_2
C₃ : Type u_3
inst✝³ : Category.{u_4, u_1} C₁
inst✝² : Category.{u_5, u_2} C₂
inst✝¹ : Category.{u_6, u_3} C₃
W : MorphismProperty C₁
F : C₁ ⥤ C₂
G : C₂ ⥤ C₃
inst✝ : G.ReflectsIsomorphisms
hF : W.IsInvertedBy F
⊢ W.IsInvertedBy (F ⋙ G)
state_after: no goals