Skip to content

Commit 036bc5a

Browse files
committed
Completely rewrite proof of abs_iterate_derivative_T_real_le
1 parent 9365134 commit 036bc5a

2 files changed

Lines changed: 9 additions & 17 deletions

File tree

Mathlib/Analysis/SpecialFunctions/Trigonometric/Chebyshev/RootsExtrema.lean

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -326,22 +326,17 @@ theorem irrational_of_isRoot_T_real {n : ℕ} {x : ℝ} (hroot : (T ℝ n).IsRoo
326326
theorem abs_iterate_derivative_T_real_le (n k : ℕ) {x : ℝ} (hx : |x| ≤ 1) :
327327
|(derivative^[k] (T ℝ n)).eval x| ≤ (derivative^[k] (T ℝ n)).eval 1 := by
328328
have := T_iterate_derivative_mem_span_T (R := ℝ) n k
329-
rw [setOf_T_eq_map] at this
330-
obtain ⟨f, hf⟩ := Submodule.mem_span_finset'.mp this
331-
let g (m : ℕ) := if hm : m ∈ Finset.Icc 0 (n - k) then f ⟨(T ℝ m), by simp [Tnat, hm]⟩ else 0
332-
have : ∑ m ∈ Finset.Icc 0 (n - k), g m • (T ℝ m) = ∑ a, f a • a.val := by
333-
rw [Finset.univ_eq_attach]
334-
apply Finset.sum_bij (fun m hm => ⟨T ℝ m, by simp [Tnat, hm]⟩) (by simp)
335-
case i_inj => intros; grind
336-
case i_surj => aesop
337-
grind
338-
replace hf (y : ℝ) :
339-
∑ m ∈ Finset.Icc 0 (n - k), g m * (T ℝ m).eval y = (derivative^[k] (T ℝ n)).eval y := by
340-
rw [← hf, ← this, eval_finset_sum]; congr; simp
329+
obtain ⟨f, hfsupp, hfderiv⟩ := Submodule.mem_span_set.mp this
330+
replace hfderiv : ∑ p ∈ f.support, f p • p = derivative^[k] (T ℝ n) := by rw [← hfderiv]; rfl
331+
have hf (y : ℝ) :
332+
∑ p ∈ f.support, f p • p.eval y = (derivative^[k] (T ℝ n)).eval y := by
333+
rw [← hfderiv, Polynomial.eval_finset_sum]
334+
simp_rw [Polynomial.eval_smul]
341335
rw [← hf x, ← hf 1]
342336
grw [Finset.abs_sum_le_sum_abs]
343-
refine Finset.sum_le_sum (fun i _ => ?_)
344-
grw [abs_mul, abs_eval_T_real_le_one i hx]
337+
refine Finset.sum_le_sum (fun i hi => ?_)
338+
obtain ⟨m, hm, hi⟩ := (Set.mem_image ..).mp (hfsupp hi)
339+
grw [abs_nsmul, ← hi, abs_eval_T_real_le_one m hx]
345340
simp
346341

347342
end Polynomial.Chebyshev

Mathlib/RingTheory/Polynomial/Chebyshev.lean

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -513,9 +513,6 @@ noncomputable def Tnat [IsDomain R] [NeZero (2 : R)] : ℕ ↪ R[X] where
513513
toFun m := T R m
514514
inj' m₁ m₂ hm := by convert congrArg Polynomial.degree hm; simp [degree_T]
515515

516-
theorem setOf_T_eq_map [IsDomain R] [NeZero (2 : R)] (n : ℕ) :
517-
{T R m | m ∈ Finset.Icc 0 n} = (Finset.Icc 0 n).map (Tnat (R := R)) := by grind
518-
519516
/-- `C n` is the `n`th rescaled Chebyshev polynomial of the first kind (also known as a Vieta–Lucas
520517
polynomial), given by $C_n(2x) = 2T_n(x)$. See `Polynomial.Chebyshev.C_comp_two_mul_X`. -/
521518
noncomputable def C : ℤ → R[X]

0 commit comments

Comments
 (0)