The method topWitnessSet constructs and embedding for the given polynomial system with the given dimension and then calls phcSolve for the computation of generic points on the solution set.
i1 : R = CC[x,y,z]; |
i2 : f = { x^2 - y, x^3 - z }; |
i3 : (w,ns) = topWitnessSet(f,1) ... calling phcEmbed ... writing output to file /tmp/M2-7882-0/1PHCoutput calling phc -c < /tmp/M2-7882-0/2PHCbatch > /tmp/M2-7882-0/3PHCsession output of phc -c is in file /tmp/M2-7882-0/1PHCoutput ... calling phcSolve ... using temporary files /tmp/M2-7882-0/4PHCinput and /tmp/M2-7882-0/4PHCoutput ... constructing a witness set ... o3 = ((dim=1,deg=3), {}) o3 : Sequence |
i4 : dim(w) o4 = 1 |
i5 : degree(w) o5 = 3 |
i6 : toString equations(w) o6 = {x^2-y+(-.874648+.484759*ii)*zz1, x^3-z+(.048529-.998822*ii)*zz1, zz1} |
i7 : toString slice(w) o7 = {(.49123-.87103*ii)*x+(.445807-.895129*ii)*y+(-.0953697+.995442*ii)*z +(.0354291+.999372*ii)*zz1+.993835-.110866*ii} |
i8 : toString points(w) o8 = VerticalList{{-.030517-.644344*ii, -.414248+.0393275*ii, .0379822+.265718*ii, 9.14817e-33-5.3926e-33*ii}, {-.751191+.40509*ii, .40019-.608599*ii, -.054082+.619287*ii, 3.09245e-33+1.31256e-33*ii}, {1.71527+.597662*ii, 2.58496+2.05031*ii, 3.20853+5.06177*ii, -2.87176e-32-1.02038e-32*ii}} |
A witness set for the twisted cubic consists of the original system, a random linear hyperplane to slice the space curve, and three generic points. Observe that the value for the last coordinate of all points equals (or is close to) zero. This last coordinate corresponds to the added slack variable. Solutions with nonzero value for the slack variable are called nonsolutions. In the example above, the list of nonsolutions returned in ns by topWitnessSet was empty.
i9 : R = CC[x,y,z]; f = { (x^2-y)*(x-2), (x^3 - z)*(y-2), (x*y - z)*(z-2) } 3 2 3 3 2 o10 = {x - 2x - x*y + 2y, x y - 2x - y*z + 2z, x*y*z - 2x*y - z + 2z} o10 : List |
i11 : (w,ns) = topWitnessSet(f,1); ... calling phcEmbed ... writing output to file /tmp/M2-7882-0/6PHCoutput calling phc -c < /tmp/M2-7882-0/7PHCbatch > /tmp/M2-7882-0/8PHCsession output of phc -c is in file /tmp/M2-7882-0/6PHCoutput ... calling phcSolve ... using temporary files /tmp/M2-7882-0/9PHCinput and /tmp/M2-7882-0/9PHCoutput ... constructing a witness set ... |
i12 : dim(w) o12 = 1 |
i13 : degree(w) o13 = 3 |
i14 : #ns o14 = 10 |
The example is constructed to contain not only the twisted cubic, but also at least one isolated point (2,2,2). This is reflected in the list of nonsolutions.