# der -- compute the module of vector fields which send one set to another

## Synopsis

• Usage:
m=der(I,J)
m=der(L,J)
• Inputs:
• J, an ideal,
• I, an ideal, over the same ring as J
• L, , of RingElements in the same ring as J
• Outputs:
• m, , the module of derivations sending I or L to J

## Description

This computes the module of vector fields that, as derivations, send each element of I (or L) to an element of J. This can be used to calculate, for example, the module of vector fields tangent to an algebraic variety (see derlog).

Note that der(I,J) is always a subset of der(list of generators of I,J), and frequently a proper subset.

For der(L,J), the computation is done by finding the syzygies between the partial derivatives of the entries of L and the generators of J. This method of computation was adapted from Singular's KVequiv.lib, written by Anne Frühbis-Krüger.

For der(I,J), we intersect der(list of generators of I,J) with the free module consisting of vector fields with coefficients in J:I; the latter is unnecessary when I is a subset of J.

For example, consider the following ideals.

 i1 : R=QQ[x,y]; i2 : I=ideal (x*y); o2 : Ideal of R i3 : J=ideal (0_R); o3 : Ideal of R i4 : K=ideal (x,y); o4 : Ideal of R

Every vector field sends the zero ideal to zero:

 i5 : der(J,I) 2 o5 = R o5 : R-module, free i6 : der(J,K) 2 o6 = R o6 : R-module, free

This finds the vector fields tangent to x*y=0 (see derlog):

 i7 : D=der(I,I) o7 = image | x 0 | | 0 y | 2 o7 : R-module, submodule of R i8 : applyVectorField(D,I) o8 = ideal(x*y) o8 : Ideal of R

This finds the vector fields annihilating x*y (see derlogH):

 i9 : D=der({x*y},J) o9 = image | x | | -y | 2 o9 : R-module, submodule of R

This is different than

 i10 : der(I,J) o10 = image 0 2 o10 : R-module, submodule of R

because, for example, the generator of D does not annihilate x^2*y:

 i11 : applyVectorField(gens D,x^2*y) 2 o11 = x y o11 : R

Another illustration of the difference is:

 i12 : der({x},ideal (y)) o12 = image | 0 y | | 1 0 | 2 o12 : R-module, submodule of R i13 : der(ideal (x),ideal (y)) o13 = image | y 0 | | 0 y | 2 o13 : R-module, submodule of R

This illustrates a basic identity:

 i14 : intersect(der(ideal (x),K),der(ideal (y),K))==der(K,K) o14 = true

• VectorFields -- a package for manipulating polynomial vector fields
• Ideal : Ideal
• derlog -- compute the logarithmic (tangent) vector fields to an ideal
• derlogH -- compute the logarithmic (tangent) vector fields to an ideal

## Ways to use der :

• "der(Ideal,Ideal)"
• "der(VisibleList,Ideal)"

## For the programmer

The object der is .