Define an r-secant to be the linear space spanned by r given points on a variety, which here is the d-Veronese (i.e., the d-uple image of P2).

The output of this script is a list of all configuration types for which the dimension of the tangent space determined by the given configuration of r points is smaller than for r generic points; the (affine) dimension of the tangent space for each deficient configuration type is also given. This script works only if 1 <= r <= 8. In this case, there are no deficient configuration types when d > 15, so d is restricted to being at most 15.

Enter the required data:
r=
d=

### More Detailed Discussion

This script finds configuration types of r ≤ 8 points for which the mapping on tangent spaces for the map Φr,d defining the secant variety Secr(Vd) drops rank. What the script does actually is to find all configuration types of r points p1,…,pr of P2 such that H(2p1+…+2pr, d) does not achieve its maximum value (i.e., the value when the points pi are generic).

• S = k[P2] = S0 ⊕ S1 ⊕ Si &oplus

• Φr,d : (S1)r → Sd   where   Φr,d(l1,…,lr) = l1d + + lrd

P(Im(Φ)) = Secr(Vd), where Vd = d-uple image of P2

• Im(dΦ(l1,…,lr)) = l1d-1S1 + … + lrd-1S1 ≅ (S/(I(p1)2∩ I(pr)2))d
where pi is the point dual to the form li

Points (l1,…,lr) ∈ ((P2))r for which
dim Im(dΦ(l1,…,lr)) fails to achieve its maximum value we will call deficient.

Definition: Z = m1p1+…+mrprP2 denotes the subscheme, called a fat point subscheme, defined by the ideal I(p1)m1∩ I(pr)mr ⊆ S.

Definition: For Z = m1p1+…+mrpr, the Hilbert function H(Z, •) of Z is H(Z, d) = dim (S/(I(p1)m1∩ I(pr)mr))d

Definition: (p1,…,pr) ∈ P2 and (p'1,…,p'r) ∈ P2 have the same configuration type if

H(m1p1+…+mrpr,•) = H(m1p'1+…+mrp'r, •)
for all mi.