Goto Chapter: Top 1 2 3 4 5 6 7 8 9 10 Ind
 Top of Book   Previous Chapter   Next Chapter 

7 Ring homomorphisms
 7.1 The HAPRingHomomorphism datatype
  7.1-1 Implementation details

  7.1-2 Elimination orderings
 7.2 Construction functions
  7.2-1 HAPRingToSubringHomomorphism

  7.2-2 HAPSubringToRingHomomorphism

  7.2-3 HAPRingHomomorphismByIndeterminateMap

  7.2-4 HAPRingReductionHomomorphism

  7.2-5 PartialCompositionRingHomomorphism

  7.2-6 HAPZeroRingHomomorphism

  7.2-7 InverseRingHomomorphism

  7.2-8 CompositionRingHomomorphism
 7.3 Data access functions
  7.3-1 SourceGenerators

  7.3-2 SourceRelations

  7.3-3 SourcePolynomialRing

  7.3-4 ImageGenerators

  7.3-5 ImageRelations

  7.3-6 ImagePolynomialRing
 7.4 General functions
  7.4-1 ImageOfRingHomomorphism

  7.4-2 PreimageOfRingHomomorphism
 7.5 Example: Constructing and using a HAPRingHomomorphism

7 Ring homomorphisms

A ring homomorphism is a linear function f: R -> S that maps between two rings R and S and which preserves the operations of multiplication and addition:

f(a + b) = f(a) + f(b) f(ab) = f(a)f(b) f(1) = 1

7.1 The HAPRingHomomorphism datatype

The HAPRingHomomorphism datatype represents a particular class of ring homomorphisms (in fact usually ring isomorphisms), namely those between rings presented as quotient rings of polynomial rings, where the source and target rings have the same coefficient ring. They represent the mapping

R/I -> S/J

where R = k[x_1, ..., x_n] and S = k[y_1, ..., x_m] and I and J are ideals in R and S respectively.

Such a ring homomorphism may be specified by the following information

The target ideal J is assumed to be the image of I under the homomorphism.

7.1-1 Implementation details

Various different internal representations are used for ring homomorphisms in HAPprime, depending on the source and target ring. The user need not be concerned with the different representations, which correspond to the five constructors HAPRingToSubringHomomorphism (7.2-1), HAPSubringToRingHomomorphism (7.2-2), HAPRingHomomorphismByIndeterminateMap (7.2-3), HAPRingReductionHomomorphism (7.2-4) and HAPZeroRingHomomorphism (7.2-6), and which are hopefully largely self-explanatory.

Most of the provided representations of ring homomorphisms use Gröbner bases and polynomial reduction to perform the mapping. This uses the singular package singular: singular: the GAP interface to Singular which gives good speed and access to improved monomial orderings. This datatype cannot be used without the singular package.

7.1-2 Elimination orderings

Using Gröbner bases to map from one polynomial ring R to another polynomial ring S relies on applying a global ordering to the joint ring R cup S. For all polynomials p in R and q in S, this ordering must give p > q, so that terms involving elements of R will be replaced by those in S. A straightforward solution is to use a lexicographic term ordering which orders the indeterminates of R before those of S. However, computing Gröbner bases using a lexicographic ordering can be much more expensive that with other orderings, or sometimes even a change of the order of indeterminates is enough change the order of the computation. A range of different ordering can be requested by using the GAP options stack Reference: Options Stack, and setting the options EliminationIndexOrder and EliminationBlockOrdering as described below.

The option EliminationIndexOrder determines the indeterminate ordering to use. Possible values are the following strings:

When comparing two monomials, the elimination ordering ensures that the parts of the two monomials involving the indeterminates from R are compared first, and then in the event of a tie, the part involving those from S are compared. The option EliminationBlockOrdering determines the monomial ordering to use for each of these two comparisons. This is given as a string which is the concatenation of the two required orderings. For example, the default ordering is "LexGrlex" which means lexicographic ordering over the indeterminates of R, and graded lexicographic over the indeterminates of S.

