Vous êtes sur la page 1sur 15

14 oct.

2020

Institut Supérieur d'Informatique et de Mathématiques de


Monastir (ISIMM)

Introduction à logique formelle


avec Event-B

M. ABBASSI Imed
Enseignant chercheur à ISIMM
ENIT, UR-OASIS, Université de Tunis El Manar, Tunis
imed.abbassi@enit.utm.tn

A propos du cours

Public: Ce cours est destiné aux étudiants de première


année du cycle préparatoire intégré CPI.
Objectifs:
• Apprendre les concepts de base de la logique formelle
(logique de prédicats, théorie des ensembles, etc.)
• Apprendre le langage Event-B.
• Apprendre à démontrer des preuves formelles

Références :
• Jean-Raymond Abrial. Modeling in Event-B: system and software
engineering. Cambridge University Press, 2010.
• Bruno Leclercq, Laurence Bouquiaux. Logique formelle et argumentation,
3e édition, 2017.

Plan du cours

1. Introduction à la logique formelle


2. Logique de premier ordre
3. Théorie des ensembles
4. Contexte et Machine Event-B
5. Démonstrations

1
14 oct. 2020

Introduction à la logique
formelle

Motivation

Exemple 1: considérons la situation décrite par les


affirmations suivantes :
1. Si le train arrive en retard et s’il n’y a pas de
taxis à la gare, alors l’invité arrive en retard.
2. L’invité n’est pas en retard.
3. Le train est arrivé en retard.

Déduction 1: Donc, il y avait des taxis à la gare;

Question 1: pourquoi peut-on déduire qu’il y avait


des taxis à la gare ?
5

Motivation

• Pour répondre à la question 1, on procède


comme suit:
1. si on combine les affirmations 1 et 3, on peut
affirmer que s’il n’y avait pas de taxis à la gare,
alors l’invité serait arrivé en retard.
2. cette dernière affirmation n’est compatible avec
le fait 2 que s’il y avait des taxis à la gare.
3. donc, il est consistant de déduire qu’il y avait
des taxis à la gare.

2
14 oct. 2020

Motivation

Exemple 2: considérons une autre situation décrite


par les affirmations suivantes :
1. S’il pleut et l’invité a oublié son parapluie alors
l’invité est trempé.
2. L’invité n’est pas trempé.
3. Il pleut.
Déduction 2: Donc, l’invité n’a pas oublié son
parapluie.
Question 2: pourquoi peut-on déduire que l’invité
n’a pas oublié son parapluie ?

Motivation

• Pour répondre à la question 2, on procède de la


même façon que précédent.
1. Si on combine les affirmations 1 et 3, on peut
affirmer que si l’invité a oublié son parapluie
alors l’invité est trempé.
2. Cette dernière affirmation est compatible avec
le fait 2 uniquement lorsque l’invité n’a pas
oublié son parapluie.
3. Donc, il est consistant de déduire que l’invité
n’a pas oublié son parapluie à partir des trois
faits.
8

Motivation

• On remarque que les deux situations ont la même


structure logique exprimée dans les phrases par les mots
suivants: si, alors, donc, et, ou, ...

• Problèmes des langages naturels (français, etc.)


– Modélisation ambiguë et non précise des systèmes
informatiques.
– Raisonnements non rigoureux (incorrectes).

Il y a donc un besoin aux formalismes logiques


pour construire des modèles formels assurant
des raisonnements rigoureux.

3
14 oct. 2020

Formalismes logiques

• Les logiques formelles sont utilisées en informatique


pour
– modéliser de manière formelle et abstraite des problèmes
réels rencontrés par des informaticiens;
– effectuer des analyses (raisonnement, vérification, etc.) en se
servant du modèle formel et des règles logiques.

• Avantages des formalismes logiques:


– Modèles précis, démarche rigoureuse, etc.
– Possibilité de (semi-) automatiser l’analyse des modèles.

• Méthodes formelles : Z, B, Event-B, Petri Nets, etc.

10

10

Présentation d’Event-B (1)

• Event-B est une méthode formelle définie par Jean-


Raymond Abrial dans son livre en 2010.

• D'après Abrial, cette méthode est conçus pour le


développement rigoureuse (correcte) des systèmes
orientés états.

• Event-B est basée sur des fondements


mathématiques:
– Théorie des ensembles
– Logiques de premier ordre

11

11

Logique de premier ordre

12

12

4
14 oct. 2020

Primitives logiques

