Formalize the finite-dimensional Kalman decomposition - #14
Conversation
|
Can you please add a reference to a paper which has these results. I believe Joao Hespanha's Linear systems theory book should have what you are looking for! Thank you! |
|
Another quick comment, I dont think having different files for so many results is a scalable approach. Can you create a directory called Reachability within which your results live? |
| Submodule 𝕜 (Fin n → 𝕜) := | ||
| LinearMap.range (controllabilityMatrix A B).mulVecLin | ||
|
|
||
| lemma mem_reachableSubspace_iff |
There was a problem hiding this comment.
Added a precise docstring for this declaration.
| ∃ u : Fin n × Fin m → 𝕜, controllabilityMatrix A B *ᵥ u = x := by | ||
| simp [reachableSubspace, LinearMap.mem_range] | ||
|
|
||
| /-- Public form of the block-column multiplication identity used by the |
There was a problem hiding this comment.
This statement is vague, lots of undefined terms. Also please use blueprints for docstrings
There was a problem hiding this comment.
Rewritten as an explicit mathematical equivalence and added a blueprint annotation; the indexed input vector and controllability matrix are now stated explicitly.
|
|
||
| /-- Cayley--Hamilton closes the single boundary term needed for reachable | ||
| subspace invariance. -/ | ||
| private lemma aPowN_mul_B_mulVec_mem_reachableSubspace |
There was a problem hiding this comment.
Please use better names for lemmas
There was a problem hiding this comment.
Renamed the Cayley–Hamilton boundary helper to a semantic name and updated its uses.
|
Thanks for the review. I reorganized the new development under |
Summary
This PR formalizes the classical finite-dimensional Kalman decomposition on top of the existing controllability, observability, and Hautus development.
Main additions
LeanForControl/LinearSystems/Reachability/subject-area directory with a livingplan.md.DefsReachability.leanand its characterizations and invariance results inReachability.lean.KalmanDecompositiondata structure inReachability/DefsKalmanDecomposition.lean, separated from its theorem implementation.cuo, co, uuo, uo.Provenance
The mathematical results are classical finite-dimensional linear-systems results. References used in the source are:
The Lean-specific relative direct-sum construction, coordinate equivalence, basis transport, finite-horizon proof plumbing, and entrywise matrix packaging are marked as original formalization infrastructure for LeanForControl.
Interpretation and limitations
The four named sectors are coordinate sectors adapted to the reachable and unobservable subspaces, in the order
cuo, co, uuo, uo. The chosen complements are noncanonical vector-space complements, and they are not individually claimed to be A-invariant. The theorem asserts the forced block-zero pattern; no vanishing claim is made for the starred blocks.Reachability remains tied to the existing finite-horizon controllability matrix rather than being defined as an invariant closure. The formalization follows the existing complex-matrix convention, treats LTI triples (A, B, C), does not include a feedthrough matrix D, and does not claim a numerical decomposition algorithm.
Validation
lake exe cache get— passedlake build— passedlake exe runLinter— passedLeanForControl.LinearSystems.Reachability.KalmanDecompositionExamples— passedlake build :blueprint— passedleanblueprint checkdecls— passedpropext,Classical.choice, andQuot.soundsorry/admitand no new custom axiomsgit diff --check— passed