- $d(x)$ é mônico;
- $d(x)\mid f(x)$ e $d(x)\mid g(x)$;
- se $c(x)\in\F[x]$ tal que $c(x)\mid f(x)$ e $c(x)\mid g(x)$, então $c(x)\mid d(x)$.
- Se o maior divisor comum de $f(x)$ e $g(x)$ existe, então ele é único.
- Se existe o maior divisor comum de $f(x)$ e $g(x)$ e $\alpha,\beta\in\F\setminus\{0\}$, então existe o maior divisor comum de $\alpha f(x)$ e $\beta g(x)$ e é igual a maior divisor comum de $f(x)$ e $g(x)$.
- Se $f(x)\neq 0$ e $g(x)=0$, então o maior divisor comum de $f(x)$ e $g(x)$ é $(1/\alpha)f(x)$ onde $\alpha\in\F$ é o coeficiente líder de $f(x)$.
(2)-(3) Exercício.
A primeira afirmação no lema anterior diz que o maior divisor comum, quando existir, é único. Este fato nos permute escrever o maior divisor comum de dois polinômios $f(x),g(x)\in\F[x]$ como $\mdc{f(x)}{g(x)}$. Neste momento não sabemos que o mdc de fato existe, mas provaremos isso usando o mesmo argumento que foi aplicado no caso de números inteiros.
\[
\mdc{f(x)}{g(x)}=\mdc{g(x)}{f(x)+h(x)g(x)}.
\]
\[
c(x)\mid (f(x)+h(x)g(x))-h(x)g(x)=f(x);
\]
ou seja $c(x)\mid f(x)$ e $c(x)\mid g(x)$. Como $d(x)=\mdc{f(x)}{g(x)}$ temos que $c(x)\mid d(x)$. Então temos que $d(x)=\mdc{g(x)}{f(x)+h(x)g(x)}$.
Para provar a volta, só observe que $f(x)=(f(x)+h(x)g(x))-h(x)g(x)$ e aplique a afirmação da ida para $f_1(x)=g(x)$, $g_1(x)=f(x)+h(x)g(x)$ e $h_1(x)=-h(x)$.
Usaremos o lema anterior em combinação com o Teorema de Divisão para Polinômios.
\[
\mdc{f(x)}{g(x)}=\mdc{g(x)}{r(x)}.
\]
O resultado anterior implica que o mdc de dois polinômios pode ser calculado similarmente ao mdc de dois números inteiros usando o algoritmo de Euclides. O algoritmo funciona na mesma maneira como funcionou para números inteiros. Repetimos a divisão de Euclides até o resto fica igual a zero. O processo termina depois de um número finito de passos, pois a grau do resto se diminui em cada passo executado. Se $r(x)$ é o último resto não nulo, então $\alpha^{-1}r(x)$ é o mdc de $f(x)$ e $g(x)$ onde $\alpha$ é o coeficiente líder de $r(x)$. A multiplicação por $\alpha^{-1}$ é necessário, pois o mdc é um polinômio mônico.
O código do procedimento em Python é o seguinte.
from sympy.polys.polytools import LC
def MDC(a,b):
while b != 0:
a, b = b, a % b
return a//LC(a)
\[
u(x)f(x)+v(x)g(x)=\mdc{f(x)}{g(x)}.
\]
O Algoritmo Extendido de Euclides que devolve o mdc e os dois polinômios $u(x)$ e $v(x)$ no resultado anterior funciona na mesma forma
from sympy.polys.polytools import LC
def XMDC(a,b):
prevu, u = 1, 0; prevv, v = 0, 1
while b != 0:
q = a//b
u, prevu = prevu - q*u, u
v, prevv = prevv - q*v, v
a, b = b, a % b
c = LC(a)
return a//c, prevu//c, prevv//c
\[
u(x)f(x)+v(x)g(x)=1.
\]
\[
f(x)=q_1(x)g(x)+r_1(x)=x^2g(x)+(-x^2+x-1).
\]
Depois
\[
g(x)=q_2(x)r_1(x)+r_2(x)=(-x^2-x)r_1(x)+(-x-1).
\]
No próximo passo, obtemos
\[
r_1(x)=q_3(x)r_2(x)+r_3(x)=(x-2)r_2(x)+(-3).
\]
Finalmente,
\[
r_2(x)=q_4(x)r_3(x)+r_4(x)=(1/3x+1/3)r_3(x)+0.
\]
O último resto não nulo foi $-3$ (considerando como um polinômio de grau zero). Como o mdc precisa ser um polinômio mônico,
$$
\mbox{mdc}(f(x),g(x))=1.
$$
Em particular, $f(x)$ e $g(x)$ são primos entre si.
A computação pode ser usada também para obter que
\begin{align*}
-3&=r_3(x)=r_1(x)-q_3(x)r_2(x)\\&=f(x)-q_1(x)g(x)-q_3(x)(g(x)-q_2(x)r_1(x))\\
&=f(x)-q_1(x)g(x)-q_3(x)(g(x)-q_2(x)(f(x)-q_1(x)g(x)))\\
&=(1+q_2(x)q_3(x))f(x)+(-q_1(x)-q_3(x)-q_1(x)q_2(x)q_3(x))g(x).
\end{align*}
Calculando os coeficientes explicitamente, obtemos que
\[
-3 = (-x^3+x^2+2x+1)f(x)+(x^5-x^4-2x^3-x^2-x+2)g(x)
\]
e que
\begin{align*}
&\mdc{f(x)}{g(x)}=1 \\&= \frac 13(x^3-x^2-2x-1)f(x)-\frac 13(x^5-x^4-2x^3-x^2-x+2)g(x)
\end{align*}