### 7.3.21 preimage (plural)

`Syntax:`
  `preimage (` ring_name`,` map_name`,` ideal_name `)`
  `preimage (` ring_name`,` ideal_expression`,` ideal_name `)`
`Type:`
  ideal
`Purpose:`
  returns the preimage of an ideal under a given map. The second argument has to be a map from the basering to the given ring (or an ideal defining such a map), and the ideal has to be an ideal in the given ring.
`Note:`
  To compute the kernel of a map, the preimage of zero has to be determined. Hence there is no special command for computing the kernel of a map in PLURAL.
`Remark:`
  In the non-commutative case, it is implemented only for maps -> , where is a commutative ring.
`Example:`

      LIB "ncalg.lib";
      ring   R = 0,a,dp;
      def Usl2 = makeUsl2();
      setring Usl2;
      poly  C = 4*e*f+h^2-2*h;
      // C is a central element of U(sl2)
      ideal I = e^3, f^3, h^3-4*h;
      ideal Z = 0;  // zero
      ideal J = twostd(I); // two-sided GB
      ideal K = std(I);    // left GB
      map Phi = R,C;  // phi maps a (in R) to C (in U(sl2))
      setring R;
      ideal PreJ = preimage(Usl2,Phi,J);
      // the central character of J
      PreJ;
      ==> PreJ[1]=a2-8a
      factorize(PreJ[1],1);
      ==> _[1]=a
      ==> _[2]=a-8
      // hence, there are two simple characters for J
      ideal PreK = preimage(Usl2,Phi,K);
      // the central character of K
      PreK;
      ==> PreK[1]=a3-32a2+192a
      factorize(PreK[1],1);
      ==> _[1]=a
      ==> _[2]=a-8
      ==> _[3]=a-24
      // hence, there are three simple characters for K
      preimage(Usl2, Phi, Z);  // kernel pf phi
      ==> _[1]=0

See ideal (plural); map (plural); ring (plural).

User manual for Singular version 4-0-3, 2016, generated by texi2html.