7.2 Construction functions

7.2-1 HAPRingToSubringHomomorphism
> HAPRingToSubringHomomorphism( Rring, Rrels, Simages )( operation )

Returns: HAPRingHomomorphism

Creates a HAPRingHomomorphism which represents the mapping R/I -> S/J. In this form, Rring a polynomial ring R and Rrels an ideal I in that ring. The image of the indeterminates of R under this mapping are given in Simages and generate the ring S, while the relations Rrels are mapped to generate J. The ring S may be a subring of the full polynomial ring in its indeterminates.

7.2-2 HAPSubringToRingHomomorphism
> HAPSubringToRingHomomorphism( Rgens, Rrels, Sring )( operation )
> HAPSubringToRingHomomorphism( Rgens, Sring, Srels )( operation )

Returns: HAPRingHomomorphism

Creates a HAPRingHomomorphism which represents the mapping R/I -> S/J. The ring R is generated by a set of polynomials Rgens (so R may be a subring of the full polynomial ring in its indeterminates). The images of Rgens under the mapping are the indeterminates of the polynomial ring given in Sring. The ideals can be specified either as a set of relations Srels in the target ring S, or as a set of relations Rrels in the source ring. In this second case, Rrels can be polynomials in the full polynomial ring, in which case the ideal I is the intersection of the ideal they generate in the full ring with the subring generated by Rgens. In both cases, the specified ideal is mapped with the homomorphism (or its inverse) to find the corresponding ideal in the other ring.

This ring homomorphism uses Gröbner bases to perform the mapping, and the time taken to calculate the basis in this function can be influenced by the choice of monomial ordering. See 7.1-2 for more details.

7.2-3 HAPRingHomomorphismByIndeterminateMap
> HAPRingHomomorphismByIndeterminateMap( R, Rrels, S )( operation )

Returns: HAPRingHomomorphism

Creates a HAPRingHomomorphism which represents the map R/I -> S/J which is a simple relabelling of indeterminates: the image of the ith indeterminate of R under the mapping is taken to be the ith indeterminate of S. The ideal I is generated by Rrels and are mapped using the homomorphism to generate J.

7.2-4 HAPRingReductionHomomorphism
> HAPRingReductionHomomorphism( R, Rrels[, avoid] )( operation )
> HAPRingReductionHomomorphism( phi[, avoid] )( operation )

Returns: HAPRingHomomorphism

For a polynomial ring R and ideal I generated by Rrels, this function finds an isomorphic ring in fewer indeterminates (or the same number, if this is not possible). This new ring will avoid the indeterminates of R and any further indeterminates listed in avoid. The function returns the map between R/I and the new ring.

In the second form, this function reduces the target ring of the ring homomorphism phi and returns the map between this and the reduced ring. This map will also avoid the indeterminates in the source ring of phi.

7.2-5 PartialCompositionRingHomomorphism
> PartialCompositionRingHomomorphism( M, N )( operation )

Returns: HAPRingHomomorphism

Creates a HAPRingHomomorphism which represents the composition of the HAPRingHomomorphism maps M followed by N. The source of N may be a subring of the target of M.

Note that, unlike the other HAPRingHomomorphism representations, the generators listed by SourceGenerators (7.3-1) and ImageGenerators (7.3-4) are not in correspondance. Also, this is not an isomorphism, so the relations reported by SourceRelations (7.3-2) and ImageRelations (7.3-5) are simply the relations of the source and image rings, and are not the same ideal. Because this is not an isomorphism, InverseRingHomomorphism (7.2-7) will return fail, although PreimageOfRingHomomorphism (7.4-2) can be used (and will return fail if no preimage exists).

7.2-6 HAPZeroRingHomomorphism
> HAPZeroRingHomomorphism( R, Rrels )( operation )

Returns: HAPRingHomomorphism

