Mathlib-side correspondence lemmas for hex-gram-schmidt.
This module converts dense Hex.Matrix rows into the finite-dimensional real
vector space used by Mathlib's gramSchmidt, then states the rowwise
correspondence between the executable Hex.GramSchmidt basis and Mathlib's
orthogonalization process.
View a rational dense row as a vector in Mathlib's standard Euclidean
space on Fin m.
Equations
- Hex.GramSchmidtMathlib.rowToEuclidean row = WithLp.toLp 2 fun (j : Fin m) => ↑row[j]
Instances For
Coordinate access commutes with rowToEuclidean: the j-th component of the
converted vector is the real cast of the j-th rational entry.
rowToEuclidean sends the zero row to the zero vector.
rowToEuclidean is additive: it sends a rowwise sum to the sum of converted
vectors.
rowToEuclidean commutes with subtraction.
rowToEuclidean is rational-linear: it sends a rational scalar multiple to the
corresponding real scalar multiple of the converted vector.
Cast an integer dense matrix into the rational matrix space of HexGramSchmidt.
Equations
- Hex.GramSchmidtMathlib.castIntMatrix b = { data := Vector.map (fun (row : Vector ℤ m) => Vector.map (fun (x : ℤ) => ↑x) row) b.rows }
Instances For
The row family fed to Mathlib's gramSchmidt for a rational matrix.
Equations
Instances For
The row family fed to Mathlib's gramSchmidt for an integer matrix.
Equations
Instances For
Mathlib's real inner product on converted rows agrees with the executable
rational dense dot product after casting to ℝ.
A strictly lower executable coefficient agrees, after casting to ℝ, with
Mathlib's projection coefficient for the corresponding converted rows.
The rational Gram-Schmidt basis agrees rowwise with Mathlib's real-valued
gramSchmidt after coercing coefficients into ℝ.
The integer Gram-Schmidt basis agrees rowwise with Mathlib's real-valued
gramSchmidt after coercing coefficients into ℝ.