Chapitre 2 Rappels sur la logique Une définition générale de la notion de logique mathématique ne sera pas donnée ici. On se contentera de l’idée qu’une logique est un système formel — comprenant un système syntaxique de construction de formules — auquel est associée une sémantique. Nous étudierons dans ce chapitre la logique propositionnelle et la logique du premier ordre puis nous évoquerons rapidement d’autres logiques mathématiques classiques. Nous nous appuyerons essentiellement sur l’ouvrage suivant (beaucoup plus complet que ce chapitre) : [1] Delahaye (J.-P.). – Outils logiques pour l’intelligence artificielle. – Eyrolles, 1986. On peut trouver des cours de logiques sur le Web. Notons en particulier : [1] A. Herzig. – Introduction à la logique, ! . – dernière consultation : septembre, 2005. 2.1 2.1.1 La logique propositionnelle (LP) Syntaxe La formule suivante est une formule de LP : "$#&%('&)+*,"$%.-0/()&1(24365(7&1(2&#()98:/(%&2(;9-:/=<><@?A"$1&2(B&;(2(5&7()C*D"$%9-:/()&1(2E?GFH#(%&'()=<>< Cette formule est constituée F ? 3 * – De connecteurs logiques : (« non »), (« et »), (« ou ») et (« implique ») ; #(%('&) %.-0/()&1(2 5(7&1(2(#&)98:/(%(2&;9-:/ 1&2(B(;&2(5&7() – De variables propositionnelles (en l’occurrence, , , et ). On peut interpréter cette formule par « Si un animal vole, alors c’est un oiseau ou une chauve-souris et une autruche est un oiseau qui ne vole pas. » F Il y a un seul connecteur unaire, c’est : il ne s’applique que sur une seule formule à la fois : si I est une F formule, alors I est une formule. ? 3 * Les connecteurs binaires les plus ? utilisés3 sont * , , et J (« équivalent à »). Il y a aussi K (« ou exclusif »). L ,I L ,I L , IMJNL et ICKOL sont des formules. Si I et L sont deux formules, alors I 3+QR?+S " 3+QT<&?+S 3U">QV?+SW< Les parenthèses sont là pour éviter les ambiguïtés : on n’écrit pasF P ? mais soit P , * soit P , 3 qui?Asont deux formules différentes. On considérera néanmoins que , et sont prioritaires sur et J . Ainsi, Q*,S " ?AQT<X*,S ?M">QY*DSW< P est identifié à P et non pas à P . 9 2.1.2 Sémantique 3Q*,S Considérons la formule propositionnelle suivante : . Est-elle vraie? Cela dépend de la signification 0 I \ Z [ P Q S Q S de P , et . Cette signification est binaire : P (resp., et ) s’interprète soit comme vrai (noté ] ) soit comme faux (noté ^ ). Une interprétation _ d’une formule propositionnelle I est l’affectation de chacuneQ des variables de I à S une valeur de vérité, c’est-à-dire à un élément de la paire `]ab^c . Par exemple, _edf`gPChi]a h,^a h,^akj+h,]c est une interprétation de I0Z$[ (notons que cette interprétation contient l’affectation d’une variable propositionnelle j qui n’apparaît pas dans I et dont la valeur d’affectation n’a pas d’importance pour l’interprétation de I ). En Q S Q S l’occurrence, _ ne satisfait pas I0Z\[ : si P est vraie, est fausse et est fausse, alors « ( P ou ) implique » est faux. De façon générale, pour savoir si une interprétation _ d’une formule I satisfait cette formule (synonyme : _ est un modèle de I ), ce qu’on notera _mlOI , on s’appuie sur les règles suivantes : " <qp _ , alors _mlrn . – Si n est une variable propositionnelle et que nohi] " <qp – Si n est une variable propositionnelle et que nohi^ _ , alors _tr sl n . F – Si I est une formule propositionnelle et que _ est une interprétation de I alors _Ol I ssi _uO sl I . – Soit I et L deux formules et _ une interprétation commune à I et à L (autrement dit, elle contient l’affectation de toutes les variables de I et de toutes les variables de L ). On a : ? – si _mloI et _Ol6L alors _mlOI L ; 3 L ; – si _mloI ou si _mlvL alors _mlmI * * L si, quand on a _OlOI alors on a _ml6L (p. ex., si _to sl I , alors _OlmI L ); – _OlOI – _OlOIMJwL si, _mloI ssi _xlrL ; – _OlOI+KOL si, une et une seule des deux affirmations _mlOI et _OlvL est vérifiée. 3yF P et Une formule I est une tautologie si, pour toute interprétation _ , on a _,liI . Par exemple, P " *,QT<X*D">FXQ*,F < P P sont des tautologies. Une formule I entraîne une formule L — ce qu’on note IzlvL — si, quel que soit le modèle _ de I , _ est aussi un modèle de L (i.e., si _OlOI alors _mlvL ) 1 . Deux formules I et L sont équivalentes, ce qu’on note I|{}L , si IzlvL et L+lOI . On a les équivalences de formules suivantes ( I , L et ~ étant trois formules) : ? ? I L { L I (2.1) 3 3 (2.2) I L { L I " ? <@? ?A" ? < I L ~ { I L ~ (2.3) " 3 <@3 3A" 3 < I L ~ { I L ~ (2.4) FF (2.5) I { I FX" 3 < F ?AF I L { I L (2.6) FX" ? < F 3AF (2.7) I L { I L * F *,F I L { L I (2.8) * F 3 (2.9) I L { I L " * <?M" * < IM{}L { I L L I (2.10) FX" < ICKOL { IM{}L (2.11) (2.6) et (2.7) sont connues sous le terme « lois de de Morgan ». (2.8) est la loi de la contraposée (utilisée notamment lors d’un « raisonnement par l’absurde »). Notons par ailleur qu’on a, pour deux formules I et L : * IrlvL ssi lOI L (2.12) IM{}L ssi lOIMJNL (2.13) 1. En toute rigueur, cette définition est incomplète. Par exemple, on a , alors que le modèle voy de n’est pas une interprétation de , puisque n’est pas affecté dans . Cependant, on peut montrer que les deux interprétations et = obtenues en ajoutant respectivement à l’affectation Yt et l’affectation u sont chacune un modèle de Y . En toute rigueur, il faudrait dire que si pour toute interprétation de et de , si est un modèle de alors est un modèle de . 10 (2.12) s’appelle le théorème de la déduction. Utilisation de tables de vérité. Soit I , une formule, , l’ensemble des variables de I et d . Il existe 0 interprétations de I construites uniquement sur les variables de I . La table de vérité de I comprend une _ et ligne par interprétation, les colonnes représentant les affectations des variables de I pour une interprétation F l’interprétation de la formule I elle-même (] si _OlOI , ^ sinon). Par exemple, la table de vérité de n est : F n n ^ ] ] ^ On peut avoir une table de vérité commune à plusieurs formules, par exemple : ? 3 * n n n n noJN n6Km ^ ^ ^ ^ ] ] ^ ^ ] ^ ] ] ^ ] ] ^ ^ ] ^ ^ ] ] ] ] ] ] ] ^ Pour prouver qu’une formule I est une tautologie, une méthode simple (dans le principe) est l’utilisation de tables de vérité : il faut et il suffit de montrer qu’il n’y a pas de ^ dans la colonne de I de sa table. Pour montrer qu’une formule entraîne une autre formule ou est équivalente à elle, on pourra appliquer (2.12) * L , pour prouver I}{ L , on construira la ou (2.13) : pour prouver IxlxL , on construira la table de vérité de I table de vérité de I|JNL . ?A">Qq3¡ST< " ?AQT<@3A" ?AST< P P P Par exemple, on veut montrer que les formules et sont équivalentes. Cela revient " ?M">Qq3GSW<>< ">" ?AQT<@3M" ?AST<>< J P P est une tautologie : à prouver que la formule I6d P Q S Qq3MS ?M">Qq3AST< ?AQ ?GS " ?AQT<@3A" ?AST< " ?A">Q¢3AST<>< ">" ?MQT<@3A" ?AST<>< P P P P P P P J P P ^ ^ ^ ^ ^ ^ ^ ^ ] ^ ^ ] ] ^ ^ ^ ^ ] ^ ] ^ ] ^ ^ ^ ^ ] ^ ] ] ] ^ ^ ^ ^ ] ] ^ ^ ^ ^ ^ ^ ^ ] ] ^ ] ] ] ^ ] ] ] ] ] ^ ] ] ] ^ ] ] ] ] ] ] ] ] ] ] ] Exercice 3 Montrer par la méthode des tables de vérité les équivalences (2.1) à (2.11). Principe de non pertinence de la syntaxe. Si I et L sont deux formules équivalentes ( IM{}L ) qui expriment des connaissances, alors, les raisonnements qu’on peut faire à partir de I , on peut les faire à partir de L et inversement. Par exemple, on a : 5(7(1&B+*£;&%(¤&;(%(¤&¤() FH5&7(1&B¥36;(%&¤(;&%(¤(¤&) { 5&7(1(B¦* ;(%&¤(;&%(¤(¤&) Par conséquent, toute conclusion issue d’un raisonnement sur peut être* inférée à partir de F¢5(7(1&B3;(%(¤&;(%&¤(¤() 5&7(1&B+* . Par conséquent, se demander, par exemple, combien il y a de symboles « » dans « ;&%(¤&;(%(¤&¤() » relève de la syntaxe mais pas de la sémantique et n’est donc pas un raisonnement. L’exemple suivant est plus général. On a vu plus haut que, pour toutes formules I , L et ~ , on a " ? <§? ?M" ? < I L ~¨{©I L ~ . Comme la syntaxe n’est pas pertinente, les formules sont considérées modulo { . Par ? ? " ? <H? ?G" ? < L ~ qui se lira I L ~ ou I L ~ : les deux formules ne sont pas égales conséquent, on peut noter I 11 " 3 <3 3z" 3 < mais sont équivalentes, donc on peut les assimiler sans risque. De la même façon, on a I L ~f{ªI L ~ , 3 3 donc on peut noter I L ~ , sans parenthèse. Dans le même ordre d’idée, on peut montrer que, si I est une sous-formule de « et que L est une formule équivalente à I , alors la formule ¬FX">F obtenue en substituant I par L dans « est équivalente à « . Par exemple, F">F 3GFXQ*,ST< " ?AQT<q*,ST< F 3GFXQ FX" ?AQT< P P { P est équivalente à car P . Bases de connaissances en LP. Une base de connaissances en LP est un ensemble ­&®¯d°`gI±WakIT²a0³0³0³:I0´c de formules de cette logique. Une formule I est une conséquence de ? ­(® , ce qu’on note l§µ>¶·I si, ? pour? tout ? modèle _ ? ? * commun à I ± , I ² , ... et I ´ , _ est un modèle de I . Cela équivaut? à I ± ? I ² ? ³0³0³ I ´ lOI ou à lmI ± I ² ³0³0³ I ´ I . IT² ³0³0³ I0´ . C’est pourquoi on assimilera? souvent ­&® à la conjonction I± On notera Irl§µ>¶L si ­(® IzlvL (ou, de façon équivalente l µ>¶0¸(¹»º(¼ L ). Notons que si IzlvL alors Izl§µ>¶L , mais sl L , comme le montre le contre-exemple suivant : que la réciproque peut être fausse : on peut avoir ICl@µ>¶L et Ixv %:¾(¾9)C*À¿&;(29-:B F¢¿(;(2.-0B¥3GFH'(Á&Â(20¾.) a cga avec ­(®Cdu`½ %:¾(¾9) FH'&Á(Â&20¾9) et IMdý L6d on a ICl@µ>¶L et IÄv sl L " ? <H* * Preuve : On va montrer Izl§µ>¶L en prouvant l ­(® I L et on va prouver Ixv sl L en prouvant que I L n’est pas une tautologie. On utilise pour cela la méthode des tables de vérité : Å+Æ6ÇÈÉÉ ÇÈÉÉ ÎÏ Ê Å ÎÔÍ Ê ËÌ!Ê É Í Ð9 ÊÑ·Ð9ËÌ!Ê É Ò ÒÓ Å ÒÓ Å Î Í Õ Õ Õ Õ Õ Õ Õ Õ Õ Õ Õ Õ Õ Õ Õ Õ Õ Õ Õ Õ Õ Õ Õ Õ Õ Õ Õ Õ Õ Õ Õ Õ Õ ? * * I L est une tautologie alors que I L ne l’est pas. Ö On voit ainsi que ­&® µ>¶ Deux formules I et L sont équivalentes modulo une base de connaissances ­(® — noté I {×L — si I|l µ>¶ L et µ>¶ Lzl§µ>¶EI . Notons que si IM{eL alors I {}L mais que la réciproque est fausse. Satisfiabilité. Une formule I est satisfiable s’il existe un modèle de I (i.e., s’il existe une interprétation _ de I telle que _OlmI ). Autrement dit, dans la table de vérité de I , il y a au moins un ] .? ? Une base de connaissances ­(®+dØ`gI ± akI ² a0³0³0³I ´ c est satisfiable si I ± I ² ³0³0³ I ´ est satisfiable. Si ­(® n’est pas satisfiable alors elle est dite incohérente (on dit aussi inconsistante) et elle permet de prouver F tout (et son contraire !). Par exemple, la base ­(®|dÙ`gP=a P=c est incohérente et, quelle que soit la formule I , on a : F l@µ>¶EI et l.Ú@Û I . Autrement dit, on ne peut rien faire d’utile avec une base de connaissances incohérente. On a l’équivalence suivante : F ssi I est une tautologie I n’est pas satisfiable F Une preuve réfutationnelle du" fait que soit une tautologie consiste à prouver que Par I I n’est pas satisfiable. ?AQT< ">QX? < F">" ?¡QT< J P , il suffit de prouver qu’il n’existe pas de modèle de P J exemple, pour prouver que l P ">Qq? <>< P . 2.1.3 Inférences déductives L’approche de LP présentée ci-dessus est sémantique. Ci-dessous, nous présentons une vision syntaxique de LP qui s’appuie sur la notion de système formel, puis, nous verrons les liens entre la syntaxe et la sémantique. 12 Notion de système formel. La notion de système formelle est définie rigoureusement dans l’ouvrage de Delahaye cité en tête de chapitre. Nous en présentons ici une définition simplifiée. Un système formel est donné par – Un ensemble de mots sur un alphabet donné appelé ensemble< des formules bien formées (on dira, par la 3Ü">FQG* P P est une formule bien formée de LP, mais suite, simplement « formules »), par exemple, 3 FX<>Q¢?M?X" P n’en est pas une. – Un ensemble d’axiomes, sous-ensemble de l’ensemble des formules. I±qIT²¡³0³0³I0Þ Ý , qui se lit « à partir de I± , IT² , ... et I0Þ , on – Un ensemble de règles d’inférence Ý , notées L 2 peut conclure L ». Étant donné un système formel ß , une preuve dans ß d’une formule I à partir d’un ensemble de formules `g~9±0ak~²a0³0³0³à~ c (appelées hypothèses) est une séquence de formule I± , IT² , ... I0´ telle que I0´mdwI et, pour tout á p `gâga a0³0³0³ãVc , I0ä est – soit un axiome de ß , p – soit une des hypothèses ~(å (æ `gâga a0³0³0³c ), á – soit une formule qu’on peut conclure grâce à une règle d’inférence Ý à partir de formules I0ç , avec èEé : I0ç 0I ç 0³ ³0³I0çëê I0ä Ý avec âUìxè±é á a³0³0³â+ìxè0Þ·é á La notation ~ ± ak~ ² a0³0³0³à~ fí I signifie qu’il existe une preuve de I à partir de `g~ ± ak~ ² a0³0³0³:~ c . Soit ­&®yd `g~9±0ak~²a0³0³0³à~ c . ~V±Wak~²&a0³0³0³:~ í I sera aussi noté í µ>¶EI . Un théorème de ß est une formule I prouvable dans ß à partir d’un ensemble vide d’hypothèses : on conclut I en appliquant uniquement les axiomes et les règles d’inférence, autrement dit, íî I , ce qu’on note plus simplement í I . Un système formel pour le calcul propositionnel dans LP. Dans un premier temps, nous allons définir un F * système formel sur les formules de LP construites sur et (repris de l’ouvrage de Delahaye). Nous verrons plus loin comment l’étendre aux formules de LP en toute généralité. Ce système est tel que : ? 3 – Ses formules bien formées sont les formules de LP sans les connecteurs , , J ni K . – Ses axiomes sont les formules de la forme : ï *,">ðÔ* ï < (SA1) " ï *,">ðÔ*,ñ<><q*©">" ï *,ð+<q*," ï *,ñ<>< (SA2) ">F ï *,FXð+<q*,">ðÔ* ï < (SA3) ð ñ ï où , et sont des formules quelconques de ce système formel (il y a donc une infinitié d’axiomes construits sur ces trois schémas d’axiomes). ï£ï *,ð ð òMã . – La seule règle d’inférence est le modus ponens, noté òMã : F * í n . En effet, on a la preuve ci-dessous : Dans ce système formel, on a n F hypothèse I± : F n *,">F *,F < IT² : n n cf. (SA1) F *DF I±IT² ITó : n òMã I ó ">F *,F <q*," * < ITô : n n cf. (SA3) * ITó¥ITô ITõ : n òMã I õ 2. Dans l’ouvrage de Delahaye, « déduire » est utilisé à la place de « conclure ». Nous préférons ce dernier verbe, car nous avons défini la notion de déduction au chapitre 1 en lien avec la notion sémantique de vérité, alors que Delahaye utilise ce terme avec un sens intrinsèquement lié aux règles d’inférence ; nous utiliserons, à la place de « déduire », au sens de Delahaye, le terme de « prouver », comme nous le verrons plus loin. 13 ? 3 Incorporation des autres connecteurs. Il y a plusieurs façons d’« incorporer » les connecteurs , , J et K dans le système formel décrit ci-dessus. Une première façon de faire consiste à enrichir le système formel par de 3 nouveaux axiomes. Par exemple, pour incorporer , on pourra utiliser les deux schémas d’axiomes suivants : ï 3AðÔ*,">F ï *,ð+< ">F ï *Dð+<q* ï 3Að On peut aussi l’enrichir par de nouvelles règles d’inférence. ? 3 Une troisième façon de faire consiste à considérer , , J et K comme des symboles d’un méta-langage (semblable à des 3 macros, telles qu’on en trouve dans certains langages de programmation), sachant, par exemple, F * ? 3 sera réécrite n . On peut définir, de façon générale, les symboles , , J et K par : que la formule n F ï *,ð ï 3Að est réécrit en (2.14) FX">F ï 3AFXð+< ï ?Að est réécrit en (2.15) " ï *,ð+<§?A">ðÔ* ï < ð ï J est réécrit en (2.16) ð FX" ï ð+< ï est réécrit en (2.17) K J FX" < F">" * <?C" * <>< FXF">FX" * <3CFX" * <>< Ainsi, n·K6 FXsera réécrit successivement en <>< noJw , en n n , en n n FX">">FFX" * <><4* FX" * n n et enfin en quiFXest une*, formule du système formel précédant. De cette façon, ?MQ 3AQ ">FXF FXQT< F *,Q í í l’affirmation P revient à l’affirmation . P P P ? 3 On a ainsi étendu les notions de preuve et de théorème aux formules de LP contenant , , J et K . Liens entre í et l . En fait, ce qui nous intéresse, pour une formule I donnée, c’est de savoir si lÄI ou non. Le test í I qu’on cherche à réaliser informatiquement doit, idéalement, coïncider avec l×I . Cet idéal correspond à deux propriétés qui sont la correction et la complétude d’un système d’inférence syntaxique ( í ) : correction : pour toute formule I , í I entraîne lOI (si I est un théorème alors I est une tautologie) ; complétude : pour toute formule I , lmI entraîne í I (si I est une tautologie alors I est un théorème). Notons que la propriété de correction est très importante : si on n’a pas cette propriété, alors le système formel permettra de prouver des théorèmes qui sont faux ! Il est bon d’avoir la complétude également, mais c’est un idéal qu’on n’atteint pas toujours. Quoi qu’il en soit, le système formel défini ci-dessus est correct et complet. Cela signifie qu’une formule I de LP est un théorème (au sens de ce système formel) ssi c’est une tautologie. Remarque 2 Il existe d’autres systèmes formels pour LP, s’appuyant sur d’autres axiomes. 2.1.4 Note sur la complexité De façon générale, la complexité des inférences d’un système de représentation des connaissances dépend non seulement des inférences, mais aussi du langage de représentation. Il est bon de savoir que pour la logique propositionnelle et pour tous les algorithmes connus implantant un test í I (correct et complet), aucun ne le fait en temps non exponentiel (dans le pire cas) en fonction du nombre de variables (c’est un problème algorithmique appartenant à la classe des problèmes NP-complets). C’est d’ailleurs le temps que cela prend pour l’utilisation de tables de vérité (qui contient lignes). Cependant, il existe des algorithmes perfectionnés qui sont relativement efficaces pour la plupart des cas pratiques, avec un nombre de variables propositionnelles pas trop élevé... 14 2.1.5 Exercices Exercice 4 « Traduire » en LP les phrases suivantes : – Quand il pleut, je prends mon parapluie ou mon chapeau. – Aucun mammifère n’est ovipare, sauf l’ornithorynque et l’échidné. Exercice 5 On considère les affirmations suivantes (d’après Lewis Carroll) : (1) Aucun canard ne danse la valse. (2) Aucun officier ne refuse jamais de danser la valse. (3) Toutes mes volailles sont des canards. Transcrire chaque affirmation en formule propositionnelle. Sachant que Maurice est une de mes volailles, on se pose la question suivante : « Maurice est-il officier? » On demande : – De formaliser cette question sous la forme I í L (ou IrlvL ) ; – D’y répondre en utilisant la méthode des tables de vérité. 2.2 2.2.1 La logique du premier ordre (L ö O) Syntaxe L â O étend LP grâce aux notions de constantes, de variables, de fonctions, de prédicats et de quantificateurs. À titre d’exemple, considérons la base de connaissances constituée des formules suivantes : ;&)=" < ;()" <? 1&;()(¤&B=" <>< ÷ ÷ "$Â(;&1(¤&ø98 n ½&ù nHa J,úû½(ù nHakû ½ ûa ;&)=" 1 1" < <ü?¾ ;()"ý¾.10¾.1(¤" < < ÷ n|½&ù ½ ½ n an ù n an <@3¾ ;()" < 1(;()&¤(B" <>< ÷ ÷ " ;&)=" n ½&ù nHa ù nHa J£½ nHa ;()"$þ&Á(%&¤ ¾91:¾91&¤" 1(B(7&)(;.-0¤()<>< ½(ù a ® þ&Á(%&¤ Â(;&1(¤(ø.8 ;() ¾ ;&) 1&B(7()&;9-:¤() ;() 1(;&)(¤&B ½&ù ù n , et û sont des variables, et ® sont des constantes, , , ½&ù et ½ sont des 1 1 ¾910¾.1(¤ ÷ sont des noms de fonctions unaires, est le quantificateur universel noms de prédicats binaires, ½ ½ et (prononcé « pour tout ») et ú est le quantificateur existentiel (prononcé « il existe »). À chacun des noms de prédicats et des noms de fonctions est associée une arité qui est un entier naturel. Un nom de prédicat unaire (resp., binaire) est d’arité â (resp., ). En particulier, les constantes sont les noms de fonctions d’arité ÿ (parfois, on les distingue des noms de fonctions, pour des raisons de lisibilité). Nous allons définir ce qu’est une formule de L â O en introduisant les notions de terme et d’atomes. On se donne des ensembles dénombrables disjoints deux à deux : celui des variables (n , , û , ...), celui des Q S constantes ( P , , , ...), celui des symboles de fonctions ( , , ...) et celui des symboles de prédicats (ã , , Ý , ...). " < ±Ta ²ak³k³k³ Un terme de L â O est soit une variable, soit une constante, soit où est un symbole de fonction d’arité et où ± , ² , ... sont des termes. Exemple de termes : " < ">Q Q < " " " <><>< P n P=a n a a P&a P=a P=a n On notera que pour"><les constantes, qui sont des symboles de fonctions d’arité ÿ , on omet en général les parenthèses : p. ex., au lieu de P , on note P . " < Un atome de L â O est de la forme ã ±Ta ²gak³k³k³ où ã est un symbole de prédicat d’arité et où ± , ² , ... sont des termes. Exemples d’atomes : " < " < " < " " <>< ã P ã n n¢a n¢a 15 F * ÷ Une formule de L â O est soit un atome, soit d’une des formes I ,I L et n¢I où I , L et n sont deux 3 ? formules et une variable de L â O. On ð incorpore les connecteurs , , J et K en utilisant les règles (2.14) à (2.17) ï (page 14) sauf que les formules et sont supposés être de L â O. On incorpore le quantificateur ú en utilisant la règle F ÷ F únHI est réécrit en (2.18) n I " <§3 " < F ÷ FX" " <§3 " <>< F ÷ FX">F " <¢* " <>< n ã n n ã n n Ainsi, ún+ã n sera réécrit en n puis en n . On utilise parfois le mot « expression » pour dénoter les termes et les formules (une expression est soit un terme, soit une formule). Considérons la formule I suivante : " <ü? ÷ " < ã n nHa Formules ouvertes, formules closes. est une variable dite liée : son « utilisation » est précédée de sa quantification (en l’occurrence, de sa quantification ÷ universelle : ). En revanche, n est libre : il n’y a pas de quantification qui précède son introduction. Cela entraîne que l’on peut remplacer I par une autre formule équivalente en remplaçant la variable libre, , par une autre variable qui n’apparaît pas dans la formule, mettons û : " <§? ÷ " < ã n û nHakû Une formule est ouverte si elle contient au moins une variable libre. Sinon, elle est close (ou fermée). Dans la suite, quand on aura une formule ouverte, on considérera qu’il y a une quantification universelle implicite sur " <q? ÷ " < ã n nHa est équivalente à toutes les variables libres (sauf mention explicite du contraire). Par exemple, " " <¢? ÷ " <>< " < " < ÷ ÷ ÷ ÷ et Ý nHa §akû équivaut à n ûYÝ n¢a .akû . Par conséquent, sous cette hypothèse, toutes les n ã n n¢a formules sont logiquement équivalentes à des formules closes. 2.2.2 Sémantique La plus grande partie de ce qui a été dit de la sémantique de LP se transpose pour L â O. La notion d’interprétation d’une formule, cependant, est plus délicate. Nous allons l’introduire pour une formule I de L â O, en prenant comme exemple la formule close suivante <><*DF ÷ ">Q <>< ÷ " " " I0Z\[ d n ã nHakP a n¢a " < a Une interprétation de I est un couple _}d où est un ensemble non vide appelé domaine d’interprétation et où , la fonction d’interprétation, associe p – À une constante P de I , la valeur P , – À un symbole de fonction de I d’arité , une fonction , -aire ã sur ã – À un symbole de prédicat ã de I d’arité , une relation , autrement " < dit, est un sous ensemble de qu’on notera comme une fonction ã `]ab^c : n¢±Wa nV²a0³0³0³n sont en relation par " <Xp " < ã se note indifféremment n¢±Ta n9²a0³0³0³ën ã et ã n¢±Wa nV²a0³0³0³n . " < a Par exemple, une interprétation de I0Z\[ est _ d avec : P d Q du â " ã d mp " a <p a .a ! <p " ó p <p est pair " 16 `]ab^c 6d! <p `]ab^c Pour I , une formule close de L â O, on veut définir « _ satisfait (resp. ne satisfait pas) I : _OlOI (resp. _yO sl I ). » p valeur I puis on pose ssi . La valeur de est définie en Pour ce faire, on associe à I une ` ] b a ^ c m _ x l I I y d ] I ï ï pour un terme et un atome . s’appuyant sur la définition de et de Soit edØ`Wn¢±Ta n9²a0³0³0³ën9´gc un ensemble fini de ã variables contenant les variables de I . Dans l’exemple de I0Z\[ , on peut prendre }du`WnHa §c (il faut au moins deux variables, mais on aurait pu en avoir d’autres). Soit un terme dont les variables appartiennent à . On associe à une fonction " <q" p ´ " <Xp ±Ta ²ga0³0³0³ ´ ±Ta ²a0³0³0³ ´ de la façon suivante : " < ±Ta ²ga0³0³0³ ´ duP (fonction constante). – Si est une constante, duP , alors " < ème ±Ta ²a0³0³0³ ´ d Þ . projection » : – Si est une variable d}n9Þ , alors est la « # " < ± a ² ak³k³k³ , alors – Si est de la forme " < " " < " < " <>< ± a ² a0³0³0³ ´ $ ± a ² a0³0³0³ ´ a ² ± a ² a0³0³0³ ´ a0³0³0³ ± a ² a0³0³0³ ´ d ± En considérant les termes contenus dans I0Z\[ , il vient : " &%(< P [a Q " &%(< [a â " &%(< n [a [ " &%(< &% [a " " <>< " &%(< " < " < n¢akP [a n akP d' [a d [ Notons que P est à la fois la constante et la fonction constante de valeur : nous ne faisons pas de différence entre les deux. Une formule I de L â O (ouverte ou close) s’interprète par une fonction " <X p ´ " <Xp I ±Ta ²a0³0³0³ ´ I ±Ta ²a0³0³0³ ´ ` ] ab^c de la façon suivante : " < – Si I est une atome I6deã T± a g² ak³k³k³ , alors " < " " < " < " <>< I ±Ta ²ga0³0³0³ ´ } d ã T± a ²a0³0³0³ ´ a ² T± a ²a0³0³0³ ´ a0³0³0³ T± a ²a0³0³0³ ´ ± Sur l’exemple des atomes contenus dans I0Z\[ : " " " <><>< " &%&< >" " " <>< " &%(<>< ã H n k a P [ a d } ã ¢ n k a P [ a d " ">Q <>< " &%&< " ( &%&< a nHa [a d â [+d F – Si I est de la forme L , alors " < " < I ±Ta ²a0³0³0³ ´ d si L T± a ²a0³0³0³ ´ y d ] " < [ est pair alors ^ sinon ] * ~ , alors – Si I est de la forme L " < I T± a ²a0³0³0³ ´ d si L " ±Ta ²a0³0³0³ ´ alors ] sinon ^ 17 < dy^ ou si ~ " ±Ta ²a0³0³0³ ´ < dy] ÷ – Si I est de la forme + n L , n n’étant pas une variable de L ,alors " < " < I ±Ta ²a0³0³0³ ´ d}L ±Wa ²a0³0³0³ ´ ÷ – Si I est de la forme n.ä=L , n.ä étant une variable de L , alors " < &) p " &) < I ±Ta ²a0³0³0³ ´ d si quel que soit ä ,L ±Ta ²ga0³0³0³ +ä *§±a ä a ä+,§±Wak³k³k³ ´ dy] alors ] sinon ^ Sur l’exemple, cela donne : ( &% "÷ ">Q <>< " -%(< -% [+d a n¢a [a ^ (à [ fixé, il n’est pas vrai que pour tout on ait â ) ">F ÷ ">Q <>< " -%(< a n¢a [=a ] " &%&< I Z\[ [a ] "÷ < " < "÷ ÷ < " < n.äýL ±Ta ²a0³0³0³ ´ ne dépend pas de ä . De même ±Ta ²ga0³0³0³ ´ ne dépend On notera que " n9ä ( å\L < ± a ² a0³0³0³ ´ ne dépend d’aucun des ä ni p de ä ni de å . Plus généralement, si I est une formule cloase, I " < " <¥p. ´ á `g âga ak³k³k³ ãVc ). Par conséquent, si I est close, alors soit I ±Wa ²a0³0³0³ ´ d ] pour tout ±Ta ²a0³0³0³ ´ ( , " < " <p ´ soit I . Cette valeur, ] ou ^ , est notée I . Dans l’exemple, on ±Ta ²ga0³0³0³ ´ dØ^ pour tout ±Ta ²a0³0³0³ ´ a I Z\[ dy] et donc _mlmI0Z$[ . ? 3 les règles Par ailleurs, cette interprétation s’étend aux formules de < L â O contenant">F , , J < , "K et ú en utilisant " < " < ÷ ± a ² a0³0³0³ ´ se défini par ± a ² a0³0³0³ ´ . (2.14) à (2.17) et (2.18). Par exemple, úgnCL n£s L Exemple. Considérons la formule suivante : " <§? " <X* ÷ ÷ n ã P=a n ã nHa " < ã = P a On peut considérer une infinité d’interprétations pour cette formule. Par exemple : d l’ensemble de tous les êtres humains d moi ã " P n¢a < d} est un ami de n Pour cette interprétation, la formule ci-dessus se comprend comme « Les amis de mes amis sont mes amis. » Considérons une autre interprétation : d ã P " n¢a < d$/ " d nÄìx < La formule s’interprète alors en « si n"01/ et 20Än , alors 30./ ». Soit I , une formule de L â O et _ , une interprétation de I . _ est un modèle de I (ou _ satisfaitpI ), ce qu’on ÷ I est vraie, sachant que n s’interprète comme « pour tout n note _mlmI si dans cette interprétation, » et que p tel que ». úgn s’interprète comme « il existe n _ est un modèle de I , dans le premier exemple ci-dessus, à condition que les amis de mes amis soient effectivement mes amis. Pour le deuxième exemple, _tluI car l’affirmation « si 4 n 05/ et 6 0un , alors 6 0un » est effectivement vraie. En revanche, si on définit _ de le façon suivante : d ã " P nHa < d d$/ " nmd} 18 â < alors _tO sl I comme l’indique le contre-exemple suivant : /d7 â , 7rd'8 â et /rd' s 8 â . Exercice 6 Pour chacune des formules closes I suivantes, donner un modèle de I (s’il en existe un) et un modèle F de I (s’il en existe un) : " < ÷ – n¢úEã nHa ; "÷ " <><X*," " <>< – n+ã n ; únCã n " " <><X*," ÷ " <>< – ún+ã n ; nCã n " ÷ F " <>< ">F " <>< – n ã n J ún+ã n Propriétés de formules et de bases de connaissances en L â O. Les notions de satisfaction, de modèle, de tautologie, de non pertinence de la syntaxe, de base de connaissances, de preuve réfutationnelle, etc., se transposent directement de LP à L â O (et à bien d’autres logiques). Concernant les propriétés d’équivalence sur les formules, en plus de celles qui se transposent des propriétés d’équivalence des formules de LP, il est bon de noter les suivantes ( I étant une formule ouverte ou close de L â O) : F ÷ F nAI { ún I (2.19) F ÷ F (2.20) únAI { n I ÷ ÷ ÷ ÷ n rI { nMI (2.21) ún¢úrI { ú§únMI (2.22) Les deux équivalences (2.19) et (2.20) permettent de montrer qu’on a : F ÷ 1&;()(¤&B" < F 1(;&)(¤&B=" < < ÷ F 1(;()&¤(B" n¢úU½ n¢a {ªún úg+½ nHa {ªúgn ½ nHa La méthode des tables de vérité ne s’applique pas pour prouver qu’une formule de L â O est une tautologie. Il existe d’autres méthodes pour cela dont l’examen ne fait pas l’objet de ce cours car elles sont complexes à décrire et relativement hors-sujet. Notons la méthode des tableaux sémantiques qui est une méthode réfutationnelle. Lien entre LP et L â O. Considérons la formule suivante de LP : 1 2&'()&BE3=<(%:¾9Á&% 9 %&¤(B(1.-0Â&2+*;:&Á(B()&/(B&)(þ()&/ ® ½ Pour la traduire en L O, il suffit de considérer une variable, mettons n , de remplacer toutes les variables proposi" < â tionnelles ã par ã n (ã sera alors un nom de prédicat) et de rendre la formule close par quantification universelle : * :&Á(B&)(/(B&)(þ&)(/ 1 2('()&B" <§ 3 <(%:¾9Á(%" < ÷ 9 %(¤&B(19-:Â(2" <X; n n ® ½ n n Ici, seul un acteur intervient explicitement : il correspond à la variable n . En L â O, on peut représenter la même idée (« à part Roméo, tous les Montaigu détestent tous les Capulet ») de la façon suivante : * <(%:¾9Á&%" <ü3A" ÷ 1 2&'()(B" <*£ø(Á&B()(/&B()" <>< ÷ 9 %&¤(B&19-0Â&2" <X; n n n +® ½ nHa 2.2.3 Inférences déductives On peut définir des systèmes formels pour L â O qui permettent de définir la notion de théorème, comme pour LP. Par exemple, le système formel du livre de Delahaye pour L â O est donné par / schémas d’axiomes et règles 19 d’inférence. Les 8 premiers schémas d’axiomes sont ceux de LP : (SA1), (SA2) et (SA3). S’y ajoutent les deux schémas d’axiomes suivants : "÷ " <><* " 0< n n (SA4) " * <q*," * ÷ < L I L nHI (SA5) où n est une variable, est un terme et L est une formule n’ayant pas n pour variable libre. Une des règles I L où n d’inférence est le modus ponens òMã (cf. page 13). L’autre règle est la règle de généralisation L : ÷ nAI est une variable et I une formule de L â O. Dans ce système formel, on a " < " < ÷ ÷ ÷ n Eã n¢a í ûã ûakû (exemple pris du livre de Delahaye). En effet, on a la preuve suivante : " < ÷ ÷ I± : n ã n¢a hypothèse " <X* ÷ " < ÷ ÷ IT² : cf. (SA4) n ã n¢a ã ûa " < ÷ I±XIT² ITó : ã ûa òMã ITó " <* " < ÷ cf. (SA4) I ô : ã ûa ã ûakû " < ITóITô I õ : ã û(akû òMã I õ " < ÷ I õ I > : ? ûã û(akû L I > Les notions de correction et de complétude dans L â O ont les mêmes définitions que dans LP. On peut montrer que ce système formel est correct et complet. Autrement dit, pour tout I de L â O, í I ssi lOI . 2.2.4 Semi-décidabilité de L @ O L â O est semi-décidable, ce qui signifie que le test í I (ou lmI ) est semi-décidable. Ce qui signifie qu’il existe un programme qui étant donné une formule I de L â O en entrée réagira ainsi : – Si í I alors la procédure retourne oui. – Sinon, la procédure soit retourne non, soit ne s’arrête pas. En revanche, il n’existe aucun programme qui déterminera systématiquement si í I ou non (en un temps fini) : ce n’est pas un test décidable. Pour cette raison, on définit des formalismes qui sont équivalents à des fragments décidables de L â O, en particulier : Prolog (chapitre 3) et les logiques de descriptions (chapitre 4). 2.2.5 Exercices Exercice 7 « Traduire » en L â O les phrases suivantes : – À père avare, fils prodigue. – Aucun avare n’est altruiste. – Personne, excepté les avares, ne conserve les coquilles d’œufs. – Aucune personne altruiste ne conserve les coquilles d’œufs. Exercice 8 Les trois dernières phrases de l’exercice précédant sont dues à Lewis Carroll. On se pose la question « La troisième phrase peut elle se déduire des deux premières? » Formaliser cette question. 20 " < Exercice 9 Soit A&BDCFEFG-H , I&JLK-MFGDMFG et K-BFNFODP&QRMFG les prédicats tels que A-BFCFEDG&H nHa se lit « n est un parent (au " < " < sens père ou mère) de », I&JLK-MFGDMFG n (resp., K-BFNFODP&QRMFG n ) se lit « x est de sexe féminin (resp., masculin) ». On peut, en s’appuyant sur ces prédicats, définir d’autres prédicats par des axiomes. Par exemple, on peut définir le prédicat K&SFCDE par : " < " " <ü? " <>< ÷ ÷ n T K&SDCFE nHa J A&BDCFEDG&H n¢a K&BDNFOFP-QLMDG n Définir de façon similaire les prédicats binaires A&SFCDE , U-CFBFGDV&WXA&BFCDEFG-H , U&CDBFGFV-WYK-SFCFE , U&CDBFGFV-WYA-SFCFE , U&CDBFGFV-WYK-SFCFE-WYA-B&HLEDCFGDE&QFQRE , NRZ&PDC , I-CFSFCDE , VDELK&M-WLNRZ&PFC , VFERK&M&WXI&CDSFCFE , HLBDG&HLE , [FGDO&QLE , GFMDSFOFE , GFED\FEDP , OF[DPFNDMFGFE , OF[DPFNFMDG (en se limitant pour les cousines et les cousins aux enfants des oncles et tantes), BFNDOFEDGFVFBDG&H et VFEDNFOFEDGFVDBFG&H . 2.3 2.3.1 D’autres logiques classiques Logiques d’ordres supérieurs La logique d’ordre (L O) étend L â O par l’introduction de prédicats variables et de fonctions variables. Les quantificateurs universels et existentiels peuvent s’appliquer sur ces prédicats et fonctions. De plus, on peut avoir des fonctions qui portent sur des fonctions. Par exemple, le principe de récurrence en arithmétique peut s’exprimer ainsi : " <q* " " <><><X*," ÷ " <><>< ÷ ">" " <ü? ÷ ã ã ÿ n+ã n ã ß n nCã n Le problème est que L O est essentiellement incomplète, ce qui signifie qu’il n’existe aucun système formel correct de L O qui soit complet. Autrement dit, on ne peut définir de système formel ß pour lequel, pour toute formule I de L O, í I équivaut à lOI ( í se comprenant au sens du système formel ß ). Ceci est une conséquence du théorème de Gödel de 1931 sur l’incomplétude de l’axiomatisation classique de l’arithmétique (qui a été publié en français en 1989, au seuil, avec un article introductif de Nagel et Newman et un article de Girard). Beaucoup de discussions philosophiques ont fait suite à ce résultat, en particulier sur la question de savoir s’il peut y avoir une « IA forte », i.e., un artefact capable de simuler complètement l’intelligence humaine. En particulier le livre [1] Hofstadter (D.). – Gödel, Escher, Bach, les brins d’une guirlande éternelle. – Paris, InterEditions, 1985. Autres logiques d’ordres supérieurs. On peut étendre L O en L 8 O, la logique d’ordre 8 , dans laquelle on peut avoir des fonctions portant sur des fonctions qui portent sur des fonctions. On peut continuer avec L7 O, L / O, etc. En pratique, les logiques L O, avec ] ont peu d’intérêt pratique pour la représentation des connaissances, 0 puisqu’elles sont essentiellement incomplètes. 2.3.2 Logiques modales Il existe des logiques modales étendant LP et des logiques modales étendant L â O. Contentons-nous des premières. Syntaxiquement, une logique modale étendant LP est constituée des formules de LP et des formules de la " 3zQT<q* " 3zQT< forme ^I , _I où I est une formule de la logique modale. Ainsi, ^ P est une formule d’une telle _ P logique. La sémantique mathématique de ces logiques s’appelle sémantique des mondes accessibles (ou sémantique de Kripke). Nous ne la développerons pas ici. De façon plus intuitive, nous allons décrire la sémantique d’une logique modale temporelle : – I signifie que I est vrai à l’instant présent ; – ^I signifie que I est toujours vrai ; 21 – _4I signifie que I sera vrai à l’instant présent ou à un instant au moins de l’avenir. -:'Fa '()&2(B ) Par exemple, la formule ^`_ -:'Fa '(½ )&2(B signifie qu’à tout instant , il y a un instant tel qu’il pleuvra à 0 ) ½ l’instant . La formule _b^ signifiera, quant à elle, qu’à partir de maintenant ou d’un instant futur, il pleuvra toujours. Dans une logique modale pour exprimer la connaissance sur la connaissance (ou logique épistémique) on peut exprimer que « L’agent P sait que la * connaissance ã est vraie », ce qui se note ^dcTã . Dans* une telle logique, on a en général les axiomes suivants : ^ec0ã ã (si P sait que ã est vrai, alors ã est vrai), ^ec0ã ^dcf^dc0ã (principe d’inF * F ^dc ^dc0ã (principe d’introspection négative : trospection positive : si P sait ã , alors P sait qu’il sait ã ) et ^dc0ã si P ne sait pas ã , alors P sait qu’il ne sait pas ã ). Une logique déontique est * une logique modale dans laquelle ^ exprime une obligation et _ une permission. _ã exprime le fait que ce qui est obligatoire est permis. En particulier, l’axiome ^qã 2.3.3 Autres logiques Il existe bien d’autres logiques utilisées en RC. Notons l’existence de logiques dites non monotones. Les logiques présentées ci-dessus sont dites monotones. Cela signifie intuitivement que, une fois qu’on a prouvé leI , I sera établi définitivement comme vrai. Cela n’est pas vrai pour les logiques non monotones : pour de telles logiques, on peut établir provisoirement I , puis le remettre en cause plus tard. Notons enfin la combinaison de différentes logiques (comme des logiques modales non monotones, etc.). 22 Chapitre 3 Un formalisme de représentation des connaissances par des règles : Prolog Prolog est un langage de représentation des connaissances dont la première version date de 1972 (A. Colmerauer et P. Roussel). Nous le présentons d’abord en faisant le lien avec L â O, puis présenterons sa syntaxe et un exemple pour finir avec des considérations générales. La référence suivante concerne une implantation particulière de Prolog et des liens vers des documents sur Prolog : Ç È È È [1] SWI-Prolog. – hg Ë !ü ! . – dernière consultation : août, 2004. 3.1 Prolog est un fragment de L ö O Les deux formules suivantes sont des formules de Prolog : " <@? " <X* " < ã n¢a P Ý nHa §akP (3.1) " QT< (3.2) ã P=a Q où P et sont des constantes, n et sont des variables et ã , et Ý sont des prédicats. De façon plus générale, une formule de Prolog est une « clause de Horn », c’est-à-dire une formule de l’une des deux formes suivantes : " < ± a ² a0³0³0³ Þ où ã est un prédicat # -aire et les ä sont soit des constantes, soit des variables (3.3) ã ? * q± 9²X³0³0R³ .´ -i où les .ä sont de la forme (3.3) (3.4) Remarque 3 On définit parfois les clauses de Horn de façon syntaxiquement différentes mais sémantiquement équivalentes : I est une formule de Prolog comme définie ci-dessus ssi il existe une clause de Horn L telle que IM{eL 1 . Remarque 4 Il existe d’autres types de formules dans Prolog, par exemple des formules pour des calculs arithmétiques, mais nous ne les étudierons pas ici (elles sont brièvement évoquées à la section 3.5). 1. Une clause en L j O est une formule de la forme k:ükW¢lXlXlknm où kpo est un littéral, c’est-à-dire une formule de la forme Yu t u lXlYl t êwv (littéral positif) ou de la forme xhk où k est un littéral positif ( xsk est un littéral négatif). Une clause de Horn est une clause ayant un et un seul littéral positif. Par exemple, qsr y u z v|{~} r v r y u zDu v est équivalent à la clause de Horn x qsr y u z v x } r v r y u zDu v . qsr t 23