Theorem: HomologicalComplexUpToQuasiIso.isIso_Q_map_iff_mem_quasiIso
File: Mathlib/Algebra/Homology/Localization.lean

tactic: constructor
state_before: C : Type u_1
inst✝³ : Category.{u_3, u_1} C
ι : Type u_2
c : ComplexShape ι
inst✝² : HasZeroMorphisms C
inst✝¹ : CategoryWithHomology C
inst✝ : (HomologicalComplex.quasiIso C c).HasLocalization
K L : HomologicalComplex C c
f : K ⟶ L
⊢ IsIso (Q.map f) ↔ HomologicalComplex.quasiIso C c f
state_after: case mp
C : Type u_1
inst✝³ : Category.{u_3, u_1} C
ι : Type u_2
c : ComplexShape ι
inst✝² : HasZeroMorphisms C
inst✝¹ : CategoryWithHomology C
inst✝ : (HomologicalComplex.quasiIso C c).HasLocalization
K L : HomologicalComplex C c
f : K ⟶ L
⊢ IsIso (Q.map f) → HomologicalComplex.quasiIso C c f

case mpr
C : Type u_1
inst✝³ : Category.{u_3, u_1} C
ι : Type u_2
c : ComplexShape ι
inst✝² : HasZeroMorphisms C
inst✝¹ : CategoryWithHomology C
inst✝ : (HomologicalComplex.quasiIso C c).HasLocalization
K L : HomologicalComplex C c
f : K ⟶ L
⊢ HomologicalComplex.quasiIso C c f → IsIso (Q.map f)

tactic: intro h
state_before: case mp
C : Type u_1
inst✝³ : Category.{u_3, u_1} C
ι : Type u_2
c : ComplexShape ι
inst✝² : HasZeroMorphisms C
inst✝¹ : CategoryWithHomology C
inst✝ : (HomologicalComplex.quasiIso C c).HasLocalization
K L : HomologicalComplex C c
f : K ⟶ L
⊢ IsIso (Q.map f) → HomologicalComplex.quasiIso C c f
state_after: case mp
C : Type u_1
inst✝³ : Category.{u_3, u_1} C
ι : Type u_2
c : ComplexShape ι
inst✝² : HasZeroMorphisms C
inst✝¹ : CategoryWithHomology C
inst✝ : (HomologicalComplex.quasiIso C c).HasLocalization
K L : HomologicalComplex C c
f : K ⟶ L
h : IsIso (Q.map f)
⊢ HomologicalComplex.quasiIso C c f

tactic: rw [HomologicalComplex.mem_quasiIso_iff, quasiIso_iff]
state_before: case mp
C : Type u_1
inst✝³ : Category.{u_3, u_1} C
ι : Type u_2
c : ComplexShape ι
inst✝² : HasZeroMorphisms C
inst✝¹ : CategoryWithHomology C
inst✝ : (HomologicalComplex.quasiIso C c).HasLocalization
K L : HomologicalComplex C c
f : K ⟶ L
h : IsIso (Q.map f)
⊢ HomologicalComplex.quasiIso C c f
state_after: case mp
C : Type u_1
inst✝³ : Category.{u_3, u_1} C
ι : Type u_2
c : ComplexShape ι
inst✝² : HasZeroMorphisms C
inst✝¹ : CategoryWithHomology C
inst✝ : (HomologicalComplex.quasiIso C c).HasLocalization
K L : HomologicalComplex C c
f : K ⟶ L
h : IsIso (Q.map f)
⊢ ∀ (i : ι), QuasiIsoAt f i

tactic: intro i
state_before: case mp
C : Type u_1
inst✝³ : Category.{u_3, u_1} C
ι : Type u_2
c : ComplexShape ι
inst✝² : HasZeroMorphisms C
inst✝¹ : CategoryWithHomology C
inst✝ : (HomologicalComplex.quasiIso C c).HasLocalization
K L : HomologicalComplex C c
f : K ⟶ L
h : IsIso (Q.map f)
⊢ ∀ (i : ι), QuasiIsoAt f i
state_after: case mp
C : Type u_1
inst✝³ : Category.{u_3, u_1} C
ι : Type u_2
c : ComplexShape ι
inst✝² : HasZeroMorphisms C
inst✝¹ : CategoryWithHomology C
inst✝ : (HomologicalComplex.quasiIso C c).HasLocalization
K L : HomologicalComplex C c
f : K ⟶ L
h : IsIso (Q.map f)
i : ι
⊢ QuasiIsoAt f i

