Skip to content

Commit 141367e

Browse files
committed
address comments
1 parent 7528bed commit 141367e

2 files changed

Lines changed: 47 additions & 40 deletions

File tree

Mathlib/RingTheory/PowerSeries/Pentagonal.lean

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -41,17 +41,17 @@ variable (R : Type*) [CommRing R]
4141

4242
namespace Pentagonal
4343

44-
theorem tendsTo_order_aux_X (k : ℕ) :
45-
Tendsto (fun i ↦ (aux k i (X : R⟦X⟧)).order) atTop (nhds ⊤) := by
44+
theorem tendsto_order_powMulProdOneSubPow_X (k : ℕ) :
45+
Tendsto (fun i ↦ (powMulProdOneSubPow k i (X : R⟦X⟧)).order) atTop (nhds ⊤) := by
4646
nontriviality R using Subsingleton.eq_zero
4747
refine ENat.tendsto_nhds_top_iff_natCast_lt.mpr fun n ↦ eventually_atTop.mpr ⟨n + 1, ?_⟩
4848
intro m hm
49-
grw [aux, ← le_order_mul, order_X_pow]
49+
grw [powMulProdOneSubPow, ← le_order_mul, order_X_pow]
5050
refine lt_add_of_lt_of_nonneg ?_ (by simp)
5151
norm_cast
5252
grind
5353

54-
theorem tendsTo_order_neg_X_pow (k : ℕ) :
54+
theorem tendsto_order_neg_X_pow (k : ℕ) :
5555
Tendsto (fun i ↦ (-(X : R⟦X⟧) ^ (i + k + 1)).order) atTop (nhds ⊤) := by
5656
nontriviality R using Subsingleton.eq_zero
5757
refine ENat.tendsto_nhds_top_iff_natCast_lt.mpr fun n ↦ eventually_atTop.mpr ⟨n, ?_⟩
@@ -60,7 +60,7 @@ theorem tendsTo_order_neg_X_pow (k : ℕ) :
6060
norm_cast
6161
linarith
6262

63-
theorem tendsTo_order_pow_pentagonal_sub :
63+
theorem tendsto_order_pow_pentagonal_sub :
6464
Tendsto (fun i ↦ ((-1) ^ i * ((X : R⟦X⟧) ^ (i * (3 * i + 1) / 2) -
6565
X ^ ((i + 1) * (3 * i + 2) / 2))).order) atTop (nhds ⊤) := by
6666
nontriviality R using Subsingleton.eq_zero
@@ -79,12 +79,12 @@ variable [TopologicalSpace R]
7979

8080
namespace Pentagonal
8181

82-
theorem summable_aux_X (k : ℕ) : Summable (aux k · (X : R⟦X⟧)) :=
83-
summable_of_tendsto_order_atTop_nhds_top R (tendsTo_order_aux_X R k)
82+
theorem summable_powMulProdOneSubPow_X (k : ℕ) : Summable (powMulProdOneSubPow k · (X : R⟦X⟧)) :=
83+
summable_of_tendsto_order_atTop_nhds_top R (tendsto_order_powMulProdOneSubPow_X R k)
8484

8585
theorem multipliable_one_sub_X_pow (k : ℕ) : Multipliable fun n ↦ (1 : R⟦X⟧) - X ^ (n + k + 1) := by
8686
simpa [sub_eq_add_neg] using
87-
multipliable_one_add_of_tendsto_order_atTop_nhds_top R (tendsTo_order_neg_X_pow R k)
87+
multipliable_one_add_of_tendsto_order_atTop_nhds_top R (tendsto_order_neg_X_pow R k)
8888

8989
end Pentagonal
9090

@@ -93,7 +93,7 @@ namespace PowerSeries.WithPiTopology
9393

9494
theorem summable_pow_pentagonal_sub : Summable fun (k : ℕ) ↦
9595
((-1) ^ k * (X ^ (k * (3 * k + 1) / 2) - X ^ ((k + 1) * (3 * k + 2) / 2)) : R⟦X⟧) :=
96-
summable_of_tendsto_order_atTop_nhds_top R (Pentagonal.tendsTo_order_pow_pentagonal_sub R)
96+
summable_of_tendsto_order_atTop_nhds_top R (Pentagonal.tendsto_order_pow_pentagonal_sub R)
9797

