Best viewed in 24pt and full-screen
next up previous contents
Next: I-J-K Up: A-Z Previous: G

H

type horn formule -> (A->A->A) o .
horn (A /tex2html_wrap_inline56812 B) Pol :- horn A Pol , horn B Pol .
horn (qqsoit F) MOINS :- pi xtex2html_wrap_inline56812( horn (F x) MOINS ) .
horn (A => B) MOINS :- horn A PLUS , horn B MOINS .
horn (A tex2html_wrap_inline56812/ B) PLUS :- horn A PLUS , horn B PLUS .
horn (existe F) PLUS :- pi xtex2html_wrap_inline56812( horn (F x) PLUS ) .


Spécification des formules de Horn en termes de polarités*.

Harrop, Ronald (1926) [Harrop 56, Harrop 60]. Après avoir montré que des énoncés de la forme tex2html_wrap_inline54280 (ou tex2html_wrap_inline54282) ne sont démontrables que si soit tex2html_wrap_inline56448 soit tex2html_wrap_inline56450 l'est (ou tex2html_wrap_inline54288 l'est pour un terme tex2html_wrap_inline55774), Harrop a recherché des résultats similaires pour des énoncés de la forme tex2html_wrap_inline54292 (ou tex2html_wrap_inline54294). La question est donc de savoir si on peut se contenter de preuves constructives* pour démontrer ces énoncés. Harrop a montré que pour que la démontrabilité de ces formules puisse se réduire à la démontrabilité constructive, il fallait que les occurrences de tex2html_wrap_inline54296 et tex2html_wrap_inline54298 dans la formule tex2html_wrap_inline54300 soient contraintes. Cette contrainte aboutit à la notion de formule de Harrop, et à celle de formule héréditaire de Harrop* si on veut que toutes les étapes de la démonstration de tex2html_wrap_inline56448 ou tex2html_wrap_inline56450 (ou tex2html_wrap_inline54288) soit constructives.

C'est cette propriété de constructivité qui permet de conserver en tex2html_wrap_inline56836Prolog la notion de réponse qui existe en Prolog (voir la section «Prolog -- clauses de Horn et programmation logique»*).

Ronald Harrop est actuellement (1998) professeur émérite à l'université Simon Fraser de Vancouver, où il étudie les applications médicales de l'informatique (radiothérapie, tomographie).

Harrop (formules héréditaires de). n.f. Formule engendrée par le non-terminal tex2html_wrap_inline55272 de la grammaire suivante :

displaymath54268

Les non-terminaux tex2html_wrap_inline55368, tex2html_wrap_inline55272 et tex2html_wrap_inline54316 engendrent respectivement les clauses, les buts et les formules atomiques* (ou atomes). Par convention, ces dernières sont des tex2html_wrap_inline56836-termes simplement typés* de type o* (tex2html_wrap_inline54320).

Les catégories tex2html_wrap_inline55272 et tex2html_wrap_inline55368 sont souvent notées tex2html_wrap_inline54334 et tex2html_wrap_inline54336 pour goal (but*) et definite clause (clause définie*). Malheureusement, ce tex2html_wrap_inline54334 et ce tex2html_wrap_inline54336 deviennent perturbants quand on considère l'habitude, venant de la théorie des preuves en calcul des séquents, d'appeler les formules analogues à celles de tex2html_wrap_inline54334 des formules de droite, et formules analogues à celles de tex2html_wrap_inline54336 des formules de gauche.

On peut spécifier en tex2html_wrap_inline56836Prolog la structure des formules héréditaires de Harrop de la façon suivante. Plutôt que d'utiliser deux règles pour les clauses et les buts, on n'utilise qu'une règle munie d'une polarité*.

type harrop formule -> (A->A->A) -> o .

harrop (A /tex2html_wrap_inline56812 B) Pol :- harrop A Pol , harrop B Pol .

harrop (qqsoit F) Pol :- pi xtex2html_wrap_inline56812( harrop (F x) Pol ) .

harrop (A => B) Pol :- harrop A (INV Pol) , harrop B Pol .

harrop (A tex2html_wrap_inline56812/ B) PLUS :- harrop A PLUS , harrop B PLUS .

