Macaulay2 » Documentation
Packages » Resultants :: dualVariety
next | previous | forward | backward | up | index | toc

dualVariety -- projective dual variety

Synopsis

Description

This can be considered a shortcut for dualize tangentialChowForm(I,dim I -1).

Note that in characteristic 0 (or sufficiently large characteristic), the reflexivity theorem implies that if I' == dualVariety I then dualVariety I' == I. Below, we verify the reflexivity theorem for the Veronese surface.

i1 : V = kernel veronese(2,2)

             2                                    2                       2
o1 = ideal (x  - x x , x x  - x x , x x  - x x , x  - x x , x x  - x x , x  -
             4    3 5   2 4    1 5   2 3    1 4   2    0 5   1 2    0 4   1  
     ------------------------------------------------------------------------
     x x )
      0 3

o1 : Ideal of QQ[x ..x ]
                  0   5
i2 : time V' = dualVariety V
     -- used 0.100439 seconds

            2                 2    2
o2 = ideal(x x  - x x x  + x x  + x x  - 4x x x )
            2 3    1 2 4    0 4    1 5     0 3 5

o2 : Ideal of QQ[x ..x ]
                  0   5
i3 : time V == dualVariety V'
     -- used 0.109759 seconds

o3 = true

In the next example, we verify that the discriminant of a generic ternary cubic form coincides with the dual variety of the 3-th Veronese embedding of the plane, which is a hypersurface of degree 12 in $\mathbb{P}^9$

i4 : F = first genericPolynomials({3,-1,-1},ZZ/3331)

        3      2          2      3      2                   2          2  
o4 = a x  + a x x  + a x x  + a x  + a x x  + a x x x  + a x x  + a x x  +
      0 0    1 0 1    3 0 1    6 1    2 0 2    4 0 1 2    7 1 2    5 0 2  
     ------------------------------------------------------------------------
          2      3
     a x x  + a x
      8 1 2    9 2

      ZZ
o4 : ----[a ..a ][x ..x ]
     3331  0   9   0   2
i5 : time discF = ideal discriminant F;
     -- used 0.0802816 seconds

               ZZ
o5 : Ideal of ----[a ..a ]
              3331  0   9
i6 : time Z = dualVariety(veronese(2,3,ZZ/3331),AssumeOrdinary=>true);
     -- used 0.750444 seconds

               ZZ
o6 : Ideal of ----[x ..x ]
              3331  0   9
i7 : discF == sub(Z,vars ring discF) and Z == sub(discF,vars ring Z)

o7 = true

See also

Ways to use dualVariety :

For the programmer

The object dualVariety is a method function with options.