-
-
Notifications
You must be signed in to change notification settings - Fork 519
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
unitary DFT for the symmetric group algebra #38456
Comments
Weyl's unitary trick effectively solves this for the complex numbers and number fields. For finite fields, the situation is more delicate. There is: However, when
|
PR: #38455 The error with square roots has been resolved by first using self._ring on beta before passing to 2x2 matrix element in symmetric_group_representations.py on line 662. Regarding unitary representations of finite groups over finite fields, see: One must check that the action of the q^th power of Frobenius on the Brauer character (which is just the complex character in the non-modular case) is complex conjugation. Even then, it is not immediately clear to me that Young's orthogonal representations will be unitary, or which sesquilinear form they will be unitary with respect to, exactly. |
With the fix implemented locally, we do get orthogonal representations over GF(q^2). However, these representations are not unitary w.r.t. the form <x,y> = \sum_i x_i*y_i^q since x |--> x^q does not fix elements outside of GF(q). It may be that the matrices are unitary w.r.t. a different sesquilinear form. |
Perhaps the invariant form can be obtained by summing |
@dimpase I tried this after doing the characteristic zero case (complex numbers, number fields) and it didn't seem to work. This led to this question: It does seem natural to try to just sum. One similar thought I haven't tried is averaging the sesquilinear form Updates: representations of the symmetric group have Frobenius-Schur indicator +1, so Lemma 4.4.1 in the linked MO question doesn't apply. However, this question seems of relevance: This appears to imply (please check) that since I just don't know how to find it. Perhaps I am overlooking something obvious. |
an obvious way to find invariant forms is by linear algebra in the representation EDIT: nontrivial |
@dimpase Ah, okay, great. Thanks very much! This is very concrete. I will attempt to implement this, ideally by the end of the week, and see what I can say. |
There is also a GAP package forms which does this in GAP, for matrix groups over finite fields. We probably should add it to the list of GAP packages we can easily install. For now, you can install |
I tried installing the GAP package forms via extracting the .tar to the appropriate directory ($SAGE_ROOT/local/share/gap/pkg/). It appears to load the package successfully, then I get all kinds of errors and claims that functions don't exist:
|
Does it work in a separate GAP session? |
@dimpase Ah, that fixed it! Thank you.
I'm still parsing the linear algebra approach. I generated some (non-functional) code but I need to tweak it. The main difficulty right now is just which rings to define these matrices over, in particular
|
you don't need to make U a variable! anyway, the symbolic ring is the last resort, and it doesn't work in positive char. So all you have are polynomial rings. |
Computing an eigenvector |
@dimpase Yes, one can find eigenvalues by computing Can you just write in code how you would instantiate
So I don't know how to create Also, you write EDIT: Okay, beginning to see. We are just setting |
yeah, right, matrix of unknowns was there for the purpose of explanation. By the way, I am not sure that In the end you can fill in the entries of |
@dimpase Since |
no, you "vectorise" |
Yes, we can write |
Why do you need to do ρ ( g ) U ⊗ λ g U ρ ( g ) ? All I was saying is that the action of the group on the space of |
Here is a version without using the Kroenecker products which should work (at least in cases where the decomposition number is odd) for n=3, q=3, partition = [2,1]. EDIT: Corrected swapped indices in conjugate matrix.
|
You made a typo in
i.e the inner loop is over
|
Ah, great! Thanks so much for spotting that. Yes, getting lots of interesting forms for different choices of
I'll do some testing and verification to ensure these really define G-invariant sesquilinear forms tomorrow, and for which cases are we getting solutions. If for a given q, n there are solutions for every partition, it may be possible to construct a unitary DFT. |
The code to generate the matrices, as @dimpase described, appears to be working for all cases. I wrote some code to check the desired properties of the associated form. Since the linear algebra was set up to guarantee the three conditions (symmetric, G-invariant, bi/sesquilinear), it's surprising that the conditions are sometimes met and sometimes not met. It could be a typo or bug on my end. Code attached (updated):
Made a few adjustments from the previous version:
|
you'd use assert statements to make things fail clearly, without having to guess which of the 3 properties failed |
@dimpase Yes, sorry, I deleted the print statements I was using. G-invariance appears to be the one failing in cases where it fails overall. I didn’t include the \lambda_g in the checks. Can you explain where that term came from? I don’t see why it’s necessary for G-invariance: |
This question/answer seems to imply if a module V over a finite field supports both G-invariant symmetric and skew-symmetric forms, then the number of orthogonal constituents and the number of symplectic constituents in its decomposition must both be zero, so that V consists solely of pairs of non-self-dual components: |
I guess I didn't take into account that your The representations you work here with are |
@dimpase I'm not sure I completely understand. We're already demanding that I am working with the symmetric group here, and in particular with Specht modules. These are not always simple, when say If one were to include Regardless, I don't think this condition is needed here. I'm not interested in projective representations. The bigger issue is explaining what's going on with the current calculation, and why the checks are failing even though we are guaranteeing in the initial equations the properties we expect to see. It does depend on the characteristic, but I don't think the issue is simply about p|n! and simple modules. We can work over a slightly bigger field where
In fact, it appears when Note, there is one case (so far) where we are getting a 2 dim'l nullspace. I thought there were some theoretical reasons why this space should be 1 dim'l. It occurs when
|
@dimpase Great, please feel free to email it when you've written it down. I could be interested in those questions. I think Young's orthogonal form handles the orthogonal case for finite fields if I'm not mistaken. I don't know much about symplectic embeddings, but I assume you just mean conjugating the representations into the symplectic group over a finite field as described here: https://mathoverflow.net/questions/230885/symplectic-group-over-integers-and-finite-fields |
So the (science) question is how it's implemented there, can we add anything new? |
@dimpase Looking good, so here the matrix associated to the form is Then we can write
This requirement was never strictly necessary, and it explains why my brute force search failed. Now we are free to write to obtain unitary representations of As for anything new, my hope was to use these unitary rep'ns to construct a DFT which is unitary w.r.t. the standard form. It would be interesting to study those eigenvalues. The cyclic group case is easy (fourth roots of unity), but I'm not sure what happens for |
Beals doesn't say much about For the symmetric group, let's look at Vershik-Okounkov approach. At least in characteristic 0 it allows very quick algorithms. |
Beals just says to get a unitary DFT, one should use unitary representations for each and then just transform each basis vector This works for number fields and over The Modular DFT of the Symmetric Group I'm happy to read more about the Vershik-Okounkov approach. I think in this case though we're already pretty much there with your method using GAP. I'll translate that this week, and see if the above formula for a unitary DFT works over finite fields. At the very least I should now be able to get representations that are unitary in the |
@dimpase @tscrim I need to automate transitioning the basis-change computation from GAP to Sage, but it appears to be working in that we are getting unitary rep'ns of the symmetric group over
Need to automate this part, just checking
Checking the unitary condition:
|
Regarding #38455, all these square roots, are they really needed? (well, they are in the original formulation, but is it need to get the same or better efficiency of algorithms?) E.g. that normalisation by |
@dimpase @tscrim Good question. In 38455 the square roots I take are the diagonal elements (I need One thought I had was to note that if these representations are real (if we don't take square roots of negative numbers), then rather than doing all this work over number fields, we can just use the orthogonal forms, right? The drawback is I think you get more information here, in that you can compute, say, the splitting field of the characteristic polynomial explicitly (even if it is of degree 192 over On a separate note, I have automated the conversion from GAP to Sage to get the base-change matrices in the finite field case:
|
I don't quite understand that "automatic conversion". I think we are already able to convert between GAP matrices over cyclotomics (resp. GF(q)) and Sage's matrices over cyclotomics (resp. GF(q)). No need to do any string parsing. |
@dimpase Thanks for the tip, here's the updated version:
|
There is seldom any need to call eval. E.g. loading GAP package should be done like this:
|
And we do have a direct way to pass matrices to (lib)GAP and get them back. |
basically you can create handles to GAP objects
where You can call GAP's functions |
regarding square roots: for making representations unitary they are an overkill. Indeed, you only need to represent the |
Ah, didn't know gap was deprecated. Switched to libgap:
I'm looking in |
does
work? |
low level libgap interface is in src/sage/libs/ interfaces to GAP's group theory stuff are in |
Dima meant sage/groups/matrix_gps I think |
@dimpase Apologies for the delay. Yes, thanks that cleans things up a bit:
Not sure if there is a way to remove the @tscrim Great, thank you. I also notice |
|
@dimpase Nice, here it is as a one-liner:
|
@dimpase The 1x1 matrix edge case throws an error:
Here is a quick fix. In the 1x1 case, we can use a generator and factor.
|
it's a forms GAP package bug I suppose. Report it there |
@dimpase I'll report it there. So now we are almost done. Here is putting everything together in a DFT which should be unitary (using unitary rep'ns, using \sqrt{d_\rho/|G|}) to normalize. It's slightly off for
|
Obviously you can normalise the form by any integer square, it does not affect anything. If you venture out to |
|
@dimpase @tscrim I will try to parse your comment re: the number field case. For the finite field case, it looks like we get a mix of -1's and +1's on the diagonal, e.g. for n=4, q=11 we have
Perhaps the normalizing factor for each representation
is important, as there are two distinct opposite possibilities. I'm not sure which one to choose. We may even need to use a fourth root of unity. |
@dimpase What we ended up doing is just factoring each sign on the diagonal |
The PR #38455 has been updated. The techniques here for obtaining unitary representations over finite fields via For now, we're just using the orthogonal rep'ns in the number field case since they're also unitary. What remains is to ensure we're working over a proper number field rather than the symbolic ring. That shouldn't be too difficult.
The PR #38455 has been updated. The techniques here for obtaining unitary representations over $F_{q^2} $via For now, we're just using the orthogonal rep'ns in the number field case since they're also unitary. What remains is to ensure we're working over a proper number field rather than the symbolic ring. That shouldn't be too difficult. |
Problem Description
At present the only two DFT's available for the symmetric group algebra are the seminormal basis and modular DFT. Neither of these are unitary transformations.
Proposed Solution
In Beals ['97], Quantum computation of Fourier transforms over symmetric groups he remarks that the DFT can be made unitary with two modifications:
Alternatives Considered
The seminormal form is orthogonal in that$AA^T$ is diagonal, but the columns are not orthonormal. Young's orthogonal form has the property $AA^T = Id$ , but not $AA^* = Id$ .
Additional Information
No response
Is there an existing issue for this?
The text was updated successfully, but these errors were encountered: