Skip to content

Commit 2326d7e

Browse files
committed
Add Submodule.mem_span_image_finset_iff_exists_fun
1 parent ee9e6c4 commit 2326d7e

2 files changed

Lines changed: 22 additions & 6 deletions

File tree

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

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -110,15 +110,15 @@ theorem sumZeroes_T_of_not_dvd {n : ℕ} {k : ℤ} (hk : ¬ (2 * n : ℤ) ∣ k)
110110
theorem integral_eq_sumZeroes {n : ℕ} {P : ℝ[X]} (hn : n ≠ 0) (hP : P.degree < 2 * n) :
111111
∫ x, P.eval x ∂measureT = sumZeroes n P := by
112112
have hmem : P ∈ degreeLT ℝ (2 * n) := by rwa [mem_degreeLT]
113-
rw [← Sequence.span_degreeLT (m := 2 * n) (chebyshevTsequence ℝ) (by simp),
114-
show Set.Iio (2 * n) = Finset.range (2 * n) by simp, ← Finset.coe_image] at hmem
115-
obtain ⟨c, rfl⟩ := Submodule.mem_span_finset'.mp hmem
113+
rw [← Sequence.span_degreeLT (chebyshevTsequence ℝ) (by simp),
114+
show Set.Iio (2 * n) = Finset.range (2 * n) by simp,
115+
Submodule.mem_span_image_finset_iff_exists_fun'] at hmem
116+
obtain ⟨c, rfl⟩ := hmem
116117
simp_rw [eval_finset_sum, eval_smul]
117118
rw [MeasureTheory.integral_finset_sum, sumZeroes_sum]
118119
· simp_rw [sumZeroes_smul, smul_eq_mul, MeasureTheory.integral_const_mul]
119-
congr! with t _
120-
obtain ⟨i, hrange, ht⟩ := mem_image.mp t.prop
121-
simp_rw [← ht, chebyshevTsequence]
120+
congr! with i hrange
121+
simp_rw [chebyshevTsequence]
122122
by_cases i = 0
123123
case pos hi => rw [hi, Nat.cast_zero, integral_eval_T_real_measureT_zero, sumZeroes_T_zero hn]
124124
case neg hi =>

Mathlib/LinearAlgebra/Finsupp/LinearCombination.lean

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -404,6 +404,22 @@ theorem Submodule.mem_span_image_iff_exists_fun {s : Set α} :
404404
· rw [← hx]
405405
exact sum_smul_mem (span R (v '' s)) c fun a _ ↦ subset_span <| by aesop
406406

407+
theorem Submodule.mem_span_image_finset_iff_exists_fun {s : Finset α} :
408+
x ∈ span R (v '' s) ↔ ∃ c : s → R, ∑ i, c i • v i = x := by
409+
rw [← mem_span_range_iff_exists_fun, image_eq_range]
410+
rfl
411+
412+
theorem Submodule.mem_span_image_finset_iff_exists_fun' {s : Finset α} :
413+
x ∈ span R (v '' s) ↔ ∃ c : α → R, ∑ i ∈ s, c i • v i = x := by
414+
classical
415+
rw [Submodule.mem_span_image_finset_iff_exists_fun]
416+
refine ⟨fun ⟨c, hc⟩ ↦ ?_, fun ⟨c, hc⟩ ↦ ?_⟩
417+
· refine ⟨fun i ↦ if h : i ∈ s then c ⟨i, h⟩ else 0, ?_⟩
418+
rw [← hc, ← Finset.sum_coe_sort (s := s)]
419+
simp
420+
· refine ⟨fun i ↦ c i, ?_⟩
421+
rw [← hc, ← Finset.sum_coe_sort (s := s)]
422+
407423
theorem Fintype.mem_span_image_iff_exists_fun {s : Set α} [Fintype s] :
408424
x ∈ span R (v '' s) ↔ ∃ c : s → R, ∑ i, c i • v i = x := by
409425
rw [← mem_span_range_iff_exists_fun, image_eq_range]

0 commit comments

Comments
 (0)