m b ) > dans la continuation de programme
2) Se dit d’un litt´eral (10 constitu´e d’une formule atomique (90) ni´ee.
Normalisation forte. n.f. Propri´et´e d’un syst`eme de r´e´ecriture selon laquelle toute d´erivation
converge vers une forme normale.
Le
-calcul(74)n’a pas cette propri´et´e. En effet, des-termes n’ont pas de forme nor-male : par exemple
(107), car
.
et c’est la seule r´eduction possible. D’autres enont une, mais sont aussi le point de d´epart de d´erivations qui ne convergent pas : par exemple (K (98) I (95) ), car(KI)
.
Ien-r´eduisant (125)le r´edex (KI)en premier, mais (KI).
(KI). :::
en-r´eduisant le r´edex de`a chaque fois.En revanche, le
-calcul simplement typ´e(74)et tous ceux ducube de Barendregt(68)sonttype ouvrir l terme –
>
(list string) –>
l terme –>
o .ouvrir (libre X Ferm´e) [X
|
Xs] Ouvert:– ! , ouvrir (Ferm´e (var X)) Xs Ouvert .ouvrir Ouvert [] Ouvert .
O
Substitution dans un
-terme objet de constructeurs de variable libre, var, aux oc-currences des variables libres d´esign´ees comme telles par un((quantificateur))de
variable libre, libre. C´est l´op´eration inverse dequant(123), mais elle peut ˆetre pro-
gramm´ee beaucoup plus simplement en utilisant la
-r´eduction du m´etalangage. Ce-pendant, la programmation de ouvrir est mono-directionnelle (mode (ouvrir + ? ?)), alors que celle de quant est bi-directionnelle (modes (quant + + ?) et (quant ? ? +)). o. Type des valeurs de v´erit´e. Dans les ´ecrits logiques classiques (par exemple,
Church [Church 40]), le type o s’oppose au type i qui distingue les individus, les termes. En
Prolog, le type i est remplac´e par des types d´efinis dans des biblioth`eques ou par l’utilisateur. Ils fournissent une classification plus fine des individus..=(
x
(x x
)x
(x x
)).Ce
-terme(132)contient un seul-r´edex(125)(lui-mˆeme) et se-r´eduit(125)en lui mˆeme. Ilest l’arch´etype des
-termes sans forme normale.Ordre sup´erieur. n.m. (ant.premier ordre(109)) D´esigne une structure hi´erarchique o`u on peut
avoir `a certains niveaux des quantifications qui ont pour domaine des objets de niveau sup´erieur ou ´egal. Par exemple, une logique d’ordre sup´erieur pourra soit avoir des quan- tifications dans les termes (
-abstraction(67)), soit avoir des formules quantifi´ees sur lesformules, soit avoir les deux. Un langage de programmation fonctionnel d’ordre sup´erieur pourra avoir des fonctions de fonctions.
On voit que l’extension `a l’ordre sup´erieur d’une logique de premier ordre peut prendre plusieurs voies.
Prolog met en œuvre la troisi`eme :-abstraction dans les termes et quan- tification sur les formules (voir par exemple les butsfaux(141)etvrai(141)).type plus ((A–
>
A)–>
A–>
A) –>
((A–>
A)–>
A–>
A) –>
((A–>
A)–>
A–>
A) –>
o .plus X Y snzn(X s (Y s z)) .
P
Addition des entiers de Church.Partage de repr´esentation. n.m. D´esigne le fait de reconnaˆıtre que des objets d’origines dis-
tinctes sont ´equivalents, et de les faire partager une repr´esentation commune. C’est un compl´ement indispensable du ramasse-miette pour obtenir une gestion de m´emoire ef- ficace. En
Prolog, le partage est crucial pour la-r´eduction(125) et pourl´unification(138)[Brisset et Ridoux 92b, Brisset et Ridoux 92a]. La
-r´eduction doit conserver les partages des termes dupliqu´es et l’unification doit mettre en œuvre les partages qu’elle cause.Lar´eduction de graphe(125)permet naturellement de partager les repr´esentation et on
peut encore am´eliorer cet aspect en prenant en consid´eration la nature des termes qui forment un
-r´edex :combinateurs(78)ou-r´edex(125).La logique de l’unification est de trouver une substitution qui rend deux termes ´egaux. Celle de la recherche de la preuve est d’appliquer ces substitutions au fur et `a mesure o`u elles sont calcul´ees. Cela a pour effet de rendre de plus en plus de termes ´egaux. Cela n’est pas un argument de terminaison car il se cr´ee aussi toujours de nouveaux termes. Si deux termes sont ´egaux, ils peuvent alors partager la mˆeme repr´esentation. Ce n’est pas fait
dans les mises en œuvre standard de Prolog car cela complique un peu la repr´esentation, mais cela est naturel en Prolog/MALI car la repr´esentation des
-termes(132)contient na-turellement les m´ecanismes n´ecessaires. L’effet est de substituer, r´eversiblement car toute unification peut ˆetre annul´ee au retour-arri`ere, un des termes `a l’autre. Cela ´economise de futures unifications car l’identit´e est plus facile `a tester que l’unifiabilit´e. Cela ´economise aussi de la m´emoire, et donc le temps de la r´ecup´erer.
Les termes d’un probl`eme d’unification doivent ˆetre en forme de tˆete expans´ee pour pouvoir ˆetre compar´es. Apr`es l’application des substitutions produites par imitation(96)
ou projection(111), le terme qui ´etait flexible, et peut ne plus l’ˆetre, n’est plus en forme
de tˆete expans´ee. Cependant, sa nouvelle forme normale de tˆete
-longue peut ˆetre d´e- duite ais´ement du terme original et de la substitution sans avoir recours `a la proc´edure de -r´eduction(125). Ce faisant, imitation et projections inventent une substitution, l’appliquentau terme flexible, calculent sa nouvelle forme normale de tˆete
-longue et la substituent au terme original.Par exemple, le probl`eme d’unification
< t
1;t
2>
, o`ut
1=x
(t
3),t
3=(U
(x S
1)),et
t
2=x
(x S
2), produit trois substitutions apr`es une application de la proc´edureMATCH(103):
1. [
U
y
(y
)](projection),2. [
t
3 (x S
1)](forme normale de tˆete-longue det
1),3. [
t
1t
2](partage de repr´esentation).On voit donc qu’en plus plus des substitutions solutions, beaucoup d’autres sont effectu´ees pour ´economiser du temps d’unification et de
-r´eduction, et de la m´emoire.Pertinent. adj. (rel.unificateur(139)etsubstitution(131)) (en anglais, relevant) Se dit d’un uni-
ficateur dont le domaine et le codomaine ne contiennent que des variables des termes unifi´es. Par exemple, ´etant donn´es deux termes (
f X
(s Y
)) et (f A B
), l’unificateur =[X
A;Y
(s Z
);B
(s
(s Z
))]n’est pas pertinent (`a cause de la variableZ
),mais l’unificateur
0=[
A
X;B
(s Y
)]l’est.Au premier ordre, et si un unificateur existe, on peut toujours le choisir pertinent, mais `a l’ordre sup´erieur ce n’est pas toujours possible (!imitation
(96)etprojection(111)).
pi. synt.progr. Notation concr`ete du quantificateur universel,8, en
Prolog. C’est une r´eminis-cence de la notation introduite par Charles S. Peirce vers 1880 [Peirce 60]. Peirce voyait dans la quantification universelle une conjonction g´en´eralis´ee (´el´ement neutre : vrai ou 1) et donc un produit,.
Similairement, la notation concr`ete du quantificateur existentiel,9, est sigma puisqu’on
peut y voir une disjonction g´en´eralis´ee (´el´ement neutre : faux ou 0) et donc une somme,.
L’usage de et est aussi attest´e dans des ´ecrits plus modernes (par
exemple [Church 40, Horn 51]).
Pile de recherche. n.f. (syn.continuation d´´echec(81)) Structure de donn´ees associ´ee au parcours
d’un arbre de recherche en profondeur d’abord et avec retour arri`ere chronologique. On y range la description des choix faits lors du parcours : situation lors du choix et clause choisie. Plus pr´ecis´ement, on ne note pas explicitement la situation lors du choix, mais un moyen d’y revenir `a partir de la situation o`u on d´ecide un retour arri`ere.
DansProlog/MALI(123), la pile de recherche est compl`etement r´ealis´ee par MALI(103).
Il faut noter que dans cette r´ealisation, elle n’a de pile que la logique d’empilement et d´epilement.
Polarit´e. n.f. Le connecteur d’implication introduit une notion de polarit´e. Si on donne un
signe, + ou -, `a une formule dont le connecteur principal est l’implication, la sous-formule de droite (la conclusion) aura le mˆeme signe, alors que la sous-formule de gauche (l’hypo- th`ese) aura le signe oppos´e. La n´egation inverse aussi la polarit´e, mais elle est absente des travaux pr´esent´es ici. Les autres connecteurs et quantificateurs conservent la polarit´e.
On peut coder en
-calcul simplement typ´e(74)les polarit´es et l’op´erateur d’inversion depolarit´e.
PLUS = vnfnv
MOINS = vnfnf
INV = pnvnfn(p f v)
La fl`eche des types introduit la mˆeme notion de polarit´e. Cela constitue un des aspects de lacorrespondance de Curry-Howard(83). La polarit´e dans les types est `a la base de la
notion detype inductif(136).
Port´ees de symboles et d´objets. n.f. Le mot ((port´ee))r´esume les nouvelles capacit´es de
Prolog. L’abstraction d´elimite la port´ee des variables dans les termes. Les quantifications d´elimitent la port´ee des variables dans les formules. Enfin, les r`egles de d´eduction pour la quantification universelle et l’implication dans les buts d´elimitent respectivement la port´ee des constantes et des clauses dans les preuves.Positif. adj. (ant.n´egatif(106))
1) (!polarit´e
(109))