-
Notifications
You must be signed in to change notification settings - Fork 380
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(Matrix): rank of infinite matrices #22226
base: master
Are you sure you want to change the base?
Conversation
PR summary 92831e7b26Import changes for modified filesNo significant changes to the import graph Import changes for all files
|
This PR is the first in a series that attempts to improve generality in the current API for matrix rank.
At the moment, for
A : Matrix m n R
, the termA.rank
is only well-defined forFintype n
andCommRing R
. This is because the definition is in terms ofMulVecLin
, which requires these typeclass assumptions. TheFintype
assumption, especially, is a little unfortunate, since it necessitates unnecessary and column/row-asymmetricFintype
assumptions throughout the API, and makes it impossible to state the important lemmarank_transpose
for infinite matrices.We don't touch the current definition
Matrix.rank
directly here, but we introduce cardinal and ENat-valued notions of rank for infinite matrices, with basic API for monotonicity. The lemmacRank_toNat_eq_rank
is a proof of concept - it shows that the currentMatrix.rank
could easily be redefined asMatrix.rank A := (Matrix.cRank A).toNat
with a strict gain in generality, and no loss to the existing API. The plan is to do this, and thereby proverank_transpose
in greater generality, in coming PRs.The definition
Matrix.eRank
is also natural, sinceMatrix.eRank_transpose
will be true, butMatrix.cRank_transpose
will not.Zulip thread