@@ -118,18 +118,19 @@ theorem vandermonde_transpose_mul_vandermonde (v : Fin n → R) (i j) :
118
118
simp only [vandermonde_apply, Matrix.mul_apply, Matrix.transpose_apply, pow_add]
119
119
120
120
theorem rectVandermonde_apply_zero_right {α : Type *} {v w : α → R} {i : α} (hw : w i = 0 ) :
121
- rectVandermonde v w (n+ 1 ) i = Pi.single (Fin.last n) ((v i) ^ n) := by
121
+ rectVandermonde v w (n + 1 ) i = Pi.single (Fin.last n) ((v i) ^ n) := by
122
122
ext j
123
123
obtain rfl | hlt := j.le_last.eq_or_lt
124
124
· simp [rectVandermonde_apply]
125
125
rw [rectVandermonde_apply, Pi.single_eq_of_ne hlt.ne, hw, zero_pow, mul_zero]
126
126
simpa [Nat.sub_eq_zero_iff_le] using hlt
127
127
128
- theorem projVandermonde_apply_of_ne_zero {v w : Fin (n+1 ) → K} {i j : Fin (n+1 )} (hw : w i ≠ 0 ) :
128
+ theorem projVandermonde_apply_of_ne_zero
129
+ {v w : Fin (n + 1 ) → K} {i j : Fin (n + 1 )} (hw : w i ≠ 0 ) :
129
130
projVandermonde v w i j = (v i) ^ j.1 * (w i) ^ n / (w i) ^ j.1 := by
130
131
rw [projVandermonde_apply, eq_div_iff (by simp [hw]), mul_assoc, ← pow_add, rev_add_cast]
131
132
132
- theorem projVandermonde_apply_zero_right {v w : Fin (n+ 1 ) → R} {i : Fin (n+ 1 )} (hw : w i = 0 ) :
133
+ theorem projVandermonde_apply_zero_right {v w : Fin (n + 1 ) → R} {i : Fin (n + 1 )} (hw : w i = 0 ) :
133
134
projVandermonde v w i = Pi.single (Fin.last n) ((v i) ^ n) := by
134
135
ext j
135
136
obtain rfl | hlt := j.le_last.eq_or_lt
@@ -165,7 +166,7 @@ private theorem det_projVandermonde_of_field (v w : Fin n → K) :
165
166
/- Let `W` be obtained from the matrix by subtracting `r = (v 0) / (w 0)` times each column
166
167
from the next column, starting from the penultimate column. This doesn't change the determinant.-/
167
168
set r := v 0 / w 0 with hr
168
- set W : Matrix (Fin (n+ 1 )) (Fin (n+ 1 )) K := .of fun i ↦ (cons (projVandermonde v w i 0 )
169
+ set W : Matrix (Fin (n + 1 )) (Fin (n + 1 )) K := .of fun i ↦ (cons (projVandermonde v w i 0 )
169
170
(fun j ↦ projVandermonde v w i j.succ - r * projVandermonde v w i j.castSucc))
170
171
-- deleting the first row and column of `W` gives a row-scaling of a Vandermonde matrix.
171
172
have hW_eq : (W.submatrix succ succ) = .of fun i j ↦ (v (succ i) - r * w (succ i)) *
0 commit comments