Theorem: CategoryTheory.LocalizerMorphism.IsRightDerivabilityStructure.Constructor.fromRightResolution_map
File: Mathlib/CategoryTheory/Localization/DerivabilityStructure/Constructor.lean

Proof steps:
state_before: C₁ : Type u_1
C₂ : Type u_2
inst✝⁸ : Category.{?u.1506, u_1} C₁
inst✝⁷ : Category.{?u.1510, u_2} C₂
W₁ : MorphismProperty C₁
W₂ : MorphismProperty C₂
Φ : LocalizerMorphism W₁ W₂
inst✝⁶ : Φ.IsLocalizedEquivalence
inst✝⁵ : W₁.IsMultiplicative
inst✝⁴ : ∀ (X₂ : C₂), IsConnected (Φ.RightResolution X₂)
inst✝³ : Φ.arrow.HasRightResolutions
inst✝² : W₂.ContainsIdentities
D : Type u_3
inst✝¹ : Category.{?u.2123, u_3} D
L : C₂ ⥤ D
inst✝ : L.IsLocalization W₂
X₂ : C₂
X₃ : D
y : L.obj X₂ ⟶ X₃
R R' : Φ.RightResolution X₂
φ : R ⟶ R'
⊢ ((TwoSquare.mk Φ.functor (Φ.functor ⋙ L) L (𝟭 D) (Φ.functor ⋙ L).rightUnitor.inv).structuredArrowDownwards X₂).map
        (StructuredArrow.homMk φ.f ⋯) ≫
      ((fun R => CostructuredArrow.mk (StructuredArrow.homMk ((isoOfHom L W₂ R.w ⋯).inv ≫ y) ⋯)) R').hom =
    ((fun R => CostructuredArrow.mk (StructuredArrow.homMk ((isoOfHom L W₂ R.w ⋯).inv ≫ y) ⋯)) R).hom
state_after: case h
C₁ : Type u_1
C₂ : Type u_2
inst✝⁸ : Category.{?u.1506, u_1} C₁
inst✝⁷ : Category.{?u.1510, u_2} C₂
W₁ : MorphismProperty C₁
W₂ : MorphismProperty C₂
Φ : LocalizerMorphism W₁ W₂
inst✝⁶ : Φ.IsLocalizedEquivalence
inst✝⁵ : W₁.IsMultiplicative
inst✝⁴ : ∀ (X₂ : C₂), IsConnected (Φ.RightResolution X₂)
inst✝³ : Φ.arrow.HasRightResolutions
inst✝² : W₂.ContainsIdentities
D : Type u_3
inst✝¹ : Category.{?u.2123, u_3} D
L : C₂ ⥤ D
inst✝ : L.IsLocalization W₂
X₂ : C₂
X₃ : D
y : L.obj X₂ ⟶ X₃
R R' : Φ.RightResolution X₂
φ : R ⟶ R'
⊢ (((TwoSquare.mk Φ.functor (Φ.functor ⋙ L) L (𝟭 D) (Φ.functor ⋙ L).rightUnitor.inv).structuredArrowDownwards X₂).map
          (StructuredArrow.homMk φ.f ⋯) ≫
        ((fun R => CostructuredArrow.mk (StructuredArrow.homMk ((isoOfHom L W₂ R.w ⋯).inv ≫ y) ⋯)) R').hom).right =
    ((fun R => CostructuredArrow.mk (StructuredArrow.homMk ((isoOfHom L W₂ R.w ⋯).inv ≫ y) ⋯)) R).hom.right
tactic: ext
state_before: case h
C₁ : Type u_1
C₂ : Type u_2
inst✝⁸ : Category.{?u.1506, u_1} C₁
inst✝⁷ : Category.{?u.1510, u_2} C₂
W₁ : MorphismProperty C₁
W₂ : MorphismProperty C₂
Φ : LocalizerMorphism W₁ W₂
inst✝⁶ : Φ.IsLocalizedEquivalence
inst✝⁵ : W₁.IsMultiplicative
inst✝⁴ : ∀ (X₂ : C₂), IsConnected (Φ.RightResolution X₂)
inst✝³ : Φ.arrow.HasRightResolutions
inst✝² : W₂.ContainsIdentities
D : Type u_3
inst✝¹ : Category.{?u.2123, u_3} D
L : C₂ ⥤ D
inst✝ : L.IsLocalization W₂
X₂ : C₂
X₃ : D
y : L.obj X₂ ⟶ X₃
R R' : Φ.RightResolution X₂
φ : R ⟶ R'
⊢ (((TwoSquare.mk Φ.functor (Φ.functor ⋙ L) L (𝟭 D) (Φ.functor ⋙ L).rightUnitor.inv).structuredArrowDownwards X₂).map
          (StructuredArrow.homMk φ.f ⋯) ≫
        ((fun R => CostructuredArrow.mk (StructuredArrow.homMk ((isoOfHom L W₂ R.w ⋯).inv ≫ y) ⋯)) R').hom).right =
    ((fun R => CostructuredArrow.mk (StructuredArrow.homMk ((isoOfHom L W₂ R.w ⋯).inv ≫ y) ⋯)) R).hom.right
state_after: case h
C₁ : Type u_1
C₂ : Type u_2
inst✝⁸ : Category.{?u.1506, u_1} C₁
inst✝⁷ : Category.{?u.1510, u_2} C₂
W₁ : MorphismProperty C₁
W₂ : MorphismProperty C₂
Φ : LocalizerMorphism W₁ W₂
inst✝⁶ : Φ.IsLocalizedEquivalence
inst✝⁵ : W₁.IsMultiplicative
inst✝⁴ : ∀ (X₂ : C₂), IsConnected (Φ.RightResolution X₂)
inst✝³ : Φ.arrow.HasRightResolutions
inst✝² : W₂.ContainsIdentities
D : Type u_3
inst✝¹ : Category.{?u.2123, u_3} D
L : C₂ ⥤ D
inst✝ : L.IsLocalization W₂
X₂ : C₂
X₃ : D
y : L.obj X₂ ⟶ X₃
R R' : Φ.RightResolution X₂
φ : R ⟶ R'
⊢ L.map (Φ.functor.map φ.f) ≫ (isoOfHom L W₂ R'.w ⋯).inv ≫ y = (isoOfHom L W₂ R.w ⋯).inv ≫ y
tactic: dsimp
state_before: case h
C₁ : Type u_1
C₂ : Type u_2
inst✝⁸ : Category.{?u.1506, u_1} C₁
inst✝⁷ : Category.{?u.1510, u_2} C₂
W₁ : MorphismProperty C₁
W₂ : MorphismProperty C₂
Φ : LocalizerMorphism W₁ W₂
inst✝⁶ : Φ.IsLocalizedEquivalence
inst✝⁵ : W₁.IsMultiplicative
inst✝⁴ : ∀ (X₂ : C₂), IsConnected (Φ.RightResolution X₂)
inst✝³ : Φ.arrow.HasRightResolutions
inst✝² : W₂.ContainsIdentities
D : Type u_3
inst✝¹ : Category.{?u.2123, u_3} D
L : C₂ ⥤ D
inst✝ : L.IsLocalization W₂
X₂ : C₂
X₃ : D
y : L.obj X₂ ⟶ X₃
R R' : Φ.RightResolution X₂
φ : R ⟶ R'
⊢ L.map (Φ.functor.map φ.f) ≫ (isoOfHom L W₂ R'.w ⋯).inv ≫ y = (isoOfHom L W₂ R.w ⋯).inv ≫ y
state_after: no goals
tactic: rw [← assoc, ← cancel_epi (isoOfHom L W₂ R.w R.hw).hom,
      isoOfHom_hom, isoOfHom_hom_inv_id_assoc, assoc, ← L.map_comp_assoc,
      φ.comm, isoOfHom_hom_inv_id_assoc]