Quantificateur.
n.m.
Le calcul des prédicats utilise les quantificateurs universel
(
)
et existentiel
(
).
Ce sont eux qui donnent une structure logique au domaine de discours.
La quantification universelle peut être vue comme un «et»
(
)
généralisé qui porte sur tout le domaine de discours,
tandis que la quantification existentielle serait un «ou»
(
)
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
et négatives* de
sont dites essentiellement universelles*,
alors que les occurrences négatives de
et positives de
sont dites essentiellement existentielles*.
Les seules occurrences possibles de 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
en Prolog sont positives.
Prolog ne permet donc que des quantifications essentiellement existentielles.
En Prolog,
peut avoir des occurrences positives et négatives,
et
peut être noté en occurrence positive
et en certaines occurrences négatives
(
types abstraits*).
Prolog 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
Prolog,
ces quantifications sont la quantification universelle au niveau des clauses
(
)
et la quantification existentielle au niveau des buts (
).
À 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
Prolog,
ces quantifications sont les quantifications universelles au niveau des buts
(
).
Dans le contexte du problème
d´unification d´ordre supérieur*,
on peut aussi considérer les
-variables comme étant essentiellement
universellement quantifiées par des
-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 -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 :
,
où
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
-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
Prolog
[Miller 92].
L'intuition de cette notion est la suivante :
une abstraction
dénote une fonction qui
à tout
fait correspondre
.
Convertir l'une en l'autre est un trait important de la programmation en
Prolog.
On peut considérer que la -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
-abstraction dans la logique des programmes.
Elle est la structure de contrôle associée à la
-abstraction.
Certaines quantifications universelles au niveau des buts ()
sont équivalentes à des quantifications existentielles au niveau des
clauses (
).
C'est l'idée de base d'une représentation des
types abstraits* en
Prolog.
Question.
n.f.
(rel. but*)
(syn. requète*)
{