Primitives logiques:
• ⊤: désigne la valeur logique true.
• ⊥: désigne la valeur logique false.
Prédicat:
• Constitue l’élément clé de la logique de premier ordre.
• Bivalué: tout prédicat s’évalue soit à true ou à false.
• Souvent défini au moyen des connecteurs logiques:
– Négation: ¬P
– Conjonction: P∧Q
– Disjonction: P∨Q
– Implication: P⇒Q
– Équivalence: P⇔Q

13

13

Construction de prédicats (1)

Quantificateurs logiques:
• Quantificateur universel (∀)
• Quantificateur existentiel (∃)
Trois types de prédicats:
1. Prédicats atomiques: n’utilisent pas des connecteurs
logiques et ne sont pas quantifiés.
2. Prédicats non quantifiés (simples): n’utilisent pas des
quantificateurs.
3. Prédicats quantifiés: quantification universelle ou
quantification existentielle.
Exemple: le prédicat « x≠ 0 ∧ 𝑦 ÷ 𝑥 = 3 » se décompose
de deux prédicats atomiques « x≠ 0 » et « 𝑦 ÷ 𝑥 = 3 ».
14

14

Construction de prédicats (2)

Définition 1 : Un prédicat logique non quantifié F


se définie en Event-B selon l’une des formes
suivantes:
1. F= x, avec x ∈ {⊤, ⊥, p, q, r, …}
2. F=¬(G)
3. F=(G α H)

– α ∈ {∧, ∨, ⇒, ⇔}, et
– G et H sont des prédicats non quantifiés.
Exemple: le prédicat « x≠ 0 ∧ 𝑦 ÷ 𝑥 = 3 » est non
quantifié.
15

15

5
14 oct. 2020

Construction de prédicats (3)

Définition 2 : Une quantification universelle F est


un prédicat Event-B qui se définit selon la syntaxe
suivante:
∀ 𝑥 ,…,𝑥 .𝑷
• P est un prédicat (simple ou quantifié) définit en
fonction des paramètres 𝑥 , … , 𝑥 .

• La quantification F est vraie si est seulement si le


prédicat P est vraie pour toutes les valeurs de
𝑥 ,…,𝑥 .

16

16

Construction de prédicats (5)

Définition 3 : Une quantification existentielle F est


un prédicat Event-B qui se définit selon la syntaxe
suivante:
∃ 𝑥 ,…,𝑥 .𝑷
• P est un prédicat (simple ou quantifié) définit en
fonction des paramètres 𝑥 , … , 𝑥 .
• La quantification F est vraie si est seulement si le
prédicat P est vraie pour au moins une valeur de
𝑥 ,…,𝑥 .
• La négation d’une quantification universelle est
une quantification existentielle.
17

17

Prédicats Event-B particuliers

• Egalité de deux expressions de même type:


– E1 = E2
– E1 ≠ E2
• Comparaison de deux expressions de type entier:
– E1 > E2
– E1 ≥ E2
– E1 ≤ E2
– E1 < E2
• Appartenance:
– e∈𝐸
– e∉𝐸

18

18

6
14 oct. 2020

Interprétation de prédicats (1)

• bool est un opérateur permettant d’interpréter et de


convertir un prédicat en une valeur booléenne (TRUE ou
FALSE).

• Pour un prédicat P donné, bool (P) désigne la valeur


booléenne du P.
– Si P est vrai, le l'expression est VRAI.
– Si P est faux, l'expression est FALSE.

Exemple:
• bool(∀ 𝑥. 𝑥 ∈ ℕ ⇒ 𝑥 ≥ 0) renvoie la valeur TRUE.
• bool(∀ 𝑥. 𝑥 ∈ ℤ ⇒ 𝑥 ≥ 0) renvoie la valeur FALSE.

19

19

Interprétation de prédicats (2)

• Considérons les deux prédicats (simples ou quantifiés)


P et Q, la table décrit la sémantique des opérateurs
logiques:
P Q ¬P P∧Q P∨Q P⇒Q P⇔Q
⊤ ⊤ ⊥
⊤ ⊥ ⊥
⊥ ⊥ ⊤
⊥ ⊤ ⊤

Exercice 1 :
• Modélisez en logique de premier ordre les propositions
des exemples 1 et 2.
• Donnez la table de vérité des prédicats obtenus.
20

20

Règles d’équivalence (1)

Définition 4 : On dit que deux prédicats P et Q sont


