English sentence to FOL

1.4k Views Asked by At

I was given a sentence ;

All students who are doing chemistry or biology can sit for some test.

According to my understanding I translated it in to first order logic;

∀x[ doing( student(x), chemistry) ∨  doing( student(x), biology) ] → ∃y can_sit(test(y), x)

Please tell me whether I'm correct or if not how to get the correct predicate.

1

There are 1 best solutions below

2
On

All students who are doing chemistry or biology can sit for some test.

First, you should check if $x$ is a student or you'll target anything.
Your problem is not so complicated, so instead of a 'doing' predicate use a specific activities. Same with 'can sit for'.
And here is the final version: $$ \forall x( isStudent(x) \wedge ( doingChemistry(x) \lor doingBiology(x) ) \implies canSitForATest(x) ) $$