@@ -137,6 +137,9 @@ def object_to_sort : has_coe_to_sort C (Type (max u v)) :=
137
137
138
138
local attribute [instance] object_to_sort
139
139
140
+ localized " attribute [instance] category_theory.abelian.pseudoelement.object_to_sort"
141
+ in pseudoelement
142
+
140
143
/-- A coercion from an arrow with codomain `P` to its associated pseudoelement. -/
141
144
def over_to_sort {P : C} : has_coe (over P) (pseudoelement P) :=
142
145
⟨quot.mk (pseudo_equal P)⟩
@@ -160,6 +163,8 @@ def hom_to_fun {P Q : C} : has_coe_to_fun (P ⟶ Q) (λ _, P → Q) := ⟨pseudo
160
163
161
164
local attribute [instance] hom_to_fun
162
165
166
+ localized " attribute [instance] category_theory.abelian.pseudoelement.hom_to_fun" in pseudoelement
167
+
163
168
lemma pseudo_apply_mk {P Q : C} (f : P ⟶ Q) (a : over P) : f ⟦a⟧ = ⟦a.hom ≫ f⟧ :=
164
169
rfl
165
170
@@ -231,12 +236,15 @@ quotient.induction_on a $ λ a',
231
236
by { rw [pseudo_zero_def, pseudo_apply_mk], simp }
232
237
233
238
/-- An extensionality lemma for being the zero arrow. -/
234
- @[ext] theorem zero_morphism_ext {P Q : C} (f : P ⟶ Q) : (∀ a, f a = 0 ) → f = 0 :=
239
+ theorem zero_morphism_ext {P Q : C} (f : P ⟶ Q) : (∀ a, f a = 0 ) → f = 0 :=
235
240
λ h, by { rw ←category.id_comp f, exact (pseudo_zero_iff ((𝟙 P ≫ f) : over Q)).1 (h (𝟙 P)) }
236
241
237
- @[ext] theorem zero_morphism_ext' {P Q : C} (f : P ⟶ Q) : (∀ a, f a = 0 ) → 0 = f :=
242
+ theorem zero_morphism_ext' {P Q : C} (f : P ⟶ Q) : (∀ a, f a = 0 ) → 0 = f :=
238
243
eq.symm ∘ zero_morphism_ext f
239
244
245
+ localized " attribute [ext] category_theory.abelian.pseudoelement.zero_morphism_ext
246
+ category_theory.abelian.pseudoelement.zero_morphism_ext'" in pseudoelement
247
+
240
248
theorem eq_zero_iff {P Q : C} (f : P ⟶ Q) : f = 0 ↔ ∀ a, f a = 0 :=
241
249
⟨λ h a, by simp [h], zero_morphism_ext _⟩
242
250
0 commit comments