| #### D.2.4.17 AssocTanToEnv Procedure from library `grobcov.lib` (see grobcov_lib). Usage: AssocTanToEnv(poly F,ideal C,ideal E); poly F must be the family of hyper-surfaces whose envelope is analyzed. It must be defined in the ring R=Q[x_1.,,x_n][u_1,..,u_m], ideal C must be the ideal of restrictions in the variables u1,..um for defining the family. C must contain less polynomials than m. ideal E must be a component of envelop(F,C), previously computed. (x_1,..,x_n) are the variables of the hypersurfaces of F, that are considered as parameters of the parametric ring. (u_1,..,u_m) are the parameteres of the hyper-surfaces, that are considered as variables of the parametric ring. Having computed an envelop component E of a family of hyper-surfaces F, with constraints C, it returns the parameter values of the associated tangent hyper-surface of the family passing at one point of the envelop component E. Calling sequence: (s<m) ring R=(0,x_1,..,x_n),(u_1,..,u_m),lp; poly F=F(x_1,..,x_n,u_1,..,u_m); ideal C=g_1(u_1,..u_m),..,g_s(u_1,..u_m); poly E(x_1,..,x_n); AssocTanToEnv(F,C,E,[,options]); Return: list [lpp,basis,segment]. The basis determines the associated tangent hyper-surface at a point of the envelop component E. The segment is given in Prep. See book A. Montes. "The Groebner Cover": (Discussing Parametric Polynomial Systems). Note: grobcov is called internally. Example:
    LIB "grobcov.lib";
    if(defined(R)){kill R;}
    ring R=(0,y0,x,y),(t),dp;
    short=0;
    poly F=(x-5*t)^2+y^2-3^2*t^2;
    F;
    ==> 16*t^2+(-10*x)*t+(x^2+y^2)
    ideal C;
    C;
    ==> C[1]=0
    def Env=envelop(F,C);
    Env;
    ==> [1]:
    ==>    [1]:
    ==>       _[1]=(3*x+4*y)
    ==>    [2]:
    ==>       [1]:
    ==>          _[1]=1
    ==>    [3]:
    ==>       [1]:
    ==>          1
    ==>       [2]:
    ==>          Special
    ==>       [3]:
    ==>          _[1]=0
    ==> [2]:
    ==>    [1]:
    ==>       _[1]=(3*x-4*y)
    ==>    [2]:
    ==>       [1]:
    ==>          _[1]=1
    ==>    [3]:
    ==>       [1]:
    ==>          1
    ==>       [2]:
    ==>          Special
    ==>       [3]:
    ==>          _[1]=0
    // E is a component of the envelop:
    ideal E=Env[1][1];
    E;
    ==> E[1]=(3*x+4*y)
    def A=AssocTanToEnv(F,C,E);
    A;
    ==> [1]:
    ==>    [1]:
    ==>       _[1]=t
    ==>    [2]:
    ==>       _[1]=12*t+(5*y)
    ==>    [3]:
    ==>       [1]:
    ==>          [1]:
    ==>             _[1]=(3*x+4*y)
    ==>          [2]:
    ==>             [1]:
    ==>                _[1]=1
    // The basis of the parameter values of the associated
    // tangent component is
    A[1][2][1];
    ==> 12*t+(5*y)
    // Thus t=(5/12)*y0 and the associated tangent component at (x0,y0) is
    subst(F,t,(5/12)*y0);
    ==> (50*y0^2-75*y0*x+18*x^2+18*y^2)/18
    // EXAMPLE
    if(defined(R)){kill R;}
    ring R=(0,x,y,z),(x1,y1,z1),dp;
    short=0;
    poly F=(x-x1)^2+(y-y1)^2+(z-z1)^2-1;
    ideal C=(x1)^2+(y1)^2-1;
    short=0;
    def Env=envelop(F,C); Env;
    ==> [1]:
    ==>    [1]:
    ==>       _[1]=(x^2+y^2-4)
    ==>    [2]:
    ==>       [1]:
    ==>          _[1]=1
    ==>    [3]:
    ==>       [1]:
    ==>          2
    ==>       [2]:
    ==>          Normal
    ==>       [3]:
    ==>          _[1]=x1^2+y1^2-1
    ==> [2]:
    ==>    [1]:
    ==>       _[1]=(y)
    ==>       _[2]=(x)
    ==>    [2]:
    ==>       [1]:
    ==>          _[1]=1
    ==>    [3]:
    ==>       [1]:
    ==>          1
    ==>       [2]:
    ==>          Accumulation
    def E=Env[1][1];
    AssocTanToEnv(F,C,E);
    ==> [1]:
    ==>    [1]:
    ==>       _[1]=z1
    ==>       _[2]=y1
    ==>       _[3]=x1
    ==>    [2]:
    ==>       _[1]=z1+(-z)
    ==>       _[2]=2*y1+(-y)
    ==>       _[3]=2*x1+(-x)
    ==>    [3]:
    ==>       [1]:
    ==>          [1]:
    ==>             _[1]=(x^2+y^2-4)
    ==>          [2]:
    ==>             [1]:
    ==>                _[1]=1
    def E1=Env[2][1];
    AssocTanToEnv(F,C,E1);
    ==> [1]:
    ==>    [1]:
    ==>       _[1]=z1
    ==>       _[2]=x1^2
    ==>    [2]:
    ==>       _[1]=z1+(-z)
    ==>       _[2]=x1^2+y1^2-1
    ==>    [3]:
    ==>       [1]:
    ==>          [1]:
    ==>             _[1]=(y)
    ==>             _[2]=(x)
    ==>          [2]:
    ==>             [1]:
    ==>                _[1]=1

User manual for Singular version 4-1-2, 2019, generated by texi2html.