\begin{frame}
\frametitle{Calcul des prédicats}
\framesubtitle{Un syllogisme d'Aristote}
\begin{itemize}
  \item Tous les hommes sont mortels. Socrate est un homme. 
  Donc \pause Socrate est mortel.
  \item \pause Comment formaliser ce raisonnement en logique des
  propositions ?
  \item \pause ``Tous les hommes sont mortels'' est une
  propriété générale \pause (on ne peut pas énumérer tous les êtres
  vivants, même pas tous les hommes)
  \item \pause On introduit
  \begin{itemize}
    \item des variables ($x$, $y$, \ldots), à valeur dans
    un ``univers (des objets) du discours''
    \item \pause des propriétés générales :
            $H(x)$ pour ``$x$ est un homme'', 
      $M(y)$ pour \pause ``$y$ est mortel''
    \item \pause une notation pour les propriétés universelles :
        \pause $ \forall x .\, H(x) \pause \Rightarrow M(x) $
  \end{itemize} 
  \item $H$ et $M$ sont des prédicats (unaires)
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Calcul des prédicats}
\framesubtitle{Exercice}
\begin{itemize}
  \item Formaliser les phrases suivantes en logique des prédicats
  \begin{enumerate}
  \item Tous les étudiants travaillent les mathématiques
  \item Pierre travaille la physique
  \item Le fils de Pierre travaille les mathématiques
  \item Tous les étudiants travaillent au moins une matière 
  \item Il y a au moins une matière travaillée par tous les étudiants
  \end{enumerate}
  \item \pause Réponses
  \begin{enumerate}
  \item $\forall x .\, $ travaille(x,Maths)
  \item \pause travaille(Pierre, Physique)
  \item \pause travaille(fils(Pierre),Maths)
  \item \pause $\forall x .\, \exists y.\,$  travaille$(x,y)$
  \item \pause $\exists y.\, \forall x .\,$  travaille$(x,y)$
  \end{enumerate}
\end{itemize}
\end{frame}

\begin{frame}
\frametitle{Calcul des prédicats}
\framesubtitle{Langages du premier ordre}
\begin{itemize}
\item Un \emph{langage du premier ordre} est défini par un ensemble
infini $X$ de variables et deux ensembles finis de symboles :
\begin{itemize}
  \item une signature fonctionnelle $F$ de symboles fonctionnels
  d'arité fixée
  \item une signature relationnelle $R$ de symboles
  relationnels d'arité fixée
\end{itemize}
\item \pause Les sous-ensembles de symboles fonctionnels et
relationnels d'arité $n$ sont notés $F_n$ et $R_n$
\item \pause Un \emph{terme} est soit une variable, soit un symbole
fonctionnel d'arité $n$ ($n \geq 0$) appliqué à $n$ termes 
\item \pause Un \emph{atome} (ou \emph{formule atomique}) est un
symbole relationnel d'arité $n$ ($n \geq 0$) appliqué à $n$ termes
\end{itemize}
\end{frame}


\begin{frame}
\frametitle{Calcul des prédicats}
\framesubtitle{Exercice 2 (partie I.9 du support de cours)}
$f^n$ signifie que le symbole $f$ (fonctionnel ou
relationnel) est d'arité $n$.
On considère un langage 
$\mathcal{L}$ de signature fonctionnelle 
$\{f^1, g^1, h^2\}$ et de signature relationnelle 
$\{ R^1, S^2, T^2, =^2\}$.
On considère les expressions suivantes :
\begin{itemize}
\item 
$ \varphi_1  : 
\exists x \,. \, 
(
(\forall y \, . \, 
(\exists z \,.\,
R(x)))) \lor
(\exists y \, .\, 
(\neg 
(\forall z \, . \, 
(S(h(x,z)x)))))
$

\item $ \varphi_2  : (\forall x \, .\, (T(f(x),y)) \imp (\neg (\exists
x \, .\, (f(x,y)))))$

