### 7.3.5 eliminate (plural)

`Syntax:`
  `eliminate (` ideal_expression`,` product_of_ring_variables`)`
  `eliminate (` module_expression`,` product_of_ring_variables`)`
`Type:`
  the same as the type of the first argument
`Purpose:`
  eliminates variables occurring as factors of the second argument from an ideal (resp. a submodule of a free module), by intersecting it (resp. each component of the submodule) with the subring not containing these variables.
`Note:`
  `eliminate` neither needs a special ordering on the basering nor a Groebner basis as input. Moreover, `eliminate` does not work in non-commutative quotients.
`Remark:`
  in a non-commutative algebra, not every subset of a set of variables generates a proper subalgebra. But if it is so, there may be cases, when no elimination (by means of Groebner bases) is possible; in such situations error messages will be reported. See also ncpreim_lib for the advanced algorithm for elimination and preimage.

`Example:`

      ring r=0,(e,f,h,a),Dp;
      matrix d[4][4];
      d[1,2]=-h; d[1,3]=2*e; d[2,3]=-2*f;
      def R=nc_algebra(1,d); setring R;
      // this algebra is U(sl_2), tensored with K[a] over K
      option(redSB);
      option(redTail);
      poly  p = 4*e*f+h^2-2*h - a;
      // p is a central element with parameter
      ideal I = e^3, f^3, h^3-4*h, p; // take this ideal
      // and intersect I with the ring K[a]
      ideal J = eliminate(I,e*f*h);
      // if we want substitute 'a' with a value,
      // it has to be a root of this polynomial
      J;
      ==> J[1]=a3-32a2+192a
      // now we try to eliminate h,
      // that is we intersect I with the subalgebra S,
      // generated by e and f.
      // But S is not closed in itself, since f*e-e*f=-h !
      // the next command will definitely produce an error
      eliminate(I,h);
      ==>    ? no elimination is possible: subalgebra is not admissible
      ==>    ? error occurred in or before ./examples/eliminate_(plural).sing l\
         ine 21: `eliminate(I,h);`
      // since a commutes with e,f,h, we can eliminate it:
      eliminate(I,a);
      ==> _[1]=h3-4h
      ==> _[2]=fh2-2fh
      ==> _[3]=f3
      ==> _[4]=eh2+2eh
      ==> _[5]=2efh-h2-2h
      ==> _[6]=e3

See ideal (plural); module (plural); std (plural).

User manual for Singular version 4.4.1, 2025, generated by texi2html.