# How to translate "No dolphin sings unless it jumps" into predicate logic?

i have a silly logic question again. How would you translate the following sentence into predicate logic?

No dolphin sings unless it jumps.

My guess is that it is an E-sentence of the form "no A is B", where A stands for "dolphin" and the predicate B stands for "is such that it sings unless it jumps". But how can we analyze B? It seems that the predicate B has the form "p unless q" which can be symbolized as "∼q → p". That's why the predicate has the can be analyzed as "∼Fx → Gx", with "Fx" meaning "x jumps" and "Gx" meaning "x sings". This leads to the symbolization:

∼∃x (Kx ∧ (∼Fx → Gx))

But this is incorrect! The correct solution is the following:

∼∃x (Kx ∧ ∼(Gx → Fx))

What am I doing wrong? I'm a bit confused in figuring out the structure of the predicate. Thanks for your help again!

• "if x is a dolphin then, when we observe that x sings, we will also observe that x jumps", thus ∀x( dolphin(x)→(sings(x) →jumps(x))) ... in particular if x is not a dolphin, we don't care, the sentence defaults to true. The→ is the material implication of classical logic and can be replaced by a "not-or" and so ∀x( ¬dolphin(x) ∨¬sings(x) ∨jumps(x)) thus ∀x¬( dolphin(x) ∧sings(x) ∧¬jumps(x)) thus ¬∃x ( dolphin(x) ∧sings(x) ∧¬jumps(x)). Jun 29, 2019 at 20:00
• fwiw, i'd start with (Gx → Fx), then add ∼∃x (Kx) and then just realize, because that second phrase is the inverse of what is expressed in the first, that i have to negate the first phrase to include it in the formula
– user38026
Jun 30, 2019 at 23:15
• Keeping the semantics the same: ∀d ∈ dolphins (¬Jumps(d) → ¬Sings(d)) May 24, 2020 at 4:30
• Because of the way that material implication works the truth table of Eliran's answer says that: (Some dolphins don't sing and don't jump), (Some dolphins don't sing and jump), (Some dolphins sing and jump). We cannot correctly infer those three things from the original English sentence. Furthermore every predicate logic translation (including mine) has the same problem. May 25, 2020 at 0:27

Because of the double negation (no + unless) I would first try to paraphrase the sentence before trying to translate it into predicate logic. All the following have the same meaning:

No dolphin sings unless it jumps

All dolphins don't sing unless they jump

All dolphins don't sing if they don't jump

All dolphins jump if they sing

The last one is easiest to translate. The translation is:

∀x(Kx → (Gx → Fx))

Which is equivalent to:

∼∃x∼(Kx → (Gx → Fx))

And thus:

∼∃x(Kx ∧ ∼(Gx → Fx))

• It makes sense to paraphrase it first, now i see it, thanks! Jul 2, 2019 at 20:58
• Your last paraphrase changed the semantics. The original semantics allowed for jumping and not singing. ∀d ∈ dolphins (¬Jumps(d) → ¬Sings(d)) May 24, 2020 at 4:29
• @polcott My last paraphrase allows for it as well. Perhaps you misread it. May 24, 2020 at 5:15
• @Eliran Samuel Muldoon's correct answer: ∄d (Sing(d) ∧ ¬Jump(d)) has a different truth table than your paraphrase "All dolphins jump if they sing" formalized as: ∀d (Sing(d) → Jump(d)). Your paraphrase allows the inference to be made that some dolphins neither sing nor jump or sing and don't jump. Neither of these two things was specified in the original English. The English "if" has different semantics than material implication. May 24, 2020 at 6:12
• @polcott The two formulations are equivalent. Mine uses the material implication and thus does not allow for Sing without Jump. May 24, 2020 at 15:18

Below is a numbered list.
Item 1 is the original/unmodified English, "no dolphin sings unless it jumps"
The last numbered item is a statement written in predicate logic.

