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

 


RayResidueRing

This function computes the multiplicative group of the residue class ring.

Syntax:

L := RayResidueRing(m0 [,minf]);

list
  L  
ideal
  m0  
list
  minf  
of integers/infinite primes

See also:  EltCon, EltRayResidueRingRep, RayResidueRingRepToElt, RayResidueRingCyclicFactors

Description:

This function computes the multiplicative group of the residue class ring of an ideal or a congruence module {\goth{m}} = {\goth{m}}_0{\goth{m}}_\infty, where {\goth{m}}_0 is an integral ideal of a maximal order O and {\goth{m}}_\infty is a formal product of primes at infinity. {\goth{m}}_\infty is represented by a list of integers, where each entry represents a real embedding (as given by {\tt EltCon}). RayResidueRing returns a list of the order of the multiplicative group and a list of the orders of the cyclic factors. This structure can be used to solve multiplicative congruences which may involve infinite places. This algorithm bases an the presentation of the Einseinheiten in Hablau and is described in Pau1.


Example:


kash> O := OrderMaximal(Order(Z,2,10));
Generating polynomial: x^2 - 10
Discriminant: 40 

kash> P3 := Factor(3*O)[1][1];;
kash> IdealDegree(P3);
1
kash> IdealRamIndex(P3);
1
kash> m0 := P3^2;; L := RayResidueRing(m0);
[ 6, [ 2, 3 ] ]
kash> m0 := P3^4;; L := RayResidueRing(m0);
[ 54, [ 2, 27 ] ]
kash> P5 := Factor(5*O)[1][1];;
kash> IdealDegree(P5);
1
kash> IdealRamIndex(P5);
2
kash> m0 := P5^2;; L := RayResidueRing(m0);
[ 20, [ 4, 5 ] ]
kash> m0 := P5^4;; L := RayResidueRing(m0);
[ 500, [ 4, 25, 5 ] ]
kash> P7 := 7*O;;
kash> IdealDegree(P7);
2
kash> IdealRamIndex(P7);
1
kash> m0 := P7^2;; RayResidueRing(m0);
[ 2352, [ 48, 7, 7 ] ]
kash> m0 := P7^4;; RayResidueRing(m0);
[ 5647152, [ 48, 343, 343 ] ]
kash> m0 := P5^4*P7^2;; L := RayResidueRing(m0);
[ 1176000, [ 4, 25, 5, 48, 7, 7 ] ]
kash> minf := [2];; L := RayResidueRing(1*O,minf);
[ 2, [ 1, 2 ] ]
kash> L := RayResidueRing(m0,minf);
[ 2352000, [ 4, 25, 5, 48, 7, 7, 2 ] ]



Example:

compute the ray residue ring of an ideal in Z

kash> a := ZIdealCreate(9);
<9>
kash> RayResidueRing(a);
[ 6, [ 6 ] ]


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