Add Hurwitz matrix foundation - #13
Open
raaghav-t wants to merge 3 commits into
Open
Conversation
AnandGokhale
self-requested a review
September 9, 2026 22:38
Owner
|
Hey, |
Owner
|
Also, please add a reference from a paper or a textbook for any results you may have. |
AnandGokhale
reviewed
Sep 9, 2026
| variable {n : ℕ} | ||
|
|
||
| /-- The entrywise complexification of a real matrix. -/ | ||
| noncomputable def complexification (A : Matrix (Fin n) (Fin n) ℝ) : |
Owner
There was a problem hiding this comment.
It feels like complexification is not really needed as a definition, you always eliminate it immediately by expanding its definition.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Add the Phase 1 Hurwitz vocabulary needed for #9: real matrices whose complex eigenpairs have strictly negative real parts, plus a strict rate-indexed variant. Definitions live in
LinearSystems/Stability/DefsHurwitz.lean; basic results live inLinearSystems/Stability/Hurwitz.lean, with a local roadmap. Real matrices are embedded using Mathlib'sMatrix.mapdirectly.The API proves zero-rate compatibility, rate weakening, explicit vacuous behavior in dimension zero, the equivalence between rate
αand Hurwitz stability ofA + αI, and a one-by-one sanity check. Umbrella imports, the blueprint, README, and stability roadmap are updated. The indirect method itself remains out of scope.Reference and provenance
João P. Hespanha, Linear Systems Theory (2nd ed.), Princeton University Press, 2018: continuous-time stability and the Hurwitz eigenvalue criterion. Author's textbook page.
The strict rate predicate and rate/shift/scalar lemmas are elementary adaptations or consequences of that criterion, proved directly here; this does not claim the textbook states these exact Lean signatures. Zero-rate compatibility, the matrix-map bridge, and the empty-dimension convention are original formalization infrastructure. Source docstrings record this provenance.
Validation
lake build, and fulllake exe runLinterpass.lake exe mk_all --checkpasses.lake build :blueprint,leanblueprint web, andleanblueprint checkdeclspass.propext,Classical.choice, andQuot.sound.git diff --checkpasses; no newsorry,admit, or axioms; Lean toolchain and dependency revisions unchanged.The full build retains three existing long-line warnings in unrelated Dini/ODE modules.