harrop (existe F) PLUS :- pi xtex2html_wrap_inline56812( harrop (F x) PLUS ) .

On peut aussi proposer la définition suivante qui véhicule mieux l'intuition que les formules de Harrop sont des formules de Horn «augmentées».

harrop F Pol :-
         (     pi Ftex2html_wrap_inline56812( horn (qqsoit F) PLUS :- pi xtex2html_wrap_inline56812( horn (F x) PLUS ) )
         => pi Atex2html_wrap_inline56812(pi Btex2html_wrap_inline56812( horn (A => B) PLUS :- horn A MOINS , horn B PLUS ))
         => horn F Pol ) .

Hauptsatz. n.m. (rel. Gentzen*, calcul des séquents* et coupure*) (allemand pour «théorème fondamental»). La règle de coupure est redondante et peut être éliminée. Dans le cas où des axiomes sont ajoutés au calcul des séquents pour représenter une théorie par rapport à laquelle se font les preuves, les applications de la règle de coupure qui concernent ces axiomes ne peuvent être éliminées.

La redondance concerne les théorèmes, mais pas les preuves. Les mêmes théorèmes peuvent être prouvés avec ou sans règles de coupure, mais pas nécessairement avec les mêmes preuves.

Il est heureux que la règle de coupure soit redondante car c'est la seule du calcul des séquents qui n'a pas la propriété de la sous-formule. En effet, la formule tex2html_wrap_inline56448 qui est partagée par les prémisses ne figure pas dans la conclusion. Cela pose problème pour une procédure de recherche de preuve qui utilise les règles de déduction de bas en haut.

On peut alors se demander pourquoi la règle de coupure figure dans le système déductif initial. D'une part, elle a un contenu intuitif évident, celui de démontrer des lemmes séparément et de les utiliser dans une preuve. Elle a donc sa place à côté des autres règles qui elles aussi ont un contenu intuitif évident. D'autre part, elle résume des propriétés métalogiques du calcul des séquents : beaucoup de métathéorèmes se démontrent avec son aide. En fait, elle résume tellement bien le calcul des séquents qu'elle possède une variante qui est complète pour une présentation appropriée du calcul des prédicats : la règle de résolution*. Dans ce cas, la théorie est entièrement représentée par des axiomes, les clauses*, et la règle de coupure ne peut pas du tout être éliminée.

Herbrand, Jacques (Paris, 1908-La Bérarde, 1931) [Herbrand 68]. En étudiant l'Entscheidungsproblem (le problème de reconnaître si une proposition est vraie ou non dans une théorie du calcul des prédicats), Herbrand a montré qu'il n'était pas nécessaire de considérer un univers arbitraire d'interprétation des formules, mais qu'il suffisait de considérer une suite croissante d'interprétations par des termes construits à l'aide des symboles de la théorie et de symboles représentant l'imbrication des quantificateurs. Une formule est valide si et seulement si elle est validée par l'une de ces interprétations. L'argument de croissance de la suite est la taille des termes des interprétations.

Le théorème de Herbrand conduit à une syntaxisation de la sémantique. On peut y voir aussi un passage du calcul des prédicats au calcul propositionnel puisque l'interprétation des formules donne des formules sans variables ; Herbrand propose donc une technique d'élimination des quantificateurs.

L'application la plus connue du théorème de Herbrand est le principe de résolution* de Robinson. Ce principe permet de calculer le modèle de Herbrand qui invalide la théorie augmentée de la négation du théorème (preuve par réfutation) à l'aide d'une combinaison de l'opération d´unification* et de la règle de coupure*. Une spécialisation de la résolution est au ctex2html_wrap52064ur de la sémantique opérationnelle de Prolog.

