Theorem: CategoryTheory.Functor.IsLocalization.of_equivalence_target
File: Mathlib/CategoryTheory/Localization/Predicate.lean

tactic: have h : W.IsInvertedBy L' := by
  rw [← MorphismProperty.IsInvertedBy.iff_of_iso W e]
  exact MorphismProperty.IsInvertedBy.of_comp W L (Localization.inverts L W) eq.functor
state_before: C : Type u_4
D : Type u_6
inst✝⁴ : Category C
inst✝³ : Category D
L : C ⥤ D
W : MorphismProperty C
E✝ : Type ?u.77743
inst✝² : Category E✝
E : Type u_1
inst✝¹ : Category E
L' : C ⥤ E
eq : D ≌ E
inst✝ : IsLocalization L W
e : L ⋙ eq.functor ≅ L'
⊢ IsLocalization L' W

tactic: let F₁ := Localization.Construction.lift L (Localization.inverts L W)
state_before: C : Type u_4
D : Type u_6
inst✝⁴ : Category C
inst✝³ : Category D
L : C ⥤ D
W : MorphismProperty C
E✝ : Type ?u.77743
inst✝² : Category E✝
E : Type u_1
inst✝¹ : Category E
L' : C ⥤ E
eq : D ≌ E
inst✝ : IsLocalization L W
e : L ⋙ eq.functor ≅ L'
h : MorphismProperty.IsInvertedBy W L'
⊢ IsLocalization L' W

tactic: let F₂ := Localization.Construction.lift L' h
state_before: C : Type u_4
D : Type u_6
inst✝⁴ : Category C
inst✝³ : Category D
L : C ⥤ D
W : MorphismProperty C
E✝ : Type ?u.77743
inst✝² : Category E✝
E : Type u_1
inst✝¹ : Category E
L' : C ⥤ E
eq : D ≌ E
inst✝ : IsLocalization L W
e : L ⋙ eq.functor ≅ L'
h : MorphismProperty.IsInvertedBy W L'
F₁ : MorphismProperty.Localization W ⥤ D := Construction.lift L (_ : MorphismProperty.IsInvertedBy W L)
⊢ IsLocalization L' W

tactic: let e' : F₁ ⋙ eq.functor ≅ F₂ := liftNatIso W.Q W (L ⋙ eq.functor) L' _ _ e
state_before: C : Type u_4
D : Type u_6
inst✝⁴ : Category C
inst✝³ : Category D
L : C ⥤ D
W : MorphismProperty C
E✝ : Type ?u.77743
inst✝² : Category E✝
E : Type u_1
inst✝¹ : Category E
L' : C ⥤ E
eq : D ≌ E
inst✝ : IsLocalization L W
e : L ⋙ eq.functor ≅ L'
h : MorphismProperty.IsInvertedBy W L'
F₁ : MorphismProperty.Localization W ⥤ D := Construction.lift L (_ : MorphismProperty.IsInvertedBy W L)
F₂ : MorphismProperty.Localization W ⥤ E := Construction.lift L' h
⊢ IsLocalization L' W

tactic: exact
  { inverts := h
    nonempty_isEquivalence := Nonempty.intro (IsEquivalence.ofIso e' inferInstance) }
state_before: C : Type u_4
D : Type u_6
inst✝⁴ : Category C
inst✝³ : Category D
L : C ⥤ D
W : MorphismProperty C
E✝ : Type ?u.77743
inst✝² : Category E✝
E : Type u_1
inst✝¹ : Category E
L' : C ⥤ E
eq : D ≌ E
inst✝ : IsLocalization L W
e : L ⋙ eq.functor ≅ L'
h : MorphismProperty.IsInvertedBy W L'
F₁ : MorphismProperty.Localization W ⥤ D := Construction.lift L (_ : MorphismProperty.IsInvertedBy W L)
F₂ : MorphismProperty.Localization W ⥤ E := Construction.lift L' h
e' : F₁ ⋙ eq.functor ≅ F₂ := liftNatIso (MorphismProperty.Q W) W (L ⋙ eq.functor) L' (F₁ ⋙ eq.functor) F₂ e
⊢ IsLocalization L' W

tactic: rw [← MorphismProperty.IsInvertedBy.iff_of_iso W e]
state_before: C : Type u_4
D : Type u_6
inst✝⁴ : Category C
inst✝³ : Category D
L : C ⥤ D
W : MorphismProperty C
E✝ : Type ?u.77743
inst✝² : Category E✝
E : Type u_1
inst✝¹ : Category E
L' : C ⥤ E
eq : D ≌ E
inst✝ : IsLocalization L W
e : L ⋙ eq.functor ≅ L'
⊢ MorphismProperty.IsInvertedBy W L'

tactic: exact MorphismProperty.IsInvertedBy.of_comp W L (Localization.inverts L W) eq.functor
state_before: C : Type u_4
D : Type u_6
inst✝⁴ : Category C
inst✝³ : Category D
L : C ⥤ D
W : MorphismProperty C
E✝ : Type ?u.77743
inst✝² : Category E✝
E : Type u_1
inst✝¹ : Category E
L' : C ⥤ E
eq : D ≌ E
inst✝ : IsLocalization L W
e : L ⋙ eq.functor ≅ L'
⊢ MorphismProperty.IsInvertedBy W (L ⋙ eq.functor)