Vous êtes sur la page 1sur 17

Mathématiques pour l'Informatique Mathématiques pour l'Informatique

Introduction

Introduction

Booléens
Mathématiques pour l'Informatique Logique formelle
Logique

David Teller
Logique propositionnelle
Interprétations
Séquents

13/03/2007
Logiques
Termes de preuves
Preuves et programmes

Logique des prédicats

Conclusions
Mathématiques pour l'Informatique Mathématiques pour l'Informatique
Introduction Introduction

Au programme

La logique est [...] l'étude des règles formelles que doit respecter toute
I Booléens et algèbres de Boole.
déduction correcte.
Accessoirement, Algorithmique = Logique + Contrôle. I Logique formelle.

I Déductions formelles.

I . . .vers la déduction automatique.


Mathématiques pour l'Informatique Mathématiques pour l'Informatique
Booléens Booléens

Intuitivement
Introduction

Booléens
Denition (Algèbre minimale)
Logique formelle L'algèbre minimale de Boole, notée B est l'ensemble {Vrai , Faux } doté
des lois ∧ (conjonction) et ¬ (négation) dénies par

Logique propositionnelle a b a ∧b ¬a
Interprétations
V V V F
Séquents
V F F F
F V F V
Logiques F F F V
Termes de preuves
Preuves et programmes
À partir de ∧ et ¬, on dénit ∨.

Logique des prédicats

Conclusions
Mathématiques pour l'Informatique Mathématiques pour l'Informatique
Booléens Booléens

Algèbre de Boole Exemples

Prêts ?

Denition (Algèbre de Boole)


Une algèbre de Boole est un ensemble E doté de deux éléments distincts
⊥ et >, de deux opérations binaires sur E t et u et d'une opération
Proposition
unaire sur E
_ telles que L'algèbre de Boole minimale ({F , V }, ∨, ∧, ¬) est une algèbre de Boole
avec F =⊥ et V => (ouf !)
I t et u sont idempotentes, associatives, commutatives, distributives
l'une par rapport à l'autre
Proposition
I ∀x , y ∈ E , x u (x t y ) = x = x t (x u y ) L'algèbre de Boole minimale prise à l'envers ({F , V }, ∧, ∨, ¬) avec
I ⊥ est neutre pour t et absorbante pour u V =⊥ et F => est encore une algèbre de Boole !

I > est neutre pour u et absorbante pour t


I x ux = ⊥

I x t x = >.
Mathématiques pour l'Informatique Mathématiques pour l'Informatique
Booléens Booléens

Exemples

Proposition
Si E n'est pas vide, l'ensemble des parties de E forme une algèbre de
Boole minimale. Note Ce qui précède était pour votre culture générale. Vous ne vous en
reservirez pas souvent (voire jamais).
Preuve Il sut de prendre ⊥ = ∅, > = E , u = ∩, t = ∪ et le
complément dans E pour
_.

. . .ou > = ∅, ⊥ = E , u = ∪, t = ∩ et le complément dans E pour


_ !

Q Contrairement à B, P(E ) contient plus de deux éléments. Comment


l'interpréter ?
Typiquement, on inteprétera E comme un ensemble de variables et
X ⊆E comme l'ensemble des variables dont la valeur est Vrai.

Mathématiques pour l'Informatique Mathématiques pour l'Informatique


Logique formelle Logique formelle

Logique formelle
Introduction

Booléens

Logique formelle La logique formelle provient de tentatives de comprendre le raisonnement


humain.

Logique propositionnelle En tant qu'outil de psychologie, ça a ses limites, mais ça reste la


meilleure manière de comprendre ce qu'est une démonstration correcte 
Interprétations
et, au juste, ce qu'elle prouve.
Séquents
Note Même si c'est tentant, il n'est généralement pas possible d'écrire
une preuve un peu complexe entièrement en logique formelle. Pour faire
Logiques ce genre de choses, on utilise Coq...
Termes de preuves
Preuves et programmes

Logique des prédicats

Conclusions
Mathématiques pour l'Informatique Mathématiques pour l'Informatique
Logique formelle Logique formelle

Propositions Implication

