|
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.
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.
Returns true if and only if x is a local norm in the abelian
extension A at the infinite prime i.
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.
Returns true if and only if x is a local norm everywhere in
the abelian extension A.
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.
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.
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.
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 C 2, 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.
[Next][Prev] [Right] [Left] [Up] [Index] [Root]
|