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).
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).
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 *.
Given an order R, returns the abstract ideal class monoid mathrm(icm) together with a map (with preimages) sending each class to a representative.
Coerce x into the abstract ideal class monoid when possible, returning an ideal class.
(More standard intrinsics.)