Skip to content

Commit c14f394

Browse files
feat: cardinality of Hahn series (#32640)
This is a very preliminary development; most of the PR is really just lemmas about `HahnSeries.support`. This will be needed in the CGT repo, to define surreal Hahn series as the subfield of real, small Hahn series over their own order dual. Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
1 parent 02db42b commit c14f394

File tree

6 files changed

+150
-35
lines changed

6 files changed

+150
-35
lines changed

Mathlib.lean

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5922,6 +5922,7 @@ public import Mathlib.RingTheory.Grassmannian
59225922
public import Mathlib.RingTheory.HahnSeries.Addition
59235923
public import Mathlib.RingTheory.HahnSeries.Basic
59245924
public import Mathlib.RingTheory.HahnSeries.Binomial
5925+
public import Mathlib.RingTheory.HahnSeries.Cardinal
59255926
public import Mathlib.RingTheory.HahnSeries.HEval
59265927
public import Mathlib.RingTheory.HahnSeries.HahnEmbedding
59275928
public import Mathlib.RingTheory.HahnSeries.Lex

Mathlib/RingTheory/HahnSeries/Addition.lean

Lines changed: 28 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,10 @@ variable [PartialOrder Γ] {V : Type*} [Zero V] [SMulZeroClass R V]
4646
instance : SMul R V⟦Γ⟧ :=
4747
fun r x =>
4848
{ coeff := r • x.coeff
49-
isPWO_support' := x.isPWO_support.mono (Function.support_const_smul_subset r x.coeff) }⟩
49+
isPWO_support' := x.isPWO_support.mono (Function.support_const_smul_subset ..) }⟩
50+
51+
theorem support_smul_subset (r : R) (x : HahnSeries Γ V) : (r • x).support ⊆ x.support :=
52+
Function.support_const_smul_subset ..
5053

5154
@[simp]
5255
theorem coeff_smul' (r : R) (x : V⟦Γ⟧) : (r • x).coeff = r • x.coeff :=
@@ -67,8 +70,7 @@ theorem orderTop_smul_not_lt (r : R) (x : V⟦Γ⟧) : ¬ (r • x).orderTop < x
6770
exact not_top_lt
6871
· simp only [orderTop_of_ne_zero hrx, orderTop_of_ne_zero <| right_ne_zero_of_smul hrx,
6972
WithTop.coe_lt_coe]
70-
exact Set.IsWF.min_of_subset_not_lt_min
71-
(Function.support_smul_subset_right (fun _ => r) x.coeff)
73+
exact Set.IsWF.min_of_subset_not_lt_min (Function.support_smul_subset_right ..)
7274

7375
theorem orderTop_le_orderTop_smul {Γ} [LinearOrder Γ] (r : R) (x : V⟦Γ⟧) :
7476
x.orderTop ≤ (r • x).orderTop :=
@@ -78,7 +80,7 @@ theorem order_smul_not_lt [Zero Γ] (r : R) (x : V⟦Γ⟧) (h : r • x ≠ 0)
7880
¬ (r • x).order < x.order := by
7981
have hx : x ≠ 0 := right_ne_zero_of_smul h
8082
simp_all only [order, dite_false]
81-
exact Set.IsWF.min_of_subset_not_lt_min (Function.support_smul_subset_right (fun _ => r) x.coeff)
83+
exact Set.IsWF.min_of_subset_not_lt_min (Function.support_smul_subset_right ..)
8284

8385
theorem le_order_smul {Γ} [Zero Γ] [LinearOrder Γ] (r : R) (x : V⟦Γ⟧) (h : r • x ≠ 0) :
8486
x.order ≤ (r • x).order :=
@@ -100,7 +102,10 @@ variable [AddMonoid R]
100102
instance : Add R⟦Γ⟧ where
101103
add x y :=
102104
{ coeff := x.coeff + y.coeff
103-
isPWO_support' := (x.isPWO_support.union y.isPWO_support).mono (Function.support_add _ _) }
105+
isPWO_support' := (x.isPWO_support.union y.isPWO_support).mono (Function.support_add ..) }
106+
107+
theorem support_add_subset (x y : R⟦Γ⟧) : (x + y).support ⊆ x.support ∪ y.support :=
108+
Function.support_add ..
104109

105110
@[simp]
106111
theorem coeff_add' (x y : R⟦Γ⟧) : (x + y).coeff = x.coeff + y.coeff :=
@@ -183,13 +188,6 @@ lemma addOppositeEquiv_symm_leadingCoeff (x : R⟦Γ⟧ᵃᵒᵖ) :
183188
apply AddOpposite.unop_injective
184189
rw [← addOppositeEquiv_leadingCoeff, AddEquiv.apply_symm_apply, AddOpposite.unop_op]
185190

186-
theorem support_add_subset {x y : R⟦Γ⟧} : support (x + y) ⊆ support x ∪ support y :=
187-
fun a ha => by
188-
rw [mem_support, coeff_add] at ha
189-
rw [Set.mem_union, mem_support, mem_support]
190-
contrapose! ha
191-
rw [ha.1, ha.2, add_zero]
192-
193191
protected theorem min_le_min_add {Γ} [LinearOrder Γ] {x y : R⟦Γ⟧} (hx : x ≠ 0)
194192
(hy : y ≠ 0) (hxy : x + y ≠ 0) :
195193
min (Set.IsWF.min x.isWF_support (support_nonempty_iff.2 hx))
@@ -330,16 +328,15 @@ theorem coeff_sum {s : Finset α} {x : α → R⟦Γ⟧} (g : Γ) :
330328

331329
end AddCommMonoid
332330

333-
section AddGroup
331+
section NegZeroClass
334332

335-
variable [AddGroup R]
333+
variable [NegZeroClass R]
336334

337335
instance : Neg R⟦Γ⟧ where
338-
neg x :=
339-
{ coeff := fun a => -x.coeff a
340-
isPWO_support' := by
341-
rw [Function.support_fun_neg]
342-
exact x.isPWO_support }
336+
neg x := x.map (-ZeroHom.id _)
337+
338+
theorem support_neg_subset (x : R⟦Γ⟧) : (-x).support ⊆ x.support :=
339+
support_map_subset ..
343340

344341
@[simp]
345342
theorem coeff_neg' (x : R⟦Γ⟧) : (-x).coeff = -x.coeff :=
@@ -348,10 +345,19 @@ theorem coeff_neg' (x : R⟦Γ⟧) : (-x).coeff = -x.coeff :=
348345
theorem coeff_neg {x : R⟦Γ⟧} {a : Γ} : (-x).coeff a = -x.coeff a :=
349346
rfl
350347

348+
end NegZeroClass
349+
350+
section AddGroup
351+
352+
variable [AddGroup R]
353+
351354
instance : Sub R⟦Γ⟧ where
352355
sub x y :=
353356
{ coeff := x.coeff - y.coeff
354-
isPWO_support' := (x.isPWO_support.union y.isPWO_support).mono (Function.support_sub _ _) }
357+
isPWO_support' := (x.isPWO_support.union y.isPWO_support).mono (Function.support_sub ..) }
358+
359+
theorem support_sub_subset (x y : R⟦Γ⟧) : (x - y).support ⊆ x.support ∪ y.support :=
360+
Function.support_sub ..
355361

356362
@[simp]
357363
theorem coeff_sub' (x y : R⟦Γ⟧) : (x - y).coeff = x.coeff - y.coeff :=
@@ -362,7 +368,7 @@ theorem coeff_sub {x y : R⟦Γ⟧} {a : Γ} : (x - y).coeff a = x.coeff a - y.c
362368

363369
instance : AddGroup R⟦Γ⟧ := fast_instance%
364370
coeff_injective.addGroup _
365-
coeff_zero' coeff_add' (coeff_neg') (coeff_sub')
371+
coeff_zero' coeff_add' coeff_neg' coeff_sub'
366372
(fun _ _ => coeff_smul' _ _) (fun _ _ => coeff_smul' _ _)
367373

368374
@[simp]
@@ -380,7 +386,7 @@ theorem support_neg {x : R⟦Γ⟧} : (-x).support = x.support := by
380386

381387
@[simp]
382388
protected lemma map_neg [AddGroup S] (f : R →+ S) {x : R⟦Γ⟧} :
383-
((-x).map f : S⟦Γ⟧) = -(x.map f) := by
389+
((-x).map f : S⟦Γ⟧) = -x.map f := by
384390
ext; simp
385391

386392
@[simp]

Mathlib/RingTheory/HahnSeries/Basic.lean

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,10 @@ theorem coeff_inj {x y : R⟦Γ⟧} : x.coeff = y.coeff ↔ x = y :=
8686
nonrec def support (x : R⟦Γ⟧) : Set Γ :=
8787
support x.coeff
8888

89+
@[simp]
90+
theorem support_mk (f : Γ → R) (h) : support ⟨f, h⟩ = Function.support f :=
91+
rfl
92+
8993
@[simp]
9094
theorem isPWO_support (x : R⟦Γ⟧) : x.support.IsPWO :=
9195
x.isPWO_support'
@@ -96,7 +100,7 @@ theorem isWF_support (x : R⟦Γ⟧) : x.support.IsWF :=
96100

97101
@[simp]
98102
theorem mem_support (x : R⟦Γ⟧) (a : Γ) : a ∈ x.support ↔ x.coeff a ≠ 0 :=
99-
Iff.refl _
103+
.rfl
100104

101105
instance : Zero R⟦Γ⟧ :=
102106
⟨{ coeff := 0
@@ -144,6 +148,10 @@ def map [Zero S] (x : R⟦Γ⟧) {F : Type*} [FunLike F R S] [ZeroHomClass F R S
144148
protected lemma map_zero [Zero S] (f : ZeroHom R S) : (0 : R⟦Γ⟧).map f = 0 := by
145149
ext; simp
146150

151+
theorem support_map_subset [Zero S] (x : R⟦Γ⟧) (f : ZeroHom R S) :
152+
(x.map f).support ⊆ x.support :=
153+
Function.support_comp_subset (ZeroHomClass.map_zero f) _
154+
147155
/-- Change a `HahnSeries` with coefficients in a `HahnSeries` to a `HahnSeries` on a Lex product. -/
148156
def ofIterate [PartialOrder Γ'] (x : R⟦Γ'⟧⟦Γ⟧) : R⟦Γ ×ₗ Γ'⟧ where
149157
coeff := fun g => coeff (coeff x g.1) g.2
@@ -576,9 +584,18 @@ def truncLT [PartialOrder Γ] [DecidableLT Γ] (c : Γ) : ZeroHom R⟦Γ⟧ R⟦
576584
isPWO_support' := Set.IsPWO.mono x.isPWO_support (by simp) }
577585
map_zero' := by ext; simp
578586

587+
theorem support_truncLT [PartialOrder Γ] [DecidableLT Γ] (c : Γ) (x : R⟦Γ⟧) :
588+
(truncLT c x).support = {y ∈ x.support | y < c} := by
589+
simp [truncLT, Function.support, and_comm]
590+
591+
theorem support_truncLT_subset [PartialOrder Γ] [DecidableLT Γ] (c : Γ) (x : R⟦Γ⟧) :
592+
(truncLT c x).support ⊆ x.support := by
593+
rw [support_truncLT]
594+
exact Set.sep_subset ..
595+
579596
@[simp]
580597
protected theorem coeff_truncLT [PartialOrder Γ] [DecidableLT Γ] (c : Γ) (x : R⟦Γ⟧) (i : Γ) :
581-
(truncLT c x).coeff i = if i < c then x.coeff i else 0 := rfl
598+
(truncLT c x).coeff i = if i < c then x.coeff i else 0 := rfl
582599

583600
theorem coeff_truncLT_of_lt [PartialOrder Γ] [DecidableLT Γ] {c i : Γ} (h : i < c) (x : R⟦Γ⟧) :
584601
(truncLT c x).coeff i = x.coeff i := by
Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
/-
2+
Copyright (c) 2025 Violeta Hernández Palacios. All rights reserved.
3+
Released under Apache 2.0 license as described in the file LICENSE.
4+
Authors: Violeta Hernández Palacios
5+
-/
6+
module
7+
8+
public import Mathlib.Algebra.Group.Pointwise.Set.Card
9+
public import Mathlib.RingTheory.HahnSeries.Multiplication
10+
11+
/-!
12+
# Cardinality of Hahn series
13+
14+
We define `HahnSeries.cardSupp` as the cardinality of the support of a Hahn series, and find bounds
15+
for the cardinalities of different operations.
16+
17+
## Todo
18+
19+
- Bound the cardinality of the inverse.
20+
- Build the subgroups, subrings, etc. of Hahn series with support less than a given infinite
21+
cardinal.
22+
-/
23+
24+
@[expose] public section
25+
26+
open Cardinal
27+
28+
namespace HahnSeries
29+
30+
variable {Γ R S : Type*} [PartialOrder Γ]
31+
32+
/-! ### Cardinality function -/
33+
34+
section Zero
35+
variable [Zero R]
36+
37+
/-- The cardinality of the support of a Hahn series. -/
38+
def cardSupp (x : R⟦Γ⟧) : Cardinal :=
39+
#x.support
40+
41+
theorem cardSupp_congr [Zero S] {x : R⟦Γ⟧} {y : S⟦Γ⟧} (h : x.support = y.support) :
42+
x.cardSupp = y.cardSupp := by
43+
simp_rw [cardSupp, h]
44+
45+
theorem cardSupp_mono [Zero S] {x : R⟦Γ⟧} {y : S⟦Γ⟧} (h : x.support ⊆ y.support) :
46+
x.cardSupp ≤ y.cardSupp :=
47+
mk_le_mk_of_subset h
48+
49+
@[simp]
50+
theorem cardSupp_zero : cardSupp (0 : R⟦Γ⟧) = 0 := by
51+
simp [cardSupp]
52+
53+
theorem cardSupp_single_of_ne (a : Γ) {r : R} (h : r ≠ 0) : cardSupp (single a r) = 1 := by
54+
rw [cardSupp, support_single_of_ne h, mk_singleton]
55+
56+
theorem cardSupp_single_le (a : Γ) (r : R) : cardSupp (single a r) ≤ 1 :=
57+
(mk_le_mk_of_subset support_single_subset).trans_eq (mk_singleton a)
58+
59+
theorem cardSupp_map_le [Zero S] (x : R⟦Γ⟧) (f : ZeroHom R S) : (x.map f).cardSupp ≤ x.cardSupp :=
60+
cardSupp_mono <| support_map_subset ..
61+
62+
theorem cardSupp_truncLT_le [DecidableLT Γ] (x : R⟦Γ⟧) (c : Γ) :
63+
(truncLT c x).cardSupp ≤ x.cardSupp :=
64+
cardSupp_mono <| support_truncLT_subset ..
65+
66+
theorem cardSupp_smul_le (s : S) (x : R⟦Γ⟧) [SMulZeroClass S R] : (s • x).cardSupp ≤ x.cardSupp :=
67+
cardSupp_mono <| support_smul_subset ..
68+
69+
end Zero
70+
71+
theorem cardSupp_neg_le [NegZeroClass R] (x : R⟦Γ⟧) : (-x).cardSupp ≤ x.cardSupp :=
72+
cardSupp_mono <| support_neg_subset ..
73+
74+
theorem cardSupp_add_le [AddMonoid R] (x y : R⟦Γ⟧) : (x + y).cardSupp ≤ x.cardSupp + y.cardSupp :=
75+
(mk_le_mk_of_subset (support_add_subset ..)).trans (mk_union_le ..)
76+
77+
@[simp]
78+
theorem cardSupp_neg [AddGroup R] (x : R⟦Γ⟧) : (-x).cardSupp = x.cardSupp :=
79+
cardSupp_congr support_neg
80+
81+
theorem cardSupp_sub_le [AddGroup R] (x y : R⟦Γ⟧) : (x - y).cardSupp ≤ x.cardSupp + y.cardSupp :=
82+
(mk_le_mk_of_subset (support_sub_subset ..)).trans (mk_union_le ..)
83+
84+
theorem cardSupp_mul_le [AddCommMonoid Γ] [IsOrderedCancelAddMonoid Γ] [NonUnitalNonAssocSemiring R]
85+
(x y : R⟦Γ⟧) : (x * y).cardSupp ≤ x.cardSupp * y.cardSupp :=
86+
(mk_le_mk_of_subset (support_mul_subset ..)).trans mk_add_le
87+
88+
end HahnSeries

Mathlib/RingTheory/HahnSeries/Multiplication.lean

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -486,11 +486,14 @@ theorem single_zero_mul_eq_smul [Semiring R] {r : R} {x : R⟦Γ⟧} : single 0
486486
ext
487487
exact coeff_single_zero_mul
488488

489-
theorem support_mul_subset_add_support [NonUnitalNonAssocSemiring R] {x y : R⟦Γ⟧} :
489+
theorem support_mul_subset [NonUnitalNonAssocSemiring R] {x y : R⟦Γ⟧} :
490490
support (x * y) ⊆ support x + support y := by
491491
rw [← of_symm_smul_of_eq_mul, ← vadd_eq_add]
492492
exact HahnModule.support_smul_subset_vadd_support
493493

494+
@[deprecated (since := "2025-12-09")]
495+
alias support_mul_subset_add_support := support_mul_subset
496+
494497
instance [NonUnitalNonAssocSemiring R] : NonUnitalNonAssocSemiring R⟦Γ⟧ where
495498
zero_mul _ := by
496499
ext
@@ -522,7 +525,7 @@ theorem orderTop_mul_of_nonzero {x y : R⟦Γ⟧} (h : x.leadingCoeff * y.leadin
522525
refine le_antisymm (order_le_of_coeff_ne_zero this) ?_
523526
rw [HahnSeries.order_of_ne hx, HahnSeries.order_of_ne hy, HahnSeries.order_of_ne hxy,
524527
← Set.IsWF.min_add]
525-
exact Set.IsWF.min_le_min_of_subset support_mul_subset_add_support
528+
exact Set.IsWF.min_le_min_of_subset support_mul_subset
526529

527530
theorem orderTop_add_le_mul {x y : R⟦Γ⟧} : x.orderTop + y.orderTop ≤ (x * y).orderTop := by
528531
rw [← smul_eq_mul]
@@ -538,7 +541,7 @@ theorem order_mul_of_nonzero {x y : R⟦Γ⟧}
538541
(Eq.mpr (congrArg (fun _a ↦ _a ≠ 0) (coeff_mul_order_add_order x y)) h)) ?_
539542
rw [order_of_ne <| leadingCoeff_ne_zero.mp hx, order_of_ne <| leadingCoeff_ne_zero.mp hy,
540543
order_of_ne <| ne_zero_of_coeff_ne_zero hxy, ← Set.IsWF.min_add]
541-
exact Set.IsWF.min_le_min_of_subset support_mul_subset_add_support
544+
exact Set.IsWF.min_le_min_of_subset support_mul_subset
542545

543546
theorem leadingCoeff_mul_of_nonzero {x y : R⟦Γ⟧} (h : x.leadingCoeff * y.leadingCoeff ≠ 0) :
544547
(x * y).leadingCoeff = x.leadingCoeff * y.leadingCoeff := by
@@ -560,8 +563,8 @@ variable [AddCommMonoid Γ] [PartialOrder Γ] [IsOrderedCancelAddMonoid Γ]
560563

561564
private theorem mul_assoc' [NonUnitalSemiring R] (x y z : R⟦Γ⟧) : x * y * z = x * (y * z) := by
562565
ext b
563-
rw [coeff_mul_left' (x.isPWO_support.add y.isPWO_support) support_mul_subset_add_support,
564-
coeff_mul_right' (y.isPWO_support.add z.isPWO_support) support_mul_subset_add_support]
566+
rw [coeff_mul_left' (x.isPWO_support.add y.isPWO_support) support_mul_subset,
567+
coeff_mul_right' (y.isPWO_support.add z.isPWO_support) support_mul_subset]
565568
simp only [coeff_mul, sum_mul, mul_sum, sum_sigma']
566569
apply Finset.sum_nbij' (fun ⟨⟨_i, j⟩, ⟨k, l⟩⟩ ↦ ⟨(k, l + j), (l, j)⟩)
567570
(fun ⟨⟨i, _j⟩, ⟨k, l⟩⟩ ↦ ⟨(i + k, l), (i, k)⟩) <;>
@@ -681,7 +684,7 @@ private theorem mul_smul' [Semiring R] [Module R V] (x y : R⟦Γ⟧)
681684
(z : HahnModule Γ' R V) : (x * y) • z = x • (y • z) := by
682685
ext b
683686
rw [coeff_smul_left (x.isPWO_support.add y.isPWO_support)
684-
HahnSeries.support_mul_subset_add_support, coeff_smul_right
687+
HahnSeries.support_mul_subset, coeff_smul_right
685688
(y.isPWO_support.vadd ((of R).symm z).isPWO_support) support_smul_subset_vadd_support]
686689
simp only [HahnSeries.coeff_mul, coeff_smul, sum_smul, smul_sum, sum_sigma']
687690
apply Finset.sum_nbij' (fun ⟨⟨_i, j⟩, ⟨k, l⟩⟩ ↦ ⟨(k, l +ᵥ j), (l, j)⟩)
@@ -756,7 +759,7 @@ theorem order_mul {Γ} [AddCommMonoid Γ] [LinearOrder Γ] [IsOrderedCancelAddMo
756759
rw [coeff_mul_order_add_order x y]
757760
exact mul_ne_zero (leadingCoeff_ne_zero.mpr hx) (leadingCoeff_ne_zero.mpr hy)
758761
· rw [order_of_ne hx, order_of_ne hy, order_of_ne (mul_ne_zero hx hy), ← Set.IsWF.min_add]
759-
exact Set.IsWF.min_le_min_of_subset support_mul_subset_add_support
762+
exact Set.IsWF.min_le_min_of_subset support_mul_subset
760763

761764
@[simp]
762765
theorem order_pow {Γ} [AddCommMonoid Γ] [LinearOrder Γ] [IsOrderedCancelAddMonoid Γ]
@@ -884,7 +887,7 @@ theorem embDomain_mul [NonUnitalNonAssocSemiring R] (f : Γ ↪o Γ')
884887
exact ⟨i, j, h1, rfl⟩
885888
· rw [embDomain_notin_range hg, eq_comm]
886889
contrapose! hg
887-
obtain ⟨_, hi, _, hj, rfl⟩ := support_mul_subset_add_support ((mem_support _ _).2 hg)
890+
obtain ⟨_, hi, _, hj, rfl⟩ := support_mul_subset ((mem_support _ _).2 hg)
888891
obtain ⟨i, _, rfl⟩ := support_embDomain_subset hi
889892
obtain ⟨j, _, rfl⟩ := support_embDomain_subset hj
890893
exact ⟨i + j, hf i j⟩

Mathlib/RingTheory/HahnSeries/Summable.lean

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ instance : Add (SummableFamily Γ R α) :=
107107
(x.isPWO_iUnion_support.union y.isPWO_iUnion_support).mono
108108
(by
109109
rw [← Set.iUnion_union_distrib]
110-
exact Set.iUnion_mono fun a => support_add_subset)
110+
exact Set.iUnion_mono fun a => support_add_subset ..)
111111
finite_co_support' := fun g =>
112112
((x.finite_co_support g).union (y.finite_co_support g)).subset
113113
(by
@@ -657,7 +657,7 @@ theorem support_pow_subset_closure [AddCommMonoid Γ] [PartialOrder Γ] [IsOrder
657657
simp only [hn, SetLike.mem_coe]
658658
exact AddSubmonoid.zero_mem _
659659
| succ n ih =>
660-
obtain ⟨i, hi, j, hj, rfl⟩ := support_mul_subset_add_support hn
660+
obtain ⟨i, hi, j, hj, rfl⟩ := support_mul_subset hn
661661
exact SetLike.mem_coe.2 (AddSubmonoid.add_mem _ (ih hi) (AddSubmonoid.subset_closure hj))
662662

663663
theorem isPWO_iUnion_support_powers [AddCommMonoid Γ] [LinearOrder Γ] [IsOrderedCancelAddMonoid Γ]
@@ -695,7 +695,7 @@ theorem pow_finite_co_support {x : R⟦Γ⟧} (hx : 0 < x.orderTop) (g : Γ) :
695695
order_le_of_coeff_ne_zero <| Function.mem_support.mp hi
696696
· rintro (_ | n) hn
697697
· exact Set.mem_union_right _ (Set.mem_singleton 0)
698-
· obtain ⟨i, hi, j, hj, rfl⟩ := support_mul_subset_add_support hn
698+
· obtain ⟨i, hi, j, hj, rfl⟩ := support_mul_subset hn
699699
refine Set.mem_union_left _ ⟨n, Set.mem_iUnion.2 ⟨⟨j, i⟩, Set.mem_iUnion.2 ⟨?_, hi⟩⟩, rfl⟩
700700
simp only [mem_coe, mem_addAntidiagonal, mem_support, ne_eq, Set.mem_iUnion]
701701
exact ⟨hj, ⟨n, hi⟩, add_comm j i⟩

0 commit comments

Comments
 (0)