To compute generic points of a k-dimensional solution set of a polynomial system, we add k random linear equations to the system.
i1 : R = CC[x,y,z]; |
i2 : f = { x^2 - y, x^3 - z }; |
i3 : fe1 = constructEmbedding(f,1); calling phc -c < /var/folders/40/dy88l5qd361391m_3v2m51bm0000gn/T/M2-44639-0/2PHCbatch > /var/folders/40/dy88l5qd361391m_3v2m51bm0000gn/T/M2-44639-0/3PHCsession output of phc -c is in file /var/folders/40/dy88l5qd361391m_3v2m51bm0000gn/T/M2-44639-0/1PHCoutput |
i4 : toString fe1 o4 = {x^2-y+(-.200288-.979737*ii)*zz1, x^3-z+(.584209-.811603*ii)*zz1, zz1, (.983404+.18143*ii)*x+(.996696+.0812267*ii)*y+(-.99595-.0899065*ii)*z +(-.411914+.911223*ii)*zz1-.785149+.619307*ii} |
Note that the ring of the original system is extended with k slack variables. The slack variables start with zz. Solutions of the embedded system with zero values for the slack variables are candidate generic points.
If the input system is overdetermined (there are more equations than unknowns), then as many surplus variables are introduced as the difference between the number of equations and the number of variables. Surplus variables start with ss.
i5 : R = CC[x,y,z]; |
i6 : f = { x^2-y, x^3-z, x*y-z, x*z-y^2 }; |
i7 : fe1 = constructEmbedding(f,1); calling phc -c < /var/folders/40/dy88l5qd361391m_3v2m51bm0000gn/T/M2-44639-0/6PHCbatch > /var/folders/40/dy88l5qd361391m_3v2m51bm0000gn/T/M2-44639-0/7PHCsession output of phc -c is in file /var/folders/40/dy88l5qd361391m_3v2m51bm0000gn/T/M2-44639-0/5PHCoutput |
i8 : toString fe1 o8 = {x^2-y+(-.517053-.301215*ii)*ss1+(.44113-.897443*ii)*zz1, x^3-z+(-.807631-.115119*ii)*ss1+(-.338609+.940927*ii)*zz1, x*y-z+(-.145323+.149572*ii)*ss1+(.107681-.994185*ii)*zz1, -y^2+x*z+(.135875-.440999*ii)*ss1+(.576771-.816906*ii)*zz1, (-.654952-.755671*ii)*x+(.965941+.258763*ii)*y+(.657153+.753757*ii)*z +(-.0744425-.997225*ii)*ss1+(.92541-.378968*ii)*zz1-.252792-.967521*ii} |