@@ -21,10 +21,15 @@ import Mathlib.NumberTheory.Niven
2121
2222## Main statements
2323
24- * T_n(x) ∈ [-1, 1] iff x ∈ [-1, 1 ]: `abs_eval_T_real_le_one_iff`
25- * Zeroes of T and U: `roots_T_real`, `roots_U_real`
26- * Local extrema of T: `isLocalExtr_T_real_iff`, `isExtrOn_T_real_iff`
27- * Irrationality of zeroes of T other than zero: `irrational_of_isRoot_T_real`
24+ * `T_n(x) ∈ [-1, 1]` iff `x ∈ [-1, 1]`: abs_eval_T_real_le_one_iff
25+ * Zeroes of `T` and `U`: roots_T_real, roots_U_real
26+ * Local extrema of `T`: isLocalExtr_T_real_iff, isExtrOn_T_real_iff
27+ * Irrationality of zeroes of `T` other than zero: irrational_of_isRoot_T_real
28+ * `|T_n^{(k)} (x)| ≤ T_n^{(k)} (1)` for `x ∈ [-1, 1]`: abs_iterate_derivative_T_real_le
29+
30+ ## TODO
31+
32+ Show that the bound on `T_n^{(k)} (x)` is achieved only at `x = ±1`
2833-/
2934
3035public section
@@ -318,4 +323,27 @@ theorem irrational_of_isRoot_T_real {n : ℕ} {x : ℝ} (hroot : (T ℝ n).IsRoo
318323 Nat.eq_of_dvd_of_div_eq_one (Nat.gcd_dvd_left ..) (by grind [Rat.den_pos])) (by grind)
319324 rw_mod_cast [← hk₂, hn]; convert cos_pi_div_two using 2 ; push_cast; field_simp
320325
326+ theorem abs_iterate_derivative_T_real_le (n k : ℕ) {x : ℝ} (hx : |x| ≤ 1 ) :
327+ |(derivative^[k] (T ℝ n)).eval x| ≤ (derivative^[k] (T ℝ n)).eval 1 := by
328+ 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 [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
335+ case i => use fun m hm => ⟨T ℝ m, by simp [hm]⟩
336+ case hi => simp
337+ case i_inj => intro _ _ _ _ hm; convert congrArg (Polynomial.degree ·.1 ) hm; simp [degree_T]
338+ case i_surj => aesop
339+ grind
340+ replace hf (y : ℝ) :
341+ ∑ m ∈ Finset.Icc 0 (n - k), g m * (T ℝ m).eval y = (derivative^[k] (T ℝ n)).eval y := by
342+ rw [← hf, ← this, eval_finset_sum]; congr; simp
343+ rw [← hf x, ← hf 1 ]
344+ grw [Finset.abs_sum_le_sum_abs]
345+ refine Finset.sum_le_sum (fun i _ => ?_)
346+ grw [abs_mul, abs_eval_T_real_le_one i hx]
347+ simp
348+
321349end Polynomial.Chebyshev
0 commit comments