
D.2.4.18 FamElemsAtEnvCompPoints
Procedure from library grobcov.lib (see grobcov_lib).
 Usage:
 FamElemsAtEnvCompPoints(poly F,ideal C,ideal E);
poly F must be the family of hypersurfaces whose envelop is analyzed.
ideal C must be the ideal of restrictions on the variables for defining the family. Must contain less polynomials
than the dimension n of the space.
ideal E must be a component of the envelop of (F,C), previously computed by envelop.
(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 hypersurfaces, that are considered as variables of the parametric ring.
Having computed an envelop component E of a family of hypersurfaces F, with constraints C,
it returns the parameter values of the set of all hypersurfaces of the family passing
at one point of the envelop component E.
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);
poly E(x_1,..,x_n);
FamElemsAtEnvCompPoints(F,C,E[,options]);
 Return:
 list [lpp,basis,segment]. The basis determines the parameter values of the of hypersurfaces that pass at a
fixed point of the envelop component E. The lpp determines the dimension of the set. The segment is the
component and is given in Prep.
Fixing the values of (x_1,..,x_n) inside E, the basis allows to detemine the values of the parameters (u_1,..u_m),
of the hypersurfaces passing at a point of E. See the not yet published book
A. Montes. "Discussing Parametric Polynomial Systems: The Groebner Cover"
 Note:
 grobcov is called internally.
The basering R, must be of the form Q[a][x] (a=parameters, x=variables).
Example:
 LIB "grobcov.lib";
if(defined(R)){kill R;}
ring R=(0,y0,x,y),(t),dp;
short=0;
poly F=(x5*t)^2+y^23^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]:
==> Normal
==> [4]:
==> 1
==> [2]:
==> [1]:
==> _[1]=(3*x4*y)
==> [2]:
==> [1]:
==> _[1]=1
==> [3]:
==> Normal
==> [4]:
==> 1
// 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 the assocoated tangent family element at (x0,y0) is
subst(F,t,(5/12)*y0);
==> (50*y0^275*y0*x+18*x^2+18*y^2)/18
FamElemsAtEnvCompPoints(F,C,E);
==> [1]:
==> [1]:
==> _[1]=t^2
==> [2]:
==> _[1]=144*t^2+(120*y)*t+(25*y^2)
==> [3]:
==> [1]:
==> [1]:
==> _[1]=(3*x+4*y)
==> [2]:
==> [1]:
==> _[1]=1
// Thus (12*t^25*y0)^2=0 and the unique circle of the family passing at (x0,y0) in E
// is the associated tangent circle:
subst(F,t,(5/12)*y0);
==> (50*y0^275*y0*x+18*x^2+18*y^2)/18

