17  Dependência algébrica de polinômios

Neste projeto vamos estudar uma aplicação simples das bases de Groebner.

17.1 Dependência algêbrica

Assuma que \(f_1,\ldots,f_k\) são polinômios em um anel \(\mathbb F[x_1,\ldots,x_n]\) de polinômios sobre um corpo \(\mathbb F\). Dizemos que \(f_1,\ldots,f_k\) são algebricamente dependentes se existir um polinômio \(h\in\mathbb F[t_1,\ldots,t_k]\) tal que \[ h(f_1,\ldots,f_k)=0. \] Um polinômio \(f\in\mathbb F[x_1,\ldots,x_n]\) pertence à álgebra \(\mathbb F[f_1,\ldots,f_k]\) gerada por \(f_1,\ldots,f_k\) se existir um polinômio \(h\in\mathbb F[t_1,\ldots,t_k]\) tal que \[ f=h(f_1,\ldots,f_k). \] Note que \(f\in\mathbb F[f_1,\ldots,f_k]\) implica que \(f,f_1,\ldots,f_k\) são algebricamente dependentes.

17.2 Exploração interativa

Considere por exemplo os seguintes polinômios em \(\mathbb Q[y_0,y_1,y_2,y_3]\): \[\begin{align*} f_1&=y_0;\\ f_2&=2y_0y_2-y_1^2;\\ f_3&=3y_0^2y_3-3y_0y_1y_2+y_1^3\\ f_4&=-3y_1^2y_2^2+8y_0y_2^3+6y_1^3y_3-18y_0y_1y_2y_3+9y_0^2y_3^2. \end{align*}\]

Vamos verificar que estes polinômios são algebricamente dependentes. Primeiro, vamos construir a álgebra de polinômios.

gap> y0 := Indeterminate( Rationals, "y0" );
y0
gap> y1 := Indeterminate( Rationals, "y1" );
y1
gap> y2 := Indeterminate( Rationals, "y2" );
y2
gap> y3 := Indeterminate( Rationals, "y3" );
y3
gap> P := PolynomialRing( Rationals, [y0,y1,y2,y3] );
Rationals[y0,y1,y2,y3]

Ora, vamos construir os polinômios.

gap> f1 := y0;
y0
gap> f2 := 2*y0*y2-y1^2;
2*y0*y2-y1^2
gap> f3 := 3*y0^2*y3-3*y0*y1*y2+y1^3;
3*y0^2*y3-3*y0*y1*y2+y1^3
gap> f4 := -3*y1^2*y2^2+8*y0*y2^3+6*y1^3*y3-18*y0*y1*y2*y3+9*y0^2*y3^2;
9*y0^2*y3^2-18*y0*y1*y2*y3+8*y0*y2^3+6*y1^3*y3-3*y1^2*y2^2

O truque é introduzir novas variáveis, \(t_1\), \(t_2\), \(t_3\), \(t_4\) (uma para cada polinômio no sistema) e computar uma base de Groebner para o ideal \[ (t_1-f_1,t_2-f_2,t_3-f_3,t_4-f_4). \]

gap> t1 := Indeterminate( Rationals, "t1" );
t1
gap> t2 := Indeterminate( Rationals, "t2" );
t2
gap> t3 := Indeterminate( Rationals, "t3" );
t3
gap> t4 := Indeterminate( Rationals, "t4" );
t4
gap> P1 := PolynomialRing( Rationals, [y0,y1,y2,y3,t1,t2,t3,t4] );
Rationals[y0,y1,y2,y3,t1,t2,t3,t4]
gap> I := Ideal( P1, [t1-f1,t2-f2,t3-f3,t4-f4] );
<two-sided ideal in Rationals[y0,y1,y2,y3,t1,t2,t3,t4], (4 generators)>
gap> G := GroebnerBasis( I, MonomialLexOrdering );
[ t1^2*t4-t2^3-t3^2, y2^3*t2^3-9/2*y3^2*t1*t2^3+y2^3*t3^2+3/2*y2^2*t1*t2*t4-9/2*y3^2*t1*t3^2+3*y3*t1*t3*t4-1/2*t1*t4^2, y2^3*t1-9/2*y3^2*t1^2+3/2*y2^2*t2+3*y3*t3-1/2*t4, 
  y1*y3*t2^3-2/3*y2^2*t2^3+y1*y3*t3^2-2/3*y2^2*t3^2-1/3*y2*t1*t2*t4-1/3*y1*t3*t4+1/3*t2^2*t4, y1*y3*t1^2-2/3*y2^2*t1^2-1/3*y2*t1*t2-1/3*y1*t3+1/3*t2^2, 
  3*y1*y3*t1*t2-2*y2^2*t1*t2+y1*y2*t3-y2*t2^2-3*y3*t1*t3+t1*t4, y1*y2*t2^2-3*y1*y3*t1*t3+2*y2^2*t1*t3-3*y3*t1*t2^2+y1*t1*t4+y2*t2*t3, y1*y2*t1-3*y3*t1^2+y1*t2+t3, 
  y1*y2^2*t2-3*y2*y3*t1*t2+3*y1*y3*t3-2*y2^2*t3+3*y3*t2^2-y1*t4, y1^2-2*y2*t1+t2, y0-t1 ]

