HomomorphismOps

© 2017 John Abbott, Anna M. Bigatti

GNU Free Documentation License, Version 1.2

CoCoALib Documentation Index

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 iff phi is injective
  • IsSurjective(phi) -- true iff phi is surjective
  • IsInImage(phi,y) -- true iff y is in the image of phi

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 of phi as an ideal in R
  • preimage(phi,y) -- computes an element x of R such that phi(x) = y; throws an exception if y is not in the image of phi
  • preimage0(phi,y) -- computes an element x of R such that phi(x) = y; returns zero(domain(phi)) if y is not in the image of phi

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)