Best viewed in 24pt and full-screen
next up previous contents
Next: F Up: A-Z Previous: D

E

type eta_exp l_terme -> type_simple -> l_terme -> o .
eta_exp E (base Type) E .
eta_exp E (flèche Type1 Type2) (abs F) :- pi xtex2html_wrap_inline56812( eta_exp (app E x) Type2 (F x) ) .


tex2html_wrap_inline53994-Expansion de termes du niveau objet.

Élimination des coupures. n.f. (tex2html_wrap_inline55796 calcul des séquents*, Gentzen* et Hauptsatz*)

Élimination des quantificateurs. n.f. Technique qui permet de ramener des preuves dans le calcul des prédicats à des preuves dans le calcul propositionnel. Le théorème de Herbrand*, le principe de résolution* de Robinson, et les règles d'introduction du calcul des séquents* (quand elles sont interprétées «de bas en haut») décrivent des techniques d'élimination des quantificateurs. Le théorème de Herbrand permet de se ramener à chercher une formule prouvable parmi une suite de formules sans quantificateur ni variable. Le principe de résolution permet de se ramener à l'application d'un modus ponens généralisé. Les règles du calcul des séquents permettent de se ramener à des formules sans quantificateur.

tex2html_wrap_inline53920. [Elliott et Pfenning 91] Le système tex2html_wrap_inline53920 est la première implémentation complète de tex2html_wrap_inline56836Prolog. C'est un interpréteur écrit en Common Lisp par Frank Pfenning de l'université de Carnegie Mellon et Amy Felty du laboratoire Bell Labs de tex2html_wrap_inline53924 (tex2html_wrap_inline53924 à l'époque de ce développement -- 1991 --, Lucent Technologies maintenant).

tex2html_wrap_inline53968-Équivalence. n.f. tex2html_wrap_inline53928, si tex2html_wrap_inline53930.

Cette équivalence formalise le renommage des variables. Par exemple, tex2html_wrap_inline53932 mais tex2html_wrap_inline53934 car tex2html_wrap_inline53936.

La tex2html_wrap_inline53968-équivalence est automatiquement prise en compte par la représentation des tex2html_wrap_inline56836-termes de niveau objet proposée. Il n'y a donc pas d'expression explicite de la tex2html_wrap_inline53968-équivalence.

tex2html_wrap_inline53988-Équivalence. n.f. tex2html_wrap_inline53946, si tex2html_wrap_inline53948.

Cette équivalence formalise l'évaluation d'une application par substitution d'un terme, tex2html_wrap_inline53950, à un paramètre formel, tex2html_wrap_inline53952. Par exemple, tex2html_wrap_inline53954 mais tex2html_wrap_inline53956 car tex2html_wrap_inline53958 est libre dans elle-même et liée dans tex2html_wrap_inline53960.

Cependant, tex2html_wrap_inline53962. Il est possible de satisfaire la précondition de la tex2html_wrap_inline53988-équivalence pour tout terme de la forme tex2html_wrap_inline53966 en utilisant la tex2html_wrap_inline53968-équivalence pour renommer les variables liées de tex2html_wrap_inline53970.

On peut représenter cette relation en tex2html_wrap_inline56836Prolog pour des tex2html_wrap_inline56836-termes de niveau objet de la façon suivante :

type beta l_terme -> l_terme -> o .

beta (app (abs E) F) (E F) .

En fait, on a utilisé la tex2html_wrap_inline53988-équivalence du métalangage, tex2html_wrap_inline56836Prolog.

tex2html_wrap_inline53980-Équivalence. n.f. tex2html_wrap_inline53982, si tex2html_wrap_inline53984.

Cette équivalence est une forme faible de la tex2html_wrap_inline53988-équivalence qui s'applique seulement lorsque le membre gauche du tex2html_wrap_inline53988-rédex est lui-même un tex2html_wrap_inline53994-rédex. C'est une circonstance très fréquente en tex2html_wrap_inline56836Prolog et qui permet de représenter les termes sous leur forme tex2html_wrap_inline53994-longue* sans encourir de surcoût. En effet, l'implémentation de cette équivalence ne nécessite ni renommage ni recopie.

On peut représenter cette relation en tex2html_wrap_inline56836Prolog pour des tex2html_wrap_inline56836-termes de niveau objet de la façon suivante :

type beta_eta l_terme -> _terme -> o .

beta_eta (app (abs (app E)) F) (app E F) .

tex2html_wrap_inline54022-Équivalence. n.f. tex2html_wrap_inline54002, si tex2html_wrap_inline54004.

Cette équivalence est une forme faible de la tex2html_wrap_inline53988-équivalence qui s'applique seulement lorsque le paramètre effectif est une variable qui n'apparaît pas libre dans la fonction. Si tex2html_wrap_inline53958 est une variable, la tex2html_wrap_inline53968-conversion de tex2html_wrap_inline53970 en tex2html_wrap_inline54014 rend la condition vraie (car tex2html_wrap_inline54016) et trivialise le calcul de tex2html_wrap_inline53174. La tex2html_wrap_inline54020-réduction revient donc à un renommage de variable.

La tex2html_wrap_inline54022-équivalence est à la base de la définition d'un fragment de tex2html_wrap_inline56836Prolog, appelé tex2html_wrap_inline54696* pour lequel l´unification* est décidable* et unitaire*.

tex2html_wrap_inline53994-Équivalence. n.f. tex2html_wrap_inline54030, si tex2html_wrap_inline53984.

Cette équivalence formalise le principe d´extensionnalité des fonctions* : deux fonctions qui rendent partout le même résultat sont les mêmes. Il permet de montrer tex2html_wrap_inline54034. Par exemple, tex2html_wrap_inline54036 mais tex2html_wrap_inline54038 car tex2html_wrap_inline54040. Contrairement à ce qui se passe pour la tex2html_wrap_inline53988-équivalence*, la tex2html_wrap_inline53968-équivalence* ne peut jamais rien pour satisfaire la précondition de la tex2html_wrap_inline53994-équivalence*.

On peut représenter cette relation en tex2html_wrap_inline56836Prolog pour des tex2html_wrap_inline56836-termes de niveau objet de la façon suivante :

type eta l_terme -> l_terme -> o .

eta (abs (app E)) E .

tex2html_wrap_inline56836-Équivalence. n.f. Plus petite relation d'équivalence définie par congruence sur la syntaxe des tex2html_wrap_inline56836-termes* et contenant la tex2html_wrap_inline53968-équivalence*, la tex2html_wrap_inline53988-équivalence*, et optionnellement la tex2html_wrap_inline53994-équivalence*. Les équivalences tex2html_wrap_inline53968 et tex2html_wrap_inline53988 sont toujours adoptées dans le tex2html_wrap_inline56836-calcul, mais l'équivalence tex2html_wrap_inline53994 est optionnelle. Ce qui ne signifie pas qu'elle est sans effet. Seulement, elle n'intervient pas dans la puissance de calcul du tex2html_wrap_inline56836-calcul.

tex2html_wrap_inline53994-Expansion. n.f. Action de réécrire un terme tex2html_wrap_inline51794 en tex2html_wrap_inline56010, où tex2html_wrap_inline51794 a un type de la forme tex2html_wrap_inline56610 et où tex2html_wrap_inline53952 n'a pas d'occurrence libre dans tex2html_wrap_inline51794. Combinée avec la tex2html_wrap_inline53988-réduction*, cette opération produit la forme normale tex2html_wrap_inline53994-longue*.

Extensionnel. adj. (ant. intentionnel*) Se dit d'un procédé point par point pour définir des ensembles ou des fonctions, ou pour prouver des propositions. La définition d'un ensemble par ses éléments est extensionnelle, ainsi que la définition d'une fonction par son graphe. Une démonstration extensionnelle d'une quantification universelle peut procéder par cas.

Extensionnalité fonctionnelle. n.f. Voir aussi extensionnalité en tex2html_wrap_inline56836Prolog*. Principe selon lequel deux fonctions qui rendent partout les mêmes résultats sont égales :

displaymath53908

Cette propriété n'est pas démontrable à l'aide des seules équivalences tex2html_wrap_inline53968* et tex2html_wrap_inline53988*. Il faut ajouter la tex2html_wrap_inline53994-équivalence* pour satisfaire ce principe.

Un point important à noter est que la tex2html_wrap_inline53994-équivalence ne satisfait complètement le principe d'extensionnalité que pour le tex2html_wrap_inline56836-calcul* pur (c'est-à-dire non-typé). Dans le cas du tex2html_wrap_inline56836-calcul simplement typé*, des fonctions décrites par des tex2html_wrap_inline56836-termes qui ne sont pas tex2html_wrap_inline56836-équivalents* peuvent être extensionnellement égales sur les termes de leur type argument. Cela est déjà vrai en dehors de tout typage lorsque l'on considère pour arguments des ensembles particuliers de tex2html_wrap_inline56836-termes. Par exemple, l'incrémentation des entiers de Church* peut être réalisée par deux tex2html_wrap_inline56836-termes qui ne sont pas tex2html_wrap_inline56836-équivalents, mais qui pourtant donnent les mêmes résultats sur tous les entiers de Church.

displaymath53909

Prouver l'équivalence de ces deux tex2html_wrap_inline56836-termes pour un domaine de termes donné nécessite un principe de déduction plus fort : l'induction sur la structure des termes.


next up previous contents
Next: F Up: A-Z Previous: D

Olivier Ridoux
Mon Apr 27 11:10:23 MET DST 1998