Skip to content
This repository was archived by the owner on Jul 24, 2024. It is now read-only.

Commit 07fb3d7

Browse files
committed
refactor(data/finsupp/antidiagonal): Make antidiagonal a finset (#7595)
Pursuant to discussion [here](https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/antidiagonals.20having.20multiplicity) Refactoring so that `finsupp.antidiagonal` and `multiset.antidiagonal` are finsets. ~~Still TO DO: `multiset.antidiagonal`~~
1 parent 8394e59 commit 07fb3d7

File tree

5 files changed

+53
-48
lines changed

5 files changed

+53
-48
lines changed

src/data/finsupp/antidiagonal.lean

Lines changed: 23 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -24,23 +24,28 @@ variables {α : Type*}
2424
/-- The `finsupp` counterpart of `multiset.antidiagonal`: the antidiagonal of
2525
`s : α →₀ ℕ` consists of all pairs `(t₁, t₂) : (α →₀ ℕ) × (α →₀ ℕ)` such that `t₁ + t₂ = s`.
2626
The finitely supported function `antidiagonal s` is equal to the multiplicities of these pairs. -/
27-
def antidiagonal (f : α →₀ ℕ) : ((α →₀ ℕ) × (α →₀ ℕ)) →₀ ℕ :=
27+
def antidiagonal' (f : α →₀ ℕ) : ((α →₀ ℕ) × (α →₀ ℕ)) →₀ ℕ :=
2828
(f.to_multiset.antidiagonal.map (prod.map multiset.to_finsupp multiset.to_finsupp)).to_finsupp
2929

30-
@[simp] lemma mem_antidiagonal_support {f : α →₀ ℕ} {p : (α →₀ ℕ) × (α →₀ ℕ)} :
31-
p ∈ (antidiagonal f).support ↔ p.1 + p.2 = f :=
30+
/-- The antidiagonal of `s : α →₀ ℕ` is the finset of all pairs `(t₁, t₂) : (α →₀ ℕ) × (α →₀ ℕ)`
31+
such that `t₁ + t₂ = s`. -/
32+
def antidiagonal (f : α →₀ ℕ) : finset ((α →₀ ℕ) × (α →₀ ℕ)) :=
33+
f.antidiagonal'.support
34+
35+
@[simp] lemma mem_antidiagonal {f : α →₀ ℕ} {p : (α →₀ ℕ) × (α →₀ ℕ)} :
36+
p ∈ antidiagonal f ↔ p.1 + p.2 = f :=
3237
begin
3338
rcases p with ⟨p₁, p₂⟩,
34-
simp [antidiagonal, ← and.assoc, ← finsupp.to_multiset.apply_eq_iff_eq]
39+
simp [antidiagonal, antidiagonal', ← and.assoc, ← finsupp.to_multiset.apply_eq_iff_eq]
3540
end
3641

37-
lemma swap_mem_antidiagonal_support {n : α →₀ ℕ} {f : (α →₀ ℕ) × (α →₀ ℕ)} :
38-
f.swap ∈ (antidiagonal n).support ↔ f ∈ (antidiagonal n).support :=
39-
by simp only [mem_antidiagonal_support, add_comm, prod.swap]
42+
lemma swap_mem_antidiagonal {n : α →₀ ℕ} {f : (α →₀ ℕ) × (α →₀ ℕ)} :
43+
f.swap ∈ antidiagonal n ↔ f ∈ antidiagonal n :=
44+
by simp only [mem_antidiagonal, add_comm, prod.swap]
4045

41-
lemma antidiagonal_support_filter_fst_eq (f g : α →₀ ℕ)
46+
lemma antidiagonal_filter_fst_eq (f g : α →₀ ℕ)
4247
[D : Π (p : (α →₀ ℕ) × (α →₀ ℕ)), decidable (p.1 = g)] :
43-
(antidiagonal f).support.filter (λ p, p.1 = g) = if g ≤ f then {(g, f - g)} else ∅ :=
48+
(antidiagonal f).filter (λ p, p.1 = g) = if g ≤ f then {(g, f - g)} else ∅ :=
4449
begin
4550
ext ⟨a, b⟩,
4651
suffices : a = g → (a + b = f ↔ g ≤ f ∧ b = f - g),
@@ -50,9 +55,9 @@ begin
5055
{ rintro ⟨h, rfl⟩, exact nat_add_sub_of_le h }
5156
end
5257

53-
lemma antidiagonal_support_filter_snd_eq (f g : α →₀ ℕ)
58+
lemma antidiagonal_filter_snd_eq (f g : α →₀ ℕ)
5459
[D : Π (p : (α →₀ ℕ) × (α →₀ ℕ)), decidable (p.2 = g)] :
55-
(antidiagonal f).support.filter (λ p, p.2 = g) = if g ≤ f then {(f - g, g)} else ∅ :=
60+
(antidiagonal f).filter (λ p, p.2 = g) = if g ≤ f then {(f - g, g)} else ∅ :=
5661
begin
5762
ext ⟨a, b⟩,
5863
suffices : b = g → (a + b = f ↔ g ≤ f ∧ a = f - g),
@@ -62,20 +67,20 @@ begin
6267
{ rintro ⟨h, rfl⟩, exact nat_sub_add_cancel h }
6368
end
6469

65-
@[simp] lemma antidiagonal_zero : antidiagonal (0 : α →₀ ℕ) = single (0,0) 1 :=
66-
by rw [multiset.to_finsupp_singleton]; refl
70+
@[simp] lemma antidiagonal_zero : antidiagonal (0 : α →₀ ℕ) = singleton (0,0) :=
71+
by rw [antidiagonal, antidiagonal', multiset.to_finsupp_support]; refl
6772

6873
@[to_additive]
69-
lemma prod_antidiagonal_support_swap {M : Type*} [comm_monoid M] (n : α →₀ ℕ)
74+
lemma prod_antidiagonal_swap {M : Type*} [comm_monoid M] (n : α →₀ ℕ)
7075
(f : (α →₀ ℕ) → (α →₀ ℕ) → M) :
71-
∏ p in (antidiagonal n).support, f p.1 p.2 = ∏ p in (antidiagonal n).support, f p.2 p.1 :=
72-
finset.prod_bij (λ p hp, p.swap) (λ p, swap_mem_antidiagonal_support.2) (λ p hp, rfl)
76+
∏ p in antidiagonal n, f p.1 p.2 = ∏ p in antidiagonal n, f p.2 p.1 :=
77+
finset.prod_bij (λ p hp, p.swap) (λ p, swap_mem_antidiagonal.2) (λ p hp, rfl)
7378
(λ p₁ p₂ _ _ h, prod.swap_injective h)
74-
(λ p hp, ⟨p.swap, swap_mem_antidiagonal_support.2 hp, p.swap_swap.symm⟩)
79+
(λ p hp, ⟨p.swap, swap_mem_antidiagonal.2 hp, p.swap_swap.symm⟩)
7580

7681
/-- The set `{m : α →₀ ℕ | m ≤ n}` as a `finset`. -/
7782
def Iic_finset (n : α →₀ ℕ) : finset (α →₀ ℕ) :=
78-
(antidiagonal n).support.image prod.fst
83+
(antidiagonal n).image prod.fst
7984

8085
@[simp] lemma mem_Iic_finset {m n : α →₀ ℕ} : m ∈ Iic_finset n ↔ m ≤ n :=
8186
by simp [Iic_finset, le_iff_exists_add, eq_comm]

src/data/mv_polynomial/basic.lean

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -405,7 +405,7 @@ begin
405405
end
406406

407407
lemma coeff_mul (p q : mv_polynomial σ R) (n : σ →₀ ℕ) :
408-
coeff n (p * q) = ∑ x in (antidiagonal n).support, coeff x.1 p * coeff x.2 q :=
408+
coeff n (p * q) = ∑ x in antidiagonal n, coeff x.1 p * coeff x.2 q :=
409409
begin
410410
rw mul_def,
411411
-- We need to manipulate both sides into a shape to which we can apply `finset.sum_bij_ne_zero`,
@@ -420,7 +420,7 @@ begin
420420
-- We are now ready to show that both sums are equal using `finset.sum_bij_ne_zero`.
421421
apply finset.sum_bij_ne_zero (λ (x : (σ →₀ ℕ) × (σ →₀ ℕ)) _ _, (x.1, x.2)),
422422
{ intros x hx hx',
423-
simp only [mem_antidiagonal_support, eq_self_iff_true, if_false, forall_true_iff],
423+
simp only [mem_antidiagonal, eq_self_iff_true, if_false, forall_true_iff],
424424
contrapose! hx',
425425
rw [if_neg hx'] },
426426
{ rintros ⟨i, j⟩ ⟨k, l⟩ hij hij' hkl hkl',
@@ -430,7 +430,7 @@ begin
430430
{ simp only [mem_support_iff, finset.mem_product],
431431
contrapose! hij',
432432
exact mul_eq_zero_of_ne_zero_imp_eq_zero hij' },
433-
{ rw [mem_antidiagonal_support] at hij,
433+
{ rw [mem_antidiagonal] at hij,
434434
simp only [exists_prop, true_and, ne.def, if_pos hij, hij', not_false_iff] } },
435435
{ intros x hx hx',
436436
simp only [ne.def] at hx' ⊢,
@@ -442,11 +442,11 @@ end
442442
@[simp] lemma coeff_mul_X (m) (s : σ) (p : mv_polynomial σ R) :
443443
coeff (m + single s 1) (p * X s) = coeff m p :=
444444
begin
445-
have : (m, single s 1) ∈ (m + single s 1).antidiagonal.support := mem_antidiagonal_support.2 rfl,
445+
have : (m, single s 1) ∈ (m + single s 1).antidiagonal := mem_antidiagonal.2 rfl,
446446
rw [coeff_mul, ← finset.insert_erase this, finset.sum_insert (finset.not_mem_erase _ _),
447447
finset.sum_eq_zero, add_zero, coeff_X, mul_one],
448448
rintros ⟨i,j⟩ hij,
449-
rw [finset.mem_erase, mem_antidiagonal_support] at hij,
449+
rw [finset.mem_erase, mem_antidiagonal] at hij,
450450
by_cases H : single s 1 = j,
451451
{ subst j, simpa using hij },
452452
{ rw [coeff_X', if_neg H, mul_zero] },

src/data/mv_polynomial/variables.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -295,7 +295,7 @@ begin
295295
contrapose! hd, cases hd,
296296
rw finset.sum_eq_zero,
297297
rintro ⟨d₁, d₂⟩ H,
298-
rw finsupp.mem_antidiagonal_support at H,
298+
rw finsupp.mem_antidiagonal at H,
299299
subst H,
300300
obtain H|H : i ∈ d₁.support ∨ i ∈ d₂.support,
301301
{ simpa only [finset.mem_union] using finsupp.support_add hi, },

src/ring_theory/polynomial/homogeneous.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ begin
9595
by_cases h : coeff d φ = 0;
9696
simp only [*, ne.def, not_false_iff, zero_mul, mul_zero] at * },
9797
specialize hφ aux.1, specialize hψ aux.2,
98-
rw finsupp.mem_antidiagonal_support at hde,
98+
rw finsupp.mem_antidiagonal at hde,
9999
classical,
100100
have hd' : d.support ⊆ d.support ∪ e.support := finset.subset_union_left _ _,
101101
have he' : e.support ⊆ d.support ∪ e.support := finset.subset_union_right _ _,

src/ring_theory/power_series/basic.lean

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -151,10 +151,10 @@ coeff_monomial_same 0 1
151151
lemma monomial_zero_one : monomial R (0 : σ →₀ ℕ) 1 = 1 := rfl
152152

153153
instance : has_mul (mv_power_series σ R) :=
154-
⟨λ φ ψ n, ∑ p in (finsupp.antidiagonal n).support, coeff R p.1 φ * coeff R p.2 ψ⟩
154+
⟨λ φ ψ n, ∑ p in finsupp.antidiagonal n, coeff R p.1 φ * coeff R p.2 ψ⟩
155155

156156
lemma coeff_mul : coeff R n (φ * ψ) =
157-
∑ p in (finsupp.antidiagonal n).support, coeff R p.1 φ * coeff R p.2 ψ := rfl
157+
∑ p in finsupp.antidiagonal n, coeff R p.1 φ * coeff R p.2 ψ := rfl
158158

159159
protected lemma zero_mul : (0 : mv_power_series σ R) * φ = 0 :=
160160
ext $ λ n, by simp [coeff_mul]
@@ -165,21 +165,21 @@ ext $ λ n, by simp [coeff_mul]
165165
lemma coeff_monomial_mul (a : R) :
166166
coeff R m (monomial R n a * φ) = if n ≤ m then a * coeff R (m - n) φ else 0 :=
167167
begin
168-
have : ∀ p ∈ (antidiagonal m).support,
168+
have : ∀ p ∈ antidiagonal m,
169169
coeff R (p : (σ →₀ ℕ) × (σ →₀ ℕ)).1 (monomial R n a) * coeff R p.2 φ ≠ 0 → p.1 = n :=
170170
λ p _ hp, eq_of_coeff_monomial_ne_zero (left_ne_zero_of_mul hp),
171-
rw [coeff_mul, ← finset.sum_filter_of_ne this, antidiagonal_support_filter_fst_eq,
171+
rw [coeff_mul, ← finset.sum_filter_of_ne this, antidiagonal_filter_fst_eq,
172172
finset.sum_ite_index],
173173
simp only [finset.sum_singleton, coeff_monomial_same, finset.sum_empty]
174174
end
175175

176176
lemma coeff_mul_monomial (a : R) :
177177
coeff R m (φ * monomial R n a) = if n ≤ m then coeff R (m - n) φ * a else 0 :=
178178
begin
179-
have : ∀ p ∈ (antidiagonal m).support,
179+
have : ∀ p ∈ antidiagonal m,
180180
coeff R (p : (σ →₀ ℕ) × (σ →₀ ℕ)).1 φ * coeff R p.2 (monomial R n a) ≠ 0 → p.2 = n :=
181181
λ p _ hp, eq_of_coeff_monomial_ne_zero (right_ne_zero_of_mul hp),
182-
rw [coeff_mul, ← finset.sum_filter_of_ne this, antidiagonal_support_filter_snd_eq,
182+
rw [coeff_mul, ← finset.sum_filter_of_ne this, antidiagonal_filter_snd_eq,
183183
finset.sum_ite_index],
184184
simp only [finset.sum_singleton, coeff_monomial_same, finset.sum_empty]
185185
end
@@ -218,7 +218,7 @@ begin
218218
ext1 n,
219219
simp only [coeff_mul, finset.sum_mul, finset.mul_sum, finset.sum_sigma'],
220220
refine finset.sum_bij (λ p _, ⟨(p.2.1, p.2.2 + p.1.2), (p.2.2, p.1.2)⟩) _ _ _ _;
221-
simp only [mem_antidiagonal_support, finset.mem_sigma, heq_iff_eq, prod.mk.inj_iff, and_imp,
221+
simp only [mem_antidiagonal, finset.mem_sigma, heq_iff_eq, prod.mk.inj_iff, and_imp,
222222
exists_prop],
223223
{ rintros ⟨⟨i,j⟩, ⟨k,l⟩⟩, dsimp only, rintro rfl rfl,
224224
simp [add_assoc] },
@@ -246,7 +246,7 @@ end semiring
246246

247247
instance [comm_semiring R] : comm_semiring (mv_power_series σ R) :=
248248
{ mul_comm := λ φ ψ, ext $ λ n, by simpa only [coeff_mul, mul_comm]
249-
using sum_antidiagonal_support_swap n (λ a b, coeff R a φ * coeff R b ψ),
249+
using sum_antidiagonal_swap n (λ a b, coeff R a φ * coeff R b ψ),
250250
.. mv_power_series.semiring }
251251

252252
instance [ring R] : ring (mv_power_series σ R) :=
@@ -527,21 +527,21 @@ begin
527527
{ rintros ⟨φ, rfl⟩ m h,
528528
rw [coeff_mul, finset.sum_eq_zero],
529529
rintros ⟨i,j⟩ hij, rw [coeff_X_pow, if_neg, zero_mul],
530-
contrapose! h, subst i, rw finsupp.mem_antidiagonal_support at hij,
530+
contrapose! h, subst i, rw finsupp.mem_antidiagonal at hij,
531531
rw [← hij, finsupp.add_apply, finsupp.single_eq_same], exact nat.le_add_right n _ },
532532
{ intro h, refine ⟨λ m, coeff R (m + (single s n)) φ, _⟩,
533533
ext m, by_cases H : m - single s n + single s n = m,
534534
{ rw [coeff_mul, finset.sum_eq_single (single s n, m - single s n)],
535535
{ rw [coeff_X_pow, if_pos rfl, one_mul],
536536
simpa using congr_arg (λ (m : σ →₀ ℕ), coeff R m φ) H.symm },
537-
{ rintros ⟨i,j⟩ hij hne, rw finsupp.mem_antidiagonal_support at hij,
537+
{ rintros ⟨i,j⟩ hij hne, rw finsupp.mem_antidiagonal at hij,
538538
rw coeff_X_pow, split_ifs with hi,
539539
{ exfalso, apply hne, rw [← hij, ← hi, prod.mk.inj_iff], refine ⟨rfl, _⟩,
540540
ext t, simp only [nat.add_sub_cancel_left, finsupp.add_apply, finsupp.nat_sub_apply] },
541541
{ exact zero_mul _ } },
542-
{ intro hni, exfalso, apply hni, rwa [finsupp.mem_antidiagonal_support, add_comm] } },
542+
{ intro hni, exfalso, apply hni, rwa [finsupp.mem_antidiagonal, add_comm] } },
543543
{ rw [h, coeff_mul, finset.sum_eq_zero],
544-
{ rintros ⟨i,j⟩ hij, rw finsupp.mem_antidiagonal_support at hij,
544+
{ rintros ⟨i,j⟩ hij, rw finsupp.mem_antidiagonal at hij,
545545
rw coeff_X_pow, split_ifs with hi,
546546
{ exfalso, apply H, rw [← hij, hi], ext,
547547
rw [coe_add, coe_add, pi.add_apply, pi.add_apply, nat_add_sub_cancel_left, add_comm], },
@@ -576,15 +576,15 @@ well-founded recursion on the coeffients of the inverse.
576576
an inverse of the constant coefficient `inv_of_unit`.-/
577577
protected noncomputable def inv.aux (a : R) (φ : mv_power_series σ R) : mv_power_series σ R
578578
| n := if n = 0 then a else
579-
- a * ∑ x in n.antidiagonal.support,
579+
- a * ∑ x in n.antidiagonal,
580580
if h : x.2 < n then coeff R x.1 φ * inv.aux x.2 else 0
581581
using_well_founded
582582
{ rel_tac := λ _ _, `[exact ⟨_, finsupp.lt_wf σ⟩],
583583
dec_tac := tactic.assumption }
584584

585585
lemma coeff_inv_aux (n : σ →₀ ℕ) (a : R) (φ : mv_power_series σ R) :
586586
coeff R n (inv.aux a φ) = if n = 0 then a else
587-
- a * ∑ x in n.antidiagonal.support,
587+
- a * ∑ x in n.antidiagonal,
588588
if x.2 < n then coeff R x.1 φ * coeff R x.2 (inv.aux a φ) else 0 :=
589589
show inv.aux a φ n = _, by { rw inv.aux, refl }
590590

@@ -594,7 +594,7 @@ inv.aux (↑u⁻¹) φ
594594

595595
lemma coeff_inv_of_unit (n : σ →₀ ℕ) (φ : mv_power_series σ R) (u : units R) :
596596
coeff R n (inv_of_unit φ u) = if n = 0 then ↑u⁻¹ else
597-
- ↑u⁻¹ * ∑ x in n.antidiagonal.support,
597+
- ↑u⁻¹ * ∑ x in n.antidiagonal,
598598
if x.2 < n then coeff R x.1 φ * coeff R x.2 (inv_of_unit φ u) else 0 :=
599599
coeff_inv_aux n (↑u⁻¹) φ
600600

@@ -607,16 +607,16 @@ lemma mul_inv_of_unit (φ : mv_power_series σ R) (u : units R) (h : constant_co
607607
ext $ λ n, if H : n = 0 then by { rw H, simp [coeff_mul, support_single_ne_zero, h], }
608608
else
609609
begin
610-
have : ((0 : σ →₀ ℕ), n) ∈ n.antidiagonal.support,
611-
{ rw [finsupp.mem_antidiagonal_support, zero_add] },
610+
have : ((0 : σ →₀ ℕ), n) ∈ n.antidiagonal,
611+
{ rw [finsupp.mem_antidiagonal, zero_add] },
612612
rw [coeff_one, if_neg H, coeff_mul,
613613
← finset.insert_erase this, finset.sum_insert (finset.not_mem_erase _ _),
614614
coeff_zero_eq_constant_coeff_apply, h, coeff_inv_of_unit, if_neg H,
615615
neg_mul_eq_neg_mul_symm, mul_neg_eq_neg_mul_symm, units.mul_inv_cancel_left,
616616
← finset.insert_erase this, finset.sum_insert (finset.not_mem_erase _ _),
617617
finset.insert_erase this, if_neg (not_lt_of_ge $ le_refl _), zero_add, add_comm,
618618
← sub_eq_add_neg, sub_eq_zero, finset.sum_congr rfl],
619-
rintros ⟨i,j⟩ hij, rw [finset.mem_erase, finsupp.mem_antidiagonal_support] at hij,
619+
rintros ⟨i,j⟩ hij, rw [finset.mem_erase, finsupp.mem_antidiagonal] at hij,
620620
cases hij with h₁ h₂,
621621
subst n, rw if_pos,
622622
suffices : (0 : _) + j < i + j, {simpa},
@@ -681,7 +681,7 @@ instance : has_inv (mv_power_series σ k) := ⟨mv_power_series.inv⟩
681681

682682
lemma coeff_inv (n : σ →₀ ℕ) (φ : mv_power_series σ k) :
683683
coeff k n (φ⁻¹) = if n = 0 then (constant_coeff σ k φ)⁻¹ else
684-
- (constant_coeff σ k φ)⁻¹ * ∑ x in n.antidiagonal.support,
684+
- (constant_coeff σ k φ)⁻¹ * ∑ x in n.antidiagonal,
685685
if x.2 < n then coeff k x.1 φ * coeff k x.2 (φ⁻¹) else 0 :=
686686
coeff_inv_aux n _ φ
687687

@@ -942,13 +942,13 @@ begin
942942
symmetry,
943943
apply finset.sum_bij (λ (p : ℕ × ℕ) h, (single () p.1, single () p.2)),
944944
{ rintros ⟨i,j⟩ hij, rw finset.nat.mem_antidiagonal at hij,
945-
rw [finsupp.mem_antidiagonal_support, ← finsupp.single_add, hij], },
945+
rw [finsupp.mem_antidiagonal, ← finsupp.single_add, hij], },
946946
{ rintros ⟨i,j⟩ hij, refl },
947947
{ rintros ⟨i,j⟩ ⟨k,l⟩ hij hkl,
948948
simpa only [prod.mk.inj_iff, finsupp.unique_single_eq_iff] using id },
949949
{ rintros ⟨f,g⟩ hfg,
950950
refine ⟨(f (), g ()), _, _⟩,
951-
{ rw finsupp.mem_antidiagonal_support at hfg,
951+
{ rw finsupp.mem_antidiagonal at hfg,
952952
rw [finset.nat.mem_antidiagonal, ← finsupp.add_apply, hfg, finsupp.single_eq_same] },
953953
{ rw prod.mk.inj_iff, dsimp,
954954
exact ⟨finsupp.unique_single f, finsupp.unique_single g⟩ } }
@@ -1166,7 +1166,7 @@ begin
11661166
symmetry,
11671167
apply finset.sum_bij (λ (p : ℕ × ℕ) h, (single () p.1, single () p.2)),
11681168
{ rintros ⟨i,j⟩ hij, rw finset.nat.mem_antidiagonal at hij,
1169-
rw [finsupp.mem_antidiagonal_support, ← finsupp.single_add, hij], },
1169+
rw [finsupp.mem_antidiagonal, ← finsupp.single_add, hij], },
11701170
{ rintros ⟨i,j⟩ hij,
11711171
by_cases H : j < n,
11721172
{ rw [if_pos H, if_pos], {refl},
@@ -1180,7 +1180,7 @@ begin
11801180
simpa only [prod.mk.inj_iff, finsupp.unique_single_eq_iff] using id },
11811181
{ rintros ⟨f,g⟩ hfg,
11821182
refine ⟨(f (), g ()), _, _⟩,
1183-
{ rw finsupp.mem_antidiagonal_support at hfg,
1183+
{ rw finsupp.mem_antidiagonal at hfg,
11841184
rw [finset.nat.mem_antidiagonal, ← finsupp.add_apply, hfg, finsupp.single_eq_same] },
11851185
{ rw prod.mk.inj_iff, dsimp,
11861186
exact ⟨finsupp.unique_single f, finsupp.unique_single g⟩ } }

0 commit comments

Comments
 (0)