\documentclass{article}
\usepackage{amssymb}
\newcommand{\salto}{{\null\hskip 0.7cm}}

\begin{document}

\begin{center}
\textbf{Algoritmo di divisione}
\end{center}

\noindent
\texttt{Input:} $m, \quad g_1, \dots, g_s$;\\
\texttt{Output:} $(q_1, \dots, q_s) \in P^s, \quad p \in P^r$ tali che
$m = q_1g_1 + \cdots + q_sg_s + p$;

\medskip
\noindent
$v := m; \quad q_1 :=0, \dots, q_s := 0, \quad p :=0$\\
\texttt{while} $v \not = 0 $ \texttt{do} \\
\salto \texttt{while} (esiste $i \in \{1, \dots, s\}$ 
tale che $\textrm{LM}(v)$  \`e multiplo di $\textrm{LM}(g_i)$) \texttt{do}\\
\salto \salto scegli $i$ minimo;\\
\salto \salto $q_i := q_i + \frac{\textrm{LM}(v)}{\textrm{LM}(g_i)}$;\\
\salto \salto $v := v -\frac{\textrm{LM}(v)}{\textrm{LM}(g_i)}g_i$;\\
\salto \texttt{end while};\\
\salto $p := p + \texttt{LM}(v)$;\\
\salto $v := v - \texttt{LM}(v)$;\\
\texttt{end while};\\
\texttt{return} $(q_1, \dots, q_s), \quad p$.
\bigskip

\noindent
\textbf{Esempio:} Anello dei polinomi $\mathbb Q[x,y]$ ordinamento 
\texttt{Lex}. 
\begin{eqnarray}
m &:=&
2\,{x}^{6}y+{x}^{4}{y}^{2}-2\,{x}^{3}y+{x}^{2}{y}^{3}+2\,x{y}^{3}
+x{y}^{2}-4\,xy+4\,x+1 \nonumber\\
g_1 &:= & x^3y-y; \nonumber \\
g_2 &:= & xy^2-xy \nonumber
\end{eqnarray}
I polinomi scritti sono ordinati rispetto a \texttt{Lex}. 

\noindent
Esecuzione algoritmo: 
\begin{eqnarray}
v &:=&
2\,{x}^{6}y+{x}^{4}{y}^{2}-2\,{x}^{3}y+{x}^{2}{y}^{3}+2\,x{y}^{3}
+x{y}^{2}-4\,xy+4\,x+1; \nonumber\\
q_1 &:= & 0; \quad q_2 \ \ :=\ \  0; \nonumber \\
p &:= & 0; \nonumber
\end{eqnarray}
$\texttt{LM}(v) = 2\,{x}^{6}y$ \`e multiplo di $\texttt{LM}(g_1)= x^3y$, 
quindi:
\begin{eqnarray}
i &:=& 1; \nonumber \\
q_1 & := & 2x^3 \nonumber \\
v & := & {x}^{4}{y}^{2}+{x}^{2}{y}^{3}+2\,x{y}^{3}+x{y}^{2}-4\,xy+4\,x+1 
\nonumber
\end{eqnarray}
Ora $\texttt{LM}(v) = {x}^{4}{y}^{2}$ \`e multiplo sia di 
$\texttt{LM}(g_1)= x^3y$, sia di $\texttt{LM}(g_2) = xy^2$, scegliamo 
$i$ minimo, quindi:
\begin{eqnarray}
i &:= & 1; \nonumber \\
q_1 &:=& 2x^3 + xy; \nonumber \\
v & := & {x}^{2}{y}^{3}+2\,x{y}^{3}+2\,x{y}^{2}-4\,xy+4\,x+1. \nonumber
\end{eqnarray}
Ora $\texttt{LM}(v) = x^2y^3$, quindi va ridotto con $g_2$:
\begin{eqnarray}
i &:=& 2; \nonumber \\
q_2 &:=& xy; \nonumber \\
v & := & {x}^{2}{y}^{2}+2\,x{y}^{3}+2\,x{y}^{2}-4\,xy+4\,x+1. \nonumber
\end{eqnarray}
Ora $\texttt{LM}(v) = x^2y^2$, quindi $v$ va ridotto con $g_2$:
\begin{eqnarray}
i &:=& 2; \nonumber \\
q_2 &:=& xy+x; \nonumber \\
v & := & {x}^{2}y+2\,x{y}^{3}+2\,x{y}^{2}-4\,xy+4\,x+1 \nonumber
\end{eqnarray}
A questo punto $\texttt{LM}(v)$ non \`e pi\`u multiplo n\'e di 
$\texttt{LM}(g_1)$ n\'e di $\texttt{LM}(g_2)$, quindi si esce dal 
ciclo pi\`u interno dell'algoritmo e si procede riassegnando $v$ e $p$:
\begin{eqnarray}
p &:=& x^2y; \nonumber \\
v &:=& 2\,x{y}^{3}+2\,x{y}^{2}-4\,xy+4\,x+1 \nonumber 
\end{eqnarray}
Ora $\texttt{LM}(v) = 2xy^3$ \`e nuovamente multiplo del $\texttt{LM}(g_2)$, 
quindi si rientra nel ciclo pi\`u interno dell'algoritmo (che si 
esegue due volte): 
\begin{eqnarray}
i &:= & 2; \nonumber \\
q_2 &:=& xy + x + 2y; \nonumber\\
v &:=& 4xy^2 - 4 xy + 4x + 1. \nonumber 
\end{eqnarray}
e ancora: 
\begin{eqnarray}
i &:= & 2; \nonumber \\
q_2 &:=& xy + x + 2y + 4; \nonumber\\
v &:=& 4x + 1. \nonumber 
\end{eqnarray}
Si esce ora dal ciclo pi\`u interno e si eseguono le istruzioni: 
\begin{eqnarray}
p &:=& x^2y + 4x; \nonumber \\
v & := & 1 \nonumber
\end{eqnarray}
e infine: 
\begin{eqnarray}
p & := & x^2y + 4x + 1; \nonumber \\
v & := & 0; \nonumber
\end{eqnarray}

\noindent
La risposta dell'algoritmo \`e pertanto:
\begin{eqnarray}
q_1 &:=& 2x^3+xy;\nonumber \\
q_2 &:=& xy +x + 2y + 4; \nonumber \\
p &:=& x^2y+4x+1. \nonumber
\end{eqnarray}

\end{document}
