Dans la logique du premier ordre, comment représentons-nous normalement une déclaration ?
-
29-09-2020 - |
Question
Je voulais un exemple du genre :
Tout le monde a une mère.
J'ai vu qu'il est représenté en FOL comme suit : $\forall x \exists y:$ Mère (x, y)
Je vois cela comme suit : pour chaque x, il existe un y, tel que y est une mère de x.
Je veux savoir pourquoi ce qui suit ne convient pas :
$\pour tout x :$ aMère(x)
Ce qui, à mon avis, peut être dit comme suit :Pour chaque x, x a une mère.
La solution
C'est une bonne question et elle dépend de ce que vous voulez réaliser avec le Mother
entité.
Dans votre premier exemple, Mother(x, y)
est un (binaire) relation.Cela signifie que vous pouvez en avoir autant y
c'est comme tu le souhaites x
.Avec Mother
en tant que relation, vous pouvez également créer une formule qui vérifie si vous avez deux y
s qui satisfait la maternité pour x
.
Dans votre autre exemple, hasMother(x)
est un prédicat cela ne peut être que vrai ou FAUX.Combien de mères font x
avoir?Impossible à dire.Qui est x
la mère de ?Nous ne pouvons pas le dire.
On pourrait aussi concevoir un mother(x) → y
fonction qui cartographie un x
à sa mère y
, mais alors on ne peut avoir qu'une seule mère, et toutes x
doit avoir une mère (dans le modèle).
Tout se résume à (a) ce qu'est une représentation naturelle du « monde » (quoi que vous vouliez modéliser), et (b) ce que vous voulez réaliser (quoi que vous vouliez retirer de votre modèle).