Esprimere "Ogni studente ha superato almeno una lezione" in FOL

Aug 19 2020

La mia domanda:

Esprimi questa frase in un linguaggio di prim'ordine: "Ogni studente ha superato almeno una lezione".

Questa è la risposta del mio insegnante:

Definiamo$S(x)$come "oggetto$x$è uno studente" ,$C(x)$come "oggetto$x$è una classe" e$P(x,y)$come predicato logico - simbolo che si traduce in "studente$x$ha superato la lezione$y$". Quindi abbiamo:

$\forall x (S(x) \rightarrow \exists y [C(y) \land P(x,y)])$.

La mia domanda è: "$\forall x S(x) \exists y ( C(y) \land P(x,y))$". Perché la seconda è sbagliata?

Risposte

1 lemontree Aug 19 2020 at 17:38

Forse hai letto da qualche parte qualcosa del genere

$\forall x \in \mathbb{N} P(x)$

e prova ad applicare lo stesso schema alla frase in questione con$x \in \mathbb{N}$corrisponde a$S(x)$e$P(x)$a$\exists y ...$.

Ma quanto sopra non è strettamente parlando una formula di primo ordine, ma solo un'abbreviazione di

$\forall x (x \in \mathbb{N} \to P(x))$

e viene normalmente utilizzato solo con dichiarazioni di appartenenza impostate$x \in Y$, non predicati come$S(x)$.

Se stai affermando due formule$S(x)$,$\exists y ...$quindi, secondo la sintassi della logica dei predicati, devi avere un connettivo tra di loro in modo che l'intera faccenda diventi un'altra formula, e questo manca nella tua proposta.


Inoltre, come accennato nei commenti,

$\forall x S(x) \to \exists y (C(y) \land P(x,y))$

non è la soluzione corretta. Il tuo insegnante probabilmente ha scritto

$\forall x (S(x) \to \exists y (C(y) \land P(x,y)))$

-- il$\forall x$deve spaziare oltre l'implicazione, non solo il$S(x)$.