up previous next
apply ring homomorphism
Image(R::E:OBJECT, F:TAGGED("RMap")):OBJECT
Image(V:OBJECT, F:TAGGED("RMap")):OBJECT
where R is the identifier for a ring and F has the form
RMap(F_1:POLY,...,F_n:POLY) or the form RMap([F_1:POLY,...,F_n:POLY]).
The number n is the number of indeterminates of the ring R. In the
second form, V is a variable containing a CoCoA object dependent on R
or not dependent on any ring.

This function maps the object E from one ring into the current ring as
determined by F. Suppose the current ring is S, and E is an object
dependent on a ring R; then
Image(R::E, F)
returns the object in S obtained by substituting
F_i for the ith
indeterminate of R in E. Effectively, we get the image of E under
the ring homomorphism,
F: R > S
x_i > F_i,
where
x_i denotes the ith indeterminate of R.
Notes:
1. The coefficient rings for the domain and codomain must be the same.
2. If R = S, one may use
Image(E, F) but in this case it may be
easier to use
Eval
or
Subst
.
3. The exact domain is never specified by the mapping F. It is only
necessary that the domain have the same number of indeterminates as F
has components. Thus, we are abusing terminology somewhat in
calling F a map.
4. The second form of the function does not require the prefix
R::
since the prefix is associated automatically.
5. If the object E in R is a polynomial or rational function (or list,
matrix, or vector of these) which involves only indeterminates that are
already in S, the object E can be mapped over to S without change
using the command
BringIn.
Use C ::= QQ[u,v];  domain
Use B ::= QQ[x,y];  another possible domain
I := Ideal(x^2y);  an ideal in B
Use A ::= QQ[a,b,c];  codomain
F := RMap(a,c^2ab);
Image(B::xy, F);  the image of xy under F:B > A
a^2b + ac^2

Image(C::uv, F);  the image of uv under F:C > A
a^2b + ac^2

Image(I, F);  the image of the ideal I under F: B > A
Ideal(a^2 + ab  c^2)

I;  the prefix "B::" was not needed in the previous example since
 I is already labeled by B
B :: Ideal(x^2  y)

Image(B::Module([x+y,xy^2],[x,y]), F);  the image of a module
Module([ab + c^2 + a, a^3b^2  2a^2bc^2 + ac^4], [a, ab + c^2])

X := C:: u+v;  X is a variable in the current ring (the codomain), A,
X;  whose value is an expression in the ring C.
C :: u + v

Image(X, F);  map X to get a value in C
ab + c^2 + a

