Dans la logique du premier ordre, comment représentons-nous normalement une déclaration ?

cs.stackexchange https://cs.stackexchange.com/questions/121555

  •  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.

Était-ce utile?

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 yc'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 ys 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 xla 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).

Licencié sous: CC-BY-SA avec attribution
Non affilié à cs.stackexchange
scroll top