# principalComponent -- compute principal component of jets

## Synopsis

• Usage:
principalComponent(s,I)
• Inputs:
• Optional inputs:
• Saturate => ..., default value true, option for principal components
• Outputs:
• an ideal, whose vanishing locus is the principal component of the s-jets of I

## Description

This function is provided by the package Jets.

Consider an affine variety $X \subseteq \mathbb{A}^n_\Bbbk$. The principal (or dominant) component of the $s$-jets of $X$ is the Zariski closure of the $s$-jets of the smooth locus of $X$. Let $X_{\mathrm{reg}}$ and $X_{\mathrm{sing}}$ denote respectively the smooth and singular locus of $X$. If $\mathcal{J}_s$ denotes the $s$-jets functor, then there is a natural embedding $$X_\mathrm{sing} \subset X \subseteq \mathbb{A}^n_\Bbbk \subset \mathcal{J}_s (\mathbb{A}^n_\Bbbk) \cong \mathbb{A}^{n(s+1)}_\Bbbk.$$ Let $I$ denote the ideal of $X_\mathrm{sing}$ in this embedding, and let $J$ denote the ideal of $\mathcal{J}_s (X)$; both ideals live in the polynomial ring $\Bbbk [\mathbb{A}^{n(s+1)}_\Bbbk]$. We have an equality of sets $$\mathcal{J}_s (X_\mathrm{reg}) = \mathcal{J}_s (X) \setminus X_\mathrm{sing} = \mathbf{V} (J) \setminus \mathbf{V} (I).$$ By Theorem 10 in Chapter 4, §4 of D.A. Cox, J. Little, D. O'Shea - Ideals, Varieties, and Algorithms, if $\Bbbk$ is algebraically closed, then there is an equality $$\mathbf{V} (J\colon I^\infty) = \overline{\mathbf{V} (J) \setminus \mathbf{V} (I)} = \overline{\mathcal{J}_s (X_\mathrm{reg})}.$$ This function returns the ideal $J\colon I^\infty$.

If $J$ is known to be a radical ideal, then $\mathbf{V} (J\colon I) = \overline{\mathbf{V} (J) \setminus \mathbf{V} (I)}$ by Corollary 11 in Chapter 4, §4 of D.A. Cox, J. Little, D. O'Shea - Ideals, Varieties, and Algorithms. In this case, the user may pass the option Saturate=>false to return the ideal $J\colon I$, which can speed up computations.

As an example, consider the union of three non parallel lines in the affine plane. We compute the principal component of the jets of order two.

 i1 : R = QQ[x,y] o1 = R o1 : PolynomialRing i2 : I = ideal(x*y*(x+y-1)) 2 2 o2 = ideal(x y + x*y - x*y) o2 : Ideal of R i3 : PC = principalComponent(2,I) 2 2 2 2 o3 = ideal (y1*x2 - x1*y2, x0 y0 + x0*y0 - x0*y0, (x0 + x0*y0 - x0)y1, (y0 ------------------------------------------------------------------------ 2 - y0)x1 - x0*y0*y1, x0*y0*x1 + x0*y0*y1, (y0 - 1)x1*y1 - x0*y1 , ------------------------------------------------------------------------ 2 2 2 2 2 2 x0*x1*y1 + x0*y1 , y0*x1 + x1*y1 + x0*y1 , x1 y1 + x1*y1 , (x0 + x0*y0 ------------------------------------------------------------------------ 2 - x0)y2, ((y0 - 1)x1 - x0*y1)y2, (x0*x1 + x0*y1)y2, (x1 + x1*y1)y2, ------------------------------------------------------------------------ 2 (y0 - y0)x2 - x0*y0*y2, x0*y0*x2 + x0*y0*y2, y0*x1*x2 + (x1 + x0*y1)y2, ------------------------------------------------------------------------ 2 2 2 2 (y0 - 1)x2*y2 - x0*y2 , x0*x2*y2 + x0*y2 , x1*x2*y2 + x1*y2 , y0*x2 + ------------------------------------------------------------------------ 2 2 2 x2*y2 + x0*y2 , x2 y2 + x2*y2 ) o3 : Ideal of QQ[x0, y0][x1, y1][x2, y2]

Despite the name, the principal component need not be a component of the jet scheme (i.e., it need not be irreducible). In this example, the principal component has degree 3 and is the union of three components of degree 1.

 i4 : P = primaryDecomposition jets(2,I) 2 2 o4 = {ideal (y0 , x0*y0, y0*y1, y0*x1 + x0*y1, y0*y2 - y1 , y0*x2 + x0*y2 + ------------------------------------------------------------------------ 3 2 x1*y1, x0 ), ideal (x0*y0, x0 , y0*x1 + x0*y1, x0*x1, y0*x2 + x0*y2 + ------------------------------------------------------------------------ 2 3 2 x1*y1, x0*x2 - x1 , y0 ), ideal (y0 , x0*y0 - y0, y0*y1, y0*x1 + (x0 - ------------------------------------------------------------------------ 2 2 3 2 1)y1, y0*y2 - y1 , y0*x2 + (x0 - 1)y2 + x1*y1 + 3y1 , x0 - 3x0 + 3x0 - ------------------------------------------------------------------------ 2 2 2 1), ideal (x0*y0 + y0 - y0, x0 - y0 - 2x0 + 1, y0*x1 + (x0 + 2y0 - ------------------------------------------------------------------------ 2 1)y1, (x0 - 1)x1 - y0*y1, y0*x2 + (x0 + 2y0 - 1)y2 + x1*y1 + y1 , (x0 - ------------------------------------------------------------------------ 2 2 3 1)x2 - y0*y2 - x1 - 3x1*y1 - 2y1 , y0 ), ideal (y0, y1, y2), ideal ------------------------------------------------------------------------ 2 2 (x0*y0 - x0, x0 , (y0 - 1)x1 + x0*y1, x0*x1, (y0 - 1)x2 + x0*y2 + 3x1 + ------------------------------------------------------------------------ 2 3 2 2 x1*y1, x0*x2 - x1 , y0 - 3y0 + 3y0 - 1), ideal (x0*y0 + y0 - x0 - 2y0 ------------------------------------------------------------------------ 2 2 + 1, x0 - y0 + 2y0 - 1, (y0 - 1)x1 + (x0 + 2y0 - 2)y1, x0*x1 + (- y0 + ------------------------------------------------------------------------ 2 2 1)y1, (y0 - 1)x2 + (x0 + 2y0 - 2)y2 - 3x1 - 5x1*y1 - 2y1 , x0*x2 + (- ------------------------------------------------------------------------ 2 2 3 2 y0 + 1)y2 + 2x1 + 3x1*y1 + y1 , y0 - 3y0 + 3y0 - 1), ideal (x0, x1, ------------------------------------------------------------------------ x2), ideal (x0 + y0 - 1, x1 + y1, x2 + y2)} o4 : List i5 : any(P,c -> c == PC) o5 = false i6 : PC == intersect(select(P,c -> degree c == 1)) o6 = true

## Caveat

This function requires computation of a singular locus, a saturation (or quotient), and jets, with each step being potentially quite time consuming.

## Ways to use principalComponent :

• "principalComponent(ZZ,Ideal)"

## For the programmer

The object principalComponent is .