# Singular

#### D.2.4.20 WLemma

Procedure from library `grobcov.lib` (see grobcov_lib).

Usage:
WLemma(F,A[,options]);
The first argument ideal F in K[a][x];
The second argument ideal A in K[a].
Calling sequence:
ring R=(0,x_1,..,x_n),(u_1,..,u_m),lp;
ideal F=f1(x_1,..,x_n,u_1,..,u_m),..,fs(x_1,..,x_n,u_1,..,u_m); ideal A=g_1(u_1,..u_m),..,g_s(u_1,..u_m);
list # : Options
Calling sequence:
WLemma(F,A[,options]);

Options:
either ("rep", 0) or ("rep",1) the representation of the resulting segment, by default is
0 =P-representation, (default) but can be set to
1=C-representation.

Return:
list of [lpp,B,S] = [leading power product, basis, segment], being B the reduced Groebner Basis given by I-regular functions in full representation, of the specialized ideal F on the segment S given in P- or C-representation. It is the result of Wibmer's Lemma. See A. Montes , M. Wibmer, "Groebner Bases for Polynomial Systems with parameters". JSC 45 (2010) 1391-1425.)
or the not yet published book
A. Montes. "Discussing Parametric Polynomial Systems: The Groebner Cover"

Note:
The basering R, must be of the form Q[a][x] (a=parameters, x=variables).

Example:
 ```LIB "grobcov.lib"; if(defined(R)){kill R;} if(defined(R)){kill R;} ring R=(0,a,b,c,d,e,f),(x,y),lp; ideal F=a*x^2+b*x*y+c*y^2,d*x^2+e*x*y+f*y^2; ideal A=a*e-b*d; WLemma(F,A); ==> [1]: ==> _[1]=y2 ==> _[2]=x2 ==> [2]: ==> [1]: ==> _[1]=(af-cd)*y2 ==> [2]: ==> _[1]=(d)*x2+(e)*xy+(f)*y2 ==> _[2]=(a)*x2+(b)*xy+(c)*y2 ==> [3]: ==> [1]: ==> [1]: ==> _[1]=(ae-bd) ==> [2]: ==> [1]: ==> _[1]=(d) ==> _[2]=(a) ==> [2]: ==> _[1]=(bf-ce) ==> _[2]=(af-cd) ==> _[3]=(ae-bd) WLemma(F,A,"rep",1); ==> [1]: ==> _[1]=y2 ==> _[2]=x2 ==> [2]: ==> [1]: ==> _[1]=(af-cd)*y2 ==> [2]: ==> _[1]=(d)*x2+(e)*xy+(f)*y2 ==> _[2]=(a)*x2+(b)*xy+(c)*y2 ==> [3]: ==> [1]: ==> _[1]=(ae-bd) ==> [2]: ==> _[1]=(bdf-cde) ==> _[2]=(af-cd) ==> _[3]=(ae-bd) ```