\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$). \subsection{Relazioni tra l'operazione di intersezione e di unione} Si può facilmente dimostrare la seguente relazione, valida per qualunque scelta di insiemi $A$, $B$ e $C$: $(A \cup B) \cap C = (A \cap C) \cup (B \cap C)$. \begin{proof} Prima di tutto, un elemento di entrambi i due insiemi appartiene obbligatoriamente a $C$: nel caso del primo membro, il motivo è banale; riguardo al secondo membro, invece, ci accorgiamo che esso appartiene almeno a uno dei due insiemi dell'unione, riconducendoci a un'intersezione con l'insieme $C$. Ogni elemento di $(A \cup B) \cap C$ appartiene inoltre ad almeno $A$ o $B$, e quindi, appartenendo anche a $C$, appartiene a $A \cap C$ o $B \cap C$, e quindi a $(A \cap C) \cup (B \cap C)$. Pertanto $(A \cup B) \cap C \subseteq (A \cap C) \cup (B \cap C)$. In direzione opposta, ogni elemento di $(A \cap C) \cup (B \cap C)$ appartiene almeno ad uno di dei due insiemi dell'unione. Per appartenere all'intersezione, tale elemento appartiene ad almeno $A$ o $B$; e quindi appartiene ad $A \cup B$. Appartenendo anche a $C$, appartiene anche $(A \cup B) \cap C$. Quindi $(A \cap C) \cup (B \cap C) \subseteq (A \cup B) \cap C$. Valendo l'inclusione in entrambe le direzioni, $(A \cup B) \cap C = (A \cap C) \cup (B \cap C)$. \end{proof} \section{L'operazione di sottrazione e di complemento} 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$}. L'operazione di complemento viene indicata con $A'$ qualora sia noto l'universo di riferimento $U$ per cui $A' = U \setminus A$. \subsection{Le leggi di De Morgan} Si possono dimostrare le seguenti proprietà: \begin{itemize} \item $(A \cup B)' = A' \cap B'$ \item $(A \cap B)' = A' \cup B'$ \end{itemize} \begin{proof}[Prima legge di De Morgan] Un elemento che appartiene a $(A \cup B)'$ non appartiene né a $A$ né a $B$, e quindi appartiene sia a $A'$ che a $B'$, pertanto anche alla loro intersezione $A' \cap B'$ [$(A \cup B)' \subseteq A' \cap B'$]. Allo stesso modo, un elemento di $A' \cap B'$ non appartiene né ad $A$ né a $B$, e quindi non appartiene ad $A \cup B$, appartenendo dunque a $(A \cup B)'$ [$A' \cap B' \subseteq (A \cup B)'$]. Pertanto $(A \cup B)' = A' \cap B'$. \end{proof} \begin{proof}[Seconda legge di De Morgan] Un elemento che appartiene a $(A \cap B)'$ può appartenere al più ad $A$ o esclusivamente a $B$; pertanto appartiene ad almeno $A'$ o $B'$, e qunidi alla loro unione [$(A \cap B)' \subseteq A' \cup B'$]. Allo stesso modo, un elemento di $A' \cup B'$ appartiene ad almeno $A'$ o $B'$, e quindi non può appartenere a entrambi $A$ e $B$, appartenendo dunque a $(A \cap B)'$ [$A' \cup B' \subseteq (A \cap B)'$]. Pertanto $(A \cap B)' = A' \cup B'$. \end{proof} \subsection{La logica affrontata con gli insiemi} In modo veramente interessante, ogni operatore logico segue la logica dell'insiemistica (e viceversa); laddove l'operatore $\cup$ (o $\cap$) ha una certa proprietà, la soddisfa anche $\lor$ (o $\land$). Quindi valgono tutte le leggi sopracitate: \begin{itemize} \item $(a \lor b) \land c = (a \land c) \lor (b \land c)$ \item $(a \land b) \lor c = (a \lor c) \land (b \lor c)$ \item $\lnot (a \land b) = \lnot a \lor \lnot b$ \item $\lnot (a \lor b) = \lnot a \land \lnot b$ \end{itemize} \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$).