• Aucun résultat trouvé

Logique des propositions

N/A
N/A
Protected

Academic year: 2022

Partager "Logique des propositions"

Copied!
31
0
0
En savoir plus ( Page)

Texte intégral

(1)

Notions de Logique

Preuve de programmes

Notions de Logique

E. CHABBAR

(2)

Logique

La logique a joué un rôle décisif dans le

développement de l’informatique, notamment en informatique théorique:

- Définition d’un modèle théorique des premiers ordinateurs (Machine de Turing)

- Calcul booléen pour la conception et l’étude des

2

- Calcul booléen pour la conception et l’étude des circuits.

- La récursivité pour définir la calculabilité.

- la décidabilité et la complexité pour étudier la limite de la machine.

- La programmation fonctionnelle.

(3)

Logique

Actuellement l’informatique a envahi tous les

domaines de la vie. Le problème le plus important qui se pose dans la conception d’une application informatique est de prouver qu’elle est exempte d’erreurs et qu’elle résout le problème pour

3

d’erreurs et qu’elle résout le problème pour

laquelle elle a été conçue. Pour cela, on définit une tache par une formule de logique et on montre

qu’elle est satisfaite par un modèle de cette application. Ce type de preuve est appelé « Vérification Formelle ».

(4)

Logique

Une logique, par définition, est un ensemble de formules.

Une formule est construite, sur un alphabet, suivant certaines règles (Syntaxe).

La sémantique d’une formule est une valuation (ou

interprétation dans un modèle) qui détermine la valeur de

4

interprétation dans un modèle) qui détermine la valeur de vérité de la formule.

Il y a plusieurs types de logiques:

- Logique des propositions (d’ordre 0)

- Logique du premier ordre (les prédicats en font partie) - logique du second ordre et logique d’ordre supérieur.

(5)

Logique des propositions

- On note P = {p, q, …} l’ensemble des propositions atomiques. Chaque proposition atomique est une

variable qui ne peut prendre que « vrai » ou « faux ».

- {¬ , , , , } l’ensemble des connecteurs (ou opérateurs) logique plus les parenthèses.

- On note F(P) l’ensemble des formules déduit de P.

5

- On note F(P) l’ensemble des formules déduit de P.

F(P) est le plus petit ensemble qui contient P et qui est stable par les connecteurs.

En d’autres termes:

Une formule est une suite de symboles de P {¬ , ,

, , , (, )} construite selon les règles suivantes:

(6)

Logique des propositions

- Toute proposition atomique est une formule.

- si f est une formule alors ¬f est aussi une formule.

- si f1 et f2 sont des formules alors : - f1 ∧ f2 est une formule

6

- f1 ∧ f2 est une formule - f1 ∨ f2 « « «

- f1 ⇒ f2

- f1 ⇔ f2 « « «

Exemple: (¬p ⇒ q) ∨ (p ∧ q) est une formule.

(7)

Logique des propositions

La sémantique des opérateurs logiques est donnée par des tables de vérité.

p q ¬ p ¬ q p q p q pq (¬pq)

7

p q

0 0

0 1

1 0

1 1

¬ p ¬ q p q p q pq (¬pq)

1 1 0 0 1

1 0 1 0 1

0 1 1 0 0

0 0 1 1 1

(8)

Prédicats

Les prédicats sont construits avec : - les constantes (0,1,2,….)

- les variables (x, y, ….)

- les fonctions (f, g, +, *, …)

- des connecteurs logiques (¬ , , , , )

8

- des connecteurs logiques (¬ , , , , ) - des parenthèses

- des quantificateurs (, )

Un prédicat atomique est un prédicat qui ne contient ni connecteur ni quantificateur.

- Exemples: x < y ; pair(2 x) ;

(9)

Prédicats

Règles de formations des formules de prédicats:

- Tout prédicat atomique est une formule - si f1 et f2 sont des formules alors

¬ f1, f1 ∨ f2, f1 ∧ f2, f1 ⇒ f2, f1⇔ f2

9

¬ f1, f1 ∨ f2, f1 ∧ f2, f1 ⇒ f2, f1⇔ f2 sont des formules.

- si f est une formule alors

∀ x f est une formule

∃ x f est une formule

(10)

Prédicats

Exemples:

1) ∀x pair(x + x)

2) ∃x premier(x) ∧ x < succ(succ(0))

