# 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)). – David Tonhofer Jun 29 '19 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 '19 at 23:15
• Keeping the semantics the same: ∀d ∈ dolphins (¬Jumps(d) → ¬Sings(d)) – polcott May 24 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. – polcott May 25 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! – Moritz Wolff Jul 2 '19 at 20:58
• Your last paraphrase changed the semantics. The original semantics allowed for jumping and not singing. ∀d ∈ dolphins (¬Jumps(d) → ¬Sings(d)) – polcott May 24 at 4:29
• @polcott My last paraphrase allows for it as well. Perhaps you misread it. – Eliran May 24 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. – polcott May 24 at 6:12
• @polcott The two formulations are equivalent. Mine uses the material implication and thus does not allow for Sing without Jump. – Eliran May 24 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)) – polcott May 24 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." – polcott May 25 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`. – Samuel Muldoon May 26 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. – Samuel Muldoon May 26 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)} – polcott May 26 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.