Note que G[1] é um polinômio nas variáveis \(t_1,t_2,t_3,t_4\) apenas. Este polinômio expressa a dependência algébrica entre \(f_1,f_2,f_3,f_4\).

gap> h := G[1];
t1^2*t4-t2^3-t3^2
gap> Value( h, [t1,t2,t3,t4], [f1,f2,f3,f4] );
0

Quando a base de Groebner tem muitos polinômios, conseguimos achar o polinômio certo usando a seguinte instrução:

gap> Filtered( G, x-> DegreeIndeterminate( x, y0 ) = 0 and DegreeIndeterminate( x, y1 ) = 0 and DegreeIndeterminate( x, y2 ) = 0 and DegreeIndeterminate( x, y3 ) = 0 );
[ t1^2*t4-t2^3-t3^2 ]

17.3 A teoria atrás da computação anterior

A computação anterior está baseada no seguinte teorema.

Teorema 17.1 Usando a notação da Seção 17.1, seja \(\mathcal G\) uma base de Groebner do ideal \[ I=(t_1-f_1,\ldots,t_k-f_k) \] relativa a uma ordem monomial na qual \(x_1>x_2\cdots>x_n>t_1>\cdots>t_k\). As seguintes afirmações são verdadeiras.

  1. \(f_1,\ldots,f_k\) são algebricamente dependentes se e somente se existe \(h\in\mathcal G\cap \mathbb F[t_1,\ldots,t_k]\). Neste caso, \(h(f_1,\ldots,f_k)=0\).
  2. \(f_1\in\mathbb F[f_2,\ldots,f_k]\) se e somente se \(\mathcal G\) possui um elemento na forma \(h=t_1-h_1\) onde \(h_1\in \mathbb F[t_2,\ldots,t_k]\). Neste caso, \(f=h_1(f_2,\ldots,f_k)\).

A demonstração do Teorema não é muito difícil, ela dependa da Fórmula de Taylor para polinômios multivariáveis sobre anel arbitrário.

17.4 Tarefa 1

  1. Sejam \(f_1\), \(f_2\), \(f_3\) como na Seção 17.2, e seja agora \[ f_4=2y_0y_4-2y_1y_3+y_2^2 \] e \[ f_5=2y_2^3-6y_1y_2y_3+9y_0y_3^2+6y_1^2y_4-12y_0y_2y_4. \] Ache uma dependência algébrica entre \(f_1,f_2,f_3,f_4,f_5\).
  2. Verifique se o polinômio \[ f=-3y_0^2y_3+2y_0^2y_4+3y_0y_1y_2-2y_0y_1y_3+y_0y_2^2-y_1^3 \] está contido na subálgebra \(\mathbb Q[f_1,f_2,f_3,f_4]\). Se sim escreva \(f\) na forma \(h(f_1,f_2,f_3,f_4)\).

Se a computação demorar moito tempo, pode parar com Ctrl-C e expermimentar com MonomialGrlexOrdering em vez de MonomialLexOrdering.

17.5 Tarefa 2

  1. Escreva uma função is_alg_dependent( list ) que devolve um polinômio h tal que \(h(f_1,\ldots,f_k)=0\) com \(f_1,\ldots,f_k\) sendo os elmenentos na lista list. Se os polinômios da lista são algebricamente dependentes, a função deve devolver um polinômio não nulo. Caso contrário, a função deve devolver o polinômio nulo.
  2. Escreva uma função is_member_of_subalgebra( f, list ) que decide se \(f\) é membro da subálgebra gerada pelos polinômios em list. Caso afirmativo, a função deve devolver um polinômio \(h\) tal que \(f=h(f_1,\ldots,f_k)\) onde \(f_1,\ldots,f_k\) são os elementos de list. Caso contrário, a função deve devolver fail.