Certificate construction for Hessenberg similarity #
mkHessenbergSimilarity constructs a Hessenberg.Similarity certificate and corresponding
Hessenberg reduction from a literal matrix over ℚ (or more generally a ring S with
f : S → ℚ).
Main definitions #
mkHessenbergSimilarity: produce and elaborate the Hessenberg similarity certificate of a matrix literal.SimilarityResult: theHessenberg.Similaritycertificate together with the reduction data.
Implementation notes #
The untrusted computation reduce (in Mathlib.Tactic.Hessenberg.Reduce) produces L a unit lower
triangular matrix, σ a permutation corresponding to the row and column swaps, and H an upper
Hessenberg matrix.
The mkHessenbergSimilarity function certifies Aσ * L = L * H (where Aσ is the reindexing of
A.map f by σ) via the products Aσ * L = P and L * H = P, each proved by certifyProductEq
on the lists of rows.
The conditions that L is lower triangular with nonzero diagonal and H is
upper Hessenberg are decided by the kernel.
The result of producing a Hessenberg similarity of A.
- cert : Q(Matrix.Hessenberg.Similarity «$A»)
The elaborated
Matrix.Hessenberg.Similaritycertificate term. The literal of the row-major array of the Hessenberg matrix of the certificate.
The proof that
Harris the array of the Hessenberg matrix of the certificate.- red : Reduction
The reduction data underlying the certificate.
Instances For
Produce the Matrix.Hessenberg.Similarity certificate and corresponding reduction of A.map f
for the n × n matrix literal A over S and the map f : S → ℚ, from the parsed entries
entries of A, where evalEntry evaluates the image under f of an entry.
Equations
- One or more equations did not get rendered due to their size.