tactic: rw [quasiIsoAt_iff_isIso_homologyMap]
state_before: case mp
C : Type u_1
inst✝³ : Category.{u_3, u_1} C
ι : Type u_2
c : ComplexShape ι
inst✝² : HasZeroMorphisms C
inst✝¹ : CategoryWithHomology C
inst✝ : (HomologicalComplex.quasiIso C c).HasLocalization
K L : HomologicalComplex C c
f : K ⟶ L
h : IsIso (Q.map f)
i : ι
⊢ QuasiIsoAt f i
state_after: case mp
C : Type u_1
inst✝³ : Category.{u_3, u_1} C
ι : Type u_2
c : ComplexShape ι
inst✝² : HasZeroMorphisms C
inst✝¹ : CategoryWithHomology C
inst✝ : (HomologicalComplex.quasiIso C c).HasLocalization
K L : HomologicalComplex C c
f : K ⟶ L
h : IsIso (Q.map f)
i : ι
⊢ IsIso (HomologicalComplex.homologyMap f i)

tactic: refine (NatIso.isIso_map_iff (homologyFunctorFactors C c i) f).1 ?_
state_before: case mp
C : Type u_1
inst✝³ : Category.{u_3, u_1} C
ι : Type u_2
c : ComplexShape ι
inst✝² : HasZeroMorphisms C
inst✝¹ : CategoryWithHomology C
inst✝ : (HomologicalComplex.quasiIso C c).HasLocalization
K L : HomologicalComplex C c
f : K ⟶ L
h : IsIso (Q.map f)
i : ι
⊢ IsIso (HomologicalComplex.homologyMap f i)
state_after: case mp
C : Type u_1
inst✝³ : Category.{u_3, u_1} C
ι : Type u_2
c : ComplexShape ι
inst✝² : HasZeroMorphisms C
inst✝¹ : CategoryWithHomology C
inst✝ : (HomologicalComplex.quasiIso C c).HasLocalization
K L : HomologicalComplex C c
f : K ⟶ L
h : IsIso (Q.map f)
i : ι
⊢ IsIso ((Q ⋙ homologyFunctor C c i).map f)

tactic: dsimp
state_before: case mp
C : Type u_1
inst✝³ : Category.{u_3, u_1} C
ι : Type u_2
c : ComplexShape ι
inst✝² : HasZeroMorphisms C
inst✝¹ : CategoryWithHomology C
inst✝ : (HomologicalComplex.quasiIso C c).HasLocalization
K L : HomologicalComplex C c
f : K ⟶ L
h : IsIso (Q.map f)
i : ι
⊢ IsIso ((Q ⋙ homologyFunctor C c i).map f)
state_after: case mp
C : Type u_1
inst✝³ : Category.{u_3, u_1} C
ι : Type u_2
c : ComplexShape ι
inst✝² : HasZeroMorphisms C
inst✝¹ : CategoryWithHomology C
inst✝ : (HomologicalComplex.quasiIso C c).HasLocalization
K L : HomologicalComplex C c
f : K ⟶ L
h : IsIso (Q.map f)
i : ι
⊢ IsIso ((homologyFunctor C c i).map (Q.map f))

tactic: infer_instance
state_before: case mp
C : Type u_1
inst✝³ : Category.{u_3, u_1} C
ι : Type u_2
c : ComplexShape ι
inst✝² : HasZeroMorphisms C
inst✝¹ : CategoryWithHomology C
inst✝ : (HomologicalComplex.quasiIso C c).HasLocalization
K L : HomologicalComplex C c
f : K ⟶ L
h : IsIso (Q.map f)
i : ι
⊢ IsIso ((homologyFunctor C c i).map (Q.map f))
state_after: no goals

tactic: intro h
state_before: case mpr
C : Type u_1
inst✝³ : Category.{u_3, u_1} C
ι : Type u_2
c : ComplexShape ι
inst✝² : HasZeroMorphisms C
inst✝¹ : CategoryWithHomology C
inst✝ : (HomologicalComplex.quasiIso C c).HasLocalization
K L : HomologicalComplex C c
f : K ⟶ L
⊢ HomologicalComplex.quasiIso C c f → IsIso (Q.map f)
state_after: case mpr
C : Type u_1
inst✝³ : Category.{u_3, u_1} C
ι : Type u_2
c : ComplexShape ι
inst✝² : HasZeroMorphisms C
inst✝¹ : CategoryWithHomology C
inst✝ : (HomologicalComplex.quasiIso C c).HasLocalization
K L : HomologicalComplex C c
f : K ⟶ L
h : HomologicalComplex.quasiIso C c f
⊢ IsIso (Q.map f)

tactic: exact Localization.inverts Q (HomologicalComplex.quasiIso C c) _ h
state_before: case mpr
C : Type u_1
inst✝³ : Category.{u_3, u_1} C
ι : Type u_2
c : ComplexShape ι
inst✝² : HasZeroMorphisms C
inst✝¹ : CategoryWithHomology C
inst✝ : (HomologicalComplex.quasiIso C c).HasLocalization
K L : HomologicalComplex C c
f : K ⟶ L
h : HomologicalComplex.quasiIso C c f
⊢ IsIso (Q.map f)
state_after: no goals