Un trait important des travaux de Herbrand est l'approche constructive : les définitions sont conçues comme des algorithmes qui construisent des objets et les propriétés sont décrites avec les algorithmes qui permettent de les vérifier. C'est ainsi que, ayant à résoudre des systèmes d'équations sur les termes de ses interprétations, Herbrand décrit ce qui passe pour être la première expression de la procédure d'unificationgif.

  1. Si une des égalités à satisfaire égale une variable restreinte [essentiellement existentielle*] tex2html_wrap_inline53952 à un autre individu, ou bien cet individu contient tex2html_wrap_inline53952, et on ne peut y satisfaire [test d´occurrence*], ou bien il ne contient pas tex2html_wrap_inline53952 ; cette égalité sera alors une des égalités associées cherchées [une substitution solution*] et on remplacera tex2html_wrap_inline53952 par cette fonction dans les autres égalités à satisfaire.
  2. Si une des égalités à satisfaire égale une variable générale [essentiellement universelle*] à un autre individu, qui ne soit pas une variable restreinte, il est impossible d'y satisfaire.
  3. Si une des égalités à satisfaire égale tex2html_wrap_inline54368 à tex2html_wrap_inline54370, ou bien les fonctions élémentaires tex2html_wrap_inline56058 et tex2html_wrap_inline54378 sont différentes, auquel cas il est impossible d'y satisfaire, ou bien les fonctions tex2html_wrap_inline56058 et tex2html_wrap_inline54378 sont les mêmes, auquel cas on remplace l'égalité par celles obtenues en égalant tex2html_wrap_inline54380 à tex2html_wrap_inline54382.

En proposant des définitions constructives de fonctions de plus en plus complexes, Jacques Herbrand a aussi contribué à l'émergence de la notion de fonction récursive générale [Herbrand 68, Kleene 71, Chabert et al. 94].

Herbrand (base de). n.f. (rel. Herbrand*) Ensemble des formules atomiques* finies qui peuvent être construites avec les symboles de prédicat et les constructeurs de termes d'un programme. La sémantique déclarative de Prolog* fait correspondre à tout programme une partie de sa base de Herbrand, qui est un modèle du programme.

Herbrand (univers de). n.m. (rel. Herbrand*) Ensemble des termes finis qui peuvent être formés avec les constructeurs de termes d'un programme.

En tex2html_wrap_inline56836Prolog, on étend cette notion en considérant l'ensemble des combinateurs tex2html_wrap_inline54254-normaux qui peuvent être formés avec les constructeurs de termes d'un programme.

tex2html_wrap_inline52728. n.f. Higher-order Hereditary Harrop Grammar ou grammaire en formules héréditaires de Harrop* d'ordre supérieur [Le Huitouze et al. 93a]. Résulte de la transposition à tex2html_wrap_inline56836Prolog* du principe des tex2html_wrap_inline52830* (voir section «tex2html_wrap_inline56836Prolog et grammaires logiques»*).

Horn, Alfred [Horn 51]. En étudiant les relations entre des structures tex2html_wrap_inline54452, ..., tex2html_wrap_inline54398 et tex2html_wrap_inline54422 vis-à-vis de la satisfaction d'une axiomatisation tex2html_wrap_inline56402, Horn a montré les deux théorèmes suivants (entre autres) : (a) si tex2html_wrap_inline56402 a une forme conjonctive prénexe* dont les facteurs de la matrice* contiennent au plus un littéral* positif* (en termes modernes, une théorie de Horn), et si tex2html_wrap_inline56402 est vraie de chacune des tex2html_wrap_inline54426, alors tex2html_wrap_inline56402 est vraie de tex2html_wrap_inline54422, (b) si les tex2html_wrap_inline54426 sont les mêmes pour chaque tex2html_wrap_inline53198, si tex2html_wrap_inline56402 a une forme prénexe sans quantificateur existentiel, et si tex2html_wrap_inline56402 est vraie de tex2html_wrap_inline54422, alors tex2html_wrap_inline56402 est vraie de tex2html_wrap_inline54426.

Une conséquence importante est que si deux structures tex2html_wrap_inline54452 et tex2html_wrap_inline54454 satisfont une théorie de Horn, alors leur intersection la satisfait aussi. Par (a), tex2html_wrap_inline54448 la satisfait, et puisque il n'y a pas de quantification existentielle, la restriction de tex2html_wrap_inline54448 à tex2html_wrap_inline54436 la satisfait, et enfin, par (b), tex2html_wrap_inline54438 la satisfait.

Les exemples suivants montrent le rôle des hypothèses des théorèmes (a) et (b). Les structures tex2html_wrap_inline54440 et tex2html_wrap_inline54442 satisfont l'axiome tex2html_wrap_inline54444, mais la structure

