Skip to content

Commit 45b927d

Browse files
committed
Simplified proof
1 parent 472b5b5 commit 45b927d

2 files changed

Lines changed: 11 additions & 7 deletions

File tree

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

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -328,13 +328,11 @@ theorem abs_iterate_derivative_T_real_le (n k : ℕ) {x : ℝ} (hx : |x| ≤ 1)
328328
have := T_iterate_derivative_mem_span_T (R := ℝ) n k
329329
rw [setOf_T_eq_map] at this
330330
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
331+
let g (m : ℕ) := if hm : m ∈ Finset.Icc 0 (n - k) then f ⟨(T ℝ m), by simp [Tnat, hm]⟩ else 0
332332
have : ∑ m ∈ Finset.Icc 0 (n - k), g m • (T ℝ m) = ∑ a, f a • a.val := by
333333
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]
334+
apply Finset.sum_bij (fun m hm => ⟨T ℝ m, by simp [Tnat, hm]⟩) (by simp)
335+
case i_inj => intros; grind
338336
case i_surj => aesop
339337
grind
340338
replace hf (y : ℝ) :

Mathlib/RingTheory/Polynomial/Chebyshev.lean

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -507,9 +507,15 @@ theorem U_mem_span_T (n : ℕ) : U R n ∈ Submodule.span ℕ {T R m | m ∈ Fin
507507
refine Submodule.add_mem _ ?_ ((Submodule.span_mono (by grind)) h₀)
508508
· exact Submodule.smul_of_tower_mem _ 2 (Submodule.mem_span_of_mem ⟨n + 2, by simp⟩)
509509

510+
/-- `T` defines an injection from `ℕ` to `R[X]` given by `T R n` -/
511+
noncomputable def Tnat [IsDomain R] [NeZero (2 : R)] : ℕ ↪ R[X] :=
512+
{
513+
toFun m := T R m
514+
inj' m₁ m₂ hm := by convert congrArg Polynomial.degree hm; simp [degree_T]
515+
}
516+
510517
theorem setOf_T_eq_map [IsDomain R] [NeZero (2 : R)] (n : ℕ) :
511-
{T R m | m ∈ Finset.Icc 0 n} = (Finset.Icc 0 n).map ⟨fun (m : ℕ) => T R m,
512-
by intro m₁ m₂ hm; convert congrArg Polynomial.degree hm; simp [degree_T]⟩ := by grind
518+
{T R m | m ∈ Finset.Icc 0 n} = (Finset.Icc 0 n).map (Tnat (R := R)) := by grind
513519

514520
/-- `C n` is the `n`th rescaled Chebyshev polynomial of the first kind (also known as a Vieta–Lucas
515521
polynomial), given by $C_n(2x) = 2T_n(x)$. See `Polynomial.Chebyshev.C_comp_two_mul_X`. -/

0 commit comments

Comments
 (0)