@@ -104,8 +104,8 @@ lemma pow_mul_term_eq (f : ℕ → ℂ) (s : ℂ) (n : ℕ) :
104
104
lemma norm_term_eq (f : ℕ → ℂ) (s : ℂ) (n : ℕ) :
105
105
‖term f s n‖ = if n = 0 then 0 else ‖f n‖ / n ^ s.re := by
106
106
rcases eq_or_ne n 0 with rfl | hn
107
- · simp only [term_zero, norm_zero, ↓reduceIte]
108
- · rw [if_neg hn, term_of_ne_zero hn, norm_div , norm_natCast_cpow_of_pos <| Nat.pos_of_ne_zero hn]
107
+ · simp
108
+ · simp [hn , norm_natCast_cpow_of_pos <| Nat.pos_of_ne_zero hn]
109
109
110
110
lemma norm_term_le {f g : ℕ → ℂ} (s : ℂ) {n : ℕ} (h : ‖f n‖ ≤ ‖g n‖) :
111
111
‖term f s n‖ ≤ ‖term g s n‖ := by
@@ -118,8 +118,8 @@ lemma norm_term_le_of_re_le_re (f : ℕ → ℂ) {s s' : ℂ} (h : s.re ≤ s'.r
118
118
‖term f s' n‖ ≤ ‖term f s n‖ := by
119
119
simp only [norm_term_eq]
120
120
split
121
- next => rfl
122
- next hn => gcongr; exact Nat.one_le_cast.mpr <| Nat.one_le_iff_ne_zero.mpr hn
121
+ · next => rfl
122
+ · next hn => gcongr; exact Nat.one_le_cast.mpr <| Nat.one_le_iff_ne_zero.mpr hn
123
123
124
124
section positivity
125
125
@@ -178,9 +178,9 @@ lemma LSeriesSummable.congr' {f g : ℕ → ℂ} (s : ℂ) (h : f =ᶠ[atTop] g)
178
178
rw [eventuallyEq_iff_exists_mem] at h ⊢
179
179
obtain ⟨S, hS, hS'⟩ := h
180
180
refine ⟨S \ {0 }, diff_mem hS <| (Set.finite_singleton 0 ).compl_mem_cofinite, fun n hn ↦ ?_⟩
181
- simp only [Set.mem_diff, Set.mem_singleton_iff] at hn
182
- simp only [term_of_ne_zero hn.2 , hS' hn.1 ]
183
- exact Eventually.mono this.symm fun n hn ↦ by simp only [hn, le_rfl ]
181
+ rw [Set.mem_diff, Set.mem_singleton_iff] at hn
182
+ simp [ hn.2 , hS' hn.1 ]
183
+ exact this.symm.mono fun n hn ↦ by simp [hn]
184
184
185
185
open Filter in
186
186
/-- If `f` and `g` agree on large `n : ℕ`, then the `LSeries` of `f` converges at `s`
@@ -195,8 +195,7 @@ theorem LSeries.eq_zero_of_not_LSeriesSummable (f : ℕ → ℂ) (s : ℂ) :
195
195
196
196
@[simp]
197
197
theorem LSeriesSummable_zero {s : ℂ} : LSeriesSummable 0 s := by
198
- simp only [LSeriesSummable, funext (term_def 0 s), Pi.zero_apply, zero_div, ite_self,
199
- summable_zero]
198
+ simp [LSeriesSummable, funext (term_def 0 s), summable_zero]
200
199
201
200
/-- This states that the L-series of the sequence `f` converges absolutely at `s` and that
202
201
the value there is `a`. -/
@@ -221,7 +220,7 @@ lemma LSeriesHasSum_iff {f : ℕ → ℂ} {s a : ℂ} :
221
220
222
221
lemma LSeriesHasSum_congr {f g : ℕ → ℂ} (s a : ℂ) (h : ∀ {n}, n ≠ 0 → f n = g n) :
223
222
LSeriesHasSum f s a ↔ LSeriesHasSum g s a := by
224
- simp only [LSeriesHasSum_iff, LSeriesSummable_congr s h, LSeries_congr s h]
223
+ simp [LSeriesHasSum_iff, LSeriesSummable_congr s h, LSeries_congr s h]
225
224
226
225
lemma LSeriesSummable.of_re_le_re {f : ℕ → ℂ} {s s' : ℂ} (h : s.re ≤ s'.re)
227
226
(hf : LSeriesSummable f s) : LSeriesSummable f s' := by
@@ -260,7 +259,7 @@ scoped[LSeries.notation] notation "δ" => delta
260
259
@[simp]
261
260
lemma LSeries_zero : LSeries 0 = 0 := by
262
261
ext
263
- simp only [LSeries, LSeries.term, Pi.zero_apply, zero_div, ite_self, tsum_zero ]
262
+ simp [LSeries, LSeries.term]
264
263
265
264
section delta
266
265
@@ -272,16 +271,14 @@ open Nat Complex
272
271
273
272
lemma term_delta (s : ℂ) (n : ℕ) : term δ s n = if n = 1 then 1 else 0 := by
274
273
rcases eq_or_ne n 0 with rfl | hn
275
- · simp only [term_zero, zero_ne_one, ↓reduceIte]
276
- · simp only [ne_eq, hn, not_false_eq_true, term_of_ne_zero, delta]
277
- rcases eq_or_ne n 1 with rfl | hn'
278
- · simp only [↓reduceIte, cast_one, one_cpow, ne_eq, one_ne_zero, not_false_eq_true, div_self]
279
- · simp only [hn', ↓reduceIte, zero_div]
274
+ · simp
275
+ · rcases eq_or_ne n 1 with hn' | hn' <;>
276
+ simp [hn, hn', delta]
280
277
281
278
lemma mul_delta_eq_smul_delta {f : ℕ → ℂ} : f * δ = f 1 • δ := by
282
279
ext n
283
- simp only [Pi.mul_apply, delta, mul_ite, mul_one, mul_zero, Pi.smul_apply, smul_eq_mul]
284
- split_ifs with hn <;> simp only [hn]
280
+ by_cases hn : n = 1 <;>
281
+ simp [hn, delta ]
285
282
286
283
lemma mul_delta {f : ℕ → ℂ} (h : f 1 = 1 ) : f * δ = δ := by
287
284
rw [mul_delta_eq_smul_delta, h, one_smul]
@@ -297,7 +294,7 @@ end LSeries
297
294
/-- The L-series of `δ` is the constant function `1`. -/
298
295
lemma LSeries_delta : LSeries δ = 1 := by
299
296
ext
300
- simp only [LSeries, LSeries.term_delta, tsum_ite_eq, Pi.one_apply ]
297
+ simp [LSeries, LSeries.term_delta]
301
298
302
299
end delta
303
300
@@ -335,31 +332,25 @@ lemma LSeriesSummable_of_le_const_mul_rpow {f : ℕ → ℂ} {x : ℝ} {s : ℂ}
335
332
(h : ∃ C, ∀ n ≠ 0 , ‖f n‖ ≤ C * n ^ (x - 1 )) :
336
333
LSeriesSummable f s := by
337
334
obtain ⟨C, hC⟩ := h
338
- have hC₀ : 0 ≤ C := by
339
- specialize hC 1 one_ne_zero
340
- simp only [Nat.cast_one, Real.one_rpow, mul_one] at hC
341
- exact (norm_nonneg _).trans hC
335
+ have hC₀ : 0 ≤ C := (norm_nonneg <| f 1 ).trans <| by simpa using hC 1 one_ne_zero
342
336
have hsum : Summable fun n : ℕ ↦ ‖(C : ℂ) / n ^ (s + (1 - x))‖ := by
343
337
simp_rw [div_eq_mul_inv, norm_mul, ← cpow_neg]
344
338
have hsx : -s.re + x - 1 < -1 := by linarith only [hs]
345
339
refine Summable.mul_left _ <|
346
340
Summable.of_norm_bounded_eventually_nat (fun n ↦ (n : ℝ) ^ (-s.re + x - 1 )) ?_ ?_
347
- · simp only [Real.summable_nat_rpow, hsx]
348
- · simp only [neg_add_rev, neg_sub, norm_norm, Filter.eventually_atTop]
349
- refine ⟨1 , fun n hn ↦ ?_⟩
341
+ · simpa
342
+ · simp only [norm_norm, Filter.eventually_atTop]
343
+ refine ⟨1 , fun n hn ↦ le_of_eq ?_⟩
350
344
simp only [norm_natCast_cpow_of_pos hn, add_re, sub_re, neg_re, ofReal_re, one_re]
351
- convert le_refl ?_ using 2
352
- ring
345
+ ring_nf
353
346
refine Summable.of_norm <| hsum.of_nonneg_of_le (fun _ ↦ norm_nonneg _) (fun n ↦ ?_)
354
347
rcases n.eq_zero_or_pos with rfl | hn
355
- · simp only [term_zero, norm_zero]
356
- exact norm_nonneg _
348
+ · simpa only [term_zero, norm_zero] using norm_nonneg _
357
349
have hn' : 0 < (n : ℝ) ^ s.re := Real.rpow_pos_of_pos (Nat.cast_pos.mpr hn) _
358
350
simp_rw [term_of_ne_zero hn.ne', norm_div, norm_natCast_cpow_of_pos hn, div_le_iff₀ hn',
359
351
norm_eq_abs (C : ℂ), abs_ofReal, _root_.abs_of_nonneg hC₀, div_eq_mul_inv, mul_assoc,
360
352
← Real.rpow_neg <| Nat.cast_nonneg _, ← Real.rpow_add <| Nat.cast_pos.mpr hn]
361
- simp only [add_re, sub_re, one_re, ofReal_re, neg_add_rev, neg_sub, neg_add_cancel_right]
362
- exact hC n <| Nat.pos_iff_ne_zero.mp hn
353
+ simpa using hC n <| Nat.pos_iff_ne_zero.mp hn
363
354
364
355
open Filter Finset Real Nat in
365
356
/-- If `f = O(n^(x-1))` and `re s > x`, then the `LSeries` of `f` is summable at `s`. -/
@@ -386,12 +377,11 @@ lemma LSeriesSummable_of_isBigO_rpow {f : ℕ → ℂ} {x : ℝ} {s : ℂ} (hs :
386
377
/-- If `f` is bounded, then its `LSeries` is summable at `s` when `re s > 1`. -/
387
378
theorem LSeriesSummable_of_bounded_of_one_lt_re {f : ℕ → ℂ} {m : ℝ}
388
379
(h : ∀ n ≠ 0 , Complex.abs (f n) ≤ m) {s : ℂ} (hs : 1 < s.re) :
389
- LSeriesSummable f s := by
390
- refine LSeriesSummable_of_le_const_mul_rpow hs ⟨m, fun n hn ↦ ?_⟩
391
- simp only [norm_eq_abs, sub_self, Real.rpow_zero, mul_one, h n hn]
380
+ LSeriesSummable f s :=
381
+ LSeriesSummable_of_le_const_mul_rpow hs ⟨m, fun n hn ↦ by simp [h n hn]⟩
392
382
393
383
/-- If `f` is bounded, then its `LSeries` is summable at `s : ℝ` when `s > 1`. -/
394
384
theorem LSeriesSummable_of_bounded_of_one_lt_real {f : ℕ → ℂ} {m : ℝ}
395
385
(h : ∀ n ≠ 0 , Complex.abs (f n) ≤ m) {s : ℝ} (hs : 1 < s) :
396
386
LSeriesSummable f s :=
397
- LSeriesSummable_of_bounded_of_one_lt_re h <| by simp only [ofReal_re, hs]
387
+ LSeriesSummable_of_bounded_of_one_lt_re h <| by simp [ hs]
0 commit comments