Theorem: HomotopyCategory.quasiIso_eq_quasiIso_map_quotient
File: Mathlib/Algebra/Homology/Localization.lean

tactic: ext ⟨K⟩ ⟨L⟩ f
state_before: C : Type u_1
inst✝³ : Category.{u_3, u_1} C
ι : Type u_2
c : ComplexShape ι
inst✝² : Preadditive C
inst✝¹ : CategoryWithHomology C
inst✝ : (HomologicalComplex.quasiIso C c).HasLocalization
⊢ quasiIso C c = (HomologicalComplex.quasiIso C c).map (quotient C c)
state_after: case h.mk.mk
C : Type u_1
inst✝³ : Category.{u_3, u_1} C
ι : Type u_2
c : ComplexShape ι
inst✝² : Preadditive C
inst✝¹ : CategoryWithHomology C
inst✝ : (HomologicalComplex.quasiIso C c).HasLocalization
K L : HomologicalComplex C c
f : { as := K } ⟶ { as := L }
⊢ quasiIso C c f ↔ (HomologicalComplex.quasiIso C c).map (quotient C c) f

tactic: obtain ⟨f, rfl⟩ := (HomotopyCategory.quotient C c).map_surjective f
state_before: case h.mk.mk
C : Type u_1
inst✝³ : Category.{u_3, u_1} C
ι : Type u_2
c : ComplexShape ι
inst✝² : Preadditive C
inst✝¹ : CategoryWithHomology C
inst✝ : (HomologicalComplex.quasiIso C c).HasLocalization
K L : HomologicalComplex C c
f : { as := K } ⟶ { as := L }
⊢ quasiIso C c f ↔ (HomologicalComplex.quasiIso C c).map (quotient C c) f
state_after: case h.mk.mk.intro
C : Type u_1
inst✝³ : Category.{u_3, u_1} C
ι : Type u_2
c : ComplexShape ι
inst✝² : Preadditive C
inst✝¹ : CategoryWithHomology C
inst✝ : (HomologicalComplex.quasiIso C c).HasLocalization
K L : HomologicalComplex C c
f : K ⟶ L
⊢ quasiIso C c ((quotient C c).map f) ↔ (HomologicalComplex.quasiIso C c).map (quotient C c) ((quotient C c).map f)

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

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

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

tactic: rw [quotient_map_mem_quasiIso_iff] at hf
state_before: case h.mk.mk.intro.mp
C : Type u_1
inst✝³ : Category.{u_3, u_1} C
ι : Type u_2
c : ComplexShape ι
inst✝² : Preadditive C
inst✝¹ : CategoryWithHomology C
inst✝ : (HomologicalComplex.quasiIso C c).HasLocalization
K L : HomologicalComplex C c
f : K ⟶ L
hf : quasiIso C c ((quotient C c).map f)
⊢ (HomologicalComplex.quasiIso C c).map (quotient C c) ((quotient C c).map f)
state_after: case h.mk.mk.intro.mp
C : Type u_1
inst✝³ : Category.{u_3, u_1} C
ι : Type u_2
c : ComplexShape ι
inst✝² : Preadditive C
inst✝¹ : CategoryWithHomology C
inst✝ : (HomologicalComplex.quasiIso C c).HasLocalization
K L : HomologicalComplex C c
f : K ⟶ L
hf : HomologicalComplex.quasiIso C c f
⊢ (HomologicalComplex.quasiIso C c).map (quotient C c) ((quotient C c).map f)

tactic: exact MorphismProperty.map_mem_map _ _ _ hf
state_before: case h.mk.mk.intro.mp
C : Type u_1
inst✝³ : Category.{u_3, u_1} C
ι : Type u_2
c : ComplexShape ι
inst✝² : Preadditive C
inst✝¹ : CategoryWithHomology C
inst✝ : (HomologicalComplex.quasiIso C c).HasLocalization
K L : HomologicalComplex C c
f : K ⟶ L
hf : HomologicalComplex.quasiIso C c f
⊢ (HomologicalComplex.quasiIso C c).map (quotient C c) ((quotient C c).map f)
state_after: no goals