3) ∀x (oiseau(x) ⇒ vole(x)) (tous les oiseaux volent)

10

3) ∀x (oiseau(x) ⇒ vole(x)) (tous les oiseaux volent)

4) ∃x (oiseau(x) ∧ ¬ vole(x)) (4 ≡ ¬ 3)

5) ∀i ∀j (1≤i ≤j≤n ⇒ T[i] ≤ T[j]) (spécification d’un tableau trié)

Remarques

¬ (x P) ≡ ∃x ¬P

¬ (x P) ≡ ∀x ¬P

(11)

Déduction logique

11

Démonstrations logiques

Un séquent est un couple de la forme (ℐ ,f), où f est une formule et ℐ un ensemble fini de

formules . L’ensemble est l’ensemble formules . L’ensemble est l’ensemble

des prémisses du séquent, la formule f sa conclusion.

(12)

12

Séquents prouvables

Un séquent (ℐ,f) est prouvable, ce que l’on notera f, s’il peut être construit en utilisant un nombre fini de fois les 6 règles suivantes :

de fois les 6 règles suivantes : 1. si fℐ, alors f

2. si g ℐ et ℐ f, alors ℐ, g f 3. si (f f’) et f, alors f’

4. si , f f’, alors (f f’) 5. ℐ f ssi ¬¬f

6. si ,f f’ ,f ¬f’ alors ¬f

(Hypothèse)

(Modus Ponens) (Synthèse)

(Raisonnement par l’absurde) (Contradiction)

(13)

13

• Démonstrations logiques

• Une démonstration d’un séquent prouvable f est une suite finie de séquents prouvables ℐi fi,

i = 1,...,n, telle que : i = 1,...,n, telle que :

ℐn = et fn = f

chaque séquent de la suite est obtenu à partir des

séquents qui le précède en appliquant l’une des 6 règles

• Remarque : le premier séquent de la suite est nécessairement obtenu par utilisation d’une hypothèse

(14)

14

• Démonstrations logiques - Exemple

• Tous les hommes sont mortels, et

• les Grecs sont des hommes, donc les

• les Grecs sont des hommes, donc les Grecs sont mortels

h = « être un homme » m = « être mortel »

g = « être Grec »

(h ⇒ m), (g ⇒ h) ├ (g ⇒ m)

(15)

15

• Démonstrations Logiques - Exemple

• Tous les hommes sont mortels, et

• les Grecs sont des hommes, donc les Grecs sont mortels

sont mortels

• 1. (h m), (g h), g g hypothèse

• 2. (h m), (g h), g (g h) hypothèse

• 3. (h m), (g h), g h MP (1&2)

• 4. (h m), (g h), g (h m) hypothèse

• 5. (h m), (g h), g m MP (3&4)

(16)

Logique de Hoare

Preuve de programmes

16

(17)

Correction de programmes / Spécification

17

un programme est correct s’il effectue la tâche qui lui est confiée dans tous les cas permis possibles

nécessité de disposer d’un langage de

spécification permettant de décrire

formellement la tâche confiée à un

programme.

(18)

Correction de programmes / Spécification

18

description des propriétés que doit

satisfaire un programme pour répondre au problème posé

- relation entre les entrées et les sorties - relation entre les entrées et les sorties du programme

Programme

Entrée E Sortie S

Précondition : P(E) Postcondition : Q(E, S)

(19)

Correction de programmes / Spécification

19

Exemple

une spécification pour le problème du calcul de la racine carrée entière par défaut :

défaut :

Algorithme: r := 0; tantque (n (r +1)2) faire r := r + 1 ftantque Données n : entier ;

Résultat r : entier ;

Pré condition : n 0

(20)

Test vs Vérification

20

. Les couples (n, r) de l’ensemble suivant {(0, 0), (1, 1), (2, ), (3, 1), (4, 2), …}

sont des tests qui réussissent

• Hoare propose une exécution de l’algorithme sur une valeur

symbolique qui est un ensemble de valeurs défini par une expression logique (ou prédicat).

logique (ou prédicat).

