File: Mathlib/CategoryTheory/Localization/LocalizerMorphism.lean

full_name: CategoryTheory.LocalizerMorphism
code: /-- If `W₁ : MorphismProperty C₁` and `W₂ : MorphismProperty C₂`, a `LocalizerMorphism W₁ W₂`
is the datum of a functor `C₁ ⥤ C₂` which sends morphisms in `W₁` to morphisms in `W₂` -/
structure LocalizerMorphism where
  /-- a functor between the two categories -/
  functor : C₁ ⥤ C₂
  /-- the functor is compatible with the `MorphismProperty` -/
  map : W₁ ≤ W₂.inverseImage functor
goal: Type (max (max (max u₁ u₂) v₁) v₂)

full_name: CategoryTheory.LocalizerMorphism.map
code: /-- If `W₁ : MorphismProperty C₁` and `W₂ : MorphismProperty C₂`, a `LocalizerMorphism W₁ W₂`
is the datum of a functor `C₁ ⥤ C₂` which sends morphisms in `W₁` to morphisms in `W₂` -/
structure LocalizerMorphism where
  /-- a functor between the two categories -/
  functor : C₁ ⥤ C₂
  /-- the functor is compatible with the `MorphismProperty` -/
  map : W₁ ≤ W₂.inverseImage functor
goal: W₁ ≤ W₂.inverseImage self.functor

full_name: CategoryTheory.LocalizerMorphism.functor
code: /-- If `W₁ : MorphismProperty C₁` and `W₂ : MorphismProperty C₂`, a `LocalizerMorphism W₁ W₂`
is the datum of a functor `C₁ ⥤ C₂` which sends morphisms in `W₁` to morphisms in `W₂` -/
structure LocalizerMorphism where
  /-- a functor between the two categories -/
  functor : C₁ ⥤ C₂
  /-- the functor is compatible with the `MorphismProperty` -/
  map : W₁ ≤ W₂.inverseImage functor
goal: CategoryTheory.Functor C₁ C₂

full_name: CategoryTheory.LocalizerMorphism.id_functor
code: /-- The identity functor as a morphism of localizers. -/
@[simps]
def id : LocalizerMorphism W₁ W₁ 
goal: (CategoryTheory.LocalizerMorphism.id W₁).functor = CategoryTheory.Functor.id C₁

full_name: CategoryTheory.LocalizerMorphism.id
code: /-- The identity functor as a morphism of localizers. -/
@[simps]
def id : LocalizerMorphism W₁ W₁ 
goal: CategoryTheory.LocalizerMorphism W₁ W₁

full_name: CategoryTheory.LocalizerMorphism.comp
code: /-- The composition of two localizers morphisms. -/
@[simps]
def comp (Φ : LocalizerMorphism W₁ W₂) (Ψ : LocalizerMorphism W₂ W₃) :
    LocalizerMorphism W₁ W₃ 
goal: CategoryTheory.LocalizerMorphism W₁ W₃

full_name: CategoryTheory.LocalizerMorphism.comp_functor
code: /-- The composition of two localizers morphisms. -/
@[simps]
def comp (Φ : LocalizerMorphism W₁ W₂) (Ψ : LocalizerMorphism W₂ W₃) :
    LocalizerMorphism W₁ W₃ 
goal: (Φ.comp Ψ).functor = Φ.functor.comp Ψ.functor

full_name: CategoryTheory.LocalizerMorphism.op
code: /-- The opposite localizer morphism `LocalizerMorphism W₁.op W₂.op` deduced
from `Φ : LocalizerMorphism W₁ W₂`. -/
@[simps]
def op : LocalizerMorphism W₁.op W₂.op 
goal: CategoryTheory.LocalizerMorphism W₁.op W₂.op

full_name: CategoryTheory.LocalizerMorphism.op_functor
code: /-- The opposite localizer morphism `LocalizerMorphism W₁.op W₂.op` deduced
from `Φ : LocalizerMorphism W₁ W₂`. -/
@[simps]
def op : LocalizerMorphism W₁.op W₂.op 
goal: Φ.op.functor = Φ.functor.op

full_name: CategoryTheory.LocalizerMorphism.inverts
code: lemma inverts : W₁.IsInvertedBy (Φ.functor ⋙ L₂) 
goal: W₁.IsInvertedBy (Φ.functor.comp L₂)

full_name: CategoryTheory.LocalizerMorphism.localizedFunctor
code: /-- When `Φ : LocalizerMorphism W₁ W₂` and that `L₁` and `L₂` are localization functors
for `W₁` and `W₂`, then `Φ.localizedFunctor L₁ L₂` is the induced functor on the
localized categories. --/
noncomputable def localizedFunctor : D₁ ⥤ D₂ 
goal: CategoryTheory.Functor D₁ D₂

full_name: CategoryTheory.LocalizerMorphism.liftingLocalizedFunctor
code: noncomputable instance liftingLocalizedFunctor :
    Lifting L₁ W₁ (Φ.functor ⋙ L₂) (Φ.localizedFunctor L₁ L₂) 
goal: CategoryTheory.Localization.Lifting L₁ W₁ (Φ.functor.comp L₂) (Φ.localizedFunctor L₁ L₂)

