| #### D.2.4.14 envelop Procedure from library `grobcov.lib` (see grobcov_lib). Usage: envelop(poly F,ideal C[,options]); poly F must represent the family of hyper-surfaces for which on want to compute its envelop. ideal C must be the ideal of restrictions on the variables defining the family, and should contain less polynomials than the number of variables. (x_1,..,x_n) are the variables of the hyper-surfaces 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. Calling sequence: 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); envelop(F,C[,options]); where s<m. Return: The output is a list of the components [C_1, .. , C_n] of the locus. Each component is given by Ci=[pi,[pi1,..pi_s_i],tax] where pi,[pi1,..pi_s_i] is the canonical P-representation of the component. Concerning tax: (see help for locus) For normal-point components is tax=[d,taxonomy,anti-image], being d=dimension of the anti-image taxonomy="Normal" or "Special" anti-image=values of the mover corresponding to the component For non-normal-point components is tax=[d,taxonomy] d=dimension of the component taxonomy="Accumulation" or "Degenerate". Options: An option is a pair of arguments: string, integer. To modify the default options, pairs of arguments -option name, value- of valid options must be added to the call. The algorithm allows the following option as pair of arguments: "comments", c: by default it is 0, but it can be set to 1. "anti-image", a: by default a=1 and the anti-image is shown also for "Normal" components. For a=0, it is not shown. Note: grobcov and locus are called internally. The basering R, must be of the form Q[x][u] (x=parameters, u=variables). This routine uses the generalized definition of envelop introduced in the book A. Montes. "The Groebner Cover" (Discussing Parametric Polynomial Systems) not yet published. Example:
    LIB "grobcov.lib";
    // Steiner Deltoid
    // 1. Consider the circle x1^2+y1^2-1=0, and a mover point M(x1,y1) on it.
    // 2. Consider the triangle A(0,1), B(-1,0), C(1,0).
    // 3. Consider lines passing through M perpendicular to two sides of ABC triangle.
    // 4. Obtain the envelop of the lines above.
    if(defined(R)){kill R;}
    ring R=(0,x,y),(x1,y1,x2,y2),lp;
    short=0;
    ideal C=(x1)^2+(y1)^2-1,
    x2+y2-1,
    x2-y2-x1+y1;
    matrix M[3][3]=x,y,1,x2,y2,1,x1,0,1;
    poly F=det(M);
    // Curves Family F
    F;
    ==> -x1*y2+(y)*x1+(-y)*x2+(x)*y2
    // Conditions C=
    C;
    ==> C[1]=x1^2+y1^2-1
    ==> C[2]=x2+y2-1
    ==> C[3]=-x1+y1+x2-y2
    envelop(F,C);
    ==> [1]:
    ==>    [1]:
    ==>       _[1]=(x^4+2*x^2*y^2+10*x^2*y-x^2+y^4-6*y^3+12*y^2-8*y)
    ==>    [2]:
    ==>       [1]:
    ==>          _[1]=1
    ==>    [3]:
    ==>       [1]:
    ==>          1
    ==>       [2]:
    ==>          Normal
    ==>       [3]:
    ==>          _[1]=x2+y2-1
    ==> [2]:
    ==>    [1]:
    ==>       _[1]=(x+y-1)
    ==>    [2]:
    ==>       [1]:
    ==>          _[1]=1
    ==>    [3]:
    ==>       [1]:
    ==>          0
    ==>       [2]:
    ==>          Special
    ==>       [3]:
    ==>          _[1]=4*y2^3-4*y2^2-y2
    ==>          _[2]=x2+y2-1

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