Expressar “Todo aluno passou em pelo menos uma aula” em FOL

Aug 19 2020

Minha pergunta:

Expresse esta frase em linguagem de primeira ordem: "Todo aluno passou em pelo menos uma aula".

Esta é a resposta do meu professor:

nós definimos$S(x)$como "objeto$x$é um estudante" ,$C(x)$como "objeto$x$é uma classe" e$P(x,y)$como uma lógica de predicado - símbolo que se traduz em "estudante$x$passou de classe$y$". Então nós temos:

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

Minha dúvida é sobre: ​​"$\forall x S(x) \exists y ( C(y) \land P(x,y))$". Por que o segundo está errado?

Respostas

1 lemontree Aug 19 2020 at 17:38

Talvez você tenha lido em algum lugar algo como

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

e tente aplicar o mesmo padrão à frase em questão com$x \in \mathbb{N}$correspondente a$S(x)$e$P(x)$para$\exists y ...$.

Mas o acima não é estritamente falando uma fórmula de primeira ordem, mas apenas uma abreviação para

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

e normalmente é usado apenas com instruções de associação definidas$x \in Y$, não predicados como$S(x)$.

Se você está afirmando duas fórmulas$S(x)$,$\exists y ...$então pela sintaxe da lógica de predicados, você deve ter um conectivo entre eles para que a coisa toda se torne outra fórmula, e isso está faltando na sua proposta.


Além disso, como mencionado nos comentários,

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

não é a solução correta. Seu professor provavelmente escreveu

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

-- a$\forall x$deve abranger a implicação, não apenas o$S(x)$.