Académique Documents
Professionnel Documents
Culture Documents
2020
M. ABBASSI Imed
Enseignant chercheur à ISIMM
ENIT, UR-OASIS, Université de Tunis El Manar, Tunis
imed.abbassi@enit.utm.tn
A propos du cours
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
14 oct. 2020
Introduction à la logique
formelle
Motivation
Motivation
2
14 oct. 2020
Motivation
Motivation
Motivation
3
14 oct. 2020
Formalismes logiques
10
10
11
11
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
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
15
5
14 oct. 2020
16
16
17
18
18
6
14 oct. 2020
Exemple:
• bool(∀ 𝑥. 𝑥 ∈ ℕ ⇒ 𝑥 ≥ 0) renvoie la valeur TRUE.
• bool(∀ 𝑥. 𝑥 ∈ ℤ ⇒ 𝑥 ≥ 0) renvoie la valeur FALSE.
19
19
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
21
21
7
14 oct. 2020
• 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
23
1.
2.
3.
4.
5.
6.
24
24
8
14 oct. 2020
Conséquence logique
25
25
26
26
27
27
9
14 oct. 2020
28
28
Type de données
29
Ensembles (1)
30
10
14 oct. 2020
Ensembles (2)
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)
32
Ensembles (4)
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)
37
37
Relations (4)
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.
39
39
13
14 oct. 2020
Fonctions (1)
Fonctions partielles
Fonctions totales
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