Can anybody give me an idea how to write this assertion in in first order logic?

X has not passed one or more of the prerequisites for A.

Here, X is the name of a person and A is a constant representing a course name.

  • 2
    $\begingroup$ You could have a prerequisite object type and a predicate P(a, b, c) - person 'a' passed a prerequisite 'b' for course 'c'. $\endgroup$ – Karolis Juodelė Feb 26 '14 at 19:46

Expressing properties of elements of the universe in first order logic is mostly achieved through defining appropriate relations. So for this you might like to consider relations like:

  • $P(x)$ - $x$ is a person,
  • $C(x)$ - $x$ is a course,
  • $Pre(x,y)$ - $x$ is a prerequisite of $y$ (note that this doesn't actually say that $x$ and $y$ are courses),
  • $Pass(x,y)$ - $x$ has passed course $y$.

(The parentheses are just included for clarity - you may have seen different notation where relations are written without.)

Then the rest is just building the logical formula, which in this case should be fairly obvious.

$notready(x,a) \equiv P(x) \wedge C(a) \wedge \exists y(C(y) \wedge Pre(y,a) \wedge \neg Pass(x,y)) $

| cite | improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.