équivalents si et seulement si le prédicat P⇔Q est toujours
vrai (appelé tautologie ou axiome).
• ⊥ est l’élément absorbant de la conjonction:
⊥∧x≡⊥
• ⊤ est l’élément absorbant de disjonction:
⊤∨x≡⊤
• Idempotence de la disjonction:
x∨x≡x
• Idempotence de la conjonction:
x∧x≡x

21

21

7
14 oct. 2020

Règles d’équivalence (2)

• La disjonction est :
1. Associative: x∨(y∨z)≡(x∨y)∨z
2. Distributive sur la conjonction: x∨(y∧z)≡(x∨y)∧(x∨z)
3. ⊥ est l'élément neutre de la disjonction: ⊥∨x≡x
• La conjonction est :
1. Associative: x∧(y∧z)≡(x∧y)∧z
2. Commutative: x∧y≡y∧x
3. Distributive sur la disjonction: x∧(y∨z)≡(x∧y)∨(x∧z)
4. ⊤ est l'élément neutre de la conjonction: ⊤∧x≡x
• Règle de l’implication: x⇒y ≡ ¬x∨y
• Règle de l’équivalence : x⇔y ≡ (x∧y)∨(¬x∧¬y)

22

22

Règles d’équivalence (3)

• Les lois de la négation :


1. x∧¬x≡ ⊥
2. x∨¬x≡ ⊤
3. ¬¬x≡x
• Lois de de Morgan:
1. ¬(x∧y)≡¬x∨¬y
2. ¬(x∨y)≡¬x∧¬y
• Lois de simplification
1. x∨(x∧y)≡x
2. x∧(x∨y)≡x
3. x∨(¬x∧y)≡x∨y et x∧(¬x∨y)≡x∧y
23

23

Règles d’équivalence (4)

Exemples: les prédicats qui se trouvent sur une


même ligne sont équivalents:

1.
2.
3.
4.
5.
6.

24

24

8
14 oct. 2020

Conséquence logique

Définition 5: un prédicat G est une conséquence


logique d’un ensemble de prédicats H={H1,…Hn}, et
on note H1,H2,…,Hn ⊨ G, si et seulement si le
prédicat H1∧H2…∧Hn ⇒ G est toujours vrai.
• Quelques exemples:

25

25

Système complet de connecteurs (1)

Définition 6: On appelle système complet de


connecteurs tout ensemble de connecteurs
permettant d’engendrer tous les connecteurs.
• L’ensemble {∧, ∨, ¬} constitue un système complet
de connecteurs.
Définition 7: un système complet de connecteurs
est dit minimal lorsque aucun de ses sous-
ensembles stricts n’est un système complet.
• L’ensemble {∧, ∨, ¬} n’est pas minimal de
connecteurs logiques.

26

26

Système complet de connecteurs (2)

Théorème: L’ensemble {∨,¬} est un système


complet minimal de connecteurs logiques.
• Toute formule peut être transformée en une
formule équivalente utilisant uniquement les
connecteurs ∨ et ¬.
• Considérons un prédicat logique F.
1. Si F= A⇒B alors F≡ ¬A∨B
2. Si F= A⇔B alors F≡ ¬(¬A∨¬B) ∨¬(A∨B)
Remarque: L’ensemble {∧,¬} est aussi un système
complet minimal de connecteurs logiques.

27

27

9
14 oct. 2020

Théorie des ensembles

28

28

Type de données

• En Event-B, il existe trois catégories de base de types


de données :
– ℤ est l'ensemble de tous les entiers. L’ensemble des
entiers naturels ℕ est un sous type de ℤ.
– 𝐁𝐎𝐎𝐋 est l'ensemble des booléens. Il comporte deux
éléments BOOL = {TRUE, FALSE}.
– Types utilisateurs: ensembles énumérés/porteurs.

• A partir des types A et B deux autres types de données


peuvent être construits:
– P(A) contient les ensembles d'éléments de A.
– A x B est l’ensemble des pairs dont le premier
élément appartient à A et le second appartient à B.
29

29

Ensembles (1)

• Un ensemble peut être défini de deux façons :


– en extension, c'est-à-dire en donnant la liste de ses
éléments entre accolades.
– en compréhension c'est-à-dire par une propriété
caractérisant ses éléments.
Définition 4: un ensemble S peut être définie en
compréhension selon l’une des syntaxes suivantes:
1. S= PE
2. S = 𝑖𝑑𝑠 . P E
où :
– P désigne un prédicat et E est une expression représentant les
éléments de S.
– ids est une liste d’identifiants.
30

