@@ -288,19 +288,17 @@ theorem mapDomain_notin_range {f : α → β} (x : α →₀ M) (a : β) (h : a
288288lemma mem_range_of_mapDomain_ne_zero {f : α → β} {x : α →₀ M} {b : β} (h : mapDomain f x b ≠ 0 ) :
289289 b ∈ Set.range f := by contrapose! h; exact mapDomain_notin_range _ _ h
290290
291- @[simp]
292- theorem mapDomain_id : mapDomain id v = v :=
293- sum_single _
291+ -- The linter complains that `mapDomain_id` can be proved from `mapDomain_fun_id` and `id_eq`
292+ -- but this isn't true (at least within most of mathlib)
293+ @ [to_fun (attr := simp) mapDomain_fun_id, nolint simpNF]
294+ lemma mapDomain_id : mapDomain id v = v := sum_single _
295+
296+ lemma mapDomain_fun_comp (f : α → β) (g : β → γ) :
297+ mapDomain (fun a ↦ g (f a)) v = mapDomain g (mapDomain f v) := by
298+ simp [mapDomain, sum_sum_index]
294299
295300theorem mapDomain_comp {f : α → β} {g : β → γ} :
296- mapDomain (g ∘ f) v = mapDomain g (mapDomain f v) := by
297- refine ((sum_sum_index ?_ ?_).trans ?_).symm
298- · intro
299- exact single_zero _
300- · intro
301- exact single_add _
302- refine sum_congr fun _ _ => sum_single_index ?_
303- exact single_zero _
301+ mapDomain (g ∘ f) v = mapDomain g (mapDomain f v) := mapDomain_fun_comp f g
304302
305303@[simp]
306304theorem mapDomain_single {f : α → β} {a : α} {b : M} : mapDomain f (single a b) = single (f a) b :=
@@ -310,7 +308,7 @@ theorem mapDomain_single {f : α → β} {a : α} {b : M} : mapDomain f (single
310308theorem mapDomain_zero {f : α → β} : mapDomain f (0 : α →₀ M) = (0 : β →₀ M) :=
311309 sum_zero_index
312310
313- theorem mapDomain_congr {f g : α → β} (h : ∀ x ∈ v.support, f x = g x) :
311+ @[congr] theorem mapDomain_congr {f g : α → β} (h : ∀ x ∈ v.support, f x = g x) :
314312 v.mapDomain f = v.mapDomain g :=
315313 Finset.sum_congr rfl fun _ H => by simp only [h _ H]
316314
@@ -1070,7 +1068,7 @@ lemma sumElim_eq_add [AddCommMonoid M] (f : α →₀ M) (g : β →₀ M) :
10701068
10711069@[simp] lemma mapDomain_swap_sumElim [AddCommMonoid M] (f : α →₀ M) (g : β →₀ M) :
10721070 mapDomain Sum.swap (sumElim f g) = sumElim g f := by
1073- simp [sumElim_eq_add, mapDomain_add, ← mapDomain_comp, Function.comp_def, add_comm]
1071+ simp [sumElim_eq_add, mapDomain_add, ← mapDomain_comp, add_comm]
10741072
10751073@[to_additive]
10761074lemma prod_sumElim {ι₁ ι₂ α M : Type *} [Zero α] [CommMonoid M]
0 commit comments