Skip to content

Commit efd09be

Browse files
committed
feat(CategoryTheory/Localization): the calculus of fractions that is deduced from an adjunction (#22748)
If `G ⊣ F` is an adjunction, and `F` is fully faithful, then there is a left calculus of fractions for the inverse image by `G` of the class of isomorphisms. (The dual statement is also obtained.)
1 parent 0668daa commit efd09be

File tree

3 files changed

+67
-0
lines changed

3 files changed

+67
-0
lines changed

Mathlib.lean

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2244,6 +2244,7 @@ import Mathlib.CategoryTheory.Localization.Bousfield
22442244
import Mathlib.CategoryTheory.Localization.CalculusOfFractions
22452245
import Mathlib.CategoryTheory.Localization.CalculusOfFractions.ComposableArrows
22462246
import Mathlib.CategoryTheory.Localization.CalculusOfFractions.Fractions
2247+
import Mathlib.CategoryTheory.Localization.CalculusOfFractions.OfAdjunction
22472248
import Mathlib.CategoryTheory.Localization.CalculusOfFractions.Preadditive
22482249
import Mathlib.CategoryTheory.Localization.Composition
22492250
import Mathlib.CategoryTheory.Localization.Construction
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
/-
2+
Copyright (c) 2025 Joël Riou. All rights reserved.
3+
Released under Apache 2.0 license as described in the file LICENSE.
4+
Authors: Joël Riou
5+
-/
6+
import Mathlib.CategoryTheory.Adjunction.Opposites
7+
import Mathlib.CategoryTheory.Adjunction.FullyFaithful
8+
import Mathlib.CategoryTheory.Localization.CalculusOfFractions
9+
10+
/-!
11+
# The calculus of fractions deduced from an adjunction
12+
13+
If `G ⊣ F` is an adjunction, and `F` is fully faithful,
14+
then there is a left calculus of fractions for
15+
the inverse image by `G` of the class of isomorphisms.
16+
17+
(The dual statement is also obtained.)
18+
19+
-/
20+
21+
namespace CategoryTheory
22+
23+
open MorphismProperty
24+
25+
namespace Adjunction
26+
27+
variable {C₁ C₂ : Type*} [Category C₁] [Category C₂]
28+
{G : C₁ ⥤ C₂} {F : C₂ ⥤ C₁} [F.Full] [F.Faithful]
29+
30+
lemma hasLeftCalculusOfFractions (adj : G ⊣ F) :
31+
((isomorphisms C₂).inverseImage G).HasLeftCalculusOfFractions where
32+
exists_leftFraction X Y φ := by
33+
obtain ⟨W, s, _, f, rfl⟩ := φ.cases
34+
have : IsIso (G.map s) := by assumption
35+
exact ⟨{
36+
f := adj.unit.app X ≫ F.map (inv (G.map s)) ≫ F.map (G.map f)
37+
s := adj.unit.app Y
38+
hs := by
39+
simp only [inverseImage_iff, isomorphisms.iff]
40+
infer_instance }, by
41+
have := adj.unit.naturality s
42+
dsimp at this ⊢
43+
rw [reassoc_of% this, Functor.map_inv, IsIso.hom_inv_id_assoc, adj.unit_naturality]⟩
44+
ext X' X Y f₁ f₂ s _ h := by
45+
have : IsIso (G.map s) := by assumption
46+
refine ⟨_, adj.unit.app Y, ?_, ?_⟩
47+
· simp only [inverseImage_iff, isomorphisms.iff]
48+
infer_instance
49+
· rw [← adj.unit_naturality f₁, ← adj.unit_naturality f₂]
50+
congr 2
51+
rw [← cancel_epi (G.map s), ← G.map_comp, ← G.map_comp, h]
52+
53+
lemma hasRightCalculusOfFractions (adj : F ⊣ G) :
54+
((isomorphisms C₂).inverseImage G).HasRightCalculusOfFractions := by
55+
suffices ((isomorphisms C₂).inverseImage G).op.HasLeftCalculusOfFractions from
56+
inferInstanceAs ((isomorphisms C₂).inverseImage G).op.unop.HasRightCalculusOfFractions
57+
simpa only [← isomorphisms_op] using adj.op.hasLeftCalculusOfFractions
58+
59+
end Adjunction
60+
61+
end CategoryTheory

Mathlib/CategoryTheory/MorphismProperty/Basic.lean

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -441,6 +441,11 @@ theorem epimorphisms.infer_property [hf : Epi f] : (epimorphisms C) f :=
441441

442442
end
443443

444+
lemma isomorphisms_op : (isomorphisms C).op = isomorphisms Cᵒᵖ := by
445+
ext X Y f
446+
simp only [op, isomorphisms.iff]
447+
exact ⟨fun _ ↦ inferInstanceAs (IsIso f.unop.op), fun _ ↦ inferInstance⟩
448+
444449
instance RespectsIso.monomorphisms : RespectsIso (monomorphisms C) := by
445450
apply RespectsIso.mk <;>
446451
· intro X Y Z e f

0 commit comments

Comments
 (0)