30

10
14 oct. 2020

Ensembles (2)

• L'ensemble 𝑥 , … , 𝑥 . P E contient toutes les valeurs de


E pour les valeurs de 𝑥 , … , 𝑥 où le prédicat P est vrai.

• L'extension définie {𝑒 , … , 𝑒 } est l'ensemble qui contient


exactement les éléments 𝑒 , … , 𝑒 .

Exemples:
– A1 = {x. x ∈ 1. . 10 | x ∗ 2}
– A2 = {x^3|x ∈ 1. . 100}
– A3 = {1, 4, 9, 16, 25, 36, 49, 64, 81, 100}

31

31

Ensembles (3)

Opérations de base sur les ensembles:


• Ensemble fini: finite(S)
• Cardinalité d’un ensemble fini: card(S)
• Ensemble des parties: P(S)
• Ensemble des parties non vides: P (S):
• Sous-ensemble: A1 ⊆ A2
• Inclusion stricte: A1 ⊂ A2
• Non-inclusion stricte: A1 ⊄ A2
• Non-inclusion large: A1 ⊈ A2
• Intersection: A1 ∩ A2
• Union: A1 ∪ A2
• Soustraction: A1 \ A2
32

32

Ensembles (4)

Opérations complexes sur les ensembles


1. Union quantifiée:
– ⋃ 𝐱𝟏, … , 𝐱𝐧. 𝐏 | 𝐄
– ⋃𝐄| 𝐏
2. Intersection quantifiée:
– ⋂ 𝐱𝟏, … , 𝐱𝐧. 𝐏 | 𝐄
– ⋂𝐄| 𝐏
3. Union et intersection généralisées: union et inter

Définition 5: Pour un ensemble S dont les éléments sont des


ensembles, union(S) (resp. inter(S)) est l’ensemble obtenu
par l’union (resp. l’intersection) de tous les éléments de S.

33

33

11
14 oct. 2020

Ensembles (5)

Minimum:
• min(S) désigne le plus petit nombre de l'ensemble des
entiers S.
• Condition: l’ensemble S doit être non vide et minoré.

Maximum:
• max(S) désigne le plus grand nombre de l'ensemble des
entiers S.
• Condition: l’ensemble S doit être non vide et majoré.

34

34

Relations (1)

Produit cartésien:
• E ↦ F désigne la paire dont le premier élément est E et le second
élément est F.
• S×T désigne l'ensemble de paires où le premier élément est un
membre de S et le second élément est un membre de T.
Relations:
• S⟷T est l'ensemble de toutes les relations définies entre les
ensembles S et T.
• Une relation r (r∈S⟷T) est un ensemble de paires où le premier
élément est de S et le second de T.
• S⟷T est juste une abréviation pour P(S×T).
• r[X] est l’image de l’ensemble X par la relation r. Plus formellement, il
prédéfinit comme suit:
𝑟 𝑋 ≜ 𝑦 ∃ 𝑥. 𝑥 ∈ 𝑋 ∧ 𝑥 ↦ 𝑦 ∈ 𝑟 }

35

35

Relations (2)

Relations totales:
• S T est l'ensemble de toutes les relations totales définies entre les
ensembles S et T.
• Une relation totale r est une relation qui relie chaque élément de S à
au moins un élément de T.
Relations surjectives:
• S T est l'ensemble de toutes les relations surjectives définies entre
les ensembles S et T.
• Une relation surjective r est une relation où il y a au moins un élément
de S pour chaque élément de T tel que les deux sont liés.
Relations surjectives totales:
• S T est l'ensemble de toutes les relations surjectives totales
définies entre les ensembles S et T.
• Une relation surjective totale r est une relation à la fois surjective et
totale.
36

36

12
14 oct. 2020

Relations (3)

Définition 6: Pour une relation r∈S⟷T, dom(r) (resp. ran(r))


est l’ensemble des éléments de S (resp. T) qui sont liés à au
moins un élément de T (resp. S) par r.
Restriction de domaine/codomaine:
• X ⊲ r: sous-ensemble de r qui contient toutes les paires dont le
premier élément est dans X.
• r ⊳ Y: sous-ensemble de r qui contient toutes les paires dont le
deuxième élément est dans Y.
Anti-restriction de domaine/codomaine:
• X r: un sous-ensemble de r qui contient toutes les paires dont
le premier élément n’est pas dans X.
• r Y: un sous-ensemble de r qui contient toutes les paires dont
le deuxième élément n’est pas dans Y.