Denition (Implication)
Si P et Q sont deux propositions traitant des mêmes objets, on dit que P
Denition (Proposition informelle) implique Q (ou P ⇒ Q ), si soit Q est vraie, soit P est fausse.
Une proposition informelle est une phrase avec une signication précise et
constante dans le temps, et qui est forcément vraie ou fausse  même si Denition (Implication)
on ne sait pas encore dans lequel des deux cas on est. Si P et Q sont deux propositions, la réciproque de P ⇒Q est Q ⇒ P.
Exemples  1 = 2, ∀n ∈ N\{0, 1, 2}, ∀a, b, c ∈ N∗ , a n
+ b n 6= c n , il a Note La validité de la réciproque est totalement indépendante de la
gelé quelque part à Bourges dans la nuit du 19 au 20 mars 2007 . . . validité du sens direct.

Proposition
L'implication est une relation d'ordre.

Mathématiques pour l'Informatique Mathématiques pour l'Informatique


Logique formelle Logique propositionnelle

Introduction

Et à partir de là ? Booléens
Tout dépend de ce que nous souhaitons faire avec la logique...

Logique propositionnelle Logique traitant des relations entre symboles et


Logique formelle
entre preuves.

Logique des prédicats Logique propositionnelle + quanticateurs.


Logique propositionnelle
Interprétations
Logique épistémique Logique des prédicats + une notion d'agents.
Séquents
Logique linéaire Logique des prédicats + une notion de coût d'une
hypothèse..
Logiques
Termes de preuves
Preuves et programmes

Logique des prédicats

Conclusions
Mathématiques pour l'Informatique Mathématiques pour l'Informatique
Logique propositionnelle Logique propositionnelle
Interprétations

Quelques symboles Sémantique

Pour la suite, nous considérerons N = {p , q , r . . .}, l'ensemble


(dénombrable) des noms de variables propositionnelles.

Denition (Formule)
L'ensemble F des formules propositionnelles est le sous-ensemble du Denition (Sémantique)
monoïde libre engendré par N ∪ {NON , IMPLIQUE , (, )} et déni par Dans n'importe quel langage, la sémantique d'une expression est la
signication donnée à cette expression.
F ::= N
| NON F On dénit toujours un langage par rapport à un langage plus simple. Ici,

| F IMPLIQUE F la sémantique d'une formule sera la détermination de sa véracité.

Note IMPLIQUE , ¬ et les parenthèses sont, pour le moment, des


symboles sans signication. En particulier, les notions de vrai et faux
n'ont pas encore de sens !

Mathématiques pour l'Informatique Mathématiques pour l'Informatique


Logique propositionnelle Logique propositionnelle
Interprétations Interprétations

Validité Notes

Denition (Interprétation)
L'interprétation des variables est une fonction I : N 7→ {V , F } qui
Les symboles NON et IMPLIQUE font partie de la formule, tandisque
détermine quelles variables sont vraies.
⇒, , V et F font partie du monde des mathématiques.
En d'autres termes, nous calculons le résultat de la formule.
Denition (Interprétation) # let rec interprete_formule i = function
L'interprétation des formules à partir d'une interprétation I sur les | Nom n −> i n
| Non f −> not ( i n t e r p r e t e _ f o r m u l e i f )
variables est une fonction JI : F 7→ {V , F } dénie par | I m p l i q u e ( f , g ) −> ( i n t e r p r e t e _ f o r m u l e i g ) | |
( not ( i n t e r p r e t e _ f o r m u l e i f ) ) ; ;
I ∀n ∈ N , JI (n) = I (n) est une interprétation de variables ; v a l i n t e r p r e t e _ f o r m u l e : ( s t r i n g −> b o o l ) −> f o r m u l e −> b o o l = < fun >