9898
/-- **Pentagonal number theorem** for power series, summing over natural numbers:
9999
@@ -107,7 +107,7 @@ theorem tprod_one_sub_X_pow_eq_tsum_nat [IsTopologicalRing R] [T2Space R] :
107107
· rw [IsTopologicallyNilpotent, tendsto_iff_coeff_tendsto]
108108
refine fun d ↦ tendsto_atTop_of_eventually_const fun i (hi : i ≥ d + 1) ↦ ?_
109109
grind [coeff_X_pow]
110-
· apply Pentagonal.summable_aux_X
110+
· apply Pentagonal.summable_powMulProdOneSubPow_X
111111
· apply Pentagonal.multipliable_one_sub_X_pow
112112
· apply summable_pow_pentagonal_sub
113113
· rw [tendsto_iff_coeff_tendsto]

Mathlib/Topology/Algebra/InfiniteSum/Pentagonal.lean

Lines changed: 37 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@ modulo summability and multipliability. The complete proof for formal power seri
1717
1818
# Declarations
1919
The following two declarations are exposed
20-
* `Pentagonal.aux`: an auxiliary sequence for which the user needs to prove summability and growth
21-
rate.
20+
* `Pentagonal.powMulProdOneSubPow`: an auxiliary sequence for which the user needs to prove
21+
summability and growth rate.
2222
* `Pentagonal.tprod_one_sub_pow`: pentagonal number theorem with a few summability and
2323
multipliability assumptions.
2424
@@ -34,26 +34,27 @@ variable {R : Type*} [CommRing R]
3434
/--
3535
We define an auxiliary sequence
3636
37-
$$ a_{k, n} = \left( x^{(k+1)n} \prod_{i=0}^{n} 1 - x^{k + i + 1} \right) $$
37+
$$ a_{k, n} = x^{(k+1)n} \prod_{i=0}^{n} 1 - x^{k + i + 1} $$
3838
3939
We will also use its sum
4040
4141
$$ A_k = \sum_{n=0}^{\infty} a_{k, n} $$ -/
42-
public abbrev aux (k n : ℕ) (x : R) : R :=
42+
public abbrev powMulProdOneSubPow (k n : ℕ) (x : R) : R :=
4343
x ^ ((k + 1) * n) * ∏ i ∈ Finset.range (n + 1), (1 - x ^ (k + i + 1))
4444

4545
/-- And a second auxiliary sequence
4646
4747
$$ b_{k, n} = x^{(k+1)n} (x^{2k + n + 3} - 1) \prod_{i=0}^{n-1} 1 - x^{k + i + 2} $$ -/
48-
abbrev aux2 (k n : ℕ) (x : R) : R :=
48+
abbrev aux (k n : ℕ) (x : R) : R :=
4949
x ^ ((k + 1) * n) * (x ^ (2 * k + n + 3) - 1) * ∏ i ∈ Finset.range n, (1 - x ^ (k + i + 2))
5050

