Search code examples
logicfirst-order-logic

Representing FOL in english language


I have the following FOL formula: ∀e(S(e)) → ∃d(P(d))

And the vocabulary:
variables: e:'exam', d:'day' functions: S:'successful', P:'party'

I initially translated that formula into:
For every successful exam, there will be a day of party

While apparently the correct translation would be something of the sort of:
You party at least one day after all exams were successful.

Why does the correct one say that we only party after ALL exams were successful?

Does ∀e(S(e)) mean: "For all exams, they will all be successful"? And ∃d(P(d)) mean: "there exists at least one day where we party"?

And doesn't the implication translte to "if a then b" ?

I think I can somehow see the logic of the correct translation, but there's something about the implication that makes me unsure...


Solution

  • Careful here. This formula:

    ∀e(S(e)) → ∃d(P(d))
    

    Really only has one precise sense, the one you acknowledge as apparently correct:

    If all exams are successful, then there will be a party.

    Your translation is wrong for a subtle but significant reason. Your translation:

    For every successful exam, there will be a day of party

    Corresponds to this formula:

    ∀e.∃d(S(e) → P(d))
    

    These formulae are not logically equivalent, that is, the following is not a tautology:

    (∀e(S(e)) → ∃d(P(d))) <=> (∀e.∃d(S(e) → P(d)))
    

    To see this, consider what happens when you pass ten exams and fail one exam. The original formula is vacuously true regardless of whether any party is had, since ∀e(S(e)) is not satisfied. However, your statement is only true if you have at least one party, since you did pass at least one exam.