Nella logica del primo ordine, come possiamo normalmente rappresentare una dichiarazione?

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

  •  29-09-2020
  •  | 
  •  

Domanda

Volevo un esempio come:

ognuno ha una madre.

L'ho visto che è rappresentato nel fol come: $ \ forlt x \ esiste y: $ madre (x, y)

Lo sto vedendo come: per ogni x, esiste un y, tale che Y è una madre di X.

Voglio sapere perché non è il seguente adatto:

$ \ forall x: $ hasmother (x)

che sento che può essere detto come: per ogni x, x ha una madre.

È stato utile?

Soluzione

Questa è una buona domanda e si riduce a ciò che vuoi ottenere con l'entità Mother.

Nel tuo primo esempio, Mother(x, y) è un (binario) relazione . Ciò significa che puoi avere il maggior numero di ys come vorresti per x. Con Mother come relazione, puoi anche creare formula che controlla se hai due ys che soddisfano la maternità per x.

Nell'altro esempio, hasMother(x) è un predicato che può essere solo true o false . Quante madri hanno x? Impossibile da dire. Chi è la madre di x? Non possiamo dire.

Potresti anche concepire un mother(x) → y funzione che mappa un x a sua madre y, ma poi puoi avere solo una madre, e ogni x ha bisogno di avere una madre (nel modello).

Tutto si riduce a (a) Cos'è una rappresentazione naturale del "mondo" (qualunque cosa tu voglia modellare), e (b) cosa vuoi raggiungere (qualunque cosa tu voglia uscire dal tuo modello).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a cs.stackexchange
scroll top