Skip to content

Commit bad4b28

Browse files
committed
Adapted to powersetCard
1 parent 5bf1045 commit bad4b28

1 file changed

Lines changed: 12 additions & 16 deletions

File tree

Mathlib/LinearAlgebra/Lagrange.lean

Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -460,7 +460,7 @@ theorem iterate_derivative_interpolate
460460
(hvs : Set.InjOn v s) {k : ℕ} (hk : k ≤ #s - 1) :
461461
derivative^[k] (interpolate s v r) = k.factorial *
462462
∑ i ∈ s, C (r i / ∏ j ∈ s.erase i, ((v i) - (v j))) *
463-
∑ t ∈ (s.erase i).powerset with #t = #s - (k + 1),
463+
∑ t ∈ (s.erase i).powersetCard (#s - (k + 1)),
464464
∏ a ∈ t, (X - C (v a)) := by
465465
classical
466466
simp_rw [interpolate_eq_sum, iterate_derivative_sum, iterate_derivative_C_mul, mul_sum (s := s),
@@ -471,35 +471,31 @@ theorem iterate_derivative_interpolate
471471
derivative^[k] (∏ j ∈ s.erase i, (X - C (v j))) =
472472
derivative^[k] (∏ vj ∈ (s.erase i).image v, (X - C vj)) := by
473473
rw [Finset.prod_image hvs']
474-
_ = k.factorial * ∑ t ∈ ((s.erase i).image v).powerset with #t = #s - (k + 1),
474+
_ = k.factorial * ∑ t ∈ ((s.erase i).image v).powersetCard (#s - (k + 1)),
475475
∏ va ∈ t, (X - C va) := by
476476
have hcard : #((s.erase i).image v) = #s - 1 := by
477477
rw [card_image_of_injOn hvs', card_erase_of_mem hi]
478-
have : k ≤ #((s.erase i).image v) := by rwa [hcard]
479-
rw [iterate_derivative_prod_X_sub_C this]
480-
congr! 5
478+
rw [iterate_derivative_prod_X_sub_C (by rwa [hcard])]
479+
congr! 3
481480
omega
482-
_ = k.factorial * ∑ t ∈ (s.erase i).powerset with #t = #s - (k + 1),
481+
_ = k.factorial * ∑ t ∈ (s.erase i).powersetCard (#s - (k + 1)),
483482
∏ a ∈ t, (X - C (v a)) := by
484-
rw [powerset_image, sum_nbij (fun (t : Finset ι) => t.image v)]
483+
rw [powersetCard_eq_filter, powersetCard_eq_filter, powerset_image,
484+
sum_nbij (fun (t : Finset ι) => t.image v)]
485485
case hi =>
486486
intro a ha
487487
rw [mem_filter, mem_powerset] at ha
488488
rw [mem_filter, mem_image]
489-
constructor
490-
· use a; simp [ha.1]
491-
· rw [card_image_of_injOn (hvs'.mono (coe_subset.mpr ha.1))]
492-
exact ha.2
493-
case i_inj =>
494-
refine (image_injOn_powerset_of_injOn hvs').mono (coe_subset.mpr ?_)
495-
simp
489+
refine ⟨⟨a, by simp [ha.1]⟩, ?_⟩
490+
rw [card_image_of_injOn (hvs'.mono (coe_subset.mpr ha.1))]
491+
exact ha.2
492+
case i_inj => exact (image_injOn_powerset_of_injOn hvs').mono (coe_subset.mpr (by simp))
496493
case i_surj =>
497494
intro t ht
498495
rw [mem_coe, mem_filter, mem_image] at ht
499496
obtain ⟨a, ha⟩ := ht.1
500497
simp_rw [Set.mem_image, mem_coe, mem_filter]
501-
use a
502-
refine ⟨⟨ha.1, ?_⟩, ha.2
498+
refine ⟨a, ⟨⟨ha.1, ?_⟩, ha.2⟩⟩
503499
rw [← ht.2, ← ha.2, card_image_of_injOn (hvs'.mono (coe_subset.mpr (mem_powerset.mp ha.1)))]
504500
case h =>
505501
intro a ha

0 commit comments

Comments
 (0)