2 \frametitle{Calcul des prédicats}
3 \framesubtitle{Un syllogisme d'Aristote}
5 \item Tous les hommes sont mortels. Socrate est un homme.
6 Donc \pause Socrate est mortel.
7 \item \pause Comment formaliser ce raisonnement en logique des
9 \item \pause ``Tous les hommes sont mortels'' est une
10 propriété générale \pause (on ne peut pas énumérer tous les êtres
11 vivants, même pas tous les hommes)
12 \item \pause On introduit
14 \item des variables ($x$, $y$, \ldots), à valeur dans
15 un ``univers (des objets) du discours''
16 \item \pause des propriétés générales :
17 $H(x)$ pour ``$x$ est un homme'',
18 $M(y)$ pour \pause ``$y$ est mortel''
19 \item \pause une notation pour les propriétés universelles :
20 \pause $ \forall x .\, H(x) \pause \Rightarrow M(x) $
22 \item $H$ et $M$ sont des prédicats (unaires)
26 \frametitle{Calcul des prédicats}
27 \framesubtitle{Exercice}
29 \item Formaliser les phrases suivantes en logique des prédicats
31 \item Tous les étudiants travaillent les mathématiques
32 \item Pierre travaille la physique
33 \item Le fils de Pierre travaille les mathématiques
34 \item Tous les étudiants travaillent au moins une matière
35 \item Il y a au moins une matière travaillée par tous les étudiants
39 \item $\forall x .\, $ travaille(x,Maths)
40 \item \pause travaille(Pierre, Physique)
41 \item \pause travaille(fils(Pierre),Maths)
42 \item \pause $\forall x .\, \exists y.\,$ travaille$(x,y)$
43 \item \pause $\exists y.\, \forall x .\,$ travaille$(x,y)$
49 \frametitle{Calcul des prédicats}
50 \framesubtitle{Langages du premier ordre}
52 \item Un \emph{langage du premier ordre} est défini par un ensemble
53 infini $X$ de variables et deux ensembles finis de symboles :
55 \item une signature fonctionnelle $F$ de symboles fonctionnels
57 \item une signature relationnelle $R$ de symboles
58 relationnels d'arité fixée
60 \item \pause Les sous-ensembles de symboles fonctionnels et
61 relationnels d'arité $n$ sont notés $F_n$ et $R_n$
62 \item \pause Un \emph{terme} est soit une variable, soit un symbole
63 fonctionnel d'arité $n$ ($n \geq 0$) appliqué à $n$ termes
64 \item \pause Un \emph{atome} (ou \emph{formule atomique}) est un
65 symbole relationnel d'arité $n$ ($n \geq 0$) appliqué à $n$ termes
71 \frametitle{Calcul des prédicats}
72 \framesubtitle{Exercice 2 (partie I.9 du support de cours)}
73 $f^n$ signifie que le symbole $f$ (fonctionnel ou
74 relationnel) est d'arité $n$.
75 On considère un langage
76 $\mathcal{L}$ de signature fonctionnelle
77 $\{f^1, g^1, h^2\}$ et de signature relationnelle
78 $\{ R^1, S^2, T^2, =^2\}$.
79 On considère les expressions suivantes :
94 \item $ \varphi_2 : (\forall x \, .\, (T(f(x),y)) \imp (\neg (\exists
97 \item $ \varphi_3 : (\forall z \, .\, T(x,y) \imp (\exists y \,.\,
98 ((\forall x '\neg (f(x) = y))) \lor T(y,z)))$
100 \item $ \varphi_4 : (\forall x \,.\, (\exists y \,.\, (( g(y) = x)
101 \lor (\neg T(y,y))))) \imp (\exists y \,.\, (\forall x \,.\,
106 \item Parmi ces expressions, lesquelles sont des formules de
108 \item Dans celles qui sont des formules, supprimer les parenthèses
110 \item Déterminer les occurrences liées des variables dans les formules
115 \frametitle{Calcul des prédicats}
116 \framesubtitle{Types des termes et des formules}
121 \textsf{ Var of string}
123 \textsf{ $|$ Terme of string * term list;;}
129 \textsf{ $\mid$ Faux}
131 \textsf{ $\mid$ Atome of string * term list}
133 \textsf{ $\mid$ Neg of pred}
135 \textsf{ $\mid$ Ou of pred * pred}
137 \textsf{ $\mid$ Et of pred * pred}
139 \textsf{ $\mid$ Imp of pred * pred}
141 \textsf{ $\mid$ Equiv of pred * pred}
143 \textsf{ $\mid$ PourTout string pred}
145 \textsf{ $\mid$ Existe string pred;;}
149 \frametitle{Calcul des prédicats}
150 \framesubtitle{Exercice 3}
151 On considère un ensemble d'objets de différentes couleurs.
152 Chacun de ces objets porte un numéro et possède une forme géométrique
153 particulière (cube, sphère prisme).
154 En utilisant les prédicats
155 $\textit{pair}(x)$, $\textit{cube}(x)$,
156 $\textit{vert}(x)$, \ldots codez les phrases suivantes :
158 \item Si un objet est sphérique, alors cet objet n'est pas vert ou
159 porte un numéro impair.
160 \item S'il existe un objet vert sphérique, alors il existe un objet
161 vert portant un numéro impair.
162 \item Si tout objet vert porte un numéro impair, alors aucun objet
163 sphérique n'est vert.
167 % Ces diapos font aussi office de support de cours
169 \frametitle{Sémantique du calcul des prédicats}
170 \framesubtitle{Objectif}
172 \item Soit $\varphi$ une formule d'un langage du premier ordre
173 \item \pause Par exemple, $\varphi$ peut être
175 (\exists z \,.\, R(z))
177 (\forall z \, . \, S(y,z) \land \neg S(h(x,z),a))
179 \item \pause Quand peut-on dire que la formule $\varphi$ est vraie ?
180 \item \pause La vérité de $\varphi$ dépend
182 \item du sens des symboles fonctionnels
183 \pause ($a$ et $h$ dans l'exemple) et relationnels
184 \pause ($R$ et $S$ dans l'exemple)
186 \pause $\rightarrow$ notion d'\emph{interprétation}
188 \item de la valeur des variables libres de $\varphi$
189 \pause ($x$ dans l'exemple)
191 \pause $\rightarrow$ notion d'\emph{environnement}
193 \item Globalement, il s'agit de définir la \emph{sémantique} (le
194 sens, la signification) d'un langage du premier ordre
200 \frametitle{Sémantique du calcul des prédicats}
201 \framesubtitle{Définition d'une interprétation}
202 Une \emph{interprétation} $\mathcal{I}$ d'un langage $L$ du premier
203 ordre consiste à choisir
205 \item un ensemble non vide $\mathcal{U}_{\mathcal{I}}$, appelé
206 \emph{domaine d'interprétation}, ou univers
207 \item \pause une fonction $f_{\mathcal{I}}$ de
208 ${\mathcal{U}_{\mathcal{I}}}^n$ dans $\mathcal{U}_{\mathcal{I}}$
209 pour chaque symbole fonctionnel $f$ d'arité $n$ de $L$
210 \item \pause une relation $R_{\mathcal{I}}$ sur
211 ${\mathcal{U}_{\mathcal{I}}}^n$ pour chaque symbole relationnel $R$
214 \pause L'ensemble $\mathcal{U}_{\mathcal{I}}$, muni de
215 ses fonctions $f_{\mathcal{I}}$ et de ses relations
216 $R_{\mathcal{I}}$ est appelé \emph{structure} (interprétative)
220 \frametitle{Interprétation}
221 \framesubtitle{Exemple}
223 \item $\mathcal{U}_{\mathcal{I}} = \mathbb{Z}$
224 \item $a_{\mathcal{I}} = -1$
225 \item $h_{\mathcal{I}}(x,y) = x + y$
226 \item $R_{\mathcal{I}} =$ ``$\leq 0$''
227 \item $S_{\mathcal{I}} =$ ``$>$''
228 \item $(\mathbb{Z}, -1, +, \leq 0, >)$ est une structure
231 \pause \noindent Exercice
233 \item Traduire en français ce que signifie $\varphi$ dans
236 \pause Pour quelles valeurs de $x$ la formule $\varphi$ est-elle
237 vraie dans cette structure ?
242 \frametitle{Sémantique du calcul des prédicats}
243 \framesubtitle{Définition d'un environnement}
245 \item Soit $L$ un langage
246 du premier ordre, $\mathcal{I} = (\mathcal{U}_{\mathcal{I}}, \ldots)$ une
247 interprétation de $L$ et $\varphi$ une formule de $L$
248 \item \pause La vérité de la formule $\varphi$ dans l'interprétation
249 $\mathcal{I}$ ne dépend que de la valeur de ses
250 variables libres dans le domaine d'interprétation
251 \pause $\hookrightarrow$ pour la définir, on introduit la notion
254 Un \emph{environnement} (ou ``assignation'', ou ``affectation'')
255 du langage $L$ est le choix d'une valeur dans le domaine
256 d'interprétation pour chaque variable de l'ensemble $X$ des variables
260 \item Formellement, un environnement est une fonction (totale) $e$
261 de $X$ dans $\mathcal{U}_{\mathcal{I}}$
262 \item La vérité de $\varphi$ dans l'interprétation
263 $\mathcal{I}$ ne dépend que de $e$
264 \item Dans l'environnement $e$, on doit définir successivement la
265 \emph{valeur} de tout terme $t$, puis la valeur de vérité de
272 \frametitle{Sémantique du calcul des prédicats}
273 \framesubtitle{Définition de la valeur d'un terme}
274 Dans une interprétation $\mathcal{I}$ donnée, la valeur
275 $\textit{val}_{\mathcal{I}}(t,e)$ du terme $t$ dans l'environnement $e$ est définie
278 \item Si $x \in X$ est une variable, alors $\textit{val}_{\mathcal{I}}(x,e) = $
281 Si $f$ est un symbole fonctionnel d'arité $n$ $(n \geq 0)$ et si
282 $t_1, \ldots, t_n$ sont $n$ termes, alors
284 $\textit{val}_{\mathcal{I}}(f(t_1, \ldots, t_n),e) =$ \pause
285 $f_{\mathcal{I}}(\textit{val}_{\mathcal{I}}(t_1,e), \ldots, \textit{val}_{\mathcal{I}}(t_n,e))$
287 \pause C'est une définition récursive car les termes sont eux-mêmes
288 définis de manière récursive (sera approfondi dans le cours sur
293 \frametitle{Sémantique du calcul des prédicats}
294 \framesubtitle{Défnition de la valeur de vérité d'une formule}
295 Soit $L$ un langage du premier ordre, $\mathcal{I}$ une interprétation
296 de $L$, $\varphi$ une formule de $L$ et $e$ un environnement de $L$. La
297 \emph{valeur de vérité} de la formule $\varphi$ dans l'environnement
298 $e$ est la constante booléenne 0 ou 1 notée
299 $\textit{eval}_{\mathcal{I}}(\varphi,e)$ et définie comme suit
\r
301 \textit{eval}_{\mathcal{I}}(R(t_1,\ldots,t_n),e) & = & 1
304 (\textit{val}_{\mathcal{I}}(t_1,e), \ldots,
305 \textit{val}_{\mathcal{I}}(t_n,e)) \in
308 \textit{eval}_{\mathcal{I}}(\neg F,e) & = &
310 \overline{\textit{eval}_{\mathcal{I}}(F,e)} \\
312 \textit{eval}_{\mathcal{I}}(F \vee G,e) & = &
313 \pause \textit{eval}_{\mathcal{I}}(F,e) \ + \
314 \textit{eval}_{\mathcal{I}}(G,e) \\
316 \textit{eval}_{\mathcal{I}}(\forall x \,.\, F,e) & = & 1
319 \textit{eval}_{\mathcal{I}}(F,e [x \mapsto u]) = 1
320 \textrm{ pour tout } u \in \mathcal{U}_{\mathcal{I}}\\
323 \pause où $e[x \mapsto u]$ est l'environnement défini à partir de $e$
324 par $$e[x \mapsto u](y)=\left\{ \begin{array} {ll} e(y) &
325 \text{si}~ y \not = x\\
326 u & \text{si} ~ y = x \end{array}\right.$$
331 \frametitle{Sémantique du calcul des prédicats}
332 \framesubtitle{Valeur de vérité d'une formule}
333 \noindent Questions de compréhension
335 \item Préciser ce que sont $R$, $n$, $t_1$,
336 \ldots, $t_n$, $F$, $G$ et $x$ dans cette définition
337 \item \pause Compléter la définition avec les cas des connecteurs
338 logiques $\land$, $\Rightarrow$, $\Leftrightarrow$, \ldots
339 \item \pause Compléter la définition avec le cas du
340 quantificateur $\exists$
341 \item \pause Appliquer cette définition étape par étape à la formule
343 (\exists z \,.\, R(z))
345 (\forall z \, . \, S(y,z) \land \neg S(h(x,z),a))
347 pour l'interprétation $(\mathbb{Z}, -1, +, \leq 0, >)$ et
348 l'environnement qui donne à $x$ la valeur $0$
353 % Solution de l'exercice à retoucher
355 % \textit{eval}_{\mathcal{I}}(F \wedge G) & = & \pause
356 % I_v(F) \ . \ I_v(G) \label{iet} \\
358 % \pause \textit{eval}_{\mathcal{I}}(F \Rightarrow G) & = & \pause \textit{eval}_{\mathcal{I}}(\neg F \vee G)
359 % \label{iimplique} \\
360 % \pause \textit{eval}_{\mathcal{I}}(F \Leftrightarrow G) & = & \pause \textit{eval}_{\mathcal{I}}( (F \Rightarrow G)
361 % \wedge (G \Rightarrow F)) \label{iequiv}
363 % o\`u $F$ et $G$ sont des formules propositionnelles
367 \frametitle{Sémantique du calcul des prédicats}
368 \framesubtitle{Satisfaisabilité et validité}
369 Dans une interprétation donnée
371 \item une formule est dite \emph{valide} si
372 elle est vraie \pause dans tous les environnements
374 \item \pause une formule est dite \emph{satisfaisable}
375 \pause s'il existe au moins un environnement dans lequel elle est
377 \item \pause une formule est dite \emph{close} si \pause elle n'a pas
379 \item \pause Soit $x_1, \ldots, x_n$ les variables libres de
382 \item $\forall x_1 \,.\, \ldots \forall x_n \,.\,
383 \varphi$ s'appelle la clôture \pause universelle de $\varphi$
384 \item $\exists x_1 \,.\, \ldots \exists x_n \,.\, \varphi$
385 s'appelle \pause la clôture existentielle de $\varphi$
387 \item $\varphi$ est valide ssi sa clôture \pause universelle est
389 \item \pause $\varphi$ est satisfaisable ssi \pause sa clôture
390 existentielle est vraie
396 \frametitle{Sémantique du calcul des prédicats}
397 \framesubtitle{Relation de satisfaction}
398 Soit $\varphi$ une formule close
402 \item ``la structure $\mathcal{S}$ satisfait
403 $\varphi$'', ou bien que
404 \item ``$\mathcal{S}$ est un modèle de $\varphi$''
405 \end{itemize} et on note $\mathcal{S} \models \varphi$
406 si la formule $\varphi$ est vraie dans la structure/interprétation
408 \item \pause L'environnement n'intervient pas car la formule est
413 % retour au poly, def 7.10
415 \frametitle{Sémantique du calcul des prédicats}
416 \framesubtitle{Tautologie, conséquence logique, équivalence}
417 Soit $C$, $H_1, \ldots, H_n$, $P$ et $Q$ des formules closes
420 \item \pause On dit que la formule $C$ est une \emph{tautologie} et on
421 écrit $\models C$ \pause s'il existe au moins une interprétation
422 $\mathcal{S}$ telle que $\mathcal{S} \models C$
423 \item \pause On dit que la formule $C$ est une \emph{conséquence
424 logique} des formules $H_1, \ldots, H_n$ et on écrit $\{ H_1,
425 \ldots, H_n \} \models C$ si \pause toutes les interprétations
426 $\mathcal{S}$ telles que $\mathcal{S} \models H_1$ et \ldots
427 et $\mathcal{S} \models H_1$ sont telles que $\mathcal{S} \models
429 \item \pause On dit que les formules $P$ et $Q$ sont (logiquement)
430 équivalentes et on écrit $P \approx Q$ si \pause $\{ P \} \models Q$
431 et $\{ Q \} \models P$
436 \frametitle{Calcul des prédicats}
437 \framesubtitle{Exercice 4 (partie II.2, trou à compléter)}
438 $\non (\exi x\, . \, p(x)) \approx (\qqs x \,.\, \non p(x)) $,
439 $\non (\qqs x \,.\, p(x)) \approx (\exi x\, . \, \non p(x))$
441 \item Appliquer ces équivalences et toutes les équivalences
442 propositionnelles connues pour simplifier la négation des formules
445 \item $\forall x \, .\, p(x) \imp q(x)$
446 \item $\exists x \, .\, p(x) \land q(x)$
447 \item $\forall x \, . \, p(x) \eqv q(x)$
448 \item $\exists x\, .\, (\forall y \,.\,
449 q(x,y) \imp (p(x,y) \lor r(x,y)))$
451 \item \pause Réponses \pause
453 \item $\exists x \, .\, p(x) \land \neg q(x)$
454 \item \pause $\forall x \, .\, p(x) \imp \neg q(x)$
455 \item \pause $\exists x \, . \, (p(x) \land \neg q(x)) \lor (\neg
458 $\forall x\, .\, (\exists y \,.\,
459 q(x,y) \land \neg p(x,y) \land \neg r(x,y))$
465 \frametitle{Sémantique du calcul des prédicats}
466 \framesubtitle{Exercice 6.18, partie II.3 du chapitre 6}
467 Dans le langage de signature fonctionnelle $\{a^0, f^2\}$ et de
468 signature relationnelle $\{R^2, S^1\}$, on considère les termes $t_i$
469 et les formules $\varphi_j$ suivants.
474 \item $t_4 = f(x,f(x,x))$
475 \item $\varphi_1 : R(x,y) \imp \forall y \,. \, S(y)$
477 (\forall y \, .\, R(y,a) ) \imp
478 (\exists y \, .\, R(x,y))$
480 (\forall x \,.\, \exists z \,.\, R(x,z))
482 (\exists x \,.\, \forall y \,.\, R(y,x))$
484 Déterminer si $t_i$ est substituable à $x$ dans $\varphi_j$ et
485 calculer, le cas échéant, $\varphi_j (t_i/x)$ pour tout $i$ et $j$
486 entre 1 et 4. Dans le cas où le terme $t_i$ n'est pas substituable,
487 renommer les variables de la formule afin qu'il le soit.
491 \frametitle{Sémantique du calcul des prédicats}
492 \framesubtitle{Exercice 6.19, partie II.3 du chapitre 6}
493 Dans un langage de signature relationnelle $\{R^2, =^2\}$,
494 on considère les formules suivantes:
496 \Gamma_1 &=&\forall x \,.\, \exists y\, .\, R(x,y) \\
497 \Gamma_2 &=&\forall x \,.\, (\forall y\, .\,
498 (\exists z \, .\, R(x,z) \land R(z,y)) \imp R(x,y)) \\
499 \Gamma_3 &=&\forall x,y \,.\, (R(x,y) \land R(y,x))
501 \Gamma_4 &=&\forall x,y \,.\,
502 (\exists z \, .\, \neg R(z,x) \land \neg R(z,y)) \lor x =y
504 Déterminer la valeur de vérité de ces formules dans les
505 interprétations suivantes :
507 \item $\mathcal{U}_1= \N$ et
508 $R(x,y)$ est vraie si et seulement si $x\le y$.
509 Le prédicat $=$ a l'interprétation standard.
511 \item $\mathcal{U}_2= \N\setminus \{0\}$ et
512 $R(x,y)$ est vraie si et seulement si $x \neq y$ et $x$ divise $y$.
513 Le prédicat $=$ a l'interprétation standard.
519 \frametitle{Calcul des prédicats}
520 \framesubtitle{Mise en forme prénexe}
521 Mettre sous forme prénexe les formules suivantes
522 (exemple 6.20, partie III.1.1.)
524 \begin{tabular}{c l} $F_1$ & $\forall
525 y\, .\, ({\rm cr}(y)\imp\exists x\, .\, {\rm co}(x,y))$ \\
526 $F_2$ & $\forall x, y \, .\, ({\rm cr}(y)\et {\rm co}(x,y)) \imp {\rm
528 $F_3$ & $\forall x\, .\, {\rm ar}(x)\imp {\rm mal}(x)$ \\
529 $F_4$ & $\forall x\, .\, ({\rm mal}(x) \et {\rm ar}(x)) \imp
530 (\forall y\, .\, {\rm cr}(y) \imp \neg {\rm co}(x,y))$ \\
531 $F_5$ & $\exists x \, .\, {\rm cr}(x)$ \\
532 $F_6$ & $\non (\exists x \, .\,{\rm mal}(x) \et \non {\rm ar}(x))$ \\
537 $F_1$ & $\forall y\,.\,\exists x \, .\, (\non{\rm cr}(y)\ou{\rm co}(x,y))$ \\
538 \pause $F_2$ & $\forall x, y \, .\, (\non{\rm cr}(y)\ou\non{\rm
539 co}(x,y)\ou{\rm mal}(x))$ \\
540 \pause $F'_3$ & $\forall x \, .\, (\non{\rm ar}(x)\ou{\rm mal}(x))$ \\
541 \pause $F_4$ & $\forall x,y \, .\, (\non{\rm mal}(x)\ou\non
542 {\rm ar}(x)\ou\non{\rm cr}(y)\ou\non{\rm co}(x,y))$ \\
543 \pause $F_5$ & $\exists x\,.\, {\rm cr}(x)$ \\
544 \pause $F_6$ & $\forall x\,.\, (\non{\rm mal}(x)\ou{\rm ar}(x))$ \\
551 \frametitle{Calcul des prédicats}
552 \framesubtitle{Skolémisation}
553 Skolémiser les formules sous forme prénexe obtenues dans l'exercice
559 % \frametitle{Calcul des prédicats}
560 % \framesubtitle{Exercice 2}
562 % \item Une formule est close si toutes ses variables sont liées