• L’ensemble {(0, 0), (1, 1), (2, 1), (3, 1), (4, 2), …} est défini par {(n,r) / n0 r 0 r2 n (n < (r+1)2}

• On note {n0 r 0 r2 n (n < (r+1)2} la valeur symbolique des variables n et r.

• L’exécution d’un algorithme A sur une valeur symbolique de données définies par l’expression { p} qui donne une valeur symbolique résultat

définie par l’expression { q} est notée {p} A {q} . {p} A {q} est appelé triplet

(21)

Système formel

21

. Interpretation d’un triplet de Hoare {p} A {q} signifie :

Si la propriété p est vraie avant l’exécution de A ET si l’exécution de A se termine, ALORS la propriété q est vraie après l’exécution de A.

(Correction partielle)

• Un système formel est un triplet <L, Ax, R> où :

- L est un langage définissant un ensemble de formules,

- Ax est un sous-ensemble de L ; chaque formule de Ax est appelée axiome,

R est un ensemble de règles de déduction de formules à partir d’autres formules ;

(22)

Langage algorithmique

22

Langage algorithmique

• Instructions :

- Affectation (:= symbole d’affectation et = pour la comparaison) - Contrôle :

Si <cond> alors instruction fsi ou Si <cond> alors instruction

sinon instruction fsi - Boucle :

Tantque <cond> faire instruction ftantque

• Restriction :

- Pas de fonction (ou procédure) - ni de variable pointeur

- pas de désignation de la forme t[i] où i fait référence à un autre tableau.

(23)

Logique de Hoare

23

Logique de Hoare

• Définition de la logique de Hoare : La logique de HOARE est un triplet <L, Ax, R> avec :

- L est l’ensemble des formules { p} A { q} où p et q sont des prédicats et A est un fragment d’algorithme(ou de programme)

d’algorithme(ou de programme)

- Ax est l’ensemble des axiomes de la forme suivante : { p[ x / e] } x := e { p(x)}

(p(x) est obtenu de p[x/e] en substituant toute occurrence de e par x)

- R est l’ensemble de règles de déduction

(24)

Logique de hoare

24

(Séq) si {p} A1 {r} ; {r} A2 {q} alors

{p} A1 ; A2 {q}

(consg) si p p’, {p’} A {q} alors

{p} A {q}

(consd) si {p} A {p’}, p’ q alors

{p} A {q}

{p} A {q}

(cond1) si {p c} A {q} , (p ∧ ¬c) q alors

{p} si c alors A fsi {q}

(cond2) si {p c} A1 {q} , {p ∧ ¬c} A2 {q} alors

{p} si c alors A1 sinon A2 fsi {q}

(tantque) si {I C} A {I} alors

{ I} tantque C faire A ftantque {I ∧ ¬C}

(25)

Exemple : règles d’affectation et conséquence

25

. { p[ x / e] } x := e { p(x)}

1. {n+1> 0} n:= n+1 {n>0} (x=n, e = n+1) 2. {k > 0} n :=0 {k > n} (x=n, e =0)

3. {x = 4} x := x+1 {x=5} en écrivant:

3. {x = 4} x := x+1 {x=5} en écrivant:

{(x+1) -1 =4} x := x+1 { x - 1 =4} {x = 5}

4. {x 0} x := x + 1 {x 1}

{x 0} {x + 1 1}

(26)

Exemple : règles de condition

26

5. {vrai}

si x 0 alors

{vrai x 0} {x 0} {x+11}

x := x + 1;

{x 1}

sinon sinon

{vrai x < 0} {x < 0} {-x > 0}

x := - x;

{x > 0} {x 1}

fsi

{x 1}

(27)

Schéma de preuve d’un algorithme itératif Tant que

27

Soit l’algorithme suivant:

début {pré}

init;

{I}

{I}

tantque C faire {I C}

A {I}

ftantque {I ∧ ¬ C} {post}

(28)

Exemple: calcul de la racine carrée par défaut

28

Algorithme A:

donnée : n : entier;

résultat : r : entier;

début r := 0;

tantque n (r + 1)2 faire r := r + 1;

ftantque fin

Spécification:

précondition : {n 0}

postcondition : { (r2 n n < (r + 1)2) }

invariant de la boucle: I = {r2 n} (évident, sinon on le déduit de la postcondition)

(29)

Algorithme A annoté et prouvé

29

Algorithme A:

donnée : n : entier;

résultat : r : entier;

Début

{n 0} {n 0*0}

r := 0;

{n r*r}

tantque n (r + 1)2 faire {n r2 n (r + 1)2}

r := r + 1;

{n r2} ftantque

{r2 n n < (r + 1)2}

(30)

Exemple: calcul de n!

30

Algorithme B:

donnée : n : entier résultat : y : entier début

x := n;

y := 1;

y := 1;

tantque x > 1 faire y := y * x;

x := x – 1;

ftantque fin

Spécification:

précondition : {n 0}

postcondition : {y = n!}

(31)

Algorithme B annoté et prouvé

31

Algorithme B:

donnée: n : entier;

résultat: y : entier;

début {n 0}

x := n;

{x 0 ∧x = n}

y := 1;

y := 1;

{n! = y x! ∧x 0}

tantque x > 1 faire

{n! = y x! ∧ x 0 ∧x > 1} {n! = (y x)(x-1)! ∧ x > 1}

y := y * x;

{n! = y (x-1)! ∧x-1 > 0}

x := x – 1;

{n! = y x! ∧ x > 0} {n! = y x! ∧ x 0}

ftantque

Références

Documents relatifs

Pierre part d’un point P du plan et se dirige vers Alice, mais au milieu P 1 du segment [PA], il change d’avis et se dirige vers Béatrice, mais au milieu P 2 de P 1 B il

Pour répondre aux patrons, dans le triangle rectangle ABC, la hauteur BH issue de B le partage en deux triangles AHB et BHC rectangles semblables

Le double d’un nombre augmenté de trois est égal à quatre de moins que le triple de ce nombre... Vanessa dispose d’un certain nombre de sacs pour y placer

Si l’équation (i) est irréductible pour les solutions y dépendant d’une- constante, elle peut cependant être imprimitive dans le cas signalé plus haut.. Enfin,

Par ailleurs l’administration d’un masque avec pression expiratoire positive (PEP) est susceptible d’améliorer l’oxygénation systémique de sujets en haute

antipsychotiques atypiques (selon notre expérience clinique)..  Autisme (Troubles Envahissants du Développement)  Retard de développement lié à des troubles

According to fatigue test results, for a large defect, the number of cycles to obtain a 100 µm-long surface crack is higher when the grain size is reduced. However, fatigue

Durant ce stade, les larves se nourrissent toujours dans le sol, entre 5 et 25cm de profondeur selon la culture, et sont alors les plus voraces.. Quand les températures chutent

Pour autant, la solution ne doit pourtant pas être perçue comme hors d'atteinte pour les élèves, la situation-problème n'étant pas une situation à caractère

Et sachant que si celui qui a perdu 2 jeux gagnait 2 autres jeux contre son compagnon, ils n'auraient pas gagné l'un sur l'autre quoi que ce soit, supposons maintenant que le

La notion de langages est complexe puisqu’au delà du système d’un ensemble normalisé et figé de codes et de leurs relations (langue parlée,langue

Extraire le diiode de la phase aqueuse en utilisant de l’huile (extraction sans cyclohexane) Partie du programme.. Santé : Extraction, séparation et identification

C’est avec ce manque que le peut aimer; lors du séminaire X, en revenant sur l’amour et le transfert, Lacan rappelle ce qu’il a avancé dans le séminaire VIII : le

Nous nous proposons d’analyser dans quelle mesure un enseignement de TIC en langue cible peut être le lieu d’activités potentiellement créatives en abordant des questions telles

Il faut choisir un solvant extracteur non miscible avec l’eau et dans lequel l’huile essentielle d’eucalyptus y est très soluble.. Ce solvant doit être le moins dangereux pour

Définir la fréquence puis donner la relation entre la période et la fréquence (1pt) 4.. Calculer sa fréquence f, qui est celle des battements

Bousculé, apostrophé, harcelé, l'auditeur ne sait plus si le bulletin météorologique qui annonce la neige a trait à la journée d'hier ou à celle de demain ; et il se retrouve en

Des cellules qui n’ont jamais été exposées aux UV, sont prélevées chez un individu sain et chez un individu atteint de Xeroderma pigmentosum.. Ces cellules sont mises en

Pour repérer la thèse défendue, il convient tout d'abord de trouver le thème du texte.. On peut ensuite chercher le jugement ou le sentiment du locuteur à propos de

c-/ Pour quelle production l’entreprise a-t-elle un coût moyen minimum, et quel est ce

En- suite, nous instancions notre approche pour déterminer la cohérence d’une formule en logique modale K, en four- nissant des fonctions d’abstractions pour ce problème et

[r]

• Professor Robert Vogel, of McGill University’s Department of History, passed away suddenly on 1 April 1994.. He graduated from Sir George Williams College in 1952 with