51-
/-- $aux$ and $aux2$ have relation
51+
/-- `powMulProdOneSubPow` and `aux` have relation
5252
5353
$$ a_{k,n} + x^{3k + 5}a_{k + 1, n} = b_{k, n+1} - b_{k, n} $$ -/
54-
theorem aux2_sub_aux2 (k n : ℕ) (x : R) :
55-
aux k n x + x ^ (3 * k + 5) * aux (k + 1) n x = aux2 k (n + 1) x - aux2 k n x := by
56-
simp_rw [aux2, Finset.prod_range_succ, aux]
54+
theorem aux_sub_aux (k n : ℕ) (x : R) :
55+
powMulProdOneSubPow k n x + x ^ (3 * k + 5) * powMulProdOneSubPow (k + 1) n x =
56+
aux k (n + 1) x - aux k n x := by
57+
simp_rw [aux, Finset.prod_range_succ, powMulProdOneSubPow]
5758
rw [Finset.prod_range_succ', Finset.prod_range_succ]
5859
ring_nf
5960

@@ -63,14 +64,16 @@ variable [TopologicalSpace R] [IsTopologicalRing R] [T2Space R]
6364
6465
$$ A_k = 1 - x^{2k + 3} - x^{3k + 5}A_{k + 1} $$
6566
-/
66-
theorem tsum_aux (k : ℕ) {x : R} (hx : IsTopologicallyNilpotent x)
67-
(haux : ∀ k, Summable (aux k · x)) (h : ∀ k, Multipliable (fun n ↦ 1 - x ^ (n + k + 1))) :
68-
∑' n, aux k n x = 1 - x ^ (2 * k + 3) - x ^ (3 * k + 5) * ∑' n, aux (k + 1) n x := by
69-
rw [eq_sub_iff_add_eq, show 1 - x ^ (2 * k + 3) = 0 - aux2 k 0 x by simp [aux2]]
70-
rw [← (haux _).tsum_mul_left, ← (haux _).tsum_add ((haux _).mul_left _)]
67+
theorem tsum_powMulProdOneSubPow (k : ℕ) {x : R} (hx : IsTopologicallyNilpotent x)
68+
(hsum : ∀ k, Summable (powMulProdOneSubPow k · x))
69+
(h : ∀ k, Multipliable (fun n ↦ 1 - x ^ (n + k + 1))) :
70+
∑' n, powMulProdOneSubPow k n x =
71+
1 - x ^ (2 * k + 3) - x ^ (3 * k + 5) * ∑' n, powMulProdOneSubPow (k + 1) n x := by
72+
rw [eq_sub_iff_add_eq, show 1 - x ^ (2 * k + 3) = 0 - aux k 0 x by simp [aux]]
73+
rw [← (hsum _).tsum_mul_left, ← (hsum _).tsum_add ((hsum _).mul_left _)]
7174
apply HasSum.tsum_eq
72-
rw [((haux _).add ((haux _).mul_left _)).hasSum_iff_tendsto_nat]
73-
simp_rw [aux2_sub_aux2, Finset.sum_range_sub (aux2 k · x)]
75+
rw [((hsum _).add ((hsum _).mul_left _)).hasSum_iff_tendsto_nat]
76+
simp_rw [aux_sub_aux, Finset.sum_range_sub (aux k · x)]
7477
apply Tendsto.sub_const
7578
rw [show nhds 0 = nhds (0 * (0 - 1) * ∏' i, (1 - x ^ (k + i + 2))) by simp]
7679
refine (Tendsto.mul ?_ ?_).mul ?_
@@ -83,11 +86,12 @@ theorem tsum_aux (k : ℕ) {x : R} (hx : IsTopologicallyNilpotent x)
8386
/-- The Euler function is related to $A_0$ by
8487
8588
$$ \prod_{n = 0}^{\infty} 1 - x^{n + 1} = 1 - x - x^2 A_0 $$ -/
86-
theorem tprod_one_sub_pow_eq_aux_zero {x : R}
87-
(haux : ∀ k, Summable (aux k · x)) (h : ∀ k, Multipliable fun n ↦ 1 - x ^ (n + k + 1)) :
88-
∏' n, (1 - x ^ (n + 1)) = 1 - x - x ^ 2 * ∑' n, aux 0 n x := by
89-
obtain hsum := haux 0
90-
simp_rw [aux, zero_add, one_mul] at hsum
89+
theorem tprod_one_sub_pow_eq_powMulProdOneSubPow_zero {x : R}
90+
(hsum : ∀ k, Summable (powMulProdOneSubPow k · x))
91+
(h : ∀ k, Multipliable fun n ↦ 1 - x ^ (n + k + 1)) :
92+
∏' n, (1 - x ^ (n + 1)) = 1 - x - x ^ 2 * ∑' n, powMulProdOneSubPow 0 n x := by
93+
obtain hsum := hsum 0
94+
simp_rw [powMulProdOneSubPow, zero_add, one_mul] at hsum
9195
have hsum' : Summable fun i ↦ x ^ (i + 1) * ∏ n ∈ Finset.range i, (1 - x ^ (n + 1)) := by
9296
apply Summable.comp_nat_add (k := 1)
9397
conv in fun k ↦ _ =>
@@ -100,22 +104,25 @@ theorem tprod_one_sub_pow_eq_aux_zero {x : R}
100104
ext k
101105
rw [pow_add, pow_add, mul_assoc (x ^ k), mul_comm (x ^ k),
102106
← pow_add x 1 1, one_add_one_eq_two, mul_assoc (x ^ 2)]
103-
simp [hsum.tsum_mul_left, aux]
107+
simp [hsum.tsum_mul_left, powMulProdOneSubPow]
104108

105109
/-- Applying the recurrence formula repeatedly, we get
106110
107111
$$ \prod_{n = 0}^{\infty} 1 - x^{n + 1} =
108112
\left(\sum_{k=0}^{j} (-1)^k \left(x^{k(3k+1)/2} - x^{(k+1)(3k+2)/2}\right) \right) +
109113
(-1)^{j+1}x^{(j+1)(3j+4)/2}A_j $$ -/
110-
theorem tprod_one_sub_pow_eq_aux (j : ℕ) {x : R} (hx : IsTopologicallyNilpotent x)
111-
(haux : ∀ k, Summable (aux k · x)) (h : ∀ k, Multipliable (fun n ↦ 1 - x ^ (n + k + 1))) :
114+
theorem tprod_one_sub_pow_eq_powMulProdOneSubPow (j : ℕ) {x : R} (hx : IsTopologicallyNilpotent x)
115+
(hsum : ∀ k, Summable (powMulProdOneSubPow k · x))
116+
(h : ∀ k, Multipliable (fun n ↦ 1 - x ^ (n + k + 1))) :
112117
∏' n, (1 - x ^ (n + 1)) = ∑ k ∈ Finset.range (j + 1),
113118
(-1) ^ k * (x ^ (k * (3 * k + 1) / 2) - x ^ ((k + 1) * (3 * k + 2) / 2))
114-
+ (-1) ^ (j + 1) * x ^ ((j + 1) * (3 * j + 4) / 2) * ∑' n, aux j n x := by
119+
+ (-1) ^ (j + 1) * x ^ ((j + 1) * (3 * j + 4) / 2) * ∑' n, powMulProdOneSubPow j n x := by
115120
induction j with
116-
| zero => simp [tprod_one_sub_pow_eq_aux_zero haux h, aux, ← sub_eq_add_neg]
121+
| zero =>
122+
simp [tprod_one_sub_pow_eq_powMulProdOneSubPow_zero hsum h, powMulProdOneSubPow,
123+
← sub_eq_add_neg]
117124
| succ n ih =>
118-
rw [ih, tsum_aux _ hx haux h, Finset.sum_range_succ _ (n + 1)]
125+
rw [ih, tsum_powMulProdOneSubPow _ hx hsum h, Finset.sum_range_succ _ (n + 1)]
119126
have h (n) : (n + 1 + 1) * (3 * (n + 1) + 2) / 2 =
120127
(n + 1) * (3 * n + 4) / 2 + (2 * n + 3) := by
121128
rw [← Nat.add_mul_div_left _ _ (by simp)]
@@ -133,15 +140,15 @@ theorem tprod_one_sub_pow_eq_aux (j : ℕ) {x : R} (hx : IsTopologicallyNilpoten
133140
$$ \prod_{n = 0}^{\infty} 1 - x^{n + 1} =
134141
\sum_{k=0}^{\infty} (-1)^k \left(x^{k(3k+1)/2} - x^{(k+1)(3k+2)/2}\right) $$ -/
135142
public theorem tprod_one_sub_pow {x : R} (hx : IsTopologicallyNilpotent x)
136-
(haux : ∀ k, Summable (Pentagonal.aux k · x))
143+
(hsum : ∀ k, Summable (powMulProdOneSubPow k · x))
137144
(hlhs : ∀ k, Multipliable (fun n ↦ 1 - x ^ (n + k + 1)))
138145
(hrhs : Summable fun (k : ℕ) ↦
139146
(-1) ^ k * (x ^ (k * (3 * k + 1) / 2) - x ^ ((k + 1) * (3 * k + 2) / 2)))
140147
(htail : Tendsto (fun k ↦ (-1) ^ (k + 1) * x ^ ((k + 1) * (3 * k + 4) / 2) *
141-
∑' (n : ℕ), Pentagonal.aux k n x) atTop (nhds 0)) :
148+
∑' (n : ℕ), powMulProdOneSubPow k n x) atTop (nhds 0)) :
142149
∏' n, (1 - x ^ (n + 1)) =
143150
∑' k, (-1) ^ k * (x ^ (k * (3 * k + 1) / 2) - x ^ ((k + 1) * (3 * k + 2) / 2)) := by
144-
obtain h := fun n ↦ tprod_one_sub_pow_eq_aux n hx haux hlhs
151+
obtain h := fun n ↦ tprod_one_sub_pow_eq_powMulProdOneSubPow n hx hsum hlhs
145152
simp_rw [← sub_eq_iff_eq_add] at h
146153
refine (HasSum.tsum_eq ?_).symm
147154
rw [hrhs.hasSum_iff_tendsto_nat, (map_add_atTop_eq_nat 1).symm]

0 commit comments

Comments
 (0)