Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: port CategoryTheory.Localization.Opposite (#2949)
Co-authored-by: Parcly Taxel <reddeloostw@gmail.com> Co-authored-by: Jeremy Tan Jie Rui <reddeloostw@gmail.com>
- Loading branch information
1 parent
b8f0154
commit 86e3d29
Showing
2 changed files
with
68 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,67 @@ | ||
/- | ||
Copyright (c) 2022 Joël Riou. All rights reserved. | ||
Released under Apache 2.0 license as described in the file LICENSE. | ||
Authors: Joël Riou | ||
! This file was ported from Lean 3 source module category_theory.localization.opposite | ||
! leanprover-community/mathlib commit 8efef279998820353694feb6ff5631ed0d309ecc | ||
! Please do not edit these lines, except to modify the commit id | ||
! if you have ported upstream changes. | ||
-/ | ||
import Mathlib.CategoryTheory.Localization.Predicate | ||
|
||
/-! | ||
# Localization of the opposite category | ||
If a functor `L : C ⥤ D` is a localization functor for `W : MorphismProperty C`, it | ||
is shown in this file that `L.op : Cᵒᵖ ⥤ Dᵒᵖ` is also a localization functor. | ||
-/ | ||
|
||
|
||
noncomputable section | ||
|
||
open CategoryTheory CategoryTheory.Category | ||
|
||
namespace CategoryTheory | ||
|
||
variable {C D : Type _} [Category C] [Category D] {L : C ⥤ D} {W : MorphismProperty C} | ||
|
||
namespace Localization | ||
|
||
/-- If `L : C ⥤ D` satisfies the universal property of the localisation | ||
for `W : morphism_property C`, then `L.op` also does. -/ | ||
def StrictUniversalPropertyFixedTarget.op {E : Type _} [Category E] | ||
(h : StrictUniversalPropertyFixedTarget L W Eᵒᵖ) : | ||
StrictUniversalPropertyFixedTarget L.op W.op E | ||
where | ||
inverts := h.inverts.op | ||
lift F hF := (h.lift F.rightOp hF.rightOp).leftOp | ||
fac F hF := by | ||
convert congr_arg Functor.leftOp (h.fac F.rightOp hF.rightOp) | ||
uniq F₁ F₂ eq := | ||
by | ||
suffices F₁.rightOp = F₂.rightOp by | ||
rw [← F₁.rightOp_leftOp_eq, ← F₂.rightOp_leftOp_eq, this] | ||
have eq' := congr_arg Functor.rightOp eq | ||
exact h.uniq _ _ eq' | ||
#align category_theory.localization.strict_universal_property_fixed_target.op CategoryTheory.Localization.StrictUniversalPropertyFixedTarget.op | ||
|
||
instance isLocalization_op : W.Q.op.IsLocalization W.op := | ||
Functor.IsLocalization.mk' W.Q.op W.op (strictUniversalPropertyFixedTargetQ W _).op | ||
(strictUniversalPropertyFixedTargetQ W _).op | ||
#align category_theory.localization.is_localization_op CategoryTheory.Localization.isLocalization_op | ||
|
||
end Localization | ||
|
||
namespace Functor | ||
|
||
instance IsLocalization.op [L.IsLocalization W] : L.op.IsLocalization W.op := | ||
IsLocalization.of_equivalence_target W.Q.op W.op L.op (Localization.equivalenceFromModel L W).op | ||
(NatIso.op (Localization.qCompEquivalenceFromModelFunctorIso L W).symm) | ||
#align category_theory.functor.is_localization.op CategoryTheory.Functor.IsLocalization.op | ||
|
||
end Functor | ||
|
||
end CategoryTheory |