I JI (NON f ) = JI (f ) (la négation dans {V , F }


I JI (f IMPLIQUE f 0 ) = JI (f ) ⇒ JI (f 0 ).
Mathématiques pour l'Informatique Mathématiques pour l'Informatique
Logique propositionnelle Logique propositionnelle
Interprétations Interprétations

Tautologies & co. Quelques exemples

Denition (Tautologie)
Une formule f est une tautologie si toutes ses interprétations sont vraies.

Proposition
Denition (Satisfaisable) Les formules p IMPLIQUE p, p IMPLIQUE q, p IMPLIQUE NON p
Une formule f est satisfaisable s'il existe au moins une interprétation de f
sont-elles des tautologies ? Satisfaisables ? Insatisfaisables ?
qui soit vraie.

Denition (Insatisfaisable)
Une formule f est satisfaisable si toutes ses interprétations sont fausses.

Mathématiques pour l'Informatique Mathématiques pour l'Informatique


Logique propositionnelle Logique propositionnelle
Interprétations Interprétations

Dénitions Encore des exemples

Proposition
Denition (Disjonction) Les formules p ET NON p, p OU NON p sont-elles des tautologies ?
0
Pour tout f et tout f , dénissons la formule f OU f
0
(ou disjonction de Satisfaisables ? Insatisfaisables ?
0
f et f ) comme NON f IMPLIQUE 0
f .
I p ET NON p est insatisfaisable  pour ce faire, il sur de vérier
avec toutes les interprétations de variables I telles que I (p ) =V
Denition (Conjonction) et
avec toutes les interprétations de variables I telles que I (p ) =F
0
Pour tout f et tout f , dénissons la formule f ET f
0
(ou conjonction
0
de f et f ) comme NON (f IMPLIQUE NON f 0 ). I p OU NON p est une tautologie  pour ce faire, il sur de vérier
avec toutes les interprétations de variables I telles que I (p ) = V et
avec toutes les interprétations de variables I telles que I (p ) = F.
Mathématiques pour l'Informatique Mathématiques pour l'Informatique
Logique propositionnelle Logique propositionnelle
Séquents Séquents

Séquents Véracité

Denition (Vrai)
Denition (Séquent) Un séquent est vrai dans une interprétation I si, dans cette
Un séquent est un couple (P , c ) composé d'un ensemble éventuellement
interprétation, les prémisses impliquent la conclusion.
vide P de formules logiques (les prémisses) et d'une formule c (la
conclusion).
Denition (Valide)
Les séquents sont la première étape dans la formalisation d'un Un séquent est valide s'il est vrai dans toutes les interprétations.

raisonnement.
Lorsqu'un séquent (P , c ) est valide, on note P |= c .

Mathématiques pour l'Informatique Mathématiques pour l'Informatique


Logique propositionnelle Logique propositionnelle
Séquents Séquents

À vous Quelques règles

Proposition
Proposition P |= c si et seulement si P |= NON NON c.
La formule f est vraie dans I si et seulement si le séquent (∅, f ) est vrai
dans I .
Proposition
Si P |= NON (f IMPLIQUE f
0
) alors P |= NON f
0
et P |= f .
Proposition
La formule f est valide si et seulement si le séquent (∅, f ) est valide.
Exercice
P ∪ {f } |= c si et seulement si P ∪ {NON NON f } |= NON NON c.
Mathématiques pour l'Informatique Mathématiques pour l'Informatique
Logiques Logiques

Inférence
Introduction

Booléens

Logique formelle Objectif Dénir une logique.


Notation Règle d'inférence (ou de déduction).
Logique propositionnelle
Interprétations Prémisses
Nom Conditions
Séquents Conclusion

Logiques Si les conditions sont remplies et si les prémisses peuvent être prouvées,
alors, la règle Nom permet de prouver la conclusion.
Termes de preuves
Preuves et programmes

Logique des prédicats

Conclusions
Mathématiques pour l'Informatique Mathématiques pour l'Informatique
Logiques Logiques

Règles d'inférence Exemple

I Le nom est juste un nom.


Premisse f ∈P
I Les conditions peuvent être de n'importe quelle forme. P `f
I Les prémisses sont de la forme P1 ` c1 , P2 ` c2 . . .c'est-à-dire sous
I Cette règle s'appelle Premisse.
les hypothèses P1 , on peut prouver c1 , sous les hypothèses P2 , on
I La règle ne s'applique que si f est l'une des formules de P .
peut prouver c2 . . .
I Pas de prémisses = il n'y a rien à prouver. C'est un cas de base ou
I La conclusion est de la forme P ` c, c'est-à-dire sous l'hypothèse
axiome.
P , on peut prouver c .
I On cherche à prouver que P `f, c'est-à-dire que sous les
hypothèses P , la formule f est valide.
Mathématiques pour l'Informatique Mathématiques pour l'Informatique
Logiques Logiques

Exemple Pourquoi ?

