Skip to content
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

[Merged by Bors] - feat(linear_algebra/matrix/transvection): matrices are generated by transvections and diagonal matrices #8898

Closed
wants to merge 22 commits into from

Conversation

sgouezel
Copy link
Collaborator

@sgouezel sgouezel commented Aug 27, 2021

One version of Gauss' pivot: any matrix can be obtained starting from a diagonal matrix and doing elementary moves on rows and columns. Phrased in terms of multiplication by transvections.


@sgouezel sgouezel added the awaiting-review The author would like community review of the PR label Aug 28, 2021
@semorrison
Copy link
Collaborator

I am hesitant to complain about this, but I think in English speaking mathematics we consistently use the phrase "elementary matrix" rather than "transvection".

(Unfortunately on wikipedia the interlanguage link from the French "transvection" points to the English "shear matrix", which is not correct, being more general.)

@semorrison
Copy link
Collaborator

This is really lovely, and I'm so pleased this is coming to mathlib! This has been an elementary (ha!) hole for a long time.

Certainly not for this PR, but someday someone may like to generalise this argument to work over a PID, where instead of elementary matrices you need invertible 2x2 matrices. This can give you a formulation of Smith normal form, and indeed one could deduce today's result from that one "just" by a lemma about writing 2x2 invertible matrices as products of elementary matrices (over a field). Unfortunately the induction is trickier here, as it involves an ideal as well as the size of the matrix.

Co-authored-by: Scott Morrison <scott.morrison@gmail.com>
@sgouezel
Copy link
Collaborator Author

sgouezel commented Sep 7, 2021

I am hesitant to complain about this, but I think in English speaking mathematics we consistently use the phrase "elementary matrix" rather than "transvection".

(Unfortunately on wikipedia the interlanguage link from the French "transvection" points to the English "shear matrix", which is not correct, being more general.)

I am open to any suggestion from someone who knows the proper English wording. My problem with "elementary matrix" is that we already have this, for the matrix E i j with 1 at position (i, j) and 0 elsewhere (as opposed to transvections which, additionally, haves ones on the diagonal). Tell we how you want to phrase things, and I'll make the change!

@sgouezel sgouezel added awaiting-author A reviewer has asked the author a question or requested changes and removed awaiting-review The author would like community review of the PR labels Sep 8, 2021
@sgouezel
Copy link
Collaborator Author

sgouezel commented Sep 9, 2021

I have added a sentence on the relationship with elementary matrices. Also moved all the material about E to matrix.basis and reexpressed it in terms of std_basis_matrix. And used the naming convention of pi.single everywhere.

@sgouezel sgouezel added awaiting-review The author would like community review of the PR and removed awaiting-author A reviewer has asked the author a question or requested changes labels Sep 9, 2021
@github-actions github-actions bot added blocked-by-other-PR This PR depends on another PR which is still in the queue. A bot manages this label via PR comment. merge-conflict Please `git merge origin/master` then a bot will remove this label. labels Sep 9, 2021
@github-actions github-actions bot removed the blocked-by-other-PR This PR depends on another PR which is still in the queue. A bot manages this label via PR comment. label Sep 9, 2021
@github-actions
Copy link

github-actions bot commented Sep 9, 2021

🎉 Great news! Looks like all the dependencies have been resolved:

💡 To add or remove a dependency please update this issue/PR description.

Brought to you by Dependent Issues (:robot: ). Happy coding!

@github-actions github-actions bot removed the merge-conflict Please `git merge origin/master` then a bot will remove this label. label Sep 9, 2021
@jcommelin
Copy link
Member

Thanks 🎉

bors merge

@github-actions github-actions bot added ready-to-merge All that is left is for bors to build and merge this PR. (Remember you need to say `bors r+`.) and removed awaiting-review The author would like community review of the PR labels Sep 10, 2021
bors bot pushed a commit that referenced this pull request Sep 10, 2021
…ransvections and diagonal matrices (#8898)

One version of Gauss' pivot: any matrix can be obtained starting from a diagonal matrix and doing elementary moves on rows and columns. Phrased in terms of multiplication by transvections.



Co-authored-by: Eric Wieser <wieser.eric@gmail.com>
@bors
Copy link

bors bot commented Sep 10, 2021

Build failed (retrying...):

bors bot pushed a commit that referenced this pull request Sep 10, 2021
…ransvections and diagonal matrices (#8898)

One version of Gauss' pivot: any matrix can be obtained starting from a diagonal matrix and doing elementary moves on rows and columns. Phrased in terms of multiplication by transvections.



Co-authored-by: Eric Wieser <wieser.eric@gmail.com>
@bors
Copy link

bors bot commented Sep 10, 2021

Pull request successfully merged into master.

Build succeeded:

@bors bors bot changed the title feat(linear_algebra/matrix/transvection): matrices are generated by transvections and diagonal matrices [Merged by Bors] - feat(linear_algebra/matrix/transvection): matrices are generated by transvections and diagonal matrices Sep 10, 2021
@bors bors bot closed this Sep 10, 2021
@bors bors bot deleted the pivot branch September 10, 2021 15:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ready-to-merge All that is left is for bors to build and merge this PR. (Remember you need to say `bors r+`.)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants