Theorem: CategoryTheory.Localization.SmallShiftedHom.equiv_mk₀
File: Mathlib/CategoryTheory/Localization/SmallShiftedHom.lean

Proof steps:
state_before: C : Type u₁
inst✝⁹ : Category.{v₁, u₁} C
D : Type u₂
inst✝⁸ : Category.{v₂, u₂} D
W : MorphismProperty C
M : Type w'
inst✝⁷ : AddMonoid M
inst✝⁶ : HasShift C M
inst✝⁵ : HasShift D M
inst✝⁴ : W.IsCompatibleWithShift M
L : C ⥤ D
inst✝³ : L.IsLocalization W
inst✝² : HasShift D M
inst✝¹ : L.CommShift M
X Y Z T : C
inst✝ : HasSmallLocalizedShiftedHom W M X Y
m₀ : M
hm₀ : m₀ = 0
f : X ⟶ Y
⊢ (equiv W L) (mk₀ W m₀ hm₀ f) = ShiftedHom.mk₀ m₀ hm₀ (L.map f)
state_after: C : Type u₁
inst✝⁹ : Category.{v₁, u₁} C
D : Type u₂
inst✝⁸ : Category.{v₂, u₂} D
W : MorphismProperty C
M : Type w'
inst✝⁷ : AddMonoid M
inst✝⁶ : HasShift C M
inst✝⁵ : HasShift D M
inst✝⁴ : W.IsCompatibleWithShift M
L : C ⥤ D
inst✝³ : L.IsLocalization W
inst✝² : HasShift D M
inst✝¹ : L.CommShift M
X Y Z T : C
inst✝ : HasSmallLocalizedShiftedHom W M X Y
f : X ⟶ Y
⊢ (equiv W L) (mk₀ W 0 ⋯ f) = ShiftedHom.mk₀ 0 ⋯ (L.map f)
tactic: subst hm₀
state_before: C : Type u₁
inst✝⁹ : Category.{v₁, u₁} C
D : Type u₂
inst✝⁸ : Category.{v₂, u₂} D
W : MorphismProperty C
M : Type w'
inst✝⁷ : AddMonoid M
inst✝⁶ : HasShift C M
inst✝⁵ : HasShift D M
inst✝⁴ : W.IsCompatibleWithShift M
L : C ⥤ D
inst✝³ : L.IsLocalization W
inst✝² : HasShift D M
inst✝¹ : L.CommShift M
X Y Z T : C
inst✝ : HasSmallLocalizedShiftedHom W M X Y
f : X ⟶ Y
⊢ (equiv W L) (mk₀ W 0 ⋯ f) = ShiftedHom.mk₀ 0 ⋯ (L.map f)
state_after: C : Type u₁
inst✝⁹ : Category.{v₁, u₁} C
D : Type u₂
inst✝⁸ : Category.{v₂, u₂} D
W : MorphismProperty C
M : Type w'
inst✝⁷ : AddMonoid M
inst✝⁶ : HasShift C M
inst✝⁵ : HasShift D M
inst✝⁴ : W.IsCompatibleWithShift M
L : C ⥤ D
inst✝³ : L.IsLocalization W
inst✝² : HasShift D M
inst✝¹ : L.CommShift M
X Y Z T : C
inst✝ : HasSmallLocalizedShiftedHom W M X Y
f : X ⟶ Y
⊢ ((L.commShiftIso 0).app Y).homToEquiv
      ((SmallHom.equiv W L) (SmallHom.mk W (f ≫ (shiftFunctorZero' C 0 ⋯).inv.app Y))) =
    ShiftedHom.mk₀ 0 ⋯ (L.map f)
tactic: dsimp [equiv, mk₀]
state_before: C : Type u₁
inst✝⁹ : Category.{v₁, u₁} C
D : Type u₂
inst✝⁸ : Category.{v₂, u₂} D
W : MorphismProperty C
M : Type w'
inst✝⁷ : AddMonoid M
inst✝⁶ : HasShift C M
inst✝⁵ : HasShift D M
inst✝⁴ : W.IsCompatibleWithShift M
L : C ⥤ D
inst✝³ : L.IsLocalization W
inst✝² : HasShift D M
inst✝¹ : L.CommShift M
X Y Z T : C
inst✝ : HasSmallLocalizedShiftedHom W M X Y
f : X ⟶ Y
⊢ ((L.commShiftIso 0).app Y).homToEquiv
      ((SmallHom.equiv W L) (SmallHom.mk W (f ≫ (shiftFunctorZero' C 0 ⋯).inv.app Y))) =
    ShiftedHom.mk₀ 0 ⋯ (L.map f)
state_after: C : Type u₁
inst✝⁹ : Category.{v₁, u₁} C
D : Type u₂
inst✝⁸ : Category.{v₂, u₂} D
W : MorphismProperty C
M : Type w'
inst✝⁷ : AddMonoid M
inst✝⁶ : HasShift C M
inst✝⁵ : HasShift D M
inst✝⁴ : W.IsCompatibleWithShift M
L : C ⥤ D
inst✝³ : L.IsLocalization W
inst✝² : HasShift D M
inst✝¹ : L.CommShift M
X Y Z T : C
inst✝ : HasSmallLocalizedShiftedHom W M X Y
f : X ⟶ Y
⊢ (L.map f ≫ L.map ((shiftFunctorZero' C 0 ⋯).inv.app Y)) ≫ ((L.commShiftIso 0).app Y).hom =
    ShiftedHom.mk₀ 0 ⋯ (L.map f)
tactic: erw [SmallHom.equiv_mk, Iso.homToEquiv_apply, Functor.map_comp]
state_before: C : Type u₁
inst✝⁹ : Category.{v₁, u₁} C
D : Type u₂
inst✝⁸ : Category.{v₂, u₂} D
W : MorphismProperty C
M : Type w'
inst✝⁷ : AddMonoid M
inst✝⁶ : HasShift C M
inst✝⁵ : HasShift D M
inst✝⁴ : W.IsCompatibleWithShift M
L : C ⥤ D
inst✝³ : L.IsLocalization W
inst✝² : HasShift D M
inst✝¹ : L.CommShift M
X Y Z T : C
inst✝ : HasSmallLocalizedShiftedHom W M X Y
f : X ⟶ Y
⊢ (L.map f ≫ L.map ((shiftFunctorZero' C 0 ⋯).inv.app Y)) ≫ ((L.commShiftIso 0).app Y).hom =
    ShiftedHom.mk₀ 0 ⋯ (L.map f)
state_after: C : Type u₁
inst✝⁹ : Category.{v₁, u₁} C
D : Type u₂
inst✝⁸ : Category.{v₂, u₂} D
W : MorphismProperty C
M : Type w'
inst✝⁷ : AddMonoid M
inst✝⁶ : HasShift C M
inst✝⁵ : HasShift D M
inst✝⁴ : W.IsCompatibleWithShift M
L : C ⥤ D
inst✝³ : L.IsLocalization W
inst✝² : HasShift D M
inst✝¹ : L.CommShift M
X Y Z T : C
inst✝ : HasSmallLocalizedShiftedHom W M X Y
f : X ⟶ Y
⊢ (L.map f ≫ L.map ((shiftFunctorZero C M).inv.app Y ≫ 𝟙 ((shiftFunctor C 0).obj Y))) ≫ (L.commShiftIso 0).hom.app Y =
    L.map f ≫ (shiftFunctorZero D M).inv.app (L.obj Y) ≫ 𝟙 ((shiftFunctor D 0).obj (L.obj Y))
tactic: dsimp [equiv, mk₀, ShiftedHom.mk₀, shiftFunctorZero']
state_before: C : Type u₁
inst✝⁹ : Category.{v₁, u₁} C
D : Type u₂
inst✝⁸ : Category.{v₂, u₂} D
W : MorphismProperty C
M : Type w'
inst✝⁷ : AddMonoid M
inst✝⁶ : HasShift C M
inst✝⁵ : HasShift D M
inst✝⁴ : W.IsCompatibleWithShift M
L : C ⥤ D
inst✝³ : L.IsLocalization W
inst✝² : HasShift D M
inst✝¹ : L.CommShift M
X Y Z T : C
inst✝ : HasSmallLocalizedShiftedHom W M X Y
f : X ⟶ Y
⊢ (L.map f ≫ L.map ((shiftFunctorZero C M).inv.app Y ≫ 𝟙 ((shiftFunctor C 0).obj Y))) ≫ (L.commShiftIso 0).hom.app Y =
    L.map f ≫ (shiftFunctorZero D M).inv.app (L.obj Y) ≫ 𝟙 ((shiftFunctor D 0).obj (L.obj Y))
state_after: no goals
tactic: simp only [comp_id, L.commShiftIso_zero, Functor.CommShift.isoZero_hom_app, assoc,
    ← Functor.map_comp_assoc, Iso.inv_hom_id_app, Functor.id_obj, Functor.map_id, id_comp]