# secant -- compute the secant of an ideal

## Synopsis

• Usage:
secant(I,n)
• Inputs:
• Optional inputs:
• DegreeLimit => ..., default value {}
• Outputs:
• an ideal, the kth secant of I

## Description

This function computes the kth secant of I by constructing the abstract secant and then projecting with elimination.

Here the kth secant means the join of k copies of I. Setting k to 1 gives the dimension of the ideal, while 2 is the usual secant, and higher values correspond to higher order secants.

Setting the optional argument DegreeLimit to \{d\} will produce only the generators of the secant ideal up to degree d.

This method is general and will work for arbitrary polynomial ideals, not just phylogenetic ideals.

 i1 : R = QQ[a..d] o1 = R o1 : PolynomialRing i2 : I = ideal {a^2-b,a^3-c,a^4-d} 2 3 4 o2 = ideal (a - b, a - c, a - d) o2 : Ideal of R i3 : secant(I,2) 3 2 2 2 2 2 2 o3 = ideal (b - 2a*b*c + a d + 2c - 2b*d, a*b - a c - b*c + a*d, a b - b ------------------------------------------------------------------------ 3 - 2a*c + 2d, a - 3a*b + 2c) o3 : Ideal of R