up previous next
2.10.1 Introduction to RINGHOM
A variable X containing an INT or a RAT can be immediately used within any RING. But an object X of other types, such as RINGELEM, IDEAL, MAT,.. can be used only within its own RING, RingOf(X) . Such an object can be mapped into another RING using a RINGHOM : think mathematically ;-)

Most likely, the only function you need to use is just CanonicalHom which returns the canonical homomorphism between two rings (if there is one). Given a RINGHOM phi just type phi(x) if x is a RINGELEM, apply(phi, x) if x is a LIST or MAT.

However, there are also a few handy shortcuts silently determining and applying a homomorphism: the functions matrix and RingElem map the argument into the given ring (e.g. matrix(R, M) maps M into a new matrix in the ring R ). Another shortcut is BringIn (easy, but slow).

NOTE: all CoCoA functions should be smart enough to take into account the RING in which their value was defined, for example GBasis , LT , wdeg ,...

NOTE: QZP , ZPQ are NOT YET IMPLEMENTED.