Académique Documents
Professionnel Documents
Culture Documents
Tout être humain est mortel. Socrate est un être humain. Donc, Socrate est mortel.
Trois propositions :
il n’existe pas de notion d’énoncé singulier (Socrate est mortel) et d’énoncé générique
(Tout être humain est mortel).
Alphabet du LP1 :
Définition 1 : Terme
Toute variable est un terme.
Toute constante est un terme.
f(t1,...,tn) est un terme (dit fonctionnel) si f est une fonction à n arguments avec
(n>0) et t1,...,tn sont des termes.
Les constantes de l'alphabet de la logique des prédicats désignent des objets et
des individus particuliers. Elles sont notées en minuscule.
Définition 2 : Prédicat
Un prédicat est une relation qui contient une ou plusieurs variables et qui
détermine si une certaine propriété ou relation est vraie ou fausse pour un
ensemble donné d'arguments ou de termes.
Les prédicats à 0 arguments peuvent être considérés comme des variables
propositionnelles.
Exemples : 𝑖𝑙_𝑝𝑙𝑒𝑢𝑡, 𝑙𝑎_𝑟𝑜𝑢𝑡𝑒_𝑒𝑠𝑡_𝑚𝑜𝑢𝑖𝑙𝑙é𝑒, 𝑝, 𝑞, …
Les prédicats à 1 argument présentent des propriétés et ceux avec n arguments
présentent des relations.
Exemples :
𝑝𝑟𝑒𝑚𝑖𝑒𝑟 (𝑥), ℎ𝑜𝑚𝑚𝑒(𝑗), … 𝑝𝑙𝑢𝑠_𝑔𝑟𝑎𝑛𝑑(𝑎𝑙𝑖, 𝑠𝑎𝑙𝑒ℎ), 𝑝𝑙𝑢𝑠_𝑝𝑒𝑡𝑖𝑡(𝑥, 𝑦), …
Logique formelle 17/11/2023
1. Langage des prédicats : syntaxe
7
Définition 3 : Fonction
Une fonction est notée avec des symboles, par exemple f(x) ou g(x, y), et elles
prennent des arguments (termes) et retournent un résultat. Elles représentent
des opérations ou des transformations.
Les fonctions à 0 arguments peuvent être considérés comme des constantes.
Exemples : 𝑃𝑖 = 3,14
Exemples de prédicats à n arguments avec n >0 :
Exemples : 𝑆𝑢𝑐𝑐𝑒𝑠𝑠𝑒𝑢𝑟_𝑑𝑒(𝑥), 𝐴𝑔𝑒_𝑑𝑒(𝑗𝑒𝑎𝑛), …
Définition 4 : Atome
𝑥 𝑃 𝒙
𝑥 𝑃(𝒙) (𝑦 𝑄(𝑥, 𝑦))
Logique formelle 17/11/2023
1. Langage des prédicats : syntaxe
11
𝑃(𝒙)
Exercices :
Négation :
f. Les pandas sont des herbivores qui ne consomment que des bambous.
Comment traduiriez-vous en français la formule suivante ?
➢ ∀𝑥(∀𝑦(𝑀(𝑥, 𝑦) → 𝐵(𝑦)) → 𝑃(𝑥))
𝐴 = 𝒙 𝒚 𝒑 𝒙, 𝒚 𝒛 𝒓 𝒚, 𝒛 ∶ impropre
𝐴’ = 𝒙 (∃𝒚𝟏 𝒑(𝒙, 𝒚𝟏 ) 𝒛 𝒓(𝒚, 𝒛)) : propre.
Exemples :
Substitution et renommage :
Motivation :
Motivation :
Puis, pour pouvoir donner un « sens » aux formules, il faut une fonction associant
à chaque symbole de prédicat à 𝑛 places l'ensemble des n-uplets d'éléments du
domaine qui le rendent vrai.
Finalement, l'interprétation d'une formule 𝐴 se fait comme en logique
propositionnelle : 𝐼(𝐴) prend une valeur dans l'ensemble 𝑇𝑟𝑢𝑒, 𝐹𝑎𝑙𝑠𝑒 :
la quantification universelle ∀𝑥 𝐴 est interprétée comme « pour toute
interprétation de x, A est vrai »
la quantification existentielle ∃𝑥 𝐴 est interprétée comme « il existe une
interprétation de x telle que A est vrai ».
Définition 13 : Interprétation
Exemple :
Exercice 1 :
Exercice 1 :
Interpréter :
1. 𝐼(𝑎)
2. 𝐼(𝑦)
3. 𝐼(𝑝(𝑎, 𝑥))
4. 𝐼(𝑝(𝑦, 𝑝(𝑎, 𝑏))
5. 𝑝(𝑥, 𝑝(𝑦, 𝑏))
Exercice 2 :
Soient:
le vocabulaire 𝑊 = {𝑎, 𝑏: 𝑐𝑜𝑛𝑠𝑡𝑎𝑛𝑡𝑒𝑠, 𝑓: 𝑓𝑜𝑛𝑐𝑡𝑖𝑜𝑛, 𝑃: 𝑃𝑟é𝑑𝑖𝑐𝑎𝑡}
le domaine d'interprétation 𝐷 = {1, 2}
la fonction d’interprétation 𝐼
𝐼(𝑎) = 1; 𝐼(𝑏) = 2
𝐼(𝑓(1)) = 2; 𝐼(𝑓(2)) = 1
𝐼 𝑃 2, 1 = 𝐹𝑎𝑙𝑠𝑒; 𝐼 𝑃 2, 2 = 𝐹𝑎𝑙𝑠𝑒;
𝐼(𝑃(1, 2)) = 𝑇𝑟𝑢𝑒; 𝐼(𝑃(1, 1)) = 𝑇𝑟𝑢𝑒
Exercice 2 :
Interpréter :
1. 𝑃(𝑏, 𝑓(𝑏))
2. 𝑃(𝑓(𝑎), 𝑏))
3. 𝐼(𝑃(𝑎, 𝑏))
4. 𝐼(∀𝑥 𝑃(𝑏, 𝑥))
5. 𝐼(∃𝑥 𝑃(𝑎, 𝑥))
6. 𝐼(∃𝑥 𝑃(𝑓(𝑏), 𝑥))
7. 𝐼(∃𝑥 𝑃(𝑥, 𝑓(𝑎)))
8. 𝐼(∃𝑥 ∀𝑦 𝑃(𝑥, 𝑦))
9. 𝐼(∀𝑥 ∃𝑦 𝑃(𝑥, 𝑦))
Logique formelle 17/11/2023
2. Sémantique
38
Interprétation de formules :
Exercice :
Soient:
𝐼(𝑓(1)) = 2; 𝐼(𝑓(2)) = 1
𝐼 𝑃 2, 1 = 𝐹𝑎𝑙𝑠𝑒; 𝐼 𝑃 2, 2 = 𝐹𝑎𝑙𝑠𝑒;
𝐼 𝑃 1, 2 = 𝑇𝑟𝑢𝑒; 𝐼 𝑃 1, 1 = 𝑇𝑟𝑢𝑒
1. 𝐼(∃𝑥 ∀𝑦 𝑃(𝑥, 𝑦) → 𝑃(𝑎, 𝑏))
2. 𝐼(∀𝑥 ∀𝑦 𝑃 𝑥, 𝑦 → 𝑃(𝑓(𝑎), 𝑏))
Logique formelle 17/11/2023
2. Sémantique
40
Définition 16 : modèle
Une interprétation I est un modèle pour une formule si elle la rend toujours vraie
dans le domaine.
I est un modèle pour une formule A (ou I satisfait A) ssi pour toute assignation de
variable U, on a IU(A) = V , noté |=I A (parfois noté, I(A)= True)
I est un modèle pour un ensemble de formules S ssi I est un modèle pour toute
formule A de S.
Exemples :
Une formule B est conséquence logique d’une formule A si tout couple (I,U)
satisfaisant A, satisfait également B (noté A |= B )
Pour les autres, appliquer les mêmes définitions et notations que celles de la
logique propositionnelle en respectant évidemment la nouvelle définition de
conséquence logique, de satisfaisabilité et de modèle.
Conséquence logique et implication :
∃𝑦 ∀𝑥 𝐴 | = ∀𝑥 ∃𝑦 𝐴
∃𝑥 (𝐴 𝐵) | = ∃𝑥 𝐴 ∃𝑥 𝐵
∀𝑥 𝐴 ∀𝑥 𝐵 | = ∀𝑥 (𝐴 𝐵)
∀𝑥 𝐴 ≡ ¬∃𝑥 ¬𝐴
¬∀𝑥 𝐴 ≡ ∃𝑥 ¬𝐴
∃𝑥 𝐴 ≡ ¬∀𝑥 ¬𝐴
¬∃𝑥 𝐴 ≡ ∀𝑥 ¬𝐴
∀𝑥 (𝐴 𝐵) ≡ ∀𝑥 𝐴 ∀𝑥 𝐵
∃𝑥 (𝐴 𝐵) ≡ ∃𝑥 𝐴 ∃𝑥 𝐵
∃𝑥 (𝐴 → 𝐵) ≡ (∀𝑥 𝐴) → ∃𝑥 𝐵
∀𝑥 ∀𝑦 𝐴 ≡ ∀𝑦 ∀𝑥 𝐴
∃𝑥 ∃𝑦 𝐴 ≡ ∃𝑦 ∃𝑥 𝐴
∀𝑥 𝐴 ≡ ∃𝑥 𝐴 ≡ 𝐴
∀𝑥 (𝐴 𝐵) ≡ 𝐴 ∀𝑥 𝐵
∃𝑥 (𝐴 𝐵) ≡ 𝐴 ∃𝑥 𝐵
∀𝑥 (𝐴 𝐵) ≡ 𝐴 ∀𝑥 𝐵
∃𝑥 (𝐴 𝐵) ≡ 𝐴 ∃𝑥 𝐵
∃𝑥 (𝐴 → 𝐵) ≡ 𝐴 → ∃𝑥 𝐵
∀𝑥 (𝐴 → 𝐵) ≡ 𝐴 → ∀𝑥 𝐵
∃𝑥 (𝐵 → 𝐴) ≡ ∀𝑥 𝐵 → 𝐴
∀𝑥 (𝐵 → 𝐴) ≡ ∃𝑥 𝐵 → 𝐴
Exemple :
Forme prénexe
Skolemisation
Forme clausale
Une formule 𝐺 est dite en forme prénexe si et seulement si elle est de la forme
𝑄1𝑥1 . . . 𝑄𝑛𝑥𝑛 𝐴, où chaque 𝑄𝑖 est un quantificateur (∀ ou ∃) et 𝐴 ne contient pas
de quantificateur.
𝐴 est appelé une matrice.
𝑄1𝑥1 . . . 𝑄𝑛𝑥𝑛 est appelé préfixe.
Pour toute formule 𝐺, il existe une formule 𝐺′ en forme prénexe avec 𝐺 ≡ 𝐺′.
Début
Exemples :
Une formule est en forme normale de Skolem si elle est en forme normale
prénexe et ne contient pas de quantificateur existentiel.
Début
Exemple 1
la formule ∃𝑥 ∀𝑦 𝑝(𝑥, 𝑦) :
Soit
Remplacer 𝑥 par la constante 𝑎 :∀𝑦 𝑝(𝑎, 𝑦)
Exemple 2
Exemple 3 :
Une formule est en forme normale clausale si elle est en forme normale de
Skolem, fermée et sa matrice est en forme normale conjonctive propositionnelle .
Exemples :
Début
Fin pour
Mettre A en forme normale de Skolem;
Mettre la matrice de A en forme normale conjonctive
Fin 8
Définition : unification
Définition : unifieur
Une substitution 𝑠 unifie deux termes si elle les rend identiques : 𝑠 unifie 𝑡 et 𝑡′ si
𝑡𝑠 = 𝑡′𝑠.
′
Un unifieur d'un ensemble fini d'équations entre termes 𝐸 = {𝑡1 = 𝑡1 , … , 𝑡𝑛 =
𝑡𝑛′ } est une substitution qui unifie les deux termes de chaque équation.
Exemple d’unifieur :
Exemple d’unifieur :
Soit 𝐸 = {𝑥 = 𝑓(𝑦) , 𝑦 = 𝑧}.
Un unifieur de 𝐸 est 𝑠 = {𝑥\f(𝑎) , 𝑦\a , 𝑧\a}.
Un autre unifieur de 𝐸 est 𝑠 = {𝑥\f(𝑧) , 𝑦\z}.
Logique formelle 17/11/2023
3. Théorie de preuve : unification
66
Théorème :
Si
un ensemble d'équations entre termes est unifiable alors il existe un unique upg
𝑠 (à un renommage de variables près).
Définition : Équations résolues
𝐸 = {𝑥1 = 𝑡1 , … , 𝑥𝑛 = 𝑡𝑛 }.
𝐸𝑠 = {𝑥1\t1 , … , 𝑥𝑛\tn}
Logique formelle 17/11/2023
3. Théorie de preuve : unification
67
Algorithme d'unification
Début
Algorithme d'unification
• si elle est de la forme 𝑡 = 𝑥 et 𝑡 n’est pas une variable alors la remplacer par 𝑥 = 𝑡
• si elle est de la forme 𝑥 = 𝑡 et 𝑥 apparaît dans 𝑡 alors échec
• si elle est de la forme 𝑥 = 𝑡 et 𝑥 n'apparaît pas dans 𝑡 alors
remplacer 𝑥 par 𝑡 partout ailleurs dans 𝐸
Exemples d’unification :
Exemple 1
Soit {𝑥 = 𝑦′ , 𝑓(𝑦) = 𝑢}.
1. Inversion de 𝑓(𝑦) = 𝑢 ∶ {𝑥 = 𝑦′ , 𝑢 = 𝑓(𝑦)}
2. L'upg associé est donc : { 𝑥\y′ , 𝑢\f(𝑦) }
Exemple 2
Exemples d’unification :
Exemple 3:
Soit {𝑥 = 𝑦 , 𝑥 = 𝑓(𝑦)}
1. Remplacement 𝑥\y : {𝑥 = 𝑦 , 𝑥 = 𝑓(𝑥)}
2. Échec par `occur check' (car 𝑥 apparaît dans 𝑡(𝑥))
Exemple 4:
Définition : résolvante
Exemple:
Soient les deux clauses 𝐶 = 𝑝 𝑥, 𝑓 𝑦 , 𝑞 𝑥, 𝑦, 𝑧 𝑒𝑡 𝐷 =
{¬𝑝(𝑦, 𝑢) , ¬𝑝1(𝑦) , 𝑝2(ℎ(𝑢, 𝑦))}
Il faut d'abord renommer une des clauses pour que les ensembles de variables
des deux clauses soient disjoints. Disons la deuxième, qui en substituant 𝑦′ à 𝑦
devient : 𝐷′ = (𝐷){𝑦\y′} = {¬𝑝(𝑦′, 𝑢) , ¬𝑝1(𝑦′) , 𝑝2(ℎ(𝑢, 𝑦′))}
Les littéraux 𝑝(𝑥, 𝑓(𝑦)) et ¬𝑝(𝑦‟, 𝑢) sont des `candidats’ pour être
complémentaires. On forme alors l'ensemble d'équations 𝐸 = {𝑥 = 𝑦′ , 𝑓(𝑦) =
𝑢} entre les arguments des deux prédicats.
Ensuite on applique l'algorithme d'unification à 𝐸, qui rend un unifieur le plus
général 𝑠 = {𝑥\y′ , 𝑢\f(𝑦)}
Alors
1. On supprime 𝑝(𝑥, 𝑓(𝑦)) de 𝐶 et ¬𝑝(𝑦, 𝑢) de 𝐷’
2. On applique s à ce qui reste dans les deux clauses
3. et on met les deux restes ensemble’ : (𝐶 − {𝑝(𝑥, 𝑓(𝑦))})𝑠 𝑈 (𝐷′ −
{¬𝑝(𝑦, 𝑢)})𝑠
La résolvante de 𝐶 et 𝐷 ainsi calculée est donc :
{𝑞(𝑦′, 𝑦, 𝑧) , ¬𝑝1(𝑦′) , 𝑝2(ℎ(𝑓(𝑦), 𝑦′))}
Définition : Facteur
Exemple :
Définition : Réfutation
Une réfutation des clauses 𝐶1, … , 𝐶𝑚 est une liste finie de clauses (D1, ... ,Dn) telle
que :
𝐷 n est la clause vide {}
Corollaire :
Pour savoir si une formule donnée 𝐴 est valide en logique des prédicats, il suffit
de:
1. Nier 𝐴 : 𝐴′ = ¬𝐴
2. Mettre 𝐴′ en forme normale clausale;
3. Répéter la production de résolvantes et facteurs jusqu’à ce que
ou bien la clause vide est produite
Exemple :