Note Ceci est uniquement une notation. Avant de s'en servir, il faut se
débrouiller pour que les règles soient bonnes.

Denition (Logique)
Premisse f ∈P Une logique L est un ensemble de règles d'inférence.
P `f

Pour prouver que f est vrai sous les hypothèses P , lorsque f est une des Denition (Prouvable)
hypothèses, il sut d'invoquer la règle Premisse. L'ensemble des propositions prouvables dans L est l'ensemble construit
par induction structurelle à partir de L.

Mathématiques pour l'Informatique Mathématiques pour l'Informatique


Logiques Logiques

On continue ? Logique des séquents

Premisse f ∈P Augmentation
P ` f

Q Tout le monde est d'accord ?


P ` f P ∪ {g } ` f

Note Sauf mention du contraire, tous les noms de variables, ensembles... Modus Ponens
P ` f P ` f
P ` g
IMPLIQUE g
Synthèse
P ∪ {f } ` g
P ` f IMPLIQUE g
qui apparaissent dans une règle d'inférence sont considérés comme
P ` NON NON f P ` f
quantiés par ∀. Double négation 1 Double négation 2
P ` f P ` NON NON f

P ∪ {f } ` g P ∪ {f } ` NON g
Absurde
P ` NON f
Mathématiques pour l'Informatique Mathématiques pour l'Informatique
Logiques Logiques

Vers la déduction. . . Preuves

Denition (Prouvable)
Q Que sommes-nous en train de faire ? L'ensemble des propositions prouvables dans L est l'ensemble construit

A Nous sommes en train de formaliser la notion de raisonnement. par induction structurelle à partir de L.
A . . .ce qui est une étape dans l'automatisation des mathématiques. Denition (Preuve)
Une preuve est le détail de la construction d'un élément prouvable dans
une logique.

Mathématiques pour l'Informatique Mathématiques pour l'Informatique


Logiques Logiques

Comment prouver Exemple

En logique formelle, prouver une armation, c'est

I écrire cette armation ;


Proposition
Pour toute formule f , nous avons ∅ ` f IMPLIQUE f.
I appliquer une règle dont la conclusion est cette armation ;
On est alors ramené à une ou plusieurs armations plus simples à
Preuve
prouver.

I appliquer à une de ces armations une règle dont la conclusion est ?∅


cette armation ;
Premisse
? {f } ` f
?Synthèse
I ...
∅ ` f IMPLIQUE f
I jusqu'à avoir liquidé toutes les armations à prouver.
Mathématiques pour l'Informatique Mathématiques pour l'Informatique
Logiques Logiques

Encore un ? On complique encore les choses

Proposition Proposition
Pour toute formule f , nous avons ∅ ` f IMPLIQUE (f IMPLIQUE f ). Pour tout jeu de prémisses P et toutes formule f et g , nous avons
P ∪ {f } ` g si et seulement si P ∪ {NON NON f }`g
Pour cette preuve, nous allons

Premisse I prouver le sens seulement si

Synthèse
{f } ∪ {f } ` f I supposer P ∪ {NON NON f}`g
{f } ` f IMPLIQUE f I prouver P ∪ {f } ` g
Synthèse
∅ ` f IMPLIQUE (f IMPLIQUE f ) I prouver le sens si
I supposer P ∪ {f } ` g
I prouver P ∪ {NON NON f}`g

Mathématiques pour l'Informatique Mathématiques pour l'Informatique


Logiques Logiques

Seulement si si

Supposons P ∪ {NON NON f } ` g. Supposons P ∪ {f } ` g .

∅ P ∪ {NON NON f } ` g ∅ P ∪ {f } ` g
Premisse Synth Premisse Synth
P ∪ {f } ` f P ` (NON NON f ) IMPLIQUE g P ∪ {NON NON f } ` NON NON f P ` f IMPLIQUE g
DN2 Augm DN1 Augm
P ∪ {f } ` NON NON f P ∪ {f } ` (NON NON f ) IMPLIQUE g P ∪ {NON NON f } ` f P ∪ {NON NON f } ` f IMPLIQUE g
MP MP
P ∪ {f } ` g P ∪ {NON NON f } ` g
Mathématiques pour l'Informatique Mathématiques pour l'Informatique
Logiques Logiques

On continue à compliquer Seulement si. . .

Nous supposons P ` f IMPLIQUE g

