Semilocalizations of the Integers

In the following the semilocalizations \Z_{(\pi)} of the ring of integers are needed as base rings for unions of residue classes. Since these rings are not already implemented as domains in the &GAP; library, they had to be implemented in this package.

Entering semilocalizations of the integers
The ring \Z_{(\pi)}.
The function also accepts a single prime p instead of the one-element list pi = [ p ] as argument. gap> R := Z_pi(2); Z_( 2 ) gap> S := Z_pi([2,5,7]); Z_( 2, 5, 7 ) gap> T := Z_pi([3,11]); Z_( 3, 11 )
true
if R is a ring \Z_{(\pi)} for some set of primes \pi and false otherwise.
The set of noninvertible primes pi in the semilocalization R of the integers.
Methods for semilocalizations of the integers

There are methods for the operations in, Intersection, IsSubset, StandardAssociate, Gcd, Lcm, Factors and IsUnit available for semilocalizations of the integers. For the documentation of these operations, see the &GAP; reference manual. The standard associate of an element of a ring \Z_{(\pi)} is defined by the product of the non-invertible prime factors of its numerator.

gap> 4/7 in R; true gap> 3/2 in R; false gap> U := Intersection(R,S,T); Z_( 2, 3, 5, 7, 11 ) gap> IsSubset(R,U); true gap> StandardAssociate(R,-6/7); 2 gap> Gcd(S,90/3,60/17,120/33); 10 gap> Lcm(S,90/3,60/17,120/33); 40 gap> Factors(R,840); [ 105, 2, 2, 2 ] gap> Factors(R,-2/3); [ -1/3, 2 ] gap> IsUnit(S,3/11); true