Number fields

Chevie.NfModule

Number fields are the finite extensions of . The only ones that we can handle at the moment are subfields of cyclotomic fields, that is whose elements are Cycs; they are also characterized as the number fields K such that Gal(K/ℚ) is abelian. For example, ℚ (√5) is a number field that is not cyclotomic but contained in the cyclotomic field ℚ (ζ₅).

The default constructor for a number field takes some numbers as arguments and constructs the smallest number field containing its arguments.

julia> F=NF(E(5)) # the full cyclotomic field prints as CF
CF(5)

julia> K=NF(root(5)) # a subfield
NF(5,[-1₅])

julia> conductor(K) # smallest n such that K is a subfield of CF(n)
5

julia> E(5)+E(5,-1) in NF(root(5)) # test if an element is in the subfield
true

A number field K is printed by giving the conductor c of the smallest cyclotomic field F containing it, and generators of the stabilizer of K in the galois group of F. These generators are elements of the multiplicative group of ℤ/cℤ. Above NF(5,[-1₅]) represents the subfield of CF(5) stable by complex conjugacy.

julia> elements(galois(F))
4-element Vector{Chevie.Nf.NFAut}:
 Aut(CF(5),1₅)
 Aut(CF(5),2₅)
 Aut(CF(5),-1₅)
 Aut(CF(5),-2₅)

The element of the galois group of CF(5) printed -2₅ acts by raising the fifth roots of unity to the power -2. Thus -1₅ represents complex conjugacy.

julia> NF(root(3),root(5)) # here the stabilizer needs 2 generators
NF(60,[-11₆₀,-1₆₀])
source
Chevie.Nf.NFFunction

NF(gens...) or NF(gens::AbstractVector)

returns the smallest number field containing the elements gens, which may be Cyc, Root1, Integer or Rational{<:Integer}.

julia> NF(E(3),root(5))
NF(15,[4₁₅])

julia> NF([E(3),root(5)])
NF(15,[4₁₅])

A number field can also be entered by specifying the conductor and the list of generators of the stabilizer in the Galois groups. These generators can be entered as M̀od or as integers:

julia> NF(15,[Mod(4,15)])
NF(15,[4₁₅])

julia> NF(15,[4])
NF(15,[4₁₅])
source

NF(N::Integer, stab::Group{<:Mod})

Number field which is the fixed field of the subgroup stab of galois(CF(N)) in CF(N). stab should not inject in the multiplicative group of a proper divisor of N.

source
Chevie.Nf.CFFunction

CF(N::Integer) the cyclotomic field generated by the N-th roots of unity.

source
Chevie.Nf.AutFunction

Aut(F::NumberField,k::Union{Integer,Mod})

The Galois automorphism σₖ of the cyclotomic field CF(n) raises n-th roots of unity to the power k; it exists for k prime to n. If F is a subfield of CF(n), the elements of the orbit of σₖ modulo the stabilizer of F in the Galois group galois(CF(n)) have same restriction to F. An automorphism of F is represented by a canonical representative σₗ of this orbit. This is the result of Aut(F,k). The number k can be given as an integer or as Mod(k,n).

julia> F=NF(root(5))
NF(5,[-1₅])

julia> s=Aut(F,3)
Aut(NF(5,[-1₅]),2₅)

julia> root(5)^s # action of s on a Cyc
Cyc{Int64}: -√5
source
CyclotomicNumbers.galoisMethod

galois(F::NumberField) Galois group of F over

the Galois group of F, a number field of conductor n, is the quotient of the Galois group of CF(n), isomorphic to the multiplicative group (ℤ/n)ˣ, by the stabilizer of F. It is given as a group of Galois automorphisms (see Aut).

julia> K=CF(5)
CF(5)

julia> F=NF(root(5))
NF(5,[-1₅])

julia> galois(K)
Group(Chevie.Nf.NFAut[Aut(CF(5),2₅)])

julia> elements(galois(K))
4-element Vector{Chevie.Nf.NFAut}:
 Aut(CF(5),1₅)
 Aut(CF(5),2₅)
 Aut(CF(5),-1₅)
 Aut(CF(5),-2₅)

julia> elements(galois(F))
2-element Vector{Chevie.Nf.NFAut}:
 Aut(NF(5,[-1₅]),1₅)
 Aut(NF(5,[-1₅]),2₅)
source