@@ -97,7 +97,7 @@ theorem sum_ite_self_eq [DecidableEq α] {N : Type*} [AddCommMonoid N] (f : α
97
97
The left hand side of `sum_ite_self_eq` simplifies; this is the variant that is useful for `simp`.
98
98
-/
99
99
@[simp]
100
- theorem if_mem_support [DecidableEq α] {N : Type *} [AddCommMonoid N] (f : α →₀ N) (a : α) :
100
+ theorem if_mem_support [DecidableEq α] {N : Type *} [Zero N] (f : α →₀ N) (a : α) :
101
101
(if a ∈ f.support then f a else 0 ) = f a := by
102
102
simp only [mem_support_iff, ne_eq, ite_eq_left_iff, not_not]
103
103
exact fun h ↦ h.symm
@@ -122,7 +122,7 @@ theorem prod_pow [Fintype α] (f : α →₀ ℕ) (g : α → N) :
122
122
f.prod_fintype _ fun _ ↦ pow_zero _
123
123
124
124
@[to_additive (attr := simp)]
125
- theorem prod_zpow {N} [CommGroup N] [Fintype α] (f : α →₀ ℤ) (g : α → N) :
125
+ theorem prod_zpow {N} [DivisionCommMonoid N] [Fintype α] (f : α →₀ ℤ) (g : α → N) :
126
126
(f.prod fun a b => g a ^ b) = ∏ a, g a ^ f a :=
127
127
f.prod_fintype _ fun _ ↦ zpow_zero _
128
128
@@ -202,12 +202,12 @@ theorem map_finsupp_prod [Zero M] [CommMonoid N] [CommMonoid P] {H : Type*}
202
202
map_prod h _ _
203
203
204
204
@[to_additive]
205
- theorem MonoidHom.coe_finsupp_prod [Zero β] [Monoid N] [CommMonoid P] (f : α →₀ β)
205
+ theorem MonoidHom.coe_finsupp_prod [Zero β] [MulOneClass N] [CommMonoid P] (f : α →₀ β)
206
206
(g : α → β → N →* P) : ⇑(f.prod g) = f.prod fun i fi => ⇑(g i fi) :=
207
207
MonoidHom.coe_finset_prod _ _
208
208
209
209
@[to_additive (attr := simp)]
210
- theorem MonoidHom.finsupp_prod_apply [Zero β] [Monoid N] [CommMonoid P] (f : α →₀ β)
210
+ theorem MonoidHom.finsupp_prod_apply [Zero β] [MulOneClass N] [CommMonoid P] (f : α →₀ β)
211
211
(g : α → β → N →* P) (x : N) : f.prod g x = f.prod fun i fi => g i fi x :=
212
212
MonoidHom.finset_prod_apply _ _ _
213
213
@@ -230,7 +230,7 @@ theorem single_sum [Zero M] [AddCommMonoid N] (s : ι →₀ M) (f : ι → M
230
230
single_finset_sum _ _ _
231
231
232
232
@[to_additive]
233
- theorem prod_neg_index [AddGroup G] [CommMonoid M] {g : α →₀ G} {h : α → G → M}
233
+ theorem prod_neg_index [SubtractionMonoid G] [CommMonoid M] {g : α →₀ G} {h : α → G → M}
234
234
(h0 : ∀ a, h a 0 = 1 ) : (-g).prod h = g.prod fun a b => h a (-b) :=
235
235
prod_mapRange_index h0
236
236
@@ -286,7 +286,7 @@ theorem prod_inv [Zero M] [CommGroup G] {f : α →₀ M} {h : α → M → G} :
286
286
(map_prod (MonoidHom.id G)⁻¹ _ _).symm
287
287
288
288
@[simp]
289
- theorem sum_sub [Zero M] [AddCommGroup G] {f : α →₀ M} {h₁ h₂ : α → M → G} :
289
+ theorem sum_sub [Zero M] [SubtractionCommMonoid G] {f : α →₀ M} {h₁ h₂ : α → M → G} :
290
290
(f.sum fun a b => h₁ a b - h₂ a b) = f.sum h₁ - f.sum h₂ :=
291
291
Finset.sum_sub_distrib
292
292
@@ -350,16 +350,16 @@ def liftAddHom [AddZeroClass M] [AddCommMonoid N] : (α → M →+ N) ≃+ ((α
350
350
exact sum_add
351
351
352
352
@[simp]
353
- theorem liftAddHom_apply [AddCommMonoid M] [AddCommMonoid N] (F : α → M →+ N) (f : α →₀ M) :
353
+ theorem liftAddHom_apply [AddZeroClass M] [AddCommMonoid N] (F : α → M →+ N) (f : α →₀ M) :
354
354
(liftAddHom (α := α) (M := M) (N := N)) F f = f.sum fun x => F x :=
355
355
rfl
356
356
357
357
@[simp]
358
- theorem liftAddHom_symm_apply [AddCommMonoid M] [AddCommMonoid N] (F : (α →₀ M) →+ N) (x : α) :
358
+ theorem liftAddHom_symm_apply [AddZeroClass M] [AddCommMonoid N] (F : (α →₀ M) →+ N) (x : α) :
359
359
(liftAddHom (α := α) (M := M) (N := N)).symm F x = F.comp (singleAddHom x) :=
360
360
rfl
361
361
362
- theorem liftAddHom_symm_apply_apply [AddCommMonoid M] [AddCommMonoid N] (F : (α →₀ M) →+ N) (x : α)
362
+ theorem liftAddHom_symm_apply_apply [AddZeroClass M] [AddCommMonoid N] (F : (α →₀ M) →+ N) (x : α)
363
363
(y : M) : (liftAddHom (α := α) (M := M) (N := N)).symm F x y = F (single x y) :=
364
364
rfl
365
365
@@ -401,24 +401,24 @@ theorem equivFunOnFinite_symm_eq_sum [Fintype α] [AddCommMonoid M] (f : α →
401
401
ext
402
402
simp
403
403
404
- theorem liftAddHom_apply_single [AddCommMonoid M] [AddCommMonoid N] (f : α → M →+ N) (a : α)
404
+ theorem liftAddHom_apply_single [AddZeroClass M] [AddCommMonoid N] (f : α → M →+ N) (a : α)
405
405
(b : M) : (liftAddHom (α := α) (M := M) (N := N)) f (single a b) = f a b :=
406
406
sum_single_index (f a).map_zero
407
407
408
408
@[simp]
409
- theorem liftAddHom_comp_single [AddCommMonoid M] [AddCommMonoid N] (f : α → M →+ N) (a : α) :
409
+ theorem liftAddHom_comp_single [AddZeroClass M] [AddCommMonoid N] (f : α → M →+ N) (a : α) :
410
410
((liftAddHom (α := α) (M := M) (N := N)) f).comp (singleAddHom a) = f a :=
411
411
AddMonoidHom.ext fun b => liftAddHom_apply_single f a b
412
412
413
- theorem comp_liftAddHom [AddCommMonoid M] [AddCommMonoid N] [AddCommMonoid P] (g : N →+ P)
413
+ theorem comp_liftAddHom [AddZeroClass M] [AddCommMonoid N] [AddCommMonoid P] (g : N →+ P)
414
414
(f : α → M →+ N) :
415
415
g.comp ((liftAddHom (α := α) (M := M) (N := N)) f) =
416
416
(liftAddHom (α := α) (M := M) (N := P)) fun a => g.comp (f a) :=
417
417
liftAddHom.symm_apply_eq.1 <|
418
418
funext fun a => by
419
419
rw [liftAddHom_symm_apply, AddMonoidHom.comp_assoc, liftAddHom_comp_single]
420
420
421
- theorem sum_sub_index [AddCommGroup β] [AddCommGroup γ] {f g : α →₀ β} {h : α → β → γ}
421
+ theorem sum_sub_index [AddGroup β] [AddCommGroup γ] {f g : α →₀ β} {h : α → β → γ}
422
422
(h_sub : ∀ a b₁ b₂, h a (b₁ - b₂) = h a b₁ - h a b₂) : (f - g).sum h = f.sum h - g.sum h :=
423
423
((liftAddHom (α := α) (M := β) (N := γ)) fun a =>
424
424
AddMonoidHom.ofMapSub (h a) (h_sub a)).map_sub f g
@@ -437,7 +437,7 @@ theorem prod_finset_sum_index [AddCommMonoid M] [CommMonoid N] {s : Finset ι} {
437
437
rw [prod_cons, ih, sum_cons, prod_add_index' h_zero h_add]
438
438
439
439
@[to_additive]
440
- theorem prod_sum_index [AddCommMonoid M] [AddCommMonoid N] [CommMonoid P] {f : α →₀ M}
440
+ theorem prod_sum_index [Zero M] [AddCommMonoid N] [CommMonoid P] {f : α →₀ M}
441
441
{g : α → M → β →₀ N} {h : β → N → P} (h_zero : ∀ a, h a 0 = 1 )
442
442
(h_add : ∀ a b₁ b₂, h a (b₁ + b₂) = h a b₁ * h a b₂) :
443
443
(f.sum g).prod h = f.prod fun a b => (g a b).prod h :=
@@ -490,7 +490,7 @@ theorem prod_add_index_of_disjoint [AddCommMonoid M] {f1 f2 : α →₀ M}
490
490
classical simp_rw [← this hd, ← this hd.symm, add_comm (f2 _), Finsupp.prod, support_add_eq hd,
491
491
prod_union hd, add_apply]
492
492
493
- theorem prod_dvd_prod_of_subset_of_dvd [AddCommMonoid M] [CommMonoid N] {f1 f2 : α →₀ M}
493
+ theorem prod_dvd_prod_of_subset_of_dvd [Zero M] [CommMonoid N] {f1 f2 : α →₀ M}
494
494
{g1 g2 : α → M → N} (h1 : f1.support ⊆ f2.support)
495
495
(h2 : ∀ a : α, a ∈ f1.support → g1 a (f1 a) ∣ g2 a (f2 a)) : f1.prod g1 ∣ f2.prod g2 := by
496
496
classical
0 commit comments