feat: aggiunge gli articoli dal vecchio sito di Poisson

main
commit b36db2de4e

@ -0,0 +1,418 @@
\documentclass[a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[italian]{babel}
\usepackage{amsfonts}
\usepackage{amsthm}
\usepackage{amssymb}
\usepackage{amsopn}
\usepackage{mathtools}
\usepackage{marvosym}
\usepackage{xpatch}
\usepackage[colorlinks=false,bookmarksopen=true]{hyperref}
\usepackage{bookmark}
\newcommand{\dual}[1]{#1^{*}}
\title{Anelli, ideali e quozienti}
\author{Gabriel Antonio Videtta}
\date{\today}
\DeclareMathOperator{\tr}{tr}
\DeclareMathOperator{\Ker}{Ker}
\DeclareMathOperator{\Imm}{Imm}
\setlength\parindent{0pt}
\let\oldforall\forall
\let\forall\undefined
\DeclareMathOperator{\forall}{\oldforall}
\let\oldexists\exists
\let\exists\undefined
\DeclareMathOperator{\exists}{\oldexists}
\let\oldnexists\nexists
\let\nexists\undefined
\DeclareMathOperator{\nexists}{\oldnexists}
\let\oldland\land
\let\land\undefined
\DeclareMathOperator{\land}{\oldland}
\let\oldlor\lor
\let\lor\undefined
\DeclareMathOperator{\lor}{\oldlor}
\let\oldlnot\lnot
\let\lnot\undefined
\DeclareMathOperator{\lnot}{\oldlnot}
\let\oldcirc\circ
\let\circ\undefined
\DeclareMathOperator{\circ}{\oldcirc}
\DeclareMathOperator{\existsone}{\exists !}
\let\oldemptyset\emptyset
\let\emptyset\varnothing
\begin{document}
\maketitle
\newcommand{\nsg}{\mathrel{\unlhd}}
\newcommand{\BB}{\mathcal{B}}
\newcommand{\CC}{\mathbb{C}}
\newcommand{\FF}{\mathbb{F}_2}
\newcommand{\HH}{\mathbb{H}}
\newcommand{\NN}{\mathbb{N}}
\newcommand{\ZZ}{\mathbb{Z}}
\newcommand{\QQ}{\mathbb{Q}}
\newcommand{\RR}{\mathbb{R}}
\newcommand{\KK}{\mathbb{K}}
\newcommand{\LL}[2]{\mathcal{L} \left(#1, \, #2\right)}
\newcommand{\ii}{\mathbf{i}}
\newcommand{\jj}{\mathbf{j}}
\newcommand{\kk}{\mathbf{k}}
\newcommand{\MM}[2]{\mathcal{M}_{#1 \times #2}\left(\KK\right)}
\newcommand{\M}[1]{\mathcal{M}_{#1}\left(\KK\right)}
\newcommand{\Mbb}[3]{\mathcal{M}^{#1}_{#2} \left( #3 \right)}
\newcommand{\Mb}[2]{\mathcal{M}^{#1}_{#2}}
\theoremstyle{definition}
\newtheorem{definition}{Definizione}[section]
\renewcommand{\vec}[1]{\underline{#1}}
\newtheorem{example}{Esempio}[section]
\newtheorem{exercise}{Esercizio}[section]
\newtheorem{theorem}{Teorema}[section]
\newtheorem{proposition}{Proposizione}[section]
\newtheorem{corollary}{Corollario}[section]
\newtheorem*{note}{Osservazione}
\tableofcontents
\section{Anelli e prime proprietà}
\begin{definition}
Si definisce \textbf{anello}\footnote{In realtà, si parla in questo caso di anello \textit{con unità}, in cui vale l'assioma di esistenza di un'identità
moltiplicativa. In questo documento si identificherà con "anello" solamente un anello con unità.} una struttura algebrica
costruita su un insieme $A$ e due operazioni binarie $+$
e $\cdot$\footnote{D'ora in avanti il punto verrà omesso.} avente le seguenti proprietà:
\begin{itemize}
\item $\left(A,\, +\right)$ è un \textit{gruppo abeliano}, alla cui
identità, detta \textit{identità additiva}, ci si riferisce con il simbolo $0$,
\item $\forall a, b, c \in A$, $(ab)c = a(bc)$,
\item $\forall a, b, c \in A$, $(a+b)c=ac+bc$,
\item $\forall a, b, c \in A$, $a(b+c)=ab+ac$,
\item $\exists 1 \in A \mid \forall a \in A$, $1a=a=a1$, e tale $1$ viene
detto \textit{identità moltiplicativa}.
\end{itemize}
\end{definition}
Come accade per i gruppi, gli anelli soddisfano alcune proprietà algebriche
particolari, tra le quali si citano le più importanti:
\begin{proposition}
$\forall a \in A$, $0a=0=a0$.
\end{proposition}
\begin{proof}
$0a=(0+0)a=0a+0a \implies 0a=0$. Analogamente $a0=a(0+0)=a0+a0 \implies a0=0$.
\end{proof}
\begin{proposition}
$\forall a \in A$, $-(-a)=a$.
\end{proposition}
\begin{proof}
$-(-a)-a=0 \,\land\, a-a=0 \implies -(-a)=a$, per la proprietà di unicità
dell'inverso in un gruppo\footnote{In questo caso, il gruppo additivo dell'anello.}.
\end{proof}
\begin{proposition}
\label{prop:inverso_inverso}
$a(-b)=(-a)b=-(ab)$.
\end{proposition}
\begin{proof}
$a(-b)+ab=a(b-b)=a0=0 \implies a(-b)=-(ab)$, per la proprietà di unicità dell'inverso in un gruppo. Analogamente $(-a)b+ab=(a-a)b=0b=0 \implies
(-a)b=-(ab)$.
\end{proof}
\begin{corollary}
$(-1)a=a(-1)=-a$.
\end{corollary}
\begin{proposition}
$(-a)(-b)=ab$.
\end{proposition}
\begin{proof}
$(-a)(-b)=-(a(-b))=-(-(ab))=ab$, per la \textit{Proposizione \ref{prop:inverso_inverso}}.
\end{proof}
Si enuncia invece adesso la nozione di \textbf{sottoanello}, in tutto e per
tutto analoga a quella di \textit{sottogruppo}.
\begin{definition}
Si definisce sottoanello rispetto all'anello $A$ un anello $B$ avente le
seguenti proprietà:
\begin{itemize}
\item $B \subseteq A$,
\item $0, 1 \in B$,
\item $\forall a, b \in B,$ $a + b \in B \,\land\, ab \in B$.
\end{itemize}
\end{definition}
\begin{definition}
Un sottoanello $B$ rispetto ad $A$ si dice \textbf{proprio} se
$B \neq A$.
\end{definition}
\begin{definition}
Un anello si dice \textbf{commutativo} se $\forall a$, $b \in A$, $ab=ba$.
\end{definition}
\begin{example}
Un facile esempio di anello commutativo è $\ZZ/n\ZZ$.
\end{example}
\begin{definition}
Un elemento $a$ di un anello $A$ si dice \textbf{invertibile} se
$\exists b \in A \mid ab = ba = 1$.
\end{definition}
\begin{definition}
Dato un anello $A$, si definisce $A^*$ come l'insieme degli elementi
invertibili di $A$, che a sua volta forma un \textit{gruppo moltiplicativo}.
\end{definition}
\begin{definition}
Un anello $A$ si dice \textbf{corpo} se $\forall a \neq 0 \in A$, $\exists b \in A \mid ab=ba=1$,
ossia se $A \setminus \{0\} = A^*$.
\end{definition}
\begin{example}
L'esempio più rilevante di corpo è quello dei \textit{quaternioni} $\HH$, definiti
nel seguente modo:
\[\HH = \{a+b\ii+c\jj+d\kk \mid a,\, b,\, c,\, d \in \RR\},\]
dove:
\[\ii^2 = \jj^2 = \kk^2 = -1, \quad \ii\jj = \kk,\, \jj\kk = \ii,\, \kk\ii = \jj. \]
Infatti ogni elemento non nullo di $\HH$ possiede un inverso moltiplicativo:
\[\left(a+b\ii+c\jj+d\kk\right)^{-1} = \frac{a-b\ii-c\jj-d\kk}{a^2+b^2+c^2+d^2},\]
mentre la moltiplicazione non è commutativa.
\end{example}
\begin{definition}
Un anello commutativo che è anche un corpo si dice \textbf{campo}.
\end{definition}
\begin{example}
Alcuni campi, tra i più importanti, sono $\QQ$, $\RR$, $\CC$ e $\ZZ/p\ZZ$ con
$p$ primo.
\end{example}
\begin{definition}
Un elemento $a \neq 0$ appartenente a un anello $A$ si dice \textbf{divisore di zero} se
$\exists b \neq 0 \in A \mid ab = 0$ o $ba = 0$.
\end{definition}
\begin{example}
$2$ è un divisore di zero in $\ZZ/6\ZZ$, infatti $2 \cdot 3 \equiv 0 \pmod 6.$
\end{example}
\begin{definition}
Un anello commutativo in cui non sono presenti divisori di zero si dice \textbf{dominio d'integrità},
o più semplicemente \textit{dominio}.
\end{definition}
\begin{proposition}[\textit{Legge di annullamento del prodotto}]
Sia $D$ un dominio. Allora $ab=0 \implies a=0 \,\lor\, b=0$.
\end{proposition}
\begin{proof}
Siano $a$, $b \in D \mid ab = 0$. Se $a=0$, la condizione è soddisfatta.
Se invece $a \neq 0$, $b$ deve essere per forza nullo, altrimenti si
sarebbe trovato un divisore di $0$, e $D$ non sarebbe un dominio, \Lightning.
\end{proof}
\begin{example}
L'anello dei polinomi su un campo, $\KK[x]$, è un dominio.
\end{example}
\section{Omomorfismi di anelli e ideali}
\begin{definition}
Un \textbf{omomorfismo di anelli}\footnote{La specificazione "di anelli" è d'ora in avanti omessa.} è una mappa $\phi : A \to B$ -- con
$A$ e $B$ anelli -- soddisfacente alcune particolari proprietà:
\begin{itemize}
\item $\phi$ è un \textit{omomorfismo di gruppi} rispetto all'addizione
di $A$ e di $B$, ossia $\forall a, b \in A, \, \phi(a+b)=\phi(a)+\phi(b)$,
\item $\phi(ab)=\phi(a)\phi(b)$,
\item $\phi(1_A)=1_B$.
\end{itemize}
\end{definition}
\begin{definition}
Se $\phi : A \to B$ è un omomorfismo iniettivo, si dice che
$\phi$ è un \textbf{monomorfismo}.
\end{definition}
\begin{definition}
Se $\phi : A \to B$ è un omomorfismo suriettivo, si dice che
$\phi$ è un \textbf{epimorfismo}.
\end{definition}
\begin{definition}
Se $\phi : A \to B$ è un omomorfismo bigettivo\footnote{Ovvero se è sia un monomorfismo che un epimorfismo.}, si dice che
$\phi$ è un \textbf{isomorfismo}.
\end{definition}
Prima di enunciare l'analogo del \textit{Primo teorema d'isomorfismo} dei gruppi
in relazione agli anelli, si rifletta su un esempio di omomorfismo:
\begin{example}
Sia $\phi : \ZZ \to \ZZ, k \mapsto 2k$ un omomorfismo. Esso è un monomorfismo,
infatti $\phi(x)=\phi(y) \implies 2x=2y \implies x=y$. Pertanto $\Ker \phi = \{0\}$. Sebbene $\Ker \phi < \ZZ$, esso \textbf{non è un sottoanello}\footnote{Infatti $1 \notin \Ker \phi$.}.
\end{example}
Dunque, con lo scopo di definire meglio le proprietà di un \textit{kernel},
così come si introdotto il concetto di \textit{sottogruppo normale} per i gruppi, si introduce ora il concetto di \textbf{ideale}.
\begin{definition}
Si definisce ideale rispetto all'anello $A$ un insieme $I$ avente le seguenti proprietà:
\begin{itemize}
\item $I \leq A$,
\item $\forall a \in A$, $\forall b \in I$, $ab \in I$ e $ba \in I$.
\end{itemize}
\end{definition}
\begin{example}
\label{exmpl:polinomi}
Sia $I$ l'insieme dei polinomi di $\RR[x]$ tali che $2$ ne sia radice. Esso
altro non è che un ideale, infatti $0 \in I \,\land\, \forall f(x), g(x) \in I, (f+g)(2)=0$ (i.e. $I<\RR[x]$) e $\forall f(x) \in A, \, g(x) \in I, \, (fg)(2) = 0$.
\end{example}
\begin{proposition}
Sia $I$ un ideale di $A$. $1 \in I \implies I = A$.
\end{proposition}
\begin{proof}
Per le proprietà dell'ideale $I$, $\forall a \in A$, $a1 = a \in I \implies
A \subseteq I$. Dal momento che anche $I \subseteq A$, si deduce che $I = A$.
\end{proof}
\begin{proposition}
Sia $\phi : A \to B$ un omomorfismo. $\Ker \phi$ è allora un ideale di $A$.
\end{proposition}
\begin{proof}
Poiché $\phi$ è anche un omomorfismo tra gruppi, si deduce che $\Ker \phi \leq A$.
Inoltre $\forall a \in A$, $\forall b \in \Ker \phi$, $\phi(ab)=\phi(a)\phi(b)=\phi(a)0=0 \implies ab \in I$.
\end{proof}
\begin{proposition}
Sia $\phi : A \to B$ un omomorfismo. $\Imm \phi$ è allora un sottoanello di $B$.
\end{proposition}
\begin{proof}
Chiaramente $0, 1 \in \Imm \phi$, dal momento che $\phi(0) = 0,\, \phi(1)=1$. Inoltre, dalla teoria dei gruppi, si ricorda anche che $\Imm \phi \leq B$.
Infine, $\forall \phi(a),\, \phi(b) \in \Imm \phi, \, \phi(a)\phi(b) = \phi(ab) \in \Imm \phi$.
\end{proof}
\begin{definition}
Si definisce con la notazione $(a)$ l'ideale \textit{bilatero} generato da $a$ in $A$, ossia:
\[(a)=\{ba \mid b \in A\} \cup \{ab \mid b \in A\}.\]
\end{definition}
\begin{definition}
Si dice che un ideale $I$ è \textit{principale} o \textbf{monogenerato}, quando $\exists a \in I \mid I = (a)$.
\end{definition}
\begin{example}
In relazione all'\textit{Esempio \ref{exmpl:polinomi}}, l'ideale $I$ è
monogenerato\footnote{Non è un caso: $\RR[x]$, in quanto anello euclideo, si dimostra essere un PID (\textit{principal ideal domain}), ossia un dominio che ammette \textit{solo} ideali monogenerati.}. In particolare, $I=(x-2)$.
\end{example}
\section{Anelli quoziente e teorema d'isomorfismo}
Si definisce invece adesso il concetto di \textbf{anello quoziente}, in modo
completamente analogo a quello di \textit{gruppo quoziente}:
\begin{definition}
Sia $A$ un anello e $I$ un suo ideale, si definisce $A/I$ l'anello ottenuto
quozientando $A$ per $I$. Gli elementi di tale anello sono le classi di equivalenza di $\sim$ (i.e. gli elementi di $A/{\sim}$), dove $\forall a$, $b \in A$, $a\sim b \iff a-b \in I$. Tali classi di equivalenza vengono indicate come
$a + I$, dove $a$ è un rappresentante della classe. L'anello è così dotato di due operazioni:
\begin{itemize}
\item $\forall a$, $b \in A$, $(a+I)+(b+I)=(a+b)+I$,
\item $\forall a$, $b \in A$, $(a+I)(b+I)=ab+I$.
\end{itemize}
\end{definition}
\begin{note}
L'addizione di $A/I$ è ben definita, dal momento che $I \nsg A$, in quanto sottogruppo di un gruppo abeliano.
\end{note}
\begin{note}
Anche la moltiplicazione di $A/I$ è ben definita. Siano $a\sim a'$, $b \sim b'$ quattro elementi di $A$ tali che $a = a' + i_1$ e $b = b' + i_2$ con $i_1$, $i_2 \in I$. Allora $ab=(a'+i_1)(b'+i_2)=a'b' + \underbrace{i_1b' + i_2a' + i_1i_2}_{\in I} \implies ab \sim a'b'$.
\end{note}
\begin{proposition}
\label{prop:quoziente_pieno}
$A/\{0\} \cong A$.
\end{proposition}
\begin{proof}
Sia $\pi : A \to A/\{0\}$, $a \mapsto a + \{0\}$ l'omomorfismo di proiezione
al quoziente. Innanzitutto, $a \sim a' \iff a-a'=0 \iff a=a'$, per cui $\pi$ è
un monomorfismo (altrimenti si troverebbero due $a$, $b \mid a \neq b \,\land\, a \sim b$). Infine, $\pi$ è un epimorfismo, dal momento che $\forall a + \{0\} \in A/\{0\}, \, \pi(a) = a + \{0\}$. Pertanto $\pi$ è un isomorfismo.
\end{proof}
Adesso è possibile enunciare il seguente fondamentale teorema:
\begin{theorem}[\textit{Primo teorema d'isomorfismo}]
\label{th:primo_isomorfismo}
Sia $\phi : A \to B$ un omomorfismo. $A/\Ker \phi \cong \Imm \phi$.
\end{theorem}
\begin{proof}
La dimostrazione procede in modo analogo a quanto visto per il teorema correlato
in teoria dei gruppi. \\
Sia $\zeta : A/\Ker \phi \to \Imm \phi$, $a + \Ker \phi \mapsto \phi(a)$.
Si verifica che $\zeta$ è un omomorfismo: essendolo già per i
gruppi, è sufficiente verificare che $\zeta((a+I)(b+I))=\zeta(ab+I)=\phi(ab)=\phi(a)\phi(b)=\zeta(a+I)\zeta(b+I)$. \\
$\zeta$ è chiaramente anche un epimorfismo, dal momento che $\forall \phi(a) \in \Imm \phi$, $\zeta(a + \Ker \phi) = \phi(a)$. Inoltre, dal momento che $\zeta(a + \Ker \phi) = 0 \iff \phi(a) = 0 \iff a + \Ker \phi = \Ker \phi$, ossia l'identità di $A/\Ker \phi$, si deduce anche che $\zeta$ è un monomorfismo. Pertanto $\zeta$ è un isomorfismo.
\end{proof}
\begin{corollary}
Sia $\phi : A \to B$ un monomorfismo. $A \cong \Imm \phi$.
\end{corollary}
\begin{proof}
Poiché $\phi$ è un monomorfismo, $\Ker \phi = \{0\}$. Allora, per il \textit{Primo teorema di isomorfismo}, $A/\{0\} \cong \Imm \phi$. Dalla
\textit{Proposizione \ref{prop:quoziente_pieno}}, si desume che $A \cong A/\{0\}$. Allora, per la proprietà transitiva degli isomorfismi, $A \cong \Imm \phi$.
\end{proof}
\end{document}

@ -0,0 +1,830 @@
\documentclass[a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[italian]{babel}
\usepackage{amsfonts}
\usepackage{amsthm}
\usepackage{amssymb}
\usepackage{amsopn}
\usepackage{bm}
\usepackage{mathtools}
\usepackage{marvosym}
\usepackage{tikz}
\usepackage{wrapfig}
\usepackage{xpatch}
\usepackage{algorithm2e}
\usepackage{csquotes}
\usepackage{biblatex}
\addbibresource{bibliography.bib}
\usepackage[colorlinks=false,bookmarksopen=true]{hyperref}
\usepackage{bookmark}
\newcommand{\dual}[1]{#1^{*}}
\title{Anelli euclidei, PID e UFD}
\author{Gabriel Antonio Videtta}
\date{\today}
\DeclareMathOperator{\tr}{tr}
\DeclareMathOperator{\Ker}{Ker}
\DeclareMathOperator{\MCD}{MCD}
\DeclareMathOperator{\Imm}{Imm}
\setlength\parindent{0pt}
\let\oldforall\forall
\let\forall\undefined
\DeclareMathOperator{\forall}{\oldforall}
\let\oldexists\exists
\let\exists\undefined
\DeclareMathOperator{\exists}{\oldexists}
\let\oldnexists\nexists
\let\nexists\undefined
\DeclareMathOperator{\nexists}{\oldnexists}
\let\oldland\land
\let\land\undefined
\DeclareMathOperator{\land}{\oldland}
\let\oldlor\lor
\let\lor\undefined
\DeclareMathOperator{\lor}{\oldlor}
\let\oldlnot\lnot
\let\lnot\undefined
\DeclareMathOperator{\lnot}{\oldlnot}
\let\oldcirc\circ
\let\circ\undefined
\DeclareMathOperator{\circ}{\oldcirc}
\DeclareMathOperator{\existsone}{\exists !}
\let\oldemptyset\emptyset
\let\emptyset\varnothing
\begin{document}
\maketitle
\newcommand{\nsg}{\mathrel{\unlhd}}
\newcommand{\BB}{\mathcal{B}}
\newcommand{\FF}{\mathbb{F}_2}
\newcommand{\NN}{\mathbb{N}}
\newcommand{\ZZ}{\mathbb{Z}}
\newcommand{\RR}{\mathbb{R}}
\newcommand{\KK}{\mathbb{K}}
\newcommand{\LL}[2]{\mathcal{L} \left(#1, \, #2\right)}
\newcommand{\MM}[2]{\mathcal{M}_{#1 \times #2}\left(\KK\right)}
\newcommand{\M}[1]{\mathcal{M}_{#1}\left(\KK\right)}
\newcommand{\Mbb}[3]{\mathcal{M}^{#1}_{#2} \left( #3 \right)}
\newcommand{\Mb}[2]{\mathcal{M}^{#1}_{#2}}
\theoremstyle{definition}
\newtheorem{definition}{Definizione}[section]
\renewcommand{\vec}[1]{\underline{#1}}
\newtheorem{example}{Esempio}[section]
\newtheorem{exercise}{Esercizio}[section]
\newtheorem{lemma}{Lemma}[section]
\newtheorem{theorem}{Teorema}[section]
\newtheorem{proposition}{Proposizione}[section]
\newtheorem{corollary}{Corollario}[section]
\newtheorem*{note}{Osservazione}
\tableofcontents
\section{Anelli euclidei e prime proprietà}
Nel corso della storia della matematica, numerosi studiosi hanno tentato
di generalizzare -- o meglio, accomunare a più strutture algebriche -- il
concetto di divisione euclidea che era stato formulato per l'anello
dei numeri interi $\ZZ$ e, successivamente, per l'anello dei polinomi
$\KK[x]$. Lo sforzo di questi studiosi ad oggi è converso in un'unica
definizione, quella di anello euclideo, di seguito presentata.
\begin{definition}
Un \textbf{anello euclideo} è un dominio d'integrità $D$\footnote{Difatti, nella
letteratura inglese, si parla di \textit{Euclidean domain} piuttosto che di
anello.} sul quale è
definita una funzione $g$ detta \textbf{funzione grado} o \textit{norma}
soddisfacente le seguenti proprietà:
\begin{itemize}
\item $g : D \setminus \{0\} \to \NN$,
\item $\forall a$, $b \in D \setminus \{0\}$, $g(a) \leq g(ab)$,
\item $\forall a \in D$, $b \in D \setminus \{0\}$, $\exists q$, $r \in D \mid
a=bq+r$ e $r=0 \,\lor\, g(r)<g(q)$.
\end{itemize}
\end{definition}
Di seguito vengono presentate alcune definizioni, correlate
alle proprietà immediate di un anello euclideo.
\begin{definition}
Dato un anello euclideo $E$, siano $a \in E$ e $b \in E \setminus \{0\}$. Si dice che
$b \mid a$, ossia che $b$ \textit{divide} $a$, se $\exists c \in E \mid
a=bc$.
\end{definition}
\begin{note}
Si osserva che, per ogni anello euclideo $E$, qualsiasi $a \in E$ divide
$0$. Infatti, $0 = a0$.
\end{note}
\begin{proposition}
Dato un anello euclideo $E$, $a \mid b \,\land\, b \nmid a \implies g(a) < g(b)$.
\end{proposition}
\begin{proof}
Poiché $b \nmid a$, esistono $q$, $r$ tali che $a = bq + r$, con
$g(r) < g(b)$. Dal momento però che $a \mid b$, $\exists c \mid
b = ac$. Pertanto $a = ac + r \implies r = a(1-c)$. Dacché $1-c \neq 0$ --
altrimenti $r=0$, \Lightning{} --, così come $a \neq 0$, si deduce
dalle proprietà della funzione grado che $g(a) \leq g(r)$.
Combinando le due disuguaglianze, si ottiene la
tesi: $g(a) < g(b)$.
\end{proof}
\begin{proposition}
\label{prop:g1_minimo}
$g(1)$ è il minimo di $\Imm g$, ossia il minimo grado assumibile
da un elemento di un anello euclideo $E$.
\end{proposition}
\begin{proof}
Sia $a \in E \setminus \{0\}$, allora, per le proprietà della funzione
grado, $g(1) \leq g(1a) = g(a)$.
\end{proof}
\begin{theorem}
Sia $a \in E \setminus \{0\}$, allora $a \in E^* \iff g(a) = g(1)$.
\end{theorem}
\begin{proof}
Dividiamo la dimostrazione in due parti, ognuna corrispondente a una implicazione. \\
($\implies$) \;Sia $a \in E^*$, allora $\exists b \in E^*$ tale che $ab=1$. Poiché
sia $a$ che $b$ sono diversi da $0$, dalle proprietà della funzione grado si
desume che $g(a) \leq g(ab) = g(1)$. Poiché, dalla \textit{Proposizione \ref{prop:g1_minimo}},
$g(1)$ è minimo, si conclude che $g(a) = g(1)$. \\
($\;\Longleftarrow\;$) \;Sia $a \in E \setminus \{0\}$ con $g(a) = g(1)$. Allora
esistono $q$, $r$ tali che $1 = aq + r$. Vi sono due possibilità: che $r$ sia $0$, o
che $g(r) < g(a)$. Tuttavia, poiché $g(a)=g(1)$, dalla \textit{Proposizione \ref{prop:g1_minimo}} si desume che $g(a)$ è minimo, e quindi che
$r$ è nullo. Si conclude quindi che $aq = 1$, e dunque che $a \in E^*$.
\end{proof}
\section{PID e UFD}
\subsection{Irriducibili e prime definizioni}
Come accade nell'aritmetica dei numeri interi, anche in un dominio è possibile definire
una nozione di \textit{primo}. In un dominio possono essere tuttavia definiti due tipi di "primi",
gli elementi \textit{irriducibili} e gli elementi \textit{primi}.
\begin{definition}
In un dominio $A$, si dice che $a \in A \setminus A^*$ è \textbf{irriducibile} se
$\exists b$, $c \mid a=bc \implies b \in A^*$ o $c \in A^*$.
\end{definition}
\begin{note}
Dalla definizione si escludono gli invertibili di $A$ per permettere
di definire meglio il concetto di fattorizzazione in seguito. Infatti,
se li avessimo inclusi, avremmo che ogni dominio sarebbe a fattorizzazione
non unica, dal momento che $a=bc$ potrebbe essere scritto anche come
$a=1bc$.
\end{note}
\begin{definition}
In un dominio $A$, si dice che $a \in A \setminus A^*$ è \textbf{primo} se
$a \mid bc \implies a \mid b \,\lor\, a \mid c$.
\end{definition}
\begin{proposition}
Se $a \in A$ è primo, allora $a$ è anche irriducibile.
\end{proposition}
\begin{proof}
Si dimostra la tesi contronominalmente. Sia $a$ non irriducibile. Se
$a \in A^*$, allora $a$ non può essere primo. Altrimenti $a=bc$ con
$b$, $c \in A \setminus A^*$. \\
Chiaramente $a \mid bc$, ossia sé stesso. Senza perdità di generalità, se $a \mid b$, esiste $d \in A$ tale per cui
$b=ad$. Pertanto, $a=adc \implies a(1-dc)=0$. Poiché $A$ è un dominio,
uno dei due fattori deve essere nullo. $a$ non può esserlo, perché $0$ non
può dividere $b$. Tuttavia neanche $dc-1$ può essere nullo, altrimenti
si verificherebbe che $dc=1$, e quindi che $c \in A^*$, \Lightning{}.
\end{proof}
\begin{definition}
Si dice che due elementi non nulli $a$, $b$ appartenenti a un anello euclideo
$E$ sono \textbf{associati} se $a \mid b$ e $b \mid a$.
\end{definition}
\begin{proposition}
\label{prop:associati}
$a$ e $b$ sono associati $\iff \exists c \in E^* \mid a=bc$ e $a$, $b$ entrambi non nulli.
\end{proposition}
\begin{proof} Si dimostrano le due implicazioni separatamente. \\
($\implies$) Se $a$ e $b$ sono associati, allora $\exists d$, $e$ tali che $a=bd$ e che $b=ae$. Combinando le due relazioni si ottiene:
\[ a=aed \implies a(1-ed)=0.\]
Poiché $a$ è diverso da zero, si ricava che $ed=1$, ossia
che $d$, $e \in E^*$, e quindi la tesi. \\
($\;\Longleftarrow\;$) Se $a$ e $b$ sono entrambi non
nulli e $\exists c \in E^* \mid a=bc$, $b$ chiaramente
divide $a$. Inoltre, $a=bc \implies b=ac^{-1}$, e quindi
anche $a$ divide $b$. Pertanto $a$ e $b$ sono associati.
\end{proof}
\begin{proposition}
\label{prop:divisione_associati}
Siano $a$ e $b$ due associati in $E$. Allora $a \mid c \implies b \mid c$.
\end{proposition}
\begin{proof}
Poiché $a$ e $b$ sono associati, per la \textit{Proposizione \ref{prop:associati}}, $\exists d \in E^*$ tale che
$a = db$. Dal momento che $a \mid c$, $\exists \alpha \in E$ tale che
$c = \alpha a$, quindi:
\[ c = \alpha a = \alpha d b,\]
da cui la tesi.
\end{proof}
\begin{proposition}
\label{prop:associati_generatori}
Siano $a$ e $b$ due associati in $E$. Allora
$(a)=(b)$.
\end{proposition}
\begin{proof}
Poiché $a$ e $b$ sono associati, $\exists d \in E^*$ tale che $a = db$. Si dimostra l'uguaglianza dei due insiemi. \\
Sia $\alpha = ak \in (a)$, allora $\alpha = dbk$ appartiene anche a $(b)$, quindi $(a) \subseteq (b)$. Sia
invece $\beta = bk \in (b)$, allora $\beta = d^{-1}ak$
appartiene anche a $(a)$, da cui $(b) \subseteq (a)$.
Dalla doppia inclusione si verifica la tesi, $(a)=(b)$.
\end{proof}
\subsection{PID e MCD}
Come accade per $\ZZ$, in ogni anello euclideo è possibile definire il
concetto di \textit{massimo comun divisore}, sebbene con qualche accortezza
in più. Pertanto, ancor prima di definirlo, si enuncia la definizione di
PID e si dimostra un teorema fondamentale degli anelli euclidei, che
si ripresenterà in seguito come ingrediente fondamentale per la fondazione
del concetto di MCD.
\begin{definition}
Si dice che un dominio è un \textit{principal ideal domain} (\textbf{PID})\footnote{Ossia un \textit{dominio
a soli ideali principali}, quindi monogenerati, proprio come da definizione.} se ogni suo ideale è monogenerato.
\end{definition}
\begin{theorem}
Sia $E$ un anello euclideo. Allora $E$ è un PID.
\end{theorem}
\begin{proof}
Sia $I$ un ideale di $E$. Se $I = (0)$, allora $I$ è già monogenerato.
Altrimenti si consideri l'insieme $g(I \setminus \{0\})$. Poiché
$g(I \setminus \{0\}) \subseteq \NN$,
esso ammette un minimo per il principio del buon ordinamento. \\
Sia $m \in I$ un valore che assume tale minimo e sia $a \in I$.
Poiché $E$ è euclideo, $\exists q$, $r \mid a = mq + r$ con $r=0$ o
$g(r)<g(m)$. Tuttavia, poiché $r = a-mg \in I$ e $g(m)$ è minimo, necessariamente $r=0$ -- altrimenti $r$ sarebbe
ancor più minimo di $m$, \Lightning{} --,
quindi $m \mid a$, $\forall a \in I$. Quindi $I \subseteq (m)$. \\
Dal momento che per le proprietà degli ideali $\forall a \in E$, $ma \in I$,
si conclude che $(m) \subseteq I$. Quindi $I = (m)$.
\end{proof}
Adesso è possibile definire il concetto di massimo comun divisore, basandoci
sul fatto che ogni anello euclideo è un PID.
\begin{definition}
Sia $D$ un dominio e siano $a$, $b \in D$. Si definisce
\textit{massimo comun divisore} (\textbf{MCD}) di $a$ e $b$ un
generatore dell'ideale $(a,b)$.
\end{definition}
\begin{note}
Questa definizione di MCD è una buona definizione dal momento che sicuramente
esiste un generatore dell'ideale $(a,b)$, dacché $D$ è un PID.
\end{note}
\begin{note}
Non si parla di un unico massimo comun divisore, dal momento che
potrebbero esservi più generatori dell'ideale $(a,b)$. Segue tuttavia che tutti questi generatori sono in realtà
associati\footnote{Infatti ogni generatore divide ogni
altro elemento di un ideale, e così i vari generatori si
dividono tra di loro. Pertanto sono associati.}.
Quando si scriverà
$\MCD(a,b)$ s'intenderà quindi uno qualsiasi di questi associati.
\end{note}
\begin{theorem}[\textit{Identità di Bézout}]
\label{th:bezout}
Sia $d$ un MCD di $a$ e $b$. Allora
$\exists \alpha$, $\beta$ tali che $d = \alpha a + \beta b$.
\end{theorem}
\begin{proof}
Il teorema segue dalla definizione di MCD come generatore
dell'ideale $(a,b)$. Infatti, poiché $d \in (a,b)$, esistono
sicuramente, per definizione, $\alpha$ e $\beta$ tali che
$d = \alpha a + \beta b$.
\end{proof}
\begin{proposition}
\label{prop:mcd}
Siano $a$, $b \in D$. Allora vale la seguente equivalenza:
\[ d = \MCD(a, b) \iff \begin{cases} d \mid a \,\land\, d \mid b \\ \forall c \text{ t.c.\ } c \mid a \,\land\, c \mid b,\;c \mid d\end{cases}\]
\end{proposition}
\begin{proof} Si dimostrano le due implicazioni separatamente. \\
($\implies$) Poiché $d$ è generatore dell'ideale $(a, b)$, la prima proprietà segue banalmente. \\
Inoltre, per l'\nameref{th:bezout}, $\exists \alpha$, $\beta$ tali che
$d = \alpha a + \beta b$. Allora, se $c \mid a$ e $c \mid b$, sicuramente
esistono $\gamma$ e $\delta$ tali che $a=\gamma c$ e $b=\delta c$. Pertanto
si verifica la seconda proprietà, e quindi la tesi:
\[ d = \alpha a + \beta b = \alpha \gamma c + \beta \delta c = c(\alpha\gamma+\beta\delta). \]
\vskip 0.1in
($\;\Longleftarrow\;$) Sia $m = \MCD(a,b)$. Dal momento che $d$ divide
sia $a$ che $b$, $d$ deve dividere, per l'implicazione scorsa, anche $m$.
Per la seconda proprietà, $m$ divide $d$ a sua volta. Allora $d$ è un
associato di $m$, e quindi, dalla \textit{Proposizione \ref{prop:associati_generatori}}, $(m)=(d)=(a,b)$, da cui $d = \MCD(a,b)$.
\end{proof}
\begin{proposition}
\label{prop:divisione_gcd}
Se $a \mid bc$ e $d = \MCD(a, b) \in D^*$, allora $a \mid c$.
\end{proposition}
\begin{proof}
Per l'\nameref{th:bezout} $\exists \alpha$, $\beta$ tali che
$\alpha a + \beta b = d$. Allora, poiché $a \mid bc$, $\exists
\gamma$ tale che $bc=a\gamma$. Si verifica quindi la tesi:
\[ \alpha a + \beta b = d \implies \alpha ac + \beta bc = dc \implies
a d^{-1} (\alpha c + \beta \gamma) = c.\]
\end{proof}
\begin{lemma}
\label{lem:primalità_mcd}
Se $a$ è un irriducibile di un PID $D$, allora $\forall b \in D$,
$(a,b)=D \,\lor\, (a,b)=(a)$, o equivalentemente $\MCD(a,b) \in D^*$ o
$\MCD(a,b) = a$.
\end{lemma}
\begin{proof}
Dacché $\MCD(a,b) \mid a$, le uniche opzioni, dal momento che $a$ è irriducibile,
sono che $\MCD(a,b)$ sia un invertibile o che sia un associato
di $a$ stesso.
\end{proof}
\begin{theorem}
\label{th:irriducibili_primi}
Se $a$ è un irriducibile di un PID $D$, allora $a$ è anche un primo.
\end{theorem}
\begin{proof}
Siano $b$ e $c$ tali che $a \mid bc$. Per il \textit{Lemma \ref{lem:primalità_mcd}},
$\MCD(a,b)$ può essere solo un associato di $a$ o essere un invertibile. Se è
un associato di $a$, allora, per la \textit{Proposizione \ref{prop:divisione_associati}}, poiché $\MCD(a,b)$ divide $b$, anche $a$ divide $b$.
Altrimenti $\MCD(a,b) \in D^*$, e quindi, per la \textit{Proposizione \ref{prop:divisione_gcd}}, $a \mid c$.
\end{proof}
\subsection{L'algoritmo di Euclide}
Per algoritmo di Euclide si intende un algoritmo che è in grado di
produrre in un numero finito di passi un MCD tra due elementi
$a$ e $b$ non entrambi nulli di un anello euclideo\footnote{Si richiede che l'anello sia
euclideo e non soltanto che sia un PID, dal momento che l'algoritmo
usufruisce delle proprietà della funzione grado.}. L'algoritmo
classico è di seguito presentato:
\newpage
\begin{algorithm}
$e \gets \max(a,b)$\;
$d \gets \min(a,b)$\;
\BlankLine\BlankLine
\While{$d>0$}
{
$m \gets d$\;
$d \gets e \bmod d$\;
$e \gets m$\;
}
\end{algorithm}
dove $e$ è l'MCD ricercato e l'operazione $\mathrm{mod}$ restituisce un resto della
divisione euclidea\footnote{Ossia $a \bmod b$ restituisce un $r$ tale che $\exists q
\mid a = bq+r$ con $r=0$ o $g(r)<g(q)$.}.
\begin{lemma}
\label{lem:euclide_finito}
L'algoritmo di Euclide termina sempre in un numero finito di passi.
\end{lemma}
\begin{proof}
Se $d$ è pari a $0$, l'algoritmo termina immediatamente. \\
Altrimenti si può costruire una sequenza $(g(d_i))_{i\geq1}$ dove $d_i$ è il valore di $d$ all'inizio
di ogni $i$-esimo ciclo $\textbf{while}$. Ad ogni ciclo vi sono due casi: se $d_i$ si annulla dopo
l'operazione di $\mathrm{mod}$, il ciclo si conclude al passo successivo, altrimenti,
poiché $d_i$ è un resto di una divisione euclidea, segue che $g(d_i)<g(d_{i-1})$, dove
si pone $d_{0}=\min(a, b)$. \\
Per il principio della discesa infinita, $(g(d_i))_{i\geq1}$ non può essere
una sequenza infinita, essendo strettamente decrescente. Quindi la sequenza è
finita, e pertanto il ciclo $\textbf{while}$ s'interrompe dopo un numero finito
di passi.
\end{proof}
\begin{lemma}
\label{lem:generatori_euclide}
Sia $r = a \bmod b$. Allora vale che $(a,b)=(b,r)$.
\end{lemma}
\begin{proof}
Poiché $r = a \bmod b$, $\exists q$ tale che $a = qb + r$.
Siano $k_1$ e $k_2$ tali che $(k_1)=(a,b)$ e $(k_2)=(b,r)$. Dal
momento che $k_1$ divide sia $a$ che $b$, si ha che divide anche
$r$. Siano $\alpha$, $\beta$ tali che $a = \alpha k_1$ e
$b = \beta k_1$. Si verifica infatti che:
\[ r = a - qb = \alpha k_1 - q \beta k_1 = k_1 (\alpha - q \beta). \]
Poiché $k_1$ divide sia $b$ che $r$, per le proprietà del $\MCD$,
$k_1$ divide anche $k_2$. Analogamente, $k_2$ divide $k_1$. Pertanto
$k_1$ e $k_2$ sono associati, e dalla \textit{Proposizione \ref{prop:associati_generatori}} generano quindi lo stesso ideale, da
cui la tesi.
\end{proof}
\begin{theorem}
L'algoritmo di Euclide restituisce sempre correttamente un MCD tra due elementi $a$ e $b$ non entrambi nulli in un numero finito di passi.
\end{theorem}
\begin{proof}
Per il \textit{Lemma \ref{lem:euclide_finito}}, l'algoritmo sicuramente termina.
Se $d$ è pari a $0$, allora l'algoritmo termina restituendo $e$. Il valore è
corretto, dal momento che, senza perdità di generalità, se $b$ è nullo, allora
$\MCD(a, b)=a$: infatti $a$ divide sia sé stesso che $0$, e ogni divisore di $a$ è
sempre un divisore di $0$. \\
Se invece $d$ non è pari a $0$, si scelga il $d_n$ tale che $g(d_n)$ sia l'ultimo
elemento della sequenza $(g(d_i))_{i\geq1}$ definita nel \textit{Lemma \ref{lem:euclide_finito}}. Per il \textit{Lemma \ref{lem:generatori_euclide}},
si ha la seguente uguaglianza:
\[ (e_0, d_0) = (d_0, d_1) = \cdots = (d_n, 0) = (d_n). \]
\vskip 0.1in
Poiché quindi $d_n$ è generatore di $(e_0, d_0)=(a,b)$, $d_n = \MCD(a,b)$.
\end{proof}
\subsection{UFD e fattorizzazione}
Si enuncia ora la definizione fondamentale di UFD, sulla
quale costruiremo un teorema fondamentale per gli anelli
euclidei.
\begin{definition}
Si dice che un dominio $D$ è uno \textit{unique factorization domain} (\textbf{UFD})\footnote{Ossia
un \textit{dominio a fattorizzazione unica}.} se ogni $a \in D$ non nullo e non invertibile può essere scritto
in forma unica come prodotto di irriducibili, a meno di associati.
\end{definition}
\begin{lemma}
\label{lem:fattorizzazione}
Sia $E$ un anello euclideo. Allora ogni elemento $a \in E$ non nullo e
non invertibile può essere scritto come prodotto di irriducibili.
\end{lemma}
\begin{proof}
Si definisca $A$ nel seguente modo:
\[A = \{g(a) \mid a \in E \setminus (E^* \cup \{0\}) \text{ non sia prodotto di irriducibili}\}.\]
\vskip 0.1in
Se $A \neq \emptyset$, allora, poiché $A \subseteq \NN$, per il principio
del buon ordinamento, esiste un $m \in E$ tale che $g(m)$ sia minimo.
Sicuramente $m$ non è irriducibile -- altrimenti $g(m) \notin A$, \Lightning{} --,
quindi $m=ab$ con $a$, $b \in E \setminus E^*$. \\
Poiché $a \mid m$, ma $m \nmid a$ -- altrimenti $a$ e $m$ sarebbero
associati, e quindi $b$ sarebbe invertibile --, si deduce che $g(a) < g(m)$, e
quindi che $g(a) \notin A$. Allora $a$ può scriversi come prodotto di irriducibili.
Analogamente anche $b$ può scriversi come prodotto di irriducibili, e quindi
$m$, che è il prodotto di $a$ e $b$, è prodotto di irriducibili, \Lightning{}. \\
Quindi $A = \emptyset$, e ogni $a \in E$ non nullo e non invertibile è prodotto
di irriducibili.
\end{proof}
\begin{theorem}
\label{th:euclidei_ufd}
Sia $E$ un anello euclideo. Allora $E$ è un UFD\footnote{In realtà questo teorema
è un caso particolare di un teorema più generale: ogni PID è un UFD. Poiché
la dimostrazione esula dalle intenzioni di questo articolo, si è preferito
dimostrare il caso più familiare. Per la dimostrazione del teorema più generale si
rimanda a \cite[pp.~124-126]{di2013algebra}.}.
\end{theorem}
\begin{proof}
Innanzitutto, per il \textit{Lemma \ref{lem:fattorizzazione}}, ogni
$a \in E$ non invertibile e non nullo ammette una fattorizzazione. \\
Sia allora $a \in E$ non invertibile e non nullo. Affinché $E$ sia un UFD,
deve verificarsi la seguente condizione: se
$a=p_1p_2 \cdots p_r=q_1q_2 \cdots q_s \in E$, allora
$r=s$ ed esiste una permutazione $\sigma \in S_r$ tale per cui
$\sigma$ associ a ogni indice $i$ di un $p_i$ un indice $j$ di
un $q_j$ in modo tale che $p_i$ e $q_j$ siano associati. \\
Si procede per induzione. \\
(\textit{passo base}) \,Se $r=1$, allora $a$ è irriducibile. Allora necessariamente
$s=1$, altrimenti $a$ sarebbe prodotto di irriducibili, e quindi contemporaneamente
anche non irriducibile. Inoltre esiste la permutazione banale $e \in S_1$ che
associa $p_1$ a $q_1$. \\
(\textit{passo induttivo}) \,Si assume che valga la tesi se $a$ è
prodotto di $r-1$ irriducibili.
Si consideri $p_1$: poiché $p_1$ divide $a$, $p_1$ divide anche
$q_1q_2 \cdots q_s$. Dal momento che $E$, in quanto
anello euclideo, è anche un dominio, dal \textit{Teorema \ref{th:irriducibili_primi}}, $p_1$ è anche primo,
e quindi $p_1 \mid q_1$ o $p_1 \mid q_2 \cdots q_s$. \\
Se $p_1 \nmid q_1$ si reitera il procedimento su $q_2 \cdots q_s$, trovando in
un numero finito di passi un $q_j$ tale per cui $p_1 \mid q_j$. Allora si procede
la dimostrazione scambiando $q_1$ e $q_j$. \\
Poiché $q_1$ è irriducibile, $p_1$ e $q_1$ sono associati, ossia $q_1 = kp_1$ con
$k \in E^*$. Allora $p_1 \cdots p_r = q_1 \cdots q_s = kp_1 \cdots q_s$, quindi,
dal momento che $p_1 \neq 0$ ed $E$ è un dominio:
\[p_1(p_2 \cdots p_r - kq_2 \cdots q_s)=0 \implies p_2 \cdots p_r = kq_2 \cdots q_s .\]
Tuttavia il primo membro è un prodotto $r-1$ irriducibili, pertanto $r=s$ ed
esiste un $\sigma \in S_{r-1}$ che associa ad ogni irriducibile $p_i$ un suo
associato $q_i$. Allora si estende $\sigma$ a $S_r$ mappando $p_1$ a $q_1$,
verificando la tesi.
\end{proof}
\section{Esempi notevoli di anelli euclidei}
\subsection{I numeri interi: $\ZZ$}
Senza ombra di dubbio l'esempio più importante di anello euclideo -- nonché
l'esempio da cui si è generalizzata proprio la stessa nozione di anello
euclideo -- è l'anello dei numeri interi. \\
In questo dominio la funzione grado è canonicamente il valore assoluto:
\[g : \ZZ \setminus \{0\} \to \NN, \, k \mapsto \left|k\right|.\]
\vskip 0.1in
Infatti, chiaramente $|a| \leq |ab|\, \forall a$, $b \in \ZZ \setminus \{0\}$. Inoltre
esistono -- e sono anche unici, a meno di segno -- $q$, $r \in \ZZ \mid a = bq + r$, con $r=0 \,\lor\,
\left|r\right| < \left|q\right|$. \\
Dal momento che così si verifica che $\ZZ$ è un anello euclideo, il \textit{Teorema
fondamentale dell'aritmetica} è una conseguenza del
\textit{Teorema \ref{th:euclidei_ufd}}.
\subsection{I campi: $\KK$}
Ogni campo $\KK$ è un anello euclideo, seppur banalmente. Infatti, eccetto proprio
per $0$, ogni elemento è "divisibile" per ogni altro elemento: siano $a$, $b \in \KK$,
allora $a = ab^{-1}b$. \\
Si definisce quindi la funzione grado come la funzione nulla:
\[g : \KK^* \to \NN, \, a \mapsto 0.\]
\vskip 0.1in
Chiaramente $g$ soddisfa il primo assioma della funzione grado. Inoltre,
poiché ogni elemento è "divisibile", il resto è sempre zero -- non è pertanto
necessario verificare nessun'altra proprietà.
\subsection{I polinomi di un campo: $\KK[x]$}
I polinomi di un campo $\KK$ formano un anello euclideo rilevante
nello studio dell'algebra astratta. Come suggerisce la
terminologia, la funzione grado in questo dominio coincide
proprio con il grado del polinomio, ossia si definisce come:
\[g : \KK[x] \setminus \{0\} \to \NN, \, f(x) \mapsto \deg f.\]
\vskip 0.1in
Si verifica facilmente che $g(a(x)) \leq g(a(x)b(x)) \, \forall a(x)$, $b(x) \in \KK[x] \setminus \{0\}$, mentre la divisione euclidea -- come negli interi -- ci permette
di concludere che effettivamente $\KK[x]$ soddisfa tutti gli assiomi di un anello
euclideo\footnote{Curiosamente i polinomi di $\KK[x]$ e i campi $\KK$ sono gli unici anelli euclidei in cui resti
e quozienti sono unici, includendo la scelta di segno (vd.
\cite{10.2307/2315810}).}.
\begin{example}
Sia $\alpha \in \KK$ e sia $\varphi_\alpha : \KK[x] \to \KK, \, f(x) \mapsto f(\alpha)$
la sua valutazione polinomiale in $\KK[x]$. $\varphi_\alpha$ è un omomorfismo, il cui
nucleo è rappresentato dai polinomi in $\KK[x]$ che hanno $\alpha$ come radice. Poiché
$\KK[x]$ è un PID, $\Ker \varphi$ deve essere monogenerato. $x-\alpha \in \Ker \varphi$
è irriducibile, e quindi è il generatore dell'ideale. Si desume così che
$\Ker \varphi = (x-\alpha)$.
\end{example}
\subsection{Gli interi di Gauss: $\ZZ[i]$}
Un importante esempio di anello euclideo è il dominio degli interi di Gauss $\ZZ[i]$, definito come:
\[\ZZ[i] = \{a+bi \mid a, b \in \ZZ\}.\]
\vskip 0.1in
\begin{wrapfigure}{l}{0pt}
\begin{tikzpicture}
\begin{scope}
\clip (-2, -0.5) rectangle (3, 3);
\draw[step=0.25cm, gray!20!white, very thin] (-7, -3) grid (7, 3);
\foreach \x in {-4,...,4} {
\draw[ultra thin, loosely dashdotted] (-3 + \x, -3) -- (3 + \x, 3);
}
\foreach \y in {-4,...,5} {
\draw[ultra thin, loosely dashdotted] (-7, 7 + \y) -- (7, -7 + \y);
}
\draw[line width=0.7pt, ->] (0, 0) -- (0.5, 0.5) node[align=center, below=3pt]{$b$};
\draw[line width=0.7pt, ->] (0, 0) -- (-0.5, 0.5) node[align=center, below=2pt]{$ib$};
\draw[line width=0.5pt, ->] (0, 0) -- (0.5, 2.5) node[above=0.5pt]{$bq$};
\draw[line width=0.5pt, ->] (0, 0) -- (1, 2.5) node[below, right]{$a$};
\draw[densely dotted] (0.5, 2.5) -- (1, 2.5) node[below=4pt, left=2.5pt]{$r$};
\draw[line width=0.2pt, ->] (0, -1) -- (0, 3);
\draw[line width=0.2pt, ->] (-3, 0) -- (3, 0);
\end{scope}
\end{tikzpicture}
\caption{Visualizzazione della divisione euclidea nel piano degli interi di Gauss.}
\label{fig:z_i}
\end{wrapfigure}
La funzione grado coincide in particolare con il quadrato del modulo di un numero complesso, ossia:
\[g(z) : \ZZ[i] \setminus \{0\} \to \NN, \, a+bi \mapsto \left| a+bi \right|^2.\]
Il vantaggio di quest'ultima definizione è l'enfasi sul collegamento tra la funzione grado
di $\ZZ$ e quella di $\ZZ[i].$ Infatti, se $a \in \ZZ$, il grado di $a$ in $\ZZ$ e in $\ZZ[i]$
sono uno il quadrato dell'altro. In particolare, è possibile ridefinire il grado
di $\ZZ$ proprio in modo tale da farlo coincidere con quello di $\ZZ[i]$. \\
\newpage
\begin{theorem}
$\ZZ[i]$ è un anello euclideo.
\end{theorem}
\begin{proof}
Si verifica la prima proprietà della funzione grado. Siano $a$, $b \in \ZZ[i] \setminus \{0\}$,
allora $\left|a\right| \geq 1 \,\land\, \left|b\right| \geq 1$. Poiché
$\left|ab\right| = \left|a\right|\left|b\right|$\footnote{Questa interessante proprietà del modulo è alla base dell'identità di Brahmagupta-Fibonacci: $(a^2 + b^2)(c^2 + d^2) = (ac-bd)^2 + (ad+bc)^2.$}, si verifica facilmente che
$\left|ab\right| \geq \left|a\right|$, ossia che $g(ab) \geq g(a)$. \\
Si verifica infine che esiste una divisione euclidea, ossia che
$\forall a \in \ZZ[i]$, $\forall b \in \ZZ[i] \setminus \{0\}$, $\exists q$, $r \in \ZZ[i] \mid a = bq + r$ e $r=0 \,\lor\, g(r) < g(b)$.
Come si visualizza facilmente nella \textit{Figura \ref{fig:z_i}},
tutti i multipli di $b$ formano un piano con basi $b$ e $ib$, dove
sicuramente esiste un certo $q$ tale che la distanza $\left|r\right| = \left|a-bq\right|$ sia minima. \\
Se $a$ è un multiplo di $b$, vale sicuramente che $a = bq$. Altrimenti dal momento che $r$ è sicuramente inquadrato in uno dei tasselli del piano, vale
sicuramente la seguente disuguaglianza, che lega il modulo di $r$ alla diagonale di
ogni quadrato:
\[\left|r\right| \leq \frac{\left|b\right|}{\sqrt{2}}.\]
Pertanto vale la seconda e ultima proprietà della funzione grado:
\[\left|r\right| \leq \frac{\left|b\right|}{\sqrt{2}} < \left|b\right| \implies \left|r\right|^2 < \left|b\right|^2 \implies g(r) < g(b).\]
\end{proof}
\subsection{Gli interi di Eisenstein: $\ZZ[\omega]$}
Sulla scia di $\ZZ[i]$ è possibile definire anche l'anello degli
interi di Eisenstein, aggiungendo a $\ZZ$ la prima radice cubica
primitiva dell'unità in senso antiorario, ossia:
\[\omega = e^{\frac{2\pi i}{3}} = -\frac{1}{2} + \frac{\sqrt{3}}{2}i.\]
In particolare, $\omega$ è una delle due radici dell'equazione
$z^2 + z + 1 = 0$, dove invece l'altra radice altro non è che
$\omega^2 = \overline{\omega}$.
\begin{wrapfigure}{l}{0pt}
\begin{tikzpicture}
\begin{scope}
\clip (-2, -0.5) rectangle (3, 3);
\draw[step=0.25cm, gray!20!white, very thin] (-7, -3) grid (7, 3);
\foreach \x in {-4,...,4} {
\draw[ultra thin, loosely dashdotted] (-3 + 0.87*\x, -3) -- (3 + 0.87*\x, 3);
}
\foreach \y in {-4,...,5} {
\draw[ultra thin, loosely dashdotted] (-7, 1.8756443470179 + 0.65*\y) -- (7, -1.8756443470179 + 0.65*\y);
}
\foreach \x in {-4,...,5} {
\draw[ultra thin, loosely dashed] (-7 + 0.6289*\x, 28.5025773880714) -- (7+ 0.65*\x, -28.5025773880714);
}
\draw[line width=0.7pt, ->] (0, 0) -- (0.5, 0.5) node[align=center, below=3pt]{$b$};
\draw[line width=0.7pt, ->] (0, 0) -- (-0.6830127018922, 0.1830127018922) node[align=center, below=2pt]{$\omega b$};
\draw[line width=0.5pt, ->] (0, 0) -- (0.71494, 2.41094) node[below=2pt, left=4pt]{$bq$};
\draw[line width=0.5pt, ->] (0, 0) -- (1.1, 2.7) node[below, right]{$a$};
\draw[densely dotted] (0.71494, 2.41094) -- (1.1, 2.7) node[above=3pt, left=2.5pt]{$r$};
\draw[line width=0.2pt, ->] (0, -1) -- (0, 3);
\draw[line width=0.2pt, ->] (-3, 0) -- (3, 0);
\end{scope}
\end{tikzpicture}
\caption{Visualizzazione della divisione euclidea nel piano degli interi di Eisenstein.}
\label{fig:z_omega}
\end{wrapfigure}
\vskip 0.1in
La funzione grado in $\ZZ[\omega]$ deriva da quella di $\ZZ[i]$ e coincide ancora
con il quadrato del modulo del numero complesso. Si definisce quindi:
\[g : \ZZ[\omega] \setminus \{0\}, \, a+b\omega \mapsto \left|a+b\omega\right|^2.\]
Sviluppando il modulo è possibile ottenere una formula più concreta:
\[ \left|a+b\omega\right|^2 = \left|\left(a-\frac{b}{2}\right) + \frac{b\sqrt{3}}{2}i\right|^2 =\] \\
\[= \left(a-\frac{b}{2}\right)^2 + \frac{3b^2}{4} = a^2 - ab + b^2.\] \\
\begin{theorem}
$\ZZ[\omega]$ è un anello euclideo.
\end{theorem}
\begin{proof}
Sulla scia della dimostrazione presentata per $\ZZ[i]$, si verifica facilmente
la prima proprietà della funzione grado. Siano $a$, $b \in \ZZ[\omega]$, allora
$\left|a\right| \geq 1$ e $\left|b\right| \geq 1$. Poiché dalle proprietà
dei numeri complessi vale ancora $\left|a\right| \left|b\right| \geq \left|a\right|$,
la proprietà $g(ab) \geq g(a)$ è già verificata. \\
Si verifica infine la seconda e ultima proprietà della funzione grado. Come per
$\ZZ[i]$, i multipli di $b \in \ZZ[\omega]$ sono visualizzati su un piano che
ha per basi $b$ e $\omega b$ (come in $\textit{Figura \ref{fig:z_omega}}$), pertanto
esiste sicuramente un $q$ tale che la distanza $\left|a-bq\right|$ sia minima. \\
Se $a$ è multiplo di $b$, allora chiaramente $a = bq$. Altrimenti, $a$ è certamente
inquadrato in uno dei triangoli del piano, per cui vale la seguente disuguaglianza:
\[\left|r\right| \leq \frac{\sqrt{3}}{2} \left|b\right|.\]
Dunque la tesi è verificata:
\[\left|r\right| \leq \frac{\sqrt{3}}{2} \left|b\right| < \left|b\right| \implies \left|r\right|^2 < \left|b\right|^2 \implies g(r) < g(b). \]
\end{proof}
\section{Riferimenti bibliografici}
\printbibliography[heading=none]
\end{document}

@ -0,0 +1,20 @@
@book{di2013algebra,
title={Algebra},
author={Di Martino, P. and Dvornicich, R.},
isbn={9788867410958},
series={Didattica e Ricerca. Manuali},
year={2013},
publisher={Pisa University Press}
},
@article{10.2307/2315810,
ISSN = {00029890, 19300972},
URL = {http://www.jstor.org/stable/2315810},
author = {M. A. Jodeit},
journal = {The American Mathematical Monthly},
number = {7},
pages = {835--836},
publisher = {Mathematical Association of America},
title = {Uniqueness in the Division Algorithm},
volume = {74},
year = {1967}
}

@ -0,0 +1,709 @@
\documentclass[a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[italian]{babel}
\usepackage{algorithm2e}
\usepackage{amsfonts}
\usepackage{amsthm}
\usepackage{amssymb}
\usepackage{amsopn}
\usepackage{bm}
\usepackage{csquotes}
\usepackage{enumerate}
\usepackage{mathtools}
\usepackage{marvosym}
\usepackage{tikz}
\usepackage{wrapfig}
\usepackage{xpatch}
\usepackage[colorlinks=false,bookmarksopen=true]{hyperref}
\usepackage{bookmark}
\newcommand{\norm}[1]{\left|#1\right|}
\newcommand{\zeroset}{\{0\}}
\newcommand{\setminuszero}{\setminus \{0\}}
\newcommand{\BB}{\mathcal{B}}
\newcommand{\CC}{\mathbb{C}}
\newcommand{\FF}{\mathbb{F}_2}
\newcommand{\HH}{\mathbb{H}}
\newcommand{\KK}{\mathbb{K}}
\newcommand{\NN}{\mathbb{N}}
\newcommand{\QQ}{\mathbb{Q}}
\newcommand{\RR}{\mathbb{R}}
\newcommand{\ZZ}{\mathbb{Z}}
\newcommand{\ZZp}{\mathbb{Z}_p}
\newcommand{\CCx}{\mathbb{C}[x]}
\newcommand{\QQx}{\mathbb{Q}[x]}
\newcommand{\RRx}{\mathbb{R}[x]}
\newcommand{\ZZi}{\mathbb{Z}[i]}
\newcommand{\ZZom}{\mathbb{Z}[\omega]}
\newcommand{\ZZpx}{\mathbb{Z}_p[x]}
\newcommand{\ZZx}{\mathbb{Z}[x]}
\newcommand{\dual}[1]{#1^{*}}
\newcommand{\LL}[2]{\mathcal{L} \left(#1, \, #2\right)}
\newcommand{\M}[1]{\mathcal{M}_{#1}\left(\KK\right)}
\newcommand{\nsg}{\mathrel{\unlhd}}
\renewcommand{\vec}[1]{\underline{#1}}
\newcommand{\hatpi}{\hat{\pi}}
\newcommand{\hatpip}{\hat{\pi}_p}
\theoremstyle{definition}
\newtheorem{corollary}{Corollario}[section]
\newtheorem{definition}{Definizione}[section]
\newtheorem{example}{Esempio}[section]
\newtheorem{exercise}{Esercizio}[section]
\newtheorem{lemma}{Lemma}[section]
\newtheorem*{note}{Osservazione}
\newtheorem{proposition}{Proposizione}[section]
\newtheorem{theorem}{Teorema}[section]
\DeclareMathOperator{\existsone}{\exists !}
\DeclareMathOperator{\Imm}{Imm}
\DeclareMathOperator{\Ker}{Ker}
\DeclareMathOperator{\MCD}{MCD}
\DeclareMathOperator{\mcm}{mcm}
\DeclareMathOperator{\tr}{tr}
\let\oldemptyset\emptyset
\let\emptyset\varnothing
\let\oldcirc\circ
\let\circ\undefined
\DeclareMathOperator{\circ}{\oldcirc}
\let\oldexists\exists
\let\exists\undefined
\DeclareMathOperator{\exists}{\oldexists}
\let\oldforall\forall
\let\forall\undefined
\DeclareMathOperator{\forall}{\oldforall}
\let\oldnexists\nexists
\let\nexists\undefined
\DeclareMathOperator{\nexists}{\oldnexists}
\let\oldland\land
\let\land\undefined
\DeclareMathOperator{\land}{\oldland}
\let\oldlnot\lnot
\let\lnot\undefined
\DeclareMathOperator{\lnot}{\oldlnot}
\let\oldlor\lor
\let\lor\undefined
\DeclareMathOperator{\lor}{\oldlor}
\setlength\parindent{0pt}
\title{Proprietà fondamentali di $\ZZi$, \\ $\ZZx$, $\ZZpx$ e $\QQx$}
\author{Gabriel Antonio Videtta}
\date{\today}
\begin{document}
\maketitle
\tableofcontents
\section{Irriducibili e corollari di aritmetica in $\ZZi$}
Come già dimostrato, $\ZZi$ è un anello euclideo con la seguente
funzione grado:
\[ g : \ZZi \setminuszero \to \ZZ,\, a+bi \mapsto \norm{a+bi}^2.\]
A partire da questo preconcetto è possibile dimostrare un teorema
importante in aritmetica, il \nameref{th:teorema_natale},
che discende direttamente come corollario di un teorema più
generale riguardante $\ZZi$.
\subsection{Il teorema di Natale di Fermat e gli irriducibili in $\ZZi$}
\begin{lemma}
\label{lem:riducibile_due_quadrati}
Sia $p$ un numero primo riducibile in $\ZZi$, allora $p$
può essere scritto come somma di due quadrati in $\ZZ$.
\end{lemma}
\begin{proof}
Se $p$ è riducibile in $\ZZi$, allora esistono $a+bi$ e
$c+di$ appartenenti a $\ZZi \setminus \ZZi^*$ tali che $p=(a+bi)(c+di)$. \\
Impiegando le proprietà dell'operazione di coniugio si
ottiene la seguente equazione:
\[ \overline{p}=p=(a-bi)(c-di) \implies p^2=p \overline{p} = (a^2+b^2)(c^2+d^2). \]
Dal momento che $a+bi$ e $c+di$ non sono invertibili,
i valori della funzione grado calcolati in essi sono strettamente
maggiori del valore assunto nell'unità, ovverosia:
\[ a^2+b^2>1, \qquad c^2+d^2>1. \]
Allora devono per forza valere le seguenti equazioni:
\[ p=a^2+b^2, \qquad p=c^2+d^2, \]
da cui la tesi.
\end{proof}
\begin{lemma}
\label{lem:quadrato_mod_4}
Sia $p$ un numero primo tale che $p \equiv 1 \pmod4$. Allora
esiste un $x \in \ZZ$ tale che $p \mid x^2+1$.
\end{lemma}
\begin{proof}
Per il \textit{Teorema di Wilson}, $(p-1)! \equiv -1 \pmod p$.
Attraverso varie manipolazioni algebriche si ottiene:
\[-1 \equiv 1 \cdots \frac{p-1}{2} \cdot \frac{p+1}{2} \cdots (p-1) \equiv 1 \cdots \frac{p-1}{2} \left(-\frac{p-1}{2}\right) \cdots (-1) \equiv\]
\[ \equiv (-1)^{\frac{p-1}{2}} \left(\left( \frac{p-1}{2} \right)!\right)^2 \equiv
\left(\left( \frac{p-1}{2} \right)!\right)^2 \pmod p,
\]
\vskip 0.1in
da cui con $x = \left( \frac{p-1}{2} \right)!$ si verifica la
tesi.
\end{proof}
\begin{theorem}
\label{th:primo_1_mod_4_riducibile}
Sia $p$ un numero primo tale che $p \equiv 1 \pmod4$. Allora
$p$ è riducibile in $\ZZi$.
\end{theorem}
\begin{proof}
Per il \textit{Lemma \ref{lem:quadrato_mod_4}}, si ha che esiste
un $x \in \ZZ$ tale che $p \mid x^2+1$. Se $p$ fosse irriducibile,
dacché $\ZZi$ è un PID in quanto euclideo, $p$ sarebbe anche un
primo di $\ZZi$. Dal momento che $x^2+1=(x+i)(x-i)$, $p$ dovrebbe
dividere almeno uno di questi due fattori. \\
Senza perdità di generalità, si ponga che $p \mid (x+i)$. Allora
$\exists a+bi \in \ZZi \mid x+i=(a+bi)p$. Uguagliando le parti
immaginarie si ottiene $bp=1$, che non ammette soluzioni, \Lightning{}. Pertanto $p$ è riducibile.
\end{proof}
\begin{corollary}[\textit{Teorema di Natale di Fermat}]
\label{th:teorema_natale}
Sia $p$ un numero primo tale che $p \equiv 1 \pmod4$. Allora
$p$ è somma di due quadrati in $\ZZ$.
\end{corollary}
\begin{proof}
Per il \textit{Teorema \ref{th:primo_1_mod_4_riducibile}},
$p$ è riducibile in $\ZZi$. In quanto riducibile in $\ZZi$, per
il \textit{Lemma \ref{lem:riducibile_due_quadrati}}, $p$ è allora
somma di due quadrati.
\end{proof}
\begin{theorem}
\label{th:primo_-1_mod_4_irriducibile}
Sia $p$ un numero primo tale che $p \equiv -1 \pmod4$. Allora
$p$ è irriducibile in $\ZZi$.
\end{theorem}
\begin{proof}
Se $p$ fosse riducibile in
$\ZZi$, per il \nameref{th:teorema_natale} esisterebbero $a$ e $b$
in $\ZZ$ tali che $p=a^2+b^2$. Dal momento che $p$ è dispari,
possiamo supporre, senza perdità di generalità, che
$a$ sia pari e che $b$ sia dispari. Pertanto $a^2 \equiv 0 \pmod 4$ e $b^2 \equiv 1 \pmod 4$, dacché sono uno pari e l'altro dispari\footnote{Infatti, $0^2 \equiv 0
\pmod4$, $1^2 \equiv 1 \pmod4$, $2^2 \equiv 4 \equiv 0 \pmod 4$,
$3^2 \equiv 9 \equiv 1 \pmod 4$.}. Tuttavia la congruenza
$a^2+b^2 \equiv 1 \equiv -1 \pmod4$ non è mai soddisfatta,
\Lightning{}. Pertanto $p$ può essere solo irriducibile.
\end{proof}
\begin{note}
Si osserva che $2=(1+i)(1-i)$. Dal momento che $\norm{1+i}^2=
\norm{1-i}^2=2\neq1$, si deduce che nessuno dei due fattori
è invertibile. Pertanto $2$ non è irriducibile.
\end{note}
\begin{proposition}
\label{prop:irriducibili_zz_zzi}
Gli unici primi $p \in \ZZ$ irriducibili in $\ZZi$ sono i primi $p$ tali
che $p \equiv -1 \pmod4$.
\end{proposition}
\begin{proof}
Per l'osservazione precedente, $2$ non è irriducibile in $\ZZi$,
così come i primi congrui a $1$ in modulo $4$,
per il \textit{Teorema \ref{th:primo_1_mod_4_riducibile}}. Al
contrario i primi $p$ congrui a $-1$ in modulo $4$ sono
irriducibili, per il \textit{Teorema \ref{th:primo_-1_mod_4_irriducibile}}, da cui la tesi.
\end{proof}
\begin{theorem}
$z \in \ZZi$ è irriducibile se e solo se $z$ è un associato di un $k \in \ZZ$ tale che $k \equiv -1 \pmod 4$, o se $\norm{z}^2$ è primo.
\end{theorem}
\begin{proof} Si dimostrano le due implicazioni separatamente. \\
($\implies$)\; Sia $z \in \ZZi$ irriducibile. Chiaramente
$z \mid z \overline{z} = g(z)$. Dacché $\ZZ$ è un UFD,
$g(z)$ può decomporsi in un prodotto di primi $q_1q_2\cdots q_n$.
Dal momento che $\ZZi$ è un PID, in quanto anello euclideo,
$z$ deve dividere uno dei primi della fattorizzazione di
$g(z)$. Si assuma che tale primo sia $q_i$. Allora esiste
un $w \in \ZZi$ tale che $q_i=wz$. \\
Se $w \in \ZZi^*$, si
deduce che $z$ è un associato di $q_i$. Dal momento che
$z$ è irriducibile, $q_i$, che è suo associato, è a sua
volta irriducibile. Allora, per la \textit{Proposizione \ref{prop:irriducibili_zz_zzi}}, $q_i \equiv -1 \pmod4$.
\\
Altrimenti, se $w$ non è invertibile, si ha che $g(w)>g(1)$,
ossia che $\norm{w}^2>1$. Inoltre in quanto irriducibile, anche
$z$ non è invertibile, e quindi
$g(z)>g(1) \implies \norm{z}^2>1$. Dalla proprietà
moltiplicativa
del modulo si ricava $q_i^2 = \norm{q_i}^2 = \norm{w}^2 \norm{z}^2$,
da cui necessariamente consegue che:
\[ \norm{w}^2=q_i, \quad \norm{z}^2=q_i, \]
attraverso cui si verifica l'implicazione. \\
($\,\Longleftarrow\,\,$)\; Se $k \in \ZZ$ e $k \equiv -1 \pmod4$, per
il \textit{Teorema \ref{th:primo_-1_mod_4_irriducibile}}, $k$ è
irriducibile. Allora in quanto suo associato, anche $z$ è irriducibile. \\
Altrimenti, se $\norm{z}^2$ è un primo $p$, si ponga
$z=ab$ con $a$ e $b \in \ZZi$. Per la proprietà moltiplicativa
del modulo, $p = \norm{z}^2 = \norm{ab}^2 = \norm{a}^2\norm{b}^2$.
Tuttavia questo implica che uno tra $\norm{a}^2$ e $\norm{b}^2$
sia pari a $1$, ossia che uno tra $a$ e $b$ sia invertibile,
dacché $g(1)=1$. Pertanto $z$ è in ogni caso irriducibile.
\end{proof}
Infine si enuncia un'ultima identità inerente all'aritmetica, ma
strettamente collegata a $\ZZi$.
\subsection{L'identità di Brahmagupta-Fibonacci}
\begin{proposition}[\textit{Identità di Brahmagupta-Fibonacci}]
\label{prop:fibonacci}
Il prodotto di due somme di quadrati è ancora una
somma di quadrati. In particolare:
\[ (a^2+b^2)(c^2+d^2)=(ac-bd)^2+(ad+bc)^2. \]
\end{proposition}
\begin{proof}
La dimostrazione altro non è che una banale verifica
algebrica. Ciononostante è possibile risalire a questa
identità in via alternativa mediante l'uso
del modulo dei numeri complessi. \\
Siano $z_1=a+bi$, $z_2=c+di \in \CC$. Allora, per le proprietà
del modulo dei numeri complessi:
\begin{equation}
\label{eq:modulo_z}
\norm{z_1}\norm{z_2}=\norm{z_1z_2}.
\end{equation}
Computando il prodotto tra $z_1$ e $z_2$ si ottiene:
\[ z_1z_2 = (ac-bd) + (ad+bc)i, \]
da cui a sua volta si ricava:
\[ \norm{z_1z_2} = \sqrt{(ac-bd)^2 + (ad+bc)^2}, \]
assieme a:
\[ \norm{z_1}=\sqrt{a^2+b^2}, \quad \norm{z_2}=\sqrt{c^2+d^2}. \]
Infine, da \eqref{eq:modulo_z}, elevando al quadrato, si deduce l'identità
presentata:
\begin{multline*}
\sqrt{a^2+b^2}\sqrt{c^2+d^2}=\sqrt{(ac-bd)^2 + (ad+bc)^2} \implies (a^2+b^2)(c^2+d^2)= \\ (ac-bd)^2+(ad+bc)^2.
\end{multline*}
\end{proof}
\begin{example}
Si consideri $65=5 \cdot 13$. Dal momento che sia $5$
che $13$ sono congrui a $1$ in modulo $4$, sappiamo
già si possono scrivere entrambi come somme di due
quadrati. Allora, dall'\nameref{prop:fibonacci},
anche $65$ è somma di due quadrati. \\
Infatti $5=2^2+1^2$ e $13=3^2+2^2$. Pertanto
$65=5\cdot 13=(2\cdot3-1\cdot2)^2 + (2\cdot2+1\cdot3)^2=4^2+7^2$.
\end{example}
\section{Irriducibilità in $\ZZx$ e in $\QQx$}
\subsection{Criterio di Eisenstein e proiezione in $\ZZpx$}
Prima di studiare le irriducibilità in $\ZZ$, si guarda
alle irriducibilità nei vari campi finiti $\ZZp$, con
$p$ primo. Questo metodo presenta un vantaggio da non
sottovalutare: in $\ZZp$ per ogni grado $n$ esiste un
numero finito di polinomi monici\footnote{Si prendono in
considerazione solo i polinomi monici dal momento che vale
l'equivalenza degli associati: se $a$ divide $b$, allora
tutti gli associati di $a$ dividono $b$. $\ZZp$ è infatti
un campo, e quindi $\ZZpx$ è un anello euclideo.} -- in particolare, $p^n$ --
e quindi per un polinomio di grado $d$ è sufficiente controllare
che questo non sia prodotto di tali polinomi monici per
$1 \leq n < d$. \\
In modo preliminare, si definisce un omomorfismo fondamentale.
\begin{definition}
Sia il seguente l'\textbf{omomorfismo di proiezione} da
$\ZZ$ in $\ZZp$:
\[ \hatpip : \ZZx \to \ZZpx,\, a_n x^n + \ldots + a_0 \mapsto [a_n]_p \, x^n + \ldots + [a_0]_p. \]
\end{definition}
\begin{note}
Si dimostra facilmente che $\hatpi$ è un omomorfismo di anelli.
Innanzitutto, $\hatpi(1) = [1]_p$. Vale chiaramente la linearità:
\begin{multline*}
\hatpip(a_n x^n + \ldots + a_0) + \hatpip(b_n x^n + \ldots + b_0) = [a_n]_p \, x^n + \ldots + [b_n]_p \, x^n + \ldots = \\
= [a_n+b_n]_p \, x^n + \ldots = \hatpip(a_n x^n + \ldots + a_0 + b_n x^n + \ldots + b_0).
\end{multline*}
Infine vale anche la moltiplicatività:
\begin{multline*}
\hatpip(a_n x^n + \ldots + a_0) \hatpip(b_n x^n + \ldots + b_0) = ([a_n]_p \, x^n + \ldots)([b_n]_p \, x^n + \ldots) = \\
= \sum_{i=0}^n \sum_{j+k=i} [a_j]_p \, [b_k]_p \, x^i
= \sum_{i=0}^n \sum_{j+k=i} [a_j b_k]_p \, x^i
= \hatpip\left(\sum_{i=0}^n \sum_{j+k=i} a_j b_k x^i\right) = \\
=\hatpip\left((a_n x^n + \ldots + a_0)(b_n x^n + \ldots + b_0)\right).
\end{multline*}
\end{note}
Prima di enunciare un teorema che si rivelerà
importante nel determinare l'irriducibilità di un
polinomio in $\ZZx$, si enuncia una definizione che
verrà ripresa anche in seguito
\begin{definition}
Un polinomio $a_n x^n + \ldots + a_0 \in \ZZx$ si dice
\textbf{primitivo} se $\MCD(a_n, \ldots, a_0)=1$.
\end{definition}
\begin{theorem}
\label{th:proiezione_irriducibilità}
Sia $p$ un primo. Sia $f(x) = a_n x^n + \ldots \in \ZZx$
primitivo. Se $p \nmid a_n$ e
$\hatpip(f(x))$ è irriducibile in $\ZZpx$, allora anche $f(x)$ lo
è in $\ZZx$.
\end{theorem}
\begin{proof}
Si dimostra la tesi contronominalmente. Sia $f(x) =
a_nx^n + \ldots \in \ZZ[x]$ primitivo e riducibile, con
$p \nmid a_n$. Dal momento che $f(x)$ è riducibile, esistono
$g(x)$, $h(x)$ non invertibili tali che $f(x)=g(x)h(x)$. \\
Si dimostra che $\deg g(x) \geq 1$. Se infatti fosse nullo,
$g(x)$ dovrebbe o essere uguale a $\pm 1$ -- assurdo, dal
momento che $g(x)$ non è invertibile, \Lightning{} -- o
essere una costante non invertibile. Tuttavia, nell'ultimo
caso, risulterebbe che $f(x)$ non è primitivo, poiché
$g(x)$ dividerebbe ogni coefficiente del polinomio.
Analogamente anche $\deg h(x) \geq 1$. \\
Si consideri ora $\hatpip(f(x))=\hatpip(g(x))\hatpip(h(x))$.
Dal momento che $p \nmid a_n$, il grado di $f(x)$ rimane costante
sotto l'operazione di omomorfismo, ossia $\deg \hatpip(f(x)) =
\deg f(x)$. \\
Inoltre, poiché nessuno dei fattori di $f(x)$ è nullo, $\deg f(x) = \deg g(x) +
\deg h(x)$. Da questa considerazione si deduce che anche i
gradi di $g(x)$ e $h(x)$ non devono calare, altrimenti si
avrebbe che $\deg \hatpip(f(x)) < \deg f(x)$, \Lightning{}.
Allora $\deg \hatpip(g(x)) = \deg g(x) \geq 1$,
$\deg \hatpip(h(x)) = \deg h(x) \geq 1$. \\
Poiché $\deg \hatpip(g(x))$ e $\deg \hatpip(h(x))$ sono
dunque entrambi non nulli, $\hatpip(g(x))$ e $\hatpip(h(x))$
non sono invertibili\footnote{Si ricorda che $\ZZpx$
è un anello euclideo. Pertanto, non avere lo stesso grado
dell'unità equivale a non essere invertibili.}. Quindi
$f(x)$ è prodotto di non invertibili, ed è dunque riducibile.
\end{proof}
\begin{theorem}[\textit{Criterio di Eisenstein}]
\label{th:eisenstein}
Sia $p$ un primo.
Sia $f(x) = a_n x^n + \ldots + a_0 \in \ZZx$ primitivo tale che:
\begin{enumerate}[ (1)]
\item $p \nmid a_n$,
\item $p \mid a_i$, $\forall i \neq n$,
\item $p^2 \nmid a_0$.
\end{enumerate}
Allora $f(x)$ è irriducibile in $\ZZx$.
\end{theorem}
\begin{proof}
Si ponga $f(x)$ riducibile e sia pertanto $f(x)=g(x)h(x)$ con
$g(x)$ e $h(x)$ non invertibili. Analogamente a come visto
per il \textit{Teorema \ref{th:proiezione_irriducibilità}}, si
desume che $\deg g(x)$, $\deg h(x) \geq 1$. \\
Si applica l'omomorfismo di proiezione in $\ZZpx$:
\[ \hatpip(f(x))=\underbrace{[a_n]_p}_{\neq 0} x_n, \]
da cui si deduce che $\deg \hatpip(f(x)) = \deg f(x)$. \\
Dal momento che $\hatpip(f(x))=\hatpip(g(x))\hatpip(h(x))$ e
che $\ZZpx$, in quanto campo, è un dominio,
necessariamente sia $\hatpip(g(x))$ che $\hatpip(h(x))$
sono dei monomi. \\
Inoltre, sempre in modo analogo a come visto per il \textit{Teorema
\ref{th:proiezione_irriducibilità}}, sia $\deg \hatpip(g(x))$
che $\deg \hatpip(h(x))$ sono maggiori o uguali ad $1$. \\
Combinando questo risultato col fatto che questi due fattori
sono monomi, si desume che
$\hatpip(g(x))$ e $\hatpip(h(x))$ sono monomi di grado positivo.
Quindi $p$ deve dividere entrambi i termini noti di $g(x)$ e
$h(x)$, e in particolare $p^2$ deve dividere il loro prodotto,
ossia $a_0$. Tuttavia questo è un assurdo, \Lightning{}.
\end{proof}
\begin{note}
Si consideri $x^k-2$, per $k \geq 1$.
Per il \nameref{th:eisenstein},
considerando come primo $p=2$, si verifica che
$x^k-2$ è sempre irriducibile. Pertanto, per ogni
grado di un polinomio esiste almeno un irriducibile --
a differenza di come invece avviene in $\RRx$ o in $\CCx$.
\end{note}
\begin{theorem}
Sia $f(x) \in \ZZx$ primitivo e sia $a \in \ZZ$. Allora $f(x)$ è
irriducibile se e solo se $f(x+a)$ è irriducibile.
\end{theorem}
\begin{proof}
Si dimostra una sola implicazione, dal momento che l'implicazione
contraria consegue dalle stesse considerazioni poste
studiando prima $f(x+a)$ e poi $f(x)$. \\
Sia $f(x)=a(x)b(x)$ riducibile, con $a(x)$, $b(x) \in \ZZx$ non
invertibili. Come già visto per il \textit{Teorema
\ref{th:proiezione_irriducibilità}}, $\deg a(x)$, $\deg b(x) \geq 1$. \\
Allora chiaramente $f(x+a)=g(x+a)h(x+a)$, con $\deg g(x+a) =
\deg g(x) \geq 1$, $\deg h(x+a) = \deg h(x) \geq 1$. Pertanto
$f(x+a)$ continua a essere riducibile, da cui la tesi.
\end{proof}
\begin{example}
Si consideri $f(x) = x^{p-1}+\ldots+x^2+x+1 \in \ZZx$, dove
tutti i coefficienti del polinomio sono $1$. Si verifica che:
\[ f(x+1)=\frac{(x+1)^p-1}x = p+\binom{p}{2}x+\ldots+x^{p-1}. \]
Allora, per il \nameref{th:eisenstein} con $p$, $f(x+1)$ è
irriducibile. Pertanto anche $f(x)$ lo è.
\end{example}
\subsection{Alcuni irriducibili di $\ZZ_2[x]$}
Tra tutti gli anelli $\ZZpx$, $\ZZ_2[x]$ ricopre sicuramente
un ruolo fondamentale, dal momento che è il meno costoso
computazionalmente da analizzare, dacché $\ZZ_2$ consta
di soli due elementi. Pertanto si computano adesso gli
irriducibili di $\ZZ_2[x]$ fino al quarto grado incluso, a meno
di associati. \\
Sicuramente $x$ e $x+1$ sono irriducibili, dal momento che sono di
primo grado. I polinomi di secondo grado devono dunque essere
prodotto di questi polinomi, e pertanto devono avere o $0$ o
$1$ come radice: si verifica quindi che $x^2+x+1$ è l'unico
polinomio di secondo grado irriducibile. \\
Per il terzo grado vale ancora lo stesso principio, per cui
$x^3+x^2+1$ e $x^3+x+1$ sono gli unici irriducibili di tale grado.
Infine, per il quarto grado, i polinomi riducibili soddisfano
una qualsiasi delle seguenti proprietà:
\begin{itemize}
\item $0$ e $1$ sono radici del polinomio,
\item il polinomio è prodotto di due polinomi irriducibili di
secondo grado.
\end{itemize}
Si escludono pertanto dagli irriducibili i polinomi non omogenei --
che hanno sicuramente $0$ come radice --, e i polinomi con $1$ come
radice, ossia $x^4+x^3+x+1$,\ \
$x^4+x^3+x^2+1$, e $x^4+x^2+x+1$. Si esclude anche
$(x^2+x+1)^2 = x^4+x^2+1$. Pertanto gli unici irriducibili di
grado quattro sono $x^4+x^3+x^2+x+1$,\ \ $x^4+x^3+1$,\ \ $x^4+x+1$. \\
Tutti questi irriducibili sono raccolti nella seguente tabella:
\begin{itemize}
\item (grado 1) $x$, $x+1$,
\item (grado 2) $x^2+x+1$,
\item (grado 3) $x^3+x^2+1$, $x^3+x+1$,
\item (grado 4) $x^4+x^3+x^2+x+1$,\ \ $x^4+x^3+1$,\ \ $x^4+x+1$.
\end{itemize}
\begin{example}
Il polinomio $51x^3+11x^2+1 \in \ZZx$ è primitivo dal momento
che $\MCD(51, 11, 1)=1$. Inoltre, poiché $\hatpi_2(51x^3+11x^2+1)=
x^3+x+1$ è irriducibile, si deduce che anche $51x^3+11x^2+1$ lo
è per il \textit{Teorema \ref{th:proiezione_irriducibilità}}.
\end{example}
\subsection{Teorema delle radici razionali e lemma di Gauss}
Si enunciano in questa sezione i teoremi più importanti per
lo studio dell'irriducibilità dei polinomi in $\QQx$ e
in $\ZZx$, a partire dai due teoremi più importanti: il
classico \nameref{th:radici_razionali} e il \nameref{th:lemma_gauss},
che si pone da ponte tra l'analisi dell'irriducibilità in $\ZZx$ e
quella in $\QQx$.
\begin{theorem}[\textit{Teorema delle radici razionali}]
\label{th:radici_razionali}
Sia $f(x) = a_n x^n + \ldots + a_0 \in \ZZx$. Abbia $f(x)$
una radice razionale. Allora, detta tale radice $\frac{p}{q}$, già ridotta ai minimi termini, questa è tale che:
\begin{enumerate}[ (i.)]
\item $p \mid a_0$,
\item $q \mid a_n$.
\end{enumerate}
\end{theorem}
\begin{proof}
Poiché $\frac{p}{q}$ è radice, $f\left(\frac{p}{q}\right)=0$, e
quindi si ricava che:
\[ a_n \left( \frac{p}{q} \right)^n + \ldots + a_0 = 0 \implies
a_n p^n = -q( \ldots + a_0 q^{n-1}). \]
\vskip 0.1in
Quindi $q \mid a_n p^n$. Dal momento che $\MCD(p, q)=1$, si
deduce che $q \mid a_n$. \\
Analogamente si ricava che:
\[ a_0 q^n = -p(a_n p^{n-1} + \ldots). \]
\vskip 0.1in
Pertanto, per lo stesso motivo espresso in precedenza,
$p \mid a_0$, da cui la tesi.
\end{proof}
\begin{theorem}[\textit{Lemma di Gauss}]
\label{th:lemma_gauss}
Il prodotto di due polinomi primitivi in $\ZZx$ è anch'esso primitivo.
\end{theorem}
\begin{proof}
Siano $g(x) = a_m x^m + \ldots + a_0$ e $h(x) = b^n x^n + \ldots + b_0$ due polinomi primitivi in $\ZZx$. Si assuma che $f(x)=g(x)h(x)$
non sia primitivo. Allora esiste un $p$ primo che divide tutti i
coefficienti di $f(x)$. \\
Siano $a_s$ e $b_t$ i più piccoli coefficienti non divisibili
da $p$ dei rispettivi polinomi. Questi sicuramente esistono,
altrimenti $p$ dividerebbe tutti i coefficienti, e quindi
o $g(x)$ o $h(x)$ non sarebbe primitivo, \Lightning{}. \\
Si consideri il coefficiente di $x^{s+t}$ di $f(x)$:
\[c_{s+t} = \sum_{j+k=s+t} a_j b_k = \underbrace{a_0 b_{s+t} + a_1 b_{s+t-1} + \ldots}_{\equiv \, 0 \pmod p} + a_s b_t + \underbrace{a_{s+1}b_{t-1} + \ldots}_{\equiv \, 0 \pmod p},\]
dal momento che $p \mid c_{s+t}$, si deduce che $p$ deve dividere
anche $a_sb_t$, ossia uno tra $a_s$ e $b_t$, che è assurdo, \Lightning{}. Quindi $f(x)$ è primitivo.
\end{proof}
\begin{theorem}[\textit{Secondo lemma di Gauss}]
\label{th:lemma_gauss_2}
Sia $f(x) \in \ZZx$. Allora $f(x)$ è irriducibile in $\ZZx$
se e solo se $f(x)$ è irriducibile in $\QQx$ ed è primitivo.
\end{theorem}
\begin{proof} Si dimostrano le due implicazioni separatamente. \\
($\implies$)\; Si dimostra l'implicazione contronominalmente,
ossia mostrando che se $f(x)$ non è primitivo o se è
riducibile in $\QQx$, allora $f(x)$ è riducibile in $\ZZx$. \\
Se $f(x)$ non è primitivo, allora
$f(x)$ è riducibile in $\ZZx$. Sia quindi $f(x)$ primitivo
e riducibile in $\QQx$, con $f(x)=g(x)h(x)$,
$g(x)$, $h(x) \in \QQx \setminus \QQx^*$. \\
Si descrivano $g(x)$ e $h(x)$ nel seguente modo:
\[ g(x)=\frac{p_m}{q_m} x^m + \ldots + \frac{p_0}{q_0}, \quad \MCD(p_i, q_i)=1 \; \forall 0 \leq i \leq m, \]
\[ h(x)=\frac{s_n}{t_n} x^n + \ldots + \frac{s_0}{t_0}, \quad
\MCD(s_i, t_i)=1 \; \forall 0 \leq i \leq n. \]
\vskip 0.1in
Si definiscano inoltre le seguenti costanti:
\[ \alpha = \frac{\mcm(q_m, \ldots, q_0)}{\MCD(p_m, \ldots, p_0)}, \quad \beta = \frac{\mcm(t_n, \ldots, t_0)}{\MCD(s_n, \ldots, s_0)}. \]
\vskip 0.1in
Si verifica che sia $\hat{g}(x)=\alpha g(x)$ che
$\hat{h}(x)=\beta h(x)$ appartengono a $\ZZx$ e che entrambi
sono primitivi. Pertanto $\hat{g}(x) \hat{h}(x) \in \ZZx$. \\
Si descriva $f(x)$ nel seguente modo:
\[ f(x)=a_k x^k + \ldots + a_0, \quad \MCD(a_k,\ldots,a_0)=1. \]
\vskip 0.1in
Sia $\alpha \beta = \frac{p}{q}$ con $\MCD(p,q)=1$, allora:
\[\hat{g}(x) \hat{h}(x) = \alpha \beta f(x) = \frac{p}{q} (a_k x^k + \ldots + a_0), \]
da cui, per far sì che $\hat{g}(x) \hat{h}(x)$ appartenga
a $\ZZx$, $q$ deve necessariamente dividere tutti i
coefficienti di $f(x)$. Tuttavia $f(x)$ è primitivo, e quindi
$q=\pm 1$. Pertanto $\alpha \beta = \pm p \in \ZZ$. \\
Infine, per il \nameref{th:lemma_gauss}, $\alpha \beta f(x)$
è primitivo, da cui $\alpha \beta = \pm 1$. Quindi
$f(x) = \pm \hat{g}(x) \hat{h}(x)$ è riducibile. \\
($\,\Longleftarrow\,\,$)\; Se $f(x)$ è irriducibile in $\QQx$
ed è primitivo, sicuramente $f(x)$ è irriducibile anche in
$\ZZx$. Infatti, se esiste una fattorizzazione in
irriducibili in $\ZZx$, essa non include alcuna costante
moltiplicativa dal momento che $f(x)$ è primitivo, e quindi
esisterebbe una fattorizzazione in irriducibili anche in $\QQx$.
\end{proof}
\end{document}

@ -0,0 +1,735 @@
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Algoritmo di rappresentazione dei polinomi simmetrici negli $e_i$\n",
"\n",
"Lo scopo di questo notebook è implementare l'algoritmo impiegato nella dimostrazione del _Teorema fondamentale dei polinomi simmetrici_, che, dato un campo $F$, asserisce il seguente isomorfismo:\n",
"\n",
"$$\\operatorname{Sym}[X_n] \\cong F[e_1, \\ldots, e_n],$$\n",
"\n",
"dove $X_n$ è l'insieme $\\{x_1, \\ldots, x_n\\}$.\n",
"\n",
"Innanzitutto, si sceglie un $n \\in \\mathbb{N}^+$, che rappresenta il numero di variabili di cui è composto il polinomio simmetrico,\n",
"e si crea l'anello di polinomi $\\mathbb{Q}[x_1, \\ldots, x_n]$, nel quale vale il _degree lexicographic order_ (**deglex**). Vengono\n",
"infine create delle variabili simboliche a rappresentare i polinomi simmetrici elementari."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Defining x_1, x_2, x_3, x_4, x_5\n"
]
},
{
"data": {
"text/html": [
"<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(e_{0}, e_{1}, e_{2}, e_{3}, e_{4}, e_{5}\\right)</script></html>"
],
"text/latex": [
"\\begin{math}\n",
"\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(e_{0}, e_{1}, e_{2}, e_{3}, e_{4}, e_{5}\\right)\n",
"\\end{math}"
],
"text/plain": [
"(e_0, e_1, e_2, e_3, e_4, e_5)"
]
},
"execution_count": 1,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"%display latex\n",
"n = 5\n",
"\n",
"P = PolynomialRing(QQ, \",\".join(f\"x_{i}\" for i in range(1, n+1)), order='deglex')\n",
"P.inject_variables()\n",
"\n",
"var(\",\".join(f\"e_{i}\" for i in range(n+1)))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Si definisce il valore che deve assumere la funzione $e(d)$, che rappresenta il polinomio simmetrico $e_d$, nel\n",
"seguente modo:\n",
"\n",
"$$e(d) = \\begin{cases}1 & \\text{se }d=0, \\\\ \\displaystyle \\sum_{1\\leq i_1 < i_2 < \\cdots < i_d \\leq n} \\underbrace{x_{i_1} \\cdots x_{i_d}}_{d\\text{ volte}} & \\text{altrimenti.} \\end{cases}$$"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"from functools import reduce\n",
"from itertools import combinations\n",
"from operator import mul\n",
"\n",
"def e(d: Integer):\n",
" if d == 0:\n",
" return 1\n",
" \n",
" return sum(reduce(mul, [P(f\"x_{j}\") for j in i], 1) for i in combinations(range(1, n+1), d))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Si definisce una funzione $\\beta(\\operatorname{exp\\_lt})$ che prende in ingresso una tupla ordinata $\\operatorname{exp\\_lt} \\in \\mathbb{N}^n$ e restituisce una tupla dello stesso tipo definita nel seguente modo:\n",
"\n",
"$$\\beta(\\operatorname{exp\\_lt})_i = \\begin{cases} \\operatorname{exp\\_lt}_i - \\operatorname{exp\\_lt}_{i+1} & \\text{se }1 \\leq i < n, \\\\ \\operatorname{exp\\_lt}_i & \\text{altrimenti.} \\end{cases}$$"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"def beta(exp_lt):\n",
" return [e - exp_lt[i+1] if i != n-1 else e for i, e in enumerate(exp_lt)]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Si definiscono due funzioni analoghe, dette $\\operatorname{e\\_prod}$ e $\\operatorname{e\\_prod\\_value}$. La seconda restituisce lo stesso polinomio di $\\operatorname{e\\_prod}$ sostituendo ai simboli $e_i$ i corrispettivi valori $e(i)$. Pertanto si definisce solo il valore della prima funzione.\n",
"\n",
"Tale funzione $\\operatorname{e\\_prod}$ prende in ingresso una tupla $b \\in \\mathbb{N}^n$ e restituisce $e^b = {e_1}^{b_1} {e_2}^{b_2} \\cdots {e_n}^{b_n}$."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"def e_prod(b):\n",
" return reduce(mul, [eval(f\"e_{i+1}\")^k for i, k in enumerate(b)], 1)\n",
"\n",
"\n",
"def e_prod_value(b):\n",
" return reduce(mul, [e(i+1)^k for i, k in enumerate(b)], 1)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Si definisce infine la funzione $\\operatorname{combination}(\\operatorname{poly}(x))$, che prende in ingresso un polinomio simmetrico $\\operatorname{poly}(x)$ e ne restituisce la rappresentazione in $F[e_1, \\ldots, e_n]$, secondo il seguente algoritmo.\n",
"\n",
" - se $\\operatorname{poly}(x)$ è $0$ o ha grado nullo, la sua rappresentazione in $F[e_1, \\ldots, e_n]$ è già $\\operatorname{poly}(x)$, e quindi la funzione restituisce il polinomio in ingresso senza modificarlo,\n",
" - altrimenti, si considera, secondo il _deglex_, il _leading term_ di $\\operatorname{poly}(x)$, detto $\\operatorname{lt}$:\n",
" - detta $\\alpha$ la tupla ordinata degli esponenti di $\\operatorname{lt}$, si calcola $\\beta(\\alpha)$, detto $b$,\n",
" - detto $c$ il coefficiente razionale di $\\operatorname{lt}$, si restituisce la rappresentazione simbolica $c \\cdot \\operatorname{e\\_prod(b)}$, a cui si aggiunge ricorsivamente la rappresentazione del polinomio $\\operatorname{poly(x)} -\\, c \\cdot \\operatorname{e\\_prod\\_value(b)}$, ottenuta reiterando l'algoritmo su di esso."
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"def combination(poly):\n",
" if isinstance(poly, Integer) or isinstance(poly, Rational) or poly == 0 or poly.degree() == 0:\n",
" return poly\n",
" \n",
" lt = sorted(list(poly), reverse=True)[0]\n",
" \n",
" try:\n",
" b = beta(lt[1].exponents()[0])\n",
" return lt[0] * e_prod(b) + combination(poly - lt[0] * e_prod_value(b))\n",
" except (AttributeError, TypeError):\n",
" raise TypeError(\"The given polynomial is not of symmetric kind\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Si sceglie inoltre un polinomio $\\operatorname{poly}(x)$ che _deve_ essere simmetrico -- qualora non fosse tale, l'algoritmo non terminerà con successo (se terminasse con successo, il polinomio sarebbe combinazione di polinomi simmetrici, e sarebbe dunque anch'esso simmetrico, ↯)."
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}x_{1}^{2} x_{2}^{2} x_{3}^{2} x_{4}^{2} x_{5}^{2} - 2 x_{1}^{3} x_{2} x_{3} x_{4} x_{5} - 2 x_{1} x_{2}^{3} x_{3} x_{4} x_{5} - 2 x_{1} x_{2} x_{3}^{3} x_{4} x_{5} - 2 x_{1} x_{2} x_{3} x_{4}^{3} x_{5} - 2 x_{1} x_{2} x_{3} x_{4} x_{5}^{3} + x_{1}^{4} + 2 x_{1}^{2} x_{2}^{2} + 2 x_{1}^{2} x_{3}^{2} + 2 x_{1}^{2} x_{4}^{2} + 2 x_{1}^{2} x_{5}^{2} + x_{2}^{4} + 2 x_{2}^{2} x_{3}^{2} + 2 x_{2}^{2} x_{4}^{2} + 2 x_{2}^{2} x_{5}^{2} + x_{3}^{4} + 2 x_{3}^{2} x_{4}^{2} + 2 x_{3}^{2} x_{5}^{2} + x_{4}^{4} + 2 x_{4}^{2} x_{5}^{2} + x_{5}^{4} + x_{1} + x_{2} + x_{3} + x_{4} + x_{5}</script></html>"
],
"text/latex": [
"\\begin{math}\n",
"\\newcommand{\\Bold}[1]{\\mathbf{#1}}x_{1}^{2} x_{2}^{2} x_{3}^{2} x_{4}^{2} x_{5}^{2} - 2 x_{1}^{3} x_{2} x_{3} x_{4} x_{5} - 2 x_{1} x_{2}^{3} x_{3} x_{4} x_{5} - 2 x_{1} x_{2} x_{3}^{3} x_{4} x_{5} - 2 x_{1} x_{2} x_{3} x_{4}^{3} x_{5} - 2 x_{1} x_{2} x_{3} x_{4} x_{5}^{3} + x_{1}^{4} + 2 x_{1}^{2} x_{2}^{2} + 2 x_{1}^{2} x_{3}^{2} + 2 x_{1}^{2} x_{4}^{2} + 2 x_{1}^{2} x_{5}^{2} + x_{2}^{4} + 2 x_{2}^{2} x_{3}^{2} + 2 x_{2}^{2} x_{4}^{2} + 2 x_{2}^{2} x_{5}^{2} + x_{3}^{4} + 2 x_{3}^{2} x_{4}^{2} + 2 x_{3}^{2} x_{5}^{2} + x_{4}^{4} + 2 x_{4}^{2} x_{5}^{2} + x_{5}^{4} + x_{1} + x_{2} + x_{3} + x_{4} + x_{5}\n",
"\\end{math}"
],
"text/plain": [
"x_1^2*x_2^2*x_3^2*x_4^2*x_5^2 - 2*x_1^3*x_2*x_3*x_4*x_5 - 2*x_1*x_2^3*x_3*x_4*x_5 - 2*x_1*x_2*x_3^3*x_4*x_5 - 2*x_1*x_2*x_3*x_4^3*x_5 - 2*x_1*x_2*x_3*x_4*x_5^3 + x_1^4 + 2*x_1^2*x_2^2 + 2*x_1^2*x_3^2 + 2*x_1^2*x_4^2 + 2*x_1^2*x_5^2 + x_2^4 + 2*x_2^2*x_3^2 + 2*x_2^2*x_4^2 + 2*x_2^2*x_5^2 + x_3^4 + 2*x_3^2*x_4^2 + 2*x_3^2*x_5^2 + x_4^4 + 2*x_4^2*x_5^2 + x_5^4 + x_1 + x_2 + x_3 + x_4 + x_5"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Il polinomio deve essere simmetrico...\n",
"poly = x_1 + x_2 + x_3 + x_4 + x_5 + (x_1^2 + x_2^2 + x_3^2 + x_4^2 + x_5^2 - x_1*x_2*x_3*x_4*x_5)^2\n",
"poly"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Si calcola adesso la rappresentazione di $\\operatorname{poly}(x)$ in funzione dei polinomi simmetrici elementari secondo l'implementazione di $\\operatorname{combination}$:"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}e_{1}^{4} - 4 \\, e_{1}^{2} e_{2} - 2 \\, e_{1}^{2} e_{5} + 4 \\, e_{2}^{2} + 4 \\, e_{2} e_{5} + e_{5}^{2} + e_{1}</script></html>"
],
"text/latex": [
"\\begin{math}\n",
"\\newcommand{\\Bold}[1]{\\mathbf{#1}}e_{1}^{4} - 4 \\, e_{1}^{2} e_{2} - 2 \\, e_{1}^{2} e_{5} + 4 \\, e_{2}^{2} + 4 \\, e_{2} e_{5} + e_{5}^{2} + e_{1}\n",
"\\end{math}"
],
"text/plain": [
"e_1^4 - 4*e_1^2*e_2 - 2*e_1^2*e_5 + 4*e_2^2 + 4*e_2*e_5 + e_5^2 + e_1"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"combination(poly)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"***"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Data una somma di potenze simmetrica, è possibile implementare un algoritmo di rappresentazione negli $e_i$ secondo le [identità di Newton-Girard](https://it.wikipedia.org/w/index.php?title=Identit%C3%A0_di_Newton&oldid=127634236#Enunciato_in_forma_relativa_ai_polinomi_simmetrici_elementari). Si definisce allora la funzione $\\operatorname{newton\\_girard}(k)$, che prende in ingresso un $k \\in \\mathbb{N}$ e restituisce la rappresentazione di $\\sum_{i=1}^n {x_i}^k$ nel seguente modo:\n",
"\n",
"$$\\operatorname{newton\\_girard}(k) = \\begin{cases} n & \\text{se } k = 0, \\\\ (-1)^{k+1} \\cdot (k e_{k} + \\sum_{i=1}^{k-1} (-1)^i \\operatorname{newton\\_girard}(i) \\, e_{k-1}) & \\text{altrimenti}, \\end{cases}$$\n",
"\n",
"dove si pone $e_i = 0$ per ogni $i > n$.\n",
"\n",
"La funzione è implementata con l'ausilio di un sistema di _caching_, affinché non vengano ricalcolati i valori già calcolati."
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"from functools import lru_cache\n",
"\n",
"@lru_cache(maxsize=None)\n",
"def newton_girard(k): \n",
" if k == 0:\n",
" return n\n",
" \n",
" return ((-1)**(k+1) * ((k * eval(f\"e_{k}\") if k <= n else 0) +\n",
" sum((-1)**i * newton_girard(i) * eval(f\"e_{k - i}\") for i in range(max(1, k-n), k)))).expand()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Si definisce infine la funzione $\\operatorname{sum\\_of\\_powers}(k)$, che, dato in ingresso un $k \\in \\mathbb{N}$, restituisce la rappresentazione di $\\sum_{i=1}^n (x_i)^k$ secondo la funzione $\\operatorname{combination}$ già definita."
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
"def sum_of_powers(k):\n",
" return combination(sum(eval(f\"x_{i}\")^k for i in range(1, n+1)))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Si sceglie infine un $k \\in \\mathbb{N}$ al quale elevare tutti le variabili della somma."
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [],
"source": [
"k = 8"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Si computa la rappresentazione di $\\sum_{i=1}^n (x_i)^k$ prima secondo $\\operatorname{newton\\_girard}$, e poi secondo $\\operatorname{sum\\_of\\_powers}$, e si verifica che siano uguali."
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}e_{1}^{8} - 8 \\, e_{1}^{6} e_{2} + 20 \\, e_{1}^{4} e_{2}^{2} + 8 \\, e_{1}^{5} e_{3} - 16 \\, e_{1}^{2} e_{2}^{3} - 32 \\, e_{1}^{3} e_{2} e_{3} - 8 \\, e_{1}^{4} e_{4} + 2 \\, e_{2}^{4} + 24 \\, e_{1} e_{2}^{2} e_{3} + 12 \\, e_{1}^{2} e_{3}^{2} + 24 \\, e_{1}^{2} e_{2} e_{4} + 8 \\, e_{1}^{3} e_{5} - 8 \\, e_{2} e_{3}^{2} - 8 \\, e_{2}^{2} e_{4} - 16 \\, e_{1} e_{3} e_{4} - 16 \\, e_{1} e_{2} e_{5} + 4 \\, e_{4}^{2} + 8 \\, e_{3} e_{5}</script></html>"
],
"text/latex": [
"\\begin{math}\n",
"\\newcommand{\\Bold}[1]{\\mathbf{#1}}e_{1}^{8} - 8 \\, e_{1}^{6} e_{2} + 20 \\, e_{1}^{4} e_{2}^{2} + 8 \\, e_{1}^{5} e_{3} - 16 \\, e_{1}^{2} e_{2}^{3} - 32 \\, e_{1}^{3} e_{2} e_{3} - 8 \\, e_{1}^{4} e_{4} + 2 \\, e_{2}^{4} + 24 \\, e_{1} e_{2}^{2} e_{3} + 12 \\, e_{1}^{2} e_{3}^{2} + 24 \\, e_{1}^{2} e_{2} e_{4} + 8 \\, e_{1}^{3} e_{5} - 8 \\, e_{2} e_{3}^{2} - 8 \\, e_{2}^{2} e_{4} - 16 \\, e_{1} e_{3} e_{4} - 16 \\, e_{1} e_{2} e_{5} + 4 \\, e_{4}^{2} + 8 \\, e_{3} e_{5}\n",
"\\end{math}"
],
"text/plain": [
"e_1^8 - 8*e_1^6*e_2 + 20*e_1^4*e_2^2 + 8*e_1^5*e_3 - 16*e_1^2*e_2^3 - 32*e_1^3*e_2*e_3 - 8*e_1^4*e_4 + 2*e_2^4 + 24*e_1*e_2^2*e_3 + 12*e_1^2*e_3^2 + 24*e_1^2*e_2*e_4 + 8*e_1^3*e_5 - 8*e_2*e_3^2 - 8*e_2^2*e_4 - 16*e_1*e_3*e_4 - 16*e_1*e_2*e_5 + 4*e_4^2 + 8*e_3*e_5"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"a = newton_girard(k)\n",
"a"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}e_{1}^{8} - 8 \\, e_{1}^{6} e_{2} + 20 \\, e_{1}^{4} e_{2}^{2} + 8 \\, e_{1}^{5} e_{3} - 16 \\, e_{1}^{2} e_{2}^{3} - 32 \\, e_{1}^{3} e_{2} e_{3} - 8 \\, e_{1}^{4} e_{4} + 2 \\, e_{2}^{4} + 24 \\, e_{1} e_{2}^{2} e_{3} + 12 \\, e_{1}^{2} e_{3}^{2} + 24 \\, e_{1}^{2} e_{2} e_{4} + 8 \\, e_{1}^{3} e_{5} - 8 \\, e_{2} e_{3}^{2} - 8 \\, e_{2}^{2} e_{4} - 16 \\, e_{1} e_{3} e_{4} - 16 \\, e_{1} e_{2} e_{5} + 4 \\, e_{4}^{2} + 8 \\, e_{3} e_{5}</script></html>"
],
"text/latex": [
"\\begin{math}\n",
"\\newcommand{\\Bold}[1]{\\mathbf{#1}}e_{1}^{8} - 8 \\, e_{1}^{6} e_{2} + 20 \\, e_{1}^{4} e_{2}^{2} + 8 \\, e_{1}^{5} e_{3} - 16 \\, e_{1}^{2} e_{2}^{3} - 32 \\, e_{1}^{3} e_{2} e_{3} - 8 \\, e_{1}^{4} e_{4} + 2 \\, e_{2}^{4} + 24 \\, e_{1} e_{2}^{2} e_{3} + 12 \\, e_{1}^{2} e_{3}^{2} + 24 \\, e_{1}^{2} e_{2} e_{4} + 8 \\, e_{1}^{3} e_{5} - 8 \\, e_{2} e_{3}^{2} - 8 \\, e_{2}^{2} e_{4} - 16 \\, e_{1} e_{3} e_{4} - 16 \\, e_{1} e_{2} e_{5} + 4 \\, e_{4}^{2} + 8 \\, e_{3} e_{5}\n",
"\\end{math}"
],
"text/plain": [
"e_1^8 - 8*e_1^6*e_2 + 20*e_1^4*e_2^2 + 8*e_1^5*e_3 - 16*e_1^2*e_2^3 - 32*e_1^3*e_2*e_3 - 8*e_1^4*e_4 + 2*e_2^4 + 24*e_1*e_2^2*e_3 + 12*e_1^2*e_3^2 + 24*e_1^2*e_2*e_4 + 8*e_1^3*e_5 - 8*e_2*e_3^2 - 8*e_2^2*e_4 - 16*e_1*e_3*e_4 - 16*e_1*e_2*e_5 + 4*e_4^2 + 8*e_3*e_5"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"b = sum_of_powers(k)\n",
"b"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}0</script></html>"
],
"text/latex": [
"\\begin{math}\n",
"\\newcommand{\\Bold}[1]{\\mathbf{#1}}0\n",
"\\end{math}"
],
"text/plain": [
"0"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"a - b"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"***"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Sia ora:\n",
"\n",
"$$f(x) = x^n + a_{n-1} x^{n-1} \\ldots + a_0,$$\n",
"\n",
"con radici $x_1$, $x_2$, ..., $x_n$. Allora si definisce **discriminante** di $f$ la seguente produttoria:\n",
"\n",
"$$\\Delta(f) = \\displaystyle \\prod_{1 \\leq i < j \\leq n} (x_i - x_j)^2.$$\n",
"\n",
"In particolare, vale la seguente proprietà:\n",
"\n",
"$$\\exists\\, i \\neq j \\mid x_i = x_j \\iff \\Delta(f) = 0.$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Si verifica facilmente che $\\Delta(f)$ è un polinomio simmetrico. Poiché ogni permutazione è una composizione di trasposizioni, è sufficiente verificare che invertendo due radici $x_i$ e $x_j$ il discriminante rimanga invariato:\n",
"\n",
" - i fattori che contengono solo uno tra $x_i$ e $x_j$ mantengono la somma della base invariata o al più cambiano di segno, e dunque, elevando al quadrato, rimangono invariati,\n",
" - il fattore che contiene sia $x_i$ che $x_j$ cambia la propria base di segno, ma rimane invariato elevando al quadrato.\n",
" \n",
"Poiché $\\Delta(f)$ è un polinomio simmetrico nelle variabili $x_1$, ..., $x_n$, per il _Teorema fondamentale dei polinomi simmetrici_, si scrive in modo unico in funzione dei polinomi simmetrici elementari $e_i(x_1, \\ldots, x_n)$. Tuttavia tali polinomi simmetrici elementari altro non sono che i coefficienti di $f(x)$, a meno del segno. In particolare vale che:\n",
"\n",
"$$e_i(x_1, \\ldots, x_n) = (-1)^{i} a_{n-i}, \\quad \\text{per } 0 \\leq i \\leq n.$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Si definiscono quindi i simboli $a_0$, ..., $a_n$ e si costruisce una funzione $\\Delta(n)$ che restituisce il discriminante di un generico polinomio di $n$-esimo grado dato in ingresso in funzione degli $a_i$ mediante $\\operatorname{combination}$."
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [],
"source": [
"var(\",\".join(f\"a_{i}\" for i in range(n+1)))\n",
"\n",
"def delta(n):\n",
" \n",
" f = reduce(mul, (eval(f\"(x_{i}-x_{j})\")^2 for i, j in combinations(range(1, n+1), 2)), 1)\n",
" c = combination(f)\n",
"\n",
" for i in range(1, n+1):\n",
" if i % 2:\n",
" c = eval(f\"c.substitute(e_{i}=-a_{n-i})\")\n",
" else:\n",
" c = eval(f\"c.substitute(e_{i}=a_{n-i})\")\n",
"\n",
" return c"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Dunque, per l'$n$ scelto in partenza, il discriminante del generico polinomio di $n$-esimo grado è il seguente:"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}a_{1}^{2} a_{2}^{2} a_{3}^{2} a_{4}^{2} - 4 \\, a_{0} a_{2}^{3} a_{3}^{2} a_{4}^{2} - 4 \\, a_{1}^{3} a_{3}^{3} a_{4}^{2} + 18 \\, a_{0} a_{1} a_{2} a_{3}^{3} a_{4}^{2} - 27 \\, a_{0}^{2} a_{3}^{4} a_{4}^{2} - 4 \\, a_{1}^{2} a_{2}^{3} a_{4}^{3} + 16 \\, a_{0} a_{2}^{4} a_{4}^{3} + 18 \\, a_{1}^{3} a_{2} a_{3} a_{4}^{3} - 80 \\, a_{0} a_{1} a_{2}^{2} a_{3} a_{4}^{3} - 6 \\, a_{0} a_{1}^{2} a_{3}^{2} a_{4}^{3} + 144 \\, a_{0}^{2} a_{2} a_{3}^{2} a_{4}^{3} - 27 \\, a_{1}^{4} a_{4}^{4} + 144 \\, a_{0} a_{1}^{2} a_{2} a_{4}^{4} - 128 \\, a_{0}^{2} a_{2}^{2} a_{4}^{4} - 192 \\, a_{0}^{2} a_{1} a_{3} a_{4}^{4} + 256 \\, a_{0}^{3} a_{4}^{5} - 4 \\, a_{1}^{2} a_{2}^{2} a_{3}^{3} + 16 \\, a_{0} a_{2}^{3} a_{3}^{3} + 16 \\, a_{1}^{3} a_{3}^{4} - 72 \\, a_{0} a_{1} a_{2} a_{3}^{4} + 108 \\, a_{0}^{2} a_{3}^{5} + 18 \\, a_{1}^{2} a_{2}^{3} a_{3} a_{4} - 72 \\, a_{0} a_{2}^{4} a_{3} a_{4} - 80 \\, a_{1}^{3} a_{2} a_{3}^{2} a_{4} + 356 \\, a_{0} a_{1} a_{2}^{2} a_{3}^{2} a_{4} + 24 \\, a_{0} a_{1}^{2} a_{3}^{3} a_{4} - 630 \\, a_{0}^{2} a_{2} a_{3}^{3} a_{4} - 6 \\, a_{1}^{3} a_{2}^{2} a_{4}^{2} + 24 \\, a_{0} a_{1} a_{2}^{3} a_{4}^{2} + 144 \\, a_{1}^{4} a_{3} a_{4}^{2} - 746 \\, a_{0} a_{1}^{2} a_{2} a_{3} a_{4}^{2} + 560 \\, a_{0}^{2} a_{2}^{2} a_{3} a_{4}^{2} + 1020 \\, a_{0}^{2} a_{1} a_{3}^{2} a_{4}^{2} - 36 \\, a_{0} a_{1}^{3} a_{4}^{3} + 160 \\, a_{0}^{2} a_{1} a_{2} a_{4}^{3} - 1600 \\, a_{0}^{3} a_{3} a_{4}^{3} - 27 \\, a_{1}^{2} a_{2}^{4} + 108 \\, a_{0} a_{2}^{5} + 144 \\, a_{1}^{3} a_{2}^{2} a_{3} - 630 \\, a_{0} a_{1} a_{2}^{3} a_{3} - 128 \\, a_{1}^{4} a_{3}^{2} + 560 \\, a_{0} a_{1}^{2} a_{2} a_{3}^{2} + 825 \\, a_{0}^{2} a_{2}^{2} a_{3}^{2} - 900 \\, a_{0}^{2} a_{1} a_{3}^{3} - 192 \\, a_{1}^{4} a_{2} a_{4} + 1020 \\, a_{0} a_{1}^{2} a_{2}^{2} a_{4} - 900 \\, a_{0}^{2} a_{2}^{3} a_{4} + 160 \\, a_{0} a_{1}^{3} a_{3} a_{4} - 2050 \\, a_{0}^{2} a_{1} a_{2} a_{3} a_{4} + 2250 \\, a_{0}^{3} a_{3}^{2} a_{4} - 50 \\, a_{0}^{2} a_{1}^{2} a_{4}^{2} + 2000 \\, a_{0}^{3} a_{2} a_{4}^{2} + 256 \\, a_{1}^{5} - 1600 \\, a_{0} a_{1}^{3} a_{2} + 2250 \\, a_{0}^{2} a_{1} a_{2}^{2} + 2000 \\, a_{0}^{2} a_{1}^{2} a_{3} - 3750 \\, a_{0}^{3} a_{2} a_{3} - 2500 \\, a_{0}^{3} a_{1} a_{4} + 3125 \\, a_{0}^{4}</script></html>"
],
"text/latex": [
"\\begin{math}\n",
"\\newcommand{\\Bold}[1]{\\mathbf{#1}}a_{1}^{2} a_{2}^{2} a_{3}^{2} a_{4}^{2} - 4 \\, a_{0} a_{2}^{3} a_{3}^{2} a_{4}^{2} - 4 \\, a_{1}^{3} a_{3}^{3} a_{4}^{2} + 18 \\, a_{0} a_{1} a_{2} a_{3}^{3} a_{4}^{2} - 27 \\, a_{0}^{2} a_{3}^{4} a_{4}^{2} - 4 \\, a_{1}^{2} a_{2}^{3} a_{4}^{3} + 16 \\, a_{0} a_{2}^{4} a_{4}^{3} + 18 \\, a_{1}^{3} a_{2} a_{3} a_{4}^{3} - 80 \\, a_{0} a_{1} a_{2}^{2} a_{3} a_{4}^{3} - 6 \\, a_{0} a_{1}^{2} a_{3}^{2} a_{4}^{3} + 144 \\, a_{0}^{2} a_{2} a_{3}^{2} a_{4}^{3} - 27 \\, a_{1}^{4} a_{4}^{4} + 144 \\, a_{0} a_{1}^{2} a_{2} a_{4}^{4} - 128 \\, a_{0}^{2} a_{2}^{2} a_{4}^{4} - 192 \\, a_{0}^{2} a_{1} a_{3} a_{4}^{4} + 256 \\, a_{0}^{3} a_{4}^{5} - 4 \\, a_{1}^{2} a_{2}^{2} a_{3}^{3} + 16 \\, a_{0} a_{2}^{3} a_{3}^{3} + 16 \\, a_{1}^{3} a_{3}^{4} - 72 \\, a_{0} a_{1} a_{2} a_{3}^{4} + 108 \\, a_{0}^{2} a_{3}^{5} + 18 \\, a_{1}^{2} a_{2}^{3} a_{3} a_{4} - 72 \\, a_{0} a_{2}^{4} a_{3} a_{4} - 80 \\, a_{1}^{3} a_{2} a_{3}^{2} a_{4} + 356 \\, a_{0} a_{1} a_{2}^{2} a_{3}^{2} a_{4} + 24 \\, a_{0} a_{1}^{2} a_{3}^{3} a_{4} - 630 \\, a_{0}^{2} a_{2} a_{3}^{3} a_{4} - 6 \\, a_{1}^{3} a_{2}^{2} a_{4}^{2} + 24 \\, a_{0} a_{1} a_{2}^{3} a_{4}^{2} + 144 \\, a_{1}^{4} a_{3} a_{4}^{2} - 746 \\, a_{0} a_{1}^{2} a_{2} a_{3} a_{4}^{2} + 560 \\, a_{0}^{2} a_{2}^{2} a_{3} a_{4}^{2} + 1020 \\, a_{0}^{2} a_{1} a_{3}^{2} a_{4}^{2} - 36 \\, a_{0} a_{1}^{3} a_{4}^{3} + 160 \\, a_{0}^{2} a_{1} a_{2} a_{4}^{3} - 1600 \\, a_{0}^{3} a_{3} a_{4}^{3} - 27 \\, a_{1}^{2} a_{2}^{4} + 108 \\, a_{0} a_{2}^{5} + 144 \\, a_{1}^{3} a_{2}^{2} a_{3} - 630 \\, a_{0} a_{1} a_{2}^{3} a_{3} - 128 \\, a_{1}^{4} a_{3}^{2} + 560 \\, a_{0} a_{1}^{2} a_{2} a_{3}^{2} + 825 \\, a_{0}^{2} a_{2}^{2} a_{3}^{2} - 900 \\, a_{0}^{2} a_{1} a_{3}^{3} - 192 \\, a_{1}^{4} a_{2} a_{4} + 1020 \\, a_{0} a_{1}^{2} a_{2}^{2} a_{4} - 900 \\, a_{0}^{2} a_{2}^{3} a_{4} + 160 \\, a_{0} a_{1}^{3} a_{3} a_{4} - 2050 \\, a_{0}^{2} a_{1} a_{2} a_{3} a_{4} + 2250 \\, a_{0}^{3} a_{3}^{2} a_{4} - 50 \\, a_{0}^{2} a_{1}^{2} a_{4}^{2} + 2000 \\, a_{0}^{3} a_{2} a_{4}^{2} + 256 \\, a_{1}^{5} - 1600 \\, a_{0} a_{1}^{3} a_{2} + 2250 \\, a_{0}^{2} a_{1} a_{2}^{2} + 2000 \\, a_{0}^{2} a_{1}^{2} a_{3} - 3750 \\, a_{0}^{3} a_{2} a_{3} - 2500 \\, a_{0}^{3} a_{1} a_{4} + 3125 \\, a_{0}^{4}\n",
"\\end{math}"
],
"text/plain": [
"a_1^2*a_2^2*a_3^2*a_4^2 - 4*a_0*a_2^3*a_3^2*a_4^2 - 4*a_1^3*a_3^3*a_4^2 + 18*a_0*a_1*a_2*a_3^3*a_4^2 - 27*a_0^2*a_3^4*a_4^2 - 4*a_1^2*a_2^3*a_4^3 + 16*a_0*a_2^4*a_4^3 + 18*a_1^3*a_2*a_3*a_4^3 - 80*a_0*a_1*a_2^2*a_3*a_4^3 - 6*a_0*a_1^2*a_3^2*a_4^3 + 144*a_0^2*a_2*a_3^2*a_4^3 - 27*a_1^4*a_4^4 + 144*a_0*a_1^2*a_2*a_4^4 - 128*a_0^2*a_2^2*a_4^4 - 192*a_0^2*a_1*a_3*a_4^4 + 256*a_0^3*a_4^5 - 4*a_1^2*a_2^2*a_3^3 + 16*a_0*a_2^3*a_3^3 + 16*a_1^3*a_3^4 - 72*a_0*a_1*a_2*a_3^4 + 108*a_0^2*a_3^5 + 18*a_1^2*a_2^3*a_3*a_4 - 72*a_0*a_2^4*a_3*a_4 - 80*a_1^3*a_2*a_3^2*a_4 + 356*a_0*a_1*a_2^2*a_3^2*a_4 + 24*a_0*a_1^2*a_3^3*a_4 - 630*a_0^2*a_2*a_3^3*a_4 - 6*a_1^3*a_2^2*a_4^2 + 24*a_0*a_1*a_2^3*a_4^2 + 144*a_1^4*a_3*a_4^2 - 746*a_0*a_1^2*a_2*a_3*a_4^2 + 560*a_0^2*a_2^2*a_3*a_4^2 + 1020*a_0^2*a_1*a_3^2*a_4^2 - 36*a_0*a_1^3*a_4^3 + 160*a_0^2*a_1*a_2*a_4^3 - 1600*a_0^3*a_3*a_4^3 - 27*a_1^2*a_2^4 + 108*a_0*a_2^5 + 144*a_1^3*a_2^2*a_3 - 630*a_0*a_1*a_2^3*a_3 - 128*a_1^4*a_3^2 + 560*a_0*a_1^2*a_2*a_3^2 + 825*a_0^2*a_2^2*a_3^2 - 900*a_0^2*a_1*a_3^3 - 192*a_1^4*a_2*a_4 + 1020*a_0*a_1^2*a_2^2*a_4 - 900*a_0^2*a_2^3*a_4 + 160*a_0*a_1^3*a_3*a_4 - 2050*a_0^2*a_1*a_2*a_3*a_4 + 2250*a_0^3*a_3^2*a_4 - 50*a_0^2*a_1^2*a_4^2 + 2000*a_0^3*a_2*a_4^2 + 256*a_1^5 - 1600*a_0*a_1^3*a_2 + 2250*a_0^2*a_1*a_2^2 + 2000*a_0^2*a_1^2*a_3 - 3750*a_0^3*a_2*a_3 - 2500*a_0^3*a_1*a_4 + 3125*a_0^4"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"delta(n)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Infine si costruisce la funzione $\\operatorname{evaluate\\_delta}$ che, dato in ingresso un polinomio $f(x)$ di $n$-esimo grado, restituisce il valore di $\\Delta(f)$, sostituendo agli $a_i$ generici di $\\operatorname{delta}(n)$ i valori dei coefficienti di $f$."
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [],
"source": [
"def evaluate_delta(f):\n",
" d = delta(n)\n",
" \n",
" for i, a in enumerate(f.list()):\n",
" d = eval(f\"d.substitute(a_{i}=a)\")\n",
" \n",
" return d"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Si verifica adesso che per un polinomio con radici multiple il valore di $\\operatorname{evaluate\\_delta}$ è precisamente zero:"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}{\\left(x - 2\\right)}^{2} {\\left(x - 3\\right)} {\\left(x - 4\\right)} {\\left(x - 5\\right)}</script></html>"
],
"text/latex": [
"\\begin{math}\n",
"\\newcommand{\\Bold}[1]{\\mathbf{#1}}{\\left(x - 2\\right)}^{2} {\\left(x - 3\\right)} {\\left(x - 4\\right)} {\\left(x - 5\\right)}\n",
"\\end{math}"
],
"text/plain": [
"(x - 2)^2*(x - 3)*(x - 4)*(x - 5)"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"f = (x-2)^2*(x-3)*(x-4)*(x-5)\n",
"f"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}x^{5} - 16 \\, x^{4} + 99 \\, x^{3} - 296 \\, x^{2} + 428 \\, x - 240</script></html>"
],
"text/latex": [
"\\begin{math}\n",
"\\newcommand{\\Bold}[1]{\\mathbf{#1}}x^{5} - 16 \\, x^{4} + 99 \\, x^{3} - 296 \\, x^{2} + 428 \\, x - 240\n",
"\\end{math}"
],
"text/plain": [
"x^5 - 16*x^4 + 99*x^3 - 296*x^2 + 428*x - 240"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"f.expand()"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}0</script></html>"
],
"text/latex": [
"\\begin{math}\n",
"\\newcommand{\\Bold}[1]{\\mathbf{#1}}0\n",
"\\end{math}"
],
"text/plain": [
"0"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"evaluate_delta(f)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Infine, si fa lo stesso con un polinomio con radici distinte, per verificare che $\\operatorname{evaluate\\_delta}$ è strettamente diverso da zero."
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}{\\left(x + 2\\right)} {\\left(x + i\\right)} {\\left(x - i\\right)} {\\left(x - 1\\right)} {\\left(x - 2\\right)}</script></html>"
],
"text/latex": [
"\\begin{math}\n",
"\\newcommand{\\Bold}[1]{\\mathbf{#1}}{\\left(x + 2\\right)} {\\left(x + i\\right)} {\\left(x - i\\right)} {\\left(x - 1\\right)} {\\left(x - 2\\right)}\n",
"\\end{math}"
],
"text/plain": [
"(x + 2)*(x + I)*(x - I)*(x - 1)*(x - 2)"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"g = (x+2)*(x+I)*(x-I)*(x-1)*(x-2)\n",
"g"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}x^{5} - x^{4} - 3 \\, x^{3} + 3 \\, x^{2} - 4 \\, x + 4</script></html>"
],
"text/latex": [
"\\begin{math}\n",
"\\newcommand{\\Bold}[1]{\\mathbf{#1}}x^{5} - x^{4} - 3 \\, x^{3} + 3 \\, x^{2} - 4 \\, x + 4\n",
"\\end{math}"
],
"text/plain": [
"x^5 - x^4 - 3*x^3 + 3*x^2 - 4*x + 4"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"g.expand()"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}-1440000</script></html>"
],
"text/latex": [
"\\begin{math}\n",
"\\newcommand{\\Bold}[1]{\\mathbf{#1}}-1440000\n",
"\\end{math}"
],
"text/plain": [
"-1440000"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"evaluate_delta(g)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"***\n",
"(c) 2022, [~videtta](https://poisson.phc.dm.unipi.it/~videtta/)"
]
}
],
"metadata": {
"celltoolbar": "Edit Metadata",
"kernelspec": {
"display_name": "SageMath 9.2",
"language": "sage",
"name": "sagemath"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.7"
}
},
"nbformat": 4,
"nbformat_minor": 4
}

@ -0,0 +1,153 @@
\documentclass[a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[italian]{babel}
\usepackage{amsfonts}
\usepackage{amsthm}
\usepackage{amssymb}
\usepackage{amsopn}
\usepackage{mathtools}
\title{Spazio vettoriale dei sottoinsiemi}
\author{Gabriel Antonio Videtta}
\date{\today}
\begin{document}
\maketitle
\newcommand{\FF}{\mathbb{F}_2}
\newcommand{\ZZ}{\mathbb{Z}}
\newtheorem{example}{Esempio}[section]
\newtheorem{exercise}{Esercizio}[section]
\newtheorem{theorem}{Teorema}[section]
\setlength\parindent{0pt}
\tableofcontents
\section{Il campo $\FF$ e verifica degli assiomi}
Dato un qualsiasi insieme X\footnote{Non ci soffermiamo sulla definizione di insieme,
sebbene da tale scelta possano scaturire vari paradossi. Rimandiamo per la risoluzione
di tali problemi a varie teorie assiomatiche, come quella di ZermeloFraenkel.} è possibile
estrarne uno spazio vettoriale. \\ \\
Per costruire l'insieme di vettori considereremo gli elementi di X, mentre il campo su cui verrà
costruito lo spazio sarà $\FF = \{0,1\} \, \cong \, \ZZ/2\ZZ$. Prima di costruire lo spazio,
assicuriamoci che $\FF$ sia effettivamente un campo\footnote{Non solo è un campo, ma è il più
piccolo campo non banale, ossia con più di un elemento.} e definiamolo. \\ \\
Le operazioni $+$ e $\cdot$ di questo campo sono esattamente le stesse impiegate in
$\ZZ/2\ZZ$ (i.e. in modulo 2, dove $2 \equiv 0$), o equivalentemente vengono definite in questo modo:
\begin{itemize}
\item $+ : \FF \to \FF$ t.c. $0+0=0$, \, $1+0=1$, \, $0+1=1$, \, $1+1=0$ (addizione)
\item $\cdot : \FF \to \FF$ t.c. $0\cdot0=0$, \, $1\cdot0=0$, \, $0\cdot1=0$, \, $1\cdot1=1$ (moltiplicazione)
\end{itemize}
Gli assiomi di campo sono effettivamente soddisfatti: gli inversi additivi di $0$ e $1$ sono $0$ e $1$ stessi, e $1$ è inverso moltiplicativo di sé stesso. Valgono chiaramente le
proprietà associative e distributive, mentre gli elementi neutri sono $0$ per l'addizione e
$1$ per la moltiplicazione.
Adesso è possibile costruirci sopra uno spazio vettoriale, che d'ora in poi chiameremo
$\Delta (X)$.
\section{Costruzione dello spazio vettoriale}
Ricordiamo una delle operazioni elementari degli insiemi, la cosiddetta \textit{differenza
simmetrica} $A \Delta B$. Essa altro non è che l'unione dei due insiemi tolta la loro
intersezione: \[A \Delta B = \left( A \cup B \right) \setminus \left( A \cap B \right).\]
Adesso definiamo $\Delta (X) = \{ \alpha_1 x_1 + \alpha_2 x_2 + \ldots + \alpha_n x_n \mid n \in \mathbb{N} \land x_i \in X, \alpha_i \in \FF \; \forall \, i \in \mathbb{N} \mid 1 \leq i \leq n \}$.
\begin{example}
Se $X = \{a, b\}$, $\Delta (X) = \{0, \, a, \, b, \, a+b\}$.
\end{example}
\begin{example}
Se $X = \{a, b, c\}$, $\Delta (X) = \{0, \, a, \, b, \, c, \, a+b, \, a+c, \, b+c, \, a+b+c\}$.
\end{example}
Dotiamo lo spazio di due operazioni, dette somma ($+$) e prodotto esterno ($\cdot$):
\begin{itemize}
\item $+ : \Delta (X) \to \Delta (X)$ t.c. $\forall \, a, b \in \Delta (X), \, a+b$ sia il risultato della
somma coefficiente a coefficiente\footnote{Esattamente come accade nei polinomi, dove
la somma di due polinomi è effettuata sommando i coefficienti dei monomi dello stesso
grado. L'unica differenza risiede nel ricordarsi che la somma dei coefficienti in $\Delta (X)$ è quella di $\FF$, dove il caso $1+1=0$ ha particolare rilevanza.}.
\item $\cdot : \Delta (X) \to \Delta (X)$ t.c. $\forall \, a \in \Delta (X), \, \delta \in \FF, \, \delta a$ sia il risultato del prodotto di $\delta$ con ogni coefficiente di $a$\footnote{Sussiste ancora l'analogia con i polinomi.}.
\end{itemize}
\begin{example}
Se $X = \{a, \, b\}$, $a+a=(1+1)a=0$ in $\Delta (X)$, mentre $a+b$ ''rimane'' $a+b$.
\end{example}
\begin{example}
Se $X = \{a, \, b\}$, $1\cdot a=a$ in $\Delta (X)$, mentre $0 \cdot a = 0$.
\end{example}
Queste operazioni verificano facilmente gli assiomi dello spazio vettoriale, pertanto $\Delta (X)$ è uno spazio vettoriale, la cui base è $X$ stesso\footnote{Ogni elemento di $\Delta (X)$ è infatti combinazione lineare univoca degli elementi di $X$ -- ancora una volta, come accade nei polinomi.}. \\
Pertanto $\dim \Delta (X) = |X|$, se $|X| < \infty$, altrimenti $\dim \Delta (X) = \infty$. \\
L'interpretazione (e l'utilità) di questo spazio è facilmente spiegata: ogni elemento di
$\Delta (X)$ definisce in modo univoco un sottoinsieme di $X$ e l'operazione definita
altro non è che la differenza simmetrica $A \Delta B$ ricordata all'inizio della sezione. \\
In altri termini, dotando dell'insieme delle parti (i.e. dei sottoinsiemi) di $X$, detto
$\wp(X)$, dell'operazione differenza simmetrica per l'addizione e dell'operazione esistenza\footnote{$1 \cdot X = X$, $0 \cdot X = \varnothing$.} per il prodotto esterno, si può verificare che questo costituisce
uno spazio vettoriale su $\FF$ isomorfo a $\Delta (X)$ nel caso in cui $X$ sia un insieme finito\footnote{L'isomorfismo impiegato nella dimostrazione difatti non è definito per i sottoinsiemi infiniti -- dopotutto, se $|X| = \infty$, $\Delta (X)$ è un insieme numerabile, mentre $\wp(X)$ non può esserlo.}.
\begin{theorem}
$|X| < \infty \Rightarrow \wp(X) \cong \Delta (X)$
\end{theorem}
\begin{proof}
Per dimostrare che i due spazi sono isomorfi si costruisce un'applicazione lineare
bigettiva. Definiamo pertanto $\phi : \wp(X) \to \Delta (X)$ in modo tale che:
\[\phi(\{a_1, \, \ldots, \, a_n\}) = a_1 + \ldots + a_n\]
Dimostriamo che $\phi$ è un'applicazione lineare, dimostrandone prima la linearità e poi
l'omogeneità. \\
Verifichiamo la linearità:
\[\begin{split}
&\phi (\{a_1, \, \ldots, \, a_n, \, b_{n+1}, \, \ldots, \, b_m \} \Delta \{a_1, \, \ldots, \, a_n, \, c_{n+1}, \, \ldots, \, c_k \}) = \\
&\;\;\;= \phi (\{ b_{n+1}, \, \ldots, \, b_m, \, c_{n+1}, \, \ldots, \, c_k \}) = \\
&\;\;\;= b_{n+1} + \ldots + b_m + \ldots + c_{n+1} + \ldots + c_k = \\
&\;\;\;= (a_1 + \ldots + b_{n+1} + \ldots + b_m) + (a_1 + \ldots + c_{n+1} + \ldots + c_k) = \\
&\;\;\;= \phi (\{a_1, \, \ldots, \, a_n, \, b_{n+1}, \ldots, \, b_m \}) + \phi (\{a_1, \, \ldots, \, a_n, \, c_{n+1}, \ldots, \, c_k \}).
\end{split}\]
E l'omogeneità con $1$:
\[\phi (1 \cdot \{a_1, \, \ldots, \, a_n \}) = \phi (\{a_1, \, \ldots, \, a_n \}) = 1 \cdot \phi (\{a_1, \, \ldots, \, a_n \}).\]
Ed infine con $0$:
\[\phi (0 \cdot \{a_1, \, \ldots, \, a_n \}) = \phi (\varnothing) = 0 = 0 \cdot \phi (\{a_1, \, \ldots, \, a_n \}).\]
Questa applicazione è iniettiva, dal momento che $\operatorname{Ker}\phi = \{\varnothing\}$.
Inoltre $\phi$ è surgettiva, dal momento che una controimmagine di un elemento $d$ di $\Delta (X)$ è l'insieme delle parti letterali di $d$. \\
Poiché bigettiva, tale applicazione è un isomorfismo.
\end{proof}
\section{Note ed esercizi}
In realtà, è possibile costruire un'infinità di spazi su $X$ mantenendo le stesse operazioni, ma variando il campo su cui esso
è costruito. Un caso speciale, che merita una
menzione onorevole, è proprio $X = \{1, \, x, \, x^2, \, \ldots\}$ costruito su $\mathbb{R}$ (o un qualsiasi
$\mathbb{K}$ campo), che dà vita allo spazio dei polinomi, detto $\mathbb{R}[x]$ (o
$\mathbb{K}[x]$).
\begin{exercise}
Si esibisca un controesempio per la dimostrazione dell'isomorfismo nel caso infinito.
\end{exercise}
\begin{exercise}
Si dimostri che, se $X$ è finito, anche $\{ x_1, \, x_1+x_2, \, \ldots, \, \sum_{i=1}^{|X|} x_i \}$ con $x_i$ elementi distinti
di $X$ è una base di $\Delta (X)$.
\end{exercise}
\begin{exercise}
Dopo aver mostrato che $\{ 1, \, x, \, x^2 \, , \, \ldots\}$ è una base di $\mathbb{R}[x]$\footnote{Questa particolare base è detta \textit{base standard} di $\mathbb{R}[x]$.},
si dimostri che anche $\{ \sum_{i=0}^{j} x^i \mid j \in \mathbb{N}, \, j \geq 0 \}$, con $x^0 = 1$, lo è.
\end{exercise}
\end{document}

@ -0,0 +1,231 @@
\documentclass[a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[italian]{babel}
\usepackage{amsfonts}
\usepackage{amsthm}
\usepackage{amssymb}
\usepackage{amsopn}
\usepackage{mathtools}
\usepackage{marvosym}
\newcommand{\dual}[1]{#1^{*}}
\title{$V$ e $\dual V$ a confronto}
\author{Gabriel Antonio Videtta}
\date{\today}
\DeclareMathOperator{\tr}{tr}
\DeclareMathOperator{\Ker}{Ker}
\DeclareMathOperator{\Imm}{Im}
\setlength\parindent{0pt}
\begin{document}
\maketitle
\newcommand{\BB}{\mathcal{B}}
\newcommand{\FF}{\mathbb{F}_2}
\newcommand{\NN}{\mathbb{N}}
\newcommand{\ZZ}{\mathbb{Z}}
\newcommand{\KK}{\mathbb{K}}
\newcommand{\LL}[2]{\mathcal{L} \left(#1, \, #2\right)}
\newcommand{\MM}[2]{\mathcal{M}_{#1 \times #2}\left(\KK\right)}
\newcommand{\M}[1]{\mathcal{M}_{#1}\left(\KK\right)}
\newcommand{\Mbb}[3]{\mathcal{M}^{#1}_{#2} \left( #3 \right)}
\newcommand{\Mb}[2]{\mathcal{M}^{#1}_{#2}}
\theoremstyle{definition}
\newtheorem{definition}{Definizione}[section]
\renewcommand{\vec}[1]{\underline{#1}}
\newtheorem{example}{Esempio}[section]
\newtheorem{exercise}{Esercizio}[section]
\newtheorem{theorem}{Teorema}[section]
\newtheorem{proposition}{Proposizione}[section]
\newtheorem{corollary}{Corollario}[section]
\tableofcontents
\section{Premessa e motivazione}
Lo studio delle applicazioni lineari è riconosciuto come uno
degli aspetti fondamentali della geometria contemporanea. Non è
infatti una mera coincidenza che nella maggior parte delle
applicazioni impiegate nello studio dei sistemi lineari si
riconoscano proprietà che sono proprie delle applicazioni lineari. \\
Uno dei primi esempi importanti di applicazione lineare è
quello della funzione traccia $\tr : \M{n} \to \KK$, che
associa a una matrice quadrata la somma degli elementi della
diagonale principale. Un altro esempio è quello del determinante
$\det : \left(\KK^{n}\right)^n \to \KK$, un'applicazione che generalizza
il concetto di linearità a più argomenti. Si parla infatti in
questo caso di un'applicazione multilineare. \\
In ogni caso, queste due importanti applicazioni sono
accomunate dallo spazio di arrivo, il campo $\KK$, sul
quale si fonda lo spazio di partenza. Per approfondire lo
studio di questo tipo di applicazioni, si introduce
pertanto il concetto di \textbf{spazio duale}.
\section{Lo spazio duale e le sue proprietà}
\begin{definition}
Si dice \textbf{spazio duale} di uno spazio vettoriale $V$
lo spazio delle applicazioni lineari $\LL{V}{\KK}$, indicato con $\dual V$.
\end{definition}
\subsection{Il caso finito}
Prima di dedurre la dimensione e una base ``naturale'' di
$\dual V$, introduciamo il seguente teorema, che mette
in correlazione due spazi apparentemente scollegati.
\vskip 10pt
\begin{theorem} Siano $V$ e $W$ due spazi vettoriali di dimensione finita su $\KK$, e siano $\dim V = n \in \NN$, $\dim W = m \in \NN$. Allora $\LL{V}{W} \cong \MM{m}{n}$.
\label{isom}
\end{theorem}
\begin{proof}
Siano $\BB = \left(\vec v_1, \, \dots, \, \vec v_n\right)$ e
$\BB' = \left(\vec w_1, \, \dots, \, \vec w_m\right)$
basi ordinate rispettivamente di $V$ e di $W$. \\
Si considera l'applicazione lineare
$\Mb{\BB}{\BB'} : \LL{V}{W} \to \MM{m}{n}$, che
associa ad ogni applicazione lineare la sua matrice di
cambiamento di base. \\
Tale applicazione è iniettiva, dal momento che l'unica
applicazione a cui è associata la matrice nulla è l'applicazione
che associa ad ogni vettore lo zero di $W$. \\
Inoltre, $\Mb{\BB}{\BB'}$ è surgettiva, poiché data una
matrice $\mathbf{m} \in \MM{m}{n}$ si può costruire l'applicazione
$\phi : V \to W$ t.c. $\left[ \phi \left( v_i \right) \right]_{\BB'} = \mathbf{m}^i \; \forall \, i \in \NN \mid 1 \leq i \leq n$. \\
Dal momento che $\Mb{\BB}{\BB'}$ è sia iniettiva che
surgettiva, tale applicazione è bigettiva, e quindi
un isomorfismo.
\end{proof}
\vskip 10pt
\begin{corollary}
Sia $V$ uno spazio vettoriale di dimensione finita su $\KK$.
Allora $\dim V = \dim \dual V$.
\label{isom2}
\end{corollary}
\begin{proof}
Dal \textit{Teorema \ref{isom}} si deduce che
$\dim \dual V = \dim \LL{V}{\KK} = \dim \KK \cdot \dim V =
\dim V$.
\end{proof}
\vskip 10pt
\begin{corollary}
Sia $V$ uno spazio vettoriale di dimensione finita su $\KK$.
Allora $V \cong \dual V$.
\label{isom3}
\end{corollary}
\begin{proof}
Poiché $V$ è di dimensione finita, la dimostrazione segue dal
\textit{Corollario \ref{isom2}}, dal momento che
$\dim V = \dim \dual V \iff V \cong \dual V$.
\end{proof}
\begin{proof}[Dimostrazione alternativa.]
Sia $\dim V = n \in N$ e sia $\BB = \left(\vec v_1, \, \dots, \, \vec v_n\right)$ una base ordinata di $V$. \\
Si costruisce un'applicazione $\phi : V \to \dual V$ che,
detto $\vec v = \sum_{i=0}^{n} \alpha_i \, \vec v_i$ con
$\alpha_i \in \KK \; \forall \, i \in \NN \mid 1 \leq i \leq n$, sia tale che:
\[\phi(\vec v) = \sum_{i=0}^{n} \alpha_i \, \vec v_i^{*}\]
con $\vec v_i^{*}$ costruito nel seguente modo\footnote{Si sarebbe potuto
semplificare la grafia introducendo la notazione del \textit{delta di Dirac}, ossia $\delta_{ij}$. Si è
tuttavia preferito esplicitare la definizione del funzionale.}:
\[\vec v_{i}^*\left(\vec v_j\right) = \begin{cases}1 & \text{se } i = j \\ 0 & \text{altrimenti} \end{cases}\]
L'applicazione $\phi$ è chiaramente lineare. Poiché i vari
$\vec v_i^{*}$ sono linearmente indipendenti, segue che
$\Ker \phi = \{\vec 0\}$, e quindi che $\phi$ è iniettiva. \\
Sia $\xi \in \dual V$. Allora $\xi \left( \vec v \right) =
\sum_{i=1}^{n} \alpha_i \, \xi(\vec v_i) =
\sum_{i=1}^{n} \vec v_i^{*} \left( \vec v \right) \xi(\vec v_i) \, $. Quindi $\xi = \sum_{i=1}^n \xi(\vec v_i) \, \vec v_i^{*}$.
Detto $\vec u = \sum_{i=1}^n \xi \left( \vec v_i \right) \vec v_i$, si verifica che $\phi \left( \vec u \right) = \xi$.
Pertanto $\phi$ è surgettiva\footnote{Alternativamente, per il teorema del rango, $\dim V$ = $\dim \Imm \phi + \underbrace{\dim \Ker \phi}_{=\,0} = \dim \Imm \phi \implies \dim \Imm \phi = \dim V = \dim \dual V \implies \Imm \phi = \dual V$, ossia che $\phi$ è surgettiva.}. \\
Poiché iniettiva e surgettiva, $\phi$ è bigettiva, e pertanto
un isomorfismo.
\end{proof}
\vskip 10pt
\begin{corollary} Sia $V$ uno spazio vettoriale di dimensione
finita su $\KK$, con $\dim V = n \in \NN$.
L'insieme $\dual \BB = \left( \vec v_i^{*} \right)_{i=1\to n}$ è una base di $\dual V$.
\end{corollary}
\begin{proof}
Dal \textit{Corollario \ref{isom3}} si desume che la dimensione
di $\dual V$ è esattamente $n$. Poiché $\dual \BB$ è un insieme
linearmente indipendente di $n$ elementi, si conclude
che è una base di $\dual V$.
\end{proof}
\subsection{Il caso infinito}
Le dimostrazioni presentate precdentemente non prendono in considerazione
il caso degli spazi vettoriali di dimensione infinita;
ciononostante vale in particolare un risultato correlato:
\vskip 10pt
\begin{theorem} Sia $V$ uno spazio vettoriale su $\KK$.
$\dim V = \infty \iff \dim \dual V = \infty$\footnote{Ciò
tuttavia non implica che $V$ e $\dual V$ siano equipotenti se di dimensione infinita; al contrario, $| \dual V | > |V|$.}.
\end{theorem}
\begin{proof}
Se $\dual V$ è di dimensione infinita, anche $V$ deve esserlo
necessariamente, altrimenti, per il \textit{Teorema \ref{isom}}
dovrebbe esserlo anche $\dual V$. \\
Sia allora $V$ di dimensione infinita e sia $A_i$ una famiglia
di indici che enumeri $i$ elementi della base di $V$.
Si consideri l'insieme linearmente indipendente $I_n = \{\vec v_{\alpha}^* \}_{\alpha \in A_n}$ con\footnote{Ancora una volta
questa definizione ricalca il delta di Dirac.}:
\[\vec v_{\alpha}^*\left(\vec v_{\beta}\right) = \begin{cases}1 & \text{se } \alpha = \beta \\ 0 & \text{altrimenti} \end{cases}\]
Si assuma l'esistenza di una base $\BB$ di $\dual V$ di
cardinalità finita, e sia $| \BB | = n \in \NN$. Ogni insieme $P \subset V$ linearmente indipendente è t.c. $|P| \leq n$.
Tuttavia $|I_{n+1}|=n+1>n$, \Lightning.
\end{proof}
\section{Esercizi}
\begin{exercise}
Si dimostri che l'insieme $I_n$ è linearmente indipendente in $\dual V$, dato $V$ spazio vettoriale di dimensione infinita.
\end{exercise}
\begin{exercise}
Dato $V$ uno spazio vettoriale di dimensione finita, si esibisca
una base per $\dual {\left( \dual V \right)} = \LL{\LL{V}{ \KK}}{\KK}$, il cosiddetto \textbf{spazio biduale}.
\end{exercise}
\end{document}

@ -0,0 +1,840 @@
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Algoritmo di estrazione della forma canonica di Jordan"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Lo scopo di questo notebook è illustrare un breve e semplice algoritmo di estrazione della forma canonica di Jordan di una matrice $A \\in M(n, \\mathbb{C})$ qualsiasi. Si ricorda che la forma canonica di Jordan è un invariante completo per similitudine\n",
"di una matrice e che è una matrice a blocchi diagonale composta da più blocchi, detti per l'appunto di Jordan, della seguente forma:\n",
"\n",
"$$ J_{\\lambda, m} = \\begin{bmatrix}\n",
"\\lambda & 1 & \\; & \\; \\\\\n",
"\\; & \\lambda & \\ddots & \\; \\\\\n",
"\\; & \\; & \\ddots & 1 \\\\\n",
"\\; & \\; & \\; & \\lambda \n",
"\\end{bmatrix} \\in M(m, \\mathbb{C}). $$\n",
"\n",
"Innanzitutto si sceglie un $n \\in \\mathbb{N}^+$ che rappresenta la taglia della matrice quadrata data in esame all'algoritmo e si crea la matrice $I = I_n$, ossia la matrice identità di taglia $n$."
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {
"scrolled": true
},
"outputs": [],
"source": [
"%display latex\n",
"from IPython.display import display, Markdown, Latex\n",
"\n",
"n = 10\n",
"I = matrix.identity(n)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Si definisce adesso una funzione $\\operatorname{jordan}(A)$ che prende in ingresso una matrice $A \\in M(n, \\mathbb{C})$ senza restituire alcun risultato. Tale funzione illustra passo passo in output l'algoritmo di estrazione della forma canonica di Jordan della matrice $A$ nei seguenti passi:\n",
"\n",
" - Calcola il polinomio caratteristico $p_A(x)$ di $A$ e lo fattorizza;\n",
" - Ne deduce lo spettro $\\operatorname{sp}(A)$ e si riduce a studiare i blocchi relativi a ciascun autovalore;\n",
" - Per ogni autovalore $\\lambda$, calcola le dimensioni dei kernel delle potenze di $B = A - \\lambda I$ fino a che non viene raggiunta la molteplicità algebrica di $\\lambda$;\n",
" - Infine, per l'autovalore $\\lambda$, calcola il numero di blocchi $b_i$ di taglia $i$ secondo la formula $b_i = 2 \\dim \\ker B^i - \\dim \\ker B^{i-1} - \\dim \\ker B^{i+1}$;\n",
" - Compone tutti i blocchi in una matrice a blocchi diagonale, ossia la forma canonica di Jordan."
]
},
{
"cell_type": "code",
"execution_count": 58,
"metadata": {},
"outputs": [],
"source": [
"def jordan(A):\n",
" display(Latex(r\"Innanzitutto, si calcola il polinomio caratteristico di $A$, che risulta essere $p_A(x) = \" + latex(factor(charpoly(A)(SR('x')))) + \"$.\"))\n",
" eig = set(A.eigenvalues())\n",
" sp = \", \".join(map(latex, eig))\n",
"\n",
" display(Latex(r\"Allora, calcolandone le radici, si ricava $\\operatorname{sp}(A) = \\{\" + sp + r\"\\}$.\"))\n",
" display(Markdown(\"---\"))\n",
"\n",
" Js = []\n",
"\n",
" for i, t in enumerate(eig, start=1):\n",
" B = A - t*I\n",
" r = rank(B)\n",
" k = n - r\n",
"\n",
" display(Latex(f\"({i}) \" + r\"Consideriamo $\\lambda = \" + latex(t) + r\"$ e $B=A-\\lambda I=\" + latex(B) + r\".$\"))\n",
" display(Latex(r\"$B$ ha rango $\" + str(r) + r\"$ e quindi $\\mu_g(\\lambda) = \" + str(k) + r\"$.\"))\n",
"\n",
" if k == 1:\n",
" display(Latex(r\"Allora a $\\lambda$ sarà dedicato esattamente un blocco nella forma canonica di Jordan.\"))\n",
" else:\n",
" display(Latex(r\"Allora a $\\lambda$ saranno dedicati esattamente $\" + str(k) + \"$ blocchi nella forma canonica di Jordan.\"))\n",
"\n",
" K = [k]\n",
" k_1 = k\n",
" k_2 = n-rank(B^2)\n",
"\n",
" i = 3\n",
" while k_1 != k_2:\n",
" K.append(k_2)\n",
" k_1 = k_2\n",
" k_2 = n-rank(B^i)\n",
" i += 1\n",
"\n",
" display(Latex(r\"Si calcolano adesso le dimensioni dei kernel fino a quando non viene raggiunta la molteplicità algebrica $\\mu_a(\\lambda) = \" + str(K[-1]) + \"$:\"))\n",
"\n",
" for i, k in enumerate(K, start=1):\n",
" if i == 1:\n",
" if i == len(K):\n",
" display(Latex(r\" • $\\dim \\ker B = \" + str(k) + \"$.\"))\n",
" else:\n",
" display(Latex(r\" • $\\dim \\ker B = \" + str(k) + \"$;\"))\n",
" else:\n",
" if i == len(K):\n",
" display(Latex(r\" • $\\dim \\ker B^\" + str(i) + r\" = \" + str(k) + \"$.\"))\n",
" else:\n",
" display(Latex(r\" • $\\dim \\ker B^\" + str(i) + r\" = \" + str(k) + \"$;\"))\n",
"\n",
" display(Latex(r\"Pertanto a $\\lambda$ sono assegnati i seguenti blocchi (dove $b_n$ indica il numero di blocchi di taglia $n$):\"))\n",
"\n",
" b = {}\n",
"\n",
" for i, k in enumerate(K, start=1):\n",
" if i == len(K):\n",
" if i == 2:\n",
" b[i] = k - K[0]\n",
" display(Latex(r\" • $b_2 = \\dim \\ker B^2 - \\dim \\ker B = \" + str(b[i]) + \"$.\"))\n",
" elif i == 1:\n",
" b[i] = k\n",
" display(Latex(r\" • $b_1 = \\dim \\ker B = \" + str(b[i]) + \"$.\"))\n",
" else:\n",
" b[i] = k - K[i-2]\n",
" display(Latex(r\" • $b_\" + str(i) + r\" = \\dim \\ker B^\" + str(i) + r\" - \\dim \\ker B^\" + str(i-1) + \" = \" + str(b[i]) + \"$.\"))\n",
" elif i == 1:\n",
" b[i] = 2*k - K[1]\n",
" display(Latex(r\" • $b_1 = 2 \\dim \\ker B - \\dim \\ker B^2 = \" + str(b[i]) + \"$;\"))\n",
" else:\n",
" if i != 2:\n",
" b[i] = 2*k - K[i-2] - K[i]\n",
" display(Latex(r\" • $b_\" + str(i) + r\" = 2 \\dim \\ker B^\" + str(i) + r\" - \\dim \\ker B^\" + str(i-1) + r\" - \\dim \\ker B^\" + str(i+1) + \" = \" + str(b[i]) + \"$;\"))\n",
" else:\n",
" b[i] = 2*k - K[0] - K[2]\n",
" display(Latex(r\" • $b_\" + str(i) + r\" = 2 \\dim \\ker B^2 - \\dim \\ker B - \\dim \\ker B^3 = \" + str(b[i]) + \"$;\"))\n",
" \n",
" JBs = [jordan_block(t, N) for N, j in b.items() for _ in range(j)]\n",
" Js.extend(JBs)\n",
" \n",
" display(Latex(r\"Allora l'insieme di tutti i blocchi relativi a $\\lambda$ sarà rappresentato dalla seguente matrice: $J_{\\lambda} = \" + latex(block_diagonal_matrix(JBs)) + \"$.\"))\n",
" display(Markdown(\"---\"))\n",
" \n",
" JNF = block_diagonal_matrix(Js)\n",
" \n",
" display(Latex(r\"La forma canonica di Jordan di $A$ sarà allora $J = \" + latex(JNF) + \"$.\"))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Si sceglie adesso una matrice $A \\in M(n, \\mathbb{C})$ di cui si vuole calcolare la forma canonica di Jordan."
]
},
{
"cell_type": "code",
"execution_count": 59,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{rrrrrrrrrr}\n",
"1 & 1 & 0 & 0 & 0 & 0 & 1 & 0 & 1 & 0 \\\\\n",
"0 & 1 & 1 & 0 & 0 & 0 & 1 & 0 & 1 & 0 \\\\\n",
"0 & 0 & 1 & 1 & 0 & 0 & 1 & 0 & 1 & 0 \\\\\n",
"0 & 0 & 0 & 1 & 1 & 0 & 1 & 0 & 1 & 0 \\\\\n",
"0 & 0 & 0 & 0 & 2 & 0 & 1 & 0 & 1 & 0 \\\\\n",
"0 & 0 & 0 & 0 & 0 & 2 & 1 & 0 & 1 & 0 \\\\\n",
"0 & 0 & 0 & 0 & 0 & 0 & 2 & 1 & 1 & 0 \\\\\n",
"0 & 0 & 0 & 0 & 0 & 0 & 0 & 3 & 1 & 0 \\\\\n",
"0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 3 & 1 \\\\\n",
"0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 3\n",
"\\end{array}\\right)</script></html>"
],
"text/latex": [
"$$\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left(\\begin{array}{rrrrrrrrrr}\n",
"1 & 1 & 0 & 0 & 0 & 0 & 1 & 0 & 1 & 0 \\\\\n",
"0 & 1 & 1 & 0 & 0 & 0 & 1 & 0 & 1 & 0 \\\\\n",
"0 & 0 & 1 & 1 & 0 & 0 & 1 & 0 & 1 & 0 \\\\\n",
"0 & 0 & 0 & 1 & 1 & 0 & 1 & 0 & 1 & 0 \\\\\n",
"0 & 0 & 0 & 0 & 2 & 0 & 1 & 0 & 1 & 0 \\\\\n",
"0 & 0 & 0 & 0 & 0 & 2 & 1 & 0 & 1 & 0 \\\\\n",
"0 & 0 & 0 & 0 & 0 & 0 & 2 & 1 & 1 & 0 \\\\\n",
"0 & 0 & 0 & 0 & 0 & 0 & 0 & 3 & 1 & 0 \\\\\n",
"0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 3 & 1 \\\\\n",
"0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 3\n",
"\\end{array}\\right)$$"
],
"text/plain": [
"[1 1 0 0 0 0 1 0 1 0]\n",
"[0 1 1 0 0 0 1 0 1 0]\n",
"[0 0 1 1 0 0 1 0 1 0]\n",
"[0 0 0 1 1 0 1 0 1 0]\n",
"[0 0 0 0 2 0 1 0 1 0]\n",
"[0 0 0 0 0 2 1 0 1 0]\n",
"[0 0 0 0 0 0 2 1 1 0]\n",
"[0 0 0 0 0 0 0 3 1 0]\n",
"[0 0 0 0 0 0 0 0 3 1]\n",
"[0 0 0 0 0 0 0 0 0 3]"
]
},
"execution_count": 59,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# A deve avere esattamente n^2 elementi, essendo n x n...\n",
"A = matrix(SR, n, [1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 2, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 2, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3])\n",
"A"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Si calcola infine la forma canonica di Jordan della matrice $A$ mediante la funzione $\\operatorname{jordan}$."
]
},
{
"cell_type": "code",
"execution_count": 60,
"metadata": {
"scrolled": false
},
"outputs": [
{
"data": {
"text/latex": [
"Innanzitutto, si calcola il polinomio caratteristico di $A$, che risulta essere $p_A(x) = {\\left(x - 1\\right)}^{4} {\\left(x - 2\\right)}^{3} {\\left(x - 3\\right)}^{3} $."
],
"text/plain": [
"<IPython.core.display.Latex object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/latex": [
"Allora, calcolandone le radici, si ricava $\\operatorname{sp}(A) = \\{1, 2, 3\\}$."
],
"text/plain": [
"<IPython.core.display.Latex object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/markdown": [
"---"
],
"text/plain": [
"<IPython.core.display.Markdown object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/latex": [
"(1) Consideriamo $\\lambda = 1 $ e $B=A-\\lambda I= \\left(\\begin{array}{rrrrrrrrrr}\n",
"0 & 1 & 0 & 0 & 0 & 0 & 1 & 0 & 1 & 0 \\\\\n",
"0 & 0 & 1 & 0 & 0 & 0 & 1 & 0 & 1 & 0 \\\\\n",
"0 & 0 & 0 & 1 & 0 & 0 & 1 & 0 & 1 & 0 \\\\\n",
"0 & 0 & 0 & 0 & 1 & 0 & 1 & 0 & 1 & 0 \\\\\n",
"0 & 0 & 0 & 0 & 1 & 0 & 1 & 0 & 1 & 0 \\\\\n",
"0 & 0 & 0 & 0 & 0 & 1 & 1 & 0 & 1 & 0 \\\\\n",
"0 & 0 & 0 & 0 & 0 & 0 & 1 & 1 & 1 & 0 \\\\\n",
"0 & 0 & 0 & 0 & 0 & 0 & 0 & 2 & 1 & 0 \\\\\n",
"0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 2 & 1 \\\\\n",
"0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 2\n",
"\\end{array}\\right) .$"
],
"text/plain": [
"<IPython.core.display.Latex object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/latex": [
"$B$ ha rango $9$ e quindi $\\mu_g(\\lambda) = 1$."
],
"text/plain": [
"<IPython.core.display.Latex object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/latex": [
"Allora a $\\lambda$ sarà dedicato esattamente un blocco nella forma canonica di Jordan."
],
"text/plain": [
"<IPython.core.display.Latex object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/latex": [
"Si calcolano adesso le dimensioni dei kernel fino a quando non viene raggiunta la molteplicità algebrica $\\mu_a(\\lambda) = 4$:"
],
"text/plain": [
"<IPython.core.display.Latex object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/latex": [
" • $\\dim \\ker B = 1$;"
],
"text/plain": [
"<IPython.core.display.Latex object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/latex": [
" • $\\dim \\ker B^2 = 2$;"
],
"text/plain": [
"<IPython.core.display.Latex object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/latex": [
" • $\\dim \\ker B^3 = 3$;"
],
"text/plain": [
"<IPython.core.display.Latex object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/latex": [
" • $\\dim \\ker B^4 = 4$."
],
"text/plain": [
"<IPython.core.display.Latex object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/latex": [
"Pertanto a $\\lambda$ sono assegnati i seguenti blocchi (dove $b_n$ indica il numero di blocchi di taglia $n$):"
],
"text/plain": [
"<IPython.core.display.Latex object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/latex": [
" • $b_1 = 2 \\dim \\ker B - \\dim \\ker B^2 = 0$;"
],
"text/plain": [
"<IPython.core.display.Latex object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/latex": [
" • $b_2 = 2 \\dim \\ker B^2 - \\dim \\ker B - \\dim \\ker B^3 = 0$;"
],
"text/plain": [
"<IPython.core.display.Latex object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/latex": [
" • $b_3 = 2 \\dim \\ker B^3 - \\dim \\ker B^2 - \\dim \\ker B^4 = 0$;"
],
"text/plain": [
"<IPython.core.display.Latex object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/latex": [
" • $b_4 = \\dim \\ker B^4 - \\dim \\ker B^3 = 1$."
],
"text/plain": [
"<IPython.core.display.Latex object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/latex": [
"Allora l'insieme di tutti i blocchi relativi a $\\lambda$ sarà rappresentato dalla seguente matrice: $J_{\\lambda} = \\left(\\begin{array}{rrrr}\n",
"1 & 1 & 0 & 0 \\\\\n",
"0 & 1 & 1 & 0 \\\\\n",
"0 & 0 & 1 & 1 \\\\\n",
"0 & 0 & 0 & 1\n",
"\\end{array}\\right) $."
],
"text/plain": [
"<IPython.core.display.Latex object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/markdown": [
"---"
],
"text/plain": [
"<IPython.core.display.Markdown object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/latex": [
"(2) Consideriamo $\\lambda = 2 $ e $B=A-\\lambda I= \\left(\\begin{array}{rrrrrrrrrr}\n",
"-1 & 1 & 0 & 0 & 0 & 0 & 1 & 0 & 1 & 0 \\\\\n",
"0 & -1 & 1 & 0 & 0 & 0 & 1 & 0 & 1 & 0 \\\\\n",
"0 & 0 & -1 & 1 & 0 & 0 & 1 & 0 & 1 & 0 \\\\\n",
"0 & 0 & 0 & -1 & 1 & 0 & 1 & 0 & 1 & 0 \\\\\n",
"0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 1 & 0 \\\\\n",
"0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 1 & 0 \\\\\n",
"0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 1 & 0 \\\\\n",
"0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 1 & 0 \\\\\n",
"0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 1 \\\\\n",
"0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1\n",
"\\end{array}\\right) .$"
],
"text/plain": [
"<IPython.core.display.Latex object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/latex": [
"$B$ ha rango $8$ e quindi $\\mu_g(\\lambda) = 2$."
],
"text/plain": [
"<IPython.core.display.Latex object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/latex": [
"Allora a $\\lambda$ saranno dedicati esattamente $2$ blocchi nella forma canonica di Jordan."
],
"text/plain": [
"<IPython.core.display.Latex object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/latex": [
"Si calcolano adesso le dimensioni dei kernel fino a quando non viene raggiunta la molteplicità algebrica $\\mu_a(\\lambda) = 3$:"
],
"text/plain": [
"<IPython.core.display.Latex object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/latex": [
" • $\\dim \\ker B = 2$;"
],
"text/plain": [
"<IPython.core.display.Latex object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/latex": [
" • $\\dim \\ker B^2 = 3$."
],
"text/plain": [
"<IPython.core.display.Latex object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/latex": [
"Pertanto a $\\lambda$ sono assegnati i seguenti blocchi (dove $b_n$ indica il numero di blocchi di taglia $n$):"
],
"text/plain": [
"<IPython.core.display.Latex object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/latex": [
" • $b_1 = 2 \\dim \\ker B - \\dim \\ker B^2 = 1$;"
],
"text/plain": [
"<IPython.core.display.Latex object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/latex": [
" • $b_2 = \\dim \\ker B^2 - \\dim \\ker B = 1$."
],
"text/plain": [
"<IPython.core.display.Latex object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/latex": [
"Allora l'insieme di tutti i blocchi relativi a $\\lambda$ sarà rappresentato dalla seguente matrice: $J_{\\lambda} = \\left(\\begin{array}{r|rr}\n",
"2 & 0 & 0 \\\\\n",
"\\hline\n",
" 0 & 2 & 1 \\\\\n",
"0 & 0 & 2\n",
"\\end{array}\\right) $."
],
"text/plain": [
"<IPython.core.display.Latex object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/markdown": [
"---"
],
"text/plain": [
"<IPython.core.display.Markdown object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/latex": [
"(3) Consideriamo $\\lambda = 3 $ e $B=A-\\lambda I= \\left(\\begin{array}{rrrrrrrrrr}\n",
"-2 & 1 & 0 & 0 & 0 & 0 & 1 & 0 & 1 & 0 \\\\\n",
"0 & -2 & 1 & 0 & 0 & 0 & 1 & 0 & 1 & 0 \\\\\n",
"0 & 0 & -2 & 1 & 0 & 0 & 1 & 0 & 1 & 0 \\\\\n",
"0 & 0 & 0 & -2 & 1 & 0 & 1 & 0 & 1 & 0 \\\\\n",
"0 & 0 & 0 & 0 & -1 & 0 & 1 & 0 & 1 & 0 \\\\\n",
"0 & 0 & 0 & 0 & 0 & -1 & 1 & 0 & 1 & 0 \\\\\n",
"0 & 0 & 0 & 0 & 0 & 0 & -1 & 1 & 1 & 0 \\\\\n",
"0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 \\\\\n",
"0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 \\\\\n",
"0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0\n",
"\\end{array}\\right) .$"
],
"text/plain": [
"<IPython.core.display.Latex object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/latex": [
"$B$ ha rango $9$ e quindi $\\mu_g(\\lambda) = 1$."
],
"text/plain": [
"<IPython.core.display.Latex object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/latex": [
"Allora a $\\lambda$ sarà dedicato esattamente un blocco nella forma canonica di Jordan."
],
"text/plain": [
"<IPython.core.display.Latex object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/latex": [
"Si calcolano adesso le dimensioni dei kernel fino a quando non viene raggiunta la molteplicità algebrica $\\mu_a(\\lambda) = 3$:"
],
"text/plain": [
"<IPython.core.display.Latex object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/latex": [
" • $\\dim \\ker B = 1$;"
],
"text/plain": [
"<IPython.core.display.Latex object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/latex": [
" • $\\dim \\ker B^2 = 2$;"
],
"text/plain": [
"<IPython.core.display.Latex object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/latex": [
" • $\\dim \\ker B^3 = 3$."
],
"text/plain": [
"<IPython.core.display.Latex object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/latex": [
"Pertanto a $\\lambda$ sono assegnati i seguenti blocchi (dove $b_n$ indica il numero di blocchi di taglia $n$):"
],
"text/plain": [
"<IPython.core.display.Latex object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/latex": [
" • $b_1 = 2 \\dim \\ker B - \\dim \\ker B^2 = 0$;"
],
"text/plain": [
"<IPython.core.display.Latex object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/latex": [
" • $b_2 = 2 \\dim \\ker B^2 - \\dim \\ker B - \\dim \\ker B^3 = 0$;"
],
"text/plain": [
"<IPython.core.display.Latex object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/latex": [
" • $b_3 = \\dim \\ker B^3 - \\dim \\ker B^2 = 1$."
],
"text/plain": [
"<IPython.core.display.Latex object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/latex": [
"Allora l'insieme di tutti i blocchi relativi a $\\lambda$ sarà rappresentato dalla seguente matrice: $J_{\\lambda} = \\left(\\begin{array}{rrr}\n",
"3 & 1 & 0 \\\\\n",
"0 & 3 & 1 \\\\\n",
"0 & 0 & 3\n",
"\\end{array}\\right) $."
],
"text/plain": [
"<IPython.core.display.Latex object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/markdown": [
"---"
],
"text/plain": [
"<IPython.core.display.Markdown object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/latex": [
"La forma canonica di Jordan di $A$ sarà allora $J = \\left(\\begin{array}{rrrr|r|rr|rrr}\n",
"1 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\\\\n",
"0 & 1 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\\\\n",
"0 & 0 & 1 & 1 & 0 & 0 & 0 & 0 & 0 & 0 \\\\\n",
"0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 \\\\\n",
"\\hline\n",
" 0 & 0 & 0 & 0 & 2 & 0 & 0 & 0 & 0 & 0 \\\\\n",
"\\hline\n",
" 0 & 0 & 0 & 0 & 0 & 2 & 1 & 0 & 0 & 0 \\\\\n",
"0 & 0 & 0 & 0 & 0 & 0 & 2 & 0 & 0 & 0 \\\\\n",
"\\hline\n",
" 0 & 0 & 0 & 0 & 0 & 0 & 0 & 3 & 1 & 0 \\\\\n",
"0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 3 & 1 \\\\\n",
"0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 3\n",
"\\end{array}\\right) $."
],
"text/plain": [
"<IPython.core.display.Latex object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"jordan(A)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"***\n",
"(c) 2023, [~videtta](https://poisson.phc.dm.unipi.it/~videtta/)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "SageMath 9.3",
"language": "sage",
"name": "sagemath"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.10"
}
},
"nbformat": 4,
"nbformat_minor": 4
}

@ -0,0 +1,156 @@
Creative Commons Attribution 4.0 International
Creative Commons Corporation (“Creative Commons”) is not a law firm and does not provide legal services or legal advice. Distribution of Creative Commons public licenses does not create a lawyer-client or other relationship. Creative Commons makes its licenses and related information available on an “as-is” basis. Creative Commons gives no warranties regarding its licenses, any material licensed under their terms and conditions, or any related information. Creative Commons disclaims all liability for damages resulting from their use to the fullest extent possible.
Using Creative Commons Public Licenses
Creative Commons public licenses provide a standard set of terms and conditions that creators and other rights holders may use to share original works of authorship and other material subject to copyright and certain other rights specified in the public license below. The following considerations are for informational purposes only, are not exhaustive, and do not form part of our licenses.
Considerations for licensors: Our public licenses are intended for use by those authorized to give the public permission to use material in ways otherwise restricted by copyright and certain other rights. Our licenses are irrevocable. Licensors should read and understand the terms and conditions of the license they choose before applying it. Licensors should also secure all rights necessary before applying our licenses so that the public can reuse the material as expected. Licensors should clearly mark any material not subject to the license. This includes other CC-licensed material, or material used under an exception or limitation to copyright. More considerations for licensors.
Considerations for the public: By using one of our public licenses, a licensor grants the public permission to use the licensed material under specified terms and conditions. If the licensors permission is not necessary for any reasonfor example, because of any applicable exception or limitation to copyrightthen that use is not regulated by the license. Our licenses grant only permissions under copyright and certain other rights that a licensor has authority to grant. Use of the licensed material may still be restricted for other reasons, including because others have copyright or other rights in the material. A licensor may make special requests, such as asking that all changes be marked or described. Although not required by our licenses, you are encouraged to respect those requests where reasonable. More considerations for the public.
Creative Commons Attribution 4.0 International Public License
By exercising the Licensed Rights (defined below), You accept and agree to be bound by the terms and conditions of this Creative Commons Attribution 4.0 International Public License ("Public License"). To the extent this Public License may be interpreted as a contract, You are granted the Licensed Rights in consideration of Your acceptance of these terms and conditions, and the Licensor grants You such rights in consideration of benefits the Licensor receives from making the Licensed Material available under these terms and conditions.
Section 1 Definitions.
a. Adapted Material means material subject to Copyright and Similar Rights that is derived from or based upon the Licensed Material and in which the Licensed Material is translated, altered, arranged, transformed, or otherwise modified in a manner requiring permission under the Copyright and Similar Rights held by the Licensor. For purposes of this Public License, where the Licensed Material is a musical work, performance, or sound recording, Adapted Material is always produced where the Licensed Material is synched in timed relation with a moving image.
b. Adapter's License means the license You apply to Your Copyright and Similar Rights in Your contributions to Adapted Material in accordance with the terms and conditions of this Public License.
c. Copyright and Similar Rights means copyright and/or similar rights closely related to copyright including, without limitation, performance, broadcast, sound recording, and Sui Generis Database Rights, without regard to how the rights are labeled or categorized. For purposes of this Public License, the rights specified in Section 2(b)(1)-(2) are not Copyright and Similar Rights.
d. Effective Technological Measures means those measures that, in the absence of proper authority, may not be circumvented under laws fulfilling obligations under Article 11 of the WIPO Copyright Treaty adopted on December 20, 1996, and/or similar international agreements.
e. Exceptions and Limitations means fair use, fair dealing, and/or any other exception or limitation to Copyright and Similar Rights that applies to Your use of the Licensed Material.
f. Licensed Material means the artistic or literary work, database, or other material to which the Licensor applied this Public License.
g. Licensed Rights means the rights granted to You subject to the terms and conditions of this Public License, which are limited to all Copyright and Similar Rights that apply to Your use of the Licensed Material and that the Licensor has authority to license.
h. Licensor means the individual(s) or entity(ies) granting rights under this Public License.
i. Share means to provide material to the public by any means or process that requires permission under the Licensed Rights, such as reproduction, public display, public performance, distribution, dissemination, communication, or importation, and to make material available to the public including in ways that members of the public may access the material from a place and at a time individually chosen by them.
j. Sui Generis Database Rights means rights other than copyright resulting from Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, as amended and/or succeeded, as well as other essentially equivalent rights anywhere in the world.
k. You means the individual or entity exercising the Licensed Rights under this Public License. Your has a corresponding meaning.
Section 2 Scope.
a. License grant.
1. Subject to the terms and conditions of this Public License, the Licensor hereby grants You a worldwide, royalty-free, non-sublicensable, non-exclusive, irrevocable license to exercise the Licensed Rights in the Licensed Material to:
A. reproduce and Share the Licensed Material, in whole or in part; and
B. produce, reproduce, and Share Adapted Material.
2. Exceptions and Limitations. For the avoidance of doubt, where Exceptions and Limitations apply to Your use, this Public License does not apply, and You do not need to comply with its terms and conditions.
3. Term. The term of this Public License is specified in Section 6(a).
4. Media and formats; technical modifications allowed. The Licensor authorizes You to exercise the Licensed Rights in all media and formats whether now known or hereafter created, and to make technical modifications necessary to do so. The Licensor waives and/or agrees not to assert any right or authority to forbid You from making technical modifications necessary to exercise the Licensed Rights, including technical modifications necessary to circumvent Effective Technological Measures. For purposes of this Public License, simply making modifications authorized by this Section 2(a)(4) never produces Adapted Material.
5. Downstream recipients.
A. Offer from the Licensor Licensed Material. Every recipient of the Licensed Material automatically receives an offer from the Licensor to exercise the Licensed Rights under the terms and conditions of this Public License.
B. No downstream restrictions. You may not offer or impose any additional or different terms or conditions on, or apply any Effective Technological Measures to, the Licensed Material if doing so restricts exercise of the Licensed Rights by any recipient of the Licensed Material.
6. No endorsement. Nothing in this Public License constitutes or may be construed as permission to assert or imply that You are, or that Your use of the Licensed Material is, connected with, or sponsored, endorsed, or granted official status by, the Licensor or others designated to receive attribution as provided in Section 3(a)(1)(A)(i).
b. Other rights.
1. Moral rights, such as the right of integrity, are not licensed under this Public License, nor are publicity, privacy, and/or other similar personality rights; however, to the extent possible, the Licensor waives and/or agrees not to assert any such rights held by the Licensor to the limited extent necessary to allow You to exercise the Licensed Rights, but not otherwise.
2. Patent and trademark rights are not licensed under this Public License.
3. To the extent possible, the Licensor waives any right to collect royalties from You for the exercise of the Licensed Rights, whether directly or through a collecting society under any voluntary or waivable statutory or compulsory licensing scheme. In all other cases the Licensor expressly reserves any right to collect such royalties.
Section 3 License Conditions.
Your exercise of the Licensed Rights is expressly made subject to the following conditions.
a. Attribution.
1. If You Share the Licensed Material (including in modified form), You must:
A. retain the following if it is supplied by the Licensor with the Licensed Material:
i. identification of the creator(s) of the Licensed Material and any others designated to receive attribution, in any reasonable manner requested by the Licensor (including by pseudonym if designated);
ii. a copyright notice;
iii. a notice that refers to this Public License;
iv. a notice that refers to the disclaimer of warranties;
v. a URI or hyperlink to the Licensed Material to the extent reasonably practicable;
B. indicate if You modified the Licensed Material and retain an indication of any previous modifications; and
C. indicate the Licensed Material is licensed under this Public License, and include the text of, or the URI or hyperlink to, this Public License.
2. You may satisfy the conditions in Section 3(a)(1) in any reasonable manner based on the medium, means, and context in which You Share the Licensed Material. For example, it may be reasonable to satisfy the conditions by providing a URI or hyperlink to a resource that includes the required information.
3. If requested by the Licensor, You must remove any of the information required by Section 3(a)(1)(A) to the extent reasonably practicable.
4. If You Share Adapted Material You produce, the Adapter's License You apply must not prevent recipients of the Adapted Material from complying with this Public License.
Section 4 Sui Generis Database Rights.
Where the Licensed Rights include Sui Generis Database Rights that apply to Your use of the Licensed Material:
a. for the avoidance of doubt, Section 2(a)(1) grants You the right to extract, reuse, reproduce, and Share all or a substantial portion of the contents of the database;
b. if You include all or a substantial portion of the database contents in a database in which You have Sui Generis Database Rights, then the database in which You have Sui Generis Database Rights (but not its individual contents) is Adapted Material; and
c. You must comply with the conditions in Section 3(a) if You Share all or a substantial portion of the contents of the database.
For the avoidance of doubt, this Section 4 supplements and does not replace Your obligations under this Public License where the Licensed Rights include other Copyright and Similar Rights.
Section 5 Disclaimer of Warranties and Limitation of Liability.
a. Unless otherwise separately undertaken by the Licensor, to the extent possible, the Licensor offers the Licensed Material as-is and as-available, and makes no representations or warranties of any kind concerning the Licensed Material, whether express, implied, statutory, or other. This includes, without limitation, warranties of title, merchantability, fitness for a particular purpose, non-infringement, absence of latent or other defects, accuracy, or the presence or absence of errors, whether or not known or discoverable. Where disclaimers of warranties are not allowed in full or in part, this disclaimer may not apply to You.
b. To the extent possible, in no event will the Licensor be liable to You on any legal theory (including, without limitation, negligence) or otherwise for any direct, special, indirect, incidental, consequential, punitive, exemplary, or other losses, costs, expenses, or damages arising out of this Public License or use of the Licensed Material, even if the Licensor has been advised of the possibility of such losses, costs, expenses, or damages. Where a limitation of liability is not allowed in full or in part, this limitation may not apply to You.
c. The disclaimer of warranties and limitation of liability provided above shall be interpreted in a manner that, to the extent possible, most closely approximates an absolute disclaimer and waiver of all liability.
Section 6 Term and Termination.
a. This Public License applies for the term of the Copyright and Similar Rights licensed here. However, if You fail to comply with this Public License, then Your rights under this Public License terminate automatically.
b. Where Your right to use the Licensed Material has terminated under Section 6(a), it reinstates:
1. automatically as of the date the violation is cured, provided it is cured within 30 days of Your discovery of the violation; or
2. upon express reinstatement by the Licensor.
c. For the avoidance of doubt, this Section 6(b) does not affect any right the Licensor may have to seek remedies for Your violations of this Public License.
d. For the avoidance of doubt, the Licensor may also offer the Licensed Material under separate terms or conditions or stop distributing the Licensed Material at any time; however, doing so will not terminate this Public License.
e. Sections 1, 5, 6, 7, and 8 survive termination of this Public License.
Section 7 Other Terms and Conditions.
a. The Licensor shall not be bound by any additional or different terms or conditions communicated by You unless expressly agreed.
b. Any arrangements, understandings, or agreements regarding the Licensed Material not stated herein are separate from and independent of the terms and conditions of this Public License.
Section 8 Interpretation.
a. For the avoidance of doubt, this Public License does not, and shall not be interpreted to, reduce, limit, restrict, or impose conditions on any use of the Licensed Material that could lawfully be made without permission under this Public License.
b. To the extent possible, if any provision of this Public License is deemed unenforceable, it shall be automatically reformed to the minimum extent necessary to make it enforceable. If the provision cannot be reformed, it shall be severed from this Public License without affecting the enforceability of the remaining terms and conditions.
c. No term or condition of this Public License will be waived and no failure to comply consented to unless expressly agreed to by the Licensor.
d. Nothing in this Public License constitutes or may be interpreted as a limitation upon, or waiver of, any privileges and immunities that apply to the Licensor or You, including from the legal processes of any jurisdiction or authority.
Creative Commons is not a party to its public licenses. Notwithstanding, Creative Commons may elect to apply one of its public licenses to material it publishes and in those instances will be considered the “Licensor.” Except for the limited purpose of indicating that material is shared under a Creative Commons public license or as otherwise permitted by the Creative Commons policies published at creativecommons.org/policies, Creative Commons does not authorize the use of the trademark “Creative Commons” or any other trademark or logo of Creative Commons without its prior written consent including, without limitation, in connection with any unauthorized modifications to any of its public licenses or any other arrangements, understandings, or agreements concerning use of licensed material. For the avoidance of doubt, this paragraph does not form part of the public licenses.
Creative Commons may be contacted at creativecommons.org.

@ -0,0 +1,12 @@
# Raccolta di articoli e scritti 📝
Questo repository raccoglie tutti gli articoletti e tutti i notebook che ho scritto. Ogni cartella racchiude una materia differente, e a sua volta ogni materia è divisa in due sezioni, una dedicata agli scritti in [LaTeX](https://www.latex-project.org/) e una dedicata ai notebook creati su [SageMath](https://www.sagemath.org/).
Sicuramente questi scritti non sono perfetti, e potrebbero dunque contenere alcuni errori. Nell'eventualità in cui vogliate segnalarmeli, potete farlo scrivendomi a g.videtta1@studenti.unipi.it, o aprendo un issue su questo repository.
Riguardo la licenza con cui pubblico questi scritti, vale la stessa premessa che ho fatto per [i miei appunti](https://notes.hearot.it).
Di seguito elenco gli strumenti che più utilizzo per scrivere i miei articoletti:
- [TeXstudio](https://www.texstudio.org/) (assieme al foglio di stile che trovate sotto la cartella `tex` nel repository dei [miei appunti](https://notes.hearot.it)),
- [Overleaf](https://overleaf.com/), anche hostato dal [Dipartimento di Matematica](https://tex.dm.unipi.it) (spesso e volentieri solo per articoli coscritti).
Loading…
Cancel
Save