Creates a HAPRingHomomorphism which maps from the ring R, with an ideal generated by Rrels, into the trival ring generated by zero.

7.2-7 InverseRingHomomorphism
> InverseRingHomomorphism( phi )( attribute )

Returns: HAPRingHomomorphism

Returns (as a ring homomorphism) the inverse of the ring homomorphism phi.

If the inverse homomorphism requires an elimination Gröbner basis to perform the mapping (for example when computing the inverse of a HAPRingHomomorphism constructed with HAPRingToSubringHomomorphism (7.2-1)) then the ordering can be specified using the options stack. See 7.1-2 for more details.

7.2-8 CompositionRingHomomorphism
> CompositionRingHomomorphism( phiA, phiB )( operation )

Returns: HAPRingHomomorphism

Returns the ring homomorphism that is the composition of the ring homomorphisms phiA and phiB. The source ring of phiB must be in the image ring of phiA.

7.3 Data access functions

7.3-1 SourceGenerators
> SourceGenerators( phi )( attribute )

Returns: List

A list of generators for the source ring R/I of the ring homomorphism. phi.

7.3-2 SourceRelations
> SourceRelations( phi )( attribute )

Returns: List

A list of the relations that generate the ideal I of in the source ring of the ring homomorphism phi.

7.3-3 SourcePolynomialRing
> SourcePolynomialRing( phi )( attribute )

Returns: PolynomialRing

Returns the polynomial ring which contains the source ring of the ring homomorphism phi. Polynomials to be mapped by phi must be in this ring.

7.3-4 ImageGenerators
> ImageGenerators( phi )( attribute )

Returns: List

A list of generators for the image ring S/J of the ring homomorphism phi.

7.3-5 ImageRelations
> ImageRelations( phi )( attribute )

Returns: List

A list of the relations that generate the ideal J of in the image ring of the ring homomorphism phi.

7.3-6 ImagePolynomialRing
> ImagePolynomialRing( phi )( attribute )

Returns: PolynomialRing

Returns the polynomial ring which contains the image of the ring homomorphism phi>. All polynomials mapped by phi will be in this ring.

7.4 General functions

7.4-1 ImageOfRingHomomorphism
> ImageOfRingHomomorphism( phi, poly )( operation )
> ImageOfRingHomomorphism( phi, coll )( operation )

Returns: Polynomial or list

Returns the image of the polynomial poly under the ring homomorphism phi. The input must be an element(s) of the source ring of phi (see SourcePolynomialRing (7.3-3)).

7.4-2 PreimageOfRingHomomorphism
> PreimageOfRingHomomorphism( phi, poly )( operation )
> PreimageOfRingHomomorphism( phi, coll )( operation )

Returns: Polynomial or list

Returns the preimage of the polynomial poly under the ring homomorphism phi. The input must be an element(s) of the image ring of phi (see ImagePolynomialRing (7.3-6)). This function is a synonym for ImageOfRingHomomorphism(InverseRingHomomorphism(phi), poly).

7.5 Example: Constructing and using a HAPRingHomomorphism

As an initial example, we shall construct a ring homomorphism phi: k[x_1, x_2] -> k[x_3, x_4] (i.e. ideal) with the mapping x_1 -> x_3 and x_2 -> x_3 + x_4. In all these examples, we shall take k to be the field of two elements, GF(2). We demonstrate that this is an isomorphism by mapping a polynomial from the source ring to the target and back again.

gap> R := PolynomialRing(GF(2), 2);;
gap> S := PolynomialRing(GF(2), 2, IndeterminatesOfPolynomialRing(R));;
gap> phi := HAPRingToSubringHomomorphism(R, [], [S.1, S.1+S.2]);
<Ring homomorphism>
gap> p := ImageOfRingHomomorphism(phi, R.1^3+R.1*R.2+R.2);
x_3^3+x_3^2+x_3*x_4+x_3+x_4
gap> PreimageOfRingHomomorphism(phi, p);
x_1^3+x_1*x_2+x_2

