Ideal Class Monoid

Let R be an order in an étale algebra A over Q. Ideal multiplication induces the structure of commutative monoid on the set of ideal classes of R, which we then call ideal class monoid of R. We denote it by mathcal(I)(R). The unit element of mathcal(I)(R) is the class of any principal fractional R-ideal.

We have a partitioning mathcal(I)(R) = bigsqcupS mathcal(I)S(R) where the disjoint union is taken over the overorders S of R and mathcal(I)S(R) is the subset of mathcal(I)(R) consisting of ideal classes with multiplicator ring S. The computation is then performed by first computing mathcal(W)(R) and then observing that for each overorder S of R, the Picard group mathrm(Pic)(S) acts freely on mathcal(I)S(R) with quotient space mathcal(W)S(R).

ICM_bar(S) : AlgEtQOrd -> SeqEnum
    GRH: BoolElt                        Default: false
Returns the ideal classes of fractional S-ideals having Multiplicator Ring equal to S. This is the same as the orbit of the action of PicardGroup(S) on WKICM_bar(S).
ICM(S) : AlgEtQOrd -> SeqEnum
    GRH: BoolElt                        Default: false
Returns the ideal class monoid of the order S, that is, a set of representatives for the isomorphism classes of the fractional S-ideals.

We also provide an abstract representation of the ideal class monoid. The abstract monoid has type AlgEtQICM and classes have type AlgEtQICMElt. An ideal class can be created via ! starting from an overorder or a fractional ideal, and a (deterministic) representative can be recovered using RepresentativeMap. Each class is internally a pair consisting of a weak equivalence class and an element of the abstract representation of mathrm(Pic)(S).

The second method to compute the ideal class monoid of an order R, returns an abstract representation of mathcal(I)(R) with type AlgEtQICM together with a map to a set of representatives. Each class has type AlgEtQICMElt, and it is internally represented as a pair consisting of a weak equivalence class (of type AlgEtQWECMElt) and an element of the representation of mathrm(Pic)(S) (as an abstract abelian group), where S is the corresponding multiplicator ring. This representation is more efficient than the previous one, since it does not need to compute in advance and store a representative for each ideal class. Ideal classes can be created using the coercion operator ! starting from an overorder S of R or a fractional S-ideal. Ideal classes can be multiplied using the operator *.

IdealClassMonoidAbstract(R) : AlgEtQOrd -> AlgEtQICM,Map
Given an order R, returns the abstract ideal class monoid mathrm(icm) together with a map (with preimages) sending each class to a representative.
icm ! x : AlgEtQICM, Any -> AlgEtQICMElt
Coerce x into the abstract ideal class monoid when possible, returning an ideal class.
x in icm : AlgEtQICMElt, AlgEtQICM -> BoolElt
Parent(x) : AlgEtQICMElt -> AlgEtQICM
WEClass(x) : AlgEtQICMElt -> AlgEtQWECMElt
PicClass(x) : AlgEtQICMElt -> GrpAbElt, Map
Ideal(x) : AlgEtQICMElt -> AlgEtQIdl
MultiplicatorRing(x) : AlgEtQICMElt -> AlgEtQOrd
x1 eq x2 : AlgEtQICMElt, AlgEtQICMElt -> BoolElt
x * y : AlgEtQICMElt, AlgEtQICMElt -> AlgEtQICMElt
x ^ n : AlgEtQICMElt, RngIntElt -> AlgEtQICMElt
IsOne(x) : AlgEtQICMElt -> BoolElt
IsInvertibleInMultiplicatorRing(x) : AlgEtQICMElt -> BoolElt
Order(icm) : AlgEtQICM -> AlgEtQOrd
RepresentativeMap(icm) : AlgEtQICM -> Map
icm1 eq icm2 : AlgEtQICM, AlgEtQICM -> BoolElt
# icm : AlgEtQICM -> RngInt
Classes(icm) : AlgEtQICM -> SeqEnum[AlgEtQICMElt]
Representatives(icm) : AlgEtQICM -> SeqEnum[AlgEtQIdl]
One(icm) : AlgEtQICM -> AlgEtQICMElt
Random(icm) : AlgEtQICM -> AlgEtQICMElt
(More standard intrinsics.)
V2.29, 28 November 2025