Nella logica del primo ordine, come possiamo normalmente rappresentare una dichiarazione?
-
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.
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 y
s come vorresti per x
. Con Mother
come relazione, puoi anche creare formula che controlla se hai due y
s 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).