tex2html_wrap_inline54446

ne la satisfait pas. Inversement, la structure tex2html_wrap_inline54448 satisfait l'axiome tex2html_wrap_inline54450, alors qu'aucune des structures tex2html_wrap_inline54452 ou tex2html_wrap_inline54454 ne le satisfait.

En terme de modèle, les théorèmes de Horn permettent d'isoler un unique plus petit modèle de Herbrand* pour les théories de Horn, et donc de donner la sémantique des programmes Prolog*. Par définition, la sémantique d'un programme Prolog est son unique plus petit modèle de Herbrand*.

Horn (clause de). n.f. (rel. Horn*) Clause* qui ne contient pas plus d'un littéral* positif*. On appelle tête l'éventuel littéral positif et corps les littéraux négatifs*. En général, on note la clause tex2html_wrap_inline54456 comme une implication tex2html_wrap_inline54458.

On appelle clause définie une clause de Horn qui a exactement un littéral positif. On appelle clause unitaire ou fait* une clause définie dont le corps est vide.

Un programme Prolog* est un ensemble fini de clauses de Horn. Les modèles des théories décrites par des clauses de Horn ont la propriété de constituer une collection fermée par intersections : l'intersection de deux modèles est encore un modèle.

Huet (semi-algorithme de). n.m. Procédure qui calcule les préunificateurs* d'un problème d´unification d´ordre supérieur*. La procédure parcourt un arbre de recherche dont les ntex2html_wrap52064uds sont étiquetés par des problèmes d'unification d'ordre supérieur et les arcs sont étiquetés par des substitutions*. Un invariant est que tout préunificateur du problème d'unification d'ordre supérieur qui étiquette la racine de l'arbre est la composition des substitutions trouvées sur l'arête de l'arbre qui mène à un ntex2html_wrap52064ud et d'un préunificateur du problème d'unification qui étiquette ce ntex2html_wrap52064ud. Les ntex2html_wrap52064uds feuilles peuvent être soit en échec si on a détecté une contradiction dans le problème associé, soit en succès si on a détecté que le problème associé a une solution triviale, soit ouverts dans les autres cas. L'objectif du développement de l'arbre est de n'avoir plus que des ntex2html_wrap52064uds en échec ou en succès.

Le développement de l'arbre se fait à l'aide de plusieurs opérations élémentaires qui terminent toujours. Que l'unification ne termine pas se traduit donc exclusivement par le développement d'un arbre infini.

  tex2html_wrap54490

Huet présente une version de l'algorithme qui résoud les problèmes d'unification modulo tex2html_wrap_inline55724-équivalence et des commentaires qui explique comment cet algorithme se spécialise pour la tex2html_wrap_inline54254-équivalence. C'est cette dernière version qui est utilisée en tex2html_wrap_inline56836Prolog et c'est la seule que nous décrivons.

L'opération élémentaire de simplification tex2html_wrap_inline54466* permet de détecter les contradictions dans un ntex2html_wrap52064ud ouvert ou, en leur absence, de ramener tout problème à des sous-problèmes de la forme tex2html_wrap_inline54468tex2html_wrap_inline53950 est flexible. Elle vérifie aussi que les constantes ou variables essentiellement universelles qui apparaissent en tête des termes d'une même paire sont compatibles. Quand ce n'est pas le cas, le ntex2html_wrap52064ud est déclaré en échec.

L'opération élémentaire tex2html_wrap_inline56490* s'applique à des paires flexibles* et permet de détecter les problèmes résolus. Elle reconnaît des formes particulières de problème qui peuvent être résolues sans utiliser la procédure générale. Elle a un rôle heuristique important et il faut que les formes reconnues couvrent effectivement les cas «triviaux».

L'opération élémentaire tex2html_wrap_inline56476* s'applique à des paires flexible-rigide* non-résolues et dérive de nouveaux ntex2html_wrap52064uds fils du ntex2html_wrap52064ud ouvert en inventant de nouvelles substitutions dont le domaine est la variable en tête* de tex2html_wrap_inline53950.


next up previous contents
Next: I-J-K Up: A-Z Previous: G

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