[Next][Prev] [Right] [Left] [Up] [Index] [Root]

Class and Unit Groups

This section briefly describes the functions available to compute in and with the ideal and unit group of the number field, that is with the corresponding group in the maximal order. For more details and an idea of the algorithms involved, see Sections Ideal Class Groups and Unit Groups.

All functions mentioned in this section support the verbose flag ClassGroup up to a maximum value of 5.

Ideals in Magma are discussed in Section Ideals and Quotients.

ClassGroup(K: parameters) : FldAlg -> GrpAb, Map
    Bound: RngIntElt                    Default: MinkowskiBound
    Proof: MonStgElt                    Default: "Full"
    Enum: BoolElt                       Default: true
    Al: MonStgElt                       Default: "Automatic"
    SetVerbose("ClassGroup", n):        Maximum: 5
The group of ideal classes for the ring of integers O of the number field K is returned as an abelian group, together with a map from this abstract group to O. The map admits inverses and can therefore be used to compute "discrete logarithms" for the class group.

With the default values for the optional parameters the Minkowski bound is used and the last step of the algorithm verifies correctness, hence a fully proven result is returned.

If Bound is set to some positive integer M, M is used instead of the Minkowski bound. The validity of the result still depends on the "Proof" parameter.

If Proof := "GRH", everything remains as in the default case except that a bound based on the GRH is used to replace the Minkowski bound. This bound may be enlarged setting the "Bound" parameter accordingly. The result will hence be correct under the GRH.

If Proof := "Bound", the computation stops if an independent set of relations between the prime ideals below the chosen bound is found. The relations may not be maximal.

If Proof := "Subgroup", a maximal subset of the relations is constructed. In terms of the result, this means that the group returned will be a subgroup of the class group (i.e. the list of prime ideals considered may be to small).

If Proof := "Full" (the default) a guaranteed result is computed. This is equivalent to Bound := MinkowskiBound(K) and Proof := "Subgroup".

If only Bound is given, the Proof defaults to "Subgroup".

Finally, giving Proof := "Current" is the same as repeating the last call to ClassGroup(), but without the need to explicitly restate the value of Proof or Bound. If there was no prior call to ClassGroup, a fully proven computation will be carried out.

If Enum := false, then instead of enumerating short elements to get relations, Magma will use random linear combinations of a reduced basis instead. For "small" fields this will typically slow down the computations, but for large fields it is sometimes not possible to find any point using enumeration so that this is necessary for "large" fields. Unfortunately, there is no known criterion to decide beforehand if a field is "large" or "small".

If Al is set to "Sieve" (regardless of the size of the discriminant) or the discriminant of K is greater than 1030 then the sieving method described in [Bia] (or [Jac99] for quadratic fields) will be used. If Al is set to "NoSieve" then the sieving method will not be used regardless of the size of the discriminant.

ConditionalClassGroup(K) : FldAlg -> GrpAb, Map
The class group of the number field K assuming the generalized Riemann hypothesis.
ClassNumber(K: parameters) : FldAlg -> RngIntElt
    Bound: RngIntElt                    Default: MinkowskiBound
    Proof: MonStgElt                    Default: "Full"
    Al: MonStgElt                       Default: "Automatic"
    SetVerbose("ClassGroup", n):        Maximum: 5
Return the class number of the ring of integers O of a number field K. The options for the parameters are the same as for ClassGroup.
BachBound(K) : FldNum -> RngIntElt
An integral upper bound for norms of generators of the ideal class group for the number field K assuming the generalized Riemann hypothesis.
MinkowskiBound(K) : FldNum -> RngIntElt
An unconditional integral upper bound for norms of the generators of the ideal class group for the number field K.
UnitGroup(K) : FldNum -> GrpAb, Map
MultiplicativeGroup(K) : FldNum -> GrpAb, Map
    Al: MonStgElt                       Default: "Automatic"
    SetVerbose("UnitGroup", n):         Maximum: 6
Given a number field K, this function returns an (abstract) abelian group U, as well as a bijection m between U and the units of the maximal order. The unit group consists of the torsion subgroup, generated by the image m(U.1) and a free part, generated in O by the images m(U.i) for 2≤i≤r1 + r2.

The parameter Al can be used to specify an algorithm. It should be one of "Automatic", (default, a choice will be made for the user) "ClassGroup", "Dirichlet", "Mixed" (the best known Dirichlet method), "Relation" or "Short" (which is a variation of "Mixed"). In the case of real quadratic fields, a continued fraction algorithm is available, "ContFrac".

TorsionUnitGroup(K) : FldNum -> GrpAb, Map
The torsion subgroup of the unit group of the number field K, i.e. its maximal order. The torsion subgroup is returned as an abelian group T, together with a map m from the group to the order O. The torsion subgroup will be cyclic, and is generated by m(T.1).
UnitRank(K) : FldNum -> RngIntElt
Return the unit rank of the ring of integers O of a number field K.

Example FldNum_UnitGroup (H34E14)

In our field defined by x4 - 420 * x2 + 40000, we obtain the class and unit groups as follows.

> R<x> := PolynomialRing(Integers());
> f := x^4 - 420*x^2 + 40000;
> K<y> := NumberField(f);
> C := ClassGroup(K);
> C;
Abelian Group of order 1
> U := UnitGroup(K);
> U;
Abelian Group isomorphic to Z/2 + Z + Z + Z
Defined on 4 generators
Relations:
      2*U.1 = 0
> T := TorsionUnitGroup(K);
> T;
Abelian Group isomorphic to Z/2
Defined on 1 generator
Relations:
    2*T.1 = 0

 [Next][Prev] [Right] [Left] [Up] [Index] [Root]

Version: V2.19 of Mon Dec 17 14:40:36 EST 2012