@@ -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