# KASH - a sample session

### The examples are taken from the ICM 98 Mathematical Software Session.

The KANT Group: [members] [publications] [database] [links] - [Institut für Mathematik, TU Berlin]
Examples:[Number Fields] [Function Fields]

#### An example with Number Fields:

```            KK      K         AAAAA         SSSSSS      HH       HH
KK    KK        AA    AA      SS      S    HH       HH
KK   K          AA     AA     SS            HH       HH
KK  KK          AA      AA     SS           HH       HH
KKKK           AA      AA       SSSSS       HHHHHHHHHHH
KKKK           AA       AA         SSSSS    HH       HH
KK KK         AAAAAAAAAAA             SS   HH       HH
KK    KK       AA       AA             SS   HH       HH
KK       K     AA       AA     S      SS    HH       HH
KK        KK   AA       AA nt   SSSSSS      HH       HH ell

Shell of the KANT V4 Software, Jan 99 Version 2.0

Copyright (c) 1994-99 by Prof. Dr. M. E. Pohst,

For registration and support send an email to kant@math.tu-berlin.de
--------------------------------------------------------------------
KANT V4 bases on Magma developed by Prof. J. Cannon,
Copyright (c) 1999 Prof. J. Cannon, University of Sydney.
Shell bases on GAP developed by Lehrstuhl D Mathematik, RWTH Aachen,
Copyright (c) 1992 Lehrstuhl D Mathematik, RWTH Aachen.

Enter "?" for help and "quit;" to leave KASH

kash> o := OrderMaximal(x^3+15*x^2-15*x+15);
F[1]
|
F[2]
/
/
Q
F  [ 1]     Given by transformation matrix
F  [ 2]     x^3 + 15*x^2 - 15*x + 15
Discriminant: -51300

kash> OrderTransformationMatrix(o);
[ 2, [2 0 1]
[0 2 0]
[0 0 1] ]
kash> OrderBasis(o);
[ 1, [0, 1, 0], [1, 0, 1] / 2 ]
kash> OrderClassGroup(o);
[ 15, [ 15 ] ]
kash> OrderClassGroupCyclicFactors(o);
[ [ <6, [2, -2, -1]>, 15 ] ]
kash> Factor(3*o);
[ [ <3, [0, 1, 0]>, 3 ] ]
kash> Factor(OrderIndex(o));
[ [ 2, 1 ] ]
kash> Factor(2*o);
[ [ <
[2 1 1]
[0 1 0]
[0 0 1]
>
, 1 ], [ <
[2 1 0]
[0 1 0]
[0 0 1]
>
, 2 ] ]
kash> RayClassGroup(8*o);
[ 240, [ 2, 30, 4 ] ]
kash> cf := RayClassField(8*o);
[ x^2 + [9, 144, -289], x^2 + [1, 9, -18],
x^4 + [272, -272, -36]*x^2 + [88850, 18000, 1550],
x^3 - 3*x + [-2434, 2064, 276],
x^5 + [-18645, 79490, 10045]*x^3 + [-5711327974318765, 7122229407918915, 931\
482556489095]*x^2 + [-15671409715172665724630205, -4030083652339238297310135, \
-379902199340888458926870]*x + [6961222327660536862249512557665314, -112469937\
11282851751693307464944145, -1454919873294020910169537881155470] ]
kash> O := OrderMaximal(cf[3]);
F[1]
|
F[2]
/
/
E1[1]
|
E1[2]
/
/
Q
F  [ 1]     Given by transformation matrix
F  [ 2]     x^4 + [272, -272, -36]*x^2 + [88850, 18000, 1550]
E 1[ 1]     Given by transformation matrix
E 1[ 2]     x^3 + 15*x^2 - 15*x + 15
Discriminant: <
[ 256    0 -164]
[   0  256 -124]
[   0    0    1]
>

Coef. Ideals are: <1>   <
[2 0 0]
[0 2 0]
[0 0 1]
/2>
<
[73384 36692 52944]
[    0 36692 25592]
[    0     0     1]
/73384>
<
[2201520       0   16252]
[      0 2201520 2190420]
[      0       0       1]
/22015200>
kash> Oa := OrderAbs(last);
Generating polynomial: x^12 + 252*x^10 + 270228*x^8 + 17100464*x^6 + 988070250\
0*x^4 - 8768250000*x^2 + 900000000
Discriminant: 1096525468516111753576746954096533490575014602113919108763170720\
956439558494861511210143107016899109883503601254400000000000000000000000000000\
000000000000000
kash> OrderSubfield(last);
[ Generating polynomial: x^3 + 15*x^2 - 15*x + 15
Discriminant: -205200
,
Generating polynomial: x^6 - 252*x^5 + 270228*x^4 - 17100464*x^3 + 988070250\
0*x^2 + 8768250000*x + 900000000
]
kash> Galois(Oa);
"[4^2]S(3)"
```