37

37

Relations (4)

Opérations sur les relations:


Opérations Description
r;s Un élément x est lié par la composition en avant r;s à un élément y
s'il existe un élément z tel que r relie x à z et S relie z à y.
r∘s Un élément x est lié par la composition en arrière r∘s à un élément y
s'il existe un élément z tel que s relie x à z et r relie z à y.
r||s Le produit parallèle r||s relie une paire x ↦ y à une paire m ↦ n
lorsque r relie x à m et s relie y à n.
r⨂s Si une relation r relie un élément x à y et s relie x à z, le produit r⨂s
relie x à la paire y↦z.
𝑟~ La relation inverse 𝑟~ relie un élément x à y si la relation d'origine r
relie y à x.
r s Cette opération overriding produisant une relation égale à r sauf que
toutes les entrées de r dont le premier élément est dans le domaine
de s sont remplacées par les entrées correspondantes de s.
38

38

Relations (5)

Relations prédéfinies :
• id: la relation d'identité qui relie chaque élément à lui-même.
• 𝐩𝐫𝐣𝟏 : une fonction qui relie une paire à son premier élément.
• 𝐩𝐫𝐣𝟐 : une fonction qui relie une paire à son deuxième élément.

Remarque: les relations id, 𝐩𝐫𝐣𝟏 et 𝐩𝐫𝐣𝟐 sont des définitions


génériques. Leur type doit être déduit de l'environnement.

Exemple: L'hypothèse de la non-réflexivité d'une relation r,


définie sur un ensemble S, peut être exprimée par le prédicat
suivant:
(id ⊳ 𝑆) ∩ 𝑟 = ∅

39

39

13
14 oct. 2020

Fonctions (1)

Définition 6 : une fonction définie de S dans T est une


relation qui relie un élément de S à au plus un élément de T.
• Propriétés des fonctions:

Fonctions partielles

Fonctions totales

Fonctions Fonctions injectives

Fonctions surjectives

Fonctions bijectives

40

40

Fonctions (2)

Fonctions partielles:
• S T est l’ensemble des fonctions partielles.
• Une fonction partielle f de S à T est une relation qui relie un élément de S à au
plus un élément de T. Le domaine de f est inclut dans S.
• ∅ est un cas particulier de fonction partielle.
Fonctions totales:
• S → T est l’ensemble des fonctions totale.
• Une fonction totale f de S à T est une partielle dont le domaine est égale à S.
Fonctions injectives:
• S T est l’ensemble des fonctions injective partielle.
• S ↣ T est l’ensemble des fonctions injective totale.
• Une fonction est injective (totale ou partielle) si deux éléments distincts de S
sont toujours reliés à des éléments distincts de T.
• L’inverse d’une fonction injective est obligatoirement une fonction.

41

41

Fonctions (3)

Fonctions surjectives:
• S T est l’ensemble des fonctions surjectives partielles.
• S ↠ T est l’ensemble des fonctions surjectives totales.
• Une fonction f de S à T est un surjective si pour chaque élément de T il existe
un élément dans S qui lui est relié.
Fonctions bijectives:
• S T est l’ensemble des fonctions bijectives.
• Une fonction est bijective si et seulement si elle est injective et surjective.
• L’inverse d’une fonction bijective est une fonction bijective.

42

42

14
14 oct. 2020

Fonctions (4)

Fonction lambda
• ⋌ 𝑝 . 𝐶 𝐸) est une fonction qui relie une entrée p à un résultat E tel
que le prédicat C soit vrai.
• p est un modèle d'identificateurs, de parenthèses et ↦ qui suit les
règles suivantes:
– Tout identifiant x est un modèle.
– Un paire x↦y est un modèle si x et y sont deux modèles.
– (a) est un modèle si a l’est aussi.
Exemples:
• Une fonction double qui renvoie la valeur double d'un nombre naturel:
𝑑𝑜𝑢𝑏𝑙𝑒 = ⋌ 𝑥 . 𝑥 ∈ ℕ 𝑥 ∗ 2)
• Fonction calculant le produit scalaire de vecteurs à deux-dimensions:
𝑑𝑜𝑡𝑝 = ⋌ 𝑎 ↦ 𝑏 ↦ 𝑐 ↦ 𝑑 . {𝑎, 𝑏, 𝑐, 𝑑} ⊂ ℤ 𝑎 ∗ 𝑐 + 𝑏 ∗ 𝑑)

43

43

15

Vous aimerez peut-être aussi