Some ring presentations are not in minimal form: there is an isomorphic ring in fewer indeterminates. The HAPRingReductionHomomorphism (7.2-4) function can find and return an isomorphism that maps to this reduced ring. For example, the ring k[x_1, x_2, x_3]/(x_1^2 + x_2^3, x_2^2 + x_3) has an isomorphic presentation in only two indeterminates, as this computation shows:

gap> R := PolynomialRing(GF(2), 3);;
gap> I := [R.1^2+R.2^3, R.2^2+R.3];
[ x_2^3+x_1^2, x_2^2+x_3 ]
gap> phi := HAPRingReductionHomomorphism(R, I);
<Ring homomorphism>
gap> ImagePolynomialRing(phi);
GF(2)[x_4,x_5]
gap> ImageRelations(phi);
[ x_5^3+x_4^2 ]

The source and target of HAPRingHomomorphisms can be quotient rings, and any relations can be specified at the source of target. When mapping from a subring to a full ring, the source relations do not necessarily need to be specified in the source ring, but could instead be given in its containing ring. For example, consider the ring R/I where R = k[x_1, x_2, x_3] and I = x_1^3+x_3 and the subring generated by (x_1, x_2, x_3^2). If we wish to specify the homomorphism phi: R/I -> S/J where S = k[x_4, x_5, x_6] with the natural map from the generators of R to those of S then we only need specify the original ideal I, even though it is not in the subring. The intersection between I and the subring is found to be x_1^4+x_3^2, and it is this ideal that is used in the homomorphism, as this example shows:

gap> R := PolynomialRing(GF(2), 3);;
gap> I := [R.1^2+R.3];
[ x_1^2+x_3 ]
gap> S := PolynomialRing(GF(2), 3, IndeterminatesOfPolynomialRing(R));;
gap> phi := HAPSubringToRingHomomorphism([R.1, R.2, R.3^2], I, S);
<Ring homomorphism>
gap> Display(phi);
Ring homomorphism
  x_1 -> x_4
  x_2 -> x_5
  x_3^2 -> x_6
with relations
  [ x_1^2+x_3 ]
and
  [ x_4^4+x_6 ]
gap> Display(InverseRingHomomorphism(phi));
Ring homomorphism
  x_4 -> x_1
  x_5 -> x_2
  x_6 -> x_3^2
with relations
  [ x_4^4+x_6 ]
and
  [ x_1^4+x_3^2 ]

Ring homomorphisms can also be composed with each other. For example, we can take the HAPSubringToRingHomomorphism (7.2-2) above and change the target indeterminates by composing this with a HAPRingHomomorphismByIndeterminateMap (7.2-3):

gap> R := PolynomialRing(GF(2), 3);;
gap> I := [R.1^2+R.3];
[ x_1^2+x_3 ]
gap> S := PolynomialRing(GF(2), 3, IndeterminatesOfPolynomialRing(R));;
gap> phi := HAPSubringToRingHomomorphism([R.1, R.2, R.3^2], I, S);
<Ring homomorphism>
gap> #
gap> T := PolynomialRing(GF(2), 3, [R.1, R.2, R.3, S.1, S.2, S.3]);;
gap> phi2 := HAPRingHomomorphismByIndeterminateMap(
>   ImagePolynomialRing(phi), ImageRelations(phi), T);
<Ring homomorphism>
gap> Display(CompositionRingHomomorphism(phi, phi2));
Ring homomorphism
  x_1 -> x_7
  x_2 -> x_8
  x_3^2 -> x_9
with relations
  [ x_1^2+x_3 ]
and
  [ x_7^4+x_9 ]
 Top of Book   Previous Chapter   Next Chapter 
Goto Chapter: Top 1 2 3 4 5 6 7 8 9 10 Ind

generated by GAPDoc2HTML