Professional Documents
Culture Documents
1/45
Introduction
La logique peut se dnir comme ltude des raisonnements : Raisonnements formels : dmonstrations mathmatiques, preuves. Raisonnements informels : tude des discours en langues naturelles, utilisation des connaissances.
2/45
Logique en informatique
La logique apparat dans dirents aspects de linformatique : 1. La logique mathmatique sert pour lanalyse formelle de programmes : formalisation des spcications, preuves de programmes, optimisations... 2. Linformatique peut aider les mathmatiques dans ltablissement de preuves : assistants de preuves, dmonstrateurs automatiques. 3. Plus gnralement, la logique est une base de lintelligence articielle, avec de nombreux aspects : reprsentation, acquisition et utilisation de connaissances (systmes experts ou base de connaissances) ; rsolution de problmes (robots, jeux) ; comprhension et traitement des langues naturelles (linguistique informatique).
3/45
Approche du cours
Ce cours comprend deux parties : Une prsentation des logiques les plus simples (logique propositionnelle, puis logique des prdicats), dans loptique dune utilisation par un ordinateur. Lapprentissage dun langage de programmation logique (Prolog) dans loptique de rsolution de problmes de logique et de contraintes.
4/45
10001001011 (a => b) <=> (non b => non A) Flix est un chat. int main () { printf("Hello, world !\n"); return 0; }
Une formule est (ou nest pas) correcte dans un langage. Le sens dune formule correcte dans un langage est appel sa smantique.
Logique et Intelligence Articielle (Licence 3)
5/45
Langage : syntaxe
Un langage formel est un langage formalis (strictement dni). La syntaxe dun langage formel est lensemble des rgles dnissant si un mot est correct dans le langage (on parle de mots accepts par le langage).
Exemple : en C, un entier non sign est crit sous forme dcimale (123, 410, ...), en octal (0123, 0410...), en binaire (1010010101b, ...) ou en hexadcimal (0x123, 0x410). Tous ces mots peuvent dnir un seul langage : on peut crire une fonction C qui dit si une chane de caractre reprsente (ou pas) un entier non sign.
6/45
Langage : smantique
La smantique dun langage est une relation entre les formules acceptes par le langage et leurs signications. Cette signication est souvent faite dans un univers mathmatique (dont le sens est dj connu).
Exemple : smantiques possibles des entiers crits en C : une fonction associant un mot (123, 0x123, 1001b, ...) un entier mathmatique (123 123, 0x123 291, 1001b 9, ...). une fonction associant un mot (123, 0x123, 1001b, ...) un reprsentation mmoire sur 4 octets (123 |00000000|00000000|00000000|01111011|).
7/45
8/45
Exemple
Lnigme dEinstein commence ainsi : Dans une rue, il y a 5 maisons de 5 couleurs direntes (rouge, bleu, vert, blanc et jaune) ; dans chaque maison vit une personne de nationalit dirente (anglais, sudois, danois, norvgien, allemand) ; chaque personne boit un certain type de boisson (th, caf, lait, bire, eau), fume un certain type de cigare (Pall Mall, Dunhill, Blend, Blue Master, Prince) et garde un certain animal domestique (chiens, oiseaux, chats, cheval, poissons). Avec ces informations, on dispose de 5! 5! 5! 5! 5! = 24 883 200 000 mondes possibles. La smantique de la phrase La maison verte est gauche de la maison blanche. est la fonction qui prend en paramtre la description dun monde, et retourne vrai si dans ce monde la maison verte est gauche de la maison blanche, et faux sinon. Ce rsultat est linterprtation de la phrase dans ce monde.
Logique et Intelligence Articielle (Licence 3)
9/45
Raisonnements logiques
Le principe dun raisonnement logique est de faire de nouvelles formules partir danciennes formules.
Exemple : partir des deux formules : 1. Langlais boit du th. 2. Un voisin de lallemand boit du th. on dduit : Langlais est voisin de lallemand. Cette dduction est correcte parce que, dans tous les mondes possibles pour lesquels les deux premires formules sont vraies, la troisime est vraie.
10/45
Mthode de preuve
Une mthode de preuve est une procdure (formelle) pour faire des raisonnements logiques (donc crer de nouvelles formules logiques partir dautres). Une telle mthode est normalement syntaxique, dans le sens quelle manipule les formules sans chercher les interprter. une telle mthode est correcte si les dductions faites sont correctes, cest--dire smantiquement vraies . une telle mthode est complte si toutes les dductions smantiquement vraies peuvent tre obtenues avec cette mthode. En informatique, en plus de la correction et la compltude, on pourra sintresser deux autres proprits : un ordinateur peut-il vrier une preuve, si on la lui donne ? un ordinateur peut-il fabriquer une preuve, si on lui pose une question ?
11/45
Logique propositionnelle
La logique propositionnelle ou logique des propositions est une des logiques les plus simples : juste des variables (des armations lmentaires ) et des connecteurs logiques (et, ou, implique, ...). Les formules contiennent : Un Ensemble de variables not X . Par exemple, X = {a, b, c, d, e, f, . . .}. Des connecteurs logiques, en nombre ni. Par exemple : { , , , }
12/45
Syntaxe
Construction par induction de lensemble des formules F : 1. Toute variable est une formule : X F. 2. Si et sont des formules, alors , , et sont des formules. Lensemble F est le plus petit ensemble qui vrie ces deux proprits. Toute formule est construite par application nie de ces deux rgles.
13/45
Exemple de formules
Sont des formules : a; a b; a ; a b c; a (b c) (utilisation du parenthsage pour expliciter larbre de drivation) ; a a a a a a a a a.
Ne sont pas des formules : a a : expression mal forme. a a a . . . linni : une formule est forcment nie.
14/45
Parenthsage
Priorits : est prioritaire sur , qui lest sur , qui lest sur . Application : c a b d est quivalent c (a ((b) d)).
Associativit : et sont associatifs gauche, est associatif droite. Application : a b c est quivalent a (b c).
15/45
Smantique
En logique classique, les stressvaleurs de vrit sont le vrai et le faux. Nous noterons ces valeurs par les symboles (pour faux) et (pour vrai). B = {, } Les mondes en logique des propositions donnent linterprtation des variables propositionnelles (vraie ou fausse).
16/45
Exemple
Si X = {a, b, x}, on a 23 = 8 mondes possibles, dnis par 8 aectations : 1. 1 (a) = , 1 (b) = , 1 (x) = . 2. 2 (a) = , 2 (b) = , 2 (x) = 3. 3 (a) = , 3 (b) = 4. 4 (a) = , 4 (b) = 5. 5 (a) = 6. 6 (a) = 7. 7 (a) = 8. 8 (a) = , 5 (b) = , 6 (b) = , 3 (x) = . .
, 7 (b) = , 7 (x) =
, 8 (b) = , 8 (x) = .
17/45
o les oprateurs , , et sont dnis laide de tables de vrit (premier argument en colonne, deuxime en ligne) :
18/45
19/45
Exemples
Soit = a (b c) (a a b). Soit avec (a) = , (b) = et (c) = .
20/45
Autres dnitions : est un modle de , ou satisfait , si = . On note aussi |= . soit un ensemble de formules. entrane , si toute aectation satisfaisant toutes les formules de , satifait (les modles de sont des modles de ). On note |= . est valide si elle est vraie dans toutes les aectations. Sinon elle est invalide (il existe au moins une aectation dans laquelle est est fausse). Si est valide, on dit aussi que est une tautologie et on note |= . est satisable si elle a au moins un modle. Elle est insatisable (fausse dans tout modle) sinon.
21/45
Exemples
A vrier : Soit = {a, a b}. Alors |= b. |= a b a. a b a nest pas valide, mais est satisable. b a (b a) est insatisable.
22/45
Introduction la preuve
On dispose dune formule . Comment savoir si est valide ? invalide ? insatisable ?
23/45
Avantages : simple comprendre, donne tout de suite les modles. Inconvnient : trs lent, complexit exponentielle.
Logique et Intelligence Articielle (Licence 3)
24/45
Ltude des systmes de rcriture sort du cadre de ce cours, mais on se servira parfois de rgles de rcriture avant lutilisation dun systme de preuve.
Note : sauf dans des cas prciss au cours du cours (et pour des rgles spciques), ne pas utiliser la rcriture dans les exercices (mme les formes les plus videntes). Rien que rcrire a (a b) en (a a) b nest pas trivial pour un ordinateur.
Logique et Intelligence Articielle (Licence 3)
25/45
Questions : tant donn un systme de preuve : 1. tout thorme est-il une tautologie (correction) ? 2. toute tautologie peut-elle tre un thorme (compltude) ?
26/45
Systmes de Hilbert
Un systme de preuve en format de Hilbert comprend deux ensembles : 1. un ensemble A daxiomes, qui sont des formules ; 2. un ensemble R de rgles dinfrence, relations entre ensembles de formules (les prmisses) et des formules (les conclusions).
27/45
Drivation
A partir dun ensemble de formules (appeles hypothses), une drivation est une suite de formules 1 , 2 , ..., n , n > 0, telle que chaque formule i est : soit un axiome, i A ; soit une hypothse, i ; soit une dduction des formules prcdentes : i est la conclusion dune rgle dinfrence, donc les prmisses sont dans les formules prcdentes. Une preuve dune formule partir de est alors une drivation dont la dernire formule est . Lorsquune telle preuve existe, on dit que est prouvable partir de , et on note .
28/45
Schmas daxiomes, de rgles Les axiomes (et les rgles) sont en nombre innis,
prsents par schmas : la dnition se fait substitution prs.
Exemple : schma daxiome : . a b a. a a a. (a b) (c a) (a b). ... Exemple : schma de rgle : partir de et de , dduire . de a et de a a, dduire a. de a b et de (a b) (a b), dduire a b. ... prmisses On note souvent les rgles sous la forme conclusion .
Logique et Intelligence Articielle (Licence 3)
29/45
30/45
Autres oprateurs
Le systme de Hilbert ne contient que les oprateurs et , il faut donc un moyen de transformer une formule comprenant dautres oprateurs.
Seules rgles de rcriture autorises, et uniquement de la gauche vers la droite : il sagit en fait de dnition des oprateurs et partir de .
31/45
Exemple : preuve de a
ba
3. b a
32/45
Exemple : preuve de a
a b.
1. (a a b) (a a) a b
2. (a (b a) a b) (a b a) a a b 3. (b a) a b (C) (K)
(S)
6. (a b a) a a b 7. a b a 8. a a b (K)
(hypothse) (MP avec (10) et (11)) (MP avec (9) et (12), CQFD).
33/45
12. a a 13. a b
Amliorations
Pour rendre une preuve plus lisible : 1. Utiliser des arbres de preuves. 2. Prsenter laide de preuves intermdiaires (lemmes). 3. Utiliser des substitutions : si est prouvable sans hypothses, alors pour toute substitution , est prouvable. De mme, on fait plusieurs fois des dmonstrations de la forme .
34/45
Correction
Le systme SKC est correct, cest--dire que pour tout ensemble de formules et toute formule : |=
Cela dcoule de la compatibilit entre chaque axiome, chaque rgle de dduction, et la smantique des oprateurs.
35/45
Compltude
Le systme SKC est complet, cest--dire que si entrane , alors est prouvable partir de : |=
En particulier, toute tautologie est prouvable (ce qui ne veut pas dire que sa preuve soit facile faire).
36/45
Autres axiomes
On peut dnir des systmes partir dautres oprateurs : par exemple, sans mais avec un symbole F darit 0 (F est une formule lui seul), on remplace le schma (C) par : (( F) F)
Un tel systme est aussi correct et complet (avec la bonne smantique de F). devient alors quivalent F.
37/45
Dduction naturelle
La dduction naturelle utilise des rgles dinfrences pour introduire et liminer des oprateurs, en cherchant simuler le raisonnement naturel . Par exemple : (Axiome) , A A , F (I) (I) (I1) (I) , (I) (E1) (I2) , (E) , (E) (E2) (E)
(E)
(rgle (I) inutile si est dni comme F) (rgle (I) non indispensable) (systme NJ = pas de rgle (E))
38/45
Exemple : preuve de
A A Pour prouver Si A alors non non A, on suppose que A est vrai et on va montrer non non A, cest--dire non (non A) (rgle I). Pour cela, on va supposer que non A est vrai et obtenir une contradiction (dmonstration dite par labsurde, rgle I). Comme on a suppos A et non A, on a la fois A et sa ngation qui sont vraies, ce qui permet de dduire nimporte quoi (rgle E), donc par exemple la contradiction F. Ce qui montre que non A ne peut pas tre vrai, donc que non non A est vrai. Donc, partir de A on a montr non non A, ce qui prouve Si A alors non non A .
Logique et Intelligence Articielle (Licence 3)
39/45
Correction et compltude
Thorme : le systme de dduction naturelle ci-dessus est correct et complet.
Sans la rgle (E), le systme est correct, mais pas complet (cest la logique intuitionniste).
40/45
Exemple : preuve de
(a b) a, a, a
(a b) a, a, a (a b) a, a, a
a b
(a b) a, a (a b) a, a a
(a b) a (a b) a, a (a b) a, a a
ab
a, (a b) a (a b) a (a b) a
a a
((a b) a) a
41/45
Intuitivement, signie que sous les hypothses , au moins une formule de est vraie (conjonction gauche du , disjonction droite). Toutes les rgles (sauf deux) sont des rgles dintroduction doprateurs, mais certaines se font droite et dautres gauche.
42/45
(-droite)
, , , , , (-droite) (-droite)
, , ,
(-gauche)
, ,
, , (-droite)
(Coupure)
Correction et compltude
Etant donn deux ensembles de formules , , on notera |= pour dire que, si une aectation satisfait toutes les formules de , alors elle satisfait au moins une formule de . On dit dans ce cas que est une consquence logique de .
Cela reste vrai mme si on supprime la rgle de Coupure (thorme dit dlimination des coupures), qui sert dans les dmonstrations la main .
44/45
, on cherche faire disparatre tous les connecteurs, jusqu navoir plus que des axiomes. Cette stratgie marche toujours (si eectivement ). Exemple (preuve de ((a b) a) a) : a a, b a a a
(a b), a (a b) a
(((a b) a) a
45/45