\item $ \varphi_3  : (\forall z \, .\, T(x,y) \imp (\exists y \,.\,
((\forall x '\neg (f(x) = y))) \lor T(y,z)))$

\item $ \varphi_4  : (\forall x \,.\, (\exists y  \,.\, (( g(y) = x)
\lor (\neg T(y,y))))) \imp (\exists y \,.\, (\forall x \,.\,
(T(y,g(x)))))$
\end{itemize}

\begin{enumerate}
\item Parmi ces expressions, lesquelles sont des formules de
$\mathcal{L}$ ?
\item Dans celles qui sont des formules, supprimer les parenthèses
  inutiles
\item Déterminer les occurrences liées des variables dans les formules
\end{enumerate}
\end{frame}

\begin{frame}
\frametitle{Calcul des prédicats}
\framesubtitle{Types des termes et des formules}
En Objective Caml

\textsf{type term =}

\textsf{    Var of string}
    
\textsf{  $|$ Terme of string * term list;;}
  
\textsf{type pred =}
 
\textsf{    Vrai}
    
\textsf{  $\mid$ Faux}
   
\textsf{  $\mid$ Atome of string * term list}
   
\textsf{  $\mid$ Neg of pred}
   
\textsf{  $\mid$ Ou of pred * pred}
   
\textsf{  $\mid$ Et of pred * pred}
  
\textsf{  $\mid$ Imp of pred * pred}
  
\textsf{  $\mid$ Equiv of pred * pred}
  
\textsf{  $\mid$ PourTout string pred}
  
\textsf{  $\mid$ Existe string pred;;}
\end{frame}

\begin{frame}
\frametitle{Calcul des prédicats}
\framesubtitle{Exercice 3}
On considère un ensemble d'objets de différentes couleurs.
Chacun de ces objets porte un numéro et possède une forme géométrique
particulière (cube, sphère prisme).
En utilisant les prédicats 
$\textit{pair}(x)$, $\textit{cube}(x)$,
    $\textit{vert}(x)$, \ldots codez les phrases suivantes :
\begin{enumerate}
\item Si un objet est sphérique, alors cet objet n'est pas vert ou
  porte un numéro impair.
\item S'il existe un objet vert sphérique, alors il existe un objet
  vert portant un numéro impair.
\item Si tout objet vert porte un numéro impair, alors aucun objet
  sphérique n'est vert.
\end{enumerate}
\end{frame}

% Ces diapos font aussi office de support de cours
\begin{frame}
\frametitle{Sémantique du calcul des prédicats}
\framesubtitle{Objectif}
\begin{itemize}
  \item Soit $\varphi$ une formule d'un langage du premier ordre
  \item \pause Par exemple, $\varphi$ peut être
 $$(\forall y \, . \, 
      (\exists z \,.\, R(z))
     \lor
      (\forall z \, . \,  S(y,z) \land \neg S(h(x,z),a))
 )$$
  \item \pause Quand peut-on dire que la formule $\varphi$ est vraie ?
  \item \pause La vérité de $\varphi$ dépend 
  \begin{itemize}
    \item du sens des symboles fonctionnels 
    \pause ($a$ et $h$ dans l'exemple) et relationnels 
    \pause ($R$ et $S$ dans l'exemple)
    
    \pause $\rightarrow$ notion d'\emph{interprétation}
    
    \item de la valeur des variables libres de $\varphi$
         \pause ($x$ dans l'exemple)  
    
    \pause $\rightarrow$ notion d'\emph{environnement}
  \end{itemize}
  \item Globalement, il s'agit de définir la \emph{sémantique} (le
  sens, la signification) d'un langage du premier ordre
\end{itemize}
\end{frame}


\begin{frame}
\frametitle{Sémantique du calcul des prédicats}
\framesubtitle{Définition d'une interprétation}
Une \emph{interprétation} $\mathcal{I}$ d'un langage $L$ du premier
ordre consiste à choisir
\begin{itemize}
   \item un ensemble non vide $\mathcal{U}_{\mathcal{I}}$, appelé
   \emph{domaine d'interprétation}, ou univers
   \item \pause une fonction $f_{\mathcal{I}}$ de
   ${\mathcal{U}_{\mathcal{I}}}^n$ dans $\mathcal{U}_{\mathcal{I}}$
   pour chaque symbole fonctionnel $f$ d'arité $n$ de $L$
   \item \pause une relation $R_{\mathcal{I}}$ sur
   ${\mathcal{U}_{\mathcal{I}}}^n$ pour chaque symbole relationnel $R$
   d'arité $n$ de $L$
\end{itemize}
\pause L'ensemble $\mathcal{U}_{\mathcal{I}}$, muni de
ses fonctions  $f_{\mathcal{I}}$ et de ses relations
$R_{\mathcal{I}}$ est appelé \emph{structure} (interprétative)
\end{frame}

\begin{frame}
\frametitle{Interprétation}
\framesubtitle{Exemple}
\begin{itemize}
   \item $\mathcal{U}_{\mathcal{I}} = \mathbb{Z}$
   \item $a_{\mathcal{I}} = -1$
   \item $h_{\mathcal{I}}(x,y) = x + y$
   \item $R_{\mathcal{I}} =$ ``$\leq 0$''
   \item $S_{\mathcal{I}} =$ ``$>$''
   \item $(\mathbb{Z}, -1, +, \leq 0, >)$ est une structure
   interprétative
\end{itemize}   
\pause \noindent Exercice
\begin{enumerate}
  \item Traduire en français ce que signifie $\varphi$ dans
   cette structure 
   \item
   \pause Pour quelles valeurs de $x$ la formule $\varphi$ est-elle
   vraie dans cette structure ?
\end{enumerate} 
\end{frame}

\begin{frame}
\frametitle{Sémantique du calcul des prédicats}
\framesubtitle{Définition d'un environnement}
\begin{itemize}
 \item Soit $L$ un langage
 du premier ordre, $\mathcal{I} = (\mathcal{U}_{\mathcal{I}}, \ldots)$ une
 interprétation de $L$ et $\varphi$ une formule de $L$
 \item \pause La vérité de la formule $\varphi$ dans l'interprétation
 $\mathcal{I}$ ne dépend que de la valeur de ses
 variables libres dans le domaine d'interprétation
 \pause $\hookrightarrow$ pour la définir, on introduit la notion
 suivante
 \item 
 Un \emph{environnement} (ou ``assignation'', ou ``affectation'')
 du langage $L$ est le choix d'une valeur dans le domaine
 d'interprétation pour chaque variable de l'ensemble $X$ des variables
 de $L$
 \pause
 \begin{itemize}    
 \item Formellement, un environnement est une fonction (totale) $e$
 de $X$ dans $\mathcal{U}_{\mathcal{I}}$
 \item La vérité de $\varphi$ dans l'interprétation
 $\mathcal{I}$ ne dépend que de $e$ 
 \item Dans l'environnement $e$, on doit définir successivement la
 \emph{valeur} de tout terme $t$, puis la valeur de vérité de
 toute formule
 \end{itemize}
\end{itemize}
\end{frame}

\begin{frame}
\frametitle{Sémantique du calcul des prédicats}
\framesubtitle{Définition de la valeur d'un terme}
Dans une interprétation $\mathcal{I}$ donnée, la valeur 
$\textit{val}_{\mathcal{I}}(t,e)$ du terme $t$ dans l'environnement $e$ est définie
comme suit
\begin{itemize}
  \item Si $x \in X$ est une variable, alors $\textit{val}_{\mathcal{I}}(x,e) = $
  \pause $e(x)$ 
  \item \pause 
  Si $f$ est un symbole fonctionnel d'arité $n$ $(n \geq 0)$ et si
  $t_1, \ldots, t_n$ sont $n$ termes, alors
  
  $\textit{val}_{\mathcal{I}}(f(t_1, \ldots, t_n),e) =$ \pause
  $f_{\mathcal{I}}(\textit{val}_{\mathcal{I}}(t_1,e), \ldots, \textit{val}_{\mathcal{I}}(t_n,e))$
\end{itemize}
\pause C'est une définition récursive car les termes sont eux-mêmes
définis de manière récursive (sera approfondi dans le cours sur
les types inductifs)    
\end{frame}

\begin{frame}
\frametitle{Sémantique du calcul des prédicats}
\framesubtitle{Défnition de la valeur de vérité d'une formule}
Soit $L$ un langage du premier ordre, $\mathcal{I}$ une interprétation
de $L$, $\varphi$ une formule de $L$ et $e$ un environnement de $L$. La
\emph{valeur de vérité} de la formule $\varphi$ dans l'environnement
$e$ est la constante booléenne 0 ou 1 notée
$\textit{eval}_{\mathcal{I}}(\varphi,e)$ et définie comme suit
\begin{eqnarray*}
 \textit{eval}_{\mathcal{I}}(R(t_1,\ldots,t_n),e) & = & 1 
  \textrm{ ssi } 
 \pause 
 (\textit{val}_{\mathcal{I}}(t_1,e), \ldots, 
  \textit{val}_{\mathcal{I}}(t_n,e)) \in
   R_{\mathcal{I}} \\
 \pause
 \textit{eval}_{\mathcal{I}}(\neg F,e) & = & 
 \pause
 \overline{\textit{eval}_{\mathcal{I}}(F,e)}  \\ 
 \pause 
 \textit{eval}_{\mathcal{I}}(F \vee G,e) & = &
  \pause \textit{eval}_{\mathcal{I}}(F,e) \ +  \
  \textit{eval}_{\mathcal{I}}(G,e)  \\
 \pause
  \textit{eval}_{\mathcal{I}}(\forall x \,.\, F,e) & = & 1 
 \textrm{ ssi } 
 \pause 
 \textit{eval}_{\mathcal{I}}(F,e [x \mapsto u]) = 1
 \textrm{ pour tout } u \in \mathcal{U}_{\mathcal{I}}\\
 \ldots
\end{eqnarray*}
\pause où $e[x \mapsto u]$ est l'environnement défini à partir de $e$
 par $$e[x \mapsto u](y)=\left\{ \begin{array} {ll} e(y) &
 \text{si}~ y \not = x\\
    u & \text{si} ~ y = x \end{array}\right.$$

\end{frame}

\begin{frame}
\frametitle{Sémantique du calcul des prédicats}
\framesubtitle{Valeur de vérité d'une formule}
\noindent Questions de compréhension
\begin{enumerate}
 \item Préciser ce que sont $R$, $n$, $t_1$, 
  \ldots, $t_n$, $F$, $G$ et $x$ dans cette définition  
 \item \pause Compléter la définition avec les cas des connecteurs
  logiques $\land$, $\Rightarrow$, $\Leftrightarrow$, \ldots
 \item \pause Compléter la définition avec le cas du
 quantificateur $\exists$
 \item \pause Appliquer cette définition étape par étape à la formule 
 $$(\forall y \, . \, 
      (\exists z \,.\, R(z))
     \lor
      (\forall z \, . \,  S(y,z) \land \neg S(h(x,z),a))
 )$$
 pour l'interprétation $(\mathbb{Z}, -1, +, \leq 0, >)$ et
 l'environnement qui donne à $x$ la valeur $0$
\end{enumerate}
% Solution 
\end{frame}

% Solution de l'exercice à retoucher
% \begin{eqnarray}
% \textit{eval}_{\mathcal{I}}(F \wedge G) & = & \pause
%  I_v(F) \ .  \ I_v(G) \label{iet} \\
%  \pause
%  \pause \textit{eval}_{\mathcal{I}}(F \Rightarrow G) & = & \pause \textit{eval}_{\mathcal{I}}(\neg F \vee G)
%  \label{iimplique} \\ 
%  \pause \textit{eval}_{\mathcal{I}}(F \Leftrightarrow G) & = & \pause \textit{eval}_{\mathcal{I}}( (F \Rightarrow G)
%  \wedge (G \Rightarrow F))  \label{iequiv}
% \end{eqnarray}
% o\`u $F$ et $G$ sont des formules propositionnelles
 

\begin{frame}
\frametitle{Sémantique du calcul des prédicats}
\framesubtitle{Satisfaisabilité et validité}
Dans une interprétation donnée
\begin{itemize}
  \item une formule est dite \emph{valide} si
elle est vraie \pause dans tous les environnements

\item \pause une formule est dite \emph{satisfaisable}
 \pause s'il existe au moins un environnement dans lequel elle est
 vraie
\item \pause une formule est dite \emph{close} si \pause elle n'a pas
de variables libres
\item \pause Soit $x_1, \ldots, x_n$ les variables libres de
$\varphi$
\begin{itemize}
  \item $\forall x_1 \,.\, \ldots \forall x_n \,.\,
\varphi$ s'appelle la clôture \pause universelle de $\varphi$
\item $\exists x_1 \,.\, \ldots \exists x_n \,.\, \varphi$
s'appelle \pause la clôture existentielle de $\varphi$
\end{itemize}
\item  $\varphi$ est valide ssi sa clôture \pause universelle est
vraie
\item \pause $\varphi$ est satisfaisable ssi \pause sa clôture 
existentielle est vraie
\end{itemize} 
Conclusion ?
\end{frame}

\begin{frame}
\frametitle{Sémantique du calcul des prédicats}
\framesubtitle{Relation de satisfaction}
Soit $\varphi$ une formule close
\begin{itemize}
\item On dit que 
 \begin{itemize}
  \item ``la structure $\mathcal{S}$ satisfait
$\varphi$'', ou bien que
 \item ``$\mathcal{S}$ est un modèle de $\varphi$''  
 \end{itemize} et on note  $\mathcal{S} \models \varphi$
si la formule $\varphi$ est vraie dans la structure/interprétation 
$\mathcal{S}$ 
\item \pause L'environnement n'intervient pas car la formule est
close
\end{itemize}
\end{frame}

% retour au poly, def 7.10
\begin{frame}
\frametitle{Sémantique du calcul des prédicats}
\framesubtitle{Tautologie, conséquence logique, équivalence}
Soit $C$,  $H_1, \ldots, H_n$, $P$ et $Q$ des formules closes

\begin{itemize}
\item \pause On dit que la formule $C$ est une \emph{tautologie} et on
écrit $\models C$ \pause s'il existe au moins une interprétation
$\mathcal{S}$ telle que $\mathcal{S} \models C$
\item \pause On dit que la formule $C$ est une \emph{conséquence
logique} des formules $H_1, \ldots, H_n$ et on écrit $\{ H_1,
\ldots, H_n \} \models C$ si \pause toutes les interprétations
$\mathcal{S}$ telles que $\mathcal{S} \models H_1$ et \ldots
et $\mathcal{S} \models H_1$ sont telles que $\mathcal{S} \models
C$
\item \pause On dit que les formules $P$ et $Q$ sont (logiquement)
équivalentes et on écrit $P \approx Q$ si \pause $\{ P \} \models Q$
et $\{ Q \} \models P$
\end{itemize}
\end{frame}

\begin{frame}
\frametitle{Calcul des prédicats}
\framesubtitle{Exercice 4 (partie II.2, trou à compléter)}
$\non (\exi x\, . \, p(x)) \approx (\qqs x \,.\, \non p(x)) $,
$\non (\qqs x \,.\, p(x)) \approx  (\exi x\, . \, \non p(x))$
\begin{itemize}
  \item Appliquer ces équivalences et toutes les équivalences
  propositionnelles connues pour simplifier la négation des formules
  suivantes
\begin{enumerate}
\item  $\forall x \, .\, p(x) \imp q(x)$
\item  $\exists x \, .\, p(x) \land q(x)$
\item  $\forall x \, . \, p(x) \eqv q(x)$
\item  $\exists x\, .\, (\forall y \,.\,
  q(x,y) \imp (p(x,y) \lor r(x,y)))$ 
\end{enumerate}
  \item \pause Réponses \pause
  \begin{enumerate}
\item $\exists x \, .\, p(x) \land \neg q(x)$
\item \pause $\forall x \, .\, p(x) \imp \neg q(x)$
\item \pause $\exists x \, . \, (p(x) \land  \neg q(x)) \lor (\neg
p(x) \land q(x))$
\item \pause
$\forall x\, .\, (\exists y \,.\,
  q(x,y) \land \neg p(x,y) \land \neg r(x,y))$ 
\end{enumerate}
\end{itemize}
\end{frame}

\begin{frame}
\frametitle{Sémantique du calcul des prédicats}
\framesubtitle{Exercice 6.18, partie II.3 du chapitre 6}
Dans le langage de signature fonctionnelle $\{a^0, f^2\}$ et de
signature relationnelle $\{R^2, S^1\}$, on considère les termes $t_i$
et les formules $\varphi_j$ suivants.
\begin{itemize}
\item $t_1 = f(x,y)$
\item $t_2 = f(a,y)$
\item $t_3 = a$
\item $t_4 = f(x,f(x,x))$
\item $\varphi_1 : R(x,y) \imp \forall y \,. \, S(y)$
\item $\varphi_2 : 
  (\forall y \, .\, R(y,a) ) \imp 
  (\exists y \, .\, R(x,y))$
\item $\varphi_3 : 
  (\forall x \,.\,  \exists z \,.\, R(x,z))
  \land 
  (\exists x \,.\,  \forall y \,.\, R(y,x))$
\end{itemize}
Déterminer si $t_i$ est substituable à $x$ dans $\varphi_j$ et
calculer,  le cas échéant, $\varphi_j (t_i/x)$ pour tout $i$ et $j$
entre 1 et 4. Dans le cas où le terme $t_i$ n'est pas substituable,
renommer les variables de la formule afin qu'il le soit.
\end{frame}

\begin{frame}
\frametitle{Sémantique du calcul des prédicats}
\framesubtitle{Exercice 6.19, partie II.3 du chapitre 6}
Dans un langage de signature relationnelle $\{R^2, =^2\}$,
on considère les formules suivantes:
\begin{eqnarray*}
 \Gamma_1 &=&\forall x \,.\, \exists y\, .\, R(x,y) \\
 \Gamma_2 &=&\forall x \,.\, (\forall y\, .\, 
 (\exists z \, .\, R(x,z) \land R(z,y)) \imp R(x,y)) \\
 \Gamma_3 &=&\forall x,y \,.\, (R(x,y) \land R(y,x))
 \eqv y=x \\
 \Gamma_4 &=&\forall x,y \,.\, 
 (\exists z \, .\, \neg R(z,x) \land \neg R(z,y)) \lor x =y
\end{eqnarray*}
Déterminer la valeur de vérité de ces formules dans les
interprétations suivantes :
\begin{itemize}
\item $\mathcal{U}_1= \N$ et 
$R(x,y)$ est vraie si et seulement si  $x\le y$. 
Le prédicat $=$ a l'interprétation standard.

\item $\mathcal{U}_2= \N\setminus \{0\}$ et 
$R(x,y)$ est vraie si et seulement si  $x \neq y$ et $x$ divise $y$. 
Le prédicat $=$ a l'interprétation standard.
\end{itemize}
\end{frame}


\begin{frame}
\frametitle{Calcul des prédicats}
\framesubtitle{Mise en forme prénexe}
Mettre sous forme prénexe les formules suivantes
(exemple 6.20, partie III.1.1.)

\begin{tabular}{c l} $F_1$ & $\forall
y\, .\, ({\rm cr}(y)\imp\exists x\, .\,  {\rm co}(x,y))$ \\ 
$F_2$ & $\forall x, y  \, .\, ({\rm cr}(y)\et {\rm co}(x,y)) \imp {\rm
  mal}(x)$ \\ 
$F_3$ & $\forall x\, .\, {\rm ar}(x)\imp {\rm mal}(x)$ \\
$F_4$ & $\forall x\, .\, ({\rm mal}(x) \et {\rm ar}(x)) \imp
(\forall y\, .\,  {\rm cr}(y) \imp \neg {\rm co}(x,y))$ \\ 
$F_5$ & $\exists x \, .\, {\rm cr}(x)$ \\
$F_6$ & $\non (\exists x \, .\,{\rm mal}(x) \et \non {\rm ar}(x))$ \\
\end{tabular}
\pause

\begin{tabular}{c l}
$F_1$ & $\forall y\,.\,\exists x \, .\, (\non{\rm cr}(y)\ou{\rm co}(x,y))$ \\
\pause $F_2$ & $\forall x, y \, .\, (\non{\rm cr}(y)\ou\non{\rm
co}(x,y)\ou{\rm mal}(x))$ \\
\pause $F'_3$ & $\forall x \, .\, (\non{\rm ar}(x)\ou{\rm mal}(x))$ \\
\pause $F_4$ & $\forall x,y \, .\, (\non{\rm mal}(x)\ou\non
{\rm ar}(x)\ou\non{\rm cr}(y)\ou\non{\rm co}(x,y))$ \\
\pause $F_5$ & $\exists x\,.\, {\rm cr}(x)$ \\
\pause $F_6$ & $\forall x\,.\, (\non{\rm mal}(x)\ou{\rm ar}(x))$ \\
\end{tabular}

\end{frame}


\begin{frame}
\frametitle{Calcul des prédicats}
\framesubtitle{Skolémisation}
Skolémiser les formules sous forme prénexe obtenues dans l'exercice
précédent
\end{frame}

% 
% \begin{frame}
% \frametitle{Calcul des prédicats}
% \framesubtitle{Exercice 2}
% \begin{itemize}
%   \item Une formule est close si toutes ses variables sont liées
% \end{itemize}
% \end{frame}
