Norm Equations

For cyclic fields Hasse's famous norm theorem states that when considering the solvability of norm equations, local solvability everywhere is equivalent to global solvability. Unfortunately, this local-global principle fails in general even for fields with Galois group isomorphic to Klein's group V4. The extent of this failure is measured by the number knot which is the quotient of the numbers that are everywhere local norms by the global norms. As it turns out, the structure and size of this quotient can be easily computed, so that it is possible to test if Hasse's theorem is sufficient.

As a second consequence, solvability can be decided by looking at the maximal p-subfields for all primes that divide the degree of the field. Even better, a global solution can be obtained by combining solutions from the maximal p-subfields.

It is important to note that local solvability can be decided by analyzing the ideal groups only. Thus, all the "local" functions will avoid computing defining equations and are therefore reasonably fast.

IsLocalNorm(A, x, p) : FldAb, RngOrdElt, RngOrdIdl -> BoolElt
Returns true if and only if x is a local norm in the abelian extension A at the finite prime p, i.e. if x is a norm in the extension of the local field obtained by taking the completion at p.
IsLocalNorm(A, x, i) : FldAb, RngOrdElt, RngIntElt -> BoolElt
Returns true if and only if x is a local norm in the abelian extension A at the infinite prime i.
IsLocalNorm(A, x, p) : FldAb, RngOrdElt, PlcNumElt -> BoolElt
Returns true if and only if x is a local norm in the abelian extension A at the place p, i.e. if x is a norm in the extension of the local fields obtained by taking the completion at p.
IsLocalNorm(A, x) : FldAb, RngOrdElt -> BoolElt
Returns true if and only if x is a local norm everywhere in the abelian extension A.
Knot(A) : FldAb -> GrpAb
The (number) knot is defined as the quotient group of the group consisting of those elements of the base field of the abelian extension A that are local norms everywhere modulo the elements that are norms. Therefore, if the knot is trivial, an element is a local norm if and only if it is a norm.

Hasse's norm theorem states that for cyclic fields A the knot is always trivial. In general, this is not true for non-cyclic fields.

NormEquation(A, x) : FldAb, RngOrdElt -> BoolElt, [RngOrdElt]
Checks if x is a norm, and if so returns an element of the pre-image. As a first step this function verifies if x is a local norm. If x passes this test, the number field of A is computed and by combining solutions of the norm equation in certain subfields a solution in A is constructed. If the knot is non-trivial, the last step may fail.

This function can be extremely time consuming as not only defining equations for A are computed but class groups in some of them. For large A this is much more efficient than just solving the norm equation in the number field.

IsNorm(A, x) : FldAb, RngOrdElt -> BoolElt
As a first step, this function verifies if x is a local norm. If x passes this test, magma verifies whether the knot is trivial. If it is, true is returned. However, if the knot is non-trivial, then the function NormEquation is invoked.

Example FldAb_norm-equation (H41E9)

We illustrate the power of the class field theoretic approach with the following example from group theory. We want to solve for elements of norm 2 or 5 in the field Q(ζ5)(η) where η20 - ζ5η10 + ζ52= 0 over the cyclotomic field. This field has degree 80 over Q and is therefore far too large for a direct method.
> k := CyclotomicField(5);
> kt := ext<k|>;
> K := NumberField(kt.1^20 - k.1*kt.1^10 +k.1^2);
Now we convert K into an abelian extension of k:
> A := AbelianExtension(K);
> A;
FldAb, defined by (<[5904900000000000000000000, 0, 0, 0]>, [])
of structure: Z/2 + Z/10
> Conductor(A);
Ideal
Two element generators:
    [37500, 0, 0, 0]
    [12060, 15120, 7440, 1680]
[]
We now recreate A using the smaller conductor. This will significantly speed up the following computations.
> m_0, m_inf := $1;
> A := AbelianExtension(K : Conductor := [* m_0, m_inf *]);
We first check the local solvability:
> IsLocalNorm(A, BaseRing(A)!2);
false
> IsLocalNorm(A, BaseRing(A)!5);
true
> Knot(A);
Abelian Group isomorphic to Z/2
Defined on 1 generator in supergroup:
    $.1 = $.1
Relations:
    2*$.1 = 0
Since the knot is isomorphic to a C2, the local solvability is not sufficient, but we can attempt to solve the equation:
> NormEquation(A, BaseRing(A)!5);
true [
    1/10*(-3*zeta_5^3 - 6*zeta_5^2 + zeta_5 -
        7)*$.1*$.2*$.3^4 + 1/10*(9*zeta_5^3 + 3*zeta_5^2 +
        2*zeta_5 + 6)*$.1*$.2*$.3^3 + 1/10*(-6*zeta_5^3 +
        3*zeta_5^2 - 3*zeta_5 + 1)*$.1*$.2*$.3^2 +
        1/10*(-3*zeta_5^3 - 6*zeta_5^2 + zeta_5 -
        7)*$.1*$.2*$.3 + 1/2*(2*zeta_5^3 + zeta_5^2 + zeta_5
        + 2)*$.1*$.2 + 1/10*(-12*zeta_5^3 - 4*zeta_5^2 -
        6*zeta_5 - 13)*$.1*$.3^4 + 1/10*(11*zeta_5^3 +
        2*zeta_5^2 + 13*zeta_5 + 4)*$.1*$.3^3 +
        1/10*(zeta_5^3 + 2*zeta_5^2 - 7*zeta_5 +
        9)*$.1*$.3^2 + 1/10*(-12*zeta_5^3 - 4*zeta_5^2 -
        6*zeta_5 - 13)*$.1*$.3 + 1/2*(2*zeta_5^3 - zeta_5^2
        + 2*zeta_5 + 1)*$.1 + 1/10*(-zeta_5^3 + 3*zeta_5^2 -
        3*zeta_5 + 1)*$.2*$.3^4 + 1/10*(-2*zeta_5^3 +
        zeta_5^2 + 4*zeta_5 - 3)*$.2*$.3^3 +
        1/10*(3*zeta_5^3 - 4*zeta_5^2 - zeta_5 +
        2)*$.2*$.3^2 + 1/10*(-zeta_5^3 + 3*zeta_5^2 -
        3*zeta_5 + 1)*$.2*$.3 + 1/2*(-zeta_5^3 - zeta_5^2 -
        1)*$.2 + 1/10*(-14*zeta_5^3 - 13*zeta_5^2 - 2*zeta_5
        - 21)*$.3^4 + 1/10*(22*zeta_5^3 + 4*zeta_5^2 +
        11*zeta_5 + 13)*$.3^3 + 1/10*(-8*zeta_5^3 +
        9*zeta_5^2 - 9*zeta_5 + 8)*$.3^2 +
        1/10*(-14*zeta_5^3 - 13*zeta_5^2 - 2*zeta_5 -
        21)*$.3 + 1/2*(5*zeta_5^3 + zeta_5^2 + 3*zeta_5 + 4)
]
> _, s := $1;
> Norm(s[1]);
5
Thus, the largest field we had to work in was of degree 16.
V2.28, 13 July 2023