Hypothèse du monde clos
La notion d'hypothèse de monde clos est utilisée en particulier en Prolog, elle s'oppose à l'hypothèse de monde ouvert (voir aussi l'article Logique argumentative) et concerne la question du vrai et du faux.
Elle signifie qu'un fait est considéré comme faux si, en un temps fini, on échoue à montrer qu'il est vrai, ce qui revient à dire que tout ce qui est vrai doit être connu (inclus dans la base de données des faits) ou démontrable en temps fini, il n’y a pas de monde extérieur qui pourrait contenir des éléments de preuve inconnus du programme. Pour les faits vrais, l'hypothèse de monde clos ne dit rien de particulier.
Avec l'hypothèse de monde clos, l'univers des faits se partage entre les faits 'vrais' prouvables en temps fini et tout le reste, assimilé au faux (pour ce qui est accessible en temps fini). Outre la question de la terminaison, cela impose une utilisation du 'faux' avec précaution. Autant le 'vrai' est fort (il ne dépend que de la base de faits, de règles initiales acceptées et du mode d'inférence adopté), autant le 'faux' dépend de l'exhaustivité de la base de faits et de la complétude de la base de règles (2 notions délicates à obtenir)
Exemples
Exemple correct
En Prolog, par exemple, on peut décrire les nombres binaires par :
nombreBinaire([0]). nombreBinaire([1|L]):-suiteDeZeroOuUn(L). zeroOuUn(0). zeroOuUn(1). suiteDeZeroOuUn([]). suiteDeZeroOuUn([E|L]):- zeroOuUn(E), suiteDeZeroOuUn(L).
Ce qui permet de vérifier que '1001' est un nombre binaire, mais que '2010' n'est pas un nombre binaire.
Exemple à prendre avec précaution
En Prolog, à un instant donné, on peut décrire une famille par :
père(tom, sally). père(tom, erica). mère(trude, sally). mère(steph, erica). parent(X,Y) :- père(X,Y). parent(X,Y) :- mère(X,Y).
ce qui permet de déduire que Tom est parent de Sally et Erica. Mais ce qui semble signifier que Tom n'a pas de parent ... (!)