Hecke.jl
Hecke.jl copied to clipboard
Cyclotomic field as `NfRel`
Some context
To define a hermitian lattice L
over a cyclotomic field E
, in theory, we define E
as a quadratic extension over its real maximal subfield K
(generated by gen(E)+1/gen(E)
). So in order to do the same on Hecke, since HermLat
requires a NfRel
of relative degree 2, it is convenient to do the same.
First solution It is not hard to make this in pratice:
julia> K,a = CyclotomicRealSubfield(7, cached=false)
(Maximal real subfield of cyclotomic field of order 7, (z_7 + 1/z_7))
julia> Kt ,t = K["t"]
(Univariate Polynomial Ring in t over K, t)
julia> E,b = number_field(t^2-a*t+1, "z_7")
(Relative number field over with defining polynomial t^2 - (z_7 + 1/z_7)*t + 1
over Maximal real subfield of cyclotomic field of order 7, z_7)
Some improvement
To make codes lighter, I have thought of adding a command cyclotomic_field_as_CM_extension(n::Int; cached::Bool = true)
which does roughly the same as above but also give an attribute :cyclo -> n
to E
for further sanity check. This last thing would ask us to extend is_cyclotomic_type
to not only NfAbs
but also NfRel
in order to detect whether the top field is cyclotomic (which goes to checking if the top field has the attribute :cyclo
, and return its value)
Does this seem reasonable ?
The functionality seems useful to have. I don't have a better name than cyclotomic_field_as_CM_extension
in mind. Maybe @fieker has some opinion?
There is already something like a cyclotomic extension of a number field (at the moment only of simple absolute ones), constructed via cyclotomic_extension(K, n)
. In the above example, E
is in fact the n
-th cyclotomic extension of K
, so there would be no clash in this regard.
What would the is_cyclotomic_type => true
be useful for? (At the moment we use it for absolute simple fields and then it is equivalent to the defining polynomial being cyclotomic_polynomial(n)
.)
This check will be useful for the trace equivalence (lattice with isometry <-> hermitian lattices over cyclotomic field): once one wants to construct the trace lattice of a hermitian lattice over a cyclotomic field, one needs to check (not necessarily, but I guess it is better) that the base field of the HermLat
is a cyclotomic field.
EDIT: and as far as I have seen, at least on Hecke, we don't have such a thing as cyclotomic_polynomial(n)
.
My bad, it is cyclotomic
(don't ask about the name).
So I guess what you want is a flag that tells you that the field E
you received (of type NfRel
) is some Q(zeta_n)
and gen(E)
is a primitive n
-th root of unity?
On the other hand I believe that being a cyclotomic extension (i.e., is_cyclotomic_type => true
) should be a notion relative to the base field with the guarantee that
-
E = base_field(E)(zeta_n)
-
gen(E)
is a primitiven
-th root of unity.
Would these conditions be good enough for you (knowing that the field you work with is a CM field)?
Or maybe being cyclotomic should always be something absolute?
Ah yes good point, now I see how to get the cyclotomic polynomials!
I don't know to which extent I can bring what I will do, so for now for me, I should detect that E
and K
are of the form I have made explicit earlier. But obviously, we could do more with that. So maybe regarding your last point, being able to check whether E
, seen as an absolute number field, is cyclotomic.
Could we have distinguished methods like is_cyclotomic_field
and is_cyclotomic_type
? I don't know if it makes sense, but in this way we could make the difference between cyclotomic extensions and absolute/relative number fields that are actually cyclotomic (of the form Q(zeta_n)
), seen as absolute number fields.
On Tue, Aug 02, 2022 at 03:16:32PM -0700, Stevell Muller wrote:
Ah yes good point, now I see how to get the cyclotomic polynomials!
I don't know to which extent I can bring what I will do, so for now for me, I should detect that
E
andK
are of the form I have made explicit earlier. But obviously, we could do more with that. So maybe regarding your last point, being able to check whetherE
, seen as an absolute number field, is cyclotomic.Could we have distinguished methods like
is_cyclotomic_field
andis_cyclotomic_type
? I don't know if it makes sense, but in this way we could make the difference between cyclotomic extensions and absolute/relative number fields that are actually cyclotomic (of the formQ(zeta_n)
), seen as absolute number fields. Do you want: is cyclo field or primitive element is root of unity? Eg. let f be cyclo(n) then number_field(f(x+1)) is clearly the same field as number_field(f)... Should both be cyclotomic?
-- Reply to this email directly or view it on GitHub: https://github.com/thofma/Hecke.jl/issues/768#issuecomment-1203267254 You are receiving this because you were mentioned.
Message ID: @.***>