Logique : le calcul des prédicats
Transcription
Logique : le calcul des prédicats
Introduction Un exemple Syntaxe du calcul des prédicats Sémantique du calcul des prédicats Logique : le calcul des prédicats Sophie Pinchinat [email protected] IRISA, Université de Rennes 1 UE LOG – année 2016-2017 Sophie Pinchinat Logique : le calcul des prédicats UE LOG – année 2016-2017 1/41 Introduction Un exemple Syntaxe du calcul des prédicats Sémantique du calcul des prédicats 1 Introduction 2 Un exemple 3 Syntaxe du calcul des prédicats 4 Sémantique du calcul des prédicats Sophie Pinchinat Logique : le calcul des prédicats UE LOG – année 2016-2017 2/41 Introduction Un exemple Syntaxe du calcul des prédicats Sémantique du calcul des prédicats Motivation Le calcul des propositions est bien trop limité pour décrire des situations réelles. Il ne permet que de décrire des phrases dont la vérité ne dépend pas des individus/objets comme par exemple “Il pleut”. Il ne peut pas représenter des phrases qui mettent en jeu des individus ou des objets comme par exemple I “Si x est le père de y et si z est le père de x alors z est un grand-père de y” I “Toute personne a un père”. I ... Sophie Pinchinat Logique : le calcul des prédicats UE LOG – année 2016-2017 3/41 Introduction Un exemple Syntaxe du calcul des prédicats Sémantique du calcul des prédicats Vue d’ensemble du calcul des prédicats Le calcul des prédicats (ou Logique du premier ordre) permet d’exprimer de telles relations entre objets. Il est donc plus riche que le calcul propositionnel. Il contient : I des symboles de variables x, y , z, . . . qui prennent leur valeurs dans l’ensemble des objets (ou entités) du discours. I des symboles de fonctions (c, f (x), g (x, y ), . . .) permettant d’opérer sur les objets (ex. la fonction “x 7→ père de x”). I des symboles de relations (. . . , P(x), Q(x, y ), R(x, y , z), . . .) permettant de relier les objets entre eux (ex. la relation binaire “être amis”). Pour former les phrases du langage du premier ordre on utilise : I Les expressions basées sur les relations appliquées aux entités, ex. Q(c, f (x)), s’évaluent à vrai ou faux (selon les interprétations). I Leur combinaison à l’aide des connecteurs logiques du calcul propositionnel, mais aussi de deux autres connecteurs ∀ et ∃, appelés quantificateurs (leur sémantique est celles nos mathématiques). Sophie Pinchinat Logique : le calcul des prédicats UE LOG – année 2016-2017 4/41 Introduction Un exemple Syntaxe du calcul des prédicats Sémantique du calcul des prédicats Relation avec le calcul propositionnel Le calcul des prédicats hérite des propriétés établies pour celui des propositions. I Le langage est défini inductivement. I Les énoncés de cette logique sont interprétés, comme ceux du calcul propositionnels. Remarque (Différence algorithmique importante) On peut montrer que le calcul des prédicat est indécidable : il n’existe pas d’algorithme permettant de répondre à la question de la validité. Ceci tient au fait que l’ensemble des candidats modèles d’une formule du premier ordre est en général infini. Sophie Pinchinat Logique : le calcul des prédicats UE LOG – année 2016-2017 5/41 Introduction Un exemple Syntaxe du calcul des prédicats Sémantique du calcul des prédicats Rappels sur les fonctions Étant donnés un ensemble E et k ∈ IN, une fonction k-aire (ou d’arité k) sur E est une fonction de E k (= E × E × . . . E , k fois) dans E . Exemple 1. Soit la fonction d’arité 1 succ : IN → IN définie par succ(n) = n + 1 et la fonction 0 d’arité zéro (pas d’argument, donc une constante). 2. Soit la fonction binaire (d’arité 2) +3 : (ZZ/3ZZ)2 → ZZ/3ZZ qui fait la somme de deux éléments modulo 3. Sophie Pinchinat Logique : le calcul des prédicats UE LOG – année 2016-2017 6/41 Introduction Un exemple Syntaxe du calcul des prédicats Sémantique du calcul des prédicats Rappels sur les relations Étant donnés un ensemble E et k ∈ IN, une relation k-aire (ou d’arité k) sur E est un sous-ensemble de E k Exemple 1. E = {1, 2, 3} et R est la relation binaire (d’arité 2) définie par R = {(1, 1), (2, 2), (3, 3)} ⊆ E 2 . 2. E = IN et S est la relation binaire S = {(n, n + 1) | n ∈ IN} ⊆ E 2 . 3. E = {1, 2, 3} et R est la relation unaire (d’arité 1) définie par R = {1, 2}. Notez que l’on a bien R ⊆ E 4. L’ensemble E 0 est un ensemble à UN élément. Par conséquent, les seules relations d’arité 0 sur E , c-à-d. les sous-ensembles de E 0 sont soit ∅ soit E 0 lui-même. Remarque Si R est une relation d’arité n, on note R(a1 , ..., an ) pour (a1 , ..., an ) ∈ R. Sophie Pinchinat Logique : le calcul des prédicats UE LOG – année 2016-2017 7/41 Introduction Un exemple Syntaxe du calcul des prédicats Sémantique du calcul des prédicats Valeur de vérité Exemple Considérons les formules suivantes : 1. ϕG : ∀x∀y ∀z(P(x, y ) ∧ P(y , z)) → G (x, z) 2. ϕP : ∀x∃yP(y , x) 3. ϕC : ∀x∃yG (y , x) 4. ϕD : ∀x∀zP(z, f (x)) → G (z, x) 5. ϕF : (ϕG ∧ ϕP ) → ϕC Sophie Pinchinat Logique : le calcul des prédicats UE LOG – année 2016-2017 8/41 Introduction Un exemple Syntaxe du calcul des prédicats Sémantique du calcul des prédicats Valeur de vérité Exemple Considérons les formules suivantes : 1. ϕG : ∀x∀y ∀z(P(x, y ) ∧ P(y , z)) → G (x, z) 2. ϕP : ∀x∃yP(y , x) 3. ϕC : ∀x∃yG (y , x) 4. ϕD : ∀x∀zP(z, f (x)) → G (z, x) 5. ϕF : (ϕG ∧ ϕP ) → ϕC Il est impossible (ou presque) de donner une valeur de vérité à ces formules, et ce pour différentes raisons : I on ne sait dans quel ensemble les variables x, y , z prennent leur valeur. I on ne connaı̂t pas non plus la fonction f . I et ne connaı̂t pas non plus les relations binaires P et G . Sophie Pinchinat Logique : le calcul des prédicats UE LOG – année 2016-2017 8/41 Introduction Un exemple Syntaxe du calcul des prédicats Sémantique du calcul des prédicats Valeur de vérité Exemple Considérons les formules suivantes : 1. ϕG : ∀x∀y ∀z(P(x, y ) ∧ P(y , z)) → G (x, z) 2. ϕP : ∀x∃yP(y , x) 3. ϕC : ∀x∃yG (y , x) 4. ϕD : ∀x∀zP(z, f (x)) → G (z, x) 5. ϕF : (ϕG ∧ ϕP ) → ϕC Il est impossible (ou presque) de donner une valeur de vérité à ces formules, et ce pour différentes raisons : I on ne sait dans quel ensemble les variables x, y , z prennent leur valeur. I on ne connaı̂t pas non plus la fonction f . I et ne connaı̂t pas non plus les relations binaires P et G . Il est donc nécessaire de choisir une interprétation pour pouvoir évaluer la valeur de vérité d’une formule. Sophie Pinchinat Logique : le calcul des prédicats UE LOG – année 2016-2017 8/41 Introduction Un exemple Syntaxe du calcul des prédicats Sémantique du calcul des prédicats Interprétation 1 Les objets/individus sont les êtres humains, avec tout ce qui en découle. I P(x, y ) signifie que “x est le père de y ”, G (x, y ) signifie que “x est un grand-père de y ”, et f retourne la mère d’un individu. I ϕG = ∀x∀y ∀z(P(x, y ) ∧ P(y , z)) → G (x, z) signifie “pour tous êtres humains x, y , z, si x est le père de y et y est le père de z, alors x est un grand-père de z”. I ϕP = ∀x∃yP(y , x) signifie“pour tout individu x il existe un individu y tel que y est le père de x” c-à-d. “tout individu a un père”. I ϕC = ∀x∃yG (y , x) signifie “pour tout individu x il existe un individu y tel que y est le grand père de x”, c-à-d. “tout individu a un grand-père”. I ϕD = ∀x∀zP(z, f (x)) → G (z, x) signifie “si z est le père de la mère de x, alors z est un grand-père de x”. Ces quatre formules sont vraies dans l’Interprétation !. L’énoncé ϕF = ((ϕG ∧ ϕP ) → ϕC ) est donc aussi vraie. Remarque Les deux formules ϕP et ϕG sont loin de modéliser toutes les propriétés des relations P et G , respectivement. Par exemple, on n’a pas énoncé que “le père de chaque individu est unique”, ni qu’“un individu x peut-être le grand-père d’un autre z sans qu’il existe un individu dont x soit le père et qui soit le père de z”. Sophie Pinchinat Logique : le calcul des prédicats UE LOG – année 2016-2017 9/41 Introduction Un exemple Syntaxe du calcul des prédicats Sémantique du calcul des prédicats Interprétation 2 a Les objets sont les trois sommets a, b, c du graphe b c I P décrit la relation prédécesseur, donc les couples (a, b), (b, c) et (c, a), et G décrit la relation successeur, donc les couples (b, a), (c, b) et (a, c). I La fonction f s’interpréte comme a 7→ a, b 7→ b, c 7→ a. I ϕP = ∀x∃yP(y , x) “tout point a un prédécesseur immédiat” Elle est vraie dans ce graphe. I ϕG = ∀x∀y ∀z(P(x, y ) ∧ P(y , z)) → G (x, z) “pour tous points x, y , z, si x précède imméd. y et si y précède imméd. z, alors x suit imméd. z” Elle est vraie dans ce graphe. I ϕC = ∀x∃yG (y , x) “tout point a un successeur immédiat” dans ce graphe. I ϕF = ((ϕP ∧ ϕG ) → ϕC ) est donc vraie dans ce graphe. I ϕD = ∀x∀zP(z, f (x)) → G (z, x) “pour tout z et pour tout x, si z précède immédiatement f (x), alors z suit immédiatement x”. Elle est fausse. Sophie Pinchinat Logique : le calcul des prédicats UE LOG – année 2016-2017 Elle est vraie 10/41 Introduction Un exemple Syntaxe du calcul des prédicats Sémantique du calcul des prédicats Interprétation 3 a b d c Les objets sont les quatre sommets a, b, c, d du graphe I P(x, y ) “x précède immédiatement y sur le graphe”. I G (x, y ) “x suit immédiatement y sur le graphe”. I ϕP = ∀x∃yP(y , x) “ tout point a un prédécesseur immédiat”. vraie. I ϕG = ∀x∀y ∀z(P(x, y ) ∧ P(y , z)) → G (x, z) “pour tous points x, y , z, si x précède imméd. y et si y précède imméd. z, alors x suit imméd. z”. Elle est fausse. I ϕC = ∀x∃yG (y , x) “tout point a un successeur immédiat”. Elle est vraie. Elle est ϕF = ((ϕP ∧ ϕG ) → ϕC ) est donc vraie dans cette interprétation. Sophie Pinchinat Logique : le calcul des prédicats UE LOG – année 2016-2017 11/41 Introduction Un exemple Syntaxe du calcul des prédicats Sémantique du calcul des prédicats Interprétation 4 a b d c Les objets sont les quatre sommets a, b, c, d du graphe I P(x, y ) “x précède imméd. y ” et G (x, y ) “pour aller de x à y on rencontre exactement un point z différent de x et de y ”. I ϕP = ∀x∃yP(y , x) “tout point a un prédécesseur immédiat”. Elle est vraie. I ϕG = ∀x∀y ∀z(P(x, y ) ∧ P(y , z)) → G (x, z) “pour tous points x, y , z, si x précède imméd. y et si y précède imméd. z, alors x suit imméd. z”.Elle est vraie. I ϕC = ∀x∃yG (y , x) “tout point a un successeur immédiat”. Elle est vraie. ϕF = ((ϕP ∧ ϕG ) → ϕC ) est donc vraie dans cette interprétation. Sophie Pinchinat Logique : le calcul des prédicats UE LOG – année 2016-2017 12/41 Introduction Un exemple Syntaxe du calcul des prédicats Sémantique du calcul des prédicats Interprétation 5 Les objets sont les éléments de IN, les entiers naturels. I P(x, y ) “x = y + 1”. Ex. P(5, 4) est vraie, mais P(4, 5) est fausse. I G (x, y ) “x = y + 2”. Ex. G (6, 4) est vraie, mais G (4, 6) est fausse. I ϕP = ∀x∃yP(y , x) “pour tout x ∈ IN, il existe y ∈ IN tel que y = x + 1”. VRAIE. I ϕG = ∀x∀y ∀z(P(x, y ) ∧ P(y , z)) → G (x, z) “pour tous x, y , z ∈ IN, si x = y + 1 et z = y + 1 alors z = x + 2”. VRAIE. I ϕC = ∀x∃yG (y , x) “pour tout x ∈ IN, il existe y ∈ IN tel que y = x + 2”. VRAIE. ϕF = ((ϕP ∧ ϕG ) → ϕC ) est donc vraie dans cette interprétation. Sophie Pinchinat Logique : le calcul des prédicats UE LOG – année 2016-2017 13/41 Introduction Un exemple Syntaxe du calcul des prédicats Sémantique du calcul des prédicats Interprétation 6 Les objets sont les éléments de IN, les entiers naturels. I P(x, y ) “y = x + 1”. Ex. P(5, 4) est vraie, mais P(4, 5) est fausse. I G (x, y ) “y = x + 2”. Ex. G (6, 4) est vraie, mais G (4, 6) est fausse. I ϕP “pour tout x ∈ IN, il existe un entier y tel que x = y + 1”. I ϕG “pour tous entiers x, y , z, si x = y + 1 et z = y + 1 alors z = x + 2”. VRAIE. I ϕC “pour tout x ∈ IN, il existe z ∈ setn tel que x = z + 2”. FAUSSE. FAUSSE ((ϕP ∧ ϕG ) → ϕC ) est donc vraie dans cette interprétation. Sophie Pinchinat Logique : le calcul des prédicats UE LOG – année 2016-2017 14/41 Introduction Un exemple Syntaxe du calcul des prédicats Sémantique du calcul des prédicats Comparaison des interprétations : leurs points communs Informellement, une interprétation est donnée par : I un domaine pour les objets, e.g., , l’ensemble des entiers naturels, l’ensemble des étudiants d’une classe, l’ensemble des sommets d’un graphe, l’ensemble des graphes, etc., I des opérateurs sur le domaine pour les symboles de fonctions, I des relations sur les objets du domaine pour les symboles de relations. Exercice Trouver les symboles dans les formules de l’introduction et les opérateurs qui leur correspondent pour chacune des interprétations. Trouver les symboles de relations dans les formules de l’introduction et les relations qui leur correspondent pour chacune des interprétations. Certaines interprétations ont finies (Interprétations 2,3,4), d’autres sont infinies (Interprétations 1,5,6). Les formules possèdent autant d’interprétations que l’on peut imaginer. Pour une interprétation donnée, certaines formules y sont vraies d’autres fausses. Cependant on pourra distinguer des formules du langage qui sont vraies dans toutes les interprétations, ce sera les validités. Sophie Pinchinat Logique : le calcul des prédicats UE LOG – année 2016-2017 15/41 Introduction Un exemple Syntaxe du calcul des prédicats Sémantique du calcul des prédicats Syntaxe du calcul des prédicats, mais auparavant celle des termes Un terme décrit un objet du domaine de l’interprétation choisie. On se fixe une signature (ensemble de symboles) F = {c, f , g , . . .} de symboles muni d’une application arité ar : F → IN qui indique combien d’arguments de chaque symbole. On notera par exemple F = {c(0), f (1), g (2), . . .} pour indiquer que ar(c) = 0, ar(f ) = 1, ar(g ) = 2, etc. Puisque l’arité de c est zéro, le symbole c ne prend aucun argument, on dit alors que c est une constante. Définition Étant donnés une signature F et un ensemble Var (de variables), l’ensemble des termes sur F et Var est le plus petit ensemble tel que : I x ∈ TF pour toute variable x ∈ Var I c ∈ TF pour tout symbole d’arité 0 (constante) I si ar(f ) = n et t1 , . . . , tn ∈ TF , alors f (t1 , . . . , tn ) ∈ TF . On note TF l’ensemble de tous les termes sur F et Var . Un terme est dit clos s’il ne contient aucune variable. Sophie Pinchinat Logique : le calcul des prédicats UE LOG – année 2016-2017 16/41 Introduction Un exemple Syntaxe du calcul des prédicats Sémantique du calcul des prédicats Exemple de termes Soit F = {0(0), s(1), +(2), ∗(2)}. Exemple Soient x, y ∈ Var . L’expression +(∗(s(s(0)), x), s(y )) est un terme, que l’on peut représenter par l’arbre suivant : + ∗ s s x y s 0 Il n’est pas clos. Parfois, nous noterons ABUSIVEMENT (s(s(0)) ∗ x) + s(y )) Sophie Pinchinat Logique : le calcul des prédicats UE LOG – année 2016-2017 17/41 Introduction Un exemple Syntaxe du calcul des prédicats Sémantique du calcul des prédicats Langage/vocabulaire pour les énoncés Définition Un langage (ou vocabulaire) du premier ordre est une paire S = (F, P) où : I F est une signature pour les termes. I P est une autre signature pour les formules atomiques/prédicats. Exemple Le langage qu’on a envie d’utiliser pour les ensembles est celui où F = {∅(0), ∩(2), ∪(2), C (1)} et P = {= (2), ⊆ (2)}. On pourra écrire l’énoncé ⊆ (∩(x, C (∅)), x) (en maths on écrit (x ∩ ∅C ) ⊆ x)) Exercice Quel(s) langage(s) proposeriez-vous pour les entiers naturels ? Exercice Quel est le langage sur lequel reposent les énoncés ϕP , . . . de l’introduction ? Sophie Pinchinat Logique : le calcul des prédicats UE LOG – année 2016-2017 18/41 Introduction Un exemple Syntaxe du calcul des prédicats Sémantique du calcul des prédicats Ne pas confondre F “fonctions” et P “relations” Les concepts de fonctions et de relations sont très différents. I Les symboles de fonctions (dont les constantes) sont utilisés dans les termes pour décrire des objets. I Les symboles de relations sont utilisés pour des énoncés simples entre les termes afin de décrire leurs propriétés. Exemple 1 + 2 est un terme (il désigne un objet) tandis que 1 + 2 ≥ 4 est une formule. I Sophie Pinchinat (Sauf mention contraire) chaque langage contient le symbole de relation binaire = et un symbole de relation ⊥, sans argument (d’arité 0) qui représentera l’énoncé toujours faux. Logique : le calcul des prédicats UE LOG – année 2016-2017 19/41 Introduction Un exemple Syntaxe du calcul des prédicats Sémantique du calcul des prédicats Les formules du calcul des prédicats I Étant donné un langage S = (F, P), on construit les formules de la logique du premier ordre en utilisant les connecteurs de la logique propositionnelle et les quantificateurs ∀ et ∃ qui combinent des formules atomiques : ces dernières sont obtenues en appliquant un symbole de relation à des termes. I On se fixe pour toute la suite un ensemble Var = {x, x0 , x1 , . . . , y , y0 , y1 , . . . , z, z0 , z1 , . . .} de symboles de variables. Sophie Pinchinat Logique : le calcul des prédicats UE LOG – année 2016-2017 20/41 Introduction Un exemple Syntaxe du calcul des prédicats Sémantique du calcul des prédicats Formules (on utilise FO pour “First Order”) Soit S = (F, P) un langage du premier ordre. Définition Une formule atomique sur S est une expression de la forme R(t1 , . . . , tn ) avec R(n) ∈ P est un sumbole de relation et t1 , t2 , . . . , tn ∈ TF sont des termes. Définition L’ensemble FOS des formules du premier ordre sur S (et Var ) est le plus petit ensemble tel que : 1. toute formule atomique sur S appartient à FOS 2. si ϕ, ψ ∈ FOS sont deux formules, alors ϕ ∧ ψ, ϕ ∨ ψ, ϕ → ψ, ¬ϕ ∈ FOS 3. si ϕ ∈ FOS et x ∈ Var , alors ∀xϕ, ∃xϕ ∈ FOS . Exercice Définir par induction sur ϕ ∈ FOS l’ensemble Var (ϕ) de ses variables. Sophie Pinchinat Logique : le calcul des prédicats UE LOG – année 2016-2017 21/41 Introduction Un exemple Syntaxe du calcul des prédicats Sémantique du calcul des prédicats Arbre d’une formule Comme pour le calcul propositionnel, on peut voir une formule comme un arbre. Exemple Soit la formule [(∃xF (x)) → (∃xK (g (x)) ∨ H(f (y , x), g (x)))] ∧ [(∃yG (x, g (y ))) ∨ F (h(y ))] ∧ → ∨ ∃x F (x) ∨ ∃x ∃y F (h(y )) H(f (y , x), g (x)) G (x, g (y )) K (g (x)) Remarque Les feuilles de l’arbre sont des formules atomiques (de façon similaire au cas des propositions pour le calcul propositionnel). Sophie Pinchinat Logique : le calcul des prédicats UE LOG – année 2016-2017 22/41 Introduction Un exemple Syntaxe du calcul des prédicats Sémantique du calcul des prédicats Occurrences libres et liées d’une variable Definition Lorsqu’une variable x appartient à une sous-formule précédée d’un quantificateur, ∀x ou ∃x, elle est dite liée par ce quantificateur. Si une variable n’est liée par aucun quantificateur, elle est libre. Remarque La distinction entre variable libre et variable liée est importante : une variable liée ne possède pas d’identité propre et peut être remplacée par n’importe quel autre nom de variable qui n’apparaı̂t pas dans la formule. Exemple On établira, comme on s’y attend, que la formule ∃x(x < y ) est équivalente à la formule ∃z(z < y ), car on a simplement renommé la variable liée x en z. Sophie Pinchinat Logique : le calcul des prédicats UE LOG – année 2016-2017 23/41 Introduction Un exemple Syntaxe du calcul des prédicats Sémantique du calcul des prédicats Occurrences libres et liées d’une variable Définition L’ensemble des variables libres (“free variables”) FV (ϕ), et l’ensemble des variables liées (“bound variables”) BV (ϕ) d’une formule ϕ sont des sous-ensembles de Var (ϕ) définis par induction sur ϕ : FV (ϕ) = Var (ϕ) I si ϕ est une formule atomique : BV (ϕ) = ∅ FV (¬ϕ) = FV (ϕ) BV (¬ϕ) = BV (ϕ) FV (ϕ → ψ) = FV (ϕ ∧ ψ) = FV (ϕ ∨ ψ) = FV (ϕ) ∪ FV (ψ) BV (ϕ → ψ) = BV (ϕ ∧ ψ) = BV (ϕ ∨ ψ) = BV (ϕ) ∪ BV (ψ) FV (∀xϕ) = FV (∃xϕ) = FV (ϕ) \ {x} BV (∀xϕ) = BV (∃xϕ) = BV (ϕ) ∪ {x} I I I Une formule ϕ est close si elle ne possède aucune variable libre, i.e., FV (ϕ) = ∅. Sophie Pinchinat Logique : le calcul des prédicats UE LOG – année 2016-2017 24/41 Introduction Un exemple Syntaxe du calcul des prédicats Sémantique du calcul des prédicats Exemple Exemple ∧ → ∨ ∨ ∃x F (x) ∃x ∃y F (h(y )) H(f (y , x), g (x)) G (x, g (y )) K (g (x)) On pourra renommer les variables liées∧ → ∨ ∨ ∃x1 F (x1 ) ∃x2 ∃x3 F (h(y )) H(f (y , x), g (x)) G (x, g (x3 )) K (g (x2 )) Sophie Pinchinat Logique : le calcul des prédicats UE LOG – année 2016-2017 25/41 Introduction Un exemple Syntaxe du calcul des prédicats Sémantique du calcul des prédicats Sémantique du calcul des prédicats Maintenant que nous sommes familiarisés avec la syntaxe de la logique des prédicats, nous donnons une signification aux symboles de manières à interpréter les formules. Soit S = (F, P) un langage du calcul des prédicats. On note Fn et Pn les symboles de fonction et les symboles de relation d’arité n, respectivement. On évalue les formules du calcul des prédicats sur des structures, interprétations. Définition Une S-structure, ou simplement structure ou encore interprétation, M est donnée (1) par son domaine DM , et (2) par la signification des symboles : I n pour chaque f ∈ Fn , d’une fonction totale f M : DM → DM I n pour chaque r ∈ Pn , d’une relation r M ⊆ DM Remarque Lorsque c ∈ F0 (constante), alors son interprétation c M est un élément de DM . Sophie Pinchinat Logique : le calcul des prédicats UE LOG – année 2016-2017 26/41 Introduction Un exemple Syntaxe du calcul des prédicats Sémantique du calcul des prédicats Exemples d’interprétations Soit le langage S = ({o(0), f (1)}, {P(2)}). Exemple Soit M la structure/interprétation définie par : I DM = IN I oM = 0 I f M (n) = n + 1 I P M = {(n, n0 ) | n ≤ n0 } Exemple Soit M0 la structure/interprétation définie par : I DM0 = {Paul, Anne, Ida} I o M = Paul I f M (Paul) = Anne, f M (Anne) = Paul, f M (Ida) = Anne, par exemple pour “héritier” I P M = {(Anne, Paul), (Paul, Ida), (Anne, Ida)}, par exemple pour “est plus âgé que” Sophie Pinchinat 0 0 0 0 0 Logique : le calcul des prédicats UE LOG – année 2016-2017 27/41 Introduction Un exemple Syntaxe du calcul des prédicats Sémantique du calcul des prédicats Quelques structures importantes Domaine IN IN R I R I {0} Sophie Pinchinat Fonctions 0, s, +, × 0, s, + 0, s, +, × 0, s, + ∅ Relations =, ≤ =, ≤ =, ≤ =, ≤ {p0 , p1 , p2 , . . .} Logique : le calcul des prédicats Nom Arithmétique de Péano Arithmétique de Presburger Théorie des réels Théorie additive des réels Structure propositionnelle UE LOG – année 2016-2017 28/41 Introduction Un exemple Syntaxe du calcul des prédicats Sémantique du calcul des prédicats Interprétation des variables libres On se donne un moyen de savoir à quel élément du domaine une variable correspond. Définition Une valuation dans une structure M est une fonction ν : Var → DM qui associe chaque variable à un élément du domaine. On note ValM (ou plus simplement Val) l’ensemble des valuations dans M. Pour ν ∈ Val, x ∈ Var et d ∈ DM , on définit : d si y = x ν[x := d](y ) = ν(y ) sinon. Ainsi, ν[x := d] est comme ν sauf pour la variable x qui maintenant est associée à d. Sophie Pinchinat Logique : le calcul des prédicats UE LOG – année 2016-2017 29/41 Introduction Un exemple Syntaxe du calcul des prédicats Sémantique du calcul des prédicats Valeur d’une formule On se fixe un langage S = (F, P) et un ensemble de variables Var pour écrire des formules. On se fixe aussi une S-structure M, et ν ∈ ValM une valuation pour les variables de Var . Pour savoir ce que vaut la formule ∃x(P(f (x), y ) ∨ Q(g (x, y ))) dans M, il faut savoir 1. ce que vallent les termes f (x), y , et g (x, y ) 2. ce que vallent les formules atomiques P(f (x), y ) et Q(g (x, y )), dont on déduira ce que vaut P(f (x), y ) ∨ Q(g (x, y )) 3. et enfin, ce que vaut ∃x(P(f (x), y ) ∨ Q(g (x, y ))) Sophie Pinchinat Logique : le calcul des prédicats UE LOG – année 2016-2017 30/41 Introduction Un exemple Syntaxe du calcul des prédicats Sémantique du calcul des prédicats Valeur d’un terme On a fixé un langage S = (F, P) et un ensemble de variables Var , une S-structure M, et ν ∈ ValM une valuation pour les variables de Var . Définition Soit t ∈ TF , sa valeur dans M pour la valuation ν est un élément du domaine DM , noté [[ t ]]M,ν , et défini par induction sur t : 1. si t = x est une variable, alors [[ t ]]M,ν = [[ x ]]M,ν = ν(x) 2. sinon t = f (t1 , . . . , tn ), et alors [[ t ]]M,ν = [[ f (t1 , t2 , . . . , tn ) ]]M,ν = f M ([[ t1 ]]M,ν , [[ t2 ]]M,ν , . . . , [[ tn ]]M,ν ) Remarque Le cas d’une constante c est un cas particulier de 2. pour un symbole d’arité 0 : [[ c ]]M,ν = c M ∈ DM Sophie Pinchinat Logique : le calcul des prédicats UE LOG – année 2016-2017 31/41 Introduction Un exemple Syntaxe du calcul des prédicats Sémantique du calcul des prédicats Valeur d’une formule atomique (de la forme r (t1 , t2 , . . . , tn )) On a fixé un langage S = (F, P) et un ensemble de variables Var , une S-structure M, et ν ∈ ValM une valuation pour les variables de Var . Définition La valeur de r (t1 , t2 , . . . , tn ) dans M pour ν, notée [[ r (t1 , t2 , . . . , tn ) ]]M,ν , est dans {faux, vrai} et est donnée par : [[ r (t1 , t2 , . . . , tn ) ]]M,ν = vrai ssi ([[ t1 ]]M,ν , [[ t2 ]]M,ν , . . . , [[ tn ]]M,ν ) ∈ r M Exemple Considérons la formule atomique P(f (x), y ) que l’on évaluer dans la structure N de domaine les entiers naturels IN, et pour laquelle f N (n) = n + 1 et P N est la relation ≥, et pour la valuation ν définie par [x := 42, y := 3, z := . . .]. Par définition pour les formules atomiques, [[ P(f (x), y ) ]]M,ν = vrai dès lors que (ν(f (x)), ν(y )) ∈ P N , ce qui se lit 42 + 1 ≥ 3 qui est bien vraie. Exercice Trouver une structure M et une valuation ν pour lesquelle [[ P(f (x), y ) ]]M,ν = faux. Sophie Pinchinat Logique : le calcul des prédicats UE LOG – année 2016-2017 32/41 Introduction Un exemple Syntaxe du calcul des prédicats Sémantique du calcul des prédicats Valeur d’une formule Maintenant que l’on connaı̂t les valeurs des formules atomiques, on peut définir les valeurs de formules plus complexes. Définition Soit ϕ ∈ FO une formule non atomique. La valeur de ϕ dans M pour la valuation ν, notée [[ ϕ ]]M,ν , est dans {faux, vrai} et est définie par (induction) : I [[ ϕ ∧ ψ ]]M,ν = vrai ssi [[ ϕ ]]M,ν = vrai et [[ ψ ]]M,ν = vrai I [[ ϕ ∨ ψ ]]M,ν = vrai ssi [[ ϕ ]]M,ν = vrai ou [[ ψ ]]M,ν = vrai I [[ ¬ϕ ]]M,ν = vrai ssi [[ ϕ ]]M,ν = faux I [[ ϕ → ψ ]]M,ν = faux ssi [[ ϕ ]]M,ν = vrai et [[ ψ ]]M,ν = faux I [[ ∃xϕ ]]M,ν = vrai ssi il existe d ∈ DM tel que [[ ϕ ]]M,ν[x:=d] = vrai I [[ ∀xϕ ]]M,ν = vrai ssi pour tout d ∈ DM , [[ ϕ ]]M,ν[x:=d] = vrai Lorsque [[ ϕ ]]M,ν = vrai, on dit que “ϕ est vraie ...”, et on note M, ν |= ϕ. Sophie Pinchinat Logique : le calcul des prédicats UE LOG – année 2016-2017 33/41 Introduction Un exemple Syntaxe du calcul des prédicats Sémantique du calcul des prédicats Prenons un peu de temps pour ... Définition Soit ϕ ∈ FO une formule non atomique. La valeur de ϕ dans M pour la valuation ν, notée [[ ϕ ]]M,ν , est dans {faux, vrai} et est définie par (induction) : .. . I [[ ∃xϕ ]]M,ν = vrai ssi il existe d ∈ DM tel que [[ ϕ ]]M,ν[x:=d] = vrai I [[ ∀xϕ ]]M,ν = vrai ssi pour tout d ∈ DM , [[ ϕ ]]M,ν[x:=d] = vrai Des exemples au tableau ... Sophie Pinchinat Logique : le calcul des prédicats UE LOG – année 2016-2017 34/41 Introduction Un exemple Syntaxe du calcul des prédicats Sémantique du calcul des prédicats Remarques I [[ ∃xϕ ]]M,ν = vrai ssi il existe d ∈ DM tel que [[ ϕ ]]M,ν[x:=d] = vrai I [[ ∀xϕ ]]M,ν = vrai ssi pour tout d ∈ DM , [[ ϕ ]]M,ν[x:=d] = vrai Remarque On a vu que les valeurs [[ ∃xϕ ]]M,ν et [[ ∀xϕ ]]M,ν sont indépendantes de ν(x). Plus généralement, les valeurs [[ ϕ ]]M,ν et [[ ϕ ]]M,ν ne dépendent pas des valuations des variables x ∈ BV (ϕ) (variables liées), mais de celles de variables libres. Remarque Lorsque ϕ est une formule close (i.e., pas de variables libres), sa valeur [[ ϕ ]]M,ν ne dépend pas de la valuation ν. Lorsque ϕ est close, on note [[ ϕ ]]M sa valeur dans M, et on écrit M |= ϕ lorsque [[ ϕ ]]M = vrai. La notion pertinente est celle de formule close, les formules non closes ne servent qu’à donner la sémantique. Sophie Pinchinat Logique : le calcul des prédicats UE LOG – année 2016-2017 35/41 Introduction Un exemple Syntaxe du calcul des prédicats Sémantique du calcul des prédicats Exemple d’application de la sémantique : Ordre des quantificateurs Avec notre sémantique des formules, on peut montrer que l’ordre dans lequel sont écrits certains quantificateurs est important : par exemple, les formules ∀y ∃xP(x, y ) et ∃x∀y P(x, y ) ne signifient pas la même chose puisqu’il existe une structure dans laquelle ∀y ∃xP(x, y ) est vraie, mais ∃x∀y P(x, y ) est fausse. On choisit la structure des entiers ordonnées N = (IN, ≥), dans laquelle P s’interprète comme ≥. [[ ∀y ∃xP(x, y ) ]][ N ] = vrai ssi pour tout n ∈ IN, [[ ∃xP(x, y ) ]]N ,[y :=n] = vrai ssi pour tout n ∈ IN, il existe m ∈ IN, [[ P(x, y ) ]]N ,[y :=n,x:=m] = vrai ssi pour tout n ∈ IN, il existe m ∈ IN, ([[ x ]]N ,[y :=n,x:=m] , [[ y ]]N ,[y :=n,x:=m] ) ∈ P N ssi pour tout n ∈ IN, il existe m ∈ IN, m ≥ n c’est VRAI ! [[ ∃x∀y P(x, y ) ]][ N ] = vrai ssi il existe m ∈ IN t.q, [[ ∀y P(x, y ) ]]N ,[x:=m] = vrai ssi il existe m ∈ IN, pour tout n ∈ IN, [[ P(x, y ) ]]N ,[x:=m,y :=n] = vrai ssi il existe m ∈ IN, pour tout n ∈ IN, ([[ x ]]N ,[x:=m,y :=n] , [[ y ]]N ,[x:=m,y :=n] ) ∈ P N ssi il existe m ∈ IN, pour tout n ∈ IN, m ≥ n c’est FAUX ! Sophie Pinchinat Logique : le calcul des prédicats UE LOG – année 2016-2017 36/41 Introduction Un exemple Syntaxe du calcul des prédicats Sémantique du calcul des prédicats Notions sémantiques Comme pour le calcul propositionnel, on définit les notions de : I modèles d’une formule close I thérorème I validité/satisfaisabilité I conséquence logique I équivalence I etc. Sophie Pinchinat Logique : le calcul des prédicats UE LOG – année 2016-2017 37/41 Introduction Un exemple Syntaxe du calcul des prédicats Sémantique du calcul des prédicats Modèles, théorèmes, et tout et tout ... Soit S un langage du premier ordre. Définition Soit M une S-structure. I Soit ϕ ∈ FO une formule close sur S. La structure M est un modèle de ϕ si M |= ϕ I Soit Γ ∈ FO un ensemble de formules closes sur S. La structure M est un modèle de Γ si M |= ϕ, pour tout ϕ ∈ Γ. (c-à-d. [[ ϕ ]]= vrai). Définition I Une formule close ϕ ∈ FO est insatisfaisable si elle n’a pas de modèle, sinon elle est satisfaisable. I Une formule close ϕ ∈ FO sur S est valide (ou une tautologie), noté |= ϕ, si M |= ϕ, pour toute S-structure M. Définition Deux formules closes ϕ et ψ de FO sont dites équivalentes (noté ϕ ≡ ψ) si pour toute S-structure M, on a M |= ϕ ssi M |= ψ. Sophie Pinchinat Logique : le calcul des prédicats UE LOG – année 2016-2017 38/41 Introduction Un exemple Syntaxe du calcul des prédicats Sémantique du calcul des prédicats Equivalences classiques (1/2) I Loi de conversion des quantificateurs ¬∀xϕ ¬∃xϕ I ∃x¬ϕ ∀x¬ϕ Loi de distribution des quantificateurs ∀x(ϕ ∧ ψ) ∃x(ϕ ∨ ψ) I ≡ ≡ ≡ ≡ (∀xϕ ∧ ∀xψ) (∃xϕ ∨ ∃xψ) Lois de permutation des quantificateurs de même sorte ∀x∀y ϕ ∃x∃y ϕ ≡ ≡ ∀y ∀xϕ ∃y ∃xϕ Exercice Utiliser la sémantique de ≡ et celle des formules pour démontrer ces équivalences. Sophie Pinchinat Logique : le calcul des prédicats UE LOG – année 2016-2017 39/41 Introduction Un exemple Syntaxe du calcul des prédicats Sémantique du calcul des prédicats Equivalences classiques (2/2) I Lois de réalphabétisation (renommage) des variables. On peut toujours renommer une variable liée et la variable du quantificateur au sein d’une formule. Cependant, le nouveau nom ne doit pas être un nom déjà utilisé pour une variable libre ou liée de la formule. Exemple Dans ∃x(∀xF (x, y ) → (G (x) ∨ q)), on peut opérer deux renommages : ∃z(∀tF (t, y ) → (G (z) ∨ q)) I Lois de passage : si x ∈ / FV (ψ), ∀x(ϕ ∧ ψ) ∃x(ϕ ∧ ψ) ∀x(ϕ ∨ ψ) ∃x(ϕ ∨ ψ) ∀x(ϕ → ψ) ∃x(ϕ → ψ) ∀x(ψ → ϕ) ∃x(ψ → ϕ) Sophie Pinchinat Logique : le calcul des prédicats ≡ ≡ ≡ ≡ ≡ ≡ ≡ ≡ (∀xϕ) ∧ ψ (∃xϕ) ∧ ψ (∀xϕ) ∨ ψ (∃xϕ) ∨ ψ (∃xϕ) → ψ (∀xϕ) → ψ ψ → (∀xϕ) ψ → (∃xϕ) UE LOG – année 2016-2017 40/41 Introduction Un exemple Syntaxe du calcul des prédicats Sémantique du calcul des prédicats Conséquence logique Définition Une formule close ϕ est conséquence logique d’un ensemble de formules closes Γ si tout modèle de Γ est un modèle de ϕ. On écrit alors Γ |= ϕ. Une théorie est l’ensemble des conséquences logiques d’un ensemble de formules closes. Exemple La théorie des groupes est l’ensemble des conséquences logiques de l’ensemble de formules suivantes, appelées axiomes de la théorie des groupes : Associativité Élément neutre Inverse ∀x∀y ∀z[(x ∗ y ) ∗ z = x ∗ (y ∗ z)] ∀x[(x ∗ e = x) ∧ (e ∗ x = x)] ∀x[(x ∗ i(x) = e) ∧ (i(x) ∗ x = e)] (Ass) (EN) (Inv) Par exemple, {Ass, EN, Inv } |= ∀x∀y [(x ∗ y = e) → (y = i(x))] qui exprime que l’inverse à droite de tout élément est unique. Sophie Pinchinat Logique : le calcul des prédicats UE LOG – année 2016-2017 41/41