-
Notifications
You must be signed in to change notification settings - Fork 200
Matrix Rings #1965
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
Matrix Rings #1965
Conversation
jdchristensen
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I read just the first half of this.
We're probably going to want a vector type (lists of a fixed length). So one could define m x n matrices to be a vector of vectors of elements of R. Then you don't have to track lengths, and various things you want to prove about matrices would follow from the corresponding facts about vectors (e.g. truncatedness, the abelian group structure, indexing, entry_Build_Matrix, path_matrix, etc.) Basically everything that operates on a matrix "pointwise" will be easier to prove for 1-d vectors than 2-d arrays, and will extend, and this covers almost exactly half of the file Matrix.v.
So I think it will be cleaner to first define vectors over a ring R, and then reuse that in this file.
This is also the free module of a given rank, so it will be something we need anyways. |
Signed-off-by: Ali Caglayan <[email protected]>
Signed-off-by: Ali Caglayan <[email protected]>
Signed-off-by: Ali Caglayan <[email protected]>
Signed-off-by: Ali Caglayan <[email protected]>
Signed-off-by: Ali Caglayan <[email protected]>
Signed-off-by: Ali Caglayan <[email protected]>
|
@jdchristensen I've introduced a In order for the module structure to be inherited for matrices I had to generalise the R-module structure on vectors by supposing the elements where from R-modules themselves rather than just R. Most of the matrix multiplication proofs were left unchanges, although sometimes the |
Signed-off-by: Ali Caglayan <[email protected]>
jdchristensen
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think using Vector improved things a lot. I'm about to push some small changes.
Signed-off-by: Ali Caglayan <[email protected]>
Signed-off-by: Ali Caglayan <[email protected]>
Signed-off-by: Ali Caglayan <[email protected]>
Signed-off-by: Ali Caglayan <[email protected]>
|
@jdchristensen Are we ready to merge? |
|
Yes, LGTM. |
This PR is a draft until the following dependencies are merged:
In this PR we define matrices together with:
There is also a test file demonstrating how matrices can be built and used in practice. We also test some examples there too.
I have some more work on the determinant, however this requires some more work on finite types such as sums over an arbitrary finite type and permutations. We can define the determinant using the rule with minors however it is not easy to prove properties about it. My future attempt will be to define it as a sum of products with sign given by the permutation we sum over.