Examples
User documentation
This file offers some functions for working with homomorphisms between (quotients of) polynomial algebras.
Queries and views
Let phi
be a RingHom
from R
to S
where both rings are
either polynomial rings or quotients of polynomial rings.
IsInjective(phi)
--true
iffphi
is injectiveIsSurjective(phi)
--true
iffphi
is surjectiveIsInImage(phi,y)
--true
iffy
is in the image ofphi
Operations
Let phi
be a RingHom
from R
to S
where both rings are
either polynomial rings or quotients of polynomial rings.
ker(phi)
-- computes the kernel ofphi
as an ideal inR
preimage(phi,y)
-- computes an elementx
ofR
such thatphi(x) = y
; throws an exception ify
is not in the image ofphi
preimage0(phi,y)
-- computes an elementx
ofR
such thatphi(x) = y
; returnszero(domain(phi))
ify
is not in the image ofphi
Maintainer documentation
The centrepiece is the structure RichRingHom
which contains several
components useful for actually doing the computation. In particular,
all operations require computation in a new ring RS
which contains "orthogonal"
copies of the polynomial rings in R
and S
There are natutal homomorphisms
from RS
to R
and from S
into RS
.
The hope is that this structure will be memorized inside the RingHom
object so that it does not need to be recomputed.
Bugs, shortcomings and other ideas
Maintainer doc is very incomplete. The algorithms are not especially hard, but they are also not so simple. Reference to K+R book?
Main changes
2017
- July (v0.99556): first release (ported from CoCoA-5 package)