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

 


ModuleSteinitz

Computes a Steinitz form of the given module.

Syntax:

M2 := ModuleSteinitz(M1);

modules
  M1, M2  

See also:  Module

Description:

The representation of a module is called to be in Steinitz form if all but possibly the last coefficient ideal are trivial. The ideal class of this non-trivial ideal is called the Steinitz class of the module, and is uniquely determined by the module. The given module must be represented by a square pseudomatrix, ModuleNF could be applied to recieve a square pseudomatrix. Even if the given matrix was in triangular form the result is usually not in triangular form. A description of the algorithm can be found in CoDe, Hop1.


Example:


kash> O:=OrderMaximal(Poly(Zx,[1, 5, -6, -53, 3, 206, 244]));;
kash> IL:=List(Factor(2*O),f->f[1]);;
kash> List(IL,IdealGenerators);;
kash> EL1:=List(Factor(5*O),f->IdealGen(f[1],2));;
kash> EL2:=List(Factor(13*O),f->IdealGen(f[1],2));;
kash> EL2[3]:=IdealGen(Factor(7*O)[1][1],2);;
kash> EL3:=List(Factor(3*O),f->IdealGen(f[1],2));;
kash> EL3[3]:=IdealGen(Factor(7*O)[2][1],2);;
kash> M:=Module(IL,Mat(O,[EL1,EL2,EL3]));
{<2, [0, 2, 0, 3, 0, 2]><2, [0, 0, 3, 0, 1, 2]><2, [3, 3, 1, 2, 0, 0]>
[[12, 17, 15, 7, 9, 5] [19, 18, 15, 1, 10, 24] [4, 22, 4, 10, 23, 4]]
[[10, 8, 0, 1, 0, 0] [1, 12, 5, 1, 0, 0] [1, 1, 0, 0, 0, 0]]
[[1, 1, 0, 0, 0, 0] [1, 0, 1, 0, 0, 0] [3, 1, 0, 0, 0, 0]]
}

kash> ModuleSteinitz(M);
> {<1><1><1>
[[4394728, -1966075, 1823048, 571045, 4429120, -10180704] [-886494713833578911\
17763, 49309593904741566858502, -52070513627197717051692, -1650569801283810864\
2379, -105665618835177578724552, 250254135800356303073304] [149910328613511789\
69776672140483616, -22967225283143150022165285807093973, -34673488886088036107\
962483287508403, -4437224226897232365918195124044250, -74602028023951564691914\
894717311488, 197126665681095115272266885027081077]]
[[-329720, 131751, -131932, -39035, -319020, 734938] [58213067248083905543048,\
 -27005759280469352852993, 25386500301627438878953, 7941216786374593082408, 59\
825169409273038698515, -138245397998170775484193] [-11853849383701969927973650\
52296325118, 544037966810989998767976423878766838, -48534301452621879401121006\
6434824596, -146424099146002933785473535422180681, -11324954441447246556135245\
21832008039, 2614242618416499310431986234953432438]]
[[-7556, 2694, -2857, -791, -7018, 16204] [3258642871112552540430, -1479582178\
071356246319, 1346137259868262612650, 426410933164074407916, 32313579395021170\
17165, -7449146675255990899196] [-170193889031977664076567799469094156, 748152\
08747439211909974778952022006, -62668187018577464668197075689018408, -19947714\
481520745192370616578138265, -151478708262378372278211079885467801, 3490309531\
12850724274499079221773238]]
}



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