Zulip Chat Archive
Stream: mathlib4
Topic: Contribute Schur decomposition
Gordon Hsu (Jan 12 2025 at 14:15):
Hi, I am a programmer working in the semiconductor industry. My GitHub handle is kuotsanhsu
. I have been learning about Lean4 in my spare time, and I am convinced that the industry can benefit from certified programming a la Adam Chlipala. Recently, I tried contributing to the HepLean project, and I formalized the Schur decomposition during the process. I would like to upstream Matrix.schur_triangulation
to Mathlib. Since this is my first time contributing to Mathlib, how should I go about this? Also, is anyone working on formalizing the Jordan normal form? If not, I would like to give it a try.
Luigi Massacci (Jan 12 2025 at 17:21):
See here for the contribution guide, and for github access you just need to wait for an admin to click on this thread. If it doesn’t happen in a reasonable timeframe, ask on #mathlib4 > github permission
Kim Morrison (Jan 12 2025 at 22:08):
@Gordon Hsu, would you mind adding your github handle to your zulip profile information? It's often helpful for reviewers.
Kim Morrison (Jan 12 2025 at 22:10):
@Gordon Hsu, please check your (email) inbox for the invitation.
Gordon Hsu (Jan 14 2025 at 08:56):
Thanks, I have created PR#20730. Could someone review it?
David Loeffler (Jan 14 2025 at 09:29):
Also, is anyone working on formalizing the Jordan normal form? If not, I would like to give it a try.
Tagging @Alex Brodbelt who has been looking at this.
Alex Brodbelt (Jan 14 2025 at 10:59):
I have only formalized the 2x2 case (essentially by brute force), the general nxn case I have not touched.
Alex Brodbelt (Jan 14 2025 at 11:01):
I was thinking of classifying nilpotent matrices and proving some results about these, but haven't got round to this and I am not sure I will any time soon.
Gordon Hsu (Jan 15 2025 at 02:53):
I see, here's what I will try:
As commented by Kevin Buzzard somewhere in Zulip and the Mathlib doc, I shall start with Mathlib.LinearAlgebra.JordanChevalley
and prove the case where the linear map has just one eigenvalue, i.e., the argument k
to Module.End.HasGenEigenvector
is Module.finrank R E
for f : Module.End R E
. Then, generalize to linear maps with more than one eigenvalues by way of DirectSum.Decomposition
. From my experience with proving the Schur decomposition, it's easier to start with linear maps. Then, the decomposition of a matrix can be justified with Matrix.toEuclideanLin
.
Last updated: May 02 2025 at 03:31 UTC