#### An example with Algebraic Function Fields:

```            KK      K         AAAAA         SSSSSS      HH       HH
KK    KK        AA    AA      SS      S    HH       HH
KK   K          AA     AA     SS            HH       HH
KK  KK          AA      AA     SS           HH       HH
KKKK           AA      AA       SSSSS       HHHHHHHHHHH
KKKK           AA       AA         SSSSS    HH       HH
KK KK         AAAAAAAAAAA             SS   HH       HH
KK    KK       AA       AA             SS   HH       HH
KK       K     AA       AA     S      SS    HH       HH
KK        KK   AA       AA nt   SSSSSS      HH       HH ell

Shell of the KANT V4 Software, Jan 99 Version 2.0

Copyright (c) 1994-99 by Prof. Dr. M. E. Pohst,

For registration and support send an email to kant@math.tu-berlin.de
--------------------------------------------------------------------
KANT V4 bases on Magma developed by Prof. J. Cannon,
Copyright (c) 1999 Prof. J. Cannon, University of Sydney.
Shell bases on GAP developed by Lehrstuhl D Mathematik, RWTH Aachen,
Copyright (c) 1992 Lehrstuhl D Mathematik, RWTH Aachen.

Enter "?" for help and "quit;" to leave KASH

kash> AlffInit(FF(3,2), "x");
"Defining global variables: k, w, kx, kxf, kxy, x, y, AlffGlobals"
kash> \$+x^5 + x^4 + x^3 + x^2;
y^4 + (2*x^5 + x^4 + 2*x^3 + x^2)*y^2 + x^8 + 2*x^6 + x^5 + x^4 + x^\
3 + x^2
kash> F := Alff(f);
Algebraic function field defined over GF(3^2) by
y^4 + (2*x^5 + x^4 + 2*x^3 + x^2)*y^2 + x^8 + 2*x^6 + x^5 + x^4 + x^\
3 + x^2
kash> AlffGenus(F);
7
kash> o := AlffOrderMaxFinite(F);
Finite order over GF(3^2) defined by
y^4 + (2*x^5 + x^4 + 2*x^3 + x^2)*y^2 + x^8 + 2*x^6 + x^5 + x^4 + x^\
3 + x^2
and transformation matrix
[x^4 + x^2 + 2*x               0               0               0]
[              0 x^4 + x^2 + 2*x               0       2*x^2 + x]
[              0               0     x^3 + x + 2               0]
[              0               0               0               1]
den: x^4 + x^2 + 2*x
kash> X := AlffElt(o, x);
x
kash> Y := AlffElt(o,  [0, 1, 0, 0]);
[ 0, 1, 0, 0 ]
kash> Eval(f, Y);
0
kash> 1/Y;
[ 0, x + 2, 0, 2 ] / (x^4 + x^2 + 2*x)
kash> AlffSignature(F);
[ [ 2, 1 ], [ 2, 1 ] ]
kash> u := AlffUnitsFund(o)[1];
[ 2*x^22 + 2*x^20 + 2*x^19 + 2*x^16 + x^15 + x^14 + 2*x^12 + x^11 + \
x^9 + 2*x^7 + 2*x^6 + 2*x^5 + 2*x^4 + 2*x^3 + x^2 + 2*x + 1, 0, x^20\
+ 2*x^19 + 2*x^18 + 2*x^17 + x^16 + x^15 + 2*x^14 + x^11 + x^8 + x^\
5 + 2*x^4 + 2*x^3 + 2*x^2 + x + 1, 0 ]
kash> AlffEltNorm(u);
1
kash> AlffDivisor(u);
Alff divisor
[ [ Alff place < 1/x, [ 0, 1, w^6, 1 ] >, 48 ],
[ Alff place < 1/x, [ 2, w, 1, 0 ] >, -48 ] ]

kash> pl1 := AlffPlaceSplit(F, x+1);
[ Alff place < x + 1, [ w^2, w^3, w^6, 1 ] >,
Alff place < x + 1, [ w^6, w^3, w^2, 1 ] >,
Alff place < x + 1, [ 0, w^3, 2, 1 ] >,
Alff place < x + 1, [ 0, 1, w^5, 1 ] > ]
kash> pl2 := AlffPlaceSplit(F, x^2+w);
[ Alff place < x^2 + w, [ w*x + w^7, 1, 0, 0 ] >,
Alff place < x^2 + w, [ w^5*x + w^3, 1, 0, 0 ] > ]
kash> p1 := pl1[1];
Alff place < x + 1, [ w^2, w^3, w^6, 1 ] >
kash> p2 := pl2[1];
Alff place < x^2 + w, [ w*x + w^7, 1, 0, 0 ] >
kash> D := 8*p1 - p2;
Alff divisor
[ [ Alff place < x + 1, [ w^2, w^3, w^6, 1 ] >, 8 ],
[ Alff place < x^2 + w, [ w*x + w^7, 1, 0, 0 ] >, -1 ] ]

kash> AlffDivisorDeg(D);
6
kash> AlffDivisorLDim(D);
0
kash> D := 10*p1 - p2;
Alff divisor
[ [ Alff place < x + 1, [ w^2, w^3, w^6, 1 ] >, 10 ],
[ Alff place < x^2 + w, [ w*x + w^7, 1, 0, 0 ] >, -1 ] ]

kash> AlffDivisorLDim(D);
2
kash> B := AlffDivisorLBasis(D);
[ [ w^6*x^10 + w^7*x^9 + 2*x^8 + w*x^6 + w^7*x^5 + w^3*x^4 + w*x^3 +\
w^3*x^2 + w^3*x + w^2, w^5*x^7 + w^5*x^6 + w*x^5 + w^6*x^4 + w*x^2 \
+ w^7*x + 1, w^3*x^6 + x^5 + w^5*x^4 + w^6*x^3 + 2*x^2 + x + w^7, w^\
7*x^6 + w*x^5 + w^2*x^4 + 2*x^3 + 2*x^2 + w^7*x + w^3 ] / (x^10 + x^\
9 + x + 1),
[ w*x^10 + w^5*x^9 + w^5*x^8 + x^7 + w^3*x^6 + w^7*x^5 + w^6*x^4 +\
w^5*x^3 + w^3*x^2 + x + w^7, w^6*x^8 + x^7 + w^5*x^6 + 2*x^5 + w^7*\
x^4 + 2*x^2 + 2*x + w^2, w^6*x^6 + w^7*x^5 + w^2*x^4 + w^6*x^2 + w*x\
+ w^2, w^2*x^7 + w*x^6 + 2*x^5 + w*x^4 + w^2*x^2 + w*x + w^5 ] / (x\
^10 + x^9 + x + 1) ]
kash> D1 := AlffDivisor(B[1]);
Alff divisor
[ [ Alff place < x + 1, [ w^2, w^3, w^6, 1 ] >, -10 ],
[ Alff place < x + w^2, [ w^6, 1, 0, 0 ] >, 1 ],
[ Alff place < x + 2, [ w^3, 1, 0, 0 ] >, 1 ],
[ Alff place < x^2 + w, [ w*x + w^7, 1, 0, 0 ] >, 1 ],
[ Alff place < x^6 + x^5 + x^3 + w^6*x^2 + w*x + w, [ w^5*x^5 + w*x^\
4 + w^5*x^3 + w*x^2 + w^6*x + 1, 1, 0, 0 ] >, 1 ] ]

kash> AlffPlacesDegOneNum(F);
36
kash> AlffPlacesDegOneNumBound(F);
43
```

Examples:[Number Fields] [Function Fields]