Proposition P ` f IMPLIQUE g
A
Pour tout jeu de prémisses P et toutes formule f et g , nous avons P , NON g ` f IMPLIQUE g
P A
P ` f IMPLIQUE g si et seulement si P ` (NON g) IMPLIQUE (NON f ) MP
P , NON g , f ` f P , NON g , f ` f IMPLIQUE g
P
P , NON g , f ` g P , NON g , f ` NON g
RA
Pour cette preuve, nous allons P , NON g ` NON f
S
I prouver le sens seulement si P ` (NON g ) IMPLIQUE (NON f )

I supposer P ` f IMPLIQUE g
I prouver P ` (NON g ) IMPLIQUE (NON f) A Augmentation
I prouver le sens si RA Raisonnement par l'absurde
I supposer P ` (NON g ) IMPLIQUE (NON f) P Prémisse
S Synthèse
I prouver P ` f IMPLIQUE g DN Double négation
MP Modus Ponens

Mathématiques pour l'Informatique Mathématiques pour l'Informatique


Logiques Logiques

. . .si Bilan

Nous supposons P ` (NON g) IMPLIQUE (NON f )


Avec la logique des séquents, nous avons
P ` (NON g ) IMPLIQUE (NON f )
A
P , f ` (NON g ) IMPLIQUE (NON f ) I une notion de prouvable
p A
P , f , NON g ` NON g P , f , NON g ` (NON g ) IMPLIQUE (NON f )
P MP I des théorèmes sur des théorèmes
P , f , NON g ` f P , f , NON g ` NON f
RA
P , f ` NON NON g I des preuves compréhensibles par un ordinateur.
DN
P, f ` g
S Il nous manque un lien entre prouvable et valide.
P ` f IMPLIQUE g
Mathématiques pour l'Informatique Mathématiques pour l'Informatique
Logiques Logiques
Termes de preuves

Croyez-moi sur parole Ensemble des preuves

Théorème (Correction) Q À quoi ressemble l'ensemble des preuves en partant des hypothèses Q ?
Dans la logique des propositions, tout séquent prouvable est valide. A C'est un ensemble déni par induction dont (en gros)
I la base est l'ensemble Q ∪ {}
Théorème (Complétude) I les opérateurs d'induction sont les noms des règles d'inférence
Dans la logique des propositions, tout séquent valide est prouvable.
employées.
Note Ceci est vrai uniquement parce que les règles d'induction ont été En d'autres termes, nous avons un ensemble de preuves.
soigneusement choisies.

Mathématiques pour l'Informatique Mathématiques pour l'Informatique


Logiques Logiques
Termes de preuves Termes de preuves

Termes de preuves Recherche de preuve

Q Comment trouver une preuve ?


A À la main.
Cet ensemble de preuves peut être déni en OCaml : A En essayant toutes les combinaisons possibles.
type p r e u v e = P r e m i s s e of f o r m u l e (∗∗ f ∗)
p r e m i s s e (P , F) <− i n (F , P ) .
| Augmentation of p r e u v e ∗ formule (∗ ∗g ∗)
a u g m e n t a t i o n (P , F) <− a j o u t e r (P , G , P ' ) , p r e u v e (P ' ,F ) .
| ModusPonens of p r e u v e (∗∗ f ∗)
modusponens (P , F) <− p r e u v e (P , i m p l i q u e (G , F ) ) , p r e u v e (P , G ) .
∗ preuve ( ∗ ∗ f=>g ∗ ) ...
| S y n t h e s e of p r e u v e p r e u v e (P , F) <− p r e m i s s e (P , F ) .
| ... p r e u v e (P , F) <− a u g m e n t a t i o n (P , F ) .
p r e u v e (P , F) <− modusponens (P , F ) .

Q Avantages et inconvénients de chaque approche ?


Pour information, Coq utilise une combinaison de ces deux approches.
Mathématiques pour l'Informatique Mathématiques pour l'Informatique
Logiques Logiques
Preuves et programmes Preuves et programmes

Modus Ponens Synthèse

Revenons au Modus Ponens

