OAI/LinearAlgebra/MatrixMultiplication/AuxiliarySeparation/Determinant/Kernel.lean
43 declarations, 0 contain sorry, 0 declared as axioms
The determinant kernel of diagonal substitution
A form A(u,v)s + B(u,v)w of bidegree (e,1) is represented on the affine chart
u = 1 by the polynomial pair (A(1,X), B(1,X)). Diagonal substitution becomes
(A,B) ↦ A + X * B, and multiplication by uw - vs becomes
p ↦ (-X * p, p).
The identities here hold over every commutative ring. They include the fixed quotient/kernel coordinates and the monomial identities underlying the simultaneous triangularization in Section 5.1 of Matrix Multiplication via Auxiliary Separation and Polynomial Multiplication.
- abbrev
OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.FormPairline 29Source documentation
Affine representatives of forms linear in the second pair of variables.
abbrev FormPair (R : Type*) [CommRing R] := R[X] × R[X]
- def
OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.diagonalline 32Source documentation
Substitute the first variable pair into the second variable pair.
def diagonal : FormPair R →ₗ[R] R[X] where …
Mentions: OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.FormPair
- def
OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.determinantline 38Source documentation
Multiplication by
D = uw - vsafter puttingu = 1.def determinant : R[X] →ₗ[R] FormPair R where …
Mentions: OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.FormPair
- theorem
OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.diagonal_applyline 45 - theorem
OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.determinant_applyline 47 - theorem
OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.diagonal_determinantline 49 - theorem
OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.determinant_injectiveline 53Source documentation
The determinant factor can be recovered from the second component.
theorem determinant_injective : Function.Injective (determinant (R := R)) := by …
Mentions: OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.determinant
- theorem
OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.diagonal_eq_zero_iffline 58Source documentation
Vanishing after diagonal substitution is exactly divisibility by
uw - vs.theorem diagonal_eq_zero_iff (p : FormPair R) : diagonal p = 0 ↔ p = determinant p.2 := by …Mentions: OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.FormPair, OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.diagonal, OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.determinant
- theorem
OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.mem_kernel_iffline 72Source documentation
The kernel parametrization does not require any field or domain hypothesis.
theorem mem_kernel_iff (p : FormPair R) : p ∈ LinearMap.ker diagonal ↔ ∃ q, determinant q = p := by …Mentions: OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.FormPair, OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.diagonal, OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.determinant
- theorem
OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.kernel_eq_rangeline 81 - def
OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.splitline 86Source documentation
A fixed linear complement to the determinant kernel on unrestricted polynomials.
def split : (R[X] × R[X]) ≃ₗ[R] FormPair R where …
Mentions: OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.FormPair
- theorem
OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.split_applyline 98 - theorem
OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.split_symm_applyline 100 - theorem
OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.diagonal_splitline 102 - theorem
OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.split_zero_leftline 105 - theorem
OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.diagonal_surjectiveline 108 - def
OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.kernelEquivline 113Source documentation
The kernel is canonically isomorphic to one polynomial copy.
def kernelEquiv : R[X] ≃ₗ[R] LinearMap.ker (diagonal (R := R)) where …
Mentions: OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.diagonal
- def
OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.multiplyline 124Source documentation
Multiply both coefficients by a first-input polynomial.
def multiply (f : R[X]) : FormPair R →ₗ[R] FormPair R where …
Mentions: OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.FormPair
- theorem
OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.multiply_applyline 129 - theorem
OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.diagonal_multiplyline 133Source documentation
The quotient action is ordinary polynomial multiplication.
theorem diagonal_multiply (f : R[X]) (p : FormPair R) : diagonal (multiply f p) = f * diagonal p := by …Mentions: OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.FormPair, OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.diagonal, OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.multiply
- theorem
OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.multiply_determinantline 139Source documentation
The kernel action is ordinary polynomial multiplication with the same first input.
theorem multiply_determinant (f p : R[X]) : multiply f (determinant p) = determinant (f * p) := by …Mentions: OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.multiply, OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.determinant
- theorem
OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.multiply_mem_kernelline 145Source documentation
Every first-input slice preserves the determinant kernel.
theorem multiply_mem_kernel (f : R[X]) {p : FormPair R} (hp : p ∈ LinearMap.ker diagonal) : multiply f p ∈ LinearMap.ker diagonal := by …Mentions: OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.FormPair, OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.diagonal, OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.multiply
- theorem
OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.split_multiplyline 150Source documentation
Quotient and kernel coordinates transform simultaneously, with an unchanged first input.
theorem split_multiply (f : R[X]) (p : R[X] × R[X]) : multiply f (split p) = split (f * p.1, f * p.2) := by …Mentions: OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.multiply, OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.split
- def
OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.quotientMonomialline 156Source documentation
The ordinary quotient monomial
u^(e-j) v^j s, withj ≤ e.def quotientMonomial (j : ℕ) : FormPair R := (X ^ j, 0)
Mentions: OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.FormPair
- def
OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.quotientTopline 159Source documentation
The last quotient monomial
v^e w.def quotientTop (e : ℕ) : FormPair R := (0, X ^ e)
Mentions: OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.FormPair
- def
OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.kernelMonomialline 162Source documentation
The kernel monomial
(uw-vs) u^(e-1-j) v^j, withj < e.def kernelMonomial (j : ℕ) : FormPair R := determinant (X ^ j)
Mentions: OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.FormPair, OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.determinant
- theorem
OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.diagonal_quotientMonomialline 164 - theorem
OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.diagonal_quotientTopline 168 - theorem
OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.diagonal_kernelMonomialline 172 - theorem
OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.multiply_quotientMonomialline 176 - theorem
OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.multiply_kernelMonomialline 180 - theorem
OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.multiply_quotientTop_crossline 185Source documentation
The sole cross term in a nonfinal first-input slice has coefficient one.
theorem multiply_quotientTop_cross (i e : ℕ) : multiply (X ^ i) (quotientTop (R := R) e) = …Mentions: OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.multiply, OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.quotientTop
- theorem
OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.multiply_quotientTop_lastline 193Source documentation
For the final first-input monomial the last quotient vector remains the last vector.
theorem multiply_quotientTop_last (d e : ℕ) : multiply (X ^ d) (quotientTop (R := R) e) = quotientTop (d + e) := by …Mentions: OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.multiply, OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.quotientTop
- def
OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.quotientVectorline 198Source documentation
The actual quotient vectors used at degree
e: there aree + 2of them.def quotientVector (e : ℕ) (j : Fin (e + 2)) : FormPair R := …
Mentions: OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.FormPair
- def
OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.kernelVectorline 202Source documentation
The actual kernel vectors used at degree
e: there areeof them.def kernelVector (_e : ℕ) (j : Fin _e) : FormPair R := kernelMonomial j
Mentions: OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.FormPair, OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.kernelMonomial
- theorem
OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.diagonal_quotientVectorline 204 - theorem
OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.diagonal_kernelVectorline 212 - theorem
OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.multiply_quotientVector_ordinaryline 217Source documentation
Ordinary quotient columns have no kernel correction in the adapted output basis.
theorem multiply_quotientVector_ordinary (d e i j : ℕ) (hi : i ≤ d) (hj : j ≤ e) : multiply (X ^ i) (quotientVector (R := R) e ⟨j, by omega⟩) = …Mentions: OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.multiply, OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.quotientVector, OAI.MatrixMultiplication.AuxiliarySeparation.omega
- theorem
OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.multiply_quotientVector_top_crossline 226Source documentation
Nonfinal slices have exactly the quotient-top cross term described in Section 5.1.
theorem multiply_quotientVector_top_cross (d e i : ℕ) (hi : i < d) : multiply (X ^ i) (quotientVector (R := R) e ⟨e + 1, by omega⟩) = …Mentions: OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.multiply, OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.quotientVector, OAI.MatrixMultiplication.AuxiliarySeparation.omega
- theorem
OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.multiply_quotientVector_top_lastline 236Source documentation
The final slice has no cross term.
theorem multiply_quotientVector_top_last (d e : ℕ) : multiply (X ^ d) (quotientVector (R := R) e ⟨e + 1, by omega⟩) = …Mentions: OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.multiply, OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.quotientVector, OAI.MatrixMultiplication.AuxiliarySeparation.omega
- theorem
OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.multiply_kernelVectorline 243Source documentation
All kernel columns have the convolution indices of the smaller branch.
theorem multiply_kernelVector (d e i j : ℕ) (hi : i ≤ d) (hj : j < e) : multiply (X ^ i) (kernelVector (R := R) e ⟨j, hj⟩) = …Mentions: OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.multiply, OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.kernelVector
- theorem
OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.monomials_linearIndependentline 251Source documentation
Distinct bounded powers of
Xare independent even when the coefficient ring has zero divisors.theorem monomials_linearIndependent (n : ℕ) : LinearIndependent R (fun i : Fin n => (X : R[X]) ^ (i : ℕ)) := by … - theorem
OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.adaptedVectors_linearIndependentline 261Source documentation
The quotient vectors followed by the kernel vectors are linearly independent. This establishes nonsingularity of the simultaneous change of coordinates, without any genericity assumption on the first input.
theorem adaptedVectors_linearIndependent (e : ℕ) : LinearIndependent R (Sum.elim (quotientVector (R := R) e) (kernelVector e)) := by …Mentions: OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.quotientVector, OAI.MatrixMultiplication.AuxiliarySeparation.DeterminantKernel.kernelVector