Ajuda na conversão para a lógica de primeiro pedido
-
26-09-2019 - |
Pergunta
Usando apenas esses predicados .....
child(X) X is a child
unwell(X,Y) X is unwell on day Y
location(X,Y,Z) Location of X on day Y is Z (school, park, home)
sunny(X) X is a sunny day
Generally, children do not go to school whenever they are unwell
∄x [Child(x) ∧ location(X,y,home) → Child(x) ∧ unwell(X,y)]
Não tenho certeza se o que escrevi é certo ou errado
Também não tenho certeza, como converter esta linha ...
On sunny days Julie goes to the park, otherwise she stays at home.
Apreciaria a ajuda ... obrigado ...
Solução
Talvez algo assim:
((child(Julie) ^ location(Julie,Y,park)) -> sunny(Y)) ^ ((child(Julie) ^ location(Julie,Y,home)) -> ~sunny(Y))
Vou editar isso ainda mais se conseguir pensar em alguma coisa. Faz um tempo desde que toquei a lógica de primeira ordem :)
Outras dicas
Sua primeira resposta não está correta, mas não é realmente traduzível para FOL porque descreve não descreve uma regra estrita, mas apenas algo que geralmente é o caso. Para descrever esse tipo de coisa, você precisaria de algum tipo de lógica não monotônica.
Mas mesmo se deixarmos isso de fora, e apenas assumir, é uma regra estrita e ignorarmos todo o comportamento excepcional que você diz aqui que não há uma entidade X que, se for uma criança e em casa, está doente e uma criança. Eu acho que você pretendia ser o segundo precedente da implicação a ser $ local (x, y, escola) $
A renderização da segunda frase de Sagar V parece boa, mas talvez você queira reverter a implicação (depende de qual relação causal você deseja ter) e sua sentença força Julie a ser uma criança que não está na sua declaração de problema