[back] [prev] [next] [index] [root]

 


RayClassFieldAbelianTest

Tests if a class field is also abelian over Q.

Syntax:

a:=RayClassFieldIsAbelian(G [,m]);

AbelianGroup
  G  
defining a class group
boolean
  a  
integer
  m  

Description:

Let O be the ring of integers of an abelian extention over Q. {\goth m} is a multiple of its conductor {\goth f} \in Z. G is a class group in O, K the abelian extension over O defined by G. The function determines if K is also abelian over Q. The methode is described in cite[II, p.24]{HasseZahlbericht}.


Example:


kash> o:=OrderMaximal(x^2-10);
Generating polynomial: x^2 - 10
Discriminant: 40 

kash> G:=RayClassGroupToAbelianGroup(9*o);
RayClassGroupToAbelianGroup(<9>, [  ])
Group with relations:
[2 0]
[0 3]

kash> RayClassFieldAbelianTest(G);
true



Example:

Let's check this. First we'll compute the RayClassField

kash> L:=RayClassField(G);
[ x^2 - 2, x^3 - 3*x - 1 ]



Example:

The only critical part is the cubic polynomial, therfore we'll show that this polynomial defines a C|3 extension over Q.

kash> g:=PolyMove(L[2], Z);
x^3 - 3*x - 1
kash> OrderAutomorphismsAbel(Order(g));
true
kash> o:=OrderMaximal(x^4-2);
Generating polynomial: x^4 - 2
Discriminant: -2048 

kash> G:=RayClassGroupToAbelianGroup(9*o);
RayClassGroupToAbelianGroup(<9>, [  ])
Group with relations:
[3 0]
[0 3]
kash> RayClassFieldIsAbelian(G);
false


<- back[back] [prev] [next] [index] [root]