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

 


OrderAbs

Creates an absolute extension from a simple relative extension or creates a simple relative extension from a double relative extension.

Syntax:

Oa := OrderAbs(O);
Oa := OrderAbs(O,"no hom");

order
  Oa  
order
  O  

See also:  OrderInstallHom

Description:

Given a simple relative order O - the coefficient ring ( OrderCoefOrder) of the coefficient ring of O is {\Bbb Z} - this function computes an absolute equation order O|a with quotient field isomorphic to the quotient field of O over Q. Given a double relative order O - the coefficient ring of the coefficient ring of O, denoted by o, has the coefficient ring {\Bbb Z} - this function computes a relative equation order O|a with quotient field isomorphic to the quotient field of O over the quotient field of o. o has to be maximal. Usually the homomorphisms are computed and installed (cf. OrderInstallHom), so that elements can be moved between the orders O and O|a. But this may take a while. If you want to omit the computation of the homomorphism, use the second optional argument "no hom".


Example:

The following function merges two absolute orders

kash> Merge := function(o1,o2)
> local o1x, f, fl;
> o1x := PolyAlg(o1);
> f := PolyMove(OrderPoly(Zx, o2), o1x);
> fl := Factor (f);
> return OrderAbs(Order(fl[Length(fl)][1]));
> end;
function ( o1, o2 ) ... end



Example:

We create Q(\sqrt5, \sqrt3):

kash> o := Order(Z, 2, 3);
Generating polynomial: x^2 - 3

kash> O := Order(o, 2, 5);
      F[1]
        /
       /
   E1[1]
  /
 /
Q
F  [ 1]     x^2 - 5
E 1[ 1]     x^2 - 3

kash> Oa := OrderAbs(O);
Generating polynomial: x^4 - 16*x^2 + 4



Example:

The element \sqrt3 of o is represented in O|a:

kash> a:=EltMove(Elt(o, [0,1]), Oa);
[0, -14, 0, 1] / 4
kash> EltMinPoly(a, Zx);
x^2 - 3



Example:

A double relative extension:

kash> o := OrderMaximal(Z,8,2);
Generating polynomial: x^8 - 2
Discriminant: -2147483648 

kash> oo := Order(o,2,5);
      F[1]
        /
       /
   E1[1]
  /
 /
Q
F  [ 1]     x^2 - 5
E 1[ 1]     x^8 - 2

kash> O := Order(oo,2,7);
         F[1]
           /
          /
      E2[1]
        /
       /
   E1[1]
  /
 /
Q
F  [ 1]     x^2 - 7
E 2[ 1]     x^2 - 5
E 1[ 1]     x^8 - 2

kash> Oa := OrderAbs(O);
      F[1]
        /
       /
   E1[1]
  /
 /
Q
F  [ 1]     x^4 - 24*x^2 + 4
E 1[ 1]     x^8 - 2

kash> Oaa:= OrderAbs(Oa);
> Generating polynomial: x^32 - 192*x^30 + 16160*x^28 - 779520*x^26 + 23611832*x\
^24 - 461456256*x^22 + 5726131264*x^20 - 42165517824*x^18 + 155056995992*x^16 \
- 167363594496*x^14 + 79016151424*x^12 + 17149424640*x^10 + 206341230816*x^8 -\
 1685897697792*x^6 - 781759831296*x^4 - 194736998400*x^2 + 415926965776



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