Prove controllable and observable component properties - #20
dongxuelian2 wants to merge 4 commits into
Conversation
|
Thanks for splitting it up, let me understand whats going on in these files and give you a review in a few hours |
|
Please align the terminology used in your PR with standard controls terminology, actually referencing a book. As it stands, a lot of the generated results may be correct, but need to be carefully stated. Moreover, you are missing blueprints on a lot of your documentation. |
|
Addressed in 543798d. I checked the terminology and statements against Hespanha's Linear Systems Theory and documented the restriction as the controllable component and the quotient as an equivalent realization of the observable component. The invariant-subspace characterizations and rank-nullity result are marked as derived; chosen-coordinate definitions are identified as Lean infrastructure. The principal statements and blueprints now describe the chosen basis actually used. I removed five public plumbing/basis declarations, made six proof helpers private, generalized the controllable component to any field, and moved the ambient unobservability lemmas into the existing observability module. Added blueprints cover the four system maps and the smallest-invariant-subspace characterization; all eleven mathematical nodes added by this PR are included in the readable blueprint. The focused and full builds, linters, import check, blueprint extraction, PDF/web rendering, and declaration check pass. The eight new public theorem proofs use only the standard Lean axioms. The PDF has one unresolved comparison-lemma reference, independently reproduced on upstream main fbaa7d7. The PR description now reflects the component scope and these checks. |
|
Please cite exact theorem numbers, and not a whole book. |
The state and input maps restricted to the reachable subspace give a controllable pair. The state and output maps induced on the quotient by the unobservable subspace give an observable pair. The four matrix definitions take an explicit state basis indexed by
Fin r, and the component theorems hold for every supplied basis.Reference: Hespanha, Linear Systems Theory, reachable subspace, controllability-matrix test, controllable decomposition, unobservable subspace, observability tests, and observable decomposition. The observable quotient is a quotient-space construction corresponding to the observable component. This PR establishes its observability without introducing a complement, similarity, transfer-function, or realization theorem. The invariant-subspace characterizations and rank-nullity identity are identified as derived statements; the coordinate definitions use Mathlib's
LinearMap.toMatrix.Review cleanup:
Observability.lean, together with the private Cayley–Hamilton helper. Observable component definitions now depend on this lower module rather than Hautus.Validation: focused and full
lake build,lake exe runLinter, all 16 linters on the six component/foundation modules,lake exe mk_all --check,lake build :blueprint,leanblueprint pdf,leanblueprint web,leanblueprint checkdecls,python3 scripts/check_blueprint_labels.py, andgit diff --checkpass. The affected PDF pages were visually inspected. All eight new public theorem proofs use onlypropext,Classical.choice, andQuot.sound; the PR introduces nosorry,admit, custom axiom, orunsafe.