0% ont trouvé ce document utile (0 vote)
2 vues16 pages

2 Resolution Unification

Le document traite de la sémantique de la logique, en expliquant comment écrire des formules, déterminer leur valeur de vérité et démontrer des résultats. Il aborde les concepts d'interprétation, de validité, de consistance et d'équivalence, ainsi que les règles de déduction et le principe de résolution. Enfin, il discute de la complétude et de la correction des systèmes formels, ainsi que de la décidabilité des formules.

Transféré par

soumahalhassanebaba
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
2 vues16 pages

2 Resolution Unification

Le document traite de la sémantique de la logique, en expliquant comment écrire des formules, déterminer leur valeur de vérité et démontrer des résultats. Il aborde les concepts d'interprétation, de validité, de consistance et d'équivalence, ainsi que les règles de déduction et le principe de résolution. Enfin, il discute de la complétude et de la correction des systèmes formels, ainsi que de la décidabilité des formules.

Transféré par

soumahalhassanebaba
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

S é m a n t iq u e d e la lo g iq u e

■ Comment écrire les formules ?


● Aspects syntaxiques

■ Comment déterminer la valeur de vérité d’une formule ?


● Aspects sémantiques
● logique bivaluée : vrai, faux
● interprétation

■ Comment démontrer de nouveaux résultats ?


● Aspects déductifs
● Conséquence logique
● démonstration
● règles de déduction

Programmation Logique et Prolog 1

I n t e r p r é t a t io n ( 1 / 2 )
■ But : donner une valeur de vérité aux formules

■ Une interprétation I d'une formule F est basée sur un ensemble de


définition D, non vide, appelé domaine
● à chaque symbole de constante de F est associé un élément de D
● à chaque symbole de variable de F est associé la variable elle-même
● à chaque symbole de fonction de F est associée une fonction de Dn dans D
● à chaque symbole de prédicat de F est associé une fonction de Dn dans {0,1}
● à chaque connecteur d'arité i est associée une fonction de {0,1}i dans {0,1}

a ¬a ∨ 1 0 ∧ 1 0 ⇒ 1 0
1 0 1 1 1 1 1 0 1 1 0
0 1 0 1 0 0 0 0 0 1 1

Programmation Logique et Prolog 2


I n t e r p r é t a t io n ( 2 / 2 )
● si F = ∀x G(x,y1,..,yn) (G formule dépendant de x et des variables libres
y1,..,yn), pour tout (a1,..,an) de Dn, I(F)(a1,..,an) vaut 1 si pour tout a de D, I(G)
(a, a1,..,an) = 1, et vaut 0 sinon

● si F = ∃ x G(x,y1,..,yn) (G formule dépendant de x et des variables libres


y1,..,yn), pour tout (a1,..,an) de Dn, I(F)(a1,..,an) vaut 1 s'il existe a de D telle
que I(G)(a, a1,..,an) = 1, et vaut 0 sinon

■ Toute formule close peut donc être interprétée dans {0,1}

■ Une interprétation d'une formule contenant i variables libres


donne une application de Di dans {0,1}. Une formule peut être
ainsi vue comme une fonction booléenne de ses variables libres
dans {0,1}.

■ Une interprétation d'une formule est un modèle de cette formule


si la formule est vraie pour cette interprétation
Programmation Logique et Prolog 3

Ex e m p le d 'in t e r p r é t a t io n
■ Interprétons F = ∀x p(x) ⇒ q(x) sur le domaine {a,b,c}
■ Une interprétation possible de la formule
x I(p)(x) I(q)(x) I(p ⇒ q)(x)
a 1 1 1
=> F est vraie
b 0 0 1
c 1 0 1

 Autre exemple d'interprétation

x I(p)(x) I(q)(x) I(p ⇒ q)(x)


a 0 1 0
=> F est fausse
b 0 1 0
c 1 0 1

Programmation Logique et Prolog 4


V a lid it é
■ Une formule est valide (tautologie) si elle est vraie quelque soit
l'interprétation (si toute interprétation est un modèle)
● exemple : ∀x ¬ p(x) ∨ p(x) est une tautologie

■ Une formule est consistante (ou satisfiable) s'il existe une


interprétation dans laquelle elle est vraie
● exemple : ∃x ¬ p(x)

