Let $X\subset\mathbb{P}^n$ be a $k$-dimensional projective variety. Consider the product $W = X\times\mathbb{P}^k$ as a subvariety of $\mathbb{P}(Mat(k+1,n+1))$, the projectivization of the space of $(k+1)\times (n+1)$-matrices, and consider the projection $p:\mathbb{P}(Mat(k+1,n+1))\dashrightarrow\mathbb{G}(k,n)=\mathbb{G}(n-k-1,n)$. Then the "Cayley trick" states that the dual variety $W^*$ of $W$ equals the closure of $p^{-1}(Z_0(X))$, where $Z_0(X)\subset\mathbb{G}(n-k-1,n)$ is the Chow hypersurface of $X$. The defining form of $W^*$ is also called the $X$-resultant. For details and proof, see Multiplicative properties of projectively dual varieties, by J. Weyman and A. Zelevinsky; see also Coisotropic hypersurfaces in Grassmannians, by K. Kohn.
In the example below, we apply the method to the quadric $\mathbb{P}^1\times\mathbb{P}^1\subset\mathbb{P}^3$.
i1 : QQ[x_0..x_3]; P1xP1 = ideal(x_0*x_1-x_2*x_3) o2 = ideal(x x - x x ) 0 1 2 3 o2 : Ideal of QQ[x ..x ] 0 3 |
i3 : time (P1xP1xP2,P1xP1xP2') = cayleyTrick(P1xP1,2); -- used 0.136042 seconds |
In the next example, we calculate the defining ideal of $\mathbb{P}^1\times\mathbb{P}^1\times\mathbb{P}^1\subset\mathbb{P}^7$ and that of its dual variety.
i4 : time (P1xP1xP1,P1xP1xP1') = cayleyTrick(P1xP1,1) -- used 0.105394 seconds o4 = (ideal (x x - x x , x x - x x , x x - x x , 0,3 1,2 0,2 1,3 1,0 1,1 1,2 1,3 0,3 1,1 0,1 1,3 ------------------------------------------------------------------------ x x - x x , x x - x x , x x - x x , x x 0,2 1,1 0,1 1,2 0,0 1,1 0,2 1,3 0,3 1,0 0,0 1,3 0,2 1,0 ------------------------------------------------------------------------ 2 2 - x x , x x - x x , x x - x x ), ideal(x x - 0,0 1,2 0,1 1,0 0,2 1,3 0,0 0,1 0,2 0,3 0,1 1,0 ------------------------------------------------------------------------ 2 2 2x x x x + 4x x x x + x x - 2x x x x - 0,0 0,1 1,0 1,1 0,2 0,3 1,0 1,1 0,0 1,1 0,1 0,3 1,0 1,2 ------------------------------------------------------------------------ 2 2 2x x x x + x x - 2x x x x - 2x x x x + 0,0 0,3 1,1 1,2 0,3 1,2 0,1 0,2 1,0 1,3 0,0 0,2 1,1 1,3 ------------------------------------------------------------------------ 2 2 4x x x x - 2x x x x + x x )) 0,0 0,1 1,2 1,3 0,2 0,3 1,2 1,3 0,2 1,3 o4 : Sequence |
If the option Duality is set to true, then the method applies the so-called "dual Cayley trick".
i5 : time cayleyTrick(P1xP1,1,Duality=>true); -- used 0.188107 seconds |
i6 : assert(oo == (P1xP1xP1,P1xP1xP1')) |
i7 : time cayleyTrick(P1xP1,2,Duality=>true); -- used 0.155997 seconds |
i8 : assert(oo == (P1xP1xP2,P1xP1xP2')) |
The object cayleyTrick is a method function with options.