@@ -46,6 +46,11 @@ lemma ofArrows_mem_precoverage {X : C} {ι : Type*} {Y : ι → C} {f : ∀ i, Y
4646 .ofArrows Y f ∈ precoverage P X ↔ ∀ i, P (f i) :=
4747 ⟨fun h i ↦ h ⟨i⟩, fun h _ g ⟨i⟩ ↦ h i⟩
4848
49+ @ [simp, grind =]
50+ lemma singleton_mem_precoverage {X Y : C} (f : X ⟶ Y) :
51+ .singleton f ∈ precoverage P Y ↔ P f := by
52+ simp [← Presieve.ofArrows_pUnit.{_, _, 0 }]
53+
4954instance [P.ContainsIdentities] [P.RespectsIso] : P.precoverage.HasIsos where
5055 mem_coverings_of_isIso f _ _ _ := fun ⟨⟩ ↦ P.of_isIso f
5156
145150
146151end HasPullbacks
147152
148- end CategoryTheory.MorphismProperty
153+ end MorphismProperty
154+
155+ /-- The weakest morphism property satisfied by all morphisms in covering families. -/
156+ def Precoverage.morphismProperty (K : Precoverage C) : MorphismProperty C :=
157+ fun _ Y f ↦ ∃ R ∈ K Y, R f
158+
159+ @[simp]
160+ lemma MorphismProperty.morphismProperty_precoverage (P : MorphismProperty C) :
161+ P.precoverage.morphismProperty = P := by
162+ ext X Y f
163+ exact ⟨fun ⟨R, hR, hf⟩ ↦ hR hf, fun hf ↦ ⟨.singleton f, by simpa⟩⟩
164+
165+ namespace Precoverage
166+
167+ variable {K L : Precoverage C} {P : MorphismProperty C}
168+
169+ lemma morphismProperty_le_iff_le_precoverage :
170+ K.morphismProperty ≤ P ↔ K ≤ P.precoverage :=
171+ ⟨fun hle _ R hR _ _ hf ↦ hle _ ⟨R, hR, hf⟩, fun hle _ _ _ ⟨_, hR, hf⟩ ↦ hle _ hR hf⟩
172+
173+ lemma galoisConnection_morphismProperty_precoverage :
174+ GaloisConnection (Precoverage.morphismProperty (C := C)) MorphismProperty.precoverage :=
175+ @Precoverage.morphismProperty_le_iff_le_precoverage _ _
176+
177+ lemma monotone_morphismProperty : Monotone (Precoverage.morphismProperty (C := C)) :=
178+ Precoverage.galoisConnection_morphismProperty_precoverage.monotone_l
179+
180+ lemma le_precoverage_morphismProperty : K ≤ K.morphismProperty.precoverage :=
181+ galoisConnection_morphismProperty_precoverage.le_u_l _
182+
183+ @[simp]
184+ lemma morphismProperty_bot : (⊥ : Precoverage C).morphismProperty = ⊥ :=
185+ Precoverage.galoisConnection_morphismProperty_precoverage.l_bot
186+
187+ @[simp]
188+ lemma morphismProperty_sup : (K ⊔ L).morphismProperty = K.morphismProperty ⊔ L.morphismProperty :=
189+ Precoverage.galoisConnection_morphismProperty_precoverage.l_sup
190+
191+ instance [K.HasIsos] : K.morphismProperty.ContainsIdentities where
192+ id_mem X := ⟨.singleton (𝟙 X), K.mem_coverings_of_isIso _, by simp⟩
193+
194+ @ [simp, grind .]
195+ lemma ZeroHypercover.morphismProperty {X : C} {E : ZeroHypercover.{w} K X} (i : E.I₀) :
196+ K.morphismProperty (E.f i) :=
197+ ⟨_, E.mem₀, ⟨i⟩⟩
198+
199+ end Precoverage
200+
201+ @[simp]
202+ lemma MorphismProperty.precoverage_top : (⊤ : MorphismProperty C).precoverage = ⊤ :=
203+ Precoverage.galoisConnection_morphismProperty_precoverage.u_top
204+
205+ end CategoryTheory
0 commit comments