full_name: CategoryTheory.LocalizerMorphism.catCommSq
code: /-- The 2-commutative square expressing that `Φ.localizedFunctor L₁ L₂` lifts the
functor `Φ.functor`  -/
noncomputable instance catCommSq : CatCommSq Φ.functor L₁ L₂ (Φ.localizedFunctor L₁ L₂) 
goal: CategoryTheory.CatCommSq Φ.functor L₁ L₂ (Φ.localizedFunctor L₁ L₂)

full_name: CategoryTheory.LocalizerMorphism.isEquivalence_imp
code: /-- If a localizer morphism induces an equivalence on some choice of localized categories,
it will be so for any choice of localized categoriees. -/
lemma isEquivalence_imp [G.IsEquivalence] : G'.IsEquivalence 
goal: G'.IsEquivalence

full_name: CategoryTheory.LocalizerMorphism.isEquivalence_iff
code: lemma isEquivalence_iff : G.IsEquivalence ↔ G'.IsEquivalence 
goal: G.IsEquivalence ↔ G'.IsEquivalence

full_name: CategoryTheory.LocalizerMorphism.IsLocalizedEquivalence
code: /-- Condition that a `LocalizerMorphism` induces an equivalence on the localized categories -/
class IsLocalizedEquivalence : Prop :=
  /-- the induced functor on the constructed localized categories is an equivalence -/
  isEquivalence : (Φ.localizedFunctor W₁.Q W₂.Q).IsEquivalence
goal: Prop

full_name: CategoryTheory.LocalizerMorphism.IsLocalizedEquivalence.isEquivalence
code: /-- Condition that a `LocalizerMorphism` induces an equivalence on the localized categories -/
class IsLocalizedEquivalence : Prop :=
  /-- the induced functor on the constructed localized categories is an equivalence -/
  isEquivalence : (Φ.localizedFunctor W₁.Q W₂.Q).IsEquivalence
goal: (Φ.localizedFunctor W₁.Q W₂.Q).IsEquivalence

full_name: CategoryTheory.LocalizerMorphism.IsLocalizedEquivalence.mk'
code: lemma IsLocalizedEquivalence.mk' [CatCommSq Φ.functor L₁ L₂ G] [G.IsEquivalence] :
    Φ.IsLocalizedEquivalence 
goal: Φ.IsLocalizedEquivalence

full_name: CategoryTheory.LocalizerMorphism.isEquivalence
code: /-- If a `LocalizerMorphism` is a localized equivalence, then any compatible functor
between the localized categories is an equivalence. -/
lemma isEquivalence [h : Φ.IsLocalizedEquivalence] [CatCommSq Φ.functor L₁ L₂ G] :
    G.IsEquivalence 
goal: G.IsEquivalence

full_name: CategoryTheory.LocalizerMorphism.localizedFunctor_isEquivalence
code: /-- If a `LocalizerMorphism` is a localized equivalence, then the induced functor on
the localized categories is an equivalence -/
instance localizedFunctor_isEquivalence [Φ.IsLocalizedEquivalence] :
    (Φ.localizedFunctor L₁ L₂).IsEquivalence 
goal: (Φ.localizedFunctor L₁ L₂).IsEquivalence

full_name: CategoryTheory.LocalizerMorphism.IsLocalizedEquivalence.of_isLocalization_of_isLocalization
code: /-- When `Φ : LocalizerMorphism W₁ W₂`, if the composition `Φ.functor ⋙ L₂` is a
localization functor for `W₁`, then `Φ` is a localized equivalence. -/
lemma IsLocalizedEquivalence.of_isLocalization_of_isLocalization
    [(Φ.functor ⋙ L₂).IsLocalization W₁] :
    IsLocalizedEquivalence Φ 
goal: Φ.IsLocalizedEquivalence

full_name: CategoryTheory.LocalizerMorphism.IsLocalizedEquivalence.of_equivalence
code: /-- When the underlying functor `Φ.functor` of `Φ : LocalizerMorphism W₁ W₂` is
an equivalence of categories and that `W₁` and `W₂` essentially correspond to each
other via this equivalence, then `Φ` is a localized equivalence. -/
lemma IsLocalizedEquivalence.of_equivalence [Φ.functor.IsEquivalence]
    (h : W₂ ≤ W₁.map Φ.functor) : IsLocalizedEquivalence Φ 
goal: Φ.IsLocalizedEquivalence

full_name: CategoryTheory.LocalizerMorphism.IsLocalizedEquivalence.isLocalization
code: instance IsLocalizedEquivalence.isLocalization [Φ.IsLocalizedEquivalence] :
    (Φ.functor ⋙ L₂).IsLocalization W₁ 
goal: (Φ.functor.comp L₂).IsLocalization W₁

full_name: CategoryTheory.LocalizerMorphism.arrow
code: /-- The localizer morphism from `W₁.arrow` to `W₂.arrow` that is induced by
`Φ : LocalizerMorphism W₁ W₂`. -/
@[simps]
def arrow : LocalizerMorphism W₁.arrow W₂.arrow 
goal: CategoryTheory.LocalizerMorphism W₁.arrow W₂.arrow

full_name: CategoryTheory.LocalizerMorphism.arrow_functor
code: /-- The localizer morphism from `W₁.arrow` to `W₂.arrow` that is induced by
`Φ : LocalizerMorphism W₁ W₂`. -/
@[simps]
def arrow : LocalizerMorphism W₁.arrow W₂.arrow 
goal: Φ.arrow.functor = Φ.functor.mapArrow