up previous next
Image

ring homomorphism

Syntax
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.

Description
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 i-th 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 i-th 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.

Example
Use C ::= Q[u,v];   -- domain
Use B ::= Q[x,y];   -- another possible domain
I := Ideal(x^2-y);  -- an ideal in B
Use A ::= Q[a,b,c]; -- codomain
F := RMap(a,c^2-ab);  
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
------------------------------- 


See Also