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

Galois conjugates in universal cyclotomic field miss the previously existing parameter m #18620

Closed
stumpc5 opened this issue Jun 6, 2015 · 12 comments

Comments

@stumpc5
Copy link
Contributor

stumpc5 commented Jun 6, 2015

It used to be possible to do

sage: a = E(6)
sage: a.galois_conjugates(12)
[-E(3)^2, -E(3), -E(3)^2, -E(3)]

This functionality has now disappeared in #18152 -- but it is needed to this functionality in the implementation of complex reflection groups in #11187.

CC: @videlec

Component: number fields

Author: Vincent Delecroix

Branch/Commit: 9a3e5cd

Reviewer: Christian Stump

Issue created by migration from https://trac.sagemath.org/ticket/18620

@stumpc5 stumpc5 added this to the sage-6.8 milestone Jun 6, 2015
@videlec
Copy link
Contributor

videlec commented Jun 6, 2015

comment:1

Hello,

I did remove the argument on purpose. The Galois conjugates do not depend on anything: it is the orbit of the Galois group (of QQbar over QQ). The specifications you wrote

:param m: if given, it must be a multiple of :meth:`field_order`; the Galois
conjugates are then computed with respect to the cyclotomics of order ``m``

is a nonsense to me. The way you compute something should not change the result.

Moreover, what is used to do is to duplicate the output a certain number of times (in a very inefficient way)

sage: E(6).galois_conjugates(6)
[-E(3)^2, -E(3)]
sage: E(6).galois_conjugates(12)
[-E(3)^2, -E(3), -E(3)^2, -E(3)]

Why not using

sage: E(6).galois_conjugates() * 2
[-E(3)^2, -E(3), -E(3)^2, -E(3)]

if you want to duplicate the list?

Vincent

@stumpc5
Copy link
Contributor Author

stumpc5 commented Jun 7, 2015

comment:2

Hi,

you might be right in the sense that you will see the same elements multiple times or the same elements in a different order such as

sage: zeta.galois_conjugates(5)
[E(5), E(5)^2, E(5)^3, E(5)^4]
sage: zeta.galois_conjugates(10)
[E(5), E(5)^3, E(5)^2, E(5)^4]
sage: zeta.galois_conjugates(15)
[E(5), E(5)^2, E(5)^4, E(5)^2, E(5)^3, E(5), E(5)^3, E(5)^4]

You can argue that these elements live in the UCF so their Galois conjugates should be computed using UCF/QQ. But since every such element is contained in CF(n) for multiple ns, one can as well argue to compute it in one of those (recall that the Galois conjugates are defined over a field extension http://en.wikipedia.org/wiki/Conjugate_element_%28field_theory%29).

The orbit as a set does not depend on your choice above, but the order in which they come in the list depends on the field extension CF(n) you chose, and you might want to further use that ordering for something.

What I find more important is that you broke my code without providing a workaround. And I am also not a big fan of the rudeness or at least missing politeness that seems to become standard in SageMath discussions.

Christian

@videlec
Copy link
Contributor

videlec commented Jun 7, 2015

comment:3

Hello,

Replying to @stumpc5:

What I find more important is that you broke my code without providing a workaround. And I am also not a big fan of the rudeness or at least missing politeness that seems to become standard in SageMath discussions.

I am sorry if I was rude or missed politeness.

you might be right in the sense that you will see the same elements multiple times or the same elements in a different order such as

sage: zeta.galois_conjugates(5)
[E(5), E(5)^2, E(5)^3, E(5)^4]
sage: zeta.galois_conjugates(10)
[E(5), E(5)^3, E(5)^2, E(5)^4]
sage: zeta.galois_conjugates(15)
[E(5), E(5)^2, E(5)^4, E(5)^2, E(5)^3, E(5), E(5)^3, E(5)^4]

You can argue that these elements live in the UCF so their Galois conjugates should be computed using UCF/QQ. But since every such element is contained in CF(n) for multiple ns, one can as well argue to compute it in one of those (recall that the Galois conjugates are defined over a field extension http://en.wikipedia.org/wiki/Conjugate_element_%28field_theory%29).

The orbit as a set does not depend on your choice above, but the order in which they come in the list depends on the field extension CF(n) you chose, and you might want to further use that ordering for something.

Here I do not agree with the terminology. I very much understand the difference between:

  • computing the galois conjugates
  • computing the orbit of the Galois group Gal(CF(n)/QQ) as a list [g_0 x, g_1 x, ..., g_k x].
    What your function was doing is the second item (and there is a very natural ordering of the Galois group).

Since you are mentioning wikipedia, you can read that the Galois conjugates are the root of the minimal polynomial. So there are as many as the degree of the minimal polynomial (which is just independent of any choice of CF(n)).

I understand now that this feature was useful and I am sorry if I removed it in an abrupt way. I can provide the branch if you wish (tell me). If you write it, please be much clearer on the specifications.

Vincent

@videlec
Copy link
Contributor

videlec commented Jun 7, 2015

Commit: 9a3e5cd

@videlec
Copy link
Contributor

videlec commented Jun 7, 2015

Author: Vincent Delecroix

@videlec
Copy link
Contributor

videlec commented Jun 7, 2015

New commits:

9a3e5cdTrac #18620: extra parameter for galois conjugates

@videlec
Copy link
Contributor

videlec commented Jun 7, 2015

Branch: public/18620

@stumpc5
Copy link
Contributor Author

stumpc5 commented Jun 7, 2015

comment:5

Hi --

thanks for the quick fix! I usually don't remember all of Galois group theory off the top of my head, that's why I might not have given a clear description in the first place...

Christian

@stumpc5
Copy link
Contributor Author

stumpc5 commented Jun 7, 2015

comment:6

The patchbot is happy with it and so am I.

@stumpc5
Copy link
Contributor Author

stumpc5 commented Jun 7, 2015

Reviewer: Christian Stump

@videlec
Copy link
Contributor

videlec commented Jun 7, 2015

comment:7

Cool!

@vbraun
Copy link
Member

vbraun commented Jun 8, 2015

Changed branch from public/18620 to 9a3e5cd

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants