Logique des prédicats du premier ordre

publicité
Programmation logique
Logique des prédicats du premier ordre
• A. Introduction
• B. Logique des prédicats du premier ordre
Syntaxe
Sémantique
Propriétés
Inconsistance et validité d'une formule
Variables libres, variables liées
Forme normale conjonctive
Forme normale disjonctive
Règle d'inférence
Programmation logique
Logique des prédicats du premier ordre
Introduction
• Elle est basée sur le principe de la démonstration automatique de
théorèmes(utilisant la logique du premier ordre)
• Un programme en Logique est un ensemble d'énoncés.
• Les énoncés sont des formules du calcul du premier ordre ne
contenant pas de variables libres.
• Tout problème calculable peut être formulé dans ce langage.
Programmation logique
Logique des prédicats du premier ordre
Introduction
• Programmer en logique consiste :
— à définir les hypothèses (énoncés definis dans un programme
exprimant la connaissance relative au problème à résoudre.
— à introduire la conclusion (poser le problème).
• L'interpréteur tente ensuite de réaliser la preuve du but en
utilisant l'inférence logique.
• Le langage le plus représentatif est PROLOG(1971) basé sur deux
mécanismes : unification et résolution.
Programmation logique
Logique des prédicats du premier ordre
Syntaxe : Éléments de base
•
•
•
•
Constantes : a, b, c,...
Variables : x, y, z,...
Fonctions : f, g, h, ....
Relation( prédicat ou fonctions booléennes): P, Q, R
Programmation logique
Logique des prédicats du premier ordre
Syntaxe : définition d'un terme
•
•
•
Toute constante est un terme.
Toute variable est un terme.
Si t1, t2, ..tn sont des termes et si f est une fonction n-aire, alors
f(t1, t2, ..,tn) est un terme.
Programmation logique
Logique des prédicats du premier ordre
Syntaxe : définition d'un atome
•
Si t1, t2, ..., tn sont des termes et si P est un prédicat n-aires alors
P(t1, t2, .., tn) est un atome.
Programmation logique
Logique des prédicats du premier ordre
• Syntaxe : définition d'une formule
• . Tout atome est une formule.
• . Si P et Q sont deux formules alors :
• Non P, P & Q, P V Q, P ==> Q, P <==> Q, ∀ x P(x), ∃x P(x) sont
des formules.
Programmation logique
Logique des prédicats du premier ordre
Syntaxe : exemples
• ∀x NOMBRE(x) ==> (∃
∃y PLUSGRANDQUE(y, x)
• ∀x, ∃y (P(x) & Q(y)) ==> (R(a) V Q(b) )
Programmation logique
Logique des prédicats du premier ordre
Sémantique
• Quand on attribue des valeurs a chaque terme et à chaque
symbole de prédicat dans une fbf on dit qu'une interprétation est
donnée a la fbf.
• Si les valeurs de vérité de fbf sont les mêmes pour toute
interprétaion, on dit qu'il sont équivalents.
Programmation logique
Logique des prédicats du premier ordre
Sémantique
• Soit à évaluer
E : ∀ x (( A(a, x) V B(f(x)) & C(x)) ==> D(x)
A, B, C et D sont des prédicats.
Programmation logique
Logique des prédicats du premier ordre
Sémantique
• Soit l'interprétation suivante de domaine D = {1, 2}
a=2
f(1) = 2 ; f(2) = 1
A(2, 1) = vrai ; A(2, 2) = faux
B(1) = vrai ; B(2) = faux
C(1) = vrai ; C(2) = faux
D(1) = faux ; D(2) = vrai
Programmation logique
Logique des prédicats du premier ordre
Sémantique
• Cas x = 1
( Évaluation ) :
A(2, 1) vrai et B(2) faux donc A(2, 1) V B(2) vrai
C(1) vrai donc (A(2, 1) V B(2)) & C(1) vrai
D(1) faux l'implication est donc fausse
• Cas x = 2
On montre de la même façon que E est vraie
• Puisque E n'est pas vrai pour tout x, l'expression est alors fausse.
Programmation logique
Logique des prédicats du premier ordre
Propriétés
• L'évaluation de fbf complexes peut être facilité par une phase de
substitution( transformation syntaxique)
• On dispose alors des propriétés suivantes :
• F, G et H sont des fbf ne contenant pas de variable F[x] est une fbf
contenant la variable x.
Programmation logique
Logique des prédicats du premier ordre
Propriétés
• Double négation
• Commutativité
• Associativité
• Distributivité
• De Morgan
NON ( NON F) = F
F&G=G&F
FVG=GVF
F&(G&H)=(F&G)&H
FV(GVH)=(FVG)VH
F V( G & H) = (F V G) & ( F V H)
F &( G V H) = (F & G) V ( F & H)
NON ( F & G ) = NON F V NON G
NON ( F V G) = NON F & NON G
Programmation logique
Logique des prédicats du premier ordre
Propriétés
• F ==> G = NON F V G
• F <==> G = (NON F V G)&(NON G VF)
• NON (∀
∀x F[x] ) = ∃x NON F[x]
• NON (∃
∃x F[x] ) = ∀x NON F[x]
• ∀x F[x] & ∀x G[x] = ∀x ( F[x] & G[x] )
• ∃x F[x] V ∃x G[x] = ∃x ( F[x] V G[x] )
Programmation logique
Logique des prédicats du premier ordre
Inconsistance et validité d'une formule
• fbf inconsistante (in satisfiable) fausse pour toute interprétation.
• fbf valide : vraie pour toute interprétaion.
• (Donc fbf satisfiable : vraie pour quelques interpétations
• fbf non valide : fausse pour quelques interpétations )
• Conséquences
— fbf valide ==> fbf satisfiable
— fbf inconsistante ==> fbf invalide
Programmation logique
Logique des prédicats du premier ordre
Inconsistance et validité d'une formule
• Q est une conséquence logique de P1, P2, ....Pn ] <==>
[Si P1 & p2 ...& Pn est vraie pour toute interprétation, alors Q est
aussi vrai].
• Exemples :
• P & NON P : inconsistante ( fausse pour toute interprétation)
• P V NON P : valide ( vrai pour toute interprétaion)
Programmation logique
Logique des prédicats du premier ordre
Variables liées et libres
• Dans l'expression
∀x ( P(x) ==> Q(x, y) )
x est une variable liée et y est une variable libre. Une expression ne
peut être évaluée que lorsque toutes les variables sont liées. Aussi,
nous exigeons que toutes les fbf contiennent que les variables liées.
Programmation logique
Logique des prédicats du premier ordre
Forme normale conjonctive
• Soient F1, F2, ...des formules :
• Si chaque Fi est uniquement sous forme disjonctive de
littéraux(V), alors la forme F1 & F2 &.....Fn est dite une forme
normale conjonctive.
• Exemple : (NON P V Q V R) & (NON P V NON Q) & NON R est
une forme conjonctive.
Programmation logique
Logique des prédicats du premier ordre
Forme normale disjonctive
• Soient F1, F2, ...des formules :
• Si chaque Fi est uniquement sous forme conjonctive de
littéraux(V), alors la forme F1 V F2 V.....Fn est dite une forme
normale disjonctive.
• Exemple: (P & Q & R) V (Q & R) V P est une forme disjonctive.
• Il a été démontré que toute formule peut être transformée en une
forme normale disjonctive ou conjonctive.
Programmation logique
Logique des prédicats du premier ordre
Règles d'inférence
• Les règles d'inférence fournissent un moyen de faire des
démonstrations ou des déductions logiques. Le problème est le
suivant : étant donné un ensemble d'énoncés {s1, s2, ...sn} les
prémices, prouver la vérité de s( conclusion).
• L'utilisation de la table de vérité est un moyen de
démonstration(sémantique). D'autres méthodes reposent
uniquement sur les transformations syntaxiques. Elles utilisent
alors les règles d'inférences suivantes : Modus Ponens, Modus
tollens, Chaînage, Substitution, Conjonction, contraposée.
Programmation logique
Logique des prédicats du premier ordre
Règles clés utilisées dans les démonstrateurs :
•
Modus ponens
De P et P-->Q, on déduit Q, qui s'exprime :
P
P-->Q
---------Modus Ponens
Q
Programmation logique
Logique des prédicats du premier ordre
Règles clés utilisées dans les démonstrateurs :
Modus Tollens
•
De Non Q et P -->Q, on déduit Non P.
Non Q
P ==> Q
----------Modus Tollens
Non P
Programmation logique
Logique des prédicats du premier ordre
Règles clés utilisées dans les démonstrateurs :
Chaînage
•
De P --> Q et Q --> R, on déduit P --> R
P-->Q
Q-->R
P-->R
• Cette dernière est équivalente à:
Non P V Q
Non Q V R
Non P V R
Programmation logique
Logique des prédicats du premier ordre
Autres règles :
Substitution :
•
De P & Q, on déduit P
•
P&Q
P
Conjonction
De P et de Q, on déduit P & Q
P
Q .
P&Q
Programmation logique
Logique des prédicats du premier ordre
Autres règles :
Contraposée
•
De P --> Q, on déduit Non Q --> Non P
P --> Q
Non Q --> Non P
Téléchargement