1. No dolphin sings unless it jumps
2. There does not exist a dolphin which sings unless it also jumps.
3. There does not exist a dolphin which sings and does not jump.
4. There does not exist `d` element of the set of dolphins, such that `d` sings and `d` does not jump

DIGRESSION: Technically, predicate logic does not contain "sets".
predicate logic is considered to be simpler than set theory.
predicate logic is like a simple machine with a very small buttons.
Set theory is like the same machine with a dozen new additional extra bells, whisles, buttons, levers and gauges added to the original ones.
Instead of "sets" sometimes people will say that predicate logic contains "relations"
So, you might want to write one of the following instead of "`d` element of the set of all dolphins":

• "`d` in the dolphin relation"
• "`d` element of the dolphin relation"
• "`d` participates in the dolphin relation"

Let us continue with the translation:

1. `∄ d ∈ D` such that `d` sings and `d` does not jump...... `D` is the dolphin relation

DIGRESSION: `∈` is short-hand for "element of"

1. `∄ d ∈ D` such that `d` sings and `d` does not jump...... `D` is the dolphin relation

2. `∄ d ∈ D ϶ d` sings and `d` does not jump

DIGRESSION: `϶` is short-hand for "such that"
`϶` is looks like the symbol for "element of" written backwards.
`϶` is old notation. `϶` is no longer in vogue.
For the last decade or more, American mathematicians have started using the colon character `:` to denote "such that"

1. `∄ d∈D ϶ SING(d) and not JUMP(d)`
We define `SING(d)` to be notation equivalent to "`d sings`" We define `JUMP(d)` to be notation equivalent to "`d jumps`"

At this point, let us decide to be consistent in notation. Either always write something like `A(x)` or `x∈A`, but not mix and match the two notations.

1. `∄ D(d) ϶ SING(d) and not JUMP(d)`

1. `∄ d∈D ϶ d ∈ SING and not d∈JUMP`

Notice that there are two lines 9s. They are the same in all but notation. Pick whichever notation is closest to what your college professor uses.

If you want, you can define `SING` as the set (excuse me... "relation") of all things which sing.

Similarly, you can define `JUMP` as the relation of all objects in the universe which jump.

• Your answer is a more literal translation than mine and on this basis better. "No dolphin sings and does not jump". Here is your answer in my notation: ∄d ∈ dolphins ((Sing(d) ∧ ¬Jump(d)) May 24, 2020 at 4:46
• I just realized that the way that you expressed it (although not predicate logic) does not have the problem of predicate logic: ∄d (Sing(d) ∧ ¬Jump(d)). The predicate logic version specifies three more truth table rows than can actually be inferred from the original English: "No dolphin sings unless it jumps." May 25, 2020 at 2:55
• @polcott If a formula in logic has `1` variable, then the truth table has `2^1` rows. If the logical formula has `2` variables, then the truth table has `2^2 = 4` rows. In general, a formula on `p` variables has a truth table with `2^p` rows. If there `100` variables, then there are more rows in the truth table than there are grains of sand on planet earth. I do not understand why one truth table would have 3 more rows than another truth table. The difference in rows between two truth tables should be an even number. For example `2^3 - 2^2` (or `8 - 4`) is an even number. `even - even = even`. May 26, 2020 at 3:50
• @polcott I am confused, and don't see why one truth table would have 3 more rows than another. I wish I could see a picture of the two different truth tables you are talking about. However, StackExchange comments do not support embedded images. May 26, 2020 at 3:52
• If we consider Sing and Jump to be two variables and we are only told ∄d (S(d) ∧ ¬J(d)) then the truth table infers values for a total of four rows for these two variables: {¬S(d)∧¬J(d), ¬S(d)∧J(d), S(d)∧¬J(d), S(d)∧J(d)} May 26, 2020 at 3:59

Yes, "No dolphin sings unless it jumps" is interpreted in predicate logic straightforwardly as:

Is_Dolphin(x) → (Sings(x) → Jumps(x))

Here the character '→' denotes a logical implication, not a material implication.