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

Q

type quant (list string) -> l_terme -> l_terme -> o .
dynamic quant.
quant [X|Xs] Ouvert (libre X Fermé) :- pi xtex2html_wrap_inline56812( quant [] (var X) x => quant Xs Ouvert (Fermé x) ) .
quant [] (app A B) (app C D) :- quant [] A C , quant [] B D .
quant [] (abs E) (abs F) :- pi xtex2html_wrap_inline56812( quant [] x x => quant [] (Ouvert x) (Fermé x) ) .


Explicitation des quantifications des variables libres d´un tex2html_wrap_inline56836-terme objet. Le type l_terme est supposé augmenté d´un constructeur de variable libre, var de type string->l_terme, et d´un «quantificateur» de variable libre, libre de type string->(l_terme->l_terme)->l_terme (tex2html_wrap_inline55796 ouvrir*).

Quantificateur. n.m. Le calcul des prédicats utilise les quantificateurs universel (tex2html_wrap_inline55356) et existentiel (tex2html_wrap_inline54298). Ce sont eux qui donnent une structure logique au domaine de discours. La quantification universelle peut être vue comme un «et» (tex2html_wrap_inline51356) généralisé qui porte sur tout le domaine de discours, tandis que la quantification existentielle serait un «ou» (tex2html_wrap_inline54296) généralisé.

Du point de vue de la démonstration, il est fondamental de considérer les quantificateurs avec les polarités* de leurs occurrences. Les occurrences positives* de tex2html_wrap_inline55356 et négatives* de tex2html_wrap_inline54298 sont dites essentiellement universelles*, alors que les occurrences négatives de tex2html_wrap_inline55356 et positives de tex2html_wrap_inline54298 sont dites essentiellement existentielles*.

Les seules occurrences possibles de tex2html_wrap_inline55356 en Prolog sont négatives, et donc essentiellement existentielles. Par ailleurs, même si il n'y a pas toujours de syntaxe pour les noter, les seules occurrences possibles de tex2html_wrap_inline54298 en Prolog sont positives. Prolog ne permet donc que des quantifications essentiellement existentielles.

En tex2html_wrap_inline56836Prolog, tex2html_wrap_inline55356 peut avoir des occurrences positives et négatives, et tex2html_wrap_inline54298 peut être noté en occurrence positive et en certaines occurrences négatives (tex2html_wrap_inline55796 types abstraits*). tex2html_wrap_inline56836Prolog permet donc d'utiliser les deux polarités de la quantification.

Quantification essentiellement existentielle. n.f. Quantification qui s'élimine en substituant à la variable quantifiée un terme arbitraire. En tex2html_wrap_inline56836Prolog, ces quantifications sont la quantification universelle au niveau des clauses (tex2html_wrap_inline55712) et la quantification existentielle au niveau des buts (tex2html_wrap_inline55790). À ces deux quantifications correspondent des règles de déduction* similaires. La démonstration d'une formule quantifiée essentiellement existentiellement réussit si et seulement si il existe un terme tel qu'en le substituant à la variable quantifiée on obtient une formule prouvable.

Quantification essentiellement universelle. n.f. Quantification qui s'élimine en substituant à la variable quantifiée une constante qui n'a d'occurrences ni dans la formule ni dans le programme. En tex2html_wrap_inline56836Prolog, ces quantifications sont les quantifications universelles au niveau des buts (tex2html_wrap_inline55790). Dans le contexte du problème d´unification d´ordre supérieur*, on peut aussi considérer les tex2html_wrap_inline56836-variables comme étant essentiellement universellement quantifiées par des tex2html_wrap_inline56836-abstractions*. En effet, à ces deux quantifications correspondent des règles de déduction* similaires, mais seulement si le principe d'extensionnalité des fonctions est admis.

On ajoute à ces deux quantifications la quantification universelle implicite de toutes les constantes de la signature*. Mais, alors que les constantes de la signature sont considérées universellement quantifiées avec la portée maximale (c'est-à-dire à l'extérieur de toute autre quantification), les tex2html_wrap_inline56836-variables le sont avec la portée minimale (c'est-à-dire à l'intérieur de toute autre quantification). Un problème d'unification peut donc être schématisé comme suit : tex2html_wrap_inline55926, où tex2html_wrap_inline55928 représente les quantifications universelles qui encodent la signature, celles-ci sont suivies d'une combinaison quelconque de quantifications existentielles et universelles, et le tout se termine par des quantifications universelles qui encodent des tex2html_wrap_inline56836-abstractions.

La notion de quantification essentiellement universelle vient de l'observation par Miller que quantification universelle et abstraction jouent le même rôle dans l'unification de tex2html_wrap_inline56836Prolog [Miller 92]. L'intuition de cette notion est la suivante : une abstraction tex2html_wrap_inline53970 dénote une fonction qui à tout tex2html_wrap_inline53952 fait correspondre tex2html_wrap_inline51794. Convertir l'une en l'autre est un trait important de la programmation en tex2html_wrap_inline56836Prolog.

  tex2html_wrap55954

On peut considérer que la tex2html_wrap_inline56836-abstraction est la forme réifiée* de la quantification universelle, celle qui permet son stockage dans une structure de données. Inversement, la quantification universelle est la réflexion* de la tex2html_wrap_inline56836-abstraction dans la logique des programmes. Elle est la structure de contrôle associée à la tex2html_wrap_inline56836-abstraction.

Certaines quantifications universelles au niveau des buts (tex2html_wrap_inline55790) sont équivalentes à des quantifications existentielles au niveau des clauses (tex2html_wrap_inline55950). C'est l'idée de base d'une représentation des types abstraits* en tex2html_wrap_inline56836Prolog.

Question. n.f. (rel. but*) (syn. requète*)

{


next up previous contents
Next: R Up: A-Z Previous: P

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