\chapter{Teoria degli insiemi} Il concetto di insieme è primitivo e pertanto non definito formalmente in questa sede. Viene tuttavia definita la terminologia che riguarda le teoria dei suddetti insiemi. Quando si leggerà $a \in S$, s'intenderà che ``$a$ appartiene all'insieme $S$'', mentre $a \notin S$ si legge ``$a$ non appartiene all'insieme $S$''. Un insieme $A$ si dice sottoinsieme di $B$ ($A \subseteq B$) quando $a \in A \rightarrow a \in B$; in particolare si dice sottoinsieme proprio di $B$ ($A \subset B$) quando $A \subseteq B \land \exists b \in B \mid b \notin A$. Due insiemi $A$ e $B$ sono uguali se e solo se $A \subseteq B \land B \subseteq A$. L'insieme vuoto è l'insieme che non ha elementi, ed è sottoinsieme di ogni insieme. \section{L'operazione di unione} L'unione di due insiemi $A$ e $B$ è un'operazione che restituisce un insieme $A \cup B = \{x \mid x \in A \lor x \in B\}$. Tale operazione si può estendere a più insiemi mediante l'introduzione di un \textit{insieme di indici} $T$ per una famiglia di insiemi. Un insieme di indici $T$ rispetto a un famiglia $F=\{A_t\}$ ha la seguente proprietà: $\forall t \in T, \exists A_t \in F$; ossia è in grado di enumerare gli insiemi della famiglia $F$. L'unione è pertanto definita su una famiglia $F$ come $\bigcup_{t \in T} A_t = \{x \mid (\exists t \in T \mid x \in A_t)\}$. L'unione gode delle seguente proprietà: $A \subseteq B \rightarrow A \cup B = B$ (in particolare, $A \cup \emptyset = A$). \section{L'operazione di intersezione} Analogamente a come è stata definita l'unione, l'intersezione è un'operazione che resistuisce un insieme $A \cap B = \{x \mid x \in A \land x \in B\}$; ossia estesa a più insiemi: $\bigcap_{t \in T} A_t = \{x \mid (\forall t \in T \mid x \in A_t)\}$. In modo opposto all'unione, l'intersezione è tale per cui $A \subseteq B \rightarrow A \cap B = A$ (in particolare, $A \cap \emptyset = \emptyset$). \section{L'operazione di sottrazione} L'operazione di sottrazione su due insiemi $A$ e $B$ è definita come $A \setminus B = \{x \mid x \in A \land x \notin B\}$. Si può facilmente verificare che $A = (A \cap B) \cup (A \setminus B)$. \begin{proof} Ogni elemento di $A$ può appartenere o non appartenere a $B$: nel primo caso, appartiene anche a $A \cap B$, e quindi a $(A \cap B) \cup (A \setminus B)$; altrimenti appartiene per definizione a $A \setminus B$, e quindi sempre a $(A \cap B) \cup (A \setminus B)$. Pertanto $A \subseteq (A \cap B) \cup (A \setminus B)$. Ogni elemento di $(A \cap B) \cup (A \setminus B)$ appartiene ad almeno uno dei due operandi dell'unione; in entrambi i casi deve appartenere ad $A$. Quindi $(A \cap B) \cup (A \setminus B) \subseteq A$. \end{proof} In particolare, se $B \subseteq A$, $A \setminus B$ si dice \textbf{complemento di $B$ in $A$}. \section{Il prodotto cartesiano} Il prodotto cartesiano di una famiglia ordinata di insiemi $F$ con un certo insieme di indici $T$ è l'insieme $\bigtimes_{t \in T} A_t = \{(a_{t_0}, a_{t_1}, \ldots) \mid a_{t_0} \in A_{t_0} \land a_{t_1} \in A_{t_1} \land \ldots\}$. In particolare, il prodotto cartesiano di due due insiemi $A$ e $B$ si indica con $A \times B = \{(a, b) \mid a \in A \land b \in B\}$. Una $n$-tupla ordinata, ossia la forma in cui è raccolto un certo elemento di un prodotto cartesiano, è uguale ad una altra tupla se e solo se ogni elemento di una tupla è uguale a quello corrispondente in ordine dell'altra: pertanto, in generale, $(a, b) \neq (b, a)$. Inoltre, il prodotto cartesiano $A \times A$ viene indicato con $A^2$ (analogamente, $A^n = \bigtimes_{i=1}^{n} A$).