Theorem: CategoryTheory.MorphismProperty.LeftFraction.Localization.Qiso_inv
File: Mathlib/CategoryTheory/Localization/CalculusOfFractions.lean

Proof steps:
state_before: C : Type u_1
D : Type u_2
inst✝² : Category.{?u.67791, u_1} C
inst✝¹ : Category.{?u.67795, u_2} D
W : MorphismProperty C
inst✝ : W.HasLeftCalculusOfFractions
X Y : C
s : X ⟶ Y
hs : W s
⊢ (Q W).map s ≫ Qinv s hs = 𝟙 ((Q W).obj X)
state_after: C : Type u_1
D : Type u_2
inst✝² : Category.{?u.67791, u_1} C
inst✝¹ : Category.{?u.67795, u_2} D
W : MorphismProperty C
inst✝ : W.HasLeftCalculusOfFractions
X Y : C
s : X ⟶ Y
hs : W s
⊢ homMk (mk s s hs) = 𝟙 ((Q W).obj X)
tactic: rw [Q_map_comp_Qinv]
state_before: C : Type u_1
D : Type u_2
inst✝² : Category.{?u.67791, u_1} C
inst✝¹ : Category.{?u.67795, u_2} D
W : MorphismProperty C
inst✝ : W.HasLeftCalculusOfFractions
X Y : C
s : X ⟶ Y
hs : W s
⊢ homMk (mk s s hs) = 𝟙 ((Q W).obj X)
state_after: case h
C : Type u_1
D : Type u_2
inst✝² : Category.{?u.67791, u_1} C
inst✝¹ : Category.{?u.67795, u_2} D
W : MorphismProperty C
inst✝ : W.HasLeftCalculusOfFractions
X Y : C
s : X ⟶ Y
hs : W s
⊢ LeftFractionRel (mk s s hs) (ofHom W (𝟙 ((Q W).obj X)))
tactic: apply homMk_eq_of_leftFractionRel
state_before: case h
C : Type u_1
D : Type u_2
inst✝² : Category.{?u.67791, u_1} C
inst✝¹ : Category.{?u.67795, u_2} D
W : MorphismProperty C
inst✝ : W.HasLeftCalculusOfFractions
X Y : C
s : X ⟶ Y
hs : W s
⊢ LeftFractionRel (mk s s hs) (ofHom W (𝟙 ((Q W).obj X)))
state_after: no goals
tactic: exact ⟨_, 𝟙 Y, s, by simp, by simp, by simpa using hs⟩
state_before: C : Type u_1
D : Type u_2
inst✝² : Category.{?u.67791, u_1} C
inst✝¹ : Category.{?u.67795, u_2} D
W : MorphismProperty C
inst✝ : W.HasLeftCalculusOfFractions
X Y : C
s : X ⟶ Y
hs : W s
⊢ Qinv s hs ≫ (Q W).map s = 𝟙 ((Q W).obj Y)
state_after: C : Type u_1
D : Type u_2
inst✝² : Category.{?u.67791, u_1} C
inst✝¹ : Category.{?u.67795, u_2} D
W : MorphismProperty C
inst✝ : W.HasLeftCalculusOfFractions
X Y : C
s : X ⟶ Y
hs : W s
⊢ homMk (ofInv s hs) ≫ homMk (ofHom W s) = 𝟙 ((Q W).obj Y)
tactic: dsimp only [Qinv, Q_map]
state_before: C : Type u_1
D : Type u_2
inst✝² : Category.{?u.67791, u_1} C
inst✝¹ : Category.{?u.67795, u_2} D
W : MorphismProperty C
inst✝ : W.HasLeftCalculusOfFractions
X Y : C
s : X ⟶ Y
hs : W s
⊢ homMk (ofInv s hs) ≫ homMk (ofHom W s) = 𝟙 ((Q W).obj Y)
state_after: C : Type u_1
D : Type u_2
inst✝² : Category.{?u.67791, u_1} C
inst✝¹ : Category.{?u.67795, u_2} D
W : MorphismProperty C
inst✝ : W.HasLeftCalculusOfFractions
X Y : C
s : X ⟶ Y
hs : W s
⊢ homMk ((ofInv s hs).comp₀ (ofHom W s) (ofHom W (𝟙 Y))) = 𝟙 ((Q W).obj Y)
tactic: rw [homMk_comp_homMk (ofInv s hs) (ofHom W s) (ofHom W (𝟙 Y)) (by simp)]
state_before: C : Type u_1
D : Type u_2
inst✝² : Category.{?u.67791, u_1} C
inst✝¹ : Category.{?u.67795, u_2} D
W : MorphismProperty C
inst✝ : W.HasLeftCalculusOfFractions
X Y : C
s : X ⟶ Y
hs : W s
⊢ homMk ((ofInv s hs).comp₀ (ofHom W s) (ofHom W (𝟙 Y))) = 𝟙 ((Q W).obj Y)
state_after: case h
C : Type u_1
D : Type u_2
inst✝² : Category.{?u.67791, u_1} C
inst✝¹ : Category.{?u.67795, u_2} D
W : MorphismProperty C
inst✝ : W.HasLeftCalculusOfFractions
X Y : C
s : X ⟶ Y
hs : W s
⊢ LeftFractionRel ((ofInv s hs).comp₀ (ofHom W s) (ofHom W (𝟙 Y))) (ofHom W (𝟙 ((Q W).obj Y)))
tactic: apply homMk_eq_of_leftFractionRel
state_before: case h
C : Type u_1
D : Type u_2
inst✝² : Category.{?u.67791, u_1} C
inst✝¹ : Category.{?u.67795, u_2} D
W : MorphismProperty C
inst✝ : W.HasLeftCalculusOfFractions
X Y : C
s : X ⟶ Y
hs : W s
⊢ LeftFractionRel ((ofInv s hs).comp₀ (ofHom W s) (ofHom W (𝟙 Y))) (ofHom W (𝟙 ((Q W).obj Y)))
state_after: no goals
tactic: exact ⟨_, 𝟙 Y, 𝟙 Y, by simp, by simp, by simpa using W.id_mem Y⟩