Skip to content

Commit 3f230be

Browse files
mckoenjoelriou
andcommitted
feat(CategoryTheory): pullbacks/pushouts/limits/colimits of a class of morphisms (#20157)
Given `P : MorphismProperty C` and `J` a category, we introduce morphisms properties `P.pullbacks`, `P.pushouts`, `P.limitsOfShape J` and `P.colimitsOfShape J` which are obtained from `P` by taking these type of (co)limits. We obtain results like `P.isStableUnderBaseChange_iff_pullbacks_le : P.IsStableUnderBaseChange ↔ P.pullbacks ≤ P`. Co-authored-by: Jack McKoen <104791831+mckoen@users.noreply.github.com> Co-authored-by: Joël Riou <joel.riou@universite-paris-saclay.fr> Co-authored-by: Joël Riou <37772949+joelriou@users.noreply.github.com>
1 parent eb96c83 commit 3f230be

3 files changed

Lines changed: 255 additions & 37 deletions

File tree

Mathlib/CategoryTheory/Localization/FiniteProducts.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ include hW
3838

3939
lemma inverts :
4040
(W.functorCategory (Discrete J)).IsInvertedBy (lim ⋙ L) :=
41-
fun _ _ f hf => Localization.inverts L W _ (hW.lim_map f hf)
41+
fun _ _ f hf => Localization.inverts L W _ (hW.limMap f hf)
4242

4343
variable [W.ContainsIdentities] [Finite J]
4444

Mathlib/CategoryTheory/MorphismProperty/Basic.lean

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,26 @@ lemma ext (W W' : MorphismProperty C) (h : ∀ ⦃X Y : C⦄ (f : X ⟶ Y), W f
6161
lemma top_apply {X Y : C} (f : X ⟶ Y) : (⊤ : MorphismProperty C) f := by
6262
simp only [top_eq]
6363

64+
@[simp]
65+
lemma sSup_iff (S : Set (MorphismProperty C)) {X Y : C} (f : X ⟶ Y) :
66+
sSup S f ↔ ∃ (W : S), W.1 f := by
67+
dsimp [sSup, iSup]
68+
constructor
69+
· rintro ⟨_, ⟨⟨_, ⟨⟨_, ⟨_, h⟩, rfl⟩, rfl⟩⟩, rfl⟩, hf⟩
70+
exact ⟨⟨_, h⟩, hf⟩
71+
· rintro ⟨⟨W, hW⟩, hf⟩
72+
exact ⟨_, ⟨⟨_, ⟨_, ⟨⟨W, hW⟩, rfl⟩⟩, rfl⟩, rfl⟩, hf⟩
73+
74+
@[simp]
75+
lemma iSup_iff {ι : Type*} (W : ι → MorphismProperty C) {X Y : C} (f : X ⟶ Y) :
76+
iSup W f ↔ ∃ i, W i f := by
77+
apply (sSup_iff (Set.range W) f).trans
78+
constructor
79+
· rintro ⟨⟨_, i, rfl⟩, hf⟩
80+
exact ⟨i, hf⟩
81+
· rintro ⟨i, hf⟩
82+
exact ⟨⟨_, i, rfl⟩, hf⟩
83+
6484
/-- The morphism property in `Cᵒᵖ` associated to a morphism property in `C` -/
6585
@[simp]
6686
def op (P : MorphismProperty C) : MorphismProperty Cᵒᵖ := fun _ _ f => P f.unop

0 commit comments

Comments
 (0)