|
7.8.12 subst (letterplace)
Syntax:
subst ( poly_expression, variable, poly_expression )
subst ( poly_expression, variable, poly_expression ,... variable, poly_expression )
subst ( vector_expression, variable, poly_expression )
subst ( ideal_expression, variable, poly_expression )
subst ( module_expression, variable, poly_expression )
Type:
- poly, vector, ideal or module (corresponding to the first argument)
Purpose:
- substitutes one or more ring variable(s)/parameter variable(s) by (a) polynomial(s). Note that in the case of more than one substitution pair,
the substitutions will be performed sequentially and not simultaneously. The below examples illustrate this behaviour.
Note, that the coefficients must be polynomial when substituting a parameter.
Note:
- When dealing with free non-commutative bimodules, their generators
ncgen(i) can be used as variables in subst
and therefore substituted in the corresponding vector component gen(i) .
Example:
| LIB "freegb.lib";
ring r = 0,(x,y,z),dp;
ring R = freeAlgebra(r,5,2);
poly p = z^2 - y*x;
subst(p, x, -y);
==> y*y+z*z
ideal I = z*y*x - x*y*z;
subst(I, y, p);
==> _[1]=-z*y*x*x+z*z*z*x+x*y*x*z-x*z*z*z
subst(I, x, z); // produces zero
==> _[1]=0
module M = I*ncgen(1)*gen(1), ncgen(1)*gen(1)*I, I*ncgen(2)*gen(2);
M;
==> M[1]=z*y*x*ncgen(1)*gen(1)-x*y*z*ncgen(1)*gen(1)
==> M[2]=ncgen(1)*z*y*x*gen(1)-ncgen(1)*x*y*z*gen(1)
==> M[3]=z*y*x*ncgen(2)*gen(2)-x*y*z*ncgen(2)*gen(2)
subst(M, x, z); // produces zero
==> _[1]=0
==> _[2]=0
==> _[3]=0
subst(M, ncgen(2), z); // evaluates ncgen(2) at z, see the 2nd component
==> _[1]=z*y*x*ncgen(1)*gen(1)-x*y*z*ncgen(1)*gen(1)
==> _[2]=ncgen(1)*z*y*x*gen(1)-ncgen(1)*x*y*z*gen(1)
==> _[3]=z*y*x*z*gen(2)-x*y*z*z*gen(2)
|
See
ideal;
map;
module.
|