tactic: rintro ⟨K', L', g, h, ⟨e⟩⟩
state_before: case h.mk.mk.intro.mpr
C : Type u_1
inst✝³ : Category.{u_3, u_1} C
ι : Type u_2
c : ComplexShape ι
inst✝² : Preadditive C
inst✝¹ : CategoryWithHomology C
inst✝ : (HomologicalComplex.quasiIso C c).HasLocalization
K L : HomologicalComplex C c
f : K ⟶ L
⊢ (HomologicalComplex.quasiIso C c).map (quotient C c) ((quotient C c).map f) → quasiIso C c ((quotient C c).map f)
state_after: case h.mk.mk.intro.mpr.intro.intro.intro.intro.intro
C : Type u_1
inst✝³ : Category.{u_3, u_1} C
ι : Type u_2
c : ComplexShape ι
inst✝² : Preadditive C
inst✝¹ : CategoryWithHomology C
inst✝ : (HomologicalComplex.quasiIso C c).HasLocalization
K L : HomologicalComplex C c
f : K ⟶ L
K' L' : HomologicalComplex C c
g : K' ⟶ L'
h : HomologicalComplex.quasiIso C c g
e : Arrow.mk ((quotient C c).map g) ≅ Arrow.mk ((quotient C c).map f)
⊢ quasiIso C c ((quotient C c).map f)

tactic: rw [← quotient_map_mem_quasiIso_iff] at h
state_before: case h.mk.mk.intro.mpr.intro.intro.intro.intro.intro
C : Type u_1
inst✝³ : Category.{u_3, u_1} C
ι : Type u_2
c : ComplexShape ι
inst✝² : Preadditive C
inst✝¹ : CategoryWithHomology C
inst✝ : (HomologicalComplex.quasiIso C c).HasLocalization
K L : HomologicalComplex C c
f : K ⟶ L
K' L' : HomologicalComplex C c
g : K' ⟶ L'
h : HomologicalComplex.quasiIso C c g
e : Arrow.mk ((quotient C c).map g) ≅ Arrow.mk ((quotient C c).map f)
⊢ quasiIso C c ((quotient C c).map f)
state_after: case h.mk.mk.intro.mpr.intro.intro.intro.intro.intro
C : Type u_1
inst✝³ : Category.{u_3, u_1} C
ι : Type u_2
c : ComplexShape ι
inst✝² : Preadditive C
inst✝¹ : CategoryWithHomology C
inst✝ : (HomologicalComplex.quasiIso C c).HasLocalization
K L : HomologicalComplex C c
f : K ⟶ L
K' L' : HomologicalComplex C c
g : K' ⟶ L'
h : quasiIso C c ((quotient C c).map g)
e : Arrow.mk ((quotient C c).map g) ≅ Arrow.mk ((quotient C c).map f)
⊢ quasiIso C c ((quotient C c).map f)

tactic: exact ((respectsIso_quasiIso C c).arrow_mk_iso_iff e).1 h
state_before: case h.mk.mk.intro.mpr.intro.intro.intro.intro.intro
C : Type u_1
inst✝³ : Category.{u_3, u_1} C
ι : Type u_2
c : ComplexShape ι
inst✝² : Preadditive C
inst✝¹ : CategoryWithHomology C
inst✝ : (HomologicalComplex.quasiIso C c).HasLocalization
K L : HomologicalComplex C c
f : K ⟶ L
K' L' : HomologicalComplex C c
g : K' ⟶ L'
h : quasiIso C c ((quotient C c).map g)
e : Arrow.mk ((quotient C c).map g) ≅ Arrow.mk ((quotient C c).map f)
⊢ quasiIso C c ((quotient C c).map f)
state_after: no goals