■ Une formule est insatisfiable (ou inconsistante) s'il n'existe pas


d'interprétation dans laquelle elle est vraie
● exemple : ¬ p(x) ∧ p(x)

■ Note : une formule peut être invalide et consistante

Programmation Logique et Prolog 5

Eq u iv a le n ce
■ Deux formules f et f' sont sémantiquement équivalentes si pour
toute interprétation I, I(f) = I(f'), c'est à dire que leur tables de
vérité sont les mêmes (on note f ≡ f')

■ Quelques équivalences utiles :


● p ⇒q≡¬p∨q
● p ∧ ¬ p ≡0

● p ∨ ¬ p ≡1

● ¬ (¬ p) ≡ p

● ¬ (p ∧ q) ≡ ¬ p ∨ ¬ q (loi de Morgan)
● ¬ (p ∨ q) ≡ ¬ p ∧ ¬ q (loi de Morgan)
● p ∧ q ≡ q ∧ p et p ∨ q ≡ q ∨ p (symétries de ∧ et ∨)

● associativités de ∧ et ∨
● p ∨ 1 ≡ 1 et p ∧ 0 ≡ 0 (absorption)
● p ∧ 1 ≡ p et p ∨ 0 ≡ p (élément neutre)

Programmation Logique et Prolog 6


S a t isf a ct io n
■ Un ensemble de formules {f1, .. , fn} satisfait une formule f si pour
toute interprétation I, pour tout i=1..n, si I(fi) = 1 alors I(f) = 1,
c'est-à-dire si tout modèle de {f1, .. , fn} est aussi modèle de f. On
note {f1, .. , fn} ╞ f. On dit aussi que f est conséquence logique de
{f1, .. , fn}

■ Si f est une formule valide, on note ╞ f

■ {f1, .. , fn} ╞ f équivaut à ╞ (f1 ∧ .. ∧ fn) ⇒f


ou ╞ ¬ (f1 ∧ .. ∧ fn) ∨ f
ou, si les formules sont closes, f1 ∧ .. ∧ fn ∧ ¬ f est
inconsistante (preuve par réfutation ou par l'absurde)
Programmation Logique et Prolog 7

S y st è m e f o r m e l e t p r e u v e
■ La notion de conséquence logique oblige, pour vérifier qu'une
formule est satisfaite par des hypothèses, à utiliser un domaine
et à assigner des valeurs de vérités : il s'agit d'une méthode
sémantique

■ La notion de démonstration (ou de preuve) est purement


syntaxique : on applique formellement des règles pour passer
mécaniquement des hypothèses à la formule
● on introduit un cadre formel pour les démonstrations

■ Un système formel S est constitué de :


● F un ensemble de formules
● A un ensemble d'axiomes A ⊂ F
● un ensemble fini de règles de déduction valides

Programmation Logique et Prolog 8


D é d u ct io n
■ Une preuve dans un système formel S est une suite finie
d'énoncés A1, .. An telle que pour tout i, Ai est un axiome de S ou
une conséquence des Aj (j<i) par application d'une règle de
déduction.

■ Un théorème de S est le dernier énoncé d'une preuve. Si A est un


théorème, on note ├ A

■ Une formule A est déductible d'un ensemble de formules {f1, .. , fn}


ssi il existe une suite finie A1, .. , An d'énoncés telle que An = A et
pour tout i<n, Ai est un axiome ou Ai ∈ {f1, .. , fn} ou Ai découle
des Aj (j<i) par application d'une règle de déduction.
On note {f1, .. , fn} ├ A

Programmation Logique et Prolog 9

Rè g le s d e d é d u ct io n
■ Modus ponens : {(f ⇒ g), f} ├ g

■ Modus tollens : {(f ⇒ g), ¬g} ├ ¬f


■ Syllogisme : {(f ⇒ g), (g ⇒ h)} ├ (f ⇒ h)
■ Généralisation : f├ ∀x f

■ ...

■ Propriété : F et G étant deux formules, {F} ├ G si et seulement si


F ⇒
G est un théorème (├ (F G)) ⇒
Programmation Logique et Prolog 10
Co m p lé t u d e e t co r r e ct io n ( 1 / 2 )
Théorie des Théorie de la
modèles démonstration
Interprétation sémantique Interprétation syntaxique
sur un domaine
Tables de vérité des Axiomes, règles d'inférence
connecteurs et prédicats
Tautologie Théorème
Conséquence ╞ Déduction ├

■ Un système est complet ssi ╞ g implique ├ g (on peut démontrer


toutes les tautologies)

■ un système est correct ssi ├ g implique ╞ g (tous les théorèmes


sont des tautologies)

Programmation Logique et Prolog 11

Co m p lé t u d e e t co r r e ct io n ( 2 / 2 )
■ Théorème : le calcul des prédicats est correct et complet (Gödel,
1929)

■ En particulier pour le système suivant (dit système minimal)

■ axiomes du calcul propositionnel (a,b et c étant des formules)


⇒ ⇒
⇒ ⇒ ⇒ ⇒ ⇒ (a ⇒ c))
● a (b a)

⇒ ⇒ ⇒
● (a (b c)) ((a b)
● (¬ b ¬ a) (a b)
■ axiomes du calcul des prédicats (a,b étant des formules et x une
variable)
⇒ a(t)
∀x a(x)
⇒ ⇒ (a ⇒ ∀x b)

● (a b)

■ régles : modus ponens et généralisation


Programmation Logique et Prolog 12
D é cid a b ilit é

■ Un système est décidable s'il existe un algorithme permettant de


décider à coup sur si une formule est vraie ou fausse

■ Théorème : le calcul des propositions est décidable (méthode


des tables de vérité)

■ Théorème : le calcul des prédicats est indécidable (Church 1936)


● en fait il est semi-décidable : on peut toujours prouver en un temps fini
qu'une formule est vraie (complétude) mais pas qu'une formule est fausse

Programmation Logique et Prolog 13

P r in cip e d e r é so lu t io n
■ Le principe de résolution (Robinson 1965) est une règle de
déduction en logique propositionnelle :
A ∨ B, ¬A ∨ C ├ B ∨ C

■ Le principe de résolution est valide


● il faut montrer (A ∨ B) ∧ (¬ A ∨ C) => B ∨ C
● Si A est vrai, alors C est vrai donc B ∨ C aussi
● Si A est faux, alors B est vrai et donc B ∨ C aussi

■ Pour utiliser le principe de résolution, il faut identifier un littéral et


sa négation dans une formule (A et ¬A) et à fabriquer la formule
résultante ne dépendant plus du littéral

■ Le principe de résolution permet, par réfutation, de démontrer


une formule à partir d'un ensemble de formules, si toutes ces
formules sont sous forme clausales
Programmation Logique et Prolog 14
Ré so lu t io n e t r é f u t a t io n
■ Procédure de résolution par réfutation pour prouver une formule F
sous forme clausale à partir d'un ensemble de formules clausales
{F1,..,Fn}
● on prend la négation de F
● on prouve par résolution que {F1,..,Fn, ¬ F} est inconsistant en calculant les
résultantes jusqu'à obtenir la clause vide

A ├reso B si et seulement si A ∧{¬


¬B} ├reso □

■ Théorème :
● si un ensemble de clauses est insatisfiable, alors il admet une réfutation par
résolution (complétude)
● si un ensemble de clauses admet une réfutation par résolution, il est
insatisfiable (correction)

Programmation Logique et Prolog 15

Ex e m p le d e r é so lu t io n

⇒ ⇒ ⇒r
Formule propositionnelle à démontrer :
{p r, q r} ╞ (p ∨ q)

■ La négation de (p ∨ q) ⇒ r est ¬ (¬ (p ∨ q) ∨ r) ≡ (p ∨ q) ∧ ¬r
■ {¬ p ∨ r, ¬ q ∨ r , p ∨ q, ¬r} est l'ensemble de clauses de départ

■ ¬ p ∨ r et ¬r sont résolues en ¬p
■ ¬ q ∨ r et ¬r sont résolues en ¬q
■ ¬ p et p ∨ q sont résolues en q
■ q et ¬q sont résolues en □

Programmation Logique et Prolog 16


Ré so lu t io n e t cla u se s d e H o r n
■ La résolution par réfutation n'est pas toujours efficace si on ne
choisit pas les bonnes clauses
● en particulier, dans le cas général, il n'est pas plus efficace que les méthodes
sémantiques consistant à construire des interprétations (algorithme de Quine,
de Davis & Putnam)

■ Dans un système de démonstration automatique, il faut pouvoir


choisir les bonnes clauses pour avoir un calcul efficace

■ Solution => utiliser des clauses de Horn

Programmation Logique et Prolog 17

Ré so lu t io n e n ca lcu l d e s
p r é d ica t s
■ On veut résoudre des formules du calcul des prédicats à l'aide
du principe de résolution en calcul propositionnel

■ Pour utiliser la réfutation par résolution en calcul des prédicats, il


faut transformer les formules en clauses
● Première étape : on transforme la formule en formule normale conjonctive
(conjonction de clauses)
● Deuxième étape : on tranforme les formules normales conjonctives en
formules normales prénexes (avec les quantificateurs en tête)
● Troisième étape : on skolémise la formule obtenue pour éliminer les
quantificateurs

Programmation Logique et Prolog 18


F o r m e n o r m a le co n jo n ct iv e
■ Forme normale conjonctive : conjonction de disjonctions

■ Règles de transformation en forme normale conjonctive :


● on transforme les ⇒ par équivalence p ⇒ q ≡ ¬ p ∨ q
● on accole les négations aux atomes en utilisant ¬ ¬ F ≡ F et les lois de
Morgan
● on utilise la distributivité de ∧ et ∨ pour obtenir une conjonction de clauses
● on renomme les variables si nécessaire

■ Théorème : toute formule admet une forme normale conjonctive


équivalente

Programmation Logique et Prolog 19

Form e p ré ne xe
■ Forme prénexe : les quantificateurs sont en tête de formule

■ Règles pour transporter les quantificateurs en tête de formule :


¬ ∀x F ≡ ∃x ¬ F ¬ ∃x F ≡ ∀x ¬ F
∀x ∀y F ≡ ∀y ∀x F ∃x ∃y F ≡ ∃y ∃x F
∀x F ∧ ∀x H ≡ ∀x (F ∧ H) ∃x F ∨ ∃x H ≡ ∃x (F ∨ H)

● Si H ne contient aucune occurence de x :


(∀x F) ∨ H ≡ ∀x (F ∨ H) (∃x F) ∧ H ≡ ∃x (F ∧ H)
∀x F ≡ F ∃x F ≡ F
● Renommer les variables si besoin est

■ Théorème : toute formule admet une forme prénexe équivalente

Programmation Logique et Prolog 20


Ex e m p le


Mise sous forme normale prénexe de la formule
∀x p(x) ∧ ∃y q(y) ∃y (p(y) ∧ q(y))

■ Suppression de ⇒:
● ¬ (∀x p(x) ∧ ∃y q(y)) ∨ ∃y (p(y) ∧ q(y))

■ Renommage des variables :


● ¬ (∀x p(x) ∧ ∃y q(y)) ∨ ∃z (p(z) ∧ q(z))

■ Transfert de la négation :
● (∃x ¬ p(x) ∨ ∀y ¬ q(y)) ∨ ∃z (p(z) ∧ q(z))

■ Déplacement des quantificateurs :


● ∃x ∀y ∃z (¬ p(x) ∨ ¬ q(y) ∨ (p(z) ∧ q(z)))

■ Forme normale :
● ∃x ∀y ∃z ((¬ p(x) ∨ ¬ q(y) ∨ p(z)) ∧ (¬ p(x) ∨ ¬ q(y) ∨ q(z))
Programmation Logique et Prolog 21

F o r m e d e S k o le m
■ On élimine les quantificateurs existentiels :
● remplacer toute variable quantifiée existentiellement par une fonction ayant
pour arguments les variables quantifiées universellement précédant la
première variable
● cette fonction est celle qui prend sur le domaine d'interprétation la valeur
qui rend la formule vraie

■ Théorème : si F est une formule, il existe F' forme de Skolem de


F et ╞ F ssi ╞ F' (ce n'est pas une équivalence logique!)

■ Une fois les quantificateurs existentiels supprimés, toutes les


variables restantes sont quantifiées universellement (dans une
formule close), on peut donc supprimer les quantificateurs
universels

Programmation Logique et Prolog 22


Ex e m p le
■ Skolémisons la formule normale prénexe
∃x ∀y ∃z ((¬ p(x) ∨ ¬ q(y) ∨ p(z)) ∧ (¬ p(x) ∨ ¬ q(y) ∨ q(z))

■ La variable z est tranformée en f(y)


● ∃x ∀y ((¬ p(x) ∨ ¬ q(y) ∨ p(f(y))) ∧ (¬ p(x) ∨ ¬ q(y) ∨ q(f(y)))

■ La variable x est transformée en g (fonction d'arité nulle ou


constante)
● ∀y ((¬ p(g) ∨ ¬ q(y) ∨ p(f(y))) ∧ (¬ p(g) ∨ ¬ q(y) ∨ q(f(y)))

■ Démontrer une formule c'est prouver que sa négation est


inconsistante ou que la forme de Skolem de sa négation est
inconsistante

■ On peut donc se limiter à travailler sur des formes de Skolem


Programmation Logique et Prolog 23

Th é orè m e d e H e rb ra n d ( 1 /4 )
■ Pour appliquer le principe de résolution à des formes de
Skolem, il faut donner des valeurs aux variables universelles
■ Impossible en pratique de résoudre une formule pour toutes les
valeurs possibles des variables sur un domaine

■ Intérêt du théorème de Herbrand : Quand on a une formule sous


forme de Skolem, on peut se limiter pour étudier sa satisfiabilité
à son univers de Herbrand

■ Termes de base et atomes de base d'un ensemble de clauses E


● un terme de base est un terme qui ne contient pas de variable
● un atome de base est un atome qui ne contient pas de variable

Programmation Logique et Prolog 24


Th é orè m e d e H e rb ra n d ( 2 /4 )
■ Univers de Herbrand d'un ensemble de clauses E : l'univers de
Herbrand de E est l'ensemble des termes de base que l'on peut
construire à partir des symboles de fonctions et des constantes
qui apparaissent dans E



Exemple : l'univers de Herbrand de l'ensemble
{p(f(x)) q(a),r(g(x))} est {a,f(a),g(a), f(f(a)), f(g(a)), g(f(a)), ...}

■ Base de Herbrand d'un ensemble de clauses E : la base de


Herbrand de E est l'ensemble des atomes de base qui peuvent
être construits à partir des symboles de prédicats de E appliqués
aux termes de l'univers de Herbrand de E



Exemple : la base de Herbrand de l'ensemble
{p(f(x)) q(a),r(g(x))} est
{p(a),q(a),r(a),p(f(a)),q(f(a)),r(f(a)),p(g(a)),q(g(a)),r(g(a)),...}
Programmation Logique et Prolog 25

Th é orè m e d e H e rb ra n d ( 3 /4 )
■ Interprétation de Herbrand : l'ensemble de définition est l'univers
de Herbrand. Une interprétation de Herbrand d'un ensemble E
de clauses est obtenue en remplaçant les variables de E par des
éléments de l'univers de Herbrand de E

■ Une interprétation de Herbrand est une interprétation mais pas le


contraire.

⇒ ⇒
Exemple : une interprétation de Herbrand de l'ensemble
{p(f(x)) q(a),r(g(x))} est {p(f(a)) q(a),r(g(f(a)))}

■ Modèle de Herbrand d'un ensemble de clauses E : c'est une


interprétation de Herbrand de E qui est un modèle de E

Programmation Logique et Prolog 26


Th é orè m e d e H e rb ra n d ( 4 /4 )
■ Théorème de Herbrand (Herbrand 1929) : un ensemble de
clauses E est insatisfiable si et seulement si il existe un
ensemble fini d'interprétations de Herbrand de E qui soit
insatisfiable

■ Conséquence : montrer une formule sous forme clausale revient


à trouver une interprétation de Herbrand qui soit insatisfiable

■ Pour montrer qu'une formule F est valide :


● on construit F', la forme normale de Skolem de sa négation
● on trouve une interprétation de Herbrand
● on montre par résolution que cette interprétation est insatisfiable
● => F' est donc insatisfiable et donc F est valide

■ Le principe de résolution doit être étendu au calcul des prédicats


à travers le mécanisme d'unification
Programmation Logique et Prolog 27

S u b st it u t io n
■ Exemple : soient les clauses C1 = p(x) ∨ q(x) et C2 = ¬ p(f(y)) ∨
r(y)
● on ne peut appliquer la résolution, car aucun littéral de C1 n'est la négation
d'un littéral de C2 ou l'inverse
● on voudrait pouvoir substituer f(y) à x dans C1, ce qui donnerait par
résolution q(x) ∨ r(y)

■ Une substitution consiste à remplacer un nombre fini de variables


par des termes. On note {t1/v1, .. , tn/vn} la substitution qui
remplace toute variable vi par le terme ti.

■ L'application d'une substitution S à un ensemble de clauses E est


appelé instance de E selon S

Programmation Logique et Prolog 28


U n if ica t e u r
■ Composition de substitution : la composition de deux
substitutions s1 et s2, notée s1o s2, est obtenue en 3 étapes
● appliquer s2 aux termes de s1
● retirer de s2 les couples ti/vi tels que vi est une variable de s1
● rassembler les couples obtenues en 1 et 2

■ Exemple : s1 = {f(y)/x , z/y} et s2 = {a/x , b/y , y/z}


● la première étape donne {f(b)/x , y/y}
● la deuxième donne {y/z}
● la troisième étape donne {f(b)/x , y/z} (on supprime y/y qui ne change rien)

■ Unificateur : une substitution S unifie un ensemble de clauses


E = {c1, .. , cn} si S(c1) = .. = S(c2)

■ Exemple : {f(a)/x , a/y} unifie {p(a,x), p(a,f(y))}


Programmation Logique et Prolog 29

U n if ica t e u r le p lu s g é n é r a l
■ Unificateur le plus général : l'unificateur le plus général d'un
ensemble de clauses E est un unificateur U de E tel que pour
tout autre unificateur V de E, il existe une substitution S telle que
V=SoU

■ Cet unificateur le plus général n'existe pas forcément (pas plus


qu'un unificateur) et s'il existe, il n'est pas forcément unique

■ Trouver un unificateur le plus général permet d'appliquer le


principe de résolution à des clauses issues de formules du
premier ordre

Programmation Logique et Prolog 30


Alg o r it h m e d 'u n if ica t io n
■ Algorithme d'unification
● Données : deux expressions E1 et E2

● si E1 ou E2 est un atome alors échanger les données de façon à ce que


E1 soit un atome et passer à 2
sinon passer à 3
● si E1 et E2 sont identiques alors retourner Ø
sinon si E1 est une variable
si E1 a une occurence dans E2 alors retourner échec
sinon retourner {E2/E1}
sinon si E2 est une variable alors retourner {E1/E2}
sinon retourner échec
● F1 := le premier élément de E1, T1 := le reste de E1 F2
:= le premier élément de E2, T2 := le reste de E2
● U1 := unification(F1,F2)
● si U1 = échec alors retourner échec
sinon G1 := U1(T1), G2 := U1(T2)
● U2 := unification(G1,G2)
● si
Programmation U2 =etéchec
Logique Prolog alors retourner échec sinon retourner U1oU2 31

R é ca p it u la t if
■ Pour démontrer qu'une formule F du calcul des prédicats peut
être déduite d'un ensemble E de clauses
● on procède par réfutation en créant G = ¬ F
● la skolémisation de G permet de ramener le problème de l'inconsistance de
G U E à celui de l'inconsistance d'un ensemble de clauses {C1,..,Cn} U E
● le théorème de Herbrand permet de ramener la démonstration de
l'inconsistance de {C1,..,Cn} U E à la découverte d'une instanciation des
variables dans l'univers de Herbrand qui rende l'ensemble de clauses
insatisfiable
● le principe de résolution permet de montrer l'insatisfiabilité de l'instance
construite

■ En Prolog, on n'a que des clauses de Horn


● La skolémisation est inutile mais elle garantit que ce qu'on écrit en Prolog est
quasiment aussi expressif que la logique des prédicats
● Le mécanisme de Prolog consiste à construire une instanciation de la clause
but et de clauses de la base de connaissance tout au long d'une procédure
de résolution par réfutation
Programmation Logique et Prolog 32

Vous aimerez peut-être aussi