P `a:f P ` b : f IMPLIQUE −→ g
Modus Ponens De la même manière
P`b a:g
P ∪ {f } ` g P ∪ {x : f } ` e : g
Q Est-ce que ça vous rappelle quelque chose en OCaml ? Synthèse
` f IMPLIQUE
Synthèse
` a : (x : f ) −→ (e : g )
A À peu de choses près, c'est la dénition du typage d'une application de
P g P

fonction en OCaml. ...


I P est la liste des variables, avec leur type De même pour les autres règles.

I a est une valeur

I b une fonction.

Mathématiques pour l'Informatique Mathématiques pour l'Informatique


Logiques Logique des prédicats
Preuves et programmes

Moralité
Introduction

Booléens

Logique formelle
En programmation fonctionnelle, tout programme est une preuve.
Inversement, toute preuve est un programme.
Le système de types de OCaml n'est pas susamment puissant pour
Logique propositionnelle
Interprétations
gérer des preuves non-triviales.
Séquents
Celui de Coq l'est.
Ça en jette, hein ?
Logiques
Termes de preuves
Preuves et programmes

Logique des prédicats

Conclusions
Mathématiques pour l'Informatique Mathématiques pour l'Informatique
Logique des prédicats Logique des prédicats

Prédicats Grammaire

Cette grammaire emploie

I un ensemble de prédicats C (ex: Entier , Premier , Superieur , Impair ),


La logique des prédicats étend la logique des propositions avec des qui généralise les variables booléennes
variables non-booléennes, des ensembles et des quanticateurs. I un ensemble de nom de variables non-booléennes V (ex: x , y ).
Exemple IL EXISTE x DANS N, Premier (x )
Exemple F ::= N
POUR TOUT x DANS N, (Premier (x ) ET Superieur (x , 2)) IMPLIQUE Impair (x ) | IL EXISTE x , F x ∈ V, e ∈ E
Bien entendu, il est nécessaire de dénir la signication de Premier , | F IMPLIQUE F
Superieur , Impair . . . | NON F
| r (x1 , . . . , xn ) r ∈ C, x1 ...xn ∈ V
Note Dans r (x1 , . . . , x n ), on peut avoir n = 0, c'est-à-dire une variable
booléenne.

Mathématiques pour l'Informatique Mathématiques pour l'Informatique


Logique des prédicats Logique des prédicats

Deuxième couche Sémantique

Comme précédemment, on dénit ET et OU à partir de Q De quoi avons-nous besoin pour donner un sens à une formule et ainsi
IMPLIQUE et NON . déterminer si elle est vraie ?
De même, on dénit POUR TOUT à partir de IL EXISTE (ou, au choix, A Il est nécessaire de généraliser la notion d'interprétation, pour prendre
IL EXISTE à partir de POUR TOUT ), par  POUR TOUT x , f est un en compte les prédicats eux-mêmes.
raccourci pour NON IL EXISTE x , NON f . Une autre fois.
Mathématiques pour l'Informatique Mathématiques pour l'Informatique
Logique des prédicats Logique des prédicats

. . .et inférence Arrêtons là

P ` POUR TOUT x , f
Instantiation y nouveau
P ` f {x ← y } Il y a plein de théorèmes intéressants sur le sujet mais nous avons
largement dépassé du programme.
P `f
Généralisation
P ` POUR TOUT x, f

Plus les règles de la logique des propositions.

Mathématiques pour l'Informatique Mathématiques pour l'Informatique


Conclusions Conclusions

Bilan
Introduction

Booléens

Logique formelle Nous avons vu

I les booléens ;
Logique propositionnelle
I les bases de la logique formelle ;
Interprétations
Séquents I les bases de la preuve formelle ;

I quelques liens entre programmation fonctionnelle et la logique.


Logiques
Termes de preuves
Preuves et programmes

Logique des prédicats

Conclusions
Mathématiques pour l'Informatique Mathématiques pour l'Informatique
Conclusions Conclusions

Ouvertures informatique Ouvertures mathématiques

Ce que nous avons vu constitue Ce que nous avons vu constitue


I les bases du système de types de OCaml I les bases des logiques d'ordre supérieur

I les bases des termes de preuve de Coq I les bases des logiques épistémiques

I les bases de Prolog I les bases des logiques modales ;

I les bases de la certication de programmes. I ...

Vous aimerez peut-être aussi