%        File: computazionale.tex
%
% (c) Copyright 2008 Andrea Lo Pumo aka AlpT <alpt@freaknet.org>
%
% This source code is free software; you can redistribute it and/or
% modify it under the terms of the GNU General Public License as published 
% by the Free Software Foundation; either version 2 of the License,
% or (at your option) any later version.
%
% This source code is distributed in the hope that it will be useful,
% but WITHOUT ANY WARRANTY; without even the implied warranty of
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
% Please refer to the GNU Public License for more details.
%
% You should have received a copy of the GNU Public License along with
% this source code; if not, write to:
% Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
%

\documentclass[a4paper]{article}
%%% 	 Orientamento	      %%%
%\usepackage[landscape]{geometry}
%%%			      %%%

%\usepackage{xr-hyper}
\usepackage{amath}
\usepackage{synttree}

%\externaldocument[TOP-]{topologia}[../../topologia/topologia.pdf]
\ifpdf
%\newcommand{\TOP}[1]{\T{[TOP,\ref{TOP-#1},pg.\pageref{TOP-#1}]}}
\usepackage{pdfpages}
\else
%\newcommand{\TOP}[1]{\T{[TOP,x.y.z,pg.xx]}}

% add label debugging if we are not compiling pdf.
\let\oldlabel\label
\renewcommand{\label}[1]{ [#1] \oldlabel{#1}}
\fi

\begin{document}
\title{Logica Computazionale}
\author{AlpT (@freaknet.org)\\
\small{\url{http://freaknet.org/alpt}}
}


\pagenumbering{roman}
\maketitle{}

\begin{abstract}
Questo testo e' una rielaborazione personale degli appunti presi durante
il corso di Logica Computazionale, tenuto dalla Prof.ssa Marianna Nicolosi
Asmundo presso il dipartimento di
Matematica, Catania, A.A. 2008/2009.\\
Saro' ben lieto di correggere ogni eventuale errore che mi comunicherai.

Buon lettura.
\begin{center}
	\verb|^_^|
\end{center}
\end{abstract}

\input{gpl}

\clearpage
\tableofcontents
\clearpage
\pagenumbering{arabic}

\let\oldsection\section
\renewcommand{\section}[1]{\oldsection{#1}\ilabel{#1}}
\let\oldsubsection\subsection
\renewcommand{\subsection}[1]{\oldsubsection{#1}\ilabel{#1}}
\let\oldsubsubsection\subsubsection
\renewcommand{\subsubsection}[1]{\oldsubsubsection{#1}\ilabel{#1}}

\def\Univ{{\mathcal{U}}}
\def\Un{{\mathcal{U}}}
\def\UU{{\mathcal{U}}}
\def\UN{{\mathcal{U}}}
\def\K{{\mathcal{K}}}
\def\S{{\mathbb{S}}}
\def\arity{\oname{arity}}
\def\ar#1{{\hat{#1}}}
\def\N{{\mathbb{N}}}
\def\P{{\mathcal{P}}}
\def\While{{\textbf{While }\;}}
\def\Let{{\textbf{Sia} }\;}
\def\Sia{\Let}
\def\Se{{\textbf{Se }\;}}
\def\Altrimenti{{\textbf{Altrimenti }\;}}
\def\Tbl{{\mathcal{T}}}
\def\true{{\mathbf{t}}}
\def\t{{\true}}
\def\false{{\mathbf{f}}}
\def\f{{\false}}
\def\Ris{{\mathscr{R}}}
\def\ramo#1{\oname{ramo}\pton{#1}}
\def\ramot#1{\oname{ramo}_t\pton{#1}}
\def\nodo#1{\oname{nodo}\pton{#1}}

\newcommand{\ctree}[1]{{\begin{center}\synttree#1\end{center}}}
\newcommand{\nctree}[1]{{\synttree#1}}
\section{Introduzione}
Il nostro scopo sara' quello di costruire un programma che dimostri
automaticamente i teoremi. Per far questo, avremo bisogno di definire un
linguaggio, costruire su di esso una logica e trovare delle buone tecniche
algoritmiche.

\section{Prefazione}
\begin{defn}
	Un albero\footnote{Per il concetto di albero vedi
	\url{http://it.wikipedia.org/wiki/Albero\_(informatica)}} e' infinito
	$\definizione{\=}$ ha un numero infinito di nodi.\\
	Un $n$-ramo e' una $n$-upla di nodi $(x_1,\dots,x_n)$, dove $x_1 $ la radice dell'albero, $x_{i+1}$ e' un figlio di $x_i$.\\
	Un $n$-ramo terminato e' un $n$-ramo $(x_1,\dots,x_n)$, con $x_n$ nodo
	senza figli.\\
	Un ramo infinito e' una sequenza infinita $(x_1,x_2,\dots)$, dove
	$\forall n\in \mathbb{N}^*$ la sottosequenza $(x_1,\dots,x_n)$ e' un
	$n$-ramo.\\
	Un albero e' ha diramazione finita $\definizione{\=}$ ogni nodo ha un numero finito
	di foglie (figli immediati).\\
	Un nodo e' infinito $\definizione{\=}$ e' radice di un albero infinito.\\
	Se $A$ e' un albero, definiamo i seguenti insiemi:
	\eal{&\ramo A=\pgra{\T{tutti i rami di }A}\NN
	\ramot A=\pgra{\T{tutti i rami terminati di }A}\NN
	\nodo A=\pgra{\T{tutti i nodi di }A}
	}
\end{defn}
\begin{thm}\label{lemdikonig}
	Lemma di Konig.\\
Un albero infinito, a diramazione finita, ha almeno un ramo infinito.
\end{thm}
\begin{proof}
	\step{p1}{Dim. che un nodo $X$ infinito ha almeno un figlio infinito}
	\begin{prova}
		Se per assurdo non avesse un figlio infinito, potremmo contare
		i nodi dell'albero che ha per radice $X$:
		\eal{&\T{Sia  }n(X)=|\pgra{\T{nodi nell'albero che comincia da
		$X$}}|\NN
		n(X)=n(X_1)+\dots+n(X_n)\ubrace{<}{n(X_i)<\8\;\;\forall i}
		\8\NN
		\qq \T{dove }X_1,\dots,X_n\T{ sono i figli immediati di }X}
		e questo e' assurdo.
	\end{prova}
	Sia $X$ la radice dell'albero infinito. $X$ e' quindi un nodo
	infinito, allora per il \sref{p1} avra' un figlio $X_1$ infinito, che
	a sua volta avra' un figlio $X_2$ infinito, e cosi' via per induzione.
	Abbiamo cosi' trovato il ramo infinito
	\eal{&X,X_1,X_2,X_3,\dots}
\end{proof}

\section{Induzione}
\begin{defn}
	$\P(U)$ e' l'insieme della parti di $U$.\\
	Con $A^{\8}$ intendiamo l'insieme
	\eal{&A^\8 \definizione{=} \bigcup_{n\in N}A^n}
\end{defn}
\begin{defn}
Data la relazione $r\( \Univ^{n+1}$, poniamo
\eal{&\ar r \;\;\definizione{=} \;\;n+1\\
&r(u_1,\dots,u_n)\definizione{=}\pgra{u\in \Univ\;|\;(u_1,\dots,u_n,u)\in r}}
Alle volte, per brevita' scriveremo $\vec u = (u_1,\dots,u_n)$\\
Se $T\(\Univ^n$, poniamo
\eal{&r(T)\definizione{=} \bigcup_{\vec u\in T}r(\vec u)
}
Ricordiamo infine che 
\eal{&
\T{$r$ e' una \emph{funzione} $r:\Univ^n \longrightarrow
\Univ$ $\=$ 
$r\(\Univ^{n+1}$, e inoltre $|r(\vec u)|=1\;\;\forall \vec u\in \Univ^n $}
}
\end{defn}
\begin{defn}
	\ilabel{insieme indotto}
	Sia $\Univ$ il nostro universo e sia 
	\eal{&B\( \Univ\\
	&\K\( \pgra{r\;|\;r\( \Univ^{n+1},\;n\in \N}\NN
	\S(B,\K)=\pgra{S\(\Univ\;|\;B\( S,\;\;r(S^{\ar r})\(S,\;\;r\in \K}
	}
	In pratica, un insieme $S\in \S(B,\K)$ contiene tutti gli elementi di
	$B$ e tutti quegli elementi $u$ che completando un vettore in $S^{\ar
	r}$ soddisfano $r$.\\
	Sia $A,B\( \Univ$,
	\eal{&A\T{ e' un insieme induttivo costruito da $B,\K$ }\definizione{\=}
	A=\bigcap_{S\in \S(B,\K)}S
	}
\end{defn}
\begin{prop}
	Si vede facilmente che
	\eal{&A=\min \S(B,\K)}
	$A$ e' quindi semplicemente il piu' piccolo degli elementi di $\S$.
\end{prop}

\begin{prop}
	\eal{&A=B\U\bigcup_{r\in  \K} r(A^{\ar r})}
\end{prop}
\begin{proof}
	\step{p1}{Dim. $\)$}
	\begin{prova}
	\eal{&B\( S \;\;\forall S\in \S(B,\K) \>  B\( \bigcap_{S\in
	\S(B,\K)}S=A\\
	&\vec a\in A^{\ar r} \> \vec a\in S^{\ar r}\;\;\forall S\in
	\S(B,\K)\;\; \ubrace{\>}{\T{def. di $\S$}}   r(\vec a)\( S\;\;\forall
	S\in \S  \> r(\vec a) \( A \\
	& r(\vec a) \( A  \;\;\forall \vec a\in A^{\ar r} \>  r(A^{\ar r})\( A
	}
	\end{prova}
	\step{}{Dim $\($}
	\begin{prova}
		Sia $C=B\U\bigcup_{r\in  \K} r(A^{\ar r})$, si ha
		\eal{&B\(C\NN
		C^{\ar r } \ubrace{\(}{\sref{p1}}A^{\ar r}
		\> r\pton{C^{\ar r } } \( r\pton{A^{\ar r}  } \ubrace{\(}{\T{def.
		di }C}C\NN
		\qq \> C\in \S(B,\K)\>A=\min\S(B,\K)\( C}
%
%		Presentiamo una dimostrazione a
%		Sfruttiamo la minimalita' di $A$:
%		\eal{&A=\min \S(B,\K) \> \nexists S\in
%		\S(B,\K):\;\;S\subsetneq A
%		}
%		Supponendo per assurdo che $A\supsetneq B\U\bigcup_{r\in  \K}
%		r(A^{\ar r})$, riusciamo a trovare $d$ t.c.
%		\eal{&d\in A,\;\;d\notin B,\;\;d\notin r(A^{\ar r})\;\forall
%		r\in \K\;\;(1)
%		}
%		Sia $\ove A=A\-\pgra{d}$.
%		\step{}{Dim. $\ove A \in \S(B,\K)$}
%		\begin{prova}
%	\eal{&1.\;\;d\notin B \( A \> B\(\ove A\\
%	&2.\;\;\vec a \in \ove A^{\ar r} \(  A^{\ar r}
%	\ubrace{\>}{\T{passo precedente}}  r(\vec a ) \(  A\NN
%	\T{Per la $(1)$ sappiamo che }d\notin r(\vec a)\T{ quindi }
%	 r(\vec a ) \(  \ove A
%	}
%		\end{prova}
%Ma  $\ove A \in \S(B,\K)$ e' in contrasto con la minimalita' di $A$.
	\end{prova}
\end{proof}
\begin{exemp}
	\ilabel{albero binario}
	\def\tree{\oname{tree}}
	Costruiamo induttivamente l'insieme $A$ degli alberi binarii.\\
	Definiamo il nostro universo:
	\eal{&\Un_0=\{\N\}\\
	&\Un_i=\{\P(\Un_{j})\*\P(\Un_{h})\*\P(\Un_{k})\;|\;
	j,h,k< i\}\NN
	\Un=\bigcup_{n\in N} \pton{\bigcup_{U\in \Un_n} U}
	}
Definiamo $B$ e $\K$:
	\eal{
	&B=\pgra{\pgra{a}\;|\;a\in \N}\\
	&\K=\pgra{\tree},\T{ dove }\NN
	\qq \tree: \Univ^3\longrightarrow\Univ\NN
	\qq \tree(\{0\},\{0\},\{0\})=\{0\}\NN
	\qq \tree(a,b,c)=(\pgra{a},\pgra{b},\pgra{c})
	}
	\begin{itemize}
		\item 
	$\{0\}$ verra' considerato come l'albero nullo.
\item
	$\{a\}\in \B\-\{\{0\}\}$ l'albero con un solo nodo
\item 
	$(\pgra{a},\pgra{b},\pgra{0})$ il seguente albero
	\ctree{[a[b] [] ]}
\item 
	$(\pgra{a},\pgra{b},\pgra{c})$ il seguente albero
	\ctree{[a[b] [c]]}
\item 
	$(\pgra{a},\pgra{(\pgra{e},\pgra{f},\pgra{g})},\pgra{c})$ il seguente
	albero 
	\ctree{[a[e [f] [g]] [c]]}
\item 
	$(\pgra{a},\pgra{(\pgra{e},\pgra{f},\pgra{ (\pgra{h},\pgra{0},\pgra{l}) })},\pgra{c})$ il seguente
	albero 
	\ctree{[a[e [f] [h [] [l]]] [c]]}

\end{itemize}
\end{exemp}
\begin{defn}
	\ilabel{sequenza di costruzione}
	Sia $m\ge 1$. $B$ e $\K$ hanno lo stesso significato della definizione 
	\see{insieme indotto},
	\eal{
&u_1,\dots,u_m\in \Un \T{ e' un sequenza di costruzione } \definizione{\=} \NN
\qq\qq \= \forall 1\le i\le m\;\;u_i\in B\; \| \;\exists r\in
	\K:\;u_i\in r(u_{i_1},\dots,u_{i_n}),\T{ con }i_j< i\;\;\forall
	j=1,\dots,n
	}
Sia $A\(\Un$.\\
$A\T{ e' costruito tramite sequenze su $B,\K$ }$ $\definizione{\=}$ $  \forall a \in
A\;\;$$\exists u_1,\dots,u_m\in \Un \T{ sequenza di costruzione t.c. }a=u_m$
\end{defn}
\begin{exemp}
	Costruiamo tramite una sequenza i numeri di Fibonacci.\\
	\def\fib{{\oname{fib}}}
	\eal{&\Un=\N\NN
	B=\pgra{0,1}\NN
	\K=\pgra{+},\T{ dove } + \T{ e' la normale addizione }
	}
	Costruiamo il numero di Fibonacci $8$:
	\eal{&u_1=0  \in B\\
	&u_2=1\in B\NN
	u_3=+(u_1,u_2)=1\NN
	u_4=+(u_2,u_3)=2\NN
	u_5=+(u_4,u_3)=3\NN
	u_6=+(u_5,u_4)=5\NN
	u_7=+(u_6,u_5)=8
	}
\end{exemp}
\begin{prop}\label{equivalenzacostruzioneinduzione}
Sia $\ove A$ un insieme costruito tramite sequenze su $B,\K$, allora
\eal{&\ove A = \min \S(B,\K)}
ovvero, $\ove A$ e' l'insieme indotto da $B,\K$.\\
In altre parole, costruire per sequenza e' equivalente a costruire tramite
induzione.
\end{prop}
\begin{proof}
	Sia $A=\min \S(B,\K)$.
	\step{}{Dim. $\ove A\in \S(B,\K)$}
	\begin{prova}
		Infatti, 
	\eal{&1.\;\;B\(\ove A\NN
	2.\;\;u\in r(a_1,\dots,a_m) \ubrace{\>}{\T{per def.}}  
	u\T{ e' costruito dalla sequenza }  
	\ubrace{a_{11},\dots,a_{1n_1}}{\T{sequenza di }a_1}, 
	\ubrace{a_{21},\dots,a_{2n_2}}{\T{sequenza di }a_2}, 
	\dots,
	\ubrace{a_{m1},\dots,a_{mn_{m}}}{\T{sequenza di }a_{m}}, u
	}
	\end{prova}
	Quindi,
	\eal{&A=\min \S(B,\K) \( \ove A\in  \S(B,\K)}
	Supponiamo adesso per assurdo che
$	\exists u\in \ove A \- A $, si ha 
\eal{&u\notin A \ubrace{\>}{B\( A}  u\notin B \;\;(1)\NN
u\in \ove A \> u\T{ e' costruito da una sequenza } u_1,\dots,u_m\T{ con }u_m=u
\;\;(1.1)\NN
(1),(1.1) \ubrace{\>}{\T{def. di $\ove A$}}  \exists \vec
u=(u_{i_1},\dots,u_{i_n})\in \Un^n
\;\exists r\in
\K:\;\;u\in r(\vec u),\;\;\T{ con }i_j< m
}
Se per assurdo $\vec u\in A^{n}$, si avrebbe:
\eal{&\vec u\in A^{n}  \ubrace{\>}{A\in \S(B,\K)}u\in r(\vec u)\( A
}
 Assurdo contro Hp. Quindi,
 \eal{&\vec u \notin  A^{n} \> \exists u_{i_j}\T{ componente di }\vec
 u:\;\;u_{i_j}\notin A\NN 
}
Tuttavia, $u_{i_j}$ fa parte della sequenza di costruzione $\vec u$, quindi
a sua volta e' costruito dai suoi elementi della sequenza $u_1,\dots,u_m$ a
lui precedenti. Poiche' $u_{i_j}\notin A$, possiamo ripetere lo stesso
ragionamento di prima sostituendo $u$ con $u_{i_j}$.
Risulterebbe cosi' che $u$ e' costruito da una sequenza infinita, e questo e'
assurdo.
\end{proof}
\begin{defn}\ilabel{insieme libero}
	Sia $A$ costruito induttivamente da $B,\K$, 
	\eal{&\T{La costruzione di }A\T{ e' libera } \definizione{\=}
	\forall a \in A \;\;a\in B \| \exists ! r\in \K\exists !\vec u\in
	A^{\ar r}:\;a\in r(\vec u)
	}
\end{defn}
\begin{prop}\ilabel{Induzione!strutturale}
	Induzione strutturale.\\
	Sia $A=\min \S(B,\K)$ e sia $P:A\longrightarrow \pgra{\true,\false}$ una
	proposizione riguardante gli elementi di $A$. Se le seguenti
	condizioni sono soddisfatte:
	\eal{&1.\;\;P(b)=\true\;\;\forall b\in B\\
	&2.\;\;\forall r\in \K\;\forall \vec u \in A^{\ar r}\;\;
	\pton{
	\pton{\forall i=1,\dots,\ar r\;\;P(u_i)=\true} \> P(a)=\true\;\forall a\in r(\vec u)
	}}
	allora si ha
	\eal{&P(a)=\true\;\;\forall a\in A
	}
\end{prop}
\begin{proof}
Sia 
\eal{&C=\pgra{a\in A \;|\; P(a)=\true}}
Per la $1.$ e $2.$ si ha
\eal{&B\( C\\
&r(C^{\ar r}) \( C
}
quindi, per definizione di $\S$ si ha
\eal{&C\in \S(B,\K) \> A=\min \S(\B,K) \( C
}
ma d'altronde, per definizione di $C$, $C\( A$. E quindi la tesi.
\end{proof}
\begin{defn}
	Sia $a\in A$, con $A$ insieme creato per sequenze su $B,\K$.\\
	\eal{&d(a)\definizione{=}
	\min \pgra{m\in \N\;|\;u_1,\dots,u_m\T{ sequenza di costruzione}, u_m
	=a}-1
	}
	$d(a)+1$ e' la lunghezza delle sequenze di costruzione piu' corte che
	generano $a$.\\
	\eal{&u_1,\dots,u_{m+1}\T{ e' una sequenza minimale per $u_m$
	}\definizione{\=}m=d(u_{m+1})
	}
\end{defn}
\begin{prop}\label{propseqminimali}
	Sia $a_1,\dots,(a_{m+1}=a)\T{ una sequenza di costruzione }
$ su $B,\K$. Si ha
	\eal{&1.\;\;d(a)=0\= a\in B\\
	&2.\;\;d(a_i)\le i-1\\
	&3.\;\;d(a_{m+1})=m \> d(a) > d(a_i)\;\;\forall i\le m
	}
\end{prop}
\begin{proof}
	\step{}{Dim. $3.$}
	\begin{prova}
		Se per assurdo $m=d(a_{m+1}) \le d(a_i)$, con $i\le m$, si avrebbe
		\eal{&m=d(a_{m+1}) \le d(a_i) \ubrace{\le}{2.} i-1\\
	&i-1 \le  i \le m \le  i-1 \> i=i-1 \> -1=0\T{ assurdo}}
	\end{prova}
\end{proof}
\begin{prop}\label{pp1p21212}
Sia $A=\min \S(B,\K)$ e sia $P:A\longrightarrow \pgra{\true,\false}$ una
	proposizione riguardante gli elementi di $A$. Si ha
	\eal{&P(a)=\true\;\;\forall a\in A\= \forall n \in \N \pton{
	P(a)=\true\;\;\forall a\in A:\;d(a)=n
	}
	}
	Questa proposizione e' utile per dimostrare ``$P(a)=\true\;\;\forall a\in
	A$''
	tramite l'induzione sui naturali.
\end{prop}
\begin{proof}
	\begin{pnecessaria}
Chiaro.
	\end{pnecessaria}
	\begin{psufficiente}
		\eal{&a\in A \ubrace{\>}{(*)}  \exists m\in \N:\;d(a)=m \> P(a)=\true
		}
		(*) Ogni elemento di $A$ e' costruito
		(\vedi{equivalenzacostruzioneinduzione})
	\end{psufficiente}
\end{proof}
%\begin{prop}
%	Nelle Hp della prop \see{pp1p21212}, supponiamo di aver dimostrato
%	``$P(a)=\true\;\;\forall a\in A$'' utilizzando l'induzione strutturale.
%\end{prop}
\begin{defn}\ilabel{funzione induttiva}
	Funzione induttiva.\\
	Sia $A$ un insieme costruito induttivamente su $B,\K$. Sia $V$ un
	secondo universo, non necessariamente uguale a $\UU$. Sia data una
	funzione $h$ tale che:
	\eal{&h:A\U\K \longrightarrow V\U\pgra{f:V^{\ar r}\longrightarrow V
	\;|\;r\in \K}\\
	&h(a)\in V\;\;\forall a\in A\\
	&h(r)\in \pgra{f:V^{\ar r}\longrightarrow V
        \;|\;r\in \K}\;\;\forall r\in \K
	}
	Una funzione $g:A\longrightarrow V$ si dira' induttiva su $A,h\=
	\forall a\in A $  si ha
	\eal{&1.\;\;\forall a\in B \;\;g(a)=h(a)\NN
2.\;\; \forall a\in A\-B\;\;\exists r\in \K\exists \vec u\in A^{\ar
r}:\;\sist{a\in r(\vec u)\\
	g(a)=(h(r))(g(u_1),\dots,g(u_{\ar r}))
}
	}
	Nota: Prima di tutto questa definizione non assicura che esistano $g$
	induttive su $A,h$, inoltre, poiche' nella condizione $2.$ richiediamo semplicemente che $\exists
	r,\exists \vec u$, fissata una $h$, potremmo avere diverse $g$
	induttive. Nella proposizione seguente, vedremo che quando $A$ e' un
	insieme induttivo libero, per ogni $h$ esistera' una sola $g$.
\end{defn}
\begin{prop}\label{funzioneinduttivaunica}
	Nelle Hp della def \see{funzione induttiva} si ha:
	\eal{&A\T{ insieme induttivo libero } \> \exists ! \T{ funzione
	induttiva } g\T{ su }A,h}
\end{prop}
\begin{proof}
	Costruiamo la funzione $g$ ponendo:
	\eal{&\forall a\in B \;\;g(a)=h(a)\NN
\forall a\in A\-B\;\;g(a)=(h(r))(g(u_1),\dots,g(u_{\ar r}))\NN
\qq \T{ dove } \vec u = (u_1,\dots,u_{\ar r})\in A^{\ar
r} \T{ e } r\in \K\T{ sono gli unici t.c. } a\in r(\vec u)
}
L'unicita' e l'esistenza di $\vec u, r$ sono garantiti dal fatto che $A$ e'
libero (\vedi{insieme libero}).\\
Dimostriamo adesso che $g$ e' ben definita.
Procediamo per induzione strutturale, dimostrando che 
$\forall a\in A \;\;\exists! v\in V:\;g(a)=v$
	\begin{itemize}
		\item \eal{&g(a)=h(a)\;\;\forall a\in B }
	e poiche' $h$ e' una funzione
	\eal{&\forall a\in B\;\exists! v\in V:\;h(a)=v}
\item
	Sia $r\in \K, \vec u\in A^{\ar r}$.
	Sia $a\in r(\vec u)\-B$. Per ipotesi induttiva abbiamo:
	\eal{&\forall u_i\T{ componente di }\vec u \;\exists ! v_i\in
	V:\;g(u_i)=v_i\NN
	a\in A\-B \> g(a)=(h(r))(g(u_1),\dots,g(u_{\ar
	r}))=(h(r))(v_1,\dots,v_{\ar r})
	}
	Poiche' $(h(r))$ e' una funzione, anche in questo caso il valore di
	$g(a)$ e' fissato ed unico.
	\end{itemize}
Per costruzione, $g$ e' una funzione induttiva su $A,h$. Dimostriamo adesso
che e' unica: supponiamo che esista $f \neq g$ funzione induttiva su $A,h$
\eal{&g(a)=h(a)=f(a)\;\;\forall a\in B  \ubrace{\>}{f \neq g} \exists a\in
A\-B:\;g(a) \neq f(a)\NN
a\in A\-B \> (h(r))(g(u_1),\dots,g(u_{\ar r})) = g(a)  \neq  f(a) = 
 (h(r))(f(u_1),\dots,f(u_{\ar r}))\;\;(1)
}
Nota: stiamo usando lo stesso $r,\vec u$ sia per $g(a)$ che per $f(a)$ perche'
sono gli unici che costruiscono $a$ ($A$ e' libero).
\eal{&(1) \> \exists i:\;g(u_i) \neq f(u_i) \> u_i\in A\-B}
A questo punto possiamo ripetere il ragionamento dalla $(1)$ e avremo che la
sequenza di costruzione di $a$ e' infinita.
Assurdo.
	\end{proof}
\section{Logica proposizionale}
\def\o{{\circ}}
\def\NOR{{\;\triangledown\;}}
\def\NOT{{\lnot}}
\def\NAND{{\;\vartriangle\;}}
\def\XOR{{\;\oplus\;}}
\def\ATform{{\oname{AT}}}
\def\Form{{\oname{Form}}}
\def\neg{{\oname{neg}}}
\def\bin{{\oname{bin}}}
\def\Pvar{{\oname{Var}}}
\def\Var{{\oname{Var}}}
\def\Bin{{\oname{Bin}}}
\def\Pimm{{\P_{\oname{imm}}}}
\def\PF{{\P_{\oname{form}}}}
\def\Pform{\PF}
\def\formula#1{\underline{#1}}

\begin{defn}\label{deflogicaprop}
	Il linguaggio della logica proposizionale e' formato dall'insieme $\Pvar=\pgra{p_1,p_2,\dots}$
	di lettere proposizionali, le lettere $TF=\pgra{\true,\false}$, e i simboli dei
	connettivi binari:\eal{&\Bin=\pgra{ \| , \& , 
\NOR,\NAND, 
	\>,\<,\=,\XOR,
\not\Leftarrow,
	\not\Rightarrow}}
	Nota\footnote{
$	\oname{XOR}=\XOR, \oname{NOR}=\NOR,\oname{NAND}=\NAND$ }
	. Infine, abbiamo l'insieme dei simboli delle parentesi
	$\pgra{(,)}$.\\
	L'insieme delle \iemph{formule atomiche} e' cosi' definito:
	\eal{&\ATform\definizione{=}\Pvar\U TF
	}
	L'insieme $\Form$ delle formule e' definito induttivamente:
	\eal{&\UU=(\ATform \U \Bin \U \pgra{(,),\NOT})^\8\qq \T{ cioe', tutte le
	possibili stringhe che possiamo formare con i simboli sopracitati}\NN
	B=\ATform\NN
	\K=\pgra{\neg}\U\pgra{\bin_\o\;|\;\forall \o\in \Bin}\NN
	\qq\T{Dove } \neg\T{ e' la funzione }\neg:\UU \longrightarrow \UU,\;\;
	\neg(P)=\lnot  P\NN
	\bin_\o\T{ e' la funzione } \bin_\o:\UU^2\longrightarrow
	\UU,\;\;\bin_\o(P,Q)=P\o Q
	}
	In altri termini, $\Form$ e' il piu' piccolo sottoinsieme di $\UU$
	tale che
	\eal{&\ATform \( \Form\NN
	P\in \Form \> \NOT P \in \Form\NN
	P,Q\in \Form \> P\o Q\in \Form
	}
	Data una formula $Y\in \Form$ definiamo l'insieme delle sottoformule
	immediate:
	\eal{&P\in \Pimm(Y)\definizione{\=} \sist{P=X\\
	Y=\lnot X} \T{oppure} \;\sist{P=A  \;\T{oppure}\;  P=B\\
	Y=(A\o B)} }
	L'insieme di tutte le sottoformule di $Y$ e' il piu' piccolo
	sottoinsieme $\PF(Y)\(\UU$ t.c.
	\eal{&Y\in \PF(Y)\NN
	Q\in \PF(Y) \> \Pimm(Q) \( \PF(Y)
	}
\end{defn}
\begin{defn}
		Adesso diamo una \emph{interpretazione} ad ogni simbolo  della
		logica proposizionale.\\
Ad ogni $\o\in \Bin$ associeremo la relativa funzione binaria, ad esempio,
alla lettera $ \| $ associamo la funzione $AND:TF^2\longrightarrow TF$.\\
Al simbolo $\lnot$ associamo la funzione negazione $\lnot:TF\longrightarrow
TF$.\\
E cosi' via, in maniera del tutto naturale.\\
Per evitare confusioni, sottolineeremo il testo che indica una stringa di
lettere, ad esempio
\eal{&\formula{(A \| B) \& B} }
e' una stringa, in particolare e' una formula, quindi possiamo scrivere:
\eal{&\formula{(A \| B) \& B}\in \Form
}
\end{defn}
\def\V{{\mathcal{V}}}
\begin{defn}\ilabel{valutazione booleana}
	Valutazione booleana.\\
	Una funzione $v:\Form\longrightarrow TF$ si chiama valutazione $\=$
	\eal{&1.\;\;v(\formula{\true})=\true\NN
	2.\;\;v(\formula{\false})=\false\NN
	3.\;\;v(\formula{\lnot X})=\lnot v(\formula{X})\NN
	4.\;\;v({\formula{X\o
	Y}})=v(\formula{X})\o(\formula{Y})\;\;\forall \o\in \Bin\NN
	}
	Sia $\V$ l'insieme di tutte le valutazioni.
\end{defn}
\begin{lem}\label{propdatafesisteunasolavalutaz}
	Data una funzione $f:\Pvar \longrightarrow  TF$  si ha
	\eal{&\exists ! v_f\T{ valutazione booleana: } \forall p\in
	\Pvar\;\;v_f(p)=f(p)}
	Quindi le valutazioni booleane esistono, cioe' $\V \neq \0$. Sono anche infinite perche'
	le $\Pvar$ e' infinito e quindi abbiamo infinite funzioni del tipo
	$\Pvar\longrightarrow TF$
\end{lem}
\begin{proof}
	Definiamo induttivamente $v_f$ in modo da rispettare le condizioni
	della def \see{valutazione booleana} e la condizione $\forall
	p\in\Pvar\;\;v_f(p)=f(p)$.\\
Poiche' $\Form$ e' un insieme induttivo libero, per la
\see{funzioneinduttivaunica} abbiamo la tesi.
\end{proof}
\begin{lem}\label{lem1}
	Sia $X\in \Form$ e sia $S\(\Pvar$ l'insieme di tutte le lettere
	proposizionali di $X$, ovvero
	\eal{&S=\PF(X)\^\Pvar
	}
	allora
	\eal{&v_1,v_2\T{ valutazioni: }v_1(P)=v_2(P)\;\;\forall P\in S\>
	v_1(X)=v_2(X)}
	Quindi se due valutazioni sono identiche sulle lettere di una formula,
	allora saranno indentiche sulla stessa formula. 
\end{lem}
\begin{proof}
	Si dimostra per induzione strutturale su $\Form$:
	\eal{&
	v_1(\true)=\true=v_2(\true)\NN
	v_1(\false)=\false=v_2(\false)\NN
	X\in \Pvar  \ubrace{\>}{\T{per Hp}} v_1(X)=v_2(X)\NN
	v_1(X) \ubrace{=}{X=\lnot Y} v_1(\lnot Y)=v_1(\lnot Y)=\lnot v_1(Y) \ubrace{=}{\T{Hp induttiva}} \lnot v_2(Y)
	=v_2(\lnot Y)=v_2(X)\NN
	v_1(X)=v_1(Z\o Y)  = v_1(Z)\o v_1(Y) \ubrace{=}{\T{Hp induttiva}} v_2(Z)\o
	v_2(Y) = v_2(Z\o Y) = v_2(X)
	}
\end{proof}
\def\simX{{\stackrel{X}{\sim}}}
\begin{defn}
	Per ogni $X\in \Form$, posto $S(X)=\PF(X)\^\Pvar$, stabiliamo la seguente relazione d'equivalenza:
	\eal{&
	v_1\stackrel{X}{\sim} v_2 \= {v_1}_{|S}={v_2}_{|S}
	}
	Per il lemma \see{lem1}, tutte le $v$ di una stessa classe
	d'equivalenza avranno lo stesso valore su $X$, ovvero:
	\eal{&v_1(X)=v(x)\;\;\forall v\simX v_1}
	In questo modo, per conoscere tutte le possibili valutazioni su $X$,
	possiamo limitarci a considerare i rappresentati delle classi
	d'equivalenza $\simX$.\\
	Se $|S(X)|=n$, ovvero se $X$ ha $n$ variabili  proposizionali
	$P_1,\dots,P_n$, il
	numero di rappresentanti sara' $2^n$. Infatti, per ogni
	$f:\Pvar\longrightarrow TR$ abbiamo la valutazione $v_f$. Tutte le
	$f$ distinte su $P_1,\dots,P_n$ sono tante quante le funzioni del tipo
	$\pgra{P_1,\dots,P_n}\longrightarrow TR$, ovvero $2^n$.\\
	In pratica, calcolare tutte le valutazioni su $X$ equivale a calcolare
	la tabella di verita' della formula $X$. Ad esempio, calcolare la
	tavola di verita' di $X=\formula{P_1\>(P_2\>P_1)}$.
\end{defn}
\begin{defn}\qq\\
Sia $v\in \V$, poniamo\\
	$v\models X\definizione{\=} v(X)=\true$\\
	$X \in \Form $ e' una tautologia $\definizione{\=} \forall v\in
	\V\;\;v\models X$\\
	$X\T{ e' insoddisfacibile } \definizione{\=} \forall v\in
	\V\;\;v\not\models X$\\
	$X\T{ e' soddisfacibile } \= \exists v\in \V:\;\;v\models X$
\end{defn}
\begin{prop}
	$X\T{ tautologia }\= \lnot X\T{ insoddisf.}$
\end{prop}
\begin{proof}
	\eal{&X\T{ tautologia }\= v\models X\;\;\forall v\=
	v(X)=\true\;\;\forall v\= \lnot v(X)=\false\;\;\forall v\= v(\lnot
	X)=\false\;\;\forall v}
\end{proof}
\begin{defn}
	Sia $S\(\Form,\;X\in \Form$, poniamo
	\eal{&v\models S\definizione{\=} v\models s\;\;\forall s\in S\NN
	S\T{ e' insoddisfacibile } \definizione{\=} v\not\models S\;\;\forall
	v\in \V\NN
	S\T{ e' soddisfacibile } \= \exists v\in \V:\;\;v\models S\NN
	S\models X\definizione{\=}\forall v\in \V \;\pton{v|=S \> v|=X}}
Quando	$S\models X$, diremo che $X$ e' una conseguenza logica di $S$ o che
$X$ e' dedotto da $S$. (In
pratica possiamo pensare $S$ come un insieme di assiomi e $X$ come una
conseguenza degli assiomi).
\end{defn}
\begin{prop}\label{0esttaut}
	Con $\models X$ intendiamo $\0 \models X$
	\eal{&\0\models X \= v\models X\;\;\forall v\in \V\= X\T{ e' una
	tautologia}
	}
\end{prop}
\begin{proof}
	\eal{&\0\models X \= \forall v\in \V \;(v\models \0 \> v \models X )
	\;\;(1)\NN
	v\models \0 \= v\models s\;\;\forall s\in \0 \= 
	\pton{s\in \0 \> v\models s} \= \pton{\false \> v\models s} 
	\=
	\T{ vero}\NN
	\T{Quindi: }v\models \0 \= \true\;\;(2)\NN
	(2),(1) \> \forall v\in \V \;(\true \> v \models X ) \> \forall v\in
	\V\;\;v\models X\= v\T{ tautologia }
	}
\end{proof}
\begin{lem}
	Sia $S\( \Form,\;x\in \Form$,
	\eal{&S\models X \= S\U \pgra{\lnot X}\T{ e' insoddisfacibile}}
\end{lem}
\begin{proof}
	\BEGINpnecessaria
	Supponiamo per assurdo che $S\U \pgra{\lnot  X}$ sia soddisfabile,
	ovvero che
	\eal{&\exists v\in \V:\;\;v\models S\U \pgra{\lnot X}
	\> v\models \lnot X \> v(\lnot X)=\true\= v(X)=\false\NN
	\sist{v \models S\\
	S\models X} \> v\models X \> v(X)=\true 
	}
	assurdo.
	\END
	\BEGINsufficiente
Sia $v\in \V:\;v\models S$, vogliamo mostrare che $v\models X$.
\eal{&v\models S, \;S\U\pgra{\lnot X}\T{ insoddisfacibile }
\> v\not\models \lnot X \> v(\lnot X)=\false \= v(X)=\true \= v\models X
}
	\END
\end{proof}
\begin{thm}\label{thmdideduzione}
	della deduzione semantica.\\
	Sia $S\( \Form,\;X,Y\in \Form$,
	\eal{&S\U \pgra{X}\models Y \= S\models \formula{(X\> Y)}}
	Nota: usando la prop \see{0esttaut} e ponendo $S=\0$, abbiamo il
	teorema di deduzione:
	\eal{&X\models Y \= \underline{X\> Y} \T{ e' una tautologia }
	}
	Questo teorema giustifica l'usuale tecnica di dimostrazione delle
	implicazioni $A\> B$: si suppone $A$ vera e si \emph{deduce} $B$.
\end{thm}
\begin{proof}
\BEGINpnecessaria
Sia $v\in \V:\;v\models S$, dimostriamo che $v\models \formula{X\> Y}$.
\eal{&v(X\>Y) = (v(X) \> v(Y)) \;\;(1)
}
Supponiamo $v(X)=\true$, cioe' $v\models X$, e sfruttiamo l'ipotesi:
\eal{&\sist{v\models S\\
v\models X\\
S\U \pgra{X}\models Y 
} \> v\models Y \> v(Y)=\true\NN
v(x)=v(Y)=\true \> (v(X) \> v(Y)) =\true
}
Nel caso in cui $v(X)=\false$, si ha sempre 
\eal{&(v(X) \> v(Y)) =\true
}
Quindi l'implicazione $(1)$ e' vera, cioe'
\eal{&v(X\>Y ) =\true}
\END
\BEGINsufficiente
Sia $v\in \V:\;v\models S\U\pgra{X}$ dimostriamo che $v\models Y$.
\eal{&v\models  S\U\pgra{X}  \> v\models X \> v(X)=\true\NN
v\models S  \ubrace{\>}{\T{Hp}} v\models\formula{X\> Y} \>
(v(X)\>v(Y))=\true  \ubrace{\>}{v(X)=\true}  v(Y)=\true
}
\END
\end{proof}
\begin{cor}\label{thmdideduzionegeneralizzata}
	Sia $\pgra{X_1,\ldots,X_n}\( \Form$,
	\eal{&\pgra{X_1,\ldots,X_n}\models Y \=
	\models \formula{X_1\>(X_2\>(\ldots \> ( X_{n}\> Y)\ldots))}
	}
	Con questo corollario possiamo ricondurre il problema di verificare la
	deduzione di $Y$ dagli assiomi $S$ a quello di verificare una catena
	di implicazioni.
\end{cor}
\begin{proof}
	Procediamo per induzione su $n$.\\
	Per $n=1$ basta rileggere la nota  del thm \see{thmdideduzione},
	\eal{&\pgra{X_1,\ldots,X_n}\models Y 
	\= \pgra{X_1,\ldots,X_{n-1}}\U\pgra{X_n}\models Y 
	\ubrace{\=}{\see{thmdideduzione}} 
	\pgra{X_1,\ldots,X_{n-1}}\models \formula{(X_n\> Y)}\=\NN
	\ubrace{\=}{\T{Hp induttiva}} 
	X_1\>(X_2\>(\ldots \>(X_{n-1}\>(X_n\> Y)\ldots))
	}
\end{proof}
\def\oo{{\bullet}}
\def\dual{{\;\oname{dual}\;}}
\begin{defn}
	Siano $\o,\oo:TR^2 \longrightarrow  TR$ due funzioni binarie, 
	\eal{&\o \dual \oo \definizione{\=} \lnot (a\o b)= (\NOT a \oo \NOT b)
	}
\end{defn}
\begin{prop}\label{dualsym}
	\eal{&
	\o \dual \oo \= \oo \dual \o}
\end{prop}
\begin{proof}
\eal{&\lnot (a\o b)= (\NOT a \oo \NOT b)
= \lnot (\lnot (\NOT a \oo \NOT b))  \ubrace{\=}{\T{negando ambo i membri}} 
a\o b = \NOT (\NOT a \oo \NOT b) \= 
\NOT a \o \NOT b = \NOT (a\oo b)
}
\end{proof}
\begin{prop}\label{connettividuali}
	Tutti i connettivi binari sono a due a due duali:
	\eal{& \|,\;  \& \NN
	\true,\false\NN
	\pi_1,\pi_1\NN
	\pi_2,\pi_2\NN
	\NOT_{left},\NOT_{left}\NN
	\NOT_{right},\NOT_{right}\NN
	\<,\;\not\Rightarrow\NN
	\>,\;\not\Leftarrow\NN
	\=,\;\not\Leftrightarrow\;=\XOR\NN
	\NOR,\;\NAND
	}
	Nota: $a \;\pi_1\;b\;\definizione{=}\;a$\\
	Nota: $a\;\NOT_{left}\; b \;\definizione{=}\NOT a$.
\end{prop}
\begin{proof}
	Per definizione abbiamo:
	\eal{&\o \dual \oo \= \NOT (a\o b) = \NOT a \oo \NOT b \=  a\o b =
	\NOT (\NOT a \oo \NOT b)\;\;(1)
	}
	Quindi conoscendo $\oo$ possiamo ricavare $\o$.
\eal{&
\NOT (a \< b) = \NOT (\NOT a \> \NOT b) = (\NOT a \not \Rightarrow \NOT b)\NN
\NOT (a \> b) = \NOT (\NOT a \< \NOT b) = (\NOT a \not \Leftarrow \NOT b)\NN
\NOT (a\= b) = \NOT (\NOT a \= \NOT b) = \NOT a \not\Leftrightarrow \NOT b\NN
\NOT ( \NOT a \NAND \NOT b) = 
\NOT (\NOT ( \NOT a  \&  \NOT b)) = 
\NOT a  \& \NOT b = \NOT (a  \|  b) = a \NOR b  
\ubrace{\>}{\T{negando}}  \NOT (a \NOR b)=\NOT a \NAND \NOT b
	}
\end{proof}
\def\dd#1{{#1}^\delta}
\def\neg#1{{\overline{#1}}}
\def\.{{\cdot}}
\begin{defn}\label{defoperatonegazione}
	Definiamo induttivamente la seguente funzione, chiamata \iemph{operatore duale}:
	\eal{&\dd{\.}:\Form \longrightarrow  \Form\NN
	\dd A = A\;\;\forall A \in \Pvar\NN
	\dd \true = \false\NN
	\dd \false = \true\NN
	\dd{(\NOT X )} = \NOT \dd X\;\;\forall X\in \Form\NN
	\dd{(X\o Y)} =\dd X \oo \dd Y\;\;\forall X,Y\in \Form\;\forall \o\in
	\Bin,\NN
	\T{dove } \oo \T{ e' il connettivo binario duale di }\o\T{
	(\vedi{connettividuali})
	}}
	In pratica, $\dd{\.}$ scambia tra loro $\true,\false$ e tutti i $\o$  con i loro
	$\oo$.\\
	Definiamo l'operatore di negazione:
	\eal{&\neg{\.}:\Form \longrightarrow  \Form\NN
	\neg A = \NOT A\;\;\forall A \in \Pvar\NN
	\neg \true = \true\NN
	\neg \false = \false\NN
	\neg{(\NOT X )} = \NOT \neg X\;\;\forall X\in \Form\NN
	\neg{(X\o Y)} =\neg X \o \neg Y\;\;\forall X,Y\in \Form\;\forall \o\in
	\Bin
	}
	In pratica $\neg{\.}$ scambia ogni lettera proposizionale $P$ con
	$\NOT P$.
\end{defn}
\begin{prop}\label{propnegtaut}
	Sia $X\in \Form$
	\eal{&\models X \= \models  \neg X}
\end{prop}
\begin{proof}
	Basta osservare che
	\eal{&\neg v (Y) =v(\neg Y)
	}
	e' la valutazione $v$ con i valori negati sulle lettere
	proposizionali, piu' precisamente, se $v=v_f$ allora $\neg v =
	v_{\NOT f}$.\\
	Inoltre e' chiaro che $\neg{ \neg v} = v$:
	\eal{&\neg v=v_{\NOT f} \> \neg{\neg v}=v_{\NOT \NOT f}=v_f=v
	}
	Quindi,
	\eal{&\models X \= \forall v\in \V \;v\models X
	\ubrace{\>}{\neg v\in \V} \neg v\models X
	\= \neg v(X)=\true \= v(\neg X)=\true\= v\models \neg X\NN
	\forall v\in \V \;v\models \neg X
	}
\end{proof}
\begin{prop}\label{propnegdd}
Sia $v\in \V$,	$X\in \Form$, allora
\eal{&v(\NOT \neg X) = v(\dd X)
}
\end{prop}
\begin{proof}
	Per induzione strutturata su $\Form$:
\eal{&v(\NOT \neg P ) = v(\NOT \NOT P)= v(P) = v(\dd P)\;\;\forall P\in
\Pvar\NN
v(\NOT \neg \true)= v(\NOT \true ) =v(\false)=v(\dd \true)\NN
v(\NOT \neg \false)= v(\NOT \false ) =v(\true)=v(\dd \false)\NN
v(\NOT \neg{(\NOT X)})=
v(\NOT \NOT \neg{X})=
\NOT v(\NOT \neg{X}) \ubrace{=}{\T{Hp indutt.}} 
\NOT v(\dd{X}) =
v(\NOT{ \dd X} ) =v(\dd{(\NOT X)})\NN
v(\NOT \neg{(A\o B)})=
v(\NOT {(\neg A\o \neg B)}) \ubrace{=}{\T{duale}} 
v(\NOT \neg A\oo \NOT \neg B))=
v(\NOT \neg A)\oo v(\NOT \neg B) \ubrace{=}{\T{Hp indutt}} 
v(\dd A )\oo v(\dd B)
= v(\dd A \oo \dd B)
= v(\dd{ (A\o B)})
	}
\end{proof}
\begin{prop}
Sia $X,Y\in \Form$
\eal{&\models \formula{(X\> Y)} \> \models \formula{(\dd Y \> \dd X)} }
\end{prop}
\begin{proof}
	\eal{&
	\models \formula{(X\> Y)}  \ubrace{\>}{\see{propnegtaut} }
	\models \neg{X\> Y} \= v(\neg{X\> Y}) =\true\;\;\forall v\in \V\;\;(1) \NN
	v(\dd Y \> \dd X) = 
	(v(\dd Y) \> v(\dd X))
	\ubrace{=}{\see{propnegdd}} 
	(v(\NOT \neg  Y) \> v(\NOT \neg X))  = \NN
	=
	(\NOT v( \neg  Y) \> \NOT  v( \neg X))  = 
	(v( \neg  Y) \<  v( \neg X))  = v(\neg X \> \neg Y) = v(\neg {(X \>
	Y)})  \ubrace{=}{(1)}\true 
	}	
\end{proof}
\begin{defn}\label{operatoresostituzione}
Sia $X,Y\in \Form,\;\;P\in \Pvar$.
Definiamo \eal{&X(P|Y)}
come  quella formula ottenuta da $X$ sostituendo la lettera $P$ con la formula
$Y$. Se la lettera $P$ non e' presente in $X$, allora $X(P|Y)=X$.\\
Formalmente definiamo l'operatore di sostituzione:
	\eal{&(P|Y):\Form \longrightarrow  \Form\NN
	A(P|Y) = \sist{Y&A=P\\
	A&A \neq P}  \;\;\forall A \in \Pvar\NN
	\true(P|Y) = \true\NN
	\false(P|Y) = \false\NN
	{(\NOT X )}(P|Y) = \NOT X(P|Y)\;\;\forall X\in \Form\NN
	{(X\o Y)}(P|Y) = X(P|Y) \o Y(P|Y)\;\;\forall X,Y\in \Form\;\forall \o\in
	\Bin
	}
\end{defn}
\begin{prop}
	\label{psost}
	Sia $v\in \V,\;Y,Z\in \Form,\; P\in\Pvar$. Allora si ha
	\eal{&v(Y)=v(Z) \> v(X(P|Y))= v(X(P|Z))\;\;\forall X\in \Form
	}
\end{prop}
\begin{proof}
Supponiamo che $v(Y)=v(Z) $ e
procediamo per induzione su $X$:
\eal{&X=\true \> X(P|Y)=\true=X(P|Z) \>  v(X(P|Y))= v(X(P|Z))\NN
X=\false\>\dots\T{ analogamente }\NN
X=P \> X(P|Y) = Y,\;X(P|Z)=Z  \ubrace{\>}{v(Y)=v(Z)} v(X(P|Y))= v(X(P|Z))\NN
X\in\Pvar\-\pgra{P}
\> X(P|Y) = X=X(P|Z) \> v(X(P|Y))= v(X(P|Z))\NN
X\in \Form,\; v(\formula{\NOT X}(P|Y)) \ubrace{=}{\T{def} }
 v(\NOT X(P|Y))
 =
 \NOT v(X(P|Y)) \ubrace{=}{\T{Hp indutt.}} 
 \NOT v(X(P|Z)) 
 \ubrace{=}{\T{come prima}} 
 v(\formula{\NOT X}(P|Z))\NN
 A,B\in \Form,\;v(\formula{A\o B}(P|Y))
 = v(A(P|Y))\o v(B(P|Y))  \ubrace{=}{\T{Hp indutt.}} 
 v(A(P|Z))\o v(B(P|Z)) = v(\formula{A\o B}(P|Z))
}	
\end{proof}
\begin{prop}\label{psostII}
	\eal{&\models \formula{Y\=Z} \;\>\; \models\formula{X(P|Y) \= X(P|Z)}}
\end{prop}
\begin{proof}
	Sia $v\in \V$
	\eal{&\models \formula{Y\= Z} 
	\> v(\formula{Y\=Z})=\true \;\=\; (v(Y) \= v(Z)) =\true \;\=\;
	v(Y)=v(Z)= \true\;\;(1)\NN
	(1)  \ubrace{\>}{\see{psost}} 
	 v(X(P|Y)) = v(X(P|Z))  \= (v(X(P|Y)) \= v(X(P|Z)))=\true
	 \=
	v(\formula{X(P|Y) \= X(P|Z)})=\true
	}
\end{proof}
\subsection{Forme normali}
\begin{defn}
	Diremo che una formula $X\in \Form$ e' in forma normale negativa (FNN) se
	vale la seguente:
	\eal{&\formula{\lnot Y} \in \Pform(X)  \> Y\in \Pvar
	}
	ovvero, quando $\lnot $ si trova solo davanti a lettere
	proposizionali.\\
	Ogni formula si puo' convertire in FNN, utilizzando la seguente
	funzione induttiva:
	\eal{&
	\oname{FNN}(P)=P\;\;\forall P\in \ATform\NN
	\oname{FNN}(\NOT Y)= \sist{\oname{FNN}(X) & \T{se }Y=\NOT X\\
	\NOT \oname{FNN}(A)  \oo \NOT \oname{FNN}(B)  & \T{se }Y=\NOT (A\o B)}\NN
	\oname{FNN}(A\o B) = \oname{FNN}(A)\o \oname{FNN}(B) 
	}
\end{defn}
\def\BinI{{\oname{Bin}_{\oname{I}}}}
\def\BinII{{\oname{Bin}_{\oname{II}}}}
\def\a{{\alpha}}
\def\b{{\beta}}
\def\Forma{{\Form_{\a}}}
\def\Formb{{\Form_{\b}}}
\def\Formg{{\Form_{\gamma}}}
\def\Formd{{\Form_{\delta}}}
\begin{defn}
	\ilabel{connettivi primari}
	I connettivi binari primari sono 10 e sono:
	\eal{&  \BinI\definizione{=}\pgra{\& ,  \| , \> ,\<, \NAND,\;
	\NOR,\;\not\Leftarrow,\;\not\Rightarrow}
	}
	I connettivi secondari sono 
	\eal{&\BinII\definizione{=}{\=,\;\not\Leftrightarrow}}
Si puo' verificare facilmente che utilizzando un  $\o\in \BinI$ e $\NOT$ (ad
esempio $\NOT, \| $) e'
possibile ricavare tutti gli altri connettivi.\\
	\label{formulealphabetadef}
Possiamo suddividere le formule del tipo $A\o B$,\; $\NOT A\o B$, 
con $\o\in
\BinI$ in due categorie: le $\alpha$-formula e le $\beta$-formula.
\eal{&\a \in \T{$\a$-formula } \definizione{\=}
\sist{
\a\in \pgra{\formula{X\o Y},\;\;\formula{\NOT(X\o Y)}\;|
\;X,Y\in \Form,\;\;\o\in \BinI
}\\
\models \formula{\a\=\a_1  \& \a_2},\T{ con } \a_1\in \pgra{X,\;\NOT
X},\;\;\a_2\in \pgra{Y,\;\;\NOT Y}}
\NN
\b\in\T{$\b$-formula  } \definizione{\=} \sist{
\b\in \pgra{\formula{X\o Y},\;\;\formula{\NOT(X\o Y)}\;|\;X,Y\in
\Form,\;\;\o\in \BinI}\\
\models \formula{\b\=\b_1   \|  \b_2},\T{ con } \b_1\in
\pgra{X,\;\NOT X},\;\;\b_2\in \pgra{Y,\;\;\NOT Y}
}}
$\a_1,\a_2$ si chiamano \emph{componenti} di $\a$\\
In altre parole, una $\a$-formula e' una formula che si puo' scrivere
equivalentemente come  $\a_1  \& \a_2$. Invece, una $\b$-formula si puo'
scrivere equivalentemente come $\b_1 \| \b_2$.
\end{defn}
\def\FormI{{\Form{\oname{I}}}}
\begin{defn}
	Sia $\FormI$ l'insieme induttivo delle formule definito analogamente
	a quanto fatto in \see{deflogicaprop}, ma usando $\BinI$ al posto di
	$\Bin$.\\
	Poiche' stiamo usando i connettivi primari, non avremo alcuna perdita
	di espressivita'. Inoltre, intenderemo i connettivi $\BinII$ definiti
	tramite $\BinI$, ad esempio, la nostra scrittura
	\eal{&\formula{A\= B}}
	sara' solo una abbreviazione per la formula
	\eal{&\formula{(A\<B) \& (A\>B)}}
\end{defn}
\begin{defn}\label{tabellaalphabetaform}
	Ecco la lista delle $\a$ e $\b$ formule minimali (le piu' corte
	formule scritte in base alle loro componenti):
	\def\invnot{\invisible{\NOT}}
	\begin{itemize}
		\item $\a$-formula 
	\begin{center}
	\begin{tabular}{c|cc}
		$X\& Y $&$ \invnot X $&$ \invnot Y$\\
		$\NOT(X \| Y) $&$ \NOT X $&$ \NOT Y$\\
		$\NOT(X\> Y) $&$ \invnot X $&$\NOT Y$\\
		$\NOT(X\< Y) $&$ \NOT X $&$ \invnot Y$\\
		$\NOT(X\NAND Y) $&$ \invnot X $&$ \invnot Y$\\
		$X\NOR Y $&$ \NOT X $&$ \NOT Y$\\
		$X\not\Rightarrow Y $&$ \invnot X $&$ \NOT Y$\\
		$X\not\Leftarrow Y $&$ \NOT X $&$ \invnot Y$
	\end{tabular}
	\end{center}
	Definiamo $\Forma$ come l'insieme delle $\a$-formule presenti in
	questa tabella (prima colonna), con $X,Y\in \FormI$.
		\item $\b$-formula
	\begin{center}
	Poniamo 
	\begin{tabular}{c|cc}
		$\NOT(X\& Y) $&$ \NOT X $&$ \NOT Y$\\
		$X \| Y $&$ \invnot X $&$ \invnot Y$\\
		$X\> Y $&$ \NOT X $&$ \invnot Y$\\
		$X\< Y $&$ \invnot X $&$ \NOT Y$\\
		$X\NAND Y) $&$ \NOT X $&$ \NOT Y$\\
		$\NOT(X\NOR Y) $&$ \invnot X $&$ \invnot Y$\\
		$\NOT(X\not\Rightarrow Y) $&$ \NOT X $&$ \invnot Y$\\
		$\NOT(X\not\Leftarrow Y) $&$ \invnot X $&$ \NOT Y$\\
	\end{tabular}
	\end{center}
	Definiamo $\Formb$ come l'insieme delle $\b$-formule presenti in
	questa tabella (prima colonna), con $X,Y\in \FormI$.
	\end{itemize}
\end{defn}
\begin{prop}
	Sia $\a\in \Forma,\;\b\in \Formb$ e siano $\a_1,\a_2,\b_1,\b_2$ le
	rispettive componenti, allora
	\eal{&v(\a)=v(\a_1) \& v(\a_2)\NN
	v(\b)=v(\b_1) \| v(\b_2)
	}
\end{prop}
\begin{thm}\label{thmabinduzione}
	$\a,\b$-Induzione.\\
	Adesso presentiamo una tecnica di induzione strutturale che si basa
	sulle $\a,\b$-formule.\\
Sia $Q\( \FormI$.
Se valgono le seguenti:
\eal{&1.\;\;\ATform,\NOT\ATform \( Q,\;\;\T{ dove }\NOT\ATform=\pgra{\NOT
P\;|\;P\in \ATform}\NN
2.\;\;z\in Q\> \NOT\NOT z\in Q\NN
3.\;\;\a\in \Forma,\;\a_1,\a_2\in Q \> \a\in Q\NN
4.\;\;\b\in \Formb,\;\b_1,\b_2\in Q \> \b\in Q
}
allora
\eal{&Q=\FormI}
\end{thm}
\begin{proof}
	Sia
	\eal{&Q'=\pgra{X\;|\;X,\NOT X\in Q} \( Q \( \FormI
	}
	Dimostriamo per induzione strutturale su $\FormI$ che $Q'=\FormI$.
	\begin{itemize}
		\item Per la $1.$, il caso base e' immediato:
			\eal{&P\in \ATform\( Q  \ubrace{\>}{\NOT \ATform \( Q}
			\NOT P \in Q \NN
			\qq \> P\in Q'
			}
		\item Supponiamo $z\in Q'$ e dimostriamo $\NOT z\in Q'$:
			\eal{&z\in Q' \> z,\;\NOT z\in Q  \ubrace{\>}{2.} 
			\NOT \NOT z\in Q \NN
			\NOT z\in Q,\;\;\NOT\NOT z\in Q \> \NOT z \in Q'
			}
		\item Supponiamo $x,y\in Q',\;\o\in \BinI$ e dimostriamo $x\o y\in Q'$. 
			\eal{&\o\in \BinI
			\ubrace{\>}{\see{tabellaalphabetaform}}  x \o y\in \Forma\U\Formb, \T{ con componenti } c_1\in \pgra{x,\;\NOT x},\;c_2\in
			\pgra{y,\;\NOT y}\NN
			x,y\in Q' \> c_1,c_2\in Q  \ubrace{\>}{3.,\;4.}
			x\o y \in Q\NN
			\T{analogamente } \NOT(x\o y) \in Q\NN
			\qq  \> x\o y \in Q' 
			}
	\end{itemize}
\end{proof}
\def\Formab{{\FormI_{\a\b}}}
\def\nneg{{\oname{nneg}}}
\begin{defn}
	\label{defformab}
	Sia $\Formab$ l'insieme induttivo cosi' definito: 
	\eal{&\UU=(\ATform \U \NOT\ATform \U \BinI \U \pgra{(,),\NOT})^\8\NN
	B=\ATform\U\NOT\ATform \NN
	\K=\pgra{\nneg}\U\pgra{\bin_{\a},\;\bin_{\b}}\NN
	\qq\T{Dove } \nneg\T{ e' la funzione }\nneg:\UU \longrightarrow \UU,\;\;
	\nneg(P)=\lnot\NOT  P\NN
	\bin_\a\T{ e' la relazione: }\NN
	\qq \bin_\a\(\UU^2\*\UU ,\;\;A\in
	\bin_\a(\a_1,\a_2)\definizione{\=} A\T{ e' una $\a$-formula della tabella
	\see{tabellaalphabetaform} con componenti } \a_1,\a_2\NN
	\bin_\b\T{ e' la relazione: }\NN
	\qq\bin_\b\(\UU^2\*\UU ,\;\;A\in
	\bin_\b(\b_1,\b_2)\definizione{\=} A\T{ e' una $\b$-formula della tabella
	\see{tabellaalphabetaform} con componenti }
	\b_1,\b_2
	}
	In altri termini,
	$\Formab$ e' l'insieme delle formule a connettivi primari, costruite
	tramite $\NOT\NOT$ e le alpha formule delle tabelle
	$\see{tabellaalphabetaform}$.
\end{defn}
\begin{prop}\label{propformabeqformI}
	\eal{&\Formab=\FormI
	}
	Di conseguenza, il thm \see{thmabinduzione} si puo' riottenere
	applicando l'induzione strutturale (\vedi{Induzione!strutturale})
	all'insieme $\Formab$.
\end{prop}
\begin{proof}
	Chiaramente $\Formab\(\FormI$. A questo punto, per dimostrare
	l'uguaglianza basta usare la $\a\b$-induzione
	(\vedi{thmabinduzione}).
\end{proof}
\begin{prop} \label{formablibera}
	La def. \see{defformab} e la prop \see{propformabeqformI} servono per
	costruire induttivamente $\FormI$ usando le $\a$ e $\b$ formule. Si
	puo' dimostrare che questa costruzione e' libera.\\
	Per questo motivo possiamo sfruttare la prop
	\see{funzioneinduttivaunica} e costruire senza problemi funzioni induttive su
	$\Formab$ (vedi esempio \see{exfindformab}).
\end{prop}
\begin{proof}
\def\neg{{\oname{neg}}}
	\pfsketch{Si definisce l'insieme 
	\eal{&L=\pgra{X\in \Formab\;|\;\exists!\T{ costruzione per }X}}
	e si dimostra con l'$\a\b$-induzione che $L=\Formab$}
	Nota: da questa dimostrazione si capisce perche' e' necessario usare
	la funzione $\nneg(P)=\NOT\NOT P$, infatti, se usassimo la vecchia
	funzione $\neg{(P)}=\NOT P$ potremmo costruire la formula $\NOT(X \| Y)$,
	con $X,Y\in \Pvar$, in due modi:
	\eal{&\NOT(X \| Y)=\neg{(X \| Y)} =\neg{(\bin_{\b}(X,Y))}\\
	&\NOT(X \| Y) = \bin_{\a}(\NOT X, \NOT Y)
	}
\end{proof}

\begin{exemp}
	\label{exfindformab}
	Definiamo indutttivamente, su $\Formab$, la funzione di \iemph{rango}:
	\eal{&r(\true)=r(\false)=r(P)=r(\NOT P)=0\;\;\forall P\in \ATform\NN
	r(\NOT \true)=r(\NOT \false)=1\NN
	r(\NOT \NOT z)= r(z)+1\;\;\forall z\in \FormI\NN
	r(\a)=r(\a_1)+r(\a_2)+1\;\;\forall \a\in\Forma\NN
	r(\b)=r(\b_1)+r(\b_2)+1\;\;\forall \b\in\Forma\NN
	}
Per adesso,
possiamo pensare a $r(X)$ come il numero di ``semplificazioni'' che
	possiamo effettuare su $X$.
\end{exemp}
\def\Lit{{\oname{Lit}}}
\def\CNF{{\oname{CNF}}}
\def\DNF{{\oname{DNF}}}
\subsubsection{CNF e DNF}
Il nostro scopo sara' quello di trovare una codifica opportuna delle formule
$\Formab$, che rende facile la loro analisi e computazione, in particolare
capire se sono o non sono tautologie.
\begin{defn}\label{defdisgiunzioni}
	Allarghiamo l'insieme delle formule $\Formab$ introducendo in $B$ le
	parentesi $[,],\langle ,\rangle$, e per ogni $n\in \N$ i costruttori
	\eal{&
	\oname{disgiunzione}_{n}(X_1,\dots,X_n) \definizione{=}
	[X_1,\dots,X_n]\NN
	\oname{congiunzione}_{n}(X_1,\dots,X_n) \definizione{=}
\langle X_1,\dots,X_n\rangle 
	}
Infine, allarghiamo la definizione delle valutazioni considerando queste
nuove formule:
\eal{&v([X_1,\dots,X_n])=\sist{\true&\exists i:\;v(X_i)=\true\\F&\T{altrimenti}}\NN
v(\langle X_1,\dots,X_n\rangle )=\sist{\true&\forall i\;v(X_i)=\true\\F&\T{altrimenti}}
}
Allarghiamo inoltre la definizione di rango (\vedi{exfindformab}):
\eal{&r(\langle X_1,\dots,X_n\rangle )=r([X_1,\dots,X_n])=\sumin r(X_i)\NN
}
Definiamo l'insieme dei \iemph{letterali}:
\eal{&\Lit\definizione{=}\ATform\U\NOT\Pvar=\Pvar\U\NOT\Pvar\U TF}
Definiamo le \iemph{disgiunzioni letterali}
\eal{&\formula{[X_1,\dots,X_n]}\T{ e' una disgiunzione letterale (o clausola) } 
\definizione{\=} \formula{[X_1,\dots,X_n]} \in [\Lit]  \definizione{=} 
\pgra{\formula{[X_1,\dots,X_n]}\;|\;X_i\in \Lit\;\;\forall i}
}
Analogamente le \iemph{congiunzioni letterali}:
\eal{&\langle \Lit\rangle   \definizione{=} \pgra{\formula{\langle
X_1,\dots,X_n\rangle }\;|\;X_i\in \Lit\;\;\forall i}}
Possiamo infine definire le \iemph{Conjunctive Normal Form}:
\eal{&
\CNF\definizione{=}\pgra{\formula{\langle X_1,\dots,X_n\rangle }
\;|\;X_i\in [ \Lit]
}
}
e le \iemph{Disjunctive Normal Form}:
\eal{&
\DNF\definizione{=}\pgra{\formula{[X_1,\dots,X_n] }
\;|\;X_i\in \langle \Lit\rangle 
}
}
In altre parole, le CNF sono le formule del tipo $\langle
[],[],\dots,[]\rangle $.\\

Nota finale: alcune volte sara' utile considerare una disgiunzione come un
insieme di formule e una CNF come un insieme di insiemi di formule. (stesso
discorso per le congiunzioni e le DNF).
\end{defn}
\begin{rem}
	\label{remCNF}
	$r(\CNF)=r(\DNF)=\pgra{0}$
\end{rem}
\begin{prop}\label{valutazioneclausolavuota}
	\eal{&v([])=\false\;\;\forall v\in \V\NN
	v(\langle \rangle )=\true,\;\;\forall v\in \V\NN
	\models\formula{\langle X\rangle \=[X]\= X}\NN
	\models \formula{[X_1,\dots,X_n] \=  X_1  \|  \dots  \| X_n}\NN
	\models \formula{\langle X_1,\dots,X_n\rangle \= X_1 \& \dots \& X_n}
	}
\end{prop}
\begin{prop}\label{pquaconjblabla}
	\eal{&
	\models 	\formula{\langle [X_1,\dots,X_n,(A  \& B)  ] \rangle  \= 
	\langle [X_1,\dots,X_n,A], [X_1,\dots,X_n,B]\rangle}\NN
	\models 	\formula{[\langle X_1,\dots,X_n,(A \| B) \rangle ] \= 
	[ \langle X_1,\dots,X_n,A\rangle , \langle X_1,\dots,X_n,B\rangle]}\NN
	}
\end{prop}
\begin{proof}
	Sfruttiamo le proprieta' distributive di $ \|,  \&$:
	\eal{&\T{Sia }T=[X_1,\dots,X_n]\NN
	\langle [X_1,\dots,X_n,A], [X_1,\dots,X_n,B]\rangle
\= 
	\langle [T,A], [T,B]\rangle
	\= (T \| A) \& (T \| B) \= T \| (A \& B) \= [T,(A \& B)]
\=\NN
\= \langle [T,(A \& B)]\rangle \= \langle [X_1,\dots,X_n,(A  \& B)  ] \rangle
	}
	Analogamente per l'altro caso.
\end{proof}
\begin{prop}\label{XtoCNF}
Presentiamo un algoritmo di conversione di una formula $X\in \Formab$ in una
formula $Y\in \CNF$.\\
Per la proprieta' di commutativita', possiamo rappresentare una CNF $\langle
[],[],\dots,[]\rangle $ usando gli insiemi
$\pgra{\pgra{},\pgra{},\dots,\pgra{}}$. L'algoritmo e':
\eal{&S:=\pgra{\pgra{X}}\NN
\While\;\;\exists D\in S:\exists N\in D:\;\;N\-\Lit \neq \0,\;\;\T{ovvero fino
a quando abbiamo un non letterale in }S\NN
\qq S:=S\-D\NN
\qq D:=D\-N\NN
\qq D'':=\0\NN
\qq \Se N=\formula{\NOT \true}:\NN
\qq \qq D':=D\U\pgra{\false}\qq \T{ovvero, sostituiamo $\NOT \true$ con $\false$}\NN
\qq \Se N=\formula{\NOT \false}:\NN
\qq \qq D':=D\U\pgra{\true}\NN 
\qq \Se N=\formula{\NOT\NOT Z}:\NN
\qq \qq D':=D\U\pgra{Z}\NN
\qq \Se N=\formula{\b}:\NN
\qq \qq D':=D\U\pgra{\b_1,\b_2}\qq\T{ ovvero, spezziamo $\b$ nelle sue
componenti}\NN
\qq \Se N=\formula{\a}:\qq\qq\;\;(1)\NN
\qq \qq D':=D\U\pgra{\a_1}\NN
\qq \qq D'':=D\U\pgra{\a_2}\NN
\qq S:=S\U\pgra{D'}\NN
\qq \Se D'' \neq \0\NN
\qq\qq S:=S\U \pgra{D''}
}
Nota: la $(1)$ serve per trasformare una formula del tipo
\eal{&
\langle [X_1,\dots,X_n,\a ] \rangle
}
in
\eal{&
\langle [X_1,\dots,X_n,\a_1], [X_1,\dots,X_n,\a_2]\rangle
}
Ecco un esempio di esecuzione:
\begin{center}
	\includegraphics[scale=0.5]{fig/02}\\
	\includegraphics[scale=0.5]{fig/01}
\end{center}
\end{prop}
\begin{proof}
\step{}{Dimostriamo che la proposizione:
	\eal{&P(S,X)\;\;=\;\;''\models \formula{S\= X},\;\;S\T{ e' una congiunzione di
	disgiunzioni, cioe' e' del tipo }\langle [],[],\dots,[]\rangle ''
	}
	e' un \iemph{invariante} del loop while, ovvero se $P$ e' vera prima del
	while, allora lo sara' alla fine di ogni ciclo.
	}
	\begin{prova}
Prima del loop $S=\langle [X]\rangle $ e quindi la tesi e'  vera.\\
Nel loop stiamo sostituendo sottoformule di $S$ con formule equivalenti, e
quindi per il thm di sostituzione (\vedi{psostII}) la tautologia $\models
\formula{S\=X}$ viene preservata. In particolare, nella $(1)$ preserviamo
l'equivalenza grazie alla prop \see{pquaconjblabla}. Inoltre, proprio per
costruzione abbiamo sempre una congiunzione di disgiunzioni.\\

Quindi, poiche' $P(S,X)$ e' invariante, per il principio di \emph{induzione
per i loop while} sara' vera anche quando il while termina.\\
Il while termina quando ci sono solo letterali e poiche' $P(S,X)$, $S$ sara'
una congiunzione di disgiunzioni solo con letterali, ovvero una CNF.

Resta da dimostrare che il while termina.\\
Osserviamo che per la \see{remCNF}, solo quando il while termina si ha
$r(S)=0$.\\
Supponiamo per assurdo che non termini. Osserviamo che alla sostituzione
$(k+1)$-esima, si ha $r(S_{k+1})< r(S_{k})$ (per come e' definito $r()$ sulle
disgiunzioni). Inoltre, possiamo rappresentare ogni sostituzione con il
seguente albero:
\ctree{[$D_1$ 
	[$D_2'$ 
		[ $D_3'$ 
				[$D_4'$ [ $\ldots$ $\ldots$]] 
				[$D_5''$ 
					[$D_6'$ [$D_7'$] [$D_7''$ [$\ldots$]]
					]
				]
		]
	]
       ]}
Nota: i $D'$ e $D''$ nascono con la sostituzione $(1)$. Un solo $D'$ nasce con
tutte le altre sostituzioni.\\
Poiche' il while non termina, l'albero e' infinito, ma a diramazione finita.
Quindi, per il lemma di Konig (\vedi{lemdikonig}), esistera' un ramo infinito:
\eal{&D_1,D_2,\dots 
}
e per quanto detto prima avremo:
\eal{&r(D_1)> r(D_2) >\dots
}
ma questo e' assurdo contro $r(D_i)\in \mathbb{N}$.
	\end{prova}
\end{proof}
\subsection{Tableaux}
Per dimostrare che $X$ e' una tautologia utilizzeremo l'algoritmo che converte
$\NOT X$ in una DNF (\vedi{XtoCNF}), ma ci fermeremo non appena ci accorgiamo
che una congiunzione contiene $Y,\NOT Y$ (oppure contiene $\false$). In altre
parole, quando la formula diventa del tipo $\pqua{\langle \ldots\rangle
,\;\ldots,\;\langle \ldots,Y,\NOT Y,\ldots \rangle, \;\ldots,\; \langle \ldots\rangle  }$
l'algoritmo elimina $\langle \dots,Y,\NOT \true\rangle $ perche' ha trovato la
contraddizione $Y  \& \NOT Y$. Quando la formula diventa la disgiunzione
vuota $[]$, l'algoritmo si arresta: $\NOT X$ e' falsa, e quindi $X$ e' vera. 

Questa tecnica si puo' codificare usando degli alberi $\Tbl(X)$ che chiameremo
\iemph{tableaux} di $X$.
\begin{defn}\label{deftabl}
	Sia dato l'insieme di formule $X=\pgra{X_1,\dots,X_n}\( \Formab$.
	Definiamo per induzione $\Tbl(X)$, l'insieme dei tableaux costruiti su
	$X$: $\Tbl(X)$ e' il piu' piccolo insieme tale che:
	\begin{itemize} 
		\item L'albero formato dal solo ramo $X_1,X_2,\dots,X_n$
			\ctree{[$X_1$ [$X_2$ [$\vdots$ [$X_n$]]]]}
			e' un tableaux, ovvero sta' in $\Tbl(X)$
		\item Se $T\in \Tbl(X)$  allora $T^*\in \Tbl(X)$, dove $T^*$
			e' la copia di $T$ a cui e' stata applicata una 
			delle
			seguenti regole di espansione\footnote{sono le stesse
			regole usate dall'algoritmo DNF (\vedi{XtoCNF})}:
			\eal{&
			T^*:=T\NN
			\Sia N\T{ un nodo di un ramo terminato }r \T{ di } T^*\NN
			\Sia M\T{ l'ultimo nodo di } r\NN
1.\qq \Se N=\formula{\NOT \true}:\NN
\qq \qq r:=r,\;\false\;\;\T{ aggiungiamo al ramo $r$ il nodo $\false$ }\NN
2.\qq \Se N=\formula{\NOT \false}:\NN
\qq \qq r:=r,\;\true\NN 
3.\qq \Se N=\formula{\NOT\NOT Z}:\NN
\qq \qq r:=r,\;Z\NN
4.\qq \Se N=\formula{\a}:\NN
\qq \qq r:=r,\a_1,\a_2\NN
5.\qq \Se N=\formula{\b}:\qq\qq\;\;(1)\NN
\qq \qq r:=r,[\b_1, \b_2]\;\;\T{ ovvero, aggiungiamo ad $M$ i figli $\b_1,\b_2$}
}
	\end{itemize}
\end{defn}
\begin{exemp}
	Il seguente albero e' un tableaux per la formula $((\NOT \NOT Z   \& P)
	 \| C )  \| D$:
	 \begin{center}
	\ctree{ [$((\NOT \NOT Z   \& P) \| C )  \| D$ 
			[$(\NOT \NOT Z   \& P) \| C$    
				[$\NOT \NOT Z   \& P$
					[$\NOT \NOT Z$
						[ P 
							[Z]
						]
					]
				]
				[C]
			]
			[D]
		]
		}
	 \end{center}
\end{exemp}
\begin{defn}
	Sia $T\in \Tbl(X)$ e $r\in \ramot T$,
	\eal{&
	r\T{ e' chiuso da } Y\in \Formab \definizione{\=} (Y,\NOT Y \in \nodo{r}) \T{ oppure } \false\in \nodo{r}\NN
	r\T{ e' chiuso } \definizione{\=} \exists Y\in \Formab:\;r\T{ e'
	chiuso da } Y\NN
	r\T{ e' atomicamente chiuso } \definizione{\=} \exists P\in
	\Pvar:\;\;r\T{ e' chiuso da }P\NN
	T\T{ e' (atomicamente) chiuso } \definizione{\=} \forall r\in
	\ramot T \;\;r\T{ e' (atomicamente) chiuso}\NN
	\vdash X \definizione{\=} \exists T\in \Tbl(\NOT X):\;\;T\T{ e' chiuso}
	}
	In pratica, un ramo chiuso e' una congiunzione in cui abbiamo trovato
	una contraddizione.
	\eal{&r\T{ e' soddisfacibile } \definizione{\=} \exists v\in \V:\;\;
	v(x)=T\;\;\forall x\in \nodo{r}\NN
	T\T{ e' soddisfacibile } \definizione{\=} \exists r\in \ramot T:\;r\T{
	e' soddisfacibile}
	}
\end{defn}
\begin{lem}\label{TsoddalloraTstarsodd}
	\eal{&T\in \Tbl(X)\T{ e' soddisfacibile} \> T^*\T{ e' soddisfacibile }
	}
	dove $T^*$ e' l'albero ottenuto da $T$ usando le regole di espansione
	(\vedi{deftabl}).
\end{lem}
\begin{proof}
\eal{&T\T{ sodd. } \> \exists r\in \ramot T,\;\exists v\in \V:\;v(r)=T\NN
	}
	Se  $r\in \ramo{T^*}$, non abbiamo nulla da dimostrare.\\
	Supponiamo allora che $r\notin \ramo{T^*}$. Poiche' $T^*$ e' una copia
	di $T$ modificata, quest'ultimo caso si puo' verificare solo se $T^*$
	e' stato ottenenuto da $T$ sostituendo $r$ con $r'$, tramite le
	regole di espansione (\vedi{deftabl}).  Esaminiamo i vari casi.
	\case{$r'$ e' stato ottenuto con la regola $1.$}
	\begin{prova}
		Quindi, \eal{&
		\exists N\in r:\;N=\NOT \true\NN
		r'=r,\false
		}
		Allora,
		\eal{&v(r)=\true \> v(N)=\true \= \NOT v(\true)=\true\= \false=\true
		}
		assurdo. Quindi questo caso non si verifica.
	\end{prova}
	\case{$r'$ e' stato ottenuto con la regola $2.$}
	\begin{prova}
		Quindi, \eal{&
		\exists N\in r:\;N=\NOT \false\NN
		r'=r,\true
		}
		Allora,
		\eal{&v(r)=\true,\;v(\true)=\true \> v(r')=\true
		}
		quindi $r'$ e' soddisfatto.
	\end{prova}
	\case{$r'$ e' stato ottenuto con la regola $3.$}
	\begin{prova}
		Quindi, \eal{&
		\exists N\in r:\;N=\NOT \NOT Z\NN
		r'=r,Z
		}
		Allora,
		\eal{&v(r)=\true \> v(N)=\true \= V(Z)=\true \NN
		v(r)=v(Z)=\true \> v(r')=\true
		}
		quindi $r'$ e' soddisfatto.
	\end{prova}
	\case{$r'$ e' stato ottenuto con la regola $4.$}
	\begin{prova}
		Quindi, \eal{&
		\exists N\in r:\;N=\a\NN
		r'=r,\a_1,\a_2
		}
		Allora,
		\eal{&v(r)=\true \> v(N)=\true \= (v(\a_1) \& v(\a_2))=\true\=
		v(\a_1)=v(\a_2)=\true \NN
		v(r)=v(\a_1)=v(\a_2)=\true \> v(r')=\true
		}
		quindi $r'$ e' soddisfatto.
	\end{prova}
	\case{$r'$ e' stato ottenuto con la regola $5.$}
	\begin{prova}
		Quindi, \eal{&
		\exists N\in r:\;N=\b\NN
		r_1'=r,\b_1\T{ oppure } r_2'=r,\b_2
		}
		In questo caso, la regola ha prodotto due nuovi rami in
		$\true^*$.
		\eal{&v(r)=\true \> v(N)=\true \= (v(\b_1)  \|  v(\b_2))=\true\=
		v(\b_1)=\true  \|  v(\b_2)=\true\NN
		}
		In un caso, o nell'altro almeno uno tra $r_1'$, $r_2'$ e'
		soddisfatto.
	\end{prova}
	Possiamo cosi' concludere, che in ogni caso possibile, esiste almeno
	un ramo soddisfatto in $T^*$.
\end{proof}
\begin{thm} di correttezza.
	\label{thmdicorrettezza}
	Sia $X\in \Formab$,
	\eal{&\vdash X \> \models X}
Questo teorema garantisce la validita' del metodo dei Tableaux: e' sufficiente
trovare un tableaux chiuso per $\NOT X$ per poter affermare che $X$ e' una
tautologia.
\end{thm}
\begin{proof}
	Procediamo per assurdo: $\exists v\in \V:\;v(X)=\false$, ovvero
	\eal{&v(\NOT X)=\true
	}
	Quindi il tableaux base $\pgra{\NOT X}$, quello da cui si costruiscono
	tutti gli altri tableaux, e' per definizione soddisfacibile (il suo
	unico ramo e' soddisfacibile). Allora, per il lemma
	\see{TsoddalloraTstarsodd} ogni $T^*\in  \Tbl(\NOT X)$ e'
	soddisfacibile.\\
Per Hp $\exists T\in \Tbl(\NOT X)$ chiuso. Quindi $\forall r\in \ramot T:\;$ r
e' chiuso. In particolare, il ramo $r'$ che rende soddisfacibile $T$ e'
chiuso. Quindi
\eal{&r' \T{ chiuso } \> Y,\NOT Y \in \nodo {r'} \T{ oppure } \false\in r'
\ubrace{\>}{r'\T{ soddisfacibile}}  v(Y)=v(\NOT Y ) \T{ oppure } v(\false)=\true
}
In entrambi i casi si ha un assurdo.
\end{proof}
\begin{defn}
	Un Tableaux $T\in \Tbl(X)$ e' ristretto $\definizione{\=}$
	\eal{&
	\forall r \in \ramo T\;\forall n \in \nodo r\;\;n\T{ e' stato usato
	una volta sola per ottenere qualche altro } m\in r
	}
\end{defn}
\begin{rem}
	Il lemma \see{TsoddalloraTstarsodd} e il thm \see{thmdicorrettezza}
	valgono anche se usiamo solo tableaux ristretti, infatti la
	dimostrazione del lemma rimane invariata.
\end{rem}


\subsection{Risoluzioni}
Le \emph{risoluzioni} sono analoghe ai tableaux. Nei tableaux usavamo la DNF,
mentre nelle risoluzioni espandiamo la formula con la CNF ($\langle []\rangle$). La codifica avviene
tramite liste e non tramite alberi. Al posto della chiusura, abbiamo una
regola che permette di rimuovere pezzi di formula inutili. Quando arriviamo
alla formula $[]$ possiamo dire che $\NOT X$ e' falsa.

\begin{defn}\label{defrisol}
	Sia dato l'insieme di formule $X=\pgra{X_1,\dots,X_n}\( \Formab$.
	Definiamo per induzione $\Ris(X)$, l'insieme delle risoluzioni
	costruite su
	$X$: $\Ris(X)$ e' il piu' piccolo insieme tale che:
	\begin{itemize} 
		\item La lista non ordinata formata dalla seguenti disgiunzioni:
			\eal{&[X_1]\NN
			[X_2]\NN
			\vdots\NN
			[X_n]
			}
			e' una risoluzione, ovvero sta' in $\Ris(X)$
		\item Se $R\in \Ris(X)$  allora $R^*\in \Ris(X)$, dove $R^*$
			e' la copia di $R$ a cui e' stata applicata una 
			delle
			seguenti regole:
			\eal{&
			R^*:=R\NN
			\Sia N\T{ un elemento della lista } R^*\NN
			\Sia M\T{ un elemento della disgiunzione } N\NN
1.\qq \Se M=\formula{\NOT \true}:\NN
\qq \qq R^*:=R^*,\;N(M|\false)\;\;\T{ ovvero, }\NN
\qq\qq \T{ aggiungiamo alla lista $R^*$ la disgiunzione
$N(M|\false)$ che e' ottenuta }\NN
\qq \qq \T{ da $N$ sostituendo l'elemento $M$ con la formula $\false$ }\NN
2.\qq \Se M=\formula{\NOT \false}:\NN
\qq \qq R^*:=R^*,\;N(M|\true)\NN 
3.\qq \Se M=\formula{\NOT\NOT Z}:\NN
\qq \qq R^*:=R^*,\;N(M|Z)\NN
4.\qq \Se M=\formula{\a}:\NN
\qq \qq R^*:=R^*,N(M|\a_1),N(M|\a_2)\NN
5.\qq \Se M=\formula{\b}:\qq\qq\NN
\qq \qq R^*:=R^*,N(M|\b_1,\b_2)\NN
6.\qq \Se \exists N'\in R^*:\;N' \neq N, \; \exists M'\in N' \T{ t.c. }
\exists \formula{X}\in M  \& \formula{\NOT X}\in M':\NN
\qq\qq  R^*:=R^*\-\pgra{M,M'}, M(X|)\U M'(X|)\NN
7.\qq \Se M=\formula{\false}:\NN
\qq\qq  R^*:=R^*,N(M|)\T{ ovvero, togliamo la $\false$ dalla disgiunzione $N$}
}
Chiameremo le $1.-6.$ regole di risoluzione.\\
Le $1.-5.$ sono chiamate \iemph{regole di espansione} per risoluzioni.\\
Le regole $6.-7.$ sono chiamate \iemph{regole risolutive}. La $6.$ dice che se
troviamo due disgiunzioni di tipo $[Y_1, \dots,Y_i,X,Y_{i+2},\dots,Y_n],
[Z_1,\dots,Z_{j},\NOT X,Z_{j+2},\dots,Z_m]$ allora le possiamo sostiture con
l'unica disgiunzione
$\pqua{Y_1,\dots,Y_{i},Y_{i+2},\dots,Y_n,Z_1,\dots,Z_i,Z_{i+2},Z_m}$
	\end{itemize}
\end{defn}
\begin{exemp}
	La seguente lista e' una risoluzione  per la formula $((\NOT \NOT Z   \& P)
	 \| C )  \| \NOT Z$:
	 \eal{&[((\NOT \NOT Z   \& P) \| C )  \| \NOT Z]\NN
	 [(\NOT \NOT Z   \& P) \| C, \NOT Z]\NN
	 [\NOT \NOT Z   \& P, C, \NOT Z]\NN
	 [\NOT \NOT Z, C, \NOT Z]\NN
	 [P, C, \NOT Z]\NN
	 [Z, C, \NOT Z]\NN
	 [P,C,\NOT Z]
	 }
\end{exemp}
\begin{defn}
	Sia $R\in \Ris(X)$,
	\eal{&
	R\T{ e' chiusa } \definizione{\=} \exists N\in R:\;\;N=[]\NN
	\vdash X \definizione{\=} \exists R\in \Ris(\NOT X):\;\;R\T{ e' chiuso}
	}
	In pratica, una risoluzione e' chiusa quando un suo elemento e' $[]$,
	e quindi l'intera risoluzione, che e' una congiunzione, e' falsa.
	\eal{&R\T{ e' soddisfacibile } \definizione{\=} \exists v\in \V:\;\;
	v(N)=\true\;\;\forall N\in R
	}
\end{defn}
\begin{lem}\label{RissoddalloraRisstarsodd}
	\eal{&R\in \Ris(X)\T{ e' soddisfacibile} \> R^*\T{ e' soddisfacibile }
	}
	dove $R^*$ e' l'albero ottenuto da $R$ usando le regole descritte in
	\vedi{defrisol}.
\end{lem}
\begin{proof}
\eal{&R\T{ sodd. } \> \exists v\in \V:\;v(N)=\true \;\;\forall N\in R
	}
	Dobbiamo dimostrare che
	\eal{&v(N')=\true\;\;\forall N'\in R^*}
	In linea di principio, la dimostrazione procede cosi':
	 sia $N=[Y_1,\dots,Y_n]$ e sia $N'=[Y_1,\dots,Y_i',\dots,Y_n]$
	 ottenuta da $N$ sostituendo $Y_i$ con $Y_i'$,
	 \eal{&v(N')=\true \> \exists j:\;v(Y_j)=\true\\
	 i \neq j \> v(N')=\true\NN
	 \T{Se invece }	 i=j \T{ si dimostra che } v(Y_i')=\true \T{ e quindi
	 }v(N')=\true
	 }
Esaminiamo in dettaglio solo alcuni casi.
	\case{$N'$ e' stato ottenuto con la regola $5.$}
	\begin{prova}
		Quindi, \eal{&
		N=[Y_1,\dots,Y_i=\b,\dots,Y_n]\NN
		N'=[Y_1,\dots,\b_1,\b_2,\dots,Y_n]\NN
		v(\b)=\true \> v(\b_1)=\true \| v(\b_2)=\true \> v(N')=\true
		}
	\end{prova}
	\case{$r'$ e' stato ottenuto con la regola $4.$}
	\begin{prova}
		Quindi, 
		\eal{&
		N=[Y_1,\dots,Y_i=\a,\dots,Y_n]\NN
		N'=[Y_1,\dots,\a_1,\dots,Y_n]\in R^*\NN
		N''=[Y_1,\dots,\a_2,\dots,Y_n]\in R^*\NN
		v(\a)=\true \> v(\a_1)=\true  \&  v(\a_2)=\true \> v(N')=v(N'')=\true
		}
	\end{prova}
	\case{$r'$ e' stato ottenuto con la regola $6.$}
	\begin{prova}
		Questo vuol dire che in $R$ avevamo due disgiunzioni
		\eal{&N_1=[Y_1,\dots,Y_n,X],\;N_2=\pqua{Z_1,\dots,Z_m,\NOT X}}
		e in $R^*$ abbiamo
		\eal{&N'=[Y_1,\dots,Y_n,Z_1,\dots,Z_m]
		}
		Per Hp $v(N_1)=v(N_2)=\true$
		\case{$v(X)=\true$}
		\begin{prova}
			\eal{&v(X)=\true \> v(\NOT X)=\false\NN
			\sist{v(\NOT X)=\false\\
			v(N_2)=\true} \> \exists  1\le j\le m:\;v(Z_j)=\true \>
			v(N')=\true
			}
		\end{prova}
		\case{$v(X)=\false$}
		\begin{prova}
			\eal{&
			\sist{v(X)=\false\\
			v(N_1)=\true} \> \exists  1\le j\le n:\;v(Y_j)=\true \>
			v(N')=\true
			}
		\end{prova}
	\end{prova}
		In un caso, o nell'altro tutti gli elementi di $R^*$ sono
		soddisfatti.
\end{proof}
\begin{thm} di correttezza.
	\label{thmdicorrettezzarisol}
	Sia $X\in \Formab$,
	\eal{&\vdash X \> \models X}
\end{thm}
\begin{proof}
	Procediamo per assurdo: $\exists v\in \V:\;v(X)=\false$, ovvero
	\eal{&v(\NOT X)=\true
	}
	Quindi la risoluzione base $[\NOT X]$, quella da cui si costruiscono
	tutte le altre risoluzioni, e' per definizione soddisfacibile.
	Allora, per il lemma
	\see{RissoddalloraRisstarsodd} ogni $R^*\in  \Ris(\NOT X)$ e'
	soddisfacibile.\\
	Per Hp $\exists R\in \Ris(\NOT X)$ chiuso. Quindi $\formula{[]}\in R$
.  Ma $R$ deve essere soddisfacibile: $\forall N\in R\;v(N)=\true$, in particolare
$v([])=\true$. E questo e' assurdo per definizione di $v$.
\end{proof}
\subsection{Completezza}
In questa sezione dimostreremo 
\eal{&\vdash X \>  \models X
}
sia per i Tableaux che per le Risoluzioni. In altre parole, se abbiamo una
tautologia nella nostra logica proposizionale, allora i tableaux e le
risoluzioni troveranno, prima o poi, una dimostrazione per esssa. Questo non
e' vero per qualsiasi logica. Fatto questo, grazie ai teoremi di correttezza
\see{thmdicorrettezza}, \see{thmdicorrettezzarisol}, potremmo dire:
\eal{&\models X \= \vdash X }
\begin{defn}
	Sia $H\( \Formab$, $H$ e' un insieme di \iemph{Hintikka}
	$\definizione{\=}$
	\eal{&1.\;\;P\in \Pvar \> \pton{P\notin H \;\;\T{oppure}\;\; \NOT P \notin
	H}\NN
	2.\;\;\NOT \true,\;\false \notin H \NN
	3.\;\;\NOT \NOT Z \in H \> Z\in H\NN
	4.\;\;\a \in H \> \a_1,\a_2\in H\NN
	5.\;\;\b\in H \> \b_1 \in H \T{ oppure } \b_2\in H
	}
	Le $1., 2.$ sono le condizioni di \emph{consistenza}. La $3.,4.,5.$
	sono le condizioni di saturazione all'ingiu'.
\end{defn}
\begin{prop}\label{hintikkasoddisfacibile}
	\eal{&H\T{ Hintikka } \> H\T{ e' soddisfacibile,  ovvero }\exists v\in
	\V:\;\;v(H)=\true}
\end{prop}
\begin{proof}
	\pfsketch{Costruiamo una valutazione che soddisfa $H$.\\
	Per far cio' bastera' assegnare $\true$ ad ogni lettera in $H$. Gli assiomi di
	$H$ garantiranno che tutte le formule costruite da quelle lettere sono
	$\true$}
	Sia data la seguente funzione:
	\eal{&f:\Pvar \longrightarrow  \pgra{\true,\false}\NN
	f(P) = \sist{\true&P\in H\\
	\false&P\notin H}
	}
	Per la prop \see{propdatafesisteunasolavalutaz} si ha
	\eal{&\exists ! v\in \V:\;\; \forall p\in \Pvar\;\;v(p)=f(p)}
	Sia $X\in H$. Dimostriamo per induzione sul rango
	(\vedi{exfindformab}) che $v(X)=\true$, ovvero
	\eal{&\forall n \in \N \;\;\forall X \in H:\;r(X)=n \;\;v(X)=\true
	}
	\case{$n=0$}
	\begin{prova}
		\case{$X=P\in \Pvar$}
		\begin{prova}
			\eal{&v(P)=f(P) \ubrace{=}{P=X\in H} \true}
		\end{prova}
		\case{$X=\NOT P\in \NOT \Pvar$}
		\begin{prova}
			\case{$P\in H$}
			\begin{prova}
				Questo caso non si verifica, perche' gli
				assiomi di Hintikka richiedono:
				\eal{&P\in H \> \NOT P \notin H}
			\end{prova}
			\case{$P\notin H$}
			\begin{prova}
				\eal{&v(P)=f(P) \ubrace{=}{P\notin H} \false\NN
				v(\NOT P)=\NOT v(P) =\true
				}
			\end{prova}
		\end{prova}
		\case{$X=\true$}
		\begin{prova}
			\eal{&v(X)=\true}
		\end{prova}
		\case{$X=\false$}
		\begin{prova}
			Questo caso e' assurdo perche' per gli assiomi di
			Hintikka $\false\notin H$.
		\end{prova}
	\end{prova}
	\case{$n=1,\;\;X=\NOT \true,\;X= \NOT \false$}
	\begin{prova}
		Come prima.
	\end{prova}
	\case{$m<n \> n$}
	\begin{prova}
		\case{$X=\NOT \NOT Z$}
		\begin{prova}
			\eal{&X\in H  \ubrace{\>}{\see{Hintikka}}  Z\in H\;(1)\NN
			v(X)=\NOT \NOT v(Z)   \ubrace{=}{(1),\T{ Hp induttiva}} 
			\NOT \NOT \true =  \true
			}
		\end{prova}
		\case{$X=\a$}
		\begin{prova}
			\eal{&X\in H \> \a_1,\a_2 \in H}
			e quindi applichiamo l'Hp induttiva su $\a_1,\a_2$: 
			\eal{&v(\a_1)=v(\a_2)=\true\NN
			v(X)=v(\a)=(v(\a_1) \& v(\a_2))=\true}
		\end{prova}
		\case{$X=\b$}
		\begin{prova}
			Analogamente a prima.
		\end{prova}
	\end{prova}
\end{proof}
\begin{defn}\ilabel{proprieta' di consistenza}
	\label{defpropcons}
	Sia $C\(\P(\Formab)$. $C$ e' una \emph{proprieta' di consistenza} 
$\definizione{\=} \forall S \in C$
\eal{&1.\;\;P\in \Pvar \> P\notin S  \T{ oppure }  \NOT P \notin S\NN
2.\;\;\false,\;\NOT \true \notin S\NN
3.\;\;\NOT\NOT Z\in S \> S\U\pgra{Z}\in C\NN
4.\;\;\a\in S \> S\U\pgra{\a_1,\a_2}\in C\NN
5.\;\;\b\in S \> S\U\pgra{\b_1}\T{ oppure } S\U \pgra{\b_2}\in C
}
\end{defn}
\begin{thm}di completezza per i Tableaux ristretti.\\
	\label{thmdicompletezzaristrettatableaux}
	\eal{&\models X \> \vdash X
	}
	Dove con $\vdash X$ intendiamo che $\exists T\in \Tbl(\NOT X)$ chiuso
	e ristretto.
\end{thm}
\begin{proof}
	Procediamo per assurdo.\\
	I tableaux ristretti per $\NOT X$ esistono, quindi supponendo per
	assurdo che $\not\vdash X$ si ha
	\eal{&T\T{ tableaux ristretto di $\NOT X$ } \>T \T{ non chiuso per } \NOT X
	}
	Quindi, qualsiasi tableaux che costruiamo a partire da $\NOT X$ non
	verra' mai chiuso.\\
	Poiche' i tableaux che costruiamo sono ristretti, sono anche finiti.\\
	Quindi ogni $T$ sara' un albero finito ma non chiuso, ovvero $\exists
	r\in \ramo T:\;\;r\T{ non chiuso}$\\
	E' facile vedere che 
	\eal{&\pgra{ n\;|\;n\in \nodo r}}
	e' un insieme di Hintikka.\\
	Quindi per il lemma \see{hintikkasoddisfacibile}, $r$ e'
	soddisfacibile:
	\eal{&\exists v\in \V:\;\;v(r) =\true\= \forall n\in \nodo r\;\;v(n)=\true}
	In particolare, poiche' $r$ e' un ramo di $T\in \Tbl(\NOT X)$, abbiamo
	\eal{&v(\NOT X) =\true \> v(X) =\false}
	E questo e' assurdo contro $\models X$.
\end{proof}
\begin{prop}\label{propSinCallorasoddisf}
	\eal{&\sist{S\in C\\
	|S|< \8 } \> S\T{ e' soddisfacibile }
	}
\end{prop}
\begin{proof}
	Definiamo il seguente algoritmo:
	\eal{&S':=S\NN
	\While S \neq \0\NN
	\qq \Let X\in S\NN
	\qq S:=S\-\pgra{X}\NN
	\qq \Se X \in \Pvar \U \NOT \Pvar \U \pgra{\true,\;\NOT \false}:\NN
	\qq \qq \textbf{continua }\NN
	\qq \Se X:=\NOT \NOT Z:\NN
	\qq \qq S':=S'\U \{Z\}\NN
	\qq \qq S:=S\U \pgra{Z}\NN
	\qq \Se X:=\a:\NN
	\qq \qq S':=S'\U \{\a_1,\a_2\}\NN
	\qq \qq S:=S\U \pgra{\a_1,\a_2}\NN
	\qq \Se X:=\b:\NN
	\qq \qq \Let b\in \pgra{\b_1,\b_2}:\;S'\U\pgra{b} \in C\NN
	\qq \qq S':=S'\U \{b\}\NN
	\qq \qq S:=S\U \pgra{b}\NN
	\textbf{Ritorna } S'
	}
	In pratica, togliamo una formula da $S$, la processiamo e troviamo
	delle sottoformule ``buone'', che riaggiungiamo in $S$ per poi
	processarle in futuro. In $S'$ teniamo tutto. Pian piano $S$ si svuota
	e l'algoritmo finisce.
	\begin{enumerate}
		\item 
Poiche' $S$ e' finito, ragionando sul rango delle formule che aggiungiamo in
$S$ e usando il lemma di Konig cosi' come abbiamo fatto nella dimostrazione di
\see{XtoCNF}, concludiamo che l'algoritmo termina. (In poche parole, togliamo
da $S$ una formula e aggiungiamo formule con rango piu' piccolo, quindi a un
certo punto ci fermiamo).
\item $S\( S'$ e' vera ad ogni iterazione del while.
\item $S'\in C$ ad ogni iterazione del while (e' un invariante del loop
	while). Ragioniamo per induzione: inizialmente $S'=S\in C$. Sia $S'$ prima del loop e $\ove S'$ quello ottenuto	dopo il loop.
	Analizziamo solo un if, gli altri sono analoghi:
	\eal{&\T{Per Hp induttiva } S'\in C\NN
	X\in S \( S'  \> X\in S'\NN
	X=\b\in S',\;\;S'\in C \> S'\U\pgra{\b_1}\T{ oppure } S'\U\pgra{\b_2}
	\in C\NN
	\T{Per come e' costruito l'algoritmo: }\NN
	\qq  S'\U\pgra{\b_1} \in C,\;\;S'\U \pgra{\b_2}\notin C\> \ove S'=
	S'\U\pgra{\b_1} \in C\NN
	\qq  S'\U\pgra{\b_2} \in C,\;\;S'\U \pgra{\b_1}\notin C\> \ove S'=
	S'\U\pgra{\b_2} \in C\NN
	\qq  S'\U\pgra{\b_2} \in C,\;\;S'\U \pgra{\b_1}\in C\> \ove S'\T{ e'
	uno dei due, ma in ogni caso }\ove S'\in C
	}
\item $S'$, quello finale restituito dall'algoritmo, e' un insieme di Hintikka.
	\end{enumerate}
Possiamo cosi' concludere che
\eal{&S'\T{ hintikka }  \ubrace{\>}{\see{hintikkasoddisfacibile}} 
S'\T{ soddisfacibile  }  \ubrace{\>}{S\( S'} S\T{ soddisfacibile}
}
\end{proof}
\begin{thm}
	di completezza per tableaux qualsiasi.\\
	\eal{&\models X \> \vdash X}
\end{thm}
\begin{proof}
	Supponiamo per assurdo che $\nexists T\in \Tbl(\NOT X):\;T$ chiuso.\\
	Poniamo
	\eal{&C=\pgra{ W\( \Formab \;|\;|W|<\8,\;\;\nexists T\in \Tbl(W):\;T\T{ chiuso} }}
	Quindi $\pgra{\NOT X}\in C$.\\
	\step{}{$C$ e' una proprieta' di consistenza}
	\begin{prova}
		Sia $S=\pgra{s_1,\dots,s_n}\in C$.
		\begin{enumerate}
			\item Non e' vero che $P,\NOT P\in S$, altrimenti il
				tableaux formato dal solo ramo:
				\eal{&s_1\NN
				s_2\NN
				\vdots\NN
				s_n\NN
				P\NN
				\NOT P
				}
				sarebbe un tableaux chiuso per $S$
			\item Analogamente, $\false,\;\;\NOT \true$ non possono stare
				in $S$
			\item Supponiamo che $\b\in S$ e supponiamo per
				assurdo che
				$S_1=S\U\pgra{\b_1},\;S_2=S\U\pgra{\b_2}\notin
				C$, ovvero che esistono due tableaux $T_1,T_2$
				per $S_1,S_2$ chiusi.\\
				Costruiamo un tableaux $T$ per $S$ applicando una
				volta la regola di espansione a $\b$:
				\ctree{[S [$\b_1$] [$\b_2$]]}
				$T$ e' formato dai due rami
				\eal{&r_1=S,\b_1\NN
				r_2=S,\b_2}
				Il ramo $r_1$ e' esattamente l'inizio del
				tableaux $T_1$. Quindi, applicando le stesse
				regole usate per ottenere $T_1$ da
				$S\U\pgra{\b_1}$, possiamo espandere il ramo
				$r_1$, ottenendo un albero che coincide con
				$T_1$. E quindi questo albero e' chiuso.\\
				Applichiamo la stessa procedura a $r_2$\\
				Il tableaux cosi' ottenuto da $T$ e' chiuso,
				in quanto formato da due tableaux chiusi.
				Graficamente:
				\ctree{[S [$\b_1$ 
						[$T_1^*$ 
							[\vdots
								[ \T{chiuso}]
							]
						]
					  ]
					  [$\b_2$ 
					  	[$T_2^*$ 
							[\vdots 
								[ \T{chiuso}]
							]
						]
				  	  ]
					 ]}
					 Quindi $S\notin C$. Assurdo.
			\item Si procede analogamente per gli altri casi.
		\end{enumerate}
	\end{prova}
	\qedstep
	\begin{prova}
		\eal{&\NOT X \in C  \ubrace{\>}{\see{propSinCallorasoddisf} }
		\NOT X\T{ soddisfacibile } \> \exists v \in \V:\;\;v(\NOT
		X)=\true\= v(X)=\false
		}
		e questo e' assurdo contro
		\eal{&\models X}
	\end{prova}
\end{proof}

Passiamo adesso alle risoluzioni.
\def\D{{\mathcal{D}}}
\begin{defn}
	Sia $S$ un insieme di disgiunzioni del tipo $[*,\dots,*]$.\\
	Sia $D=(D_1,\dots,D_n)$ una lista di disgiunzioni del tipo
	$[*,\dots,*]$.
	\eal{&D\in \D(S)\definizione{\=} D\T{ e' una derivazione da } S \definizione{\=}\NN
	\definizione{\=}
\forall i\;\;D_i\in S \T{ oppure  si puo' costruire $D_i$ applicando le
	regole \see{defrisol} ad alcuni }D_j\T{ con }j<i\NN
	d\T{ e' derivabile da }S\definizione{\=}\exists D\in \D(S):\;\;d\T{ e'
	l'ultimo elemento di }D
	}
\end{defn}
\begin{rem}
Una $D\in \D(\pgra{[X_1],\dots,[X_n]})$ si puo' considerare come una risoluzione 
si $\pgra{X_1,\dots,X_n}$ (Nota\footnote{in realta' non e' esattamente una
risoluzione perche' $[X_i]$ puo' essere ripetuto arbitrariamente in $D$. Nelle
risoluzioni non abbiamo una regola che permette di copiare un elemento
dell'insieme di partenza})\\
Le derivazioni sono quindi piu' generali delle risoluzioni, in quanto
partono da un qualsiasi insieme di disgiunzioni.
	\end{rem}
\def\enl#1#2{{{\pqua{#1}_{#2}}}}
\begin{defn}
Sia $d=[X_1,\dots,X_n]$ una disgiunzione.
Diremo che  le due disgiunzioni
\eal{&[X_1,\dots,X_n,Y],\;\;[X_1,\dots,X_n]
}
sono degli $Y$-ingrandimenti di $d$. La prima la chiamereo $Y$-ingrandimento
effettivo. La seconda la chiameremo $Y$-ingrandimento non effettivo.\\
Sia $S$ un insieme di disgiunzioni. $S'$ e' un $Y$-ingrandimento di $S$
$\definizione{\=}$
\eal{\exists f:S\longrightarrow  S'\T{ biezione } t.c.\NN
 f(d) \T{ e' un $Y$-ingrandimento di }d\NN
}
In pratica sostituiamo tutte le disgiunzioni di $S$ con degli
$Y$-ingrandimenti e otteniamo $S'$.
Poniamo:
\eal{&\enl S Y \definizione{=} \pgra{\T{tutti gli } Y\T{ ingrandimenti di }S}
}
	\end{defn}
	\begin{lem}\label{lemthmdicompletezzarisoluzioni}
Sia $S$ un insieme di disgiunzioni. $S'\in \enl S Y$.
\eal{&d\T{ e' derivabile da }S \> \exists d'\in \enl d Y :\;\;d'\T{ derivabile
da }S'
	}
\end{lem}
\begin{proof}
	Sia $D=(D_1,\dots,D_n)\in \D(S)$ la derivazione da cui deriviamo $d$,
	cioe' $d=D_n$. Procediamo per induzione su $n$.
	\case{$n=1$}
	\begin{prova}
$D$ e' una derivazione. Siamo quindi forzati ad avere $d=D_1\in S$.\\
Allora, poiche' $S'\in \enl S Y$, la disgiunzione $d=D_1$ comparira' in  $S'$ 
come un ingrandimento $D_1'$ che potra' essere effettivo oppure no.\\
In ogni caso ponendo $d'=D_1'$, abbiamo la tesi.
	\end{prova}
	\case{$m<n\>n$}
	\begin{prova}
Se $d=D_n\in S$, basta ragionare come prima. Altrimenti, se $d\notin S$, vuol
dire che abbiamo applicato una regola di risoluzione ad al piu' due
disgiunzioni $D_{i_1},D_{i_2}$ per ottenere $d$ (\vedi{defrisol}). Dobbiamo
esaminare tutti i possibili casi, ma noi ne analizzeremo solo alcuni.
\case{$d=[\dots, Z,\dots]$ ottenuto da $D_i=[\dots,\NOT \NOT Z,\dots]$, ovvero
$d=D_i(\NOT \NOT Z|Z)$}
\begin{prova}
	\eal{&i<n  \ubrace{\>}{\T{Hp induttiva} } \exists D_i'\in \enl {D_i}
	Y:\;\;D_i'\T{ derivabile } da S'
	}
	Sia $(\ove D_1,\dots,\ove D_m)\in \D(S')$, $\ove D_m=D_i'$, la
	derivazione da cui ricaviamo $D_i'$.\\
	Poniamo $\ove D_{m+1}=\ove D_m(\NOT\NOT Z |Z)=D_i'(\NOT\NOT Z|Z)$, ovvero sostituiamo
	$\NOT \NOT Z$ con $Z$. Allora, $(\ove D_1,\dots,\ove D_{m+1})$ e'
	la derivazione cercata per $d$. Infatti, la sostituzione di $\NOT\NOT
	Z$ e' proprio una regola di risoluzione e inoltre $\ove D_{m+1} \in
	\enl d Y$, infatti,
	\case{$D_i'=D_i$ (ingrandimento non effettivo)}
	\begin{prova}
		\eal{&\ove D_{m+1} = D_i'(\NOT \NOT Z|Z) 
		= D_i(\NOT \NOT Z|Z) =d \in \enl d Y
		}
	\end{prova}
	\case{$D_i'=[X_1,\dots,\NOT \NOT Z, \dots, X_n,Y]$ con $D_i=[X_1,\dots,
	\NOT \NOT Z, \dots, X_n]$
	(ingrandimenti effettivo)}
	\begin{prova}
	\eal{&\ove D_{m+1} = D_i'(\NOT \NOT Z|Z)
                = [X_1,\dots,Z,\dots,X_n,Y] \in \enl d Y
		}		
	\end{prova}
\end{prova}
Analogamente si dimostrano gli altri casi.
	\end{prova}
\end{proof}
\begin{thm}
	di completezza per le Risoluzioni\\
	\eal{&\models X \> \vdash X}
\end{thm}
\begin{proof}
	Procediamo per assurdo: $\nexists R\in \Ris(\NOT X):\;\T{ R e' chiusa
	}$
Sia 
\eal{&C  = \pgra{ W\( \Formab \;|\; |W|<\8,\;\;\exists R\in \Ris(W):\;\T{
chiusa }}}
Quindi $\NOT X\in C$.
\step{}{$C$ e' una proprieta' di consistenza}
\begin{prova}
	Sia $S=\pgra{s_1,\dots,s_n}\in C$.\\
	\begin{enumerate}
		\item Non e' vero che $P,\NOT P\in S$, altrimenti se 
			consideriamo la risoluzione formata da:\eal{&
			[s_1]\NN
			\vdots\NN
			[P]\NN
			[\NOT P]\NN
			\vdots\NN
			[s_n]
			}
			e applichiamo la regola risolutiva $6.$ a $[P],[\NOT P]$, possiamo aggiungere $[]$
			alla lista e chiudere cosi' la risoluzione.\\
			Questo e' assurdo contro $S\in C$.
		\item Analogamente, $\false,\;\;\NOT T$ non possono stare
			in $S$
\item Supponiamo che $\b\in S$ e supponiamo per
	assurdo che $S_1=S\U\pgra{\b_1},\;S_2=S\U\pgra{\b_2}\notin
	C$, ovvero che esistono due risoluzioni
	$R_1=(D_1,\dots,D_n),\;R_2=(E_1,\dots,E_m)$
	per $S_1,S_2$ chiuse, cioe' $D_n=E_m=[]$\\
	\eal{&\b\in S \> S=\pgra{X_1,\dots,X_k,\b}
	}
Sia $R$ una risoluzione per $S$ in cui applichiamo una volta la regola di
espansione a $\b$, ovvero  $R$ e' 
\eal{&[X_1]\NN
[X_2]\NN
\vdots\NN
[X_k]\NN
[\b]\NN
[\b_1,\b_2]
}
Sia $\ove R_1=(D_1,\dots,D_{k+2})$ il primo pezzo di $R_1$:
\eal{&[X_1]\NN
[X_2]\NN
\vdots\NN
[X_k]\NN
[\b]\NN
[\b_1]
}
$R$ e' un $\b_2$-ingradimento effettivo di $\ove R_1$.\\
Poiche' $R_1$ e' chiusa, $[]$ e' derivabile da $\ove R_1$, cioe' $R$ e' del
tipo
\eal{&[X_1]\NN
[X_2]\NN
\vdots\NN
[X_k]\NN
[\b]\NN
[\b_1]\NN
\vdots\NN
[]
}
Allora
\eal{&\sist{R\in \enl {\ove R_1} {\b_2}\\
[]\T{ derivabile da } \ove R_1}
\ubrace{\>}{\see{lemthmdicompletezzarisoluzioni}}  \exists \T{ un $\b_2$-ingrandimento di }[]
\T{ che e' derivabile da R }
}
L'ingrandimento di $[]$ puo' essere $[]$ stesso oppure $[\b_2]$.
\case{$[]$}
\begin{prova}
Sia $R'=(Y_1,\dots,Y_h)$ la derivazione di $[]$ in $\D(R)$. Aggiungendo a $R$ gli elementi di
$R'$ che non sono gia' presenti in $R$, otteniamo la risoluzione $R^*$ del tipo:
\eal{&[X_1]\NN
[X_2]\NN
\vdots\NN
[X_k]\NN
[\b]\NN
[\b_1,\b_2]\NN
Y_{i_1}\NN
\vdots\NN
Y_{i_j}\NN
Y_h=[]
}
(nota: $Y_h=[]$ lo aggiungiamo perche' non  era contenuto in $R$, in quanto
$S\in C$).\\
La risoluzione $R^*$ e' quindi una risoluzione chiusa per $S$. Assurdo contro
$S\in C$.
\end{prova}
\case{$[\b_2]$}
\begin{prova}
Sia $R'=(Y_1,\dots,Y_h)$ la derivazione di $[\b_2]$ in $\D(R)$. $R'$ e' del
tipo:
\eal{&[X_1]\NN
[X_2]\NN
\vdots\NN
[X_k]\NN
[\b]\NN
[\b_1,\b_2]\NN
\vdots\NN
[\b_2]
}
La risoluzione chiusa $R_2=(E_1,\dots,E_m)$ di $S_2=S\U\pgra{\b_2}$ e' del tipo
\eal{
&[X_1]\NN
[X_2]\NN
\vdots\NN
[X_k]\NN
[\b]\NN
[\b_2]\NN
E_{k+3}\NN
\vdots\NN
E_m=[]
}
Quindi possiamo pensare $R_2$ come la derivazione di $[]$ dalla lista $\ove
R_2=(E_1,\dots,E_{k+2})$ che e' del tipo:
\eal{&
[X_1]\NN
[X_2]\NN
\vdots\NN
[X_k]\NN
[\b]\NN
[\b_2]
}
Quest'ultime disgiunzioni sono tutte contenute in $R'$. Quindi applicando,
in $R'$, le  stesse regole di risoluzione che abbiamo usato per derivare $[]$ da $\ove
R_2$ riusciamo ad ottenere la risoluzione $R'^{*}$:
\eal{&[X_1]\NN
[X_2]\NN
\vdots\NN
[X_k]\NN
[\b]\NN
[\b_1,\b_2]\NN
\vdots\NN
[\b_2]\NN
E_{k+3}\NN
\vdots\NN
E_m=[]
}
e quindi abbiamo ottenuto una risoluzione chiusa per $S$. Assurdo.
\end{prova}
			\item Si procede analogamente per gli altri casi.
		\end{enumerate}
\end{prova}

\end{proof}
\begin{thm}\label{thmdiesistenzamodello}
	di esistenza del modello.\\
Sia $C$ una proprieta' di consistenza, allora
\eal{&S\in C \> S\T{ e' soddisfacibile}}
Questo teorema e' una generalizzazione del thm \see{propSinCallorasoddisf}.
\end{thm}
\begin{proof}
	Analizziamo solo il caso $S$ infinito, poiche' l'altro e' gia' stato
	dimostrato in \see{propSinCallorasoddisf}.\\

	Siano dati
	$S_1,S_2$ t.c.
	\eal{&S_2\in C,\;S_1\(S_2,\;\;S_1\T{ finito}
	}
	Utilizziamo una versione modificata dell'algoritmo visto nella dimostrazione di
	\see{propSinCallorasoddisf}. Il nostro scopo e' quello di applicare l'algoritmo
	ad ogni elemento di $S$ in un ordine ben preciso.
	\eal{&
	\oname{SATURA}(S_1,S_2):\NN
\qq	S_1':=S_1\NN
\qq	S_2':=S_2\NN
\qq	\While S_1 \neq \0\NN
\qq	\qq \Let X\in S_1\NN
\qq	\qq S_1:=S_1\-\pgra{X}\NN
\qq	\qq \Se X \in \Pvar \U \NOT \Pvar \U \pgra{\true,\;\NOT \false}:\NN
\qq	\qq \qq \textbf{continua }\NN
\qq	\qq \Se X:=\NOT \NOT Z:\NN
\qq	\qq \qq S_1':=S_1'\U \{Z\}\NN
\qq	\qq \qq S_2':=S_2'\U \{Z\}\NN
\qq	\qq \qq S_1:=S_1\U \pgra{Z}\NN
\qq	\qq \Se X:=\a:\NN
\qq	\qq \qq S_1':=S_1'\U \{\a_1,\a_2\}\NN
\qq	\qq \qq S_2':=S_2'\U \{\a_1,\a_2\}\NN
\qq	\qq \qq S_1:=S_1\U \pgra{\a_1,\a_2}\NN
\qq	\qq \Se X:=\b:\NN
\qq	\qq \qq \Let b\in \pgra{\b_1,\b_2}:\;S_2'\U\pgra{b} \in C\NN
\qq	\qq \qq S_1':=S_1'\U \{b\}\NN
\qq	\qq \qq S_2':=S_2'\U \{b\}\NN
\qq	\qq \qq S_1:=S_1\U \pgra{b}\NN
\qq	R_1:=S_1'\NN
\qq	R_2:=S_2'\NN
\qq	\textbf{Ritorna } R_1,R_2
	}
In pratica, stavolta, $S_1$ e' l'insieme che fa da contatore e che man mano
si svuota. $S_1'$ e' l'insieme che colleziona tutte le sottoformule che
processiamo. $S_2'$ e' l'equivalente di $S_1'$, ma piu' ``forte'', nel senso
che appartiene sempre a $C$.

I loop-invarianti di questo algoritmo sono infatti:
\eal{&1.\;\;S_2'\in C\NN
2.\;\;S_1\(S_1'\(S_2'
}
che si dimostrano per induzione come abbiamo fatto in
\see{propSinCallorasoddisf}. In particolare abbiamo
\eal{&S_1\( R_1\( R_2\NN
R_2\in C\;\;(3.1)\NN
S_2\( R_2\;\;(3)
}

Poiche' $S_1$ e' finito, l'algoritmo terminera' (vedi sempre
\see{propSinCallorasoddisf}).

Inoltre, si vede anche che $R_1$ e' un insieme di Hintikka, infatti,
(analizziamo solo alcuni casi):
\eal{&
P,\NOT P \in R_1 \( R_2 \T{ assurdo contro }R_2\in C\NN
}
Se $\NOT \NOT Z\in R_1$, considerando l'$S_1$ di partenza, abbiamo due casi:
\case{$\NOT \NOT Z\in S_1$}
\begin{prova}
	L'algoritmo termina, quindi processa tutte le formule contenute in
	$S_1$, in particolare a un certo punto arrivera' nel caso in cui
	$X=\NOT \NOT Z$. Quindi verra'  applicata la regola:
	$S_1':=S_1'\U\pgra{Z}$.
	\eal{&Z\in S_1' \( R_1 
	}
	Quindi $Z\in R_1$
\end{prova}
\case{$\NOT \NOT Z\notin S_1$}
\begin{prova}
	In questo caso, $\NOT \NOT Z$ e' stato aggiunto in $S_1'$ durante la
	valutazione di una qualche formula $X\in S_1$.\\
	In ogni caso, cosi' come e' stato aggiunto in $S_1'$ viene aggiunto in
	$S_1$, e quindi ritorniamo al caso precedente, con la sola differenza
	che stavolta $S_1$ non e' quello di partenza.
\end{prova}

Ricordiamo che la logica proposizionale in cui stiamo operando e' $\Formab$
(\vedi{defformab}).
\eal{&S\(\Formab \( \UU=(\ATform \U \NOT\ATform \U \BinI \U
\pgra{(,),\NOT})^\8\NN
\sist{\ATform=\pgra{\true,\false}\U\pgra{p_1,p_2,\dots} \T{ e' numerabile }\\
\BinI\T{ e' finito }}
\> \ATform \U \NOT\ATform \U \BinI \U
\pgra{(,),\NOT} \T{ e' numerabile }\;\;(1)\NN
\T{Sia }A=\ATform \U \NOT\ATform \U \BinI \U
\pgra{(,),\NOT}\NN
\sist{\UU=\bigcup_{i\in \N^*}A^i\\\
A\T{ numerabile }}
\ubrace{\>}{\T{Unione numerabile di numerabili e' numerabile}} 
\UU\T{ e' numerabile } \> \NN
\qq \> \Formab \T{ e' numerabile }  \> S\T{ e' numerabile }
}
Poiche' $S$ e' numerabile, possiamo scrivere
\eal{&S=\pgra{X_0,X_1,X_2,\dots}}

Definiamo la seguente sequenza:
\eal{&T_0:=S\NN
T_i:=R_2,\T{ dove }R_2 \T{ e' ottenuto da } \oname{SATURA}(\pgra{X_i},T_{i-1})
}
Sia $R_2$ ottenuto da $\oname{SATURA}(\pgra{X_{i+1}},T_{i})$, ovvero $R_2=T_{i+1}$.\\
Per la $(3)$ abbiamo
\eal{&\pgra{X_{i+1}},T_{i} \( R_2=T_{i+1}\NN
T_i\(T_{i+1}\;\;\forall i\;\;(4)
}
\step{ptitii}{Dim. per induzione che $\pgra{X_i}\( S \( T_i$}
\begin{prova}
	\case{$i=0$}
	\begin{prova}
		\eal{&	\pgra{X_0}\( \pgra{X_0,X_1,\dots}=S =T_0}
	\end{prova}
	\case{$i\> i+1$}
	\begin{prova}
		Si ha
		\eal{&	\pgra{X_{i+1}}\( \pgra{X_0,X_1,\dots}=S
		\ubrace{\(}{\T{Hp induttiva}}T_i \ubrace{\(}{(4)}T_{i+1}}
	\end{prova}
\end{prova}
Per la $(3.1)$ abbiamo anche che
\eal{&T_i\in C\;\;\forall i\in \N
}
\def\E{{\mathcal{T}}}
\def\S{{\E}}
Sia $\E=\bigcup_{i\in \N} T_i$.
\step{}{Dim. $\E$ e' un insieme di Hintikka }
\begin{prova}
	\step{}{$\false\notin \S$}
	\begin{prova}
		Se per assurdo $\false\in \S$, si avrebbe:
		\eal{&\exists i:\;\false\in T_i
		}
		e questo e' assurdo contro $T_i\in C$.
	\end{prova}
	\step{}{$\NOT T\notin \S$}
	\begin{prova}
		Analogamente a prima.
	\end{prova}
	\step{}{$P\in \Pvar \> (P\notin \S\;\;\T{oppure}\;\;\NOT P\notin \S)$}
	\begin{prova}
		Supponiamo $P\in \Pvar$.\\
		Se per assurdo $P,\NOT P\in \S$, si avrebbe:
		\eal{&\exists i:\;P\in T_i,\;\;\exists j:\;\NOT P \in T_j
		}
		supponiamo $j>i$, quindi
		\eal{&T_i\( T_j \> P,\;\NOT P \in T_j
		}
		e questo e' assurdo contro $T_j\in C$.
	\end{prova}
	\step{}{$\NOT \NOT Z \in \S \> Z\in \S$}
	\begin{prova}
	\eal{&\NOT \NOT Z \in \S \> \exists i:\;
	\NOT \NOT Z \in T_i
	}
	Dobbiamo distinguere due casi:
	\case{$\NOT \NOT Z \in T_0=S$}
	\begin{prova}
		\eal{&\NOT \NOT Z \in \pgra{X_1,X_2,\dots} \> 
		\exists i:\;\NOT \NOT Z = X_i\NN
		X_i\ubrace{\in}{\sref{ptitii}} T_i\NN
		T_{i}=\oname{SATURA}(\pgra{X_i}, T_{i-1})
		}
		L'algoritmo SATURA, avra' esaminato il caso  $X=X_i$, e quindi
		avra' usato la regola
		\eal{&S_2':=S_2'\U\pgra{Z}
		}
		Poiche' $S_2'\( R_2=T_i$, abbiamo 
		\eal{&Z\in T_i\( \S}
	\end{prova}
	\case{$\NOT \NOT Z\notin T_0$}
	\begin{prova}
		Sia $i_0=\min\pgra{i\;|\;\NOT \NOT Z\in T_i}$, quindi
		\eal{&\NOT \NOT Z \notin T_{i_0-1}\;\;(5)\NN
		\NOT \NOT Z \in T_{i_0}=\oname{SATURA}(X_{i_0},
		T_{i_0-1})\NN
		(5),\;\;X_{i_0}\in S=T_0 \>  \NOT \NOT Z \neq X_{i_0}\;\;(5.1)
		}
		Dalla $(5.1)$ vediamo che l'unico modo per cui $\NOT\NOT Z$
		sia finito in $T_{i_0}$ e' che sia stato aggiunto a $S_2'$
		durante qualche $\Se$. Ma allora, in quel momento, sara' stato
		anche aggiunto anche a $S_1$, cioe' l'algoritmo avra' eseguito
		la linea:
		\eal{&S_1:=S_1\U\pgra{\NOT\NOT Z}}
		Poiche' l'algoritmo termina e svuota $S_1$, prima o  poi
		l'algoritmo sara' entrato nel caso $X=\NOT \NOT Z$. Quindi,
		sara' stata applicata la regola:
		\eal{&S_2':=S_2'\U\pgra{Z}
		}
		In conclusione:
		\eal{&Z\in S_2' \( R_2=T_{i_0} \( \S}
		Sostanzialmente: se $\NOT \NOT Z$ e' una formula di $S$, prima
		o poi sara' processata e verra' aggiunto $Z$. Se $\NOT \NOT Z$
		non e' in $S$, allora vuol dire che e' stata aggiunta in un
		certo punto come sottoformula, ma allora verra' prima o poi
		processata.
	\end{prova}
	\end{prova}
	\step{}{$\a \in \S \> \a_1,\a_2\in \S$}
	\begin{prova}
		Si procede analogamente a prima.
	\end{prova}
	\step{}{$\b \in \S \> \b_1\in \S \| \b_2\in \S$}
	\begin{prova}
		Si procede analogamente a prima.
	\end{prova}
\qedstep
\begin{prova}
\eal{&
\S\T{ e' di Hintikka }  \ubrace{\>}{\see{hintikkasoddisfacibile}}  \S\T{
soddisfacibile }  \ubrace{\>}{S=T_0\( \S}  S\T{ e' soddisfacibile}
	}
\end{prova}
\end{prova}
\end{proof}
\subsection{Compattezza}
\begin{defn}
	Sia $S\( \Formab$.
	\eal{&S\T{ e' finitamente soddisfacibile } \definizione{\=}\forall 
	D\( S:\;|D|<\8 \;\;D\T{ e' soddisfacibile}
	}
\end{defn}
\begin{thm}di compattezza.\ilabel{compattezza}\label{thmdicompattezza}
	\eal{&S\T{ finitamente soddisfacibile } \= S\T{ soddisfacibile }
	}
\end{thm}
\begin{proof}
	\BEGINsufficiente
	\eal{& S\T{ soddisfacibile } \> \exists v\in \V:\;\;v(s)=\true\;\forall
	s\in S \> v(s)=\true\;\;\forall s\in D
	}
	\END
	\BEGINpnecessaria
	Sia 
	\eal{&C=\pgra{W\(\Formab\;|\;W\T{ finitamente soddisfacibile}}}
	\step{}{$C$ e' una proprieta' di consistenza}
	\begin{prova}
		Sia $W\in C$
		\step{}{$\false\notin W$}
		\begin{prova}
			Altrimenti, $\pgra{\false}$ sarebbe soddisfacibile, il che'
			e' assurdo.
		\end{prova}
		\step{}{$\NOT \true\notin W$}
		\begin{prova}
			Analogamente a prima
		\end{prova}
		\step{}{$P\in \Pvar \> \NOT P \notin W \| P \notin W$}
		\begin{prova}
			Se per assurdo $\pgra{P,\NOT P}\(W$, si avrebbe che
			$\pgra{P,\NOT P}$ e' soddisfacibile. Assurdo.
		\end{prova}
		\step{}{$\NOT \NOT Z\in W \> W\U\pgra{Z}\in C$}
		\begin{prova}
			Sia $D\( W\U\pgra{Z}$, finito. Dimostriamo che e'
			soddisfacibile.
			\case{$Z\notin D$}
			\begin{prova}
				In questo caso,
				\eal{&D\( W \ubrace{\>}{W\in C}  D\T{ e' soddisfacibile}
				}
			\end{prova}
			\case{$Z\in D$}
			\begin{prova}
				\eal{&Z\notin D \> D\-\pgra{Z} \(W\NN
				(D\-\pgra{Z})\U\pgra{\NOT \NOT Z}\in W \>
				(D\-\pgra{Z})\U\pgra{\NOT \NOT
				Z}\T{ soddisf. } \= \NN
				\=\exists v\in \V:\;
				v(D\-\pgra{Z})=\true,\;
				v(\NOT \NOT Z)=\true \> \forall d\in
				D\-\pgra{Z}:\;v(d)=\true,\;\;v(Z)=\true
				\>\NN
				\> \forall d\in D \;\;v(d)=\true \= v(D)=\true\= D\T{
				soddisf.}
				}
			\end{prova}
		\end{prova}
		\step{}{$\a\in W  \> W\U\pgra{\a_1,\a_2}\in C$ }
		\begin{prova}
			Analogamente a prima.
		\end{prova}
		\step{}{$\b\in W \> W\U\pgra{\b_1} \in C\| W\U\pgra{\b_2}\in
		C$}
		\begin{prova}
			Supponiamo per assurdo che $\exists
			D_1\(W\U\pgra{\b_1},D_2\(W\U\pgra{\b_2}$ finiti e non
			soddisfacibili.\\
			Se per assurdo $\b_i\notin D_i$, allora 
			\eal{&D_i\( W \> D_i\T{ soddisf.} 
			}
			assurdo.\\
			Quindi $\b_i\in D_i$.\\
			\eal{&(D_1\-\pgra{\b_1})\U(D_2\-\pgra{\b_2})\U\pgra{\b}\( W \> 
			\T{ e' soddisfacibile } 
			\> \exists v\in
			\V:\;v(\b)=v(D_1\-\pgra{\b_1})=v(D_2\-\pgra{\b_2})=\true\NN
			v(\b)=\true \> v(\b_1)=\true  \| v(\b_2)=\true
			}
			\case{$v(\b_1)=\true$}
			\begin{prova}
				In questo caso, tutto $D_1$ diventa
				soddisfacibile. Assurdo.
			\end{prova}
			\case{$v(\b_1)=\false,\;v(\b_2)=\true$}
			\begin{prova}
				\eal{&v(D_2\-\pgra{\b_2})=\true\NN
				v(\b_2)=\true\NN
				\qq \> v(D_2)=\true
				}
				$D_2$ soddisfacibile. Assurdo.
			\end{prova}
		\end{prova}
	\end{prova}
	\END
\end{proof}
\subsection{Risoluzioni ristrette}
\def\Lit{{\oname{Lit}}}
\begin{defn}
	Siano $P_1,\dots,P_n\in \Pvar$ delle lettere proposizionali. Possiamo
	costruire il loro \emph{albero
	semantico}:
	\ctree{[ 
		[ $P_1$
		    [$P_2$
		   	[ $P_3$ 
			   [$\vdots$] [ $\vdots$] 
			]
			[$\NOT P_3$
			   [$\vdots$] [ $\vdots$] 
			]
		    ] 
		    [$\NOT P_2$
		   	[ $P_3$ 
			   [$\vdots$] [ $\vdots$] 
			]
			[$\NOT P_3$
			   [$\vdots$] [ $\vdots$] 
			]
		    ]
		]
		[$\NOT P_1$
		    [$P_2$
		   	[ $P_3$ 
			   [$\vdots$] [ $\vdots$] 
			]
			[$\NOT P_3$
			   [$\vdots$] [ $\vdots$] 
			]
		    ] 
		    [$\NOT P_2$
		   	[ $P_3$ 
			   [$\vdots$] [ $\vdots$] 
			]
			[$\NOT P_3$
			   [$\vdots$] [ $\vdots$] 
			]
		    ]
		]
		]}
Possiamo anche costruire l'albero semantico di tutte le lettere $\Pvar$. In
questo caso avremo un albero infinito, a ramificazione finita.\\

In maniera naturale, l'albero semantico permette di codificare tutte le possibili
valutazioni booleane. Un ramo $r$ dell'albero e' quindi interpretabile come una
particolare valutazione booleana secondo la legge:
\eal{&v(P)=\sist{\true&P\in \nodo{r}\\
		 \false&\NOT P\in \nodo{r}}
}
\end{defn}
\def\ramom#1{{\oname{ramo}_{\T{\tiny{max}}}\pton{#1}}}
\begin{defn}\label{defCsat}
	Sia $R\in \Ris(X)$ una risoluzione
	Sia $C\( [\Lit]$ un insieme di disgiunzioni letterali (\vedi{defdisgiunzioni}).
	\eal{&C\T{ e' saturo per risoluzione} \definizione{\=} 
	\forall c_1,c_2\in C\;\;c\in C\NN
	\qq\T{, dove $c$ e' la disgiunzione letterale ottenuta da
	$c_1,c_2$ con le regole risolutive (\vedi{defrisol}) }
	}
	Sia $c\in C$ e siano $\{L_1,\dots,L_k\}=c\^\Lit\-TF$ i letterali che compaiono in $c$, ma che non sono $\true,\false$.
	\\
	Sia $A$ l'albero semantico formato sulle lettere
        $P_1,\dots,P_k$ che compaiono in tutte gli elementi di $C$, ovvero
	sulle lettere  dell'insieme
	\eal{&\bigcup_{c\in C}c\^\Pvar}
	Sia $r$ un ramo dell'albero $A$ e sia $N\in \nodo{r}$ un suo nodo.
	\eal{&r\T{ contraddice }c\definizione{\=} \ove{L_{k}} \in
	\nodo{r}
	\;\;\forall i=1,\dots,k\NN
	\qq \T{ dove }\ove{L_k}\T{ e' la negazione di $L_k$ (vedi
	\see{defoperatonegazione}), con la seguente modifica: }\ove{\NOT X}=X\NN
	r \T{ e' C-chiuso } \definizione{\=}  \exists c\in C:\;\;r\T{
	contraddice }c\NN
	N\T{ e' fallimentare per }C \definizione{ \= } \T{ il ramo
	$(S,\dots.,N)$ e' C-chiuso}\NN
	\qq 	\T{ dove }S\T{ e' la radice di }A
	}
	Se $A$ e' infinito poniamo
	\eal{&r\in \ramo{A}\T{ e' un ramo massimale }\definizione{ \= }r\T{ e'
	infinito }
	}
	Se $A$ e' finito poniamo
	\eal{&r\in \ramo{A}\T{ e' un ramo massimale } \definizione{ \= }r\T{ e' un
	ramo terminato (\vedi{Prefazione}).}
	}
	Sia $\ramom{A}$ l'insieme di tutti i rami massimali di $A$.
\end{defn}
\begin{prop}
	\label{Csaturoinsodd}
	Sia $C\([\Lit]$,
	\eal{&\sist{C\T{ e' saturo per risoluzione}\\
	C\T{ insoddisfacibile }}\> []\in C}
\end{prop}
\begin{proof}
	Sia $C'$ l'insieme di disgiunzioni letterali ottenute da quelle di $C$
	rimuovendo ogni occorrenza del simbolo $\false$. Ovvero, preso 
	$[\dots,\false,\dots]\in C$ e applicando la regola risolutiva $7.$
	(\vedi{defrisol}) abbiamo $ [\dots]\in C' $.\\

	\step{p0}{$C'$ e' saturo}
	\begin{prova}
Sia  $c\in C$ e sia $c'$ ottenuto da $c$  applicando la regola risolutiva $7.$
(\vedi{defrisol}).
\eal{&C\T{ saturo }  \ubrace{\>}{\see{defCsat}} c'\in C
}
Poiche' gli elementi di $C'$ sono appunto quelli
ottenuti da $C$ tramite la regola $7.$, si deve avere $C'\(C$.\\

Dimostriamo che $C'$ e' saturo.\\
Sia $c'\in C'$ e sia $d'$ la disgiunzione ottenuta da $c'$ tramite la regola
$7.$. Poiche' in $C'$ non esistono disgiunzioni con il simbolo $\false$, la regola
$7.$ lascia invariato $c'$, cioe' $d'=c'$ e quindi $d'=c'\in C'$\\
Sia adesso $c_1',c_2'\in C'$ e sia $d'$ la disgiunzione ottenuta da
$c_1',c_2'$ tramite la regola $6.$. Abbiamo:
\eal{&c_1',c_2'\in C'\( C  \ubrace{\>}{\see{defCsat}}  d'\in C\NN
f\notin c_1'\U c_2' \> \false\notin d'\T{ ovvero, il simbolo $\false$ non puo' stare in
}d' \> d'=d''\in C'\NN
\T{dove $d''$ e' ottenuto da $d'$ con la $7.$}
}
	\end{prova}
	\step{p1}{$C'$ e' insoddisfacibile}
	\begin{prova}
		\step{}{Metodo diretto}
		\begin{prova}
			\eal{&C\T{ insoddisfacibile } \> \exists c\in
			C:\;\;v(c)=\f\;\;\forall v\in \V
			}	
Poiche' 
\eal{&v([X_1,\dots,X_n])=\true\> v([\false,X_1,\dots,X_n])=\true\;\;(1)}
si ha che
\eal{&v(c')=\f\;\;\forall v\in \V}
dove $c'\in C'$ e' ottenuto da $c$ con la $7.$
		\end{prova}
		\step{}{Metodo indiretto}
		\begin{prova}
Se per assurdo $C'$ fosse soddisfacibile, si avrebbe
\eal{&C'\T{ soddisf.} \> \exists v\in \V:\;\;v(C')=\true
\= v(c')=\true\;\;\forall c'\in C'
}
Poiche' 
\eal{&v([X_1,\dots,X_n])=\true\> v([\false,X_1,\dots,X_n])=\true\;\;(1)}
e poiche' $C$ si puo' ottenere aggiungendo $\false$ ad alcune disgiunzioni di $C'$,
abbiamo che anche $C$ e' soddisfacibile, ovvero:
\eal{&\forall c\in C\;\exists c'=[X_1,\dots,X_n]\in
C':\;\;c=[\false,X_1,\dots,X_n]\NN
v(c')=\true  \ubrace{\>}{(1)} v(c)=\true
}
		\end{prova}
	\end{prova}
	\step{p2}{$[]\in C'\= []\in C$}
	\begin{prova}
		\BEGINpnecessaria
		Basta osservare che $C'\( C$
		\END
		\BEGINsufficiente
		Poiche' $[]$ si puo' ottenetere con la $7.$ da $[]\in C$ stesso,
		per defizione di $C'$ si ha $[]\in C'$
		\END
	\end{prova}
Grazie ai passi precedenti, basta adesso dimostrare che $[]\in C'$.\\

	Siano $P_1,\dots,P_n$ tutte le lettere delle disgiunzioni letterali di
	$C'$. Sia $A$ il relativo albero semantico e sia $S$ la radice
	dell'albero (il nodo vuoto).
	\step{}{$S\T{ e' fallimentare per }C' \> []\in C'$}
	\begin{prova}
	Osserviamo che il ramo $(S)$ non contiene lettere.
	\eal{&S\T{ e' fallimentare per }C' \> 
	\T{ il ramo vuoto $(S)$ e' C'-chiuso }
	\> \exists c'\in C':\;\;(S)\T{ contraddice }c'\;\;(2)
		}
		Siano $Q_1,\dots,Q_m$ le lettere di $c'$
		\eal{&(2) \> \NOT Q_1,\dots,\NOT Q_m\in (S)  \ubrace{\>}{S\T{
		non e' una lettera }}  m=0}
		ovvero $c'$ non ha lettere, e quindi
		\eal{&c'=[]\in C'}
	\end{prova}
	\step{}{Dim. che $S$ e' fallimentare per $C'$}
	\begin{prova}
	Supponiamo per assurdo che la radice $S$ non sia fallimentare. 
	\eal{&C'\T{ insoddisfacibile } \> \forall r\in \ramom{A}\;\;r\T{ e'
	C'-chiuso}\;\;(3)
	}
	Infatti, se per assurdo $r\in \ramom{A}$ non fosse $C'$-chiuso, avremmo
	trovato una valutazione booleana (quella associata a $r$) che soddisfa tutti i $c'\in C'$, e quindi $C'$ sarebbe soddisfacibile. Assurdo.\\

	\def\A{{A^{*}}}
	Preso $r=(r_1,r_2,\dots)\in \ramo{A}$, sia $r_i$ il primo nodo di $r$
	che rende il ramo $r^*=(r_1,\dots,r_{i})$ un ramo $C$-chiuso, ovvero
	$(r_1,\dots,r_{i-1})$ non e' $C$-chiuso, mentre $r^*$ lo e'.
	(Nota\footnote{Se  $r=(r_1,r_2,\dots)$ e' un ramo $C$-chiuso, possiamo
	affermare che  esiste
il primo nodo di $r$  che rende il ramo $r^*=(r_1,\dots,r_{i})$ un ramo
$C$-chiuso. Infatti, le disgiunzioni letterali hanno solo un numero finito di
lettere.}).

	Sia
	$A^{*}$ l'albero t.c.
	\eal{&\ramo{\A}\definizione{=}\pgra{r^*\;|\;r\in \ramo{A}}
	}

	Per ipotesi $S$ non e' fallimentare, quindi $\A$ non e' formato dal
	solo ramo $(S)$.
	\step{}{$\A$ e' finito.}
	\begin{prova}
		Se cosi' non fosse, per il lemma di Konig (\vedi{lemdikonig})
		esisterebbe un ramo $r^*\in \ramo{\A}$ infinito. Ma tutti i
		rami di $\A$, per costruzione sono finiti. Assurdo.
	\end{prova}

	\eal{&\A\T{ finito } \> \ramom{\A}=\ramot{\A}
	}
	ovvero i rami massimali sono quelli terminati.

	Poiche' $\A$ e' finito, possiamo considerare l'insieme di tutti i suoi
	rami, non chiusi, piu' lunghi. Sia $r^*=(r_1,\dots,r_{i-1})$ un tale
	ramo.
	\eal{&\T{per costruzione $\A$ ha tutti i rami terminati chiusi, ovvero
	}\NN
	\qq r\in \ramot{\A} \= r\T{ e' chiuso }
	\;\;(4)\NN
	r^* \T{ non chiuso } \ubrace{\>}{(4)} r^* \notin \ramot{\A} \>
	r_{i-1} \T{ ha dei figli }
	}
	Siano $L,R$ i figli di $r_{i-1}$. Poiche' $r^*$ e' uno dei rami non
	chiusi piu' lunghi, i rami $r_L^*=(r_1,\dots,r_{i-1},L)$ e
	$r_R^*=(r_1,\dots,r_{i-1},R)$ devono essere necessariamente chiusi. Quindi
	$L,R$ sono fallimentari.
	\eal{&S\T{ non fallimentare } 
	\> (S) \T{ non chiuso } \> 
	r_L^*,\;r_R^* \neq (S) \> L,R\in \Pvar   \>\NN
	\ubrace{\>}{\T{def. di albero
	semantico }} L=P_j,\;R=\NOT P_j \T{ oppure } L=\NOT P_j,\;R=P_j
	}
	Supponiamo $L=P_j,\;R=\NOT P_j $. Graficamente la situazione e' la
	seguente:
	\ctree{[$r_1$ [$r_2$ [ $\vdots$ [ $r_{i-1}$ [ $P_j$] [$\NOT P_j$] ]]]]}
Siano $c_L,\;c_R\in C'$ due elementi di $C'$ contraddetti da
	$r_L^*,\;r_R^*$. \\
	\step{}{$\NOT P_j\in c_L,\;\;P_j\notin c_L$}
	\begin{prova}
	Se per assurdo $\NOT P_j\notin c_L$, 
\eal{&
\T{$r_L^*$ contraddice $c_L$ } \= 
\forall H\in c_L\^\Lit\-TF \;\;\ove H \in r_L^*\NN
\exists  H\in c_L\^\Lit\-TF:\;\;\ove H=P_j \;\;\=\;\; \exists H\in
c_L\^\Lit\-TF \;\;H=\NOT P_j \= \NOT P_j\in c_L\;\;(5)\NN
\NOT P_j\notin c_L,\;\;(5) \> \forall H\in c_L\^\Lit\-TF \;\;\ove H \in r^*\>r^*\T{ contraddice }c_L\> r^*\T{ chiuso}
}
Assurdo. Quindi $\NOT P_j\in c_L$.\\
	
Se per assurdo $P_j\in c_L$,
\eal{&P_j\in C_L, \;\;r_{L}^*\T{ contraddice }C_L\> \NOT P_j\in r_L^*
}
assurdo contro $P_j\in r_L^*$: in un ramo di un albero semantico non ci puo'
essere sia $P$ che $\NOT P$.
	\end{prova}
	\step{}{$P_j\in c_R,\;\;\NOT P_j\notin c_R$}
	\begin{prova}
		Analogamente a prima.
	\end{prova}
Consideriamo la disgiunzione $c=(c_L\-\pgra{\NOT P_j})\U (c_R\-\pgra{P_j})$.
Per quanto detto si ha:
\eal{&P_j,\;\NOT P_j \notin c \> 
\forall H\in c\^\Lit\-TF\;\;\ove H \in r^* \> r^*\T{ contraddice }c
}
Ma questo e' un assurdo contro $r^*$ non $C'$-chiuso.
	\end{prova}
\end{proof}
\begin{defn}
	Sia $R$ un insieme di disgiunzioni. $R$ e' di \iemph{Robinson}
	$\definizione{\=}$
	\eal{&1.\;\;D\in R\-\pqua{\Lit} \>  D'\in R\NN
\qq	\T{ dove D' e' una qualsiasi disgiunzione ottenuta da $D$ tramite 
 una regola di espansione}\NN
 2.\;\;R\^\pqua{\Lit}\T{ e' saturo per risoluzione}\NN
	3.\;\;[]\notin R}
	La $1.$ equivale a dire che $R$ e' saturo per espansione.
\end{defn}
\begin{thm}\label{Rsoddisf}
	\eal{&R\T{ di Robinson } \> R\T{ soddisfacibile }}
\end{thm}
\begin{proof}
	Sia $C=R\^\pqua{\Lit}$.
	\step{}{$C$ e' saturo per risoluzione}
	\begin{prova}
		Infatti,
Presi $c_1,c_2\in C\;\;c\in C$, 
dove $c$ e' la disgiunzione letterale ottenuta da
	$c_1,c_2$ con le regole risolutive (\vedi{defrisol}), si ha
	\eal{&c_1,c_2\in \pqua{\Lit}\> c\in \pqua{\Lit}\U\pgra{\formula{[]}}\NN
	C= R\^\pqua{\Lit},\;\;R\T{ saturo per risoluzione } \> c\in R  \ubrace{\>}{3.} c
	\neq [] \NN
	\qq c\in R\^\pqua{\Lit}=C
	}
	\end{prova}
	\eal{&[]\notin C,\;\;C\T{ saturo } \ubrace{\>}{\see{Csaturoinsodd}} 
	C\T{ soddisfacibile} \> \exists v\in \V:\;\;v(C)=\true
	}
	\step{}{$v$ soddisfa $R$}
	\begin{prova}
	Procediamo per induzione sul rango delle disgiunzioni. Ovvero,
	\eal{&R_i\definizione{=}\pgra{d\in R\;|\;r(d)=i}}
	dimostriamo che $v(R_i)=\true\;\;\forall i\in \N$.
	\case{$R_0$}
	\begin{prova}
		\eal{&d\in R_0 \> d\in \pqua{\Lit}\> d\in C \> v(d)=\true}
	\end{prova}
	\case{$v( R_{m})=\true,\;m<n \> v( R_n)=\true$}
	\begin{prova}
		Sia $d\in R_n$. Applicando una regola di espansione su $d$,
		otteniamo delle disgiunzioni $d',d''$ con rango inferiore. Per
		Hp induttiva, $v$ soddisfa $d',d''$. Allora, $d$ e' pure
		soddisfatta da $v$, infatti le regole di espansione
		garantiscono che
		\eal{&d \= d'  \& d''
		}
	\end{prova}
	\end{prova}
\end{proof}
\begin{defn}
	Una risoluzione $R\in \Ris(X)$ e' ristretta $\=$ le 
	regole di espansione e la regola risolutiva $7.$ (\vedi{defrisol}) vengono
	applicate al piu' una sola volta ad ogni
disgiunzione e la regola risolutiva $6.$ viene applicata al piu' una volta ad
ogni coppia di disgiunzioni. Inoltre, le regole di espansione devono essere
applicate, il piu' possibile\footnote{``il piu' possibile'' vuol dire che dobbiamo applicare le regole
fino a quando non e' piu' possibile applicarle. A quel punto ci fermiamo.}
, prima di quelle risolutive.\\
\end{defn}
\begin{thm}
	di completezza per risoluzioni ristrette.
	\eal{&\models X \> \vdash X
	}
\end{thm}
\begin{proof}
	Considero la risoluzione iniziale
	\eal{&[\NOT X]}
	e applico ad essa il piu' possibile le regole di espansione, mantenendo la
	ristrettezza.\\
	Questo procedimento avra' termine, perche' applicare le regole di
	espansione a $[\NOT X]$ equivale a convertire $\NOT X$ in una CNF
	(\vedi{XtoCNF}).\\
	Ottengo quindi la risoluzione finale $S$, che e' satura per
	espansione.
	Sia $C=S\^\pqua{\Lit}$. Adesso applico a $C$ le regole risolutive,
	mantenendo la ristrettezza. Poiche' $C$ e' finito e poiche' stiamo
	usando la ristrettezza, anche questo procedimento avra' termine (basta
	applicare il lemma di Konig (\vedi{lemdikonig}) come gia' fatto nella
	dimostrazione di \see{XtoCNF} (ma utilizzando la lunghezza della
	formule piuttosto che il rango).\\
	Ottengo cosi' l'insieme $C'$, che e' saturo per risoluzione.

	Sia $R=S\U C'$. $R $ e' una risoluzione per $\NOT X$.
	Supponiamo per assurdo che $\not\vdash X$, allora
	\eal{&\not\vdash X \> [] \notin R 
	}
Quindi
\eal{&
S\T{ saturo per espansione } \> R\T{ saturo per espansione } \NN
C'\T{ saturo per risoluzione } \> C'=R\^[\Lit]\T{ saturo per risoluzione } \NN
[]\notin R\NN
\qq \> R\T{ e' di Robinson }  \ubrace{\>}{\see{Rsoddisf}} R\T{ e'
soddisfacibile } \> \NOT X \T{ e' soddisfacibile } 
}
Assurdo contro $\models X$.
\end{proof}
\subsection{Conseguenza proposizionale}
\begin{thm}
	\eal{&S\models X\= \exists S_0\( S\T{ finito t.c. }S_0\models X}
\end{thm}
\begin{proof}
	Ricordiamo che 
	\eal{&S\models X \= \pton{\exists v\in \V:\;v(S)=\true \> v(X)=\true}}
	\BEGINsufficiente
\eal{&v(S) =\true \> v(S_0)=\true \> v(X)=\true 
	}
	\END
	\BEGINpnecessaria
	Supponiamo per assurdo che \eal{&\forall S_0\( S\T{ finito
	}\;\;S_0\not\models X\;\;(1)}
	\step{}{$S\U\pgra{\NOT X}$ e' finitamente soddisfacibile.}
	\begin{prova}
		Sia $D\( S\U\pgra{\NOT X}$ finito. Sia $S_0=D\-\pgra{\NOT X}\(
		S$.
		\eal{&D\T{ finito, } S_0\( S  \ubrace{\>}{(1)} S_0\not\models X
		\> \exists v\in \V:\;v(S_0)=\true,\; v(\NOT X)=\false\> v(X)=\true \>
		v(D)=\true 
		}
	\end{prova}
	\eal{&\T{{$S\U\pgra{\NOT X}$ e' finitamente soddisfacibile.} }
	\ubrace{\>}{\see{thmdicompattezza}} S\U\pgra{\NOT X}\T{ soddisf. } 
	\> v(S)=\true,\;v(X)=\false
	}
	assurdo.
	\END
\end{proof}
\subsection{Sistemi di Hilbert}
\def\A{{\mathcal{A}}}
\begin{defn}\label{defhilbert}
	Un sistema di Hilbert e' formato da un insieme $\A\(\Formab$ di assiomi,
	e da un insieme di regole di inferenza, ad esempio il modus ponens
	(m.p.).

	Una dimostrazione di $X\in \Formab$ a partire da $S\( \Formab$ e'
	sequenza $X_1,\dots,X_n$ di formule tali che per ogni $i$ si abbia
	\eal{&X_i\in \A\U S\;\T{ oppure } \;X_i \T{ e' ottenibile da
	$X_1,\dots,X_{i-1}$ con l'uso di qualche regola di inferenza}}
	e inoltre, $X_n=X$.\\

	Una sequenza $X_1,\dots,X_n$ si chiama \emph{derivazione} da
	$S\(\Formab$ se e' una dimostrazione di $X_n$ a partire da $S$.\\

	Se esiste una dimostrazione per la formula $X$ a partire da $S$, scriveremo
	\eal{&S\vdash X}
	Se $S=\0$, scriveremo
	\eal{&\vdash X}

	Gli assiomi che utilizzeremo sono i seguenti:
	\eal{&
	\A_1\;=\;\pgra{\formula{X\>(Y\>X)}\;|\;X,Y\in \Formab}\NN
	\A_2\;=\;\pgra{\formula{(X\>(Y\>Z)) \> ((X\>Y)\>(X\>Z))}\;|\;X,Y,Z\in \Formab}\NN
	\A_3\;=\;\pgra{\formula{\false\>X}\;|\;X\in \Formab}\NN
	\A_4\;=\;\pgra{\formula{X\>\true}\;|\;X\in \Formab}\NN
	\A_5\;=\;\pgra{\formula{\NOT \NOT X\>X}\;|\;X\in \Formab}\NN
	\A_6\;=\;\pgra{\formula{X\>(\NOT X\>Y)}\;|\;X,Y\in \Formab}\NN
	\A_7\;=\;\pgra{\formula{\a\>\a_1}\;|\;\a\in \Forma,\;\a_1\T{ prima componente di }\a}\NN
	\A_8\;=\;\pgra{\formula{\a\>\a_2}\;|\;\a\in \Forma,\;\a_2\T{ seconda componente di }\a}\NN
	\A_9\;=\;\pgra{\formula{(\b_1\>X) \> ((\b_2\>X)\>(\b\>X))}\;|\;\b\in
	\Formb,\;\b_1,\b_2\T{ componenti di }\b}\NN
	\NN
	\A\definizione{=}\bigcup_{i=1,\dots,9}\A_i
	}
	Nota: tutti gli assiomi che utilizziamo sono tautologie!\\

	L'unica regola di inferenza che useremo e' il \iemph{Modus Ponens}:
	\eal{&S\U\pgra{\formula{X\>Y},X} \vdash Y
	}
	ovvero, diremo che la seguente sequenza e' valida, e che la $3.$ e' stata
	ottenuta dalla $1.,2.$ con il m.p.
	\eal{&1.\;\;X\>Y\NN
	      2.\;\;X\NN
	      3.\;\;Y
	}
\end{defn}
\begin{prop}\label{PalloraP}
	Data $P\in \Formab$,
	\eal{&\vdash\formula{P\> P}}
\end{prop}
\begin{proof}
Ecco la sequenza cercata:
\eal{&  
1.\;\;(P\>((P\>P)\>P)) \> ((P\>(P\>P))\>(P\>P))   & \in \A_2,\;\T{ con
}X:=P,\;Y:=\formula{P\>P},\;Z:=P\NN
2.\;\;P\>((P\>P)\>P)&\in \A_1,\;\T{ con }X:=P,\;Y:=\formula{P\>P}\NN
3.\;\;(P\>(P\>P))\>(P\>P)&m.p.\T{ da } 1.,2.\NN
4.\;\;(P\>(P\>P))&\in \A_1,\;\T{ con }X:=Y:=P\NN
5.\;\;P\>P&m.p.\T{ da }3.,4.
	}
\end{proof}
\begin{prop}\label{zeroalloratutto}
	Data $X\in \Formab$,
	\eal{&\vdash X \= S\vdash X\;\;\forall S\(\Formab}
\end{prop}
\begin{proof}
	\BEGINpnecessaria
	
$\vdash X$ vuol dire che esiste una dimostrazione di $X$ del tipo
\eal{&X_1\NN
\vdots\NN
X_n=X
}
con $X_i\in \A$ oppure con $X_i$ ottenuto dai precedenti
$X_{1},\dots,X_{i-1}$ con il m.p. \\
In particolare possiamo dire che
\eal{&X_i\in \A \> X_i\in \A\U S}
e quindi possiamo considerare $X_1,\dots,X_n$ come una dimostrazione di $X$ a partire
da $S$.
	\END
	\BEGINsufficiente
	Basta scegliere $S=\0$.
	\END
\end{proof}
\begin{thm}di Deduzione di
	Tarski-Herbrand.\label{thmdeduzioneTarski}\label{thmdiTarski}\\
	Utilizzando un sistema di hilbert tale che $\A_1,\A_2\(\A$, si ha
	\eal{&S\vdash \formula{X\>Y} \= S\U\pgra{X} \vdash Y
	}
	Nota: questo teorema e' l'analogo del teorema \see{thmdideduzione}.
	Qui, pero', stiamo operando solamente sulla sintassi.\\
	Nota: in questo teorema non stiamo facendo uso degli assiomi
	$\A_3,\dots,\A_n$. Richiediamo solo gli assiomi $\A_1,\A_2$.\\

	In particolare, con $S=\0$ otteniamo:
	\eal{&\vdash \formula{X\>Y}  \= \pgra{X} \vdash Y
	}
\end{thm}
\begin{proof}
	\BEGINpnecessaria
Poiche' $S\vdash \formula{X\>Y} $, siamo riusciti a trovare una dimostrazione
da $S$ del tipo:
\eal{&X_1\NN
X_2\NN
\vdots\NN
X_n=\formula{X\>Y}
}
Se aggiungiamo $X$ alla fine:
\eal{&X_1\NN
X_2\NN
\vdots\NN
X_n=\formula{X\>Y}\NN
X
}
otteniamo una derivazione da $S\U\pgra{X}$. Infine, applicando m.p. alle
ultime due otteniamo la dimostrazione cercata:
\eal{&X_1\NN
X_2\NN
\vdots\NN
X_n=\formula{X\>Y}\NN
X\NN
Y
}
	\END
\BEGINsufficiente
Poiche' $S\U\pgra{X}\vdash Y $, siamo riusciti a trovare una dimostrazione
da $S\U\pgra{X}$ del tipo:
\eal{&Z_1\NN
Z_2\NN
\vdots\NN
Z_n=\formula{Y}
}
\step{}{
Per ogni $1\le i\le n$, dimostriamo che
\eal{&S\vdash \formula{X\> Z_i}
}
}
\begin{prova}
	Procediamo per induzione su $i$.
	\case{$i=1$}
	\begin{prova}
		Necessariamente si deve avere		$Z_1\in \A\U S
		\U\pgra{X}$, e quindi rientriamo
nel caso $Z_i\in \A\U S$ o nel caso $Z_i=X$ che analizziamo qui di seguito.
(Nota: questi due casi sono dimostrati senza far uso dell'ipotesi induttiva).
	\end{prova}
	\case{$j<i \> i$}
	\begin{prova}
Abbiamo tre possibili casi.
\case{$Z_i\in \A\U S$}
\begin{prova}
	Adoperiamo la seguente dimostrazione a partire da $S$:
	\eal{&1.\;\;Z_i&\in \A\U S \NN
	2.\;\;(Z_i\>(X\>Z_i)) & \in \A_1\NN
	3.\;\;X\>Z_i&\T{ m.p. da 1.,2.}
	}
\end{prova}
\case{$Z_i=X$}
\begin{prova}
	Per la prop \see{PalloraP}, conosciamo gia' la dimostrazione di
	\eal{&X\>X
	}
	Che possiamo anche scrivere come
	\eal{&X\> Z_i}
	Nota: la dimostrazione di $X\>X$ parte da $\0$ e quindi si puo'
	considerare come una dimostrazione che parte da $S$
	(\vedi{zeroalloratutto})
\end{prova}
\case{$Z_i$ ottenuto da $Z_h,Z_j$ con il m.p., dove $h,j<i$}
\begin{prova}
	Supponiamo che $Z_j=\formula{Z_h\> Z_i}$. Nella derivazione
	$Z_1,\dots,Z_n$ abbiamo quindi un pezzo del tipo:
	\eal{&Z_j=\formula{Z_h\>Z_i}\NN
	Z_h\NN
	Z_i
	}
	Per Hp induttiva riusciamo a dimostrare da $S$ le seguenti formule:
	\eal{&X\> Z_h\NN
	X\> Z_j
	}
	ovvero, abbiamo una dimostrazione a partire da $S$ del tipo:
	\eal{&\vdots\NN
	X\> Z_h\NN
	\vdots\NN
	X\> Z_j
	}
	da questa creiamo la seguente:
	\eal{&\vdots\NN
1.\;\;	X\> Z_h\NN
\;\;	\vdots\NN
2.\;\;	X\> Z_j=\formula{Z_h\>Z_i}\NN
3.\;\;	(X\>(Z_h\>Z_i)) \> ((X\>Z_h)\>(X\>Z_i)) & \in \A_2,\T{ con
	}X:=X,\;Y:=Z_h,\;Z:=Z_i\NN
4.\;\;	(X\>Z_h)\>(X\>Z_i)&\T{ m.p. da 2.,3.}\NN
	X\>Z_i&\T{ m.p. da 4.,1.}\NN
	}
Abbiamo cosi' trovato una dimostrazione di $X\>Z_i$ a partire da $S$.
\end{prova}
\end{prova}
\end{prova}
\qedstep
\begin{prova}
	Per il passo precedente riusciamo a costruire, a partire da $S$, la
	seguente dimostrazione:
	\eal{&X\> Z_1\NN
	X\>Z_2\NN
	\vdots\NN
	X\> Z_n=Y
	}
	Siamo cosi' riusciti a dimostrare $X\>Y$ a partire da $S$.
\end{prova}
\END
\end{proof}
\begin{prop}\label{NOTXXX}
	Data $X\in \Formab$,
	\eal{&\vdash \formula{(\NOT X \> X)\> X}}
\end{prop}
\begin{proof}
La formula $\NOT X \> X$ e' una $\beta$, possiamo quindi usare l'assioma
$\A_9$:
\eal{&1.\;\;
(\NOT \NOT X\>X) \> ((X\>X)\>((\NOT X \> X)\>X))&\in \A_9\NN
2.\;\;\NOT \NOT X\>X&\in \A_5\NN
3.\;\;(X\>X)\>((\NOT X \> X)\>X)&\T{ m.p. da 1.,2.}\NN
4.\;\;X\>X&\T{ dalla prop \see{PalloraP} }\NN
5.\;\;(\NOT X \> X)\>X&\T{ m.p da 3.,4.}\NN
}
\end{proof}
\begin{thm}\label{thmhilbert}
	di correttezza e completezza forte per i sistemi di Hilbert.\\
	\eal{&S\vdash X \= S\models X}
\end{thm}
\begin{proof}
	\BEGINpnecessaria
Supponiamo $\exists v:\;v(S)=\true$ e dimostriamo che $v(X)=\true$.\\
Per Hp esiste la seguente dimostrazione a partire da $S$:
\eal{&X_1\NN
\vdots\NN
X_n=X
}
Dimostriamo per induzione che $v(X_i)=\true$ per ogni $i$.
\case{$i=1$}
\begin{prova}
\eal{&X_1 \in \A\U S
	}
	\case{$X_1\in \A$}
	\begin{prova}
		\eal{&v(X_1)=\true}
		perche' i nostri assiomi sono delle tautologie.
	\end{prova}
	\case{$X_1\in S$}
	\begin{prova}
		\eal{&v(S)=\true \> v(X_1)=\true}
	\end{prova}
\end{prova}
\case{$j<i\> i$}
\begin{prova}
	\case{$X_i\in \A\U S$}
	\begin{prova}
		Analogamente a prima.
	\end{prova}
	\case{$X_i$ ottenuto da $X_h,X_j$ con il m.p, dove $h,j<i$}
	\begin{prova}
Supponiamo $X_j=\formula{X_h\> X_i}$, allora nella dimostrazione
$X_1,\dots,X_n$ abbiamo 
\eal{&\vdots\NN
X_j=\formula{X_h\> X_i}\NN
X_h\NN
X_i
}
Per Hp induttiva $v(X_h)=v(X_j)=\true$,
\eal{&v(X_j) \ubrace{=}{\T{definizione di valutazione}}  \pton{\ubrace{v(X_h)}{=\true}\> v(X_i)} =\true
\;\>\;v(X_i)=\true}
	\end{prova}
\end{prova}
	\END
	\BEGINsufficiente
	Sia dato il seguente insieme:
	\eal{&C=\pgra{W\( \Formab\;|\;W\not\vdash X}}
	Supponiamo per assurdo che $S\not \vdash X$, ovvero $S\in C$.
	\step{}{Dim. che $S\U\pgra{\NOT X}\in C$}
	\begin{prova}
		Infatti, 
		se per assurdo $ S\U\pgra{\NOT X} \vdash X $ abbiamo
		\eal{&S\U\pgra{\NOT X} \vdash X
		\ubrace{\=}{\see{thmdeduzioneTarski}} 
		S\vdash \formula{\NOT X \> X}
		}
		abbiamo quindi la seguente dimostrazione di $\NOT X \> X$ a
		partire da $S$:
		\eal{&X_1\NN
		\vdots\NN
		X_n=\formula{\NOT X \> X}}
		E per la prop \see{NOTXXX}, possiamo estenderla cosi':
		\eal{&X_1\NN
                \vdots\NN
1.\;\;                X_n=\formula{\NOT X \> X}\NN
2.\;\;		(		\NOT X \> X ) \> X&\T{ per la \see{NOTXXX}}\NN
3.\;\;X&\T{ m.p. da 1. e 2.}
		}
Abbiamo cosi'  dimostrato $X$ a partire da $S$. Assurdo contro $S\in C$.
	\end{prova}
	\step{}{Dimostriamo che $C$ e' una proprieta' di consistenza
	proposizionale (\vedi{defpropcons})}
	\begin{prova}
		Sia $W\in C$ e dimostriamo che rispetta le condizioni
		\see{defpropcons}
		\step{}{$\f\notin W$}
		\begin{prova}
			Se per assurdo, $\f\in W$, possiamo costruire la
			seguente dimostrazione a partire da $W$:
			\eal{&\f&\in W\NN
			\f\> X &\in \A_3\NN
			X&\T{ m.p.}
			}
			e quindi $W\vdash X$, assurdo contro $W\in C$
		\end{prova}
		\step{}{$\NOT \true\notin W$}
		\begin{prova}
			Analogamente a prima, costruiamo la seguente
			dimostrazione di $X$:
			\eal{&1.\;\;\NOT \t &\in W\NN
2.\;\;			\NOT \t \> \t & \in \A_4\NN
3.\;\;			\t&\T{ m.p. }\NN
4.\;\;			\t \> (\NOT \t \> X)&\in \A_6\NN
5.\;\;			\NOT \t \> X&\T{ m.p}\NN
6.\;\;			X&\T{ m.p. da 1.,5.}
			}
			Quindi $W\vdash X$ assurdo.
		\end{prova}
		\step{}{$P\in \Pvar \> P\notin W \T{ oppure } \NOT P\notin W $}
		\begin{prova}
			Supponiamo per assurdo che $P,\NOT P\in W$, allora
			\eal{&P& \in W\NN
			\NOT P&\in W\NN
			P \> (\NOT P \> X)&\in \A_6\NN
			\NOT P \> X&\T{ m.p.}\NN
			X&\T{ m.p.}
			}
			Quindi $W\vdash X$ assurdo.
		\end{prova}
		\step{}{$\NOT \NOT Z\in W \> W\U\pgra{Z}\in C$}
		\begin{prova}
			Supponiamo per assurdo che  $W\U\pgra{Z}\vdash X$,
			\eal{&W\U\pgra{Z}\vdash X
			\ubrace{\=}{\see{thmdeduzioneTarski}} W
			\vdash \formula{Z\> X}
			}
			Allora esiste una dimostrazione di $Z\>X$ a partire da
			$W$:
			\eal{&X_1\NN
			\vdots\NN
			X_n=Z\>X
			}
			e la estendiamo cosi'
			\eal{&X_1\NN
                        \vdots\NN
                       1.\;\; X_n=Z\>X\NN
2.\;\;			\NOT \NOT Z & \in W\NN
3.\;\;			 \NOT \NOT Z \> Z&\in \A_5\NN
4.\;\;			 Z&\T{ m.p. da 2.,3.}\NN
X&\T{ m.p. da 1.,4.}
			}
			Quindi $W\vdash X$. Assurdo.
		\end{prova}
		\step{}{$\a\in W\> W\U\pgra{\a_1,\a_2}\in C$}
		\begin{prova}
		Come prima:
		\eal{& W\U\pgra{\a_1,\a_2} 
		\vdash X  \ubrace{\=}{\see{thmdeduzioneTarski}} 
		W\vdash \formula{\a_1\>(\a_2\>X)}
		}
		Quindi,
		\eal{&X_1\NN
		\vdots\NN
		X_n=\formula{\a_1\>(\a_2\>X)}
		}
		che estendiamo con
		\eal{&X_1\NN
		\vdots\NN
		X_n=\formula{\a_1\>(\a_2\>X)}\NN
		\a&\in W\NN
		\a\>\a_1&\in \A_7\NN
		\a\>\a_2&\in \A_8\NN
		\a_1&\T{ m.p. }\NN
		\a_2&\T{ m.p. }\NN
		\a_2\>X&\T{ m.p. }\NN
		X&\T{ m.p. }
		}
Assurdo.
		\end{prova}
		\step{}{$\b\in W\> W\U\pgra{\b_1}\in C\T{ oppure }
		W\U\pgra{\b_2}\in C$}
		\begin{prova}
			Supponiamo per assurdo che
			\eal{&W\U\pgra{\b_1}\vdash X\NN
			W\U\pgra{\b_2}\vdash X
			}
			Per il thm \see{thmdeduzioneTarski}
\eal{&W\vdash \b_1\> X\NN
			W\vdash \b_2\> X
			}
			Quindi
			\eal{&
			X_1\NN
			\vdots\NN
1.\;\;		\b_1\> X\NN
2.\;\;		\b_2\> X\NN
3.\;\; \b & \b\in W\NN
4.\;\;(\b_1\>X) \> ((\b_2\>X)\>(\b\>X))&\in \A_9\NN
5.\;\;(\b_2\>X)\>(\b\>X)&\T{ m.p. da 1.,4. }\NN
6.\;\;\b\>X&\T{ m.p. da 2.,5. }\NN
7.\;\;X&\T{ m.p. da 3.,6.}
}
Assurdo.
		\end{prova}
	\end{prova}
	\qedstep
	\begin{prova}
		\eal{&\sist{C\T{ proprieta' di consistenza}\\
		S\U\pgra{\NOT X }\in C }
		\ubrace{\>}{\see{thmdiesistenzamodello} } S\U\pgra{\NOT X}\T{
		soddisfacibile } \> \exists v\in \V:\;v(S)=\t,\;v(X)=\f
		}
		assurdo contro
		$S\models X$
	\end{prova}
	\END
\end{proof}

\subsection{Sistema di deduzione naturale}
\def\scatola#1{\begin{tabular}[h]{|c|}\hline
	#1\\
	\hline
\end{tabular}
}
\def\SCATO#1{\begin{tabular}[h]{c}
	#1
\end{tabular}
}
\def\scacom#1{\begin{tabular}[h]{|c|r}\hline
	#1\\
	\hline
\end{tabular}
}
\def\SCACOM#1{\begin{tabular}[h]{cr}
	#1
\end{tabular}
}

\begin{defn}\label{defdednaturale}
	Una dimostrazione di $X\in \Formab$ in un sistema di deduzione
	naturale a partire da $S\(\Formab$ e' una sequenza  di scatole
	annidate del
	tipo:
	\eal{&\SCATO{\scatola{*\\
	      *\\
	      \scatola{ * \\
	       *\\
	       \scatola{ *\\
	        *\\
	        \vdots\\
	        *}\\
	      	   *
		   }\\
		   *\\
	      \scatola{ *\\
	       *\\
	       *\\
	        \vdots\\
	        *}
	      }\\
	      *\\
	      \vdots
	      \\
	      X
	      }
	}
	Dove ogni $*$ e' una qualsiasi formula di $\Formab$. L'ultima formula
	della sequenza e' $X$.\\
	Per costruire la sequenza, 
	vengono rispettate le seguenti condizioni:
	\begin{itemize}
		\item Se $Y$ e'  formula della sequenza, allora si verifica
			una delle seguenti condizioni (che chiamiamo
			$C1,C2,C3$):
			\begin{enumerate}
				\item $Y\in S$
				\item oppure, $Y$  e' derivata tramite le
					regole di deduzione dalle formule
					attive. Le formule attive, sono tutte
					le formule della sequenza che stanno
					sopra $Y$ e che non stanno in scatole
					gia' chiuse. Ad esempio, nella
					sequenza
					\SCATO{A\\\scatola{B\\
					\scatola{C\\
					D } \\
					E\\
					Y }}
					Le formule attive per $Y$ sono
					$A,B,E$.
				\item oppure, $Y$ e' la prima formula di una
					scatola. (In pratica, all'inizio di
					una scatola possiamo inserire
					qualsiasi formula).
			\end{enumerate}
	\end{itemize}
	Se esiste una dimostrazione per $X$ a partire da $S$ scriveremo
	\eal{&S\vdash X
	}

	Le regole di deduzione naturale sono le seguenti:
	\eal{&D1.\;\;\f \vdash  X \;\;\;\forall X\in \Formab\NN
	D2.\;\; \vdash \t\NN
	D3.\;\;X,\;\NOT X \vdash \f\;\;\;\forall X\in \Formab\NN
	D4.\;\;\a \vdash \a_1,\a_2\;\;\;\forall \a \in \Forma\NN
	D5.\;\;\a_1,\a_2\vdash \a\;\;\;\forall \a \in \Forma\NN
	D6.\;\;\NOT \b_1,\;\b \vdash \b_2\;\;\;\forall \b \in \Formb\NN
	D7.\;\;\NOT \b_2,\;\b \vdash \b_1\;\;\;\forall \b \in \Formb\NN
	D8.\;\;\scatola{$\NOT \b_1$\\\vdots\\$\b_2$} \vdash \b\;\;\forall \b \in \Formb
	\NN
	D9.\;\;\scatola{$\NOT \b_2$\\\vdots\\$\b_1$} \vdash \b\;\;\forall \b \in
	\Formb\NN
	D10.\;\;\scatola{X\\\vdots\\$\f$} \vdash \NOT X\;\;\forall X\in
	\Formab\NN
	D11.\;\;\scatola{$\NOT X$\\\vdots\\$\f$} \vdash  X\;\;\forall X\in \Formab
	}
	La $D4$ viene chiamata $\a$-eliminazione, la $D5$ viene chiamata
	$\a$-introduzione. Analogamente, le $D6,D7,D8,D9$ sono chiamate
	$\beta$-eliminazione e $\beta$-introduzione.

	Queste regole dicono che se a un certo punto della dimostrazione
	abbiamo una formula che rispetta un loro primo membro, allora possiamo
	aggiungere alla dimostrazione il relativo secondo membro,
	\underline{immediatamente} dopo il primo membro. Ad esempio,
	\SCATO{\scatola{$\NOT \b_1$\\$\vdots$\\$\b_2$}\\$\b$}
\end{defn}
\begin{prop}\label{propdednatalcunecose}
	\eal{&1.\;\;\NOT Y,\;\;\formula{X\>Y} \vdash \NOT X\qq \T{ [si chiama
	Modus Tolles}\NN
	2.\;\;\NOT \NOT X,\;\;\formula{X\> Y } \vdash Y\qq \T{ [si chiama
	Quasi Modus Ponens]}\NN
	3.\;\;X,\;\formula{X\>Y} \vdash Y\qq \T{ [modus ponens]}\NN
	4.\;\;\NOT \NOT X \vdash X\NN
	5.\;\;  X\vdash \NOT \NOT X\NN
	6.\;\;\scatola{X\\\vdots\\Y} \vdash \formula{X\>Y}
	}
\end{prop}
\begin{proof}
	\step{p1}{Dim $4.$}
	\begin{prova}
		\eal{&
		\SCACOM{$\NOT \NOT X$ & C1\\
		\scatola{ $\NOT X$\\
		$\f$
		}&C3,D3\\
		X & D11
		}
		}
	\end{prova}
	\step{p11}{Dim $5.$}
	\begin{prova}
		\eal{& 
		\SCACOM{X & C1\\
		\scatola{$\NOT X $\\
		$\f$ }
		&
		 C3,
		D3\\
$		\NOT \NOT  X$ &D11
		}
		}
	\end{prova}
	\step{}{Dim $1.$}
	\begin{prova}
\eal{&1.\;\;\NOT Y & C1\NN
2.\;\;X\> Y & C1\NN
\T{Nota: $X\>Y$ e' una $\beta$ con componenti $\NOT X,  Y$ } \NN
3.\;\;\NOT X &D7 \T{ applicata a }1.,2.
		}
	\end{prova}
	\step{p2}{Dim $3.$}
	\begin{prova}
		Come prima:
\eal{&1.\;\;X & C1\NN
2.\;\;\NOT \NOT X & \T{ per il \sref{p11}}\NN
3.\;\;\ubrace{X\> Y}{\b_1=\NOT X,\;\;\b_2=Y}& C1\NN
4.\;\; Y &D6 \T{ applicata a }2.,3.
}
	\end{prova}
	\step{}{Dim $2.$}
	\begin{prova}
		Come prima:
\eal{&1.\;\;\NOT \NOT X & C1\NN
2.\;\;X &\T{ per il \sref{p1}}\NN
3.\;\;X\> Y & C1\NN
4.\;\;Y & \T{ per il \sref{p2} applicato a 2.,3.}
}
	\end{prova}
	\step{}{Dim $6.$}
	\begin{prova}
		\eal{&1.\;\;
		\scatola{$\NOT \NOT X$\\
		X (per il \sref{p1})\\
		Y (per Hp)
		}\NN
		2.\;\;\NOT X  \|  Y &D8
		}
		e la $2.$ e' proprio $X\>Y$\\
		Nota: nella scatola abbiamo potuto scrivere $X,Y$ perche' per
		ipotesi abbiamo gia' una  scatola valida del tipo $X,\dots,Y$.
		Quindi, in quest'ultima dimostrazione e' come se avessimo
		ricopiato la scatola dell'ipotesi.
	\end{prova}
\end{proof}
\begin{thm}\label{thmdeduzionenaturale}
	\eal{&S\vdash X \= S\models X}
\end{thm}
\begin{proof}
	\BEGINpnecessaria
	Supponiamo che $v(S)=\t$ e dimostriamo che $v(X)=\t$.\\
	Per Hp esiste la dimostrazione di $X$, che sara' una sequenza di
	formule $X_1,\dots,X_n$ con $X_{n}=X$, opportunamente inscatolata.\\
	Consideriamo tutte le assunzioni precedenti a $X_i$:
	\eal{&A_i=\pgra{\T{tutte le formule $X_j$ poste ad inizio di una
	scatola in cui $X_i$ e' presente, con $j\le i$}}
	}
	Dimostriamo per induzione che $A_i \U S\models X_i$.
	\case{$i=1$}
	\begin{prova}
		Per le condizioni $C1,C2,C3$, abbiamo solo tre casi:
		\eal{&X_1\in S\NN
		X_1\T{ e' una assunzione}\NN
		X_1=\t\T{ e' stata ricavata con la regola $D_2$}
		}
		Nei primi due casi:
		\eal{&X_1\in A_1\U S\> A_1\U S \models X_1}
		Nell'ultimo:
		\eal{&v(X_1)=\t\;\;\forall v\in \V}
	\end{prova}
	\case{$m<n \> n$}
	\begin{prova}
		Se $X_n$ e' una assunzione oppure $X_n\in S$, ragionando come
		prima abbiamo la tesi. Supponiamo quindi $X_n\notin
		S,\;X_n\notin A_n$.\\
		Allora, $X_n$ e' stata ricavata con la $C_2$, ovvero e' stata
		applicata qualche regola $D_i$.\\
		Tutte le regole $D_1,D_3,D_4,D_5,D_6,D_7$ preservano la
		soddisfacibilita', ad esempio, la $D_5$:
		\eal{&X_n=\a\NN
		\a_1=X_h,\;\a_2=X_j,\;\;h<j<n\NN
		\T{Hp induttiva} \> S\U A_{h}\models \a_1,\;\;S\U
		A_{j}\models\a_2\;\;(*)}
		Per utilizzare la $D_5$ le $\a_1,\a_2$ devono essere formule
		attive per $X_n$, ovvero non devono stare in scatole chiuse
		in cui $X_n$ non e' presente. In altre parole, 
		\eal{&A_h,A_j\(A_n}
		quindi
		\eal{& 
		v(S\U A_n)=\t  \ubrace{\>}{A_h,A_j\(A_n} v(S\U A_h)=v(S\U
		A_j)=\t  \ubrace{\>}{(*)} 
		v(\a_1)=v(\a_2)=\t \> v(\a)=\t \= v(X_n)=\t\NN
		\T{Quindi } \;S\U A_n \models X_n
		}
		Analogamente si vede per gli altri $D_i,\;i\le 7$.\\
		Esaminiamo una $D_i$ con una scatola, ad esempio la $D_9$. In
		questo caso $X_n=\b$, e immediatamente prima di $X_n$, e'
		presente la scatola
		\scatola{$\NOT \b_2$\\$\vdots$\\$\b_1$}\\
		Con $\b_1=X_m$, $m=n-1$. Per Hp induttiva abbiamo:
		\eal{&S \U A_{m} \models \b_1\;\;(1)
		}
		Per definizione di $A_{m}$ si ha
		\eal{&\NOT \b_2 \in A_{m}}
		Poiche' la scatola e' chiusa si ha
		\eal{&
		A_{m}\-\pgra{\NOT \b_2}=
		A_{m+1}=A_n \= A_n\U \pgra{\NOT \b_2 }\) A_m\;\;(2)
		}
		Quindi si $v\in \V:\;\;v(A_n\U S)=\t$, 
		\case{$v(\NOT \b_2)=\t$}
		\begin{prova}
		\eal{&v(A_n \U S)=v(\NOT \b_2)=\t \> v(A_n\U S \U \pgra{\NOT
		\b_2 })
		=\t  \ubrace{\>}{(2)} v(A_m \U S)=\t  \ubrace{\>}{(1)}
		v(\b_1)=\t \> v(\b)=\t \= v(X_n)=\t
		}		
		\end{prova}
		\case{$v(\NOT \b_2)=\f$}
		\begin{prova}
			\eal{&
			v(\NOT \b_2)=\f \= v(\b_2)=\t \> v(\b)=\t}
		\end{prova}
		In entrami i casi $v(X_n)=\t$, e quindi per l'arbitrarieta' di
		$v\in \V$ abbiamo dimostrato che
		\eal{&A_n\U S\models X_n
		}
	Nota\footnote{In  pratica, quando abbiamo una scatola chiusa, non
	importa piu' quale valutazione usiamo per le sue assunzioni}.\\
	Analogamente si procede per i casi $D8,D10,D11$.\\
	Poiche' alla fine della dim tutte le scatole sono chiuse, $A_n=\0$. In
	conclusione
	\eal{&A_n=\0 \> S\models X_n=X}
	\end{prova}
	\END
	\BEGINsufficiente
	Supponiamo per assurdo che $S\not \vdash X$.\\
	Sia 
	\eal{&C=\pgra{W\in \Formab\;|\;W\not \vdash X}
	}
	\step{}{Dim. $S\U\pgra{\NOT X}\in C$}
	\begin{prova}
		Se per assurdo 
		\eal{&S\U \pgra{\NOT X } \vdash X
		}
		sia avrebbe una dimostrazione del tipo
		\SCATO{A\\\vdots\\
$		\NOT X$\\
		\vdots\\
		X}
		Allora, per la $D3,$, possiamo scrivere:
		\SCATO{A\\\vdots\\
$		\NOT X$\\
		\vdots\\
		X\\
$		\f$
		}
		Utilizzando questa sequenza con la $D11$, possiamo costruire la seguente
		dimostrazione  $S\vdash X$:\\
		\begin{center}
\SCATO{	\scatola{$\NOT X$\\A\\\vdots\\
		$\NOT X$\\
		\vdots\\
		X\\
		$\f$
		}\\
		X
		}
		\end{center}
		Assurdo contro $S\not\vdash X$.
	\end{prova}
	\step{}{Dim. $C$ e' una proprieta' di consistenza proposizionale}
	\begin{prova}
		\begin{enumerate}
			\item Se per assurdo $P,\NOT P\in W$, allora possiamo
				costruire la seguente dimostrazione:
				\eal{&P\NN
				\NOT P\NN
				\f & D3\NN
				X&D1}
				Quindi $W\vdash X$  assurdo.
			\item Analogamente, si deve avere $\f,\NOT \t\notin W$
			\item Supponiamo $\NOT \NOT Z\in W$ e supponiamo per
				assurdo che $W\U\pgra{Z}\notin C$. Allora,
				esiste la seguente dimostrazione
				$W\U\pgra{Z}\vdash X$:
				\eal{&Z\NN
				\vdots\NN
				X
				}
Possiamo costruire la seguente:
				\eal{&\NOT \NOT Z\NN
				Z&\T{ prop }\see{propdednatalcunecose}\NN
				X&\T{ per la dim. $W\U\pgra{Z}\vdash X$ di
				prima }
				}
				Quindi $W\vdash X$, assurdo.
			\item Sia $\a\in W$ supponiamo per assurdo che
				$W\U\pgra{\a_1,\a_2}\notin C$.\\
				Procedendo come prima e usando la $D4$
				otteniamo l'assurdo.
			\item Sia $\b\in W$ supponiamo per assurdo che
				$W\U\pgra{\b_1}\notin C,\;\;W\U\pgra{\b_2}\notin C$.\\
				Abbiamo quindi due dimostrazioni:
				\SCATO{$\b_1$\\
				\vdots\\
				X
				} 
				e
				\SCATO{$\b_2$\\
				\vdots\\
				X}
			Sfruttando queste due, costruiamo la seguente
			\begin{center}
				\SCATO{\scatola{$\NOT X$\\
				\scatola{$\b_1$\\
				X\; (perche' $W\U\pgra{\b_1}\vdash X$)\\
			$	\f$
				}\\
			$	\NOT \b_1$ (D10)\\
				$\b$ ($\b\in W$)\\
				$\b_2$ (D6)\\
				X\; (perche' $W\U\pgra{\b_2}\vdash X$)\\
				$\f$ (D3 su $\NOT X,X$)
				}\\
				X (D11)
				}
			\end{center}
				Abbiamo cosi' dimostrato $W\vdash X$. Assurdo.
		\end{enumerate}
	\end{prova}
	\END
\end{proof}

\subsection{Procedura di Davis Putnam}
\begin{defn}\label{defSLit}
Sia $S$ un insieme di disgiunzioni letterali (clausole) e sia $L\in \Lit$
. Definiamo il seguente insieme:
\eal{&S_L\definizione{=}\pgra{C\-\pgra{\ove L}\;|\;C\in S,\;\ove L\in
C,\;L\notin C}\U \pgra{C\in S\;|\;\ove L \notin C,\;L\notin C}\NN
\T{ dove }\ove{L}\T{ e' la negazione di $L$ (vedi
	\see{defoperatonegazione}), con la seguente modifica: }\ove{\NOT X}=X\NN
}
In altre parole, $S_L$ e' ricavato da $S$ includendo tutte le clausole che non
avevamo $L$ ne' $\ove L$ e eliminando $\ove L$ da quelle che lo contenevano.\\

Il nostro obbiettivo sara' quello di considerare $S$ come una CNF.
Cosi' facendo, $S_L$ si puo' interpretare  come la CNF ottenuta da $S$ ponendo
$L=\t$ ed effettuando opportune semplificazioni.
\end{defn}
\begin{lem}\label{lemmaSandLeqSLandL}
Sia $S$ un insieme di clausole, $L\in \Lit$ e sia $\langle S\rangle $ la
congiunzione generalizzata $\langle X_1,\dots,X_n\rangle $ con
$S=\pgra{X_1,\dots,X_n}$. Si ha
\eal{&\models \formula{\langle S\rangle  \& L \=
\langle S_L\rangle  \& L}}
\end{lem}
\begin{proof}
	Per la dimostrazione di questa tautologia facciamo ricorso alla prop
	\see{thmdideduzione}: dimostreremo le seguenti:
	\eal{&
	\formula{\langle S\rangle  \& L} \models \formula{\langle S_L\rangle \& L}\NN
\formula{\langle S_L\rangle  \& L}\models \formula{\langle S\rangle  \& L} 
	}
\BEGINpnecessaria
Il primo punto chiave e' osservare che vale la seguente:
\eal{&(\ove L  \|  X_1  \|  \dots  \|  X_n) \& L \= 
(X_1  \| \dots  \| X_n)  \& L}
In pratica, se $L$ e' vera, allora possiamo eliminare $\ove L$ dalla
disgiunzione: $\ove L$ e' falsa e quindi e' inutile includerla nella
disgiunzione.\\
Il secondo punto chiave e':
\eal{&(L \| X_1  \| \dots  \|  X_n )
 \&  (Y_1 \| \dots  \| Y_m)  \& L\= (Y_1 \| \dots  \| Y_m)  \& L
}
In altre parole, se abbiamo una disgiunzione in cui un elemento e' vero,
allora possiamo eliminare l'intera disgiunzione perche' sappiamo che e' tutta
vera.\\

Procediamo in dettaglio. Sia $v$ tale che 
\eal{&v\models \formula{\langle S\rangle  \& L}\;\;(1)
}
dimostriamo che
\eal{&v\models \langle S_L\rangle  \& L}
Si ha
\eal{&(1) \> v(C)=v(L)=\t \;\;\forall C\in S\;\;(1.1)
}
Sia $C=\pgra{Y_1,\dots,Y_n}\in S:\;\;\exists i:\;\ove L=Y_i$
\eal{&v(L) =\t \> v(\ove L)=\f\= v(Y_i)=\f \NN
(1.1) \> v(C)=\t \> \exists j:\;v(Y_j)=\t\NN
\qq \> j \neq i\NN
\qq \> v(C\-\pgra{\ove L})=\t\qq \T{  Nota: stiamo considerando $C$ come
disgiunzione }\;\;(2)
}
Sia $C\in S:\;\;\ove L\notin C,\;L\notin C$
\eal{&(1.1) \> v(C)=\t\;\;(3)
}

Per la $(2),(3)$ e per la definizione di $S_L$ abbiamo
\eal{&\forall C'\in S_L\;\;v(C')=\t}
e quindi la tesi.
\END

\BEGINsufficiente
Analogamente.
\END
\end{proof}
\begin{lem}\label{lemmaSSLSoveL}
	Sia $S$ un insieme di clausole e $L$ un letterale
	\eal{&S\T{ soddisfacibile }	\= S_L\T{ soddisfacibile }  \| 
	S_{\ove L}\T{ soddisfacibile}}
\end{lem}
\begin{proof}
	\BEGINpnecessaria
	Supponiamo $\exists v\in \V:\;\;v(S)=\t$.\\
	Nota: con $v(S)=\t$ intendiamo $v(\langle S\rangle )=\t$, ovvero
	$v(C)=\t\;\;\forall C\in S$.\\
	Abbiamo due casi
	\case{$v(L)=\t$}
	\begin{prova}
		Allora,
		\eal{&v(S)=\t,\;v(L)=\t  \ubrace{\>}{\see{lemmaSandLeqSLandL}} 
		v(S_{L})=\t 
		}
		quindi $S_L$ e' soddisfacibile.
	\end{prova}
	\case{$v(L)=\f$}
	\begin{prova}
		Allora
	\eal{&v(L)=\f \> v(\ove L )=\t
	}
	e quindi per il lemma \see{lemmaSandLeqSLandL} si ha
	\eal{&v(S_{\ove L})=\t
	}
	\end{prova}
	\END
	\BEGINsufficiente
	Supponiamo $S_L$ soddisfacibile: $\exists v:\;\;v(S_L)=\t$. 
	\case{$v(L)=\t$}
	\begin{prova}
		Basta usare il lemma \see{lemmaSandLeqSLandL}
	\end{prova}
	\case{$v(L)=\f$}
	\begin{prova}
	Poiche' in $S_L$ non esistono clausole contenenti $L,\ove L$, la
	seguente valutazione soddisfera' ancora $S_L$:
	\eal{&v_L(P)=\sist{v(P)&P\notin \pgra{L,\ove L}\\
			   \t&P=L\\
			   \f&P=\ove L
			  }
	}
	e in piu' soddisfera' anche $L$. Quindi, applicando ancora il lemma
	\see{lemmaSandLeqSLandL} si ha la tesi.
	\end{prova}
	\END
\end{proof}
\begin{lem}\label{lemaSsoddsoloconLalloraSLsoddisf}
	Sia $S$ un insieme di clausole e $L$ un letterale.
	Supposto $\pgra{L} \in S$ (ovvero la clausola singola $\pgra{L}$ sta'
	in $S$), si ha
	\eal{&S\T{ soddisf } \= S_{L}\T{ soddisf }
	}
	In altre parole, se in una CNF abbiamo la clausola $[L]$, per
	soddisfare la CNF siamo costretti a porre $v(L)=\t$.
\end{lem}
\begin{proof}
	\BEGINpnecessaria
	\eal{&S\T{ soddisf}\>\exists v\in \V:\;\;
	v(S)= \t \> v(\pgra{L}) =\t \> v(L)=\t\NN
	v(S)=\t,\;v(L)=\t  \ubrace{\>}{\see{lemmaSandLeqSLandL}}  v(S_{L})=\t
	}
	\END
	\BEGINsufficiente
	\eal{&S_L\T{ soddisf }  \ubrace{\>}{\see{lemmaSSLSoveL}} 
	S\T{ soddisf }}
	\END
\end{proof}
\begin{lem}\label{lemletteraleunicoinSalloraSLsoddisf}
	Sia $S$ un insieme di clausole, $L$ un letterale.
	Supposto che \eal{&1.\;\;\exists C\in S:\;L\in C\NN
	2.\;\;\forall C\in S\;\;\ove L\notin C}
	 si ha
	\eal{&S\T{ soddisf } \= S_{L}\T{ soddisf }
	}
\end{lem}
\begin{proof}
	\BEGINpnecessaria
In questo caso, per definizione di $S_L$ si ha
	\eal{&\forall C\in S\;\;\ove L\notin C
	\ubrace{\>}{\T{def. di $S_L$}}  S_L=\pgra{C\in S\;|\;\ove L\notin C,\;L\notin C} \( S\NN
	\sist{S_L\(S\\
	S\T{ soddisf.}} \> S_L\T{ soddisf.}}
	\END
	\BEGINsufficiente
	\eal{&S_L\T{ soddisf }  \ubrace{\>}{\see{lemmaSSLSoveL}} 
	S\T{ soddisf }}
	\END
\end{proof}
\begin{lem}\label{lemmaSLC1inC2}
	Sia $S$ un insieme di clausole.
	Supposto che \eal{&\exists C,C'\in S:\;\;C'\supsetneq C}
	 si ha
	 \eal{&S\T{ soddisf } \= S\-\pgra{C'}\T{ soddisf }
	}
\end{lem}
\begin{proof}
	\BEGINpnecessaria
	Basta osservare che
	\eal{&S\-\pgra{C'} \( S
	}
	\END
	\BEGINsufficiente
	\eal{&C \neq C',\;C\in S \>   C\in S\-\pgra{C'}\NN
	v(S\-\pgra{C'})=\t  \ubrace{\>}{ 
	C\in S\-\pgra{C'} } v(C)=\t   \ubrace{\=}{C\T{ e' una disgiunzione }} 
	\exists X\in C:\;\;v(X)=\t 
	\ubrace{\>}{X\in C\( C',\;\;C'\T{ disgiunzione}} v(C')=\t 
	}
	\END
\end{proof}
\begin{defn}
	Procedura di Putnam per insiemi di clausole.\\
	Sia $S$ un insieme di clausole, con $|S|<\8$.
	\begin{enumerate}
		\item Per ogni $C\in S$
			\begin{enumerate}
				\item eliminiamo $C$ da $S$ se $\t\in C$
				\item eliminiamo $C$ da $S$ se $A,\NOT A\in
					C$
				\item eliminiamo tutti i simboli $\f$ da $C$
				\item eliminiamo tutte le ripetizioni di
					letterali contenute in $C$
					(Nota\footnote{in realta', se
					consideriamo $C$ un insieme, non
					sarebbe necessario utilizzare questa
					regola, ma nelle implementazioni
					algoritmiche, si deve utilizzare})
			\end{enumerate}
		\item Cancelliamo da $S$ tutte le clausole ripetute.
		\item Se $\exists C,C'\in S:\;\;C'\supsetneq C$ allora si
			sostituisce $S$ con $S\-\pgra{C'}$
		\item
			Per ogni letterale $L$ contenuto in qualche clausola
			di $S$:
			\begin{enumerate}
\item  Se $\pgra{L} \in S$ si sostituisce $S$ con $S_L$.
		\item Se e' vero che
\eal{&\exists C\in S:\;L\in C\NN
\forall C\in S\;\;\ove L\notin C}
allora si sostituisce	$S$ con $S_L$.
\item Se i due casi di sopra non si sono verificati, si sostituisce $S$ con
	$S_L  \|  S_{\ove L}$. (regola di splitting).
			\end{enumerate}
	\end{enumerate}
Iterando la procedura si otteniene un albero del tipo
\ctree{[S 
[$S_L$
		  [$S_{LL'}$
		    [$S_{LL'L''}$ 
			    [$\pgra{[]}$]
		    ]
		    [$S_{LL'\ove {L''}}$ 
			[ 
			 [$\vdots$ [$\0$]]
			]
		    ]
		  ]
	  ]
	  [$S_{\ove L}$
		  [$S_{\ove LL'}$
		    [$S_{\ove LL'L''}$ 
			    [$\pgra{[]}$]
		    ]
		    [$S_{\ove LL'\ove {L''}}$ 
			[ 
			 [$\vdots$ [$\0$]]
			]
		    ]
		  ]
	  ]
	  ]
%	
%	 [$S_{\ove \ove L}$
%	  [$S_{\ove LL'}$
%		    [$S_{\ove LL'L''}$ 
%			    [$\pgra{[]}$]
%		    ]
%		    [$S_{\ove LL'L''\ove {L''}}$ 
%			[ 
%			 [$\vdots$ [$\0$]]
%			]
%		    ]
%		  ]
%	 ]
%	 ]
	 }
Chiaramente si crea una biforcazione quando si usa la regola dello splitting.

Un albero di Putnam per la formula $X$ viene formato cosi':
	 \begin{enumerate}
		 \item $\NOT X$ viene convertito in CNF (\vedi{XtoCNF}) e $S$
			 e' il relativo insieme di clausole
		 \item Viene creato l'albero di Putnam per $S$.
	 \end{enumerate}
	 Diremo che $\vdash X$, quando esiste un albero di Putnam per $\NOT X$
	 tale che tutte le foglie dell'albero (i nodi finali) sono
			 insiemi $\pgra{[]}$, ovvero contengono solo la
			 clausola vuota.
\end{defn}
\begin{prop}\label{sadasdadasddsfq}
	Un albero di Putnam e' finito (ovvero, la procedura di Putnam ha
	termine).\\
	Una foglia di un albero di Putnam e' $\pgra{[]}$ oppure $\0$
	(l'insieme vuoto).
\end{prop}
\begin{proof}
	\step{}{Dim. $2.$}
	\begin{prova}
		Supponiamo che l'albero sia finito.\\
		Se l'albero e' finito, vuol dire che la procedura di Putnam ha
		avuto termine e quindi non abbiamo piu' potuto applicare
		alcuna regola.\\
		Supponiamo per assurdo che
		una foglia $S'$ non sia ne' $\pgra{[]}$ ne' $\0$. Allora, poiche'
		non e' $\0$, contiene una clausola $C$. 
		Poiche'$S' \neq \pgra{[]}$, si ha che $C \neq []$.
		\eal{&C \neq [] \> \exists L\in C\^\Lit
		}
		Possiamo cosi' applicare la regola $4.$ ad $S'$ rispetto alla
		clausola $L$.\\
Questo
 e' assurdo contro l'ipotesi che l'albero e' finito.
	\end{prova}
	\step{}{Dim. $1.$}
	\begin{prova}
		L'albero e' finito perche' la procedura di Putnam elimina un
		letterale ad ogni passo. E i letterali iniziali sono finiti.
	\end{prova}
\end{proof}
\begin{thm}
	\eal{&\vdash X \= \models X}
\end{thm}
\begin{proof}
	\BEGINpnecessaria
	Se per assurdo $ \not\models X$ allora esiste
	$v\in \V:\;v(\NOT X)=\t$.\\
	Se $S$ e' la CNF di $\NOT X$, si ha sempre $v(S)=\t$.\\
	Allora, creando l'albero su 
	$S$ e applicando i lemmi che abbiamo
	visto in precedenza (
	\see{lemmaSLC1inC2}, \see{lemmaSSLSoveL},
	\see{lemaSsoddsoloconLalloraSLsoddisf}, \see{lemmaSSLSoveL}) si vede
	che tutti gli insiemi-nodi dell'albero sono soddisfacibili.\\
	In particolare, poiche' $\vdash X$, le foglie dell'albero saranno del
	tipo $\pgra{[]}$ e quindi, essendo anch'esse soddisfacibili, si avra':
	\eal{&v([])=\t}
	assurdo contro definizinoe di $v$ (\vedi{valutazioneclausolavuota}).
	\END
	\BEGINsufficiente
Supponiamo per assurdo che $\not\vdash X$, ovvero che qualsiasi albero di
putnam per $\NOT X$ non e' chiuso, ovvero esiste una foglia che non e'
$\pgra{[]}$. Quindi, per la prop \see{sadasdadasddsfq} questa foglia deve
essere l'insieme $\0$.\\
Questa foglia e' soddisfacibile e quindi per i lemmi (che sono dei $\=$) anche
il padre della foglia lo e'. Cosi' risalendo, si arriva fino alla radice
dell'albero, cioe' $S$ che e' la CNF di $\NOT X$
\eal{&S\T{ soddisf. } \> \NOT X \T{ soddisf.}}
assurdo contro $\models X$.
	\END
\end{proof}
\begin{rem}
	La procedura di Putnam e' usata efficientemente per risolvere i
	problemi SAT, ovvero trovare una valutazione $v$ che soddisfi una
	formula $X$. In particolare, un ramo di un albero di putnam di $X$ che
	termina in $\0$ si puo' convertire in una valutazione che soddisfa
	$X$: scegliere $S_L$ equivale a porre $L=\t$, scegliere $S_{\ove L}$
	equivale a porre $L=\f$.
\end{rem}



\section{Logica del I ordine}
\def\F{{\mathcal{F}}}
\def\R{{\mathcal{R}}}
\def\Ter{{\oname{Term}}}
\def\Term{{\oname{Term}}}
\def\CTer{{\oname{CTerm}}}
\def\CTerm{{\CTer}}
\def\Bound{{\oname{Bound}}}
\def\Free{{\oname{Free}}}
\def\FreeF{{\oname{FreeF}}}
\def\CForm{{\oname{CForm}}}
\begin{defn}
L'universo $\UU$ di un linguaggio della logica del I ordine e' composto da tutti gli
	elementi della logica logica proposizionale (variabili, connettivi,
	punteggiatura (\vedi{Logica proposizionale})) con l'aggiunta di 
	\begin{enumerate}
		\item $\F$, un insieme finito o numerabile di simboli, che
			verranno interpretati in seguito come funzioni.\\
		       $\ar{.}$, una mappa che associa ad ogni $f\in \F$ un numero $\ar f\in
		       \N$, che verra' interpretato come l'arieta' della
		       funzione $f$.\\
		       L'insieme
		       \eal{&
		       \F_0\definizione{=}\pgra{f\in \F\;|\;\ar f= 0}
		       }
		       e' l'insieme delle \iemph{costanti}.\\
		       In generale poniamo:
		       \eal{&
		       \F_i\definizione{=}\pgra{f\in \F\;|\;\ar f= i}
		       }
		\item $\R$, un insieme finito  o numerabile di simboli, che
			verranno interpretati in seguito come relazioni.\\
			Per ogni $r\in \R$, $\ar{r}$ rappresenta l'arieta'
			della relazione $r$.\\
			Poniamo:
		       \eal{&
		       \R_i\definizione{=}\pgra{r\in \R\;|\;\ar r= i}
		       }
	       \item $\pgra{\exists,\;\forall}$, i simboli dei
		       \emph{quantificatori universali}.
	\end{enumerate}
	Definiamo inoltre l'insieme dei \iemph{termini}: $\Ter$ e' il piu'
	piccolo sottoinsieme di $\UU$ tale che:
	\eal{&\Pvar \U  \F_0 \( \Ter\NN
	t_1,\dots,t_n\in \Ter,\;\;
	f\in \F_n \> \uline{f(t_1,\dots,t_n)} \in \Ter
	}
	Nota: $\uline{f(t_1,\dots,t_n)}$ e' solo una stringa, ovvero una
	sequenza di simboli.\\
	Un termine si dira' chiuso \label{termini chiusi} quando non contiene
	variabili, ma solo costanti e simboli funzionali.
	Con $\CTerm$ indichiamo l'insieme di tutti i termini chiusi.\\
	Con $\Pvar(t)$ indichiamo l'insieme di tutte le variabili presenti nel
	termine $t$.
	%\\
%
%	Con $L(\F,\R)$ indichiamo il linguaggio della logica del primo ordine
%	definito dall'insieme dei simboli funzionali $\F$ e da q
\end{defn}
\begin{exemp}\label{alberosintattico}
	Siano $a,b,c\in \Pvar\U \F_0$, allora la seguente stringa
	\eal{&
	\uline{f(a,g(b,f(a,a)))}
	}
	e' un termine.\\
	Per ogni termine possiamo costruire il relativo \iemph{albero
	sintattico}.\\
	\ctree{
	[f [a]
	   [g
	      [b]
	      [f
	         [a]
		 [a]
 	      ]
	   ]
	]
	}
\end{exemp}
\begin{defn}
L'insieme delle formule atomiche	$\ATform$ e' cosi' definito:
\eal{&\ATform=TF\U\pgra{\uline{R(t_1,\dots,t_n)} \;|\;    t_1,\dots,t_n\in \Ter,\;\;R\in \R_{n} }
	}
L'insieme delle formule	$\Form$ e' il piu' piccolo insieme tale che
	\eal{&\ATform \( \Form\NN
	X\in \Form \> \uline{\NOT X} \in \Form\NN
	X,Y\in \Form,\;\o\in \Bin \> \uline{X\o Y} \in \Form\NN
	x\in \Pvar,\;X\in \Form \> \;\uline{(\forall x)\;X}\in \Form\NN
	x\in \Pvar,\;X\in \Form \> \;\uline{(\exists x)\;X}\in \Form
	}
	Diremo che $x$ e' una \iemph{variabile legata} (o non libera) della
	formula $X$, se le uniche occorrenze di $x$ in $X$ sono in
	sottoformule del tipo $(\exists x)Y,\;\;(\forall x)Y$, con $x$
	presente in $Y$.
	 Altrimenti, la variabile $x$ sara' detta \iemph{libera}.\\

	Con $\Free(X)$ indichiamo l'insieme di tutte le variabili libere di
	$X$, e infine poniamo $\Bound(X)=\Pvar(X)\-\Free(X)$.\\

	Diremo che $X$ e' una formula chiusa quando $\Free(X)=\0$. Con
	 $\CForm$ indichiamo l'insieme di tutte le formule chiuse. Le formule
	 chiuse vengono anche chiamate \iemph{enunciati}.
	 \label{formula chiusa}
\end{defn}
\begin{exemp}
	Supponiamo che $R$ sia il simbolo della relazione di uguaglianza e che $t_1,t_2\in
	\Ter$. Allora, la seguente e' una formula atomica:
	\eal{&R(t_1,t_2)}
	od anche:
	\eal{&\uline{=(t_1,t_2)} }
	o  scritta in notazione usuale:
	\eal{&\uline{t_1=t_2}}
	Anche per le formule possiamo costruire il relativo albero sintattico:
	$(\exists x)f(a,g(b,f(a,a),c))$ diventa
	\ctree{
	[$\exists x$ 
	[f [a]
	   [g
	      [b]
	      [f
	         [a]
		 [a]
 	      ]
	      [c]
	   ]
	]]
	}
\end{exemp}
\def\s{{\sigma}}
\def\st{{\tau}}
\def\supp{{\oname{supp}}}
\begin{defn}
	Una qualsiasi funzione $\s:\Pvar\longrightarrow \Term$ e' chiamata
	\iemph{sostituzione} di variabili. Utilizzeremo la seguente notazione:
	\eal{&x\s\definizione{=}\s(x)
	}
	Una sostituzione di termini $\s:\Term \longrightarrow  \Term$ e'
	l'estensione di qualche sostituzione di variabili
	$\s:\Pvar\longrightarrow \Term$:
	\eal{&c\s =c\;\;\forall c\in \F_0\NN
	f(t_1,\dots,t_n)\s=f(t_1\s,\dots,t_n\s)\;\;\forall f\in
	\F_n,\;\;t_i\in \Term
	}
Una sostituzione di formule $\s:\Form \longrightarrow  \Form$ e'
	l'estensione di qualche sostituzione di termini
	$\s:\Term\longrightarrow \Term$:
	\eal{&
	c\s =c\;\;\forall c\in \F_0\NN
f(t_1,\dots,t_n)\s=f(t_1\s,\dots,t_n\s)\;\;\forall f\in
        \F_n,\;\;t_i\in \Term \NN
	\t\s = \t,\;\;\f\s=\f\NN
	\uline{P(t_1,\dots,t_n)}\in \ATform \> \uline{P(t_1,\dots,t_n)} \s = \uline{P(t_1\s,\dots,t_n\s)}\NN
	(\NOT X )\s =  \NOT (X\s)\NN
	(X\o Y ) \s = (X\s \o Y\s)\NN
	\underline{(\forall x)Y} \s = (\forall x)(Y\s_x)\NN
	\underline{(\exists x)Y} \s = (\exists x)(Y\s_x)\NN
	\T{dove } y\s_x=\sist{y& y = x\\ y\s & y \neq x}
	}
	Definiamo la composizione tra sostituzioni.
	Poiche' siamo interessati a cambiare le singole variabili di una
	formula, piuttosto che a  cambiare una formula con un'altra, la
	composizione si basera' sulle variabili: $\s_1\s_2$ e' l'estensione
	della seguente sostituzione di variabili $\st$:
	\eal{&x\st=(x\s_1)\s_2\;\;\forall x\in \Pvar
	}
	Sia $\s:S\longrightarrow S$ un qualsiasi tipo di sostituzione, con
	$\Pvar \( S$,
	poniamo:
	\eal{&\supp(\s)\definizione{=} \pgra{x\in \Pvar\;|\;x \neq x\s}}
	$\supp(\s)$ e' il \emph{supporto} di $\s$.\\
	Le sostituzioni che considereremo avranno tutte supporto finito. La
	notazione
	\eal{&\s=\pgra{x_1\mapsto t_1,\dots,x_m\mapsto t_m}}
	indichera' che $\s$ e' l'estensione della seguente sostituzione di
	variabili  $\st$:
	\eal{&x_i\st=t_i\;\;\forall i=1,\dots,m\NN
	      \supp(\s)=\supp(\st)=\pgra{x_1,\dots,x_m}
	}
\end{defn}
\begin{prop}\label{sostituzprop1}
	Siano $\s_1,\s_2,\s_3:\Term\longrightarrow \Term$ tre sostituzioni di
	termini, e $t\in \Term$, allora
	\eal{&
	0.\;\;t\s_1\in \Term\;\;\forall t\in \Term\NN
	1.\;\;x\s_1=x\s_2\;\;\forall x\in \Pvar(t) \> t\s_1=t\s_2\NN
	2.\;\;(t\s_1)\s_2=t(\s_1\s_2)\;\;\forall t\in \Term\NN
	3.\;\;(\s_1\s_2)\s_3=\s_1(\s_2\s_3)
	}
	Siano $\st_1,\st_2,\st_3:\Form\longrightarrow \Form$ tre sostituzioni di
	formule, allora
	\eal{&4.\;\;\exists X\in \Form:\;\;(X\st_1)\st_2 \neq X(\st_1\st_2)\NN
	5.\;\;(\st_1\st_2)\st_3=\st_1(\st_2\st_3)
	}
	La proprieta' $4.$ mette in evidenza la differenza tra composizione di
	funzioni e  composizione di sostituzioni.
\end{prop}
\begin{proof}
Per la $0.$, $1.$ e la $2.$, si procede per induzione strutturale sull'insieme dei termini
$\Term$.\\
La $4.$: consideriamo questo controesempio:
\eal{& X= \uline{(\forall y)R(x,y)}\NN
\st_1=\pgra{x\mapsto y}\NN
\st_2=\pgra{y\mapsto c}\NN
\st_1\st_2=\pgra{x\mapsto c, y\mapsto c}\NN
X\st_1= \uline{(\forall y)R(y,y)}\NN
(X\st_1)\st_2=\uline{(\forall y)R(y,y)}\st_2=\uline{(\forall y)R(y,y)}\NN
X(\st_1\st_2)=  \uline{(\forall y)R(c,y)}\NN
X(\st_1\st_2) \neq (X\st_1)\st_2
}
La $3.$,$5.$: poiche' la composizione di sostituzioni e' una estensione di una
sostituzione di varabili, basta verificare che
\eal{&x(\s_1\s_2)\s_3=x\s_1(\s_2\s_3)\;\;\forall x\in \Pvar
}
quindi, per definizione:
\eal{&x(\s_1\s_2)\s_3=(x(\s_1\s_2))\s_3 \ubrace{=}{2.} ((x\s_1)\s_2)\s_3\NN
x\s_1(\s_2\s_3)=(x\s_1)(\s_2\s_3) \ubrace{=}{2.} ((x\s_1)\s_2)\s_3
}
\end{proof}
\begin{prop}\label{sostituzprop2}
	Siano $\s_1,\s_2:\Term \longrightarrow \Term$ due sostituzioni di
	termini e $t\in \Term$, allora
	\eal{&t\s_1=t\s_2 \> x\s_1=x\s_2\;\;\forall x\in \Pvar(t)
	}
\end{prop}
\begin{proof}
	Per induzione strutturale su $\Term$.\\
	Vediamo direttamente il passo induttivo:
	\eal{&f(t_1,\dots,t_n)\s_1=f(t_1,\dots,t_n)\s_2\=
	f(t_1\s_1,\dots,t_n\s_1)=f(t_1\s_2,\dots,t_n\s_2)
	\= t_i\s_1=t_i\s_2\;\;\forall i\;\;(1)\NN
	x\in \Pvar(\uline{f(t_1,\dots,t_n)})\>\exists i:\;x\in
	\Pvar(t_i)\;\;(1.1)\NN
	(1),(1.1) \ubrace{\>}{\T{Hp induttiva}}  x\s_1=x\s_2
	}
\end{proof}
\begin{defn}
Sia $\s:\Form\longrightarrow \Form$ una sostituzione di formule.\\
Definiamo induttivamente l'insieme $\FreeF(\s)$ delle formule che rendono $\s$ una
\iemph{sostituzione libera}:
\eal{& 
\ATform \( \FreeF(\s)\NN
\NOT X \in \Form,\;\;X\in \FreeF(\s) \> \NOT X \in \FreeF(\s)\NN
X\o Y \in \Form,\;\;X,Y\in \FreeF(\s) \> X\o Y \in \FreeF(\s)\NN
\sist{Y\in \FreeF(\s_x)\\
x\notin \Pvar(y\s) \;\;
\forall y\in \Free(Y)\-\pgra{x}
}
\>  \uline{(\forall x)Y},\;\;\uline{(\exists x)Y} \in \FreeF(\s)
}
In pratica, $\s$ e' libera per $X$ quando $\s$ non introduce variabili legate.
\end{defn}
\begin{prop}\label{propsostituzioneliberaassociativa}Sia $X\in \Form$ ed $\s,\st:\Form\longrightarrow \Form$ due
	sostituzioni di formule, allora
	\eal{&
	\sist{X\in \FreeF(\s)\\
	X\s\in \FreeF(\st)
	} \> (X\s)\st=X(\s\st)
	}
\end{prop}
\begin{proof}
	Procediamo per induzione strutturale sull'insieme $\Form$.\\
	Per la \see{sostituzprop1} sappiamo che
	\eal{&(t\s)\st=t(\s\st)\;\;\forall t\in \Term\;\;(1)
	}
	quindi per il caso base dell'induzione:
	\eal{&
	(P(t_1,\dots,t_n)\s)\st=
	P(t_1\s,\dots,t_n\s)\st=
	P((t_1\s)\st,\dots,(t_n\s)\st) \ubrace{=}{(1)} 
	P(t_1(\s\st),\dots,t_n(\s\st)) = P(t_1,\dots,t_n)(\s\st)
	}
	Supponiamo che
	\eal{&X\o Y\in \FreeF(\s)\NN
	\uline{X\o Y}\s\in \FreeF(\st)
	}
	e dimostriamo che
	\eal{&(\uline{X\o Y}\s)\st=\uline{X\o Y}(\s\st)
	}
	Abbiamo:
	\eal{&X\o Y\in \FreeF(\s)  \ubrace{\>}{\T{def. di }\FreeF} 
	X,Y\in \FreeF(\s)\NN
	X\s\o Y\s\in  \FreeF(\st) \> X\s,Y\s\in
	\FreeF(\st)\NN
	\qq  \ubrace{\>}{\T{ipotesi induttiva}}(X\s)\st=X(\s\st),
	\;(Y\s)\st=Y(\s\st)\;\;(2)\NN
	\T{Quindi: }\NN
	\qq (\uline{X\o Y}\s)\st= 
	((X\s)\o (Y\s))\st=
	((X\s)\st\o (Y\s)\st) \ubrace{=}{(2)} 
	X(\s\st)\o Y(\s\st) = (X\o Y)(\s\st)
	}
	Analogamente si dimostra il caso di $\NOT X$. \\
	Adesso, supponiamo che
	\eal{&\uline{(\forall x)Y}\in \FreeF(\s)\NN
	\uline{(\forall x)Y}\s\in \FreeF(\st)
	}
	e dimostriamo che
	\eal{&(\uline{(\forall x)Y}\s)\st=\uline{(\forall x)Y}(\s\st)
	}
	Abbiamo:
	\eal{&
	\uline{(\forall x)Y}\in \FreeF(\s)  \ubrace{\>}{\T{def di }\FreeF} 
	\sist{
	Y\in \FreeF(\s_x)\;\;(3.1)\\
	x\notin \Pvar(y\s) \;\; \forall y\in \Free(Y)\-\pgra{x}\;\;(3.2)
	}\NN
	\uline{(\forall x)Y}\s = \uline{(\forall x)(Y\s_x)}\in \FreeF(\st) \> 
	\sist{
	Y\s_x \in \FreeF(\st_x)\;\;(4.1)\\
	x\notin \Pvar(y\st) \;\; \forall y\in \Free(Y\s_x)\-\pgra{x}\;\;(4.2)
	}\NN
(3.1),(4.1)  \ubrace{\>}{\T{ipotesi induttiva}}(Y\s_x)\st_x=Y(\s_x\st_x)
\ubrace{=}{(3.2),(4.2)} Y(\s\st)_x\;\;(5)\NN
	\T{Quindi: }\NN
	\qq 
	(\uline{(\forall x)Y}\s)\st=
	(\uline{(\forall x)(Y\s_x)})\st=
	(\uline{(\forall x)((Y\s_x)\st_x)}) \ubrace{=}{(5)} 
	(\uline{(\forall x)(Y(\s\st)_x)}) = 
	(\uline{(\forall x)Y}) (\s\st)
	}
	Analogamente si vede per $\exists x$.
\end{proof}
\def\S{{\Sigma}}
\def\range{{\oname{range}}}
\begin{defn}
	Siano $t_1,t_2\in \Term$ e sia $\s:\Term \longrightarrow \Term$ una sostituzione di termini.
	\eal{&\s\T{ e' un unificatore di }t_{1},t_2 \definizione{\=}
	t_1\s=t_2\s
	}
	Ad esempio, $\s=\pgra{x\mapsto f(a,b)}$ e' un unificatore dei termini
	$h(x)$,\;$h(f(a,b))$.\\
	Poniamo:
	\label{ridenominazione}.
	\eal{&\S \definizione{=} \pgra{\s\;|\;\s:\Term\longrightarrow \Term\T{
	sostituzione di termini}}\NN
	\s\S\definizione{=}\pgra{\s\st\;|\;\st\in S}\NN
	U(t_1,t_2)\definizione{=}\pgra{\s\in \S\;|\;\s\T{ unificatore di
	}t_1,t_2}\NN
	\s\in \S\T{ e' una \emph{ridenominazione} su $V$} \definizione{\=}
	\sist{V\(\Pvar\\
	x\s\in \Pvar\;\;\forall x\in V\\
	\s_{|V}\T{ e' iniettiva}}
	}
	Sia $\s\in \S$, poniamo:
	\eal{&
	\range(\s)\definizione{=}\bigcup_{x\in \Pvar}\Pvar(x\s)
	}
\end{defn}
\begin{prop}
	\eal{&\s\in U(t_1,t_2) \> \s\S\( U(t_1,t_2)}
\end{prop}
\begin{proof}
\eal{&\s\in U(t_1,t_2) \= t_1\s=t_2 \s \>
(t_1\s)\st=(t_2\s)\st  \ubrace{\=}{\see{sostituzprop1} }
t_1(\s\st)=t_2(\s\st)\>\s\st\in U(t_1,t_2)
	}
\end{proof}
\def\Um{{U_{\oname{max}}}}
\begin{defn}
	Siano $t_1,t_2\in \Term$ e sia $\s\in U(t_1,t_2)$
	\eal{&\s\T{ e' un unificatore massimale }t_1,t_2\;\definizione{\=}
	\s\S=U(t_1,t_2) \= \forall \rho\in U(t_1,t_2)\; \exists  \st\in \S:\;\;
	\rho=\s\st\NN
	\Um(t_1,t_2)\definizione{=} \pgra{\s\;|\;\s\T{ unificatore massimale
	di  }t_1,t_2}
	}
\end{defn}
\begin{prop}
	\def\r{{\rho}}
	Siano $t_1,t_2\in \Term$ e sia $\s,\st\in \Um(t_1,t_2)$, allora
	\eal{&\exists \rho\in \S\T{ ridenominazione su $\range(\s)$ tale che
	}\NN
	\qq\qq\qq\;\;\st=\s\r
	}
\end{prop}
\begin{proof}
	\def\r#1{{\rho_{#1}}}
	Dalla definizione, si ha
	\eal{&\s\S=U(t_1,t_2)=\st\S \> \sist{\exists \rho_1\in
	\S:\;\;\st=\s\r1\;\;(1)\\
	\exists \r2\in \S:\;\;\s=\st\r2} \> \s=\s\r1\r2\;\;(2)
	}
	Per la $(1)$, e' sufficiente dimostrare che $\r1$ e' una ridenominazione su $\range(\s)$.
	\step{}{$x\r1\in \Pvar\;\;\forall x\in \range(\s)$}
	\begin{prova}
	\eal{&x\in \range(\s) \> \exists y:\;\;x\in\Pvar(y\s)\NN
	(2) \> y\s=y\s\r1\r2=((y\s)\r1)\r2 \ubrace{=}{\see{sostituzprop1}} 
	(y\s)(\r1\r2)\= (y\s)\id=(y\s)(\r1\r2)\;\;(3)\NN
	\qq  \ubrace{\>}{\see{sostituzprop2}} x\id = x(\r1\r2) \= x
	=(x\r1)\r2\;\;(4)
		}
$x$ e' una variabile del termine $y\s$.
Se per assurdo $x\r1$ e' del tipo $f(t_1,\dots,t_n)$, allora
vuol dire che in $(y\s)\r1$  la variabile $x$ e' stata sostituita con
$f(\dots)$, quindi $(y\s)\r1$ ha una lunghezza maggiore di $y\s$:
\eal{&l(y\s) < l((y\s)\r1) \le l(((y\s)\r1)\r2 )  \ubrace{=}{(3)}  l(y\s)\NN
l(y\s)<l(y\s)
}
assurdo.\\
Se per assurdo $x\r1$ e' una costante $c$, allora
\eal{&(4)\> x= c\r2 = c \> x\T{ costante }
}
assurdo contro $x\in \range(\s)\(\Pvar$.\\
Quindi, si deve avere
\eal{&x\r1\in \Pvar}
	\end{prova}
	\step{}{Presi $x,y\in \range(\s)$, si ha $x\r1=y\r1 \> x=y$}
	\begin{prova}
		\eal{&x \ubrace{=}{(4)}(x\r1)\r2  \ubrace{=}{x\r=y\r1}
		(y\r1)\r2  \ubrace{=}{(4)}y \> x=y
		}
	\end{prova}
	In conclusione, $\r1$ e' una ridenominazione su $\range(\s)$.
\end{proof}

%\begin{prop}
%	Siano $t_1,t_2\in \Term, \;\s\in \S$, allora
%	\eal{&t_1\s=t_2\s \> t_1'\s=t_2'\s
%	}
%	dove $t_1',t_2'$ sono due sottotermini di $t_1,t_2$ tali che
%	$r_1(t_1')=r_2(t_2')$, dove
%	$r_1(t_1')$ e' il ramo dell'albero sintattico $T_1$ relativo a $t_1$
%	che parte dalla radice $x_1'$ di $T_2$ e finisce in nella radi $x_n'$
%\end{prop}
\begin{defn}
	Siano $t_1,t_2\in  \Term$ e siano $T_1,T_2$ i relativi alberi
	sintattici di $t_1,t_2$ (\vedi{alberosintattico}).
	Siano $d_1,d_2$ due sottoalberi di $T_1,T_2$ (che possiamo pensare come due
	sottotermini di $t_1,t_2$). Sia $r_1=(x_1,\dots,x_m)$ il ramo di $T_1$, dove
	$x_m$ e' la radice di $d_1$ e $x_1$ e' la radice di $T_1$
	. Analogamente, sia $r_2=(x_1',\dots,x_n')$ il ramo  che parte dalla
	radice $x_1'$ di $T_2$ e finisce in  $x_n'$, radice di $d_2$.\\
	\eal{&
	(d_1,d_2) \T{ e' una \iemph{coppia di disaccordo} per $t$ }
	\definizione{\=}\sist{x_n \neq x_m\\
	(x_1,\dots,x_{n-1})=(x_1',\dots,x_{m-1}')}
	}
\end{defn}
\begin{exemp}\qq\\
	$t_1=(\exists x)f(a,g(b,f(a,a)))$, 
		\nctree{
	[$\exists x$ 
	[f [a]
	   [g
	      [b]
	      [f
	         [a]
		 [a]
 	      ]
	   ]
	]]
	}
	$t_2=(\exists x)f(a,g(c,g(b,c)))$, 
	\nctree{
	[$\exists x$ 
	[f [a]
	   [g
	      [c]
	      [g
	         [b]
		 [c]
 	      ]
	   ]
	]]
	}
	Una coppia di disaccordo e' data dai due sottotermini
	$d_1=f(a,a),\;d_2=g(b,c)$.\\
	Un'altra coppia e' $d_1=b,\;d_2=c$.
\end{exemp}
\begin{thm}\label{algounificazione}
\def\bBreak{{\T{$\mathbf{break}$}}}
	Algoritmo di unificazione.\\
	Siano $t_1,t_2\in \Term$. Il seguente algoritmo restituisce $\0$ se
	non e' possibile unificare $t_1,t_2$, altrimenti restituisce un $\s\in
	\Um(t_1,t_2)$:
	\eal{&\s:=\id\NN
	\While t_1\s \neq t_2\s:\NN
	\qq \Sia \T{ $(d_1,d_2)$ una coppia di disaccordo per }t_1,t_2\NN
	\qq \Se \pgra{d_1,d_2}\^\Pvar=\0:\;\;\;(1)\NN
	\qq \qq \s:=\0\NN
	\qq \qq \bBreak\NN
	\qq \Sia x\in  \pgra{d_1,d_2}\^\Pvar,\;\;t\in \pgra{d_1,d_2}\-\pgra{x}\NN
	\qq \Se x\in \Pvar(t):\;\;\;(2)\NN
	\qq \qq \s:=\0\NN
	\qq \qq \bBreak\NN
	\qq \s:=\s \pgra{x\mapsto t} \qq \T{ e' la composizione di $\s$ con
	$\pgra{x\mapsto t}$}\NN
	\s
	}
\end{thm}
\begin{proof}
Supponiamo le condizioni $(1)$,$(2)$ non si verifichino,
		ovvero che l'algoritmo non restituisca $\0$. Dimostriamo che
		l'algoritmo termina e che $\s\in \Um(t_1,t_2)$.
	\step{}{L'algoritmo termina}
	\begin{prova}
		Sia $V(\s)=\Pvar(t_1\s)\U\Pvar(t_2\s)$.\\
		Ad ogni ciclo sostituiamo la variabile $x$ con il
		termine $t$. Ma poiche' la $(2)$ non si verifica, $x\notin \Pvar(t)$.
		Quindi, ad ogni ciclo $V(\s)$ perde un elemento.\\
		Poiche' $V(\s)$ era inizialmente finito, l'algoritmo dovra'
		prima o poi terminare: ad un certo punto la condizione  di terminazione
        del while $(t_1\s=t_2\s)$ sara' verificata.
	\end{prova}
	\step{}{$\s\in \Um(t_1,t_2)$}
	\begin{prova}
	Sia $\st\in U(t_1,t_2)$. Dimostriamo che $\exists \rho\in \S:\;\;
	\st=\s\rho$. In particolare, dimostriamo che $\st=\s\st$.\\
	\step{}{$\st=\s\st$ e' un invariante del while}
	\begin{prova}
		Per induzione, caso base:
		\eal{&\s=\id:\NN
		\qq \st=\id\st = \st
		}
		Supponiamo $\st=\s\st$ e dimostriamo che
		$\st=(\s\pgra{x\mapsto t})\st$.
		\eal{&\st\in U(t_1,t_2) \> t_1\st=t_2\st \> d_1\st=d_2\st\;\;(3)\NN
		\T{Per ipotesi
		induttiva } \st=\s\st\;\;(4)\NN
		}
		Dimostriamo che 
		$\{x\mapsto t\}\st=\st$. Per la \see{sostituzprop1} basta
		dimostrare che
		\eal{&y\{x\mapsto t\}\st=y\st\;\;\forall y\in \Pvar}
		quindi,
		\eal{&y=x \> y\{x\mapsto t\}=t \> (y\{x\mapsto t\})\st =t\st
		\ubrace{=}{(3),\;\pgra{x,t}=\pgra{d_1,d_2}} x\st
		\ubrace{=}{y=x} y\st\NN
		y \neq x \> y\{x\mapsto t\}=y \> (y\{x\mapsto t\})\st =y\st
		}
		Infine,
		\eal{&
		 (\s\pgra{x\mapsto t})\st = \s(\pgra{x\mapsto t}\st)
		= \s\st  \ubrace{=}{(4)} \st
		}
	\end{prova}
	Abbiamo cosi' dimostrato che
	\eal{&\st=\s\st}
vale	ad ogni ciclo.
	\end{prova}
\end{proof}
\begin{prop}
	\eal{&\Um(t_1,t_2) \neq \0 \= \T{L'algoritmo di unificazione
	restituisce un $\s\in \Um(t_1,t_2)$}}
\end{prop}
\begin{proof}
	\BEGINsufficiente
	\eal{&\s\in \Um(t_1,t_2) \> \Um(t_1,t_2) \neq \0
	}
	\END
	\BEGINpnecessaria
	Se le condizioni $(1),(2)$ dell'algoritmo \see{algounificazione} 
	non si verificano, allora, come gia' visto, si ha la tesi.\\
	Se le $(1),(2)$ si verificano, e' facile vedere che $U(t_1,t_2)=\0$.
	Assurdo.
	\END
\end{proof}
\begin{prop}
	\ilabel{Unificazione concorrente}
	Unificazione concorrente\\
Siano dati i termini $t_1,u_1,t_2,u_2,\dots,t_n,u_n\in \Term$. Per trovare un
elemento $\s$ di 
\eal{&\bigcap_{i=1,\dots,n}U(t_i,u_i)}
e' sufficiente applicare l'algoritmo \see{algounificazione} ai due termini
\eal{&f(t_1,\dots,t_n),\;\;f(u_1,\dots,u_n)
}
dove $f\in \F$ e' un qualsiasi simbolo funzionale, infatti,
\eal{&\bigcap_{i=1,\dots,n}U(t_i,u_i) = U\pton{\uline{f(t_1,\dots,t_n)},\uline{f(u_1,\dots,u_n)}} }
\end{prop}
\begin{proof}
	Basta osservare che
	\eal{&f(t_1,\dots,t_n)\s=f(t_1\s,\dots,t_n\s)\NN
	f(t_1\s,\dots,t_n\s) = f(u_1\s,\dots,u_n\s)
	\= t_i\s=u_i\s\;\;\forall i
	}
\end{proof}
\begin{defn}
	\ilabel{Unificazione multipla}
	Unificazione multipla\\
	\eal{&U(t_1,\dots,t_n)\definizione{=} 
	\bigcap_{i \neq j} U(t_i,t_j)
	}
\end{defn}
\begin{prop}
	Per trovare un elemento $\s\in U(t_1,\dots,t_n)$ e' sufficiente
	applicare l'algoritmo \see{algounificazione} ai termini:
	\eal{&f(t_1,\dots,t_{n-1}),\;\;f(t_2,\dots,t_n)
	}
\end{prop}
\begin{proof}
	Per la prop \see{Unificazione concorrente} si ha
	\eal{&\bigcap_{i=1,\dots,n-1}U(t_i,t_{i+1}) =
	U\pton{\uline{f(t_1,\dots,t_{n-1})},\uline{f(t_2,\dots,t_n)}} }
Inoltre, 
\eal{&\s\in \bigcap_{i=1,\dots,n-1}U(t_i,t_{i+1}) 
\= t_1\s=t_2\s,\;\;t_2\s=t_3\s, \dots 
\= t_1\s=t_2\s=t_3\s=\dots=t_n\s \= \s\in  \bigcap_{i \neq j} U(t_i,t_j) 
}
\end{proof}


\subsection{Semantica}
	Nella logica proposizionale era sufficiente usare le valutazioni per
	dare un ``significato'' alle formule. Vediamo adesso come dare senso
	alle formule della logica del $I$ ordine.
\begin{defn}
	Un modello di un linguaggio $L=(\F,\R)$ della logica del I ordine e'
	una coppia
	$M=(D, I)$, dove $D$ e' un insieme non  vuoto, $I$ e' una mappa tale
	che
	\eal{&I:\F\U\R \longrightarrow D\U \pgra{\T{funzioni su D}}\U
	\pqua{\T{relazioni su D}}\NN
	c^{I} \in D\;\;\forall c\in \F_0\NN
	f\in \F_i \> f^{I}\T{ e' una funzione } f^{I}:D^{i}
	\longrightarrow  D\NN
	R\in \R_i \> R^{I}\( D^{i}\T{ e' una relazione su $D$}
	}
	$I$ e' chiamata \iemph{interpretazione} del linguaggio $L$.\\

	Una qualsiasi funzione $A:\Pvar \longrightarrow D$ e' chiamata
	\emph{assegnamento} di variabili.\\
Sia $x\in \Pvar$, definiamo l'insieme degli $x$-varianti di $A$:
\eal{&A_x=\pgra{B:\Pvar\longrightarrow D\;|\;y^{B}=y^{A}\;\;\forall y\in
\Pvar\-\pgra{x}}
}
In altre parole, un elemento di $A_x$ e' una assegnamento che differisce da
$A$ in al piu' $x$.\\

Sia $I$ una interpretazione e $A$ un assegnamento, definiamo la valutazione $(I,A)$ di un termine:
	\eal{&(I,A):\Term\longrightarrow D\NN
	c^{I,A}=c^{I}\;\;\forall c\in \F_0\NN
	x^{I,A}=x^{A}\;\;\forall x\in \Pvar\NN
\pton{	f(t_1,\dots,t_n)}^{I,A}=f^I(t_1^{I,A},\dots,t_n^{I,A})\;\;\forall f\in \F_n
	}
	In altre parole, la valutazione ``calcola'' il valore dei termini.\\

	Utilizzando le valutazioni dei termini, possiamo fornire un valore di
	verita' ad ogni formula $X\in \Form$:
	\eal{&v_{I,A}:\Form \longrightarrow  TF\NN
	v_{I,A}(\t)=\t,\;\;v_{I,A}(\f)=\f\NN
	v_{I,A}\pton{\uline{R(t_1,\dots,t_n)}}=\t \= (t_1^{I,A},\dots,t_n^{I,A}) \in
	R^{I},\;\;\T{ dove } R\in 
	 \R_n,\;t_1,\dots,t_n\in \Term\NN
	 v_{I,A}(\uline{\NOT X })=\NOT v_{I,A}(X)\NN
	 v_{I,A}(\uline{X\o Y})=v_{I,A}(X)\o v_{I,A}(Y)\NN
	 v_{I,A}(\uline{(\forall x)Y})=\t \= v_{I,B}(Y)=\t\;\;\forall B\in A_x\NN
	 v_{I,A}(\uline{(\exists x)Y})=\t \= \exists B\in A_x:\;v_{I,B}(Y)=\t
	}

	Sia $M=(D,I)$ un modello del linguaggio $L$, sia $X\in \Form$ e sia
	$S\(\Form$
	\eal{&X\T{ e' soddisfacibile in } M\definizione{\=} M\T{ soddisfa
	}X\definizione{\=} \exists A:\Pvar\longrightarrow D\T{
	assegnamento t.c. }v_{I,A}(X)=\t\NN
	S\T{ e' soddisfacibile } \definizione{\=} \exists A:\Pvar\longrightarrow D\T{
        assegnamento t.c. }v_{I,A}(Y)=\t\;\;\forall Y\in S\NN
	X\T{ e' vera in }M\definizione{\=} v_{I,A}(X)=\t\;\;\forall
	A:\Pvar\longrightarrow D \T{ assegnamento}\NN
	X\T{ e' valida in L}\definizione{\=} X\T{ e' vera in ogni modello }M\T{ di
	} L
	}
	Poniamo le seguenti notazioni:
	\eal{&M,A\models X\definizione{\=} v_{I,A}(X)=\t  \NN
	M\models X \definizione{\=} X\T{ e' vera in }M\NN
	\models X \definizione{\=} X\T{ e' valida }\NN
	S \T{ e' soddisfacibile } \definizione{\=}
	\exists 
	M\T{ modello t.c. } S\T{ e' soddisfatto da } M
	}
	Infine, poniamo
	\eal{&S\models X\definizione{\=}\pton{M\models S \> M\models X}
	}
\end{defn}
\begin{prop}\label{propequivalenzanelmodelloequivalenzaveritas}
	Siano $Y,Z\in\Form$, allora
	\eal{&\models \formula{Y\=Z}  \> \pton{\models Y \= \models Z}
	}
\end{prop}
\begin{prop}\label{propveritadiperogni}
	Sia $Y\in \Form$, si ha
	\eal{&M \models \formula{(\forall x)Y}\=  M\models Y	}
\end{prop}
\begin{proof}
		\eal{
&	M\models  \formula{(\forall x)Y} 
	\> \forall A \T{ assegnamento } v_{I,A}( \formula{(\forall x)Y})=\t
	\= \forall A\T{ assegnamento } \forall B\in A_x 
	v_{I,B}(Y)=\t \=\NN
	\= \forall B\T{ assegnamento } v_{I,B}(Y)=\t\= M \models
	Y
	}

\end{proof}

\subsection{Termini chiusi}
\begin{prop}\label{propterminichiusipreservati}
	Sia $A$ un assegnamento, $\s$ una sostituzione qualsiasi di termini.
	Si ha
	\eal{&t\in \CTerm \> t^{A}=t\s=t}
	Ovvero i termini chiusi non vengono modificati dagli assegnamenti e
	dalle sostituzioni.\\
\end{prop}
\begin{proof}
	Intuitivamente: $t$, essendo chiuso non ha variabili, quindi $A$ e
	$\s$ non possono modificarlo.\\
	Si dimostra per induzione su $\Term$.
\end{proof}
\begin{lem}\label{lemmaterminichiusiindipendenzaA}
	Sia $M=(D,I)$ un dominio, $x\in \Pvar$ e siano $A,A'$ due assegnamenti
	tali che $x^{A}=x^{A'}$
	\eal{&1.\;\;t\in \Term,\;\;\Pvar(t)\(\pgra{x} \> t^{I,A}=t^{I,A'}\NN
2.\;\;	Y\in \Form,\;\;\Free(Y)\(\pgra{x} \>  v_{I,A}(Y)=v_{I,A'}(Y)
	}
\end{lem}
\def\val#1#2{{v_{#1}\pton{#2}}}
\def\IA#1#2{{{#2}^{#1}}}
\begin{proof}
	Si procede per induzione su $\Term$ e poi su $\Form$.\\
	\eal{&t=c\in \F_0 \> c^{I,A}=c^I=c^{I,A'}\NN
	t=y\in \Pvar  \ubrace{\>}{\Pvar(t)\(\pgra{x}} 
	\> t=x \>x^{I,A}= x^{A}=x^{A'}=x^{I,A'}\NN
	t=f(t_1,\dots,t_n) \in \Term 
	\> \pton{f(t_1,\dots,t_n)}^{I,A}
	= f^I(t_{i}^{I,A}\;|\;i=1,\dots,n)  =\NN
	\ubrace{=}{\T{Hp induttiva}} 
	f^{I}(t_{i}^{I,A'}\;|\;i=1,\dots,n)=\pton{f(t_1,\dots,t_n)}^{I,A'}
	}
	Quindi per i termini funziona tutto. Passiamo alle formule
	\eal{&Y=\t \T{ oppure } Y=\f \> \val {I,A} Y=Y=\val {I,A'} Y\NN
	Y=R(t_1,\dots,t_n)\in \ATform \NN
	\qq 
	\> v_{I,A}\pton{R(t_1,\dots,t_n)} = \t
	\= 
	(t_1^{I,A},\dots,t_n^{I,A})\in R^I\;\;\NN
\qq	\qq \Free(Y)\(\pgra{x} \> \Pvar(t_i)\(\pgra{x}\;\;\forall i=1,\dots,n
	\ubrace{\>}{1.}  t_i^{I,A}=t_{i}^{I,A'}\;\;\NN
\qq	\=  (t_1^{I,A'},\dots,t_n^{I,A'})\in R^I
	\= v_{I,A'}\pton{R(t_1,\dots,t_n)} = \t
	}
	Per il passo induttivo dimostriamo solo la parte che coinvolge i quantificatori.
	\eal{&Y=\uline{(\forall x)Z} \in \Form
\qq 	v_{I,A}(\uline{(\forall x)Z})=
	\t \= \forall B\in A_x\;\;v_{I,B}(Z)=\t\NN
	\qq \qq \Free(Y)\( \pgra{x} \> \Free(Z)\(\pgra{x}
	\ubrace{\>}{\T{Hp indutt.}} v_{I,B}(Z)= v_{I,B'}(Z)\NN
	\qq \qq \T{dove $B'\in A'_x:\;\;x^{B}=x^{B'}$ }\NN
\qq 	\=  \forall B'\in A'_x\;\;v_{I,B'}(Z)=\t
\=  v_{I,A'}(\uline{(\forall x)Z})
	}
	Analogamente per $(\exists x)$
\end{proof}

\begin{prop}\label{propterminichiusiindipendenzaA}
	Sia $M=(D,I)$ un dominio,
	\eal{&t\in \CTerm \> t^{I,A}=t^{I,A'}\;\;\forall A,A'\T{ assegnamenti }\NN
	Y\in \CForm \>  v_{I,A}(Y)=v_{I,A'}(Y)\;\;\forall A,A'
	}
	Per questo motivo, useremo la seguente notazione:
	\eal{&t^{I}\definizione{=}t^{I,A}\NN
	v_{I}(Y) \definizione{=}v_{I,A}(Y)
	}
	dove $A$ e' una qualsiasi assegnamento.
\end{prop}
\begin{proof}
	Si procede per induzione su $\Term$ e poi su $\Form$. Dimostriamo solo
	il passo che coinvolge i quantificatori.
	\eal{&
	v_{I,A}(\uline{(\forall x)Z})=
	\t \= \forall B\in A_x\;\;v_{I,B}(Z)=\t\NN
\qq 	\uline{	(\forall x)Z}\in \CForm 
\> \Free(Z) \( \pgra{x} 
\ubrace{\>}{\see{lemmaterminichiusiindipendenzaA}} 
v_{I,B}(Z) = v_{I,B'}(Z), \T{ con }B'\in A'_x:\;x^{B}=x^{B'} \NN
\= \forall B'\in A'_x\;\;v_{I,B'}(Z)=\t
\= v_{I,A'}(\uline{(\forall x)Z})=\t
	}
	Analogamente si vede per $(\exists x)$:
\eal{&
	v_{I,A}(\uline{(\exists x)Z})=
	\t \= \exists B\in A_x:\;\;v_{I,B}(Z)=\t\NN
\qq 	\uline{	(\exists x)Z}\in \CForm 
\> \Free(Z) \( \pgra{x} 
\ubrace{\>}{\see{lemmaterminichiusiindipendenzaA}} 
v_{I,B}(Z) = v_{I,B'}(Z), \T{ con }B'\T{ un qualsiasi elemento di } A'_x:\;x^{B}=x^{B'} \NN
\> v_{I,B'}(Z)=\t \> v_{I,A'}(\uline{(\exists x)Z})=\t
}
Allo stesso modo si vede che
\eal{&v_{I,A'}(\uline{(\exists x)Z})=\t  \> v_{I,A}(\uline{(\exists x)Z})=\t
}
\end{proof}
\begin{prop}\label{propveritaperfomulechiuse}
	Sia $Z\in \CForm$, e $M=(I,D)$ un modello, allora
	\eal{&v_{I}(Z)=\t \= M\models Z\;\;\T{ ovvero, $Z$ e' vera in $M$}\NN
	}
\end{prop}
\begin{proof}
	\eal{&\t = v_{I}(Z)  \ubrace{=}{\see{propterminichiusiindipendenzaA}} 
	v_{I,A}(Z)\;\;\forall A\T{ assegnamento} 
	\> M\models Z}
\end{proof}
\begin{prop}\label{propinterpretazionetermineassegnamento}
Sia $Y\in \Form$, $t\in \CTerm$, $M=(D,I)$ un modello, $A$ una assegnazione e 
$x\in \Var$. Si ha
\eal{&x^A=t^I \> v_{I,A}(Y) =  v_{I,A}(Y\pgra{x\mapsto t}) 
}
\end{prop}
\begin{proof}
	Supponiamo $x^A=t^I $.\\
	Si procede per induzione su $\Term$ dimostrando che
	\eal{&\pton{s\pgra{x\mapsto t}}^{I,A} = s^{I,A} \;\;\forall s\in \Term
	}
	Poi si procede facilmente per induzione su $\Form$ dimostrando la
	tesi:
	\eal{& v_{I,A}(Y) =  v_{I,A}(Y\pgra{x\mapsto t}) \;\;\forall Y\in
	\Form}
\end{proof}


\begin{defn}
	Sia $M=(D,I)$ un modello,
	diremo che $M$ e' un \iemph{modello di Herbrand} $\=$
	\eal{&1.\;\;D=\CTerm\NN
	2.\;\;t^I=t\;\;\forall t\in \CTerm
	}
	dove $\CTerm$ e' l'insieme di tutti i termini chiusi (termini
	privi di variabili).
\end{defn}
\begin{prop}\label{propvarieHerbrand}
	Sia $M=(D,I)$ un modello di Herbrand, sia $A:\Pvar \longrightarrow  D$
	un assegnamento, $t\in
	\Term$, $Y\in \Form$,  allora
	\eal{&1.\;\;\T{La funzione } (xA)=x^{A}\T{ e' una sostituzione }\NN
	2.\;\;(tA)^{I}=t^{I,A}\NN
	3.\;\;v_{I,A}(Y) = v_{I}(YA)}
	In altre parole, gli assegnamenti e le sostituzioni si equivalgono
	sotto l'interpretazione $I$ del modello di Herbrand.
		\label{dim3costruttori}
\end{prop}
\begin{proof}
	\step{}{Dim $1.$}
	\begin{prova}
		Poiche' $M$ e' di Herbrand si ha
		\eal{&A:\Pvar \longrightarrow  D =\CTerm\(\Term
		}
		e quindi, per definizione, $A$ e' anche una sostituzione
	\end{prova}
	\step{}{Dim $2.$}
	\begin{prova}
		Poiche' $M$ e' un modello di Herbrand, si ha
		\eal{&s^{I}=s\;\;\forall s\in \CTerm\;\;(1)
		}
		Procediamo per induzione su $\Term$,
		\case{$t=c\in \F_0$}
		\begin{prova}
			\eal{&
			(cA)^{I} \ubrace{=}{cA=c\T{ per la def di sostituzione estesa ai
                        termini}} c^I =  c^{I,A} 
			}
		\end{prova}
		\case{$t=x\in \Pvar$}
		\begin{prova}
			\eal{&xA\in D=\CTer  \ubrace{\>}{(1)} (xA)^{I}=xA
			=x^{A}= x^{I,A}
			}
		\end{prova}
		\case{$t=f(t_1,\dots,t_n)$}
		\begin{prova}
			\eal{&\pton{f(t_1,\dots,t_n)A}^{I}
			\ubrace{=}{(1)}  f(t_1A,\dots,t_nA)
			\ubrace{=}{\T{Hp induttiva}} 
			f(t_{1}^{I,A},\dots,t_n^{I,A})  \ubrace{=}{f\in
			\CTer=D,\;(1)} 
			f^I(t_{1}^{I,A},\dots,t_n^{I,A})=\NN
			= \pton{f(t_1,\dots,t_n)}^{I,A}
			}	
		\end{prova}
	\end{prova}
	\step{}{Dim $3.$}
	\begin{prova}
		Per induzione su $\Form$,
		\eal{&Y=\t \T{ oppure } Y=\f \> \val {I,A} Y=Y=YA=\val {I,A'} {YA}\NN
	Y=R(t_1,\dots,t_n)\in \ATform \NN
	\qq 
	\> v_{I,A}\pton{R(t_1,\dots,t_n)} = \t
	\= 
	(t_1^{I,A},\dots,t_n^{I,A})\in R^I\;\;\NN
\qq	\qq 
t_i^{I,A} \ubrace{=}{2.} (t_{i}A)^{I}\;\;\NN
\qq	\=  ((t_1A)^{I},\dots,(t_nA)^{I})\in R^I
	\= v_{I,A}\pton{R(t_1A,\dots,t_nA)} = \t
	\=  v_{I,A}\pton{R(t_1,\dots,t_n)A}=\t \= \NN
	\ubrace{\=}{R(t_1,\dots,t_n)A\in \CTer,
	\;\see{propterminichiusiindipendenzaA}} 
	v_{I}\pton{R(t_1,\dots,t_n)A}
	}
	Per il passo induttivo dimostriamo solo la parte che coinvolge i
	quantificatori. Nota: usiamo l'induzione sul numero di costruttori
	della formula (\vedi{pp1p21212}).\\
	Sia $Z=\uline{(\forall x)Y}\in \Form$, dimostriamo che
	$v_{I,A}(Z)=v_{I}({ZA})$
	\def\s{{\sigma}}
	\step{}{Dim. $     v_{I,A}(Z)=\t \>  v_{I}(ZA)=\t$}
	\begin{prova}
		
	\eal{&
	ZA=(\forall x) Y\s_x,\;\;\T{ dove } \s_x \T{ e' la seguente
	sostituzione: } \s_x(u)=\sist{u& x=u\\ uA& x \neq u}\;\;(1)\NN
	\s_x\in A_x, \T{ ovvero, $\s_x$ e' un $x$-variante di $A$}\NN
      v_I(ZA)=\t  \ubrace{\=}{\see{propveritaperfomulechiuse}}  
      M\models Y\s_x \= \forall      C\T{ assegnamento }\;\;v_{I,C}(Y\s_x)=\t\;\;(2)\NN
				      v_{I,A}(Z)=\t \= 
	\forall B \in A_x \;\;v_{I,B}(Y)=\t \;\;\=\NN
	\qq v_{I,B}(Y) \ubrace{=}{\T{Hp indutt.} } v_{I}(YB)\NN
	\= \forall B\in A_x \;\;v_{I,B}(Y)=v_{I}(YB)=v_{I,C}(YB) 
	\;\;	\forall C\T{ assegn. }  \ubrace{\>}{\T{per }B=\s_x}
	v_{I,C}(Y\s_x)=\t \;\;\forall C  \ubrace{\>}{(2)}  v_{I}(ZA)=\t}
\end{prova}
	\step{}{Dim. $      v_{I}(ZA)=\t \> v_{I,A}(Z)=\t $}
	\begin{prova}
		\eal{&(2) \> \forall C\T{ assegn. } v_{I,C}(Y\s_x) =
		\t\;\;(2')\NN
		v_{I,A}(Z)=\t \= \forall B \in A_x\;\;v_{I,B}(Y)=\t\;\;(3)\NN
		\T{Fissato } B\in A_x\T{ si ha } 
		B=\pgra{x\mapsto d}A\T{ per qualche }d\in
		D\;\T{\vedi{propxvarianteinHerbrand}}\NN
		B=\pgra{x\mapsto d}A=\pgra{x\mapsto d}\s_x\;\;(4)\NN
		(2')  \ubrace{\>}{\T{posto }C=\pgra{x\mapsto d}} 
		v_{I,\pgra{x\mapsto d}}(Y\s_x)=\t \ubrace{\=}{\T{Hp indutt.}}
		v_{I,\pgra{x\mapsto d}\s_x}(Y)=\t
		\ubrace{\=}{(4)}  v_{I,B}(Y)=\t
		}
		Quindi la $(3)$ e' vera.



%DELETED%		\eal{&(2) \> \forall E \in A_x \;\;v_{I,E}(Y\s_x)=\t}
%DELETED%		Il numero di costruttori necessari per formare $Y\s_x$ e' lo
%DELETED%		stesso di quelli di $Y$, infatti $\s_x$ aggiunge solo dei
%DELETED%		termini e per le formule non e' necessario costruire termini
%DELETED%	dato che stanno tutti in $\ATform$, quindi possiamo utilizzare l'Hp
%DELETED%	induttiva anche su $Y\s_x$ e abbiamo:
%DELETED%	\eal{&\forall E \in A_x \;\;v_{I}((Y\s_x)E)=\t\;\;(3)
%DELETED%	}
%DELETED%	Osserviamo che
%DELETED%	\eal{&\s_x,E\in A_x \> u^{\s_x}=u^{E}\;\;\forall u\in \Var:\;\;x \neq
%DELETED%	u\NN
%DELETED%	x^{\s_x}=x\NN
%DELETED%	\qq \> E=\s_x\pgra{x\mapsto x^E} \;\;(4)\NN
%DELETED%	A:\Var \longrightarrow  D \ubrace{=}{\T{modello di Herbrand}} \CTerm
%DELETED%	\> \T{ A non introduce variabili } \>\NN
%DELETED%	\ubrace{\>}{(1)}  \s_x\T{ l'unica variabile che introduce e' }x \T{ ma
%DELETED%	solo se $x$ e' gia' presente, (cioe' $x\in \Pvar(W\s_x) \= x\in
%DELETED%	\Pvar(W) $)}\NN
%DELETED%	\T{quindi }
%DELETED%	  \FreeF(\s_x)= \Form\;\;(5.1)\NN
%DELETED%	E\in A_x \> E:\Var \longrightarrow  D=\CTerm 
%DELETED%	\ubrace{\>}{E\T{ non introduce variabili }} 
%DELETED%	\> \FreeF(E)=\Form\;\;(5.2)\NN
%DELETED%	(Y\s_x)E
%DELETED%	\ubrace{=}{(5.1),(5.2),\see{propsostituzioneliberaassociativa} 
%DELETED%	} Y(\s_xE) \ubrace{=}{(4)} Y(\s_x(\s_x\pgra{x\mapsto x^E}))\;\;(6)\NN
%DELETED%	\s_x\s_x=\s_x,\T{ infatti, presa } u\in \Var \T{ si ha:}\NN
%DELETED%	\qq u=x\> (u\s_x)\s_x=x =x\s_x\NN
%DELETED%	\qq u \neq x \> u\s_{x}=uA \in \CTer \> (uA)\s_x  \ubrace{=}{uA\in
%DELETED%	\CTer \T{ non
%DELETED%	ha variabili }} uA 
%DELETED%	\>  (u\s_x)\s_x=uA\s_x=uA = u\s_x\NN
%DELETED%	\s_x(\s_x\pgra{x\mapsto x^E}) 
%DELETED%	\ubrace{=}{\see{sostituzprop1} }
%DELETED%	(\ubrace{\s_x\s_x}{=\s_x})\pgra{x\mapsto x^E}=\s_x\pgra{x\mapsto x^E}
%DELETED%	\ubrace{=}{(4)}E \;\;(7)\NN
%DELETED%	(7),(6) \> (Y\s_x)E  = YE \;\;(8)
%DELETED%	}
%DELETED%	Infine,
%DELETED%	\eal{&(3)\>\forall E \in A_x \;\;v_{I}((Y\s_x)E) \ubrace{=}{(8)}
%DELETED%	v_I(YE) \ubrace{=}{\T{Hp. indutt.} }v_{I,E}(Y)
%DELETED%	=\t\=v_{I,A}((\forall x)Y)=\t \= v_{I,A}(Z)=\t
%DELETED%	}
	\end{prova}
	Analogamente per $(\exists x)$,
	\end{prova}
\end{proof}
\begin{prop}\label{propxvarianteinHerbrand}
	 Sia $M=(D,I)$ un modello di Herbrand e sia $A$ un assegnamento,
	 allora
	 \eal{&B\in A_x\= \exists d\in D:\;\;B=\pgra{x\mapsto d}A
	 }
	 In particolare esiste una biezione tra $A_x$ e $D$:
	 \eal{&\tau:A_x\rightarrow  D\NN
	 	B \mapsto x^B
	 }
	 la cui inversa e':
	 \eal{&\inv\tau:D\longrightarrow A_x\NN
	 d\mapsto \pgra{x\mapsto d}A
	 }
\end{prop}
\begin{proof}
Sia $d\in D$. Poiche' $D=\CTer$ si ha
\eal{&D=\CTer  \ubrace{\>}{\see{propterminichiusipreservati}} dC=d\;\;\forall
C\T{ assegnamento }\;\;(1)
}
quindi
\BEGINsufficiente
\eal{&x(\pgra{x\mapsto d}A) \ubrace{=}{(1)} dA=d\> \pgra{x\mapsto d}A \in A_x
}
\END
\BEGINpnecessaria
\eal{&B\in A_x\> x^B =d \in D,\T{ per qualche $d$},\;\;u^B=u^A\;\;\forall u
\neq x\NN
\qq  \ubrace{\>}{(1)} B=\pgra{x\mapsto d}A
}
\END
E' facile vedere che $\tau$ e' una biezione.
\end{proof}
\begin{prop}\label{herbrandsoddisfacibilitasostituzioni}
	Sia $M=(D,I)$ un modello di Herbrand, $Y\in \Form$, allora
	\eal{&1.\;\;M\models \uline{(\forall x)Y}
	\= \forall d\in D\;\;M\models Y\pgra{x\mapsto d}\NN
2.\;\;	\uline{(\exists x)Y} \in \CForm
	\> \pton{M\models \uline{(\exists x)Y}   \=\exists  d\in D:\;\;M\models Y\pgra{x\mapsto d}}
	}
\end{prop}
\begin{proof}
	Sia $A$ un assegnamento, 
	\step{}{Dim. 1.}
	\begin{prova}
		\BEGINpnecsuf
		
\eal{&M\models \uline{(\forall x)Y}
\= \forall A\T{ assegn. } 
\;\;v_{I,A}(\uline{(\forall x)Y})=\t
\=  \forall A\T{ assegn. }
\;\;\forall B\in A_x\;\;v_{I,B}(Y)=\t\=\NN
\ubrace{\=}{\see{propxvarianteinHerbrand}} 
 \forall A\T{ assegn. }
 \;\;\forall d\in D\;\;v_{I,\pgra{x\mapsto d}A}(Y)=\t\;\;(1)\NN
 v_{I,\pgra{x\mapsto d}A}(Y)
 \ubrace{=}{3. \T{ di }\see{propvarieHerbrand}} 
 v_{I}(Y(\pgra{x\mapsto d}A))
 \ubrace{=}{\FreeF(\pgra{x\mapsto
 d})=\FreeF(A)=\Form,\;\see{propsostituzioneliberaassociativa} }
 v_I ((Y\pgra{x\mapsto d})A)=\NN
  \ubrace{=}{3. \T{ di }\see{propvarieHerbrand}} 
  v_{I,A} (Y\pgra{x\mapsto d})\;\;(2)\NN
  (1) \ubrace{\=}{(2)} \>   \forall A\T{ assegn. }
 \;\;\forall d\in D\;\; v_{I,A} (Y\pgra{x\mapsto d})=\t
 \= \forall d\in D\;\;  \forall A\T{ assegn. }\;\; v_{I,A} (Y\pgra{x\mapsto
 d})=\t\=\NN
 \= \forall d\in D\;\;  M\models Y\pgra{x\mapsto d}
		}
		\END
	\end{prova}
	\step{}{Dim. 2.}
	\begin{prova}
		\BEGINpnecsuf
\eal{&M\models \uline{(\exists x)Y}
\= \forall A\T{ assegn. } 
\;\;v_{I,A}(\uline{(\exists x)Y})=\t
\=  \forall A\T{ assegn. }
\;\;\exists B\in A_x:\;\;v_{I,B}(Y)=\t\=\NN
\ubrace{\=}{\see{propxvarianteinHerbrand}} 
 \forall A\T{ assegn. }
 \;\;\exists d\in D\;\;v_{I,\pgra{x\mapsto d}A}(Y)=\t\;\;(1)\NN
 v_{I,\pgra{x\mapsto d}A}(Y)  \ubrace{=}{\T{come prima}} 
  v_{I,A} (Y\pgra{x\mapsto d})\;\;(2)\NN
  (1) \ubrace{\=}{(2)} \>   \forall A\T{ assegn. }
  \;\;\exists d\in D\;\; v_{I,A} (Y\pgra{x\mapsto d})=\t\;\;(3)}
  \step{}{
  Fissato un qualsiasi $d\in D$, abbiamo
 \eal{& v_{I,A} (Y\pgra{x\mapsto d})= v_{I} (Y\pgra{x\mapsto d})\;\;(4)
  }
  }
  \begin{prova}
  Infatti,
  \eal{& \sist{\uline{(\exists x)Y} \in \CForm\>
   \Free(Y)\(\pgra{x}\\
   d\in D=\CTer } \>  \Free(Y\pgra{x\mapsto d})=\0 
   \= Y\pgra{x\mapsto d}) \in \CForm \>\NN
   \ubrace{\>}{\see{propterminichiusiindipendenzaA}} 
  v_{I,A} (Y\pgra{x\mapsto d})= v_{I} (Y\pgra{x\mapsto d})
  }
  \end{prova}
  \eal{&(3)  \ubrace{\=}{(4)}  \forall A\T{ assegn. }
  \;\;\exists d\in D\;\; v_{I} (Y\pgra{x\mapsto d})=\t
  \= \exists d\in D\;\;\forall A\;\;v_{I} (Y\pgra{x\mapsto d})=\t\=\NN
  \= \exists d\in D\;\;\forall A\;\;v_{I,A} (Y\pgra{x\mapsto d})=\t
  \=\exists d\in D\;\; M\models Y\pgra{x\mapsto d}
  }
		\END
	\end{prova}
\end{proof}
\subsection{Notazione uniforme}
\def\g{{\gamma}}
\def\d{{\delta}}
\begin{defn}
	Cosi' come abbiamo fatto in \see{formulealphabetadef}, possiamo
	suddividere le formule in $4$ categorie: le formule $\alpha$, $\beta$,
	$\gamma$,$\delta$.\\
	Le $\alpha$ e le $\beta$ sono le stesse di quelle gia' viste. Invece,
	per formule $\gamma$, $\delta$ sono cosi' definite:
	\eal{&\g \T{ e' una } \T{$\g$-formula } \definizione{\=}
\sist{
\g\in \pgra{\formula{(\forall x)Y},\;\;\formula{\NOT(\exists x)Y}\;|
\;Y\in \Form,\;\;x\in \Var}
\\
\models \formula{\g\=(\forall y)\g(y)},\T{ con } y\in
\Var\-\Var(\g)\U\pgra{x},\;
\g(t)\in \pgra{Y\pgra{x\mapsto t},\;\NOT Y\pgra{x\mapsto t}}
,\;\forall t\in \Term
}
\NN
\d \T{ e' una } \T{$\d$-formula } \definizione{\=} 
\sist{
\d\in \pgra{\formula{(\exists  x)Y},\;\;\formula{\NOT(\forall x)Y}\;|
\;Y\in \Form,\;\;x\in \Var}
\\
\models \formula{\d\=\pton{\exists t}\d(t)},\T{ con } y\in
\Var\-\Var(\d)\U\pgra{x},\; 
\d(t)\in \pgra{Y\pgra{x\mapsto t},\;\NOT Y\pgra{x\mapsto t}},\;
\forall\;t\in \Term
}
}
$\g(t)$ e' una funzione $\g(t):\Term\longrightarrow \Form$ e si chiama
\emph{componente} o \iemph{istanza} della $\g$-formula $\g$.\\
Discorso analogo per $\d(t)$.\\

Ecco la lista schematica delle $\g$ e $\d$ formule e delle relative istanze.
	\def\invnot{\invisible{\NOT}}
	\begin{itemize}
		\item $\g$-formula 
	\begin{center}
	\begin{tabular}{c|c}
		$(\forall x)Y $&$ Y\pgra{x\mapsto t} $\\
		$\NOT(\exists x)Y $&$\NOT Y\pgra{x\mapsto t} $
	\end{tabular}
	\end{center}
	Definiamo $\Formg$ come l'insieme delle $\g$-formule.
		\item $\b$-formula
	\begin{center}
	\begin{tabular}{c|c}
		$(\exists x)Y $&$ Y\pgra{x\mapsto t} $\\
		$\NOT(\forall x)Y $&$\NOT Y\pgra{x\mapsto t} $
	\end{tabular}
	\end{center}
	Definiamo $\Formd$ come l'insieme delle $\d$-formule.
	\end{itemize}
\end{defn}
\begin{rem}\label{remgammaistanzax}
	Se $\g\in \pgra{(\exists x)Y, \;\;\NOT(\forall x)Y}$
	 e 
	$\g(t)\in\pgra{Y\pgra{x\mapsto t}, \NOT Y\pgra{x\mapsto t} }$ e' l'istanza di $\g$, allora 
	\eal{&\g(t)= Y\pgra{x\mapsto t} \>   \g(x)=Y\NN
	\g(t)=\NOT Y\pgra{x\mapsto t} \> \g(x)=\NOT Y
	}
	e quindi
	\eal{&\g(t)=\g(x)\pgra{x\mapsto t}}
	Questa osservazione ci fara' comodo in seguito.
\end{rem}
\begin{prop}\label{equivalenzagammadelta}
	\eal{&
	\g\in \Formg,\;\;y
	\in\Var\-\pton{\Var(\g)\U\pgra{x}} \> \models \formula{\g\=(\forall y)\g(y)}\NN
	\d\in \Formd,\;\;y\in\Var\-\pton{\Var(\d)\U\pgra{x}} \> \models \formula{\d\=(\exists y)\d(y)}
	}
	dove $x$ e' la variabile del quantificatore di $\g$, ad esempio,
	$\g=(\forall x)Z$.
%	NOTA: a priori, se non conosciamo effettivamente la formula $\g$, non
%	possiamo sapere chi e' esattamente $\g(y)$. Ovvero, nelle ipotesi di
%	sopra non possiamo scrivere
%	\eal{&\g(t)=\g\pgra{x\mapsto t},\;\;\T{ con $x\in \Var$ }
%	}
%	oppure
%	\eal{&\g(t)=\g
%	}
\end{prop}
\begin{prop}\label{SUgsoddisfacibilesseSuggtsoddisfacibile}
	Sia $S\U\pgra{\g}\(\CForm$, con $\g$ $\g$-formula, allora
	\eal{&S\U\pgra{\g} \T{ soddisfacibile } 
	\= \forall t\in \CTer \;\;S\U\pgra{\g,\g(t)}\T{ e' soddisfacibile}
	}
	Sia $S\U\pgra{\d}\(\CForm$, con $\d$ $\d$-formula, allora
	\eal{&S\U\pgra{\d} \T{ soddisfacibile } 
	\= \forall p\in \F_0\-\F_0(S\U\pgra{\d}):\; \;\;S\U\pgra{\d,\d(p)}\T{ e' soddisfacibile}
	}
	nota\footnote{con $\F_0(S\U\pgra{\d})$ intendiamo tutte le costanti
	presenti nelle formule $S\U\pgra{\d}$}
\end{prop}
\begin{proof}
	\step{}{Dim. $1.$}
	\begin{prova}
		\BEGINsufficiente
		Immediato in quanto, $S\U\pgra{\g} \(S\U\pgra{\g,\g(t)}$
		\END
		\BEGINpnecessaria
		
\eal{&S\U\pgra{\g} \T{ soddisfacibile }    
\> \exists M=(D,I)\T{ modello t.c. }M\T{ soddisfa } S\U\pgra{\g} 
\>\NN
\>\exists A\T{ assegnamento: }v_{I,A}(Y)=\t\;\;\forall Y\in S\U\pgra{\g} 
\ubrace{\=}{S\U\pgra{\g} \(\CForm,\;\see{propveritaperfomulechiuse},
\;\see{propterminichiusiindipendenzaA}
} M\models S\U\pgra{\g} 
\> M\models \g\>\NN
\ubrace{\>}{\see{equivalenzagammadelta},\see{propequivalenzanelmodelloequivalenzaveritas}}
M\models (\forall x)\g(x)
\ubrace{\>}{
	\see{propveritadiperogni}
	} M\models \g(x)
	\> v_{I,A}(\g(x))=\t\;\;\forall A\;\;(1)\NN
\T{Sia $A'$ un assegnamento t.c. }x^{A'}=t^I\;\;(2)\NN
v_{I,A'}(\g(t)) \ubrace{=}{\see{remgammaistanzax}} v_{I,A'}(\g(x)\pgra{x\mapsto t})  \ubrace{=}{(2),
\see{propinterpretazionetermineassegnamento}}  v_{I,A'}(\g(x)) \ubrace{=}{(1)} \t
}
Quindi con $A'$ riusciamo a soddisfare $\g(t)$. Poiche' $M\models S\U\pgra{\g}$,
$S\U\pgra{\g} $ e' soddisfatto da qualsiasi $A$, in particolare da $A'$.
Quindi $A'$ soddisfa $ S\U\pgra{\g,\;\g(t)}$.
		\END
		\step{}{Dim. $2.$}
		\begin{prova}
Analogamente a prima.
\BEGINsufficiente
Immediato in quanto, $S\U\pgra{\d} \(S\U\pgra{\d,\d(t)}$
\END
\BEGINpnecessaria
Come prima abbiamo
\eal{&\exists M=(D,I):\;\;M\models S\U\pgra{\d} \> M\models \d
\> M\models (\exists x)\d(x) }
Inoltre
\eal{&M\models (\exists x)\d(x)
\> \forall A\;\;\exists B\in
A_x:\;\;v_{I,B}(\d(x))=\t\;\;(1)\NN
\T{Sia $p\in \F_0\-\F_0(S\U\pgra{\d})$}\NN
\T{Fissiamo un particolare $A$ e sia $J$ una interpretazione di $D$ tale che
sia uguale a $I$ tranne in $p$ e sia $p^{J}=x^{B}$}\NN
\T{Poiche' $p\notin \Term(S\U\pgra{\d})$, le intepretazioni delle formule
$S\U\pgra{\d}$ rimangono uguali sia}\NN
\T{ in $M=(D,I)$ che in $M'=(D,J)$, quindi, la $(1)$ continua a valere per il
modello $M'=(D,J)$: } \NN
\qq M'\models S\U\pgra{\d},\; M'\models \d,\;\;\;v_{J,B}(\d(x))=\t\;\;(1')\NN
v_{J,B}(\d(p))  \ubrace{=}{\see{remgammaistanzax}}  v_{J,B}(\d(x)\pgra{x\mapsto p})
\ubrace{=}{x^{B}=p^J,\;\;\see{propinterpretazionetermineassegnamento}}
v_{J,B}(\d(x))    \ubrace{=}{(1')} \t
}
Quindi con il modello $M'$ siamo riusciti a soddisfare $S\U\pgra{\d,\d(p)}$
\END
		\end{prova}
	\end{prova}
\end{proof}
\begin{thm}\label{thmabgdinduzioneIordine}
	$\a,\b,\g,\d$-Induzione.\\
	Cosi' come abbiamo fatto in \see{thmabinduzione}, adesso presentiamo una tecnica di induzione strutturale che si basa
	sulle $\a,\b,\g,\d$-formule.\\
Sia $Q\( \Form$.
Se valgono le seguenti:
\eal{&1.\;\;\ATform,\NOT\ATform \( Q,\;\;\T{ dove }\NOT\ATform=\pgra{\NOT
X\;|\;X\in \ATform}\NN
2.\;\;X\in Q\> \NOT\NOT X\in Q\NN
3.\;\;\a\in \Forma,\;\a_1,\a_2\in Q \> \a\in Q\NN
4.\;\;\b\in \Formb,\;\b_1,\b_2\in Q \> \b\in Q\NN
5.\;\;\g\in \Formg,\;\forall t\in \Term\;\;\g(t)\in Q \> \g\in Q\NN
6.\;\;\d\in \Formd,\;\forall t\in \Term\;\;\d(t)\in Q \> \d\in Q
}
allora
\eal{&Q=\Form}
\end{thm}
\begin{proof}
	Si procede proprio come in  \see{thmabinduzione}: poniamo quindi
	\eal{&Q'=\pgra{X\;|\;X,\NOT X\in Q} \( Q \( \Form}
	Dimostriamo solo i passi induttivi riguardanti i quantificatori. Nota,
	stavolta utilizziamo un induzione sul numero di costruttori (cosi'
	come abbiamo gia' fatto nella dimostrazione del punto 
	3. di \see{propvarieHerbrand}).\\
Dimostriamo che $\g=(\forall x)X\in Q'$
\eal{&\T{Per Hp induttiva } X, X\pgra{x\mapsto t }\in Q'
\> X,\;\NOT X,\;X\pgra{x\mapsto t },\;\NOT X\pgra{x\mapsto t }  \in
Q\;\;(1)\NN
\g(t)  \ubrace{=}{\see{remgammaistanzax}}  X\pgra{x\mapsto t} \ubrace{\in}{(1)} 
Q  \ubrace{\>}{5.} \g\in Q\NN
\NOT \g = \d,\;\d(x)=\NOT X \> \d(t)=(\NOT X)\pgra{x\mapsto t} \ubrace{\in Q}{(1)}  
\ubrace{\>}{6.} \d=\NOT \g\in Q\NN
\g,\NOT \g\in Q \> \g\in Q'
			}
Analogamente si procede per il caso $(\exists x)$.
\end{proof}
\begin{prop}
	Cosi' come abbiamo fatto in \see{formablibera}, anche con le
	$\a,\b,\g,\d$-formule possiamo costruire senza problemi funzioni
	induttive.
\end{prop}
\subsection{Sistemi di deduzione}

\def\paar{\oname{Par}}
\def\Paar{{\oname{Par}}}
Adesso vedremo l'estensione alla logica del I ordine dei sistemi di deduzione
della logica proposizionale. Supporremo che il linguaggio $L$ in cui operiamo
contiene una infinita' numerabile di costanti ``supplementari'', che
chiameremo \emph{parametri}. In altre
parole, se $F_0$ e' l'insieme delle costanti di $L$, allora utilizzeremo il
linguaggio $L^{\paar}$ che ha $F_{0}\U \Paar$ come insieme delle costanti e 
$|\Paar |=|\mathbb{N}|$.

Inoltre, utilizzeremo principalmente formule chiuse ($\CTerm$).
\begin{thm}
Il problema di verificare la validita' di una formula del I ordine e'
indecidibile, ovvero non esiste alcun algoritmo che data una formula $Y\in
\Form$ come input, si ferma e dice se $Y$ e' valida oppure no.\\

Per questo motivo, tutti i sistemi di deduzione che vedremo potrebbero non
fermarsi mai per qualche formula.
\end{thm}
\begin{proof}
Tutti i sistemi di deduzione sono corretti e completi (lo vedremo in seguito), 	ovvero
\eal{&\vdash X \= \models X\;\;(1)}
Se, per assurdo, un sistema di deduzione giunge sempre a termine per qualsiasi formula $X$, possiamo sapere se 
\eal{&\vdash X \T{ oppure } \not\vdash X}
e quindi dalla $(1)$ sappiamo se 
\eal{&\models X\T{ oppure } \not\models X}
Quindi, utilizzando il sistema di deduzione abbiamo un algoritmo che risolve
il problema di verificare la validita' di una formula. Ma questo e' assurdo
perche' quest'ultimo problema e' indecidibile.\\
Quindi, esistera' almeno una formula che non ferma il sistema di deduzione.\\

Includiamo qui di seguito la dimostrazione dell'indecibilita':

\ifpdf
\includepdf[frame=true,pages=-]{fig/fol_undecidible.pdf}
\fi
\end{proof}

\subsubsection{Tableaux I ordine}
\begin{defn}\label{deftabIordine}
	I tableaux per la logica del I ordine sono un estensione dei tableaux
	della logica proposizionale (\vedi{deftabl}). Le uniche due regole che
	vengono aggiunte sono quelle riguardanti le $\g$ e $\d$ formule:
	\eal{&
	6.\qq \Se N=\formula{\g}:\qq\qq\;\;\NN
	\qq \qq r:=r,[\g(t)]\;\;\T{ con $t\in \CTerm\U\Paar$} \NN
	  7.\qq \Se N=\formula{\d}:\qq\qq\NN
	  \qq\qq r:r,[\d(p)]\;\;\T{ con $p\in\Paar\-\Paar(r)$, ovvero $p$ e' un
	  parametro nuovo per il ramo $r$}
	}
%	Nota: in linea di massima conviene applicare prima la $7.$ e poi la $6.$
In pratica,  la $7.$ dice che se $(\exists x)Y(x)$ e' vera, allora lo sara'
anche $Y(p)$ per qualche $p$.
\end{defn}
\begin{exemp}\qq\\
	\begin{center}
	\ctree{ [ $\NOT \pton{	\pton{(\forall x) \pton{P(x) \| Q(x)} }\> \pton{(\exists x)P(x) \| (\forall x)Q(x)} }$ [ $\pton{(\forall x) \pton{P(x) \| Q(x)} } $ [ $\NOT \pton{(\exists x)P(x) \| (\forall x)Q(x)} $ [ $\NOT (\exists x) P(x) $ [ $\NOT  (\forall x)Q(x)$ [ $\NOT Q(c) $ [ $\NOT P(c)$ [$ P(c)  \|  Q(c) $ [$P(c)$] [$Q(c)$] ] ] ] ] ] ] ] ] }
\end{center}
In ordine abbiamo applicato le seguenti regole:
\eal{&
\T{Riga 1 } \ubrace{\longrightarrow}{\T{regola 4.}}  \T{Riga 2,3}\NN
\T{Riga 3 } \ubrace{\longrightarrow}{\T{regola 4.}}  \T{Riga 4,5}\NN
\T{Riga 5 } \ubrace{\longrightarrow}{\T{regola 7.}}  \T{Riga 6}\NN
\T{Riga 4 } \ubrace{\longrightarrow}{\T{regola 6.}}  \T{Riga 7}\NN
\T{Riga 2 } \ubrace{\longrightarrow}{\T{regola 6.}}  \T{Riga 8}\NN
\T{Riga 8 } \ubrace{\longrightarrow}{\T{regola 5.}}  \T{Riga 9}
}
Notiamo anche che abbiamo ottenuto un tableaux chiuso.
\end{exemp}
\begin{thm} di correttezza per i tableaux del I
	ordine.\\\label{correttezzatableauxIordine}
	Sia $X\in \CForm$, allora
	\eal{&\vdash X \> \models X}
\end{thm}
\begin{proof}
	La dimostrazione e' la stessa di quella vista in
	\see{thmdicorrettezza}. Si deve solo estendere il lemma
	\see{TsoddalloraTstarsodd}: per far questo, continuiamo la
	dimostrazione di \see{TsoddalloraTstarsodd}, verificando che
	l'applicazione delle regole $6., 7.$ (per le $\g,\d$-formule)
	genera ancora formule soddisfacibili e chiuse ($\in \CTer$).
	\case{$r'$ e' stato ottenuto con la regola $6.$}
	\begin{prova}
		Quindi, \eal{&
		\exists N\in r:\;N=\g\NN
		r'=r,\g(t)
		}
		Poniamo $S=r$. Nota che $\g=N\in S$. Per Hp $r$ contiene solo
		formule chiuse ($\in \CTer$), quindi per il lemma
		\see{SUgsoddisfacibilesseSuggtsoddisfacibile} abbiamo:
		\eal{&S\(\CForm \T{ soddisfacibile } \> S\U\pgra{\g(t)}\T{
		soddisfacibile}
		}
		e poiche' $r'=S\U\pgra{\g(t)}\(\CTer$, abbiamo la tesi.
	\end{prova}
	\case{$r'$ e' stato ottenuto con la regola $7.$}
	\begin{prova}
		Si procede analogamente a prima.
	\end{prova}
\end{proof}
\subsubsection{Risoluzioni I ordine}
\begin{defn}
	Anche le risoluzioni vengono estese come per i Tableaux, aggiungendo
	le regole per le  $\g$ e $\d$.
\end{defn}
\begin{exemp}\qq\\
	\begin{center}
		\eal{&\pqua{\NOT \pton{	\pton{(\forall x) \pton{P(x) \| Q(x)}
		}\> \pton{(\exists x)P(x) \| (\forall x)Q(x)} } }\NN
		\pqua{\pton{(\forall x) \pton{P(x) \| Q(x)} } }\NN
		\pqua{\NOT \pton{(\exists x)P(x) \| (\forall x)Q(x)}}\NN
		\pqua{\NOT (\exists x) P(x) }\NN
		\pqua{\NOT  (\forall x)Q(x)}\NN
		\pqua{\NOT Q(c)}\NN
		\pqua{\NOT P(c)}\NN
		\pqua{ P(c)  \|  Q(c) }\NN
		\pqua{P(c),Q(c)}\NN
		\pqua{Q(c)}\NN
		\pqua{}\NN
	}
\end{center}
\end{exemp}
\begin{thm} di correttezza per le risoluzioni del I ordine.\\
	Sia $X\in \CForm$, allora
	\eal{&\vdash X \> \models X}
\end{thm}
\begin{proof}
	Cosi' come abbiamo fatto per la dimostrazione di
	\see{correttezzatableauxIordine}, si estende il lemma
	\see{RissoddalloraRisstarsodd}. Dopodiche' si puo' usare per intero la
	dimostrazione del thm \see{thmdicorrettezzarisol}.
\end{proof}
\subsubsection{Hilbert del I ordine}
\def\A{{\mathcal{A}}}
\begin{defn}
	Si usano gli stessi assiomi di \see{defhilbert}, con l'aggiunta del
	\eal{&\A_{10}=\pgra{\formula{\g\>\g(t)}\;|\;\g\in\Formg,\;\;\T{ $t\in
	\CTer$ }}
	}
	In piu', oltre al modus ponens si usa la regola della
	\iemph{Generalizzazione Universale} (g.u.):
	\eal{&S\U\pgra{\formula{Y\> \g(p)}}\vdash \formula{Y\> \g}
	}
	dove $p\in\Paar\-\Paar(S\U\pgra{\formula{Y\> \g}})$  e' un parametro
	non contenuto ne' $S$, ne' in $\formula{Y\> \g}$.
\end{defn}
\begin{prop}\label{propassioma10debole}
	Sia $S\(\Form,\;p\in \Paar\-\Paar(S),\g\in \Formg$, si ha
	\eal{&S\U\pgra{\g(p)}\vdash \g}
\end{prop}
\begin{proof}
	\eal{&
	1.\;\;\g(p)&\in \pgra{\g(p)}\NN
2.\;\;	\g(p)\>\t&\in \A_4\NN
3.\;\;	\t&m.p.\NN
4.\;\;	\g(p)\> (\t\>\g(p))&\in \A_1\NN
5.\;\;	\t\>\g(p)&m.p.\NN
6.\;\;	\t\>\g&g.u.\NN
7.\;\;	\g&\T{ m.p. tra la 3. e 6.}
	}
\end{proof}
\begin{thm}
	di deduzione.
	\eal{&S\U \pgra{X}\vdash Y \= S\vdash \formula{X\>Y}}
\end{thm}
\begin{proof}
	\BEGINsufficiente
	Si procede come per la dimostrazione di \see{thmdeduzioneTarski}.
	\END
	\BEGINpnecessaria
	Si procede come per la dimostrazione di \see{thmdeduzioneTarski}, ma
	stavolta abbiamo un caso in piu':
\case{$Z_i$ ottenuto da $Z_h$ con la g.u., dove $h<i$}
\begin{prova}
	Supponiamo che $Z_h=\formula{Y\>\g(p)},\;\;Z_i=\formula{Y\>\g}$. Nella derivazione
	$Z_1,\dots,Z_n$ abbiamo quindi un pezzo del tipo:
	\eal{&Z_h=\formula{Y\>\g(p)}\NN
	Z_i
	}
	Per Hp induttiva riusciamo a dimostrare da $S$ la seguente formula:
	\eal{&X\> Z_h
	}
	ovvero, abbiamo una dimostrazione a partire da $S$ del tipo:
	\eal{&\vdots\NN
	X\> \pton{Y\>\g(p)}\NN
	}
	da questa creiamo la seguente:
	\eal{&\vdots\NN
	1.\;\;	X\> \pton{Y\>\g(p)}\NN
	2.\;\; (X \& Y)\> \g(p)&\T{ dalla 1. per la logica proposizionale }\NN
	3.\;\; (X \& Y)\> \g &\T{ g.u.}
	}
Abbiamo cosi' trovato una dimostrazione di $X\>Z_i$ a partire da $S$.\\
Nota: abbiamo potuto inserire la $2.$ perche' nella logica proposizionale si
ha
\eal{&
\pgra{\formula{\pton{A\>(B\>C)}}}
\models \formula{(A \& B)\>C}
}
allora, per il thm di completezza dei sistemi di Hilbert (\vedi{thmhilbert}),
riusciamo a trovare una dimostrazione di $\formula{(X \& Y)\> \g(p)}$ a
partire da $\formula{ X\> \pton{Y\>\g(p)}}$
\end{prova}
	\END
\end{proof}
\begin{prop}
	\def\F{{\phi}}
	\label{propHilbertausiliaraperlacompletezzadelta}
	\eal{&1.\;\;
	S\vdash \formula{\d \> \d(p)}\NN
	2.\;\;S\U\pgra{\formula{\delta(p)\>\F}}
	\vdash \formula{\d\>\F}
	}
	con $p\in \Paar\-\Paar(S\U\pgra{\d\>\F})$.
\end{prop}
\begin{proof}
	\def\F{{\phi}}
	\step{}{Dim. 1.}
	\begin{prova}
		Per la prop \see{propassioma10debole} e il thm di deduzione abbiamo:
	\eal{&S'\U\pgra{\g(p)}\vdash \g
	\= S'\vdash \formula{\g(p) \> \g}
	}
	In particolare, posto $\g=\NOT \d$, si ha 
	\eal{&S' \vdash \formula{\NOT \d(p) \> \NOT \d}\;\;(1)
	}
	Quindi:
	\eal{&
	1.\;\;\NOT \d(p) \> \NOT \d& \T{ per la (1)}\NN
	2.\;\;\d \> \d(p)&\T{ dalla $2.$, per la logica proposizionale}
	}
	\end{prova}
	\step{}{Dim. 2.}
	\begin{prova}
	Posto $S'=S\U\pgra{\formula{\delta(p)\>\F}}$,
	Costruiamo la seguente derivazione:
	\eal{&1.\;\;\d(p)\> \F& \in S'\NN
	2.\;\;\d \> \d(p)&\T{ passo 1.}\NN
	3.\;\; \d\> \F&\T{ dalla $1.$ e $3.$, per la logica proposizionale}}
	\end{prova}
\end{proof}
\begin{thm}
	di correttezza di Hilbert al I ordine.\\
	Sia $S\(\CForm$ un insieme di enunciati, $X\in \CForm$, allora
	\eal{&S\vdash X \> S\models X}
\end{thm}
\begin{proof}
	Riprendiamo la dimostrazione di \see{thmhilbert}.\\
	Nel caso base dobbiamo considerare anche l'assioma $\A_{10}$: basta
	verificare che 
	\eal{&\models \pgra{\g\>\g(t)}
	}
	ovvero che l'assioma $10$ e' una formula valida.\\
	Per il passo induttivo abbiamo un caso in piu':
	\case{$X_i$ ottenuto da $X_j$ con la g.u}
	\begin{prova}Abbiamo  una dimostrazione del tipo:
		\eal{&X_j=\formula{Y\>\g(p)}\NN
		\vdots\NN
		X_i=\formula{Y\>\g}
		}
		Per Hp induttiva
		\eal{&M=(D,I)\models S \> M\models \formula{Y\>\g(p) }
		\= \forall A\T{ assegnamento di
		}M\;\;v_{I,A}(Y)\>v_{I,A}(\g(p))\;\;(1)
		}
		Vogliamo dimostrare che $M\models Y\>\g$, ovvero
		\eal{&v_{I,A}(Y) \> v_{I,A}(\g)\;\;\forall A
		}
		Fissiamo $A$ e supponiamo $v_{I,A}(Y) =\t$. Dimostriamo che
		$v_{I,A}(\g)=\t$.
		\eal{&v_{I,A}(\g)=\t\= 
		\forall B\in A_xv_{I,B}(\g(x))=\t\;\;(2)\NN
\T{Fissiamo $B$.	Sia $J$ una interpretazione di $D$ tale che
	sia uguale a $I$ tranne in $p$ e sia $p^{J}=x^{B}$. Sia $M'=(D,J)$}
		}
		Poiche' $p\notin \Paar(S)$, si ha
		\eal{&M  \models S\= M'\models S  \ubrace{\>}{\T{Hp induttiva}} 
		M'\models \formula{Y\>\g(p)} \= \forall A'\T{ assegn. in
		}M'\;\;v_{J,A'}(Y)\>v_{J,A'}(\g(p))\;\;(1') 
		}
		Notiamo anche che gli assegnamenti di $M$ e quelli di $M'$
		sono gli stessi, in quanto $D$ e' invariato, quindi dalla
		$(1')$, ponendo $A'=A$, abbiamo:
		\eal{&v_{J,A}(Y)\>v_{J,A}(\g(p))\;\;(1'')\NN
		\t=v_{I,A}(Y)  \ubrace{=}{p\notin \Paar(Y\>\g)}
		v_{J,A}(Y) 
		\ubrace{\>}{(1'')} v_{J,A}(\g(p))=\t\;\;(3)\NN
		v_{J,A}(\g(p))  \ubrace{=}{B\in A_x,\;\;x\notin
		\Free(\g(p))=\Free(\g(x)\pgra{x\mapsto p})} 
		v_{J,B}(\g(p))  \ubrace{=}{\see{remgammaistanzax}}
		v_{J,B}(\g(x)\pgra{x\mapsto p})
		\ubrace{=}{x^B=p^J,\;\;\see{propinterpretazionetermineassegnamento}
		}
		v_{J,B}(\g(x)) =\NN
		\ubrace{=}{p\notin \paar(\formula{Y\>\g}) \>
		p\notin \paar(\g(x))} v_{I,B}(\g(x))\;\;(4)
		}
		Per l'arbitrarieta' di $B$ e per la $(2),(4)$ abbiamo quindi:
		\eal{&v_{I,A}(\g)=\t
		}
		ovvero la tesi.
	\end{prova}
\end{proof}
\subsubsection{Deduzione naturale I ordine}
\begin{defn}
	Anche il sistema di deduzione naturale viene esteso aggiungendo due
	regole:
	\eal{&D12:\;\;\g \vdash \g(t),\;\;\T{ con $t\in\CTer$ }\NN
	D13:\;\;S\U\pgra{\d}\vdash \d(p),\;\;\T{ con
	$p\in\Paar\-\Paar(S\U\pgra{\d})$}
	}
\end{defn}
\begin{thm}
	 di correttezza. Sia $S\( \CForm,\;X\in \CForm$, allora\\
	 \eal{&S\vdash X\> S\models  X}
\end{thm}
\begin{proof}
	Anche qui riprendiamo la dimostrazione del thm \see{thmdideduzione}.
 Supponiamo quindi $X_n=\g(t)\notin S\U A_n$ e dimostriamo che
 \eal{&S\U A_n \models X_n
 }
 Dato che $X_n\notin S\U A_n$,  $X_n$ e' stato ricavato con la $D_{12}$,
 ovvero
		\eal{&X_n=\g(t)\NN
		\g=X_m,\;\;m<n\NN
		\T{Hp induttiva} \> S\U A_{m}\models \g
		\;\;(*)}
		Per utilizzare la $D_{12}$, la $X_m$ deve essere una formula
		attiva per $X_n$, ovvero non deve stare in scatole chiuse
		in cui $X_n$ non e' presente. In altre parole, 
		\eal{&A_m\(A_n}
		quindi
		\eal{& 
		M\models S\U A_n  \ubrace{\>}{A_m\(A_n} M\models S\U A_m
		\ubrace{\>}{(*)}  M\models \g
		%\ubrace{\>}{\see{SUgsoddisfacibilesseSuggtsoddisfacibile}}
		\> \forall A\;\;v_{I,A}(\g(x))=\t\>\NN
		\>\forall A:\;\;x^{A}=t^I\;\;\;v_{I,A}(\g(t))=
		v_{I,A}(\g(x)\pgra{x\mapsto t})=v_{I,A}(\g(x))=\t
		\ubrace{\>}{\g\in \CForm \> \g(t)\in \CForm} 
		v_{I}(\g(t))=\t \> M\models \g(t)
		}
		Abbiamo cosi'  dimostrato che 
		\eal{&S\U A_n\models \g(t)}
		Per il caso $X_n=\d(p)$:
		analogamente a prima:
		\eal{&M\models A_n  \ubrace{\>}{A_m\(A_n} 
		M \models S\U A_m 
		\> M \models \d\> \forall A \;\forall B\in A_x\;\;
		v_{I,B}(\d(x))=\t\;\;(*)\NN
		M\models \d(p) 
		\= \forall A\;\;v_{I,A}(\d(p))=\t\;\;(**)\NN
		\T{Fissato A, sia $B\in A_x$ t.c. $ x^{B}=p^I$ }\NN
		v_{I,A}(\d(p)) \ubrace{=}{x\notin \Free(\d(p))} v_{I,B}(\d(p))
		= v_{I,B}(\d(x)\pgra{x\mapsto p})
		\ubrace{=}{x^B=p^I} v_{I,B}(\d(x)) \ubrace{=}{(*)} \t
		}
		Quindi la $(**)$ e' vera.
\end{proof}
\subsection{Completezza semantica}
Per dimostrare i rispettivi teoremi di completezza semantica, dobbiamo
estendere il concetto di insieme di Hintikka (\vedi{Hintikka}) e di Proprieta'
di consistenza (\vedi{defpropcons}) alla logica del I ordine. Fatto cio',
sara' possibile convertire facilmente le dimostrazioni di completezza dei vari sistemi di deduzione dal caso proposizione a quello del I ordine.

\begin{defn}
	\ilabel{Hintikka I ordine}
	La seguente definizione e' l'estensione della def \see{Hintikka}.\\
	Sia $H\( \CForm$ un insieme di enunciati.\\
	$H$ e' un insieme di \emph{Hintikka}
	$\definizione{\=}$
	\eal{&1.\;\;R(t_1,\dots,t_n)\in \ATform \>
	\pton{R(t_1,\dots,t_n)\notin H \;\;\T{oppure}\;\; \NOT
	R(t_1,\dots,t_n) \notin
	H}\NN
	2.\;\;\NOT \true,\;\false \notin H \NN
	3.\;\;\NOT \NOT Z \in H \> Z\in H\NN
	4.\;\;\a \in H \> \a_1,\a_2\in H\NN
	5.\;\;\b\in H \> \b_1 \in H \T{ oppure } \b_2\in H\NN
	6.\;\;\g\in H \> \g(t) \in H\;\;\forall t\in \CTer\NN
	7.\;\;\d\in H \> \exists t\in \CTer:\;\d(t)\in \CTer
	}
\end{defn}
\begin{prop}\label{hintikkasoddisfacibileIordine}
	Supposto che $\CTer \neq \0$ e $H\(\CForm$, si ha
	\eal{&H\T{ Hintikka } \> H\T{ e' soddisfacibile}}
	In particolare $H$ sara' soddisfacibile in un modello di Herbrand.
\end{prop}
\begin{proof}
	\pfsketch{Sia $D=\CTer$. Costruiamo una interpretazione $I$ che soddisfa $H$.\\
	Per far cio' bastera' assegnare $\true$ ad ogni formula atomica in
	$H$. Gli assiomi di	$H$ garantiranno che tutte le formule
	costruite da quelle formule sono $\true$}
	Definiamo $I$:
	\eal{&
	I:\F\U\R \longrightarrow D\U \pgra{\T{funzioni su D}}\U
	\pgra{\T{relazioni su D}}\;\;(1)\NN
	c^I=c\;\;\forall c\in \F_0\NN
	f^I\T{ e' quella funzione cosi' definita: }
	f^I(t_1,\dots,t_n)=f(t_1,\dots,t_n)\;\;\forall t_i\in \CTer,\T{ nota
	che $f(t_1,\dots,t_n)\in \CTer=D$}\NN
	R^I\T{ e' la relazione cosi' definita: }
	R^I(t_1,\dots,t_n)= \sist{\t&R(t_1,\dots,t_n)\in H\\
	\f&\T{ altrimenti }}\;\;\forall t_i\in \CTer, \T{ ovvero }\NN
	\qq 
	(t_1,\dots,t_n) \in R^I \= R(t_1,\dots,t_n)\in H\;\;\forall t_i\in
	\CTer
	}
	Nota: nelle definizioni di sopra stiamo considerando solo termini
	$t_i$ chiusi perche' $D=\CTer$.\\
	Addesso dimostriamo per induzione (\vedi{thmabgdinduzioneIordine}) che
	\eal{&Y\in H \> (D,I)\models Y}
	\case{base}
	\begin{prova}
		\case{$Y= R(t_1,\dots,t_n)$}
		\begin{prova}
		\eal{&
		v_{I,A}(R(t_1,\dots,t_n)) = \t 
		\ubrace{\=}{Y\in H\(\CForm \> t_i\in
		\CTer,\;\;\see{propterminichiusiindipendenzaA}} 
		v_{I}(R(t_1,\dots,t_n)) = \t\=
		(t_1^{I},\dots,t_n^{I})  \in R^I 
		\ubrace{\=}{ (1)} 
		Y\in H
		}
		\end{prova}
		\case{$Y=\NOT R(t_1,\dots,t_n)$}
		\begin{prova}
			\eal{&\NOT R(t_1,\dots,t_n)
			\in H 
			\ubrace{\>}{H\T{ Hintikka } } 
			 R(t_1,\dots,t_n)\notin H 
			 \ubrace{\=}{(1)} 
			 (t_1,\dots,t_n) \notin R^I
			 \= v_I(R(t_1,\dots,t_n)) = \f \=\NN
			 \= v_I(\NOT R(t_1,\dots,t_n))=\t
			}			
		\end{prova}
		\case{$Y=\t$}
		\begin{prova}
		\eal{&v_I(\t)=\t
			}	
		\end{prova}

		\case{$Y=\f$}
		\begin{prova}
			Questo caso non si puo' verificare perche' $\f \notin
			H$
		\end{prova}
		\case{$Y=\NOT \t$}
		\begin{prova}
			Anche questo caso non si verifica
		\end{prova}
		\case{$Y=\NOT \f$}
		\begin{prova}
			\eal{&v_I(Y)=\NOT \f=\t}
		\end{prova}
	\end{prova}
	\case{$Y=\a$}
	\begin{prova}
		\eal{&Y=\a\in H \> \a_1,\a_2\in H  \ubrace{\>}{\T{Hp
		induttiva}} v_I(\a_1)=v_I(\a_2)=\t 
		\> v_I(\a)=\pton{v(\a_1)  \& v_I(\a_2)} = \t
		}
	\end{prova}
	\case{$Y=\b$}
	\begin{prova}
		Analogamente a prima.
	\end{prova}
	\case{$Y=\g$}
	\begin{prova}
		\eal{&Y=\g\in H \> \g(t)\in H\;\;\forall t\in D
		\ubrace{\>}{\T{Hp indutt}} v_I(\g(t))=\t \;\;\forall t\in D
		\= M\models \g(t)\;\;\forall t\in D 
		\= M\models \g\pgra{x\mapsto t} \;\;\forall t\in D\=\NN
		\ubrace{\=}{\see{herbrandsoddisfacibilitasostituzioni}}  M\models (\forall x)\g(x)
		}
	\end{prova}
	\case{$Y=\d$}
	\begin{prova}
		Analogamente a prima.
	\end{prova}
\end{proof}
\begin{defn}\ilabel{proprieta' di consistenza I ordine}
	\label{defpropconsIordine}
	Sia $C\(\P(\CForm(L^{\paar}))$, dove $\CForm(L^{\paar})$ sono le formule
	chiuse di $L^{\paar}$, estensione di $L$.\\
	$C$ e' una \emph{proprieta' di consistenza } di $L$ 
$\definizione{\=} \forall S \in C$
\eal{&1.\;\;R(t_1,\dots,t_n)\in \ATform \> R(t_1,\dots,t_n)\notin S  \T{
oppure }  \NOT R(t_1,\dots,t_n) \notin S\NN
2.\;\;\false,\;\NOT \true \notin S\NN
3.\;\;\NOT\NOT Z\in S \> S\U\pgra{Z}\in C\NN
4.\;\;\a\in S \> S\U\pgra{\a_1,\a_2}\in C\NN
5.\;\;\b\in S \> S\U\pgra{\b_1}\T{ oppure } S\U \pgra{\b_2}\in C\NN
6.\;\;\g\in S \> S\U\pgra{\g(t)} \in C\;\;\forall t\in \CTer(L^{\paar})\NN
7.\;\;\d\in S\> \exists p\in \Paar:\;\;S\U\pgra{\d(p)}\in C
}
\end{defn}
\begin{thm}
\label{thmdiesistenzamodelloIordine}
	di esistenza del modello per il I ordine.\\
Sia $C$ una proprieta' di consistenza, allora
\eal{&S\in C \> S\T{ e' soddisfacibile}}
In particolare $S$ e' soddisfacibile in un modello di Herbrand di
$L^{\paar}$.
\end{thm}
\begin{proof}
	Poiche' $\CTer(L^{\paar})$ e' numerabile, possiamo scrivere:
	\eal{&\CTer(L^{\paar})=\pgra{t_1,t_2,\dots}
	}
Consideriamo il seguente algoritmo:
	\eal{&
	T_0:=\pgra{(X,1)\;|\;X\in S}\NN
	U_0:=S\NN
	i:=0\NN
	\While T_i \neq \0\NN
	\qq (X,j):=\oname{Pop}(T_i, i)\NN
	\qq T_{i}:=T_i\-\pgra{(X,j)}\NN
	\qq \Se X:=\NOT \NOT Z:\NN
	\qq \qq T_{i+1}:=T_i\U \{(Z,1)\}\NN
	\qq \qq U_{i+1}:=U_i\U \{Z\}\NN
	\qq \Se X:=\a:\NN
	\qq \qq T_{i+1}:=T_i\U \{(\a_1,1),(\a_2,1)\}\NN
	\qq \qq U_{i+1}:=U_i\U \{\a_1,\a_2\}\NN
	\qq \Se X:=\b:\NN
	\qq \qq \Let b\in \pgra{\b_1,\b_2}:\;U_i\U\pgra{b} \in C\NN
	\qq \qq T_{i+1}:=T_i\U \{(b,1)\}\NN
	\qq \qq U_{i+1}:=U_i\U \{b\}\NN
	\qq \Se X:=\g:\NN
	\qq \qq \Se j+1 \le  | \CTer|:\NN
	\qq \qq \qq T_{i+1}:=T_i\U \{(\g(t_j),1), (\g,j+1)\}\NN
	\qq \qq \Altrimenti:\NN
	\qq \qq \qq  T_{i+1}:=T_i\U \{(\g(t_j),1)\}\NN
	\qq \qq U_{i+1}:=U_i\U\pgra{\g(t_j)} \NN
	\qq \Se X:=\d:\NN
	\qq \qq \Let p\in \Paar:\;\;U_i\U \pgra{\d(p)}\in C\NN
	\qq \qq T_{i+1}:=T_i\U \{(\d(p),1)\}\NN
        \qq \qq U_{i+1}:=U_i\U \{\d(p)\}\NN
	\qq i:=i+1
}
dove la funzione $\oname{Pop}$ e' cosi' definita:
\eal{&(X,j)=\oname{Pop}(T_i, i) \in T_i\T{ tale che }j=\min\pgra{k\in
\mathbb{N}\;|\;(X',k)\in T_i}\;\;(2)
}
$\oname{Pop}$ serve a pescare un elemento da $T_i$ in modo tale da  avere:
\eal{&
\forall i\;\forall (X,j)\in T_i\;\;\exists k\ge i:\;\; \oname{Pop}(T_k,
k)=(X,j)\;\;(2')
}
ovvero, in modo da prendere tutti gli elementi dei $T_i$ in un numero finito di
passi finito. Infatti, se non fosse rispettata la $(2)$, l'algoritmo potrebbe
cadere nel seguente loop infinito:
\eal{&
\oname{Pop}(T_0,0)=(X,j)=(\g,1) \in T_0\NN
T_1=T_0\U\pgra{(\g,2)}\NN
\oname{Pop}(T_1,1)=(X,j)=(\g,2) \in T_1\NN
T_2=T_1\U\pgra{(\g,3)}\NN
\vdots
}
oppure 
\eal{&
\oname{Pop}(T_0,0)=(X,j)=(\g,1) \in T_0\NN
T_1=T_0\U\pgra{(\g,2)}\NN
\oname{Pop}(T_1,1)=(X,j)=(\g',1) \in T_1\NN
T_2=T_1\U\pgra{(\g',2)}\NN
\oname{Pop}(T_2,2)=(X,j)=(\g,2) \in T_2\NN
T_3=T_2\U\pgra{(\g,3)}\NN
\oname{Pop}(T_3,3)=(X,j)=(\g',2) \in T_3\NN
T_4=T_3\U\pgra{(\g',4)}\NN
\vdots
}
Intuitivamente, l'algoritmo utilizza $T$ come un contatore e $U$ come
accumulatore, in cui aggiunge tutto quello che e' possibile estrapolare da
$S$ (avevamo gia' visto un algoritmo simile, \vedi{propSinCallorasoddisf}).
Valgono le seguenti proprieta':
\eal{&U_i\( U_{i+1}\;\;\forall i\;\;(3)\NN
U_i\in C\;\;\forall i\;\;(4)\NN
S=U_0\(U_i\;\;\forall i\;\;(5)\NN
(X,j)\in T_i \> X\in U_i\;\;\forall i\;\;(6)
}
\step{}{Dim. che $H=\bigcup_{i\in \mathbb{N}}U_i$ e' un insieme di Hintikka}
\begin{prova}
	\begin{enumerate}
		\item Se per assurdo $R(t_1,\dots,t_n),\NOT
			R(t_1,\dots,t_n)\in H$, allora
	\eal{&R(t_1,\dots,t_n)\in U_i\NN
\NOT 	R(t_1,\dots,t_n) \in U_j\NN
U_{\min\pgra{i,j}}\( U_{\max\pgra{i,j}}
\> \pgra{R(t_1,\dots,t_n),\NOT R(t_1,\dots,t_n)} \(  U_{\max\pgra{i,j}}
		}
			assurdo contro $(4)$
		\item Analogamente $\NOT t,\f\notin H$
		\item Se $\NOT \NOT Z\in H$, allora
			\case{$\NOT \NOT Z\in S=U_0$}
			\begin{prova}
			\eal{&\NOT \NOT Z\in S=U_0
			\> (\NOT \NOT Z,1)\in T_0
			\ubrace{\>}{(2')} \exists k:\;\;
			\oname{Pop}(T_k,k)=(\NOT \NOT Z,1)
				}
			Quindi, la formula $\NOT \NOT Z$ verra' processata
			dall'algoritmo e si avra'
			\eal{&Z\in U_{k+1} \( H
			}
			\end{prova}
			\case{$\NOT \NOT Z\notin S=U_0$}
			\begin{prova}
				In questo caso, $\NOT \NOT Z$ e'  stata
				aggiunta dall'algoritmo in qualche $U_i$ e
				inoltre
				\eal{&(\NOT\NOT Z,1)\in T_{i}}
				Quindi, per la $(2')$
				\eal{& \exists k:\;\;
                        \oname{Pop}(T_k,k)=(\NOT \NOT Z,1)
				}
				e come prima, si avra':
			\eal{&Z\in U_{k+1} \( H }
			\end{prova}
		\item Gli altri casi si dimostrano analogamente.
	\end{enumerate}
	\eal{&H\T{ Hintikka}  \ubrace{\>}{\see{hintikkasoddisfacibileIordine}
	} H\T{ soddisf }  \ubrace{\>}{S\( H }S\T{ soddisf}}
\end{prova}
\end{proof}
\begin{thm}
	di completezza.\\
	Le dimostrazioni dei teoremi di completezza sfruttano il teorema di
	esistenza del modello \see{thmdiesistenzamodelloIordine} e si possono
	facilmente ricavare dalle dimostrazioni gia' viste per la logica
	proposizionale.\\
	Per la dimostrazione del thm di completezza di Hilbert si sfrutta
	anche la prop \see{propHilbertausiliaraperlacompletezzadelta}.
\end{thm}
\begin{thm}di compattezza  per il I ordine.\ilabel{compattezza I
	ordine}\label{thmdicompattezzaIordine}
	Sia $S$ un insieme di \uline{enunciati} del linguaggio $L$, allora
	\eal{&S\T{ finitamente soddisfacibile } \> S\T{ soddisfacibile }
	}
	In particolare, $S$ sara' soddisfatto da un modello di Herbrand in
	$L^{\paar}$.
\end{thm}
\begin{proof}
	Sia 
	\eal{&C=\pgra{W\( \CForm\;|\;W\T{ finit. soddisf. }, \;
	|\Paar\-\Paar(W)| =\8
	}
	}
	$S\in C$ perche' e' finitamente soddisfacibile, ed essendo in $L$ non
	utilizza parametri, ovvero $\Paar(S)=\0$.\\
	Dimostriamo che $C$ e' una proprieta' di consistenza.\\
	Sia $W\in C$.\\
	Consideriamo solo il caso $\g$ e $\d$ dato che per gli altri si
	procede analogamente a quanto visto in \see{thmdicompattezza}.\\
	Supponiamo $\g\in W$, dimostriamo $W\U\pgra{\g(t)}\in C$. Chiaramente, $
	|\Paar\-\Paar(W\U\pgra{\g(t)}) |=\8$
	Per assurdo
	$\exists D\( W\U\pgra{\g(t)}$ finito ma non soddisfacibile con $\g(t)\in D$.
	Allora, 
	\eal{&
	(D\-\pgra{\g(t)})\U\pgra{\g}\( W  \T{ e' finito }\ubrace{\>}{W\T{ fin. sodd.}} \> 
 (D\-\pgra{\g(t)})\U\pgra{\g}
 \T{ soddisf } \>\NN
 \ubrace{\>}{\see{SUgsoddisfacibilesseSuggtsoddisfacibile}} 
 (D\-\pgra{\g(t)})\U\pgra{\g}\U\pgra{\g(t)}\T{ soddisf}
 \> D\T{ soddisf } 
	}
	assurdo.\\

	Supponiamo $\d\in W$,  dimostriamo $\exists p\in\Paar:\;W\U\pgra{\d(p)}\in C$.
	\eal{&\Paar\-\Paar(W) \neq \0
	\ubrace{\>}{\d\in W}  \exists p'\in \Paar\-\Paar(W\U\pgra{\d}) 
	\( \F_0\-\F_0(W\U\pgra{\d})\;\;(*)
	}
        Per assurdo 
	\eal{&\forall p\in \Paar \;\exists D_p\( W\U\pgra{\d(p)}\T{ finito ma non soddisfacibile, con $\d(p)\in D_p$}
	\NN
	(*) \> p'\notin  \F_0(W)  \ubrace{\>}{D_{p'}\-\pgra{\d(p')}\(W} p'\notin \F_0(D_{p'}\-\pgra{\d(p')})\;\;(**)\NN
	\pton{D_p'\-\pgra{\d(p')}}\U\pgra{\d}\( W \T{ e' finito }
	\ubrace{\>}{W\T{ fin. soddisf.}} 
	\pton{D_p'\-\pgra{\d(p')}}\U\pgra{\d} \T{ soddisf } \>\NN
	 \ubrace{\>}{(**),\;\;\see{SUgsoddisfacibilesseSuggtsoddisfacibile}}
	  \pton{D_p'\-\pgra{\d(p')}}\U\pgra{\d, \d(p')}
	  \)D_p'\;\T{ soddisf}
	}
	assurdo.\\
	\eal{&S\in C  \ubrace{\>}{\T{thm esistenza del modello}}S\T{ soddisf.} }
\end{proof}
\begin{thm}
	di Herbrand. \ilabel{thm di Herbrand}\\
	\label{thmdiHerbrand}
	Sia $S\(\CForm$, nel linguaggio $L$, allora
	\eal{&S\T{ soddisfacibile } \= S\T{ soddisfacibile in un modello di
	Herbrand di $L^{\paar}$}
	}
\end{thm}
\begin{proof}
	\BEGINsufficiente
	Per definizione.
	\END
	\BEGINpnecessaria
Consideriamo il seguente insieme
\eal{&C=\pgra{W\(\CForm\;|\;W\T{ soddisfacibile, }|\Paar\-\Paar(W)|=\8 } }
E' facile verificare  che $C$ e' una proprieta' di consistenza (infatti, le
regole della def. \see{defpropconsIordine} preservano tutte la
soddisfacibilita'). 
Inoltre, 
\eal{&\sist{S\T{ soddisf}\\
S\(\CForm \T{ nel linguaggio $L$ } \> \Paar(S)=\0} \> S\in C 
\ubrace{\>}{\see{thmdiesistenzamodelloIordine} } S\T{ soddisf. in un
modello di Herbrand di $L^{\paar}$}
}
	\END
\end{proof}
\begin{cor}\label{validasseveraneimodellidiHerbrand}
	Sia $X\in \CForm$, nel linguaggio $L$, allora
	\eal{&X\T{ valida } \= X\T{ e' vera in ogni modello di Herbrand di
	$L^{\paar}$}}
\end{cor}
\begin{proof}
	\BEGINpnecessaria
	\eal{&X\T{ valida } \> X\T{ vera in ogni modello } }
	e quindi la tesi.
	\END
	\BEGINsufficiente
	Supponiamo per assurdo che
	\eal{&\exists M\T{ modello: }X\T{ non e' vera in }M
	\= M\T{ soddisfa } \NOT X  \=\NN
	\ubrace{\=}{\see{thmdiHerbrand}} 
	\T{ $\NOT X$ e' soddisfatto in un modello di Herbrand di $L^{\paar}$}
	\=   \NN
	\=X\T{ non e' vera in un modello di Herbrand di $L^{\paar}
	$}
	}
	assurdo.
	\END
\end{proof}

\subsection{Skolemizzazione}
\begin{thm}\label{thmsostituzioneIordine}
	di sostituzione per il $I$ ordine.\\
	Sia $a\in \ATform,\;X,Y,Z\in \Form$ e $M$ un modello.
	\eal{&M\models \formula{Y\= Z } 
	\> M\models \formula{X(a|Y)\= X(a|Z)}
	}
	dove con $X(a|Y)$ indichiamo la formula $X$ in cui ogni occorrenza di
	$a$ e' stata sostituita con $Y$ (e' l'analogo di quanto facevamo in
	\see{operatoresostituzione}).\\

	In particolare si ha 
	\eal{&\models \formula{Y\= Z } \> \models  \formula{X(a|Y)\= X(a|Z)}}
\end{thm}
\begin{proof}
	Si procede per induzione  strutturale.
	Analizziamo solo il caso delle $\g$ e $\b$.\\
	Per Hp induttiva
	\eal{&M\models \formula{\g(x)(a|Y)\= \g(x)(a|X)}	\= \forall B\T{ assegnamento}\;\;
	M,B\models \formula{\g(x)(a|Y)\= \g(x)(a|X)}\;\;(1)\NN
	\T{Se per assurdo } M\not\models \formula{\g(a|Y) \= \g(a|X)}
	\> \exists A\T{ assegn. t.c.} M,A\not\models  \formula{\g(a|Y)\= \g(a|X)}
	}
	Quindi, supponendo che $v_{I,A}(\g(a|Y))=\t$, $v_{I,A}(\g(a|X)=\f$, abbiamo\footnote{per
	definizione di sostituzione, si ha $\g(a|Y)=(\forall x)(\g(x)(a|Y))$}
	\eal{&
	v_{I,A}(\g(a|Y))=\t \= 
	\forall B\in A_x \;\;v_{I,B}(\g(x)(a|Y))=\t\NN
 v_{I,A}(\g(a|X))=\f \= \exists C\in
	A_x:\;\;\;v_{I,C}(\g(x)(a|X))=\f\NN
	\qq \> v_{I,C}(\g(x)(a|Y)) \neq  v_{I,C}(\g(x)(a|X))
	}
	assurdo contro la $(1)$.\\
	Analogamente si procede per la $\d$
\end{proof}
\def\PosATform{{\ATform^{+}}}
\def\NegATform{{\ATform^{-}}}
\begin{defn}
	Sia $a\in \ATform$ e $Y(a)\in \Form$ (nota\footnote{con $Y(A)$
	indichiamo che $a$ e' una sottoformula (atomica) di $Y$}).
	Diremo che tutte le occorrenze di $a$ in $Y$ sono positive, e
	scriveremo $a\in\PosATform(Y)$ $\=$ accade
	una delle seguenti condizioni: 
	\eal{&1.\;\;Y=a\NN
	2.\;\;Y=\NOT \NOT a\NN
	3.\;\; Y=\a,\;\;a\in\PosATform(\a_1) \T{ e }
	a\in\PosATform(\a_2,a) \NN
	4.\;\; Y=\b,\;\;a\in\PosATform(\b_1) \T{ e } a\in\PosATform(\b_2) \NN
	5.\;\;Y=(\forall x)\g(x),\;\;a\in\PosATform(\g(x)) \NN
	6.\;\;Y=(\exists x)\d(x),\;\;a\in\PosATform(\d(x))
	}
	In pratica, $a$ occorre positivamente in $Y$ quando non compare mai
	come $\NOT a$ in $Y$, dopo tutte le semplificazioni dei $\NOT
	$.\\
	Analogamente, $a$ occorre negativamente in $Y$ quando tutte le sue
	occorrenze sono del tipo $\NOT a$, o piu' precisamente
	\eal{&a\in\NegATform(Y)\definizione{\=}
	a\in\PosATform(\NOT Y)
	}
\end{defn}
\begin{thm}
	di sostituzione per
	implicazioni.\label{thmsostituzioneperimplicazioni}\\
	Sia $X,Y,Z\in \Form$.
Allora si ha
	\eal{&1.\;\;\sist{a\in \PosATform(X)\\
	M\models \formula{Y\> Z}} \> M\models \formula{X(a|Y)\>X(a|Z)}
	\NN
2.\;\;\sist{b\in \NegATform(X)\\
M\models \formula{Y\> Z} \> M\models \formula{X(b|Z)\>X(b|Y)}}
	}
\end{thm}
\begin{proof}
	\step{}{Dim. $1.$}
	\begin{prova}
		Supponiamo che $a\in \ATform(X)$ (altrimenti $X\>X$ e' una
		tautologia e non abbiamo nulla da dimostrare).\\
	Per induzione strutturale su $X$.
	\case{Caso atomico: $X=a$}
	\begin{prova}
		\eal{&X(a|Y)=Y,\;X(a|Z)=Z}
		e quindi la tesi e' chiaramente vera.\\

		Nota il caso $X=\NOT a$ non puo' verificarsi in quanto $a$
		occorre positivamente in $X$.
	\end{prova}
	\case{$X=\a$}
	\begin{prova}
		\eal{&X(a|Y)=\a(a|Y)=(\a_1(a|Y) \& \a_2(a|Y))\NN
		\T{Hp indutt.} \> \sist{M\models \formula{\a_1(a|Y)\>
		\a_1(a|Z)}\\
		M\models \formula{\a_2(a|Y)\> \a_2(a|Z)}}
		\> M\models \formula{(\a_1(a|Y) \& \a_2(a|Y) ) \> 
(		\a_1(a|Z) \& \a_2(a|Z))} \=\NN
		\= \formula{X(a|Y)\>X(a|Z)}
		}	
		\qq\\
	\end{prova}
	\case{$X=\b$}
	\begin{prova}
		Analogamente a prima.
	\end{prova}
	\case{$X=\NOT \NOT F$}
	\begin{prova}
	\eal{&X(a|Y)=\NOT \NOT F(a|Y)\NN
	\T{Per Hp induttiva } M\models \formula{F(a|Y)\> F(a|Z)}
	\ubrace{\>}{\models \NOT \NOT A\=A}  M\models \formula{\NOT \NOT F(a|Y)\>\NOT \NOT F(a|Z)} 
	}
	\end{prova}
	\case{$X=\g$}
	\begin{prova}
		\eal{&X(a|Y)=((\forall x)\g(x))(a|Y)=(\forall
		x)(\g(x)(a|Y))\NN
		\T{Per Hp induttiva } 
		M\models \formula{\g(x)(a|Y) \> \g(x)(a|Z)}
		\= \forall A\T{ assegnamento } \pton{v_{I,A}(\g(x)(a|Y))\>
		v_{I,A}(\g(x)(a|Z))}
		\;\;(*)\NN
		\T{Se per assurdo }M\not\models  \formula{\g(a|Y) \> \g(a|Z)}
		\> \exists A\T{ assegnamento }:\;\;v_{I,A}\pton{\formula{\g(a|Y) \> \g(a|Z
		)}}=\f \=\NN
		\= v_{I,A}(\g(a|Y))=\t,\;\;v_{I,A}(\g(a|Z))=\f
		\= \forall B\in A_x\;\;v_{I,B}(\g(x)(a|Y))=\t,\;\;
		\exists B'\in A_x:\;\;v_{I,B'}(\g(x)(a|Z))=\f\>\NN
		\> \pton{v_{I,B'}(\g(x)(a|Y)) \not\Rightarrow
		v_{I,B'}(\g(x)(a|Z))}
		}
		assurdo contro $(*)$.
	\end{prova}
	\case{$X=\d$}
	\begin{prova}
		Analogamente a prima.
	\end{prova}
	\end{prova}
	\step{}{Dim. $2.$}
	\begin{prova}
		Stavolta, l'unico caso atomico possibile e' $X=\NOT b$.
	\case{Caso atomico: $X=\NOT b$}
	\begin{prova}
		\eal{&X(b|Y)=\NOT Y,\;X(b|Z)=\NOT Z\NN
		M\models \formula{Y\>Z }  \> M\models \formula{\NOT Z\>\NOT Y
		} \= M\models\formula{ X(b|Z)\>X(b|Y)}
		} 
		e quindi la tesi e' vera.
	\end{prova}
	Negli altri casi si procede analogamente a prima.
	\end{prova}
\end{proof}
\def\P{{\Psi}}
\def\Pf{{\Phi}}
\begin{lem}\label{lemmaskolemizzazione}
	Sia $\P\in \Form$ con $\Free(\P)=\pgra{x,y_1,y_2,\dots,y_n}$ variabili
	libere. Sia $f\in \F_n\-\F_n(\P)$ e sia $M=(D,I)$ un  allora 
	\eal{&
	1.\;\;\exists M_1=(D,J_1)\T{ modello t.c. } M_1\models \formula{(\exists x )\P\> \P\pgra{x\mapsto f(y_1,\dots,y_n)}}\NN
	2.\;\;\exists M_2=(D,J_2)\T{ modello t.c. } M_2\models \formula{
	\P\pgra{x\mapsto f(y_1,\dots,y_n)} \> (\forall x)\P}
	}
	dove $J_1,J_2$ sono due interpretazioni che differiscono da $I$ solo
	in $f$.\\
	In altre parole, la $1.$ permette di eliminare $(\exists x)$
	sostituendo $x$ con una opportuna funzione (che dipende dalle
	variabili libere di $(\exists x)\P$). La $2.$ e' invece un
	procedimento inverso: possiamo rimuovere una funzione dipendente dalle
	variabili libere, al prezzo di introdurre il quantificatore $(\forall
	x)$.
\end{lem}
\begin{proof}
	\step{}{Dim. $1.$}
	\begin{prova}
Consideriamo un $d_0\in D$ qualsiasi. Sia $A$ un assegnamento.
Specifichiamo l'intepretazione $J_1$ su $f$:
\eal{&f^{J_1}(d_1,\dots,d_n)
=\sist{x^B  & v_{I,A}((\exists x)\P) = \t, \T{ con } B\in
A_x:\;\;v_{I,B}(\P)=\t\\
d_0 & v_{I,A}((\exists x)\P) = \f
}\NN
\qq\T{ dove } A\T{ e' un qualsiasi assegnamento tale che } 
(y_1^{A},\dots,y_n^{A})=(d_1,\dots,d_n)
}
%Nota che questa definizione e' ben posta, infatti,
%\eal{&(y_1^{A},\dots,y_n^{A}) = (y_1^{A'},\dots,y_n^{A'})
%\ubrace{\>}{\Free((\exists x)\P)=\pgra{y_1,\dots,y_n}} 
%\sist{v_{I,A}((\exists x)\P)=v_{I,A'}((\exists x)\P)\\
%v_{I,B}((\exists x)\P)=v_{I,B'}((\exists x)\P)\;\; \forall B\in A_x,\;B'\in
%A'_x}
%}
Per dimostrare
\eal{&M_1\models \formula{(\exists x )\P\> \P\pgra{x\mapsto f(y_1,\dots,y_n)}}}
supponiamo che $v_{J_1,A'}((\exists x )\P)=\t$ e dimostriamo che $
v_{J_1,A'}(\P\pgra{x\mapsto f(y_1,\dots,y_n)})=\t$.
\eal{&v_{J_1,A'}((\exists x )\P)=\t  \ubrace{\=}{f\notin \F((\exists x )\P)
\T{, $J_1$ e' uguale a $I$ a meno di $f$} }
v_{I,A'}((\exists x )\P)=\t   \ubrace{\>}{\T{per def. di }J_1}  f^{J_1}(y_1^{A'},\dots,y_n^{A'})
=x^B\=\NN
\=
\pton{f(y_1,\dots,y_n)}^{J_1,A'}=x^B,\;\;\;\T{ dove } B\in
A'_x,\;v_{I,B}(\P)=\t \ubrace{\=}{f\notin \F(\P)}  v_{J_1,B}(\P)=\t\NN
\T{Quindi } 
v_{J_1,A'}(\P\pgra{x\mapsto f(y_1,\dots,y_n)})=
v_{J_1,B}(\P)=\t
}
	\end{prova}
	\step{}{Dim. $2.$}
	\begin{prova}
Consideriamo la formula $\NOT \P$. Per il passo $1.$ sappiamo che
\eal{&\exists M_2:\;M_2\models
 \formula{(\exists x )\NOT \P\> \NOT \P\pgra{x\mapsto
 f(y_1,\dots,y_n)}}\;\;(1)
}
ma la $(1)$ e' equivalente ad
\eal{&M_2\models \formula{\NOT \NOT \P\pgra{x\mapsto
f(y_1,\dots,y_n)}\> \NOT (\exists x )\NOT \P}
\= M_2\models \formula{\P\pgra{x\mapsto
f(y_1,\dots,y_n)}\> (\forall x ) \P}
}
	\end{prova}
\end{proof}
\begin{thm}
	di Skolemizzazione.\label{thmdiskolemizzazione}\\
	Sia $a\in \ATform$, $\Pf,\P\in \Form$,
	$\Free(\P)=\pgra{x,y_1,\dots,y_n}$.
	Supponendo che $\Pf(a|(\exists x)\P) \in \CForm$ sia un enunciato e
	considerato $f\in\F_n\-\F_n(\Pf(a|(\exists x)\P))$   si
	ha
	\eal{&
	1.\;\;a\in \PosATform(\Pf) \>
	\Big({\Pf(a|(\exists x)\P)\T{ soddisf. }\=
	\Pf(a|\P\pgra{x\mapsto f(y_1,\dots,y_n)})\T{
	soddisf. }\Big)}\NN
	2.\;\;a\in\NegATform(\Pf) \>
	\Big({\Pf(a|(\forall x)\P)\T{ soddisf. }\= \Pf(a|\P\pgra{x\mapsto f(y_1,\dots,y_n)})\T{ soddisf. }
	}\Big)
	}
	La skolemizzazione permette di eliminare i quantificatori (nei casi
	opportuni) preservando la soddisfacibilita'. Questo e' utile per i
	sistemi di deduzione che cercano di dimostrare l'insoddisfacibilita'
	di $\NOT X$, per poter dimostrare che $\models X$.\\
	La procedura di skolemizzazione consiste nell'applicare la $1.$ e $2.$
	per rimuovere il maggior numero di quantificatori.
\end{thm}
\begin{proof}
	\step{}{Dim $1.$}
	\begin{prova}
\BEGINsufficiente
Supponiamo che \eal{&\exists M:\;\;M\models 	\Pf(a|\P\pgra{x\mapsto f
(y_1,\dots,y_n)})\;\;(0)}
Si ha
\eal{&\models \formula{\P\pgra{x\mapsto f (y_1,\dots,y_n)} \> (\exists x)\P}\;\;\T{ e' una formula valida }(1)\NN
(1),\;\T{ $a$\T{ occorre positivamente in } $\Pf$}  \ubrace{\>}{\T{sostituzione } \see{thmsostituzioneperimplicazioni}} 
M\models  \formula{\Pf(a|\P\pgra{x\mapsto f (y_1,\dots,y_n)}) \>
\Pf(a|(\exists x)\P) 
}\;\;(2)\NN
(2),(0) \> M\models \Pf(a|(\exists x)\P)
}
		\END
\BEGINpnecessaria
Supponiamo che
\eal{&M\models \Pf(a|(\exists x)\P)\;\;(0)
}
Per il lemma \see{lemmaskolemizzazione}, si ha:
\eal{&
\exists M_1=(D,J_1)\T{ modello t.c. } M_1\models \formula{(\exists x )\P\>
\P\pgra{x\mapsto f(y_1,\dots,y_n)}}\>\NN
 \ubrace{\>}{\T{sostituzione } \see{thmsostituzioneperimplicazioni}}
 M_1\models \formula{\Pf\pton{a|(\exists x )\P} \>
 \Pf\pton{a|\P\pgra{x\mapsto f(y_1,\dots,y_n)}}}\;\;(1)\NN
 f\notin \F(\Pf(a|(\exists x)\P)),\;\;\T{$M_1$ uguale a $M$ tranne che per $f$
 },\;\;(0) \> M_1 \models \Pf(a|(\exists x)\P)\;\;(0')\NN
 (1),\;(0') \>  M_1\models\Pf\pton{a|\P\pgra{x\mapsto f(y_1,\dots,y_n)}}
}
\END
	\end{prova}
	\step{}{Dim $2.$}
	\begin{prova}
Si procede		analogamente a prima, sfruttando pero' la $2.$
del lemma \see{lemmaskolemizzazione} e la tautologia
\eal{&\models \formula{(\forall x) \P \> \P\pgra{x\mapsto f(y_1,\dots,y_n)}}}
e la $2.$ del thm \see{thmsostituzioneperimplicazioni}
	\end{prova}
\end{proof}

\begin{exemp}
	di skolemizzazione.
	\eal{&
	1.\;\;(\forall x)(\exists y)\pqua{(\exists z)(\forall
	w)R(x,y,z,w)\>(\exists w)P(w)}\NN
	2.\;\;(\forall x)\pton{(\exists z)(\forall w)R(x,f(x),z,w)\>(\exists
	w)P(w) }\NN
	3.\;\;(\forall x)\pton{(\exists z)(\forall w)R(x,f(x),z,w)\>P(h) }\NN
	4.\;\;(\forall x)\pton{(\exists z)R(x,f(x),z,g(x,z))\>P(h) }
	}
	La $2.$ e' stata ottenuta eliminando $(\exists y)$: la sottoformula
	che seguiva $\pton{\exists y}$ occorreva positivamente nella formula
	grande, quindi abbiamo potuto applicare la $1.$ di
	\see{thmdiskolemizzazione}.\\
	La $3.$ e' stata ottenuta analogamente. Nota: abbiamo in questo caso
	$n=0$ e la $f$ del thm \see{thmdiskolemizzazione} e' una costante.\\
	La $4.$ e' stata ottenuta eleminando $(\forall w)$. Nota che
	$R(x,f(x),z,w)$ occorre negativamente nella formula perche' si trova
	nella prima componente della $\b$-formula $\>$, ovvero, e' come se
	avessimo
	\eal{&\NOT \pton{(\exists z)(\forall w)R(x,f(x),z,w) } \| 
	P(h)
	}
	Dalla $4.$ non si puo' piu' proseguire.
\end{exemp}

\begin{defn}
	formule in forma premessa.\\
	Una formula $X$ e' in forma \iemph{premessa}, quando e' del tipo 
	\eal{&(Q_1x_1)(Q_2x_2)\dots(Q_mx_m)Y}
	dove $Q_i\in \pgra{\forall, \exists}$ e $Y$ e' una formula prima di
	quantificatori universali. \\
	In altre parole, $X$ e' in forma premessa quando tutti i
	quantificatori sono posti all'inizio.
\end{defn}
\begin{prop}
	Per ogni formula $X$ esiste, e si puo' costruire, una formula $X'$ 
	in forma premessa, equivalente a $X$.\\
I passi principali dell'algoritmo di conversione sono:
\begin{enumerate}
	\item Da $X$ costruiamo la formula $Y$: per ottenere $Y$ rinominiamo le
		variabili di $X$ in modo che non ci siano due quantificatori
		con la stessa variabile e che ogni quantificatore utilizzi una
		variabile diversa da quelle libere presenti in $X$.
	\item Applichiamo a $Y$ le seguenti regole (che rispettano
		l'equivalenza), fino ad ottenere $X'$:
		\eal{&\NOT (\exists x) A \= (\forall x)\NOT A\NN
		\NOT (\forall x)A\= (\exists x)\NOT A\NN
		(\forall x)A  \& B \= (\forall x)(A \&  B)\NN
		A  \& (\forall x)B \= (\forall x)(A \&  B)\NN
		(\forall x)A   \|  B \= (\forall x)(A  \|   B)\NN
		A   \|  (\forall x)B \= (\forall x)(A  \|   B)\NN
		(\exists x)A   \|  B \= (\exists x)(A  \|   B)\NN
		A   \|  (\exists x)B \= (\exists x)(A  \|   B)\NN
		\pton{ (\forall x)A  \>  B}  \= \pton{ (\exists x)(A  \> B)}\NN
		\pton{ A  \> (\forall x) B}  \= \pton{ (\forall x)(A  \> B)}\NN
		\pton{ (\exists x)A  \>  B}  \= \pton{ (\forall x)(A  \> B)}\NN
		\pton{ A  \> (\exists x) B}  \= \pton{ (\exists x)(A  \> B)}
		}
		Nota: per ottenere quelle con $\>$, si considera che $(A \>
		B)\=(\NOT A  \|  B)$.\\
		Nota: queste regole devono essere applicate dopo il passo
		$1.$. Quindi, nella formula $(\forall x)A   \|  B$ la
		variabile $x$ non puo' occorrere dentro $B$.
\end{enumerate}
\end{prop}
\begin{exemp}
\eal{&  (\exists x)(\forall y)R(x,y)\>(\forall y)(\exists x)R(x,y)  \NN
(\forall x)\pton{(\forall y)R(x,y)\>(\forall y)(\exists x)R(x,y) }\NN
(\forall x)(\exists y)\pton{R(x,y)\>(\forall y)(\exists x)R(x,y) }\NN
(\forall x)(\exists y)(\forall y)\pton{R(x,y)\>(\exists x)R(x,y) }\NN
(\forall x)(\exists y)(\forall y)(\exists x)\pton{R(x,y)\>R(x,y) }
}
\end{exemp}
\begin{thm}
	di Herbrand costruttivo.\\
	Sia $X$ un enunciato, 
	\eal{&X\T{ e' valida } \= 
	\bigwedge_{i=1}^{l}Y(d_1^i,\dots,d_n^i)\T{ e' insoddisfacibile }
	}
dove $Y$ e' una formula chiusa priva di quantificatori, e quindi e'
sostanzialmente una formula proposizionale.\\
Il thm di Herbrand permette di risolvere la validita' di $X$, esaminando la
soddisfacibilita' di $Y$.\\
Il problema principale e' quello di trovare $Y$.
\end{thm}
\begin{proof}
	Diamo solo una bozza della dimostrazione:
\eal{&X\T{ e' valida } \= \NOT X \T{ insoddisfacibile }
\= \Gamma \T{ insoddisfacibile }\;\;(1)\NN
\qq \T{ dove } \Gamma \T{ e' $\NOT X$ convertita in forma premessa e
skolemizzata }: \Gamma=(\forall y_1)(\forall y_2)\dots(\forall y_n)Y\NN
(1)  \ubrace{\=}{\see{SUgsoddisfacibilesseSuggtsoddisfacibile}} 
Z=\pgra{Y(d_1,\dots,d_n)\;|\;d_i\in \CTer}\T{ insoddisfacibile } \=\NN
\ubrace{\=}{\T{thm compattezza}} \exists  
Z'\( Z\T{ finito e insoddisfacibile },
\;Z'=\pgra{Y(d_1^i,\dots,d_n^i)\;|\;i=1,\dots,l} \=\NN
\=
\bigwedge_{i=1}^{l}Y(d_1^i,\dots,d_n^i) \T{ insoddisfacibile }
	}
\end{proof}
\begin{defn}
	Tableaux skolemizzato.\\
	Utilizzando la skolemizzazione e le sostituzioni e' possibile definire
	delle nuove regole che sostituiscono quelle date in
	\see{deftabIordine}:
	\eal{&
	6'.\;\;\Se N=\formula{\g}:\qq\qq\;\;\NN
	\qq r:=r,[\g(x)]\;\;\T{ con $x$ variabile che non e' gia'
	utilizzata nel tableaux come variabile legata } \NN
	7'.\;\;\Se N=\formula{\d}:\qq\qq\NN
	\qq r:r,[\d(f(x_1,\dots,x_n))]\;\;\T{ con $f\in \F_n$ simbolo
	  funzionale nuovo per il tableaux, $x_1,\dots,x_n$ variabili libere
	  di $\d$}
	}
	I simboli funzionali nuovi li prendiamo da un insieme $\oname{Sko}$
	che svolge lo stesso ruolo di $\Paar$.\\
	Viene aggiunta inoltre la regola della \emph{sostituzione}: sia
	$T$ 
	un tableaux e sia $\sigma$ una sostituzione libera per $T$, allora
	\eal{&\T{Il tableaux $T\sigma$ e' ottenuto applicando la sostituzione
	$\sigma$ a tutte le formule del tableaux $T$}
	}
	Questa regola serve per sostituire le variabili introdotte con la
	$6'.$ con opportuni termini, nella speranza di chiudere il tableaux.
	Infatti, per chiudere il tableaux si cercano due formule $A,\NOT B$ e
	una sostituzione che unifica $A$ e $B$, ovvero:
	\eal{&A\sigma = B\sigma
	}
	cosi' facendo si potra' chiudere il ramo di $T\sigma$:
	\eal{&A\sigma \NN
		\NOT (A\sigma)
	}
	Nota: in un'implementazione meccanica,
	$\sigma$ si puo' costruire applicando l'algoritmo di unificazione
	\see{algounificazione}.
\end{defn}
\begin{exemp}
	Dimostriamo la seguente formula con i tableaux skolemizzati
\eal{&
1.\;\;\NOT \pqua{(\exists w )(\forall x)R(x,w,f(x,w)) \> (\exists w)(\forall x)(\exists y)R(x,w,y)}\NN
2.\;\;(\exists w )(\forall x)R(x,w,f(x,w))\NN
3.\;\; \NOT \pton{(\exists w)(\forall x)(\exists y)R(x,w,y)}\NN
4.\;\;(\forall x)R(x,c_1,f(x,c_1))\NN
5.\;\;\NOT (\forall x)(\exists y)R(x,x_1,y)\NN
6.\;\;\NOT (\exists y)R(g(x_1),x_1,y)\NN
7.\;\;R(x_2,c_1,f(x_2,c_1))\NN
8.\;\;\NOT R(g(x_1),x_1,x_3)
}
$2.,3.$ da $1.$ con la regola per le $\alpha$-formule\\
$4.$ da $2.$ con la regola $7'.$. Nota: $c_1$ e' una nuova funzione, $0$-aria,
ovvero una costante di $\oname{Sko}$.\\
$5.$ da $3.$ con la regola $6'.$. Nota: $x'$ e' una nuova variabile\\
$6.$ da $5.$ con la $7'.$\\
$7.$ da $4.$ con la regola $6'.$\\
$8.$ da $6.$ con la regola $6'.$\\
A questo punto utilizzando la sostituzione $\sigma=\pgra{x_1\mapsto 
c_1,\;x_2\mapsto g(c_1),\;x_3\mapsto f(g(c_1),c_1)}$ otteniamo un nuovo
tableaux che finisce con:
\eal{&
7.\;\;R(g(c_1),c_1,f(g(c_1),c_1))\NN
8.\;\;\NOT R(g(c_1),c_1, f(g(c_1),c_1))
}
ed e' quindi chiuso.
\end{exemp}

%%%%%%%
\printindex
\end{document}
