This method puts a chordal network into triangular form. A triangular chordal network can be effectively used to compute several properties of the underlying variety.
Example 3.1 of [CP'17]
i1 : R = QQ[x_0..x_3, MonomialOrder=>Lex]; |
i2 : I = ideal {x_0^3-x_0, x_0*x_2-x_2, x_1-x_2, x_2^2-x_2, x_2*x_3^2-x_3}; o2 : Ideal of R |
i3 : N = chordalNet I; |
i4 : chordalTria N; |
i5 : N 2 o5 = ChordalNet{ x => {x - 1, x , x - 1} } 0 0 0 0 x => {x , x - 1} 1 1 1 x => {x , x - 1} 2 2 2 x => {x , x - 1} 3 3 3 o5 : ChordalNet |
Example 1.3 of [CP'17]: ideal of adjacent minors of a 2xn matrix
i6 : I = adjacentMinorsIdeal(QQ,2,10); o6 : Ideal of QQ[a..t] |
i7 : N = chordalNet I; |
i8 : chordalTria N; |
i9 : N o9 = ChordalNet{ a => { , a*d - b*c} } b => { , b, } c => {c, , , c*f - d*e} d => {d, d, , } e => { , , e*h - f*g, e, , e*h - f*g} f => { , f, , f, , } g => {g, , , g*j - h*i, , g*j - h*i} h => {h, h, , , , } i => { , , i*l - j*k, i, , i*l - j*k} j => { , j, , j, , } k => {k, , , k*n - l*m, , k*n - l*m} l => {l, l, , , , } m => { , , m*p - n*o, m, , m*p - n*o} n => { , n, , n, , } o => {o, , , o*r - p*q, , o*r - p*q} p => {p, p, , , , } q => { , , q*t - r*s, q, , q*t - r*s} r => { , r, , r, , } s => {s, , , } t => {t, , } o9 : ChordalNet |
This function calls triangularize, which is only implemented in Macaulay2 for binomial ideals. For arbitrary ideals we need to interface to Maple.
The object chordalTria is a method function with options.