Skip to content

Commit bb39487

Browse files
committed
feat(CategoryTheory/ObjectProperty): preservation of limits is closed under isomorphisms (#41036)
This is only the translation of this statement in terms of some `ObjectProperty` in functor categories.
1 parent 23f4bd6 commit bb39487

2 files changed

Lines changed: 27 additions & 0 deletions

File tree

Mathlib/CategoryTheory/ObjectProperty/CompleteLattice.lean

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,13 @@ instance [∀ a, (P a).IsClosedUnderIsomorphisms] :
9797
simp only [isClosedUnderIsomorphisms_iff_isoClosure_eq_self,
9898
isoClosure_iSup, isoClosure_eq_self]
9999

100+
instance [∀ a, (P a).IsClosedUnderIsomorphisms] :
101+
((⨅ (a : α), P a)).IsClosedUnderIsomorphisms where
102+
of_iso e h := by
103+
simp only [iInf_apply, iInf_Prop_eq] at h ⊢
104+
intro a
105+
exact (P a).prop_of_iso e (h a)
106+
100107
end
101108

102109
@[push]

Mathlib/CategoryTheory/ObjectProperty/FunctorCategory/PreservesLimits.lean

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,9 @@ lemma congr_preservesLimit {F F' : K ⥤ J} (e : F ≅ F') :
4545
exact ⟨fun h ↦ preservesLimit_of_iso_diagram _ e,
4646
fun h ↦ preservesLimit_of_iso_diagram _ e.symm⟩
4747

48+
instance (F : K ⥤ J) : (preservesLimit (C := C) F).IsClosedUnderIsomorphisms where
49+
of_iso e _ := preservesLimit_of_natIso _ e
50+
4851
variable {K} in
4952
/-- The property of objects in the functor category `J ⥤ C`
5053
which preserves the colimit of a functor `F : K ⥤ J`. -/
@@ -61,6 +64,9 @@ lemma congr_preservesColimit {F F' : K ⥤ J} (e : F ≅ F') :
6164
exact ⟨fun h ↦ preservesColimit_of_iso_diagram _ e,
6265
fun h ↦ preservesColimit_of_iso_diagram _ e.symm⟩
6366

67+
instance (F : K ⥤ J) : (preservesColimit (C := C) F).IsClosedUnderIsomorphisms where
68+
of_iso e _ := preservesColimit_of_natIso _ e
69+
6470
/-- The property of objects in the functor category `J ⥤ C`
6571
which preserves limits of shape `K`. -/
6672
abbrev preservesLimitsOfShape : ObjectProperty (J ⥤ C) := PreservesLimitsOfShape K
@@ -84,6 +90,10 @@ lemma congr_preservesLimitsOfShape (e : K ≌ K') :
8490
exact ⟨fun _ ↦ preservesLimitsOfShape_of_equiv e _,
8591
fun _ ↦ preservesLimitsOfShape_of_equiv e.symm _⟩
8692

93+
instance : (preservesLimitsOfShape (J := J) (C := C) K).IsClosedUnderIsomorphisms := by
94+
rw [preservesLimitsOfShape_eq_iSup]
95+
infer_instance
96+
8797
/-- The property of objects in the functor category `J ⥤ C`
8898
which preserves colimits of shape `K`. -/
8999
abbrev preservesColimitsOfShape : ObjectProperty (J ⥤ C) := PreservesColimitsOfShape K
@@ -107,6 +117,10 @@ lemma congr_preservesColimitsOfShape (e : K ≌ K') :
107117
exact ⟨fun _ ↦ preservesColimitsOfShape_of_equiv e _,
108118
fun _ ↦ preservesColimitsOfShape_of_equiv e.symm _⟩
109119

120+
instance : (preservesColimitsOfShape (J := J) (C := C) K).IsClosedUnderIsomorphisms := by
121+
rw [preservesColimitsOfShape_eq_iSup]
122+
infer_instance
123+
110124
/-- The property of objects in the functor category `J ⥤ C`
111125
which preserves finite limits. -/
112126
abbrev preservesFiniteLimits : ObjectProperty (J ⥤ C) := PreservesFiniteLimits
@@ -115,10 +129,16 @@ abbrev preservesFiniteLimits : ObjectProperty (J ⥤ C) := PreservesFiniteLimits
115129
lemma preservesFiniteLimits_iff (F : J ⥤ C) :
116130
preservesFiniteLimits F ↔ PreservesFiniteLimits F := Iff.rfl
117131

132+
instance : (preservesFiniteLimits (J := J) (C := C)).IsClosedUnderIsomorphisms where
133+
of_iso e _ := preservesFiniteLimits_of_natIso e
134+
118135
/-- The property of objects in the functor category `J ⥤ C`
119136
which preserves finite colimits. -/
120137
abbrev preservesFiniteColimits : ObjectProperty (J ⥤ C) := PreservesFiniteColimits
121138

139+
instance : (preservesFiniteColimits (J := J) (C := C)).IsClosedUnderIsomorphisms where
140+
of_iso e _ := preservesFiniteColimits_of_natIso e
141+
122142
@[simp]
123143
lemma preservesFiniteColimits_iff (F : J ⥤ C) :
124144
preservesFiniteColimits F ↔ PreservesFiniteColimits F := Iff.rfl

0 commit comments

Comments
 (0)