Almost directly copied from
Peter Suber's Translation Tips.
In this hand-out I treat the notation of truth-functional propositional
logic and first-order predicate logic as a language, and give guidance on
translating from English into this foreign language.
In general, "logical" issues, such as methods for making use of the
expressions once translated, are omitted here.
References to Irving Copi's Symbolic Logic are to the fifth edition,
Truth-Functional Propositional Logic
While there are 3-valued and many-valued logics, remember that our logic
is 2-valued (or bivalent).
Therefore, "She was not unhappy" must be translated as if it were
synonymous with "She was happy."
If you dislike this restriction, then you dislike bivalence and will
have a reason to use a 3-valued or many-valued logic.
Remember that | in our notation expresses inclusive
disjunction: p | q means that either p is true or
q is true or both.
The exclusive disjunction of p and q asserts
that either p is true or q is true but not
The natural, but long-winded, way to express exclusive disjunction, then,
is (p | q) & ~(p & q).
Notice, however, that exclusive disjunction is really saying that
p and q have different truth-values; if one of them is
true, then the other isn't, and vice versa.
The way to say they have different truth values is to deny their
equivalence: ~(p ⇔ q).
If you like, you can introduce a symbol for this: p ⊕ q.
For example, when a menu says "cream or sugar", it uses an inclusive
"or", because you may take one, the other, or both.
But when it says "coffee or tea", it uses an exclusive "or", because
you are not invited to take both.
We express conjunction with many words other than "and", including "but,"
"moreover," "however," "although", and "even though".
In English these expressions sharply contrast the two conjuncts, saying
in effect "if you believe the first conjunct, then you will be surprised
by the second."
But they still assert conjunction.
The contrast between the conjuncts is not logically relevant; validity
never turns on it.
Sometimes "and" does not join whole propositions into a compound
Sometimes it simply joins nouns: "Bert and Ernie are brothers"
(or are they just room-mates?).
This cannot be paraphrased, "Bert is a brother and Ernie is a
brother," for that does not assert that they are brothers to each
Sometimes "and" joins adjectives: "The leech was long and wet and
This, however, can be paraphrased, "The leech was long, and the
leech was wet, and the leech was slimy."
Sometimes "unless" should be translated as inclusive disjunction, and
sometimes as exclusive disjunction.
For example, "I'll go to the party unless I get another offer" means
that I'll go if nothing else comes along.
In many contexts it also means that I might go anyway; the second offer
might be worse.
So I'll go or I'll get another offer or both (inclusive disjunction).
Consider by contrast, "I'll go to the party unless Rufus is there".
In many contexts this means that if I learn Rufus is going, then I'll
change my mind and not go.
So I'll go or Rufus will go but not both (exclusive disjunction).
For symbolizing exclusive disjunction, see Tip 2,
Because there is no hard and fast rule, paraphrase the English before
(I thank Susanna S. Epp for helpful correspondence on the subtlety of
When people say "and/or", they seem to mean inclusive disjunction.
"Bring a scarf and/or a hat" means "bring a scarf or bring a hat or
both", and so is translated simply, S | H.
"Neither p nor q" means that both p and q
Therefore translate it ~p & ~q or ~(p | q).
These two formulas are equivalent by DeMorgan's Theorem.
Not both / both not.
Many students confuse "not both" with "both not".
If p and q are "not both" true, then we are denying
their conjunction: ~(p & q).
One of them may be true, just not both.
So this is equivalent to ~p | ~q.
On the other hand, if p and q are "both not" true,
then we are denying each of them; they are both false: ~p & ~q.
Neither of them may be true; so this is equivalent to ~(p | q).
The best cure for confusing "not both" with "both not" is familiarity with
(For the related distinction between "not all" and "all not", see
Tip 33, below.)
p ⇒ q translates a wide variety of English expressions, for
example, "if p, then q", "if p, q", "p implies q", "p entails q", "p
therefore q", "p hence q", "q if p", "q provided p", "q follows from p",
"p is the sufficient condition of q", and "q is the necessary condition
The least intuitive is "p only if q". See the next two tips.
- But be careful.
Some nearly synonymous expressions, like "q because p", "q since p",
"because p, q", "since p, q", and even some instances of "p therefore
q", are not genuine cases, or at least not merely cases, of material
They may seem so because they make p into a condition or reason for
But in "if p, then q" we are non-committal about the truth of p,
whereas most speakers who assert "q because p" and its variants are
asserting the truth of p.
To capture this aspect of the proposition's meaning, use conjunction,
"q & p".
To capture the implication claim as well, use both conjunction and
material implication, p & (p ⇒ q).
Necessary and sufficient conditions.
We say that p is a sufficient condition of q when p's
truth guarantees q's truth.
By contrast, q is a necessary condition of p when q's
falsehood guarantees p's falsehood.
In the ordinary material implication, p ⇒ q, the antecedent p
is a sufficient condition of the consequent q, and the consequent q is
a necessary condition of the antecedent p.
Satisfy yourself of this by reflecting on modus ponens and
Given p ⇒ q, modus ponens tells us that the truth
or presence of p suffices to give us q.
Hence the antecedent is the sufficient condition of the consequent.
Similarly, modus tollens tells us that the falsehood of
q (the truth of ~q) guarantees us the falsehood of p (the truth of
Hence the consequent is the necessary condition of antecedent.
Or, satisfy yourself of this by reflecting on an example: "If
Socks is a cat, then Socks is a mammal."
Being a cat is a sufficient condition of being a mammal.
Being a mammal is a necessary condition of being a cat.
The fact that material implication expresses sufficient and necessary
conditions in this way can be a great help in translation.
Ask yourself about a difficult English sentence: what is being
asserted to be the sufficient condition of what here?
What is being asserted to be the necessary condition of what here?
When you find the sufficient condition, make it the antecedent.
When you find the necessary condition, make it the consequent.
If p is both necessary and sufficient for q, then we must say
p ⇔ q (material equivalence).
We translate "p only if q" as p ⇒ q.
This is surprising to many people because "if" usually cues the
Rather than say that "if" sometimes cues the consequent, it is better
to say instead that "only if" differs from "if", and "only if" cues the
If you understand necessary and sufficient conditions, this translation
should make more sense: "p only if q" clearly asserts that q is a
necessary condition of p.
The necessary condition of something is the consequent of that something
in a material implication (Tip 9).
Modus tollens assures us that p ⇒ q asserts that p
is true only if q is true, or that q is the necessary condition of p.
For under modus tollens, from p ⇒ q and ~q
we can validly infer ~p.
If and only if.
Tip 10 showed why "p only if q" is translated
p ⇒ q.
It should already be clear why "p if q" should be translated
q ⇒ p ("if" cues the antecedent).
So if we say "p if and only if q" we are asserting both p ⇒ q
and q ⇒ p, which amounts to p ⇔ q.
Remember that p ⇔ q means that p and q have the same
truth-value, not necessarily the same meaning.
So it may be correct to translate an English sentence into
p ⇔ q even if its components differ in meaning.
Many logicians, mathematicians, and philosophers abbreviate "if
and only if" as "iff".
Hence "p iff q" should be translated as p ⇔ q.
Sometimes in English we say that p is true "just when" q is true.
(Or perhaps this locution is only common among logicians and
This means that p is true when and only when q is true, or that p if and
only if q, and should be translated p ⇔ q.
"P even if q" means "p whether or not q" or "p regardless of q".
Therefore one perfectly acceptable translation of it is simply "p".
If you want to spell out the claim of "regardlessness", then you could
write "p & (q | ~q)".
The two translations are equivalent.
(A proposition conjoined to any tautology has the same truth-value as
the original proposition.)
All our operators are truth-functional.
So if an operator in English is not truth-functional, don't translate
it with one of our operator symbols.
If the English operator has multiple meanings, one truth-functional and
others not, then only translate it with one of our operator symbols if
you want the truth-functional core of meaning and are willing to discard
"And" in English sometimes expresses temporal succession, not just
"She cursed like a sailor and hung up."
Here the "and" should be translated as & because it does
express conjunction; but our translation will no longer make it
clear which act was performed first.
One function of the "and" in English is to do so, but that function
is not truth-functional and cannot be captured by our operators.
"And" sometimes also functions as a slovenly substitute for the
infinitive, as in "Try and make me."
Here the meaning is even further from truth-functional conjunction.
Conditional statements in English (if..., then...) often express
causation or definition rather than implication.
For example, we use "if..., then..." to express a definition when
we say, "if it's ice, then it's frozen", and to express causation
when we say, "if we put ice in boiling water, then it will melt".
But the implies operator expresses neither definition nor causation,
Moreover, not all senses of logical implication in English are
In particular, implications in which the antecedent and consequent
must be "relevant" to one another are not truth-functional.
The horseshoe only expresses truth-functional implication.
(For more on what the horseshoe operator expresses, see
Tips 8-10, above.)
Parentheses and brackets are the punctuation marks of our logical
With a few exceptions, whenever you have two or more operators in a
single compound expression, you will need parentheses in order to prevent
For example, p ⇒ q | r is ambiguous.
It could mean (p ⇒ q) | r, or p ⇒ (q | r), which are
Negation is the only one of our operators with a pre-defined scope:
namely, the first meaningful proposition (simple or compound) to its
right. Hence ~p ⇒ q is not ambiguous; it
means (~p) ⇒ q, not ~(p ⇒ q).
Similarly, ~(p ⇔ q) ⇒ r is not ambiguous; it means
(p ⊕ q) ⇒ r, not
((~p) ⇔ q) ⇒ r, nor
~((p ⇔ q) ⇒ r), nor any of several other
Disjunction is both commutative and associative.
So (p | q) | r is equivalent to (q | p) | r and
p | (q | r).
As a result, omitting parentheses from disjunctive strings does not
One may write p | q | r.
The same is true of conjunctive strings.
(However, strings that mix disjunctions and conjunctions
require parentheses to prevent ambiguity.)
We could prevent this kind of ambiguity if we stipulated a hierarchy
of operators in which higher operators override lower ones.
In computer programming languages this is called "operator
There are customary rules of operator precedence in algebra, but
none in logical notation.
Hence, we must use parentheses.
Unnecessary parentheses are inelegant but not illogical.
When you mean p, you could write (p) or
((p)) without affecting the truth-value of the statement
or the validity of any argument in which the statement occurred.
The same is true with p ⇒ q, (p ⇒ q),
((p) ⇒ (q)), and so on.
Omitting necessary parentheses is a common mistake in translation.
Make one last check before you think your translation is finished.
Any list of three English sentences could be translated by three
proposition symbols: p, q, r.
But if the original sentences had some common structure, showing perhaps
that one of them followed deductively from the other two, then this
translation would obscure that fact.
So we follow the rule to reveal as much structure as our notation permits.
In propositional logic, this means never to use simple variables to
translate compound sentences.
Our translations will give us a formal representation of the original
English whether we follow this rule or not, but only when we follow this
rule will our translation give us the specific form of the
In propositional logic, a translation yields the specific form of the
original when we can restore the original by substituting simple
statements for each distinct propositional variable in the translation.
If we must substitute compound statements for symbols to get the original,
then we know we have left some structure untranslated.
Sometimes an argument does not use all the structure we can express with
In those cases, we could omit some in our translation and still capture
all that on which validity depends.
For this sort of exception to the rule, see Tips 49
and 50 below.
1st Order Logic: Singly General Monadic
More than in propositional logic, in predicate logic the best tip for
translating from English into notation is to play with the English
sentence, and then to play with your notation proposals.
Play with different paraphrases of the English until you have one
that is (1) equivalent to the original and (2) easier to translate
than the original.
In paraphrasing, remember that we have only three quantities: all,
some, and none.
Try to restate the sentence using one of these words explicitly.
For examples in which successive paraphrases of the English help us
translate, see Tips 26, 27,
37, 38, and
After you have a string in logical notation that might be
a good translation, use the second 10 rules Copi introduced (the
rules of replacement or tautologous biconditionals, e.g. material
implication, DeMorgan's theorems, exportation) to transform it into
other strings equivalent to it.
As you look at your proposal "from different points of view", ask
yourself whether you are still satisfied with its accuracy.
If your translation is inaccurate when transformed into an
equivalent, then it is inaccurate.
For examples in which transformations help us decide on the accuracy
of a translation, see Tips 29,
33.i, and 33.ii, below.
Canonical quantitative propositions.
Here are some often recurring expressions (most of which are annotated
in separate tips below):
| All A's are B's
|| ∀X (a(X) ⇒ b(X))
|| Tip 27
| No A's are B's
|| ∀X (a(X) ⇒ ~b(X))
|| Tip 32
| Some A's are B's
|| ∃X (a(X) & b(X))
| Some A's are not B's
|| ∃X (a(X) & ~b(X))
| All and only A's are B's
|| ∀X (a(X) ⇔ b(X))
|| Tip 35
| Only A's are B's
|| = All B's are A's (above)
|| Tip 34
| Not all A's are B's
|| = Some A's are not B's (above)
|| Tip 33
| All A's are not B's
|| = No A's are B's (above)
|| Tip 33
If you know these canonical forms, and if you can paraphrase the English
until it resembles one of these, then you will be able to translate more
quickly and reliably.
The scope of a quantifier is like the scope of a negation sign: the
first whole proposition (simple or compound), or propositional function,
to its right.
Hence, ∀X a(X) ⇒ b(X) is not
It means (∀X a(X)) ⇒ b(X), not
∀X (a(X) ⇒ b(X)).
It follows that the way to put a long compound in the scope of
a quantifer is: ∀X (...), not "(∀X ...)".
Like the word "or", the word "some" is ambiguous in English, although
most people don't notice its ambiguity.
Just as "or" can signify inclusive or exclusive disjunction, let us
distinguish the inclusive and exclusive senses of the word "some".
(These are my terms; you won't find them in the literature.)
Inclusively, "some" means "at least one, possibly all".
Exclusively, it means "not all, possibly none".
We use it inclusively in sentences like, "Some of you will earn an A
on the final exam."
We want to leave the door open to the possibility that all will earn A's,
and close the door on the possibility that none will.
We use it exclusively when we pass a bowl of nuts to a guest and say,
"Please take some." We mean take a few, or none, but don't take them all.
(For an ambiguity in words like "something", "somebody", "sometime", and
"somewhere", see Tip 54, below.)
Remember that the existential quantifier expresses the
inclusive sense of "some".
As its name implies, the existential quantifier is more a way of
asserting existence than a way of asserting plurality.
It means "more than zero, at least one", not "more than one, at
Don't let the word "some", which usually translates this quantifier,
and which usually suggests plurality, mislead you.
The exclusive sense of "some" should be translated as "not all".
(See Tips 18, 33.)
For example, ∃X (mm(X) & ~eat(X)) says that there is
at least one M&M that she does not eat.
We should resist the temptation to conjoin to this the inclusive
"some" (asserting that there is also at least one M&M that she does
eat); for then we will have ruled out the possibility that she
selected none at all, which we don't want to rule out.
In the sentence, "All even numbers are divisible by 2, but only some
are divisible by 4", the phrase "only some" means "more than none and
less than all" or "neither none nor all".
Hence it is not equivalent to either the inclusive or the exclusive sense
of "some" (Tip 20), although it is equivalent to their conjunction.
We should translate the second half of our example sentence, "only some
even numbers are divisible by four, thus:
∃X (even(X) & div4(X)) & ∃Y (even(Y) & ~div4(Y))
- essentially, "some are and some aren't".
The word "some" should be translated as "only some" when used in a
sentence whose other parts explicitly or implicitly rule out the inclusive
For example, are all the M&M's poisoned? "No, but some are."
The "no" rules out the claim that all are poisoned, so the "some" clearly
says "not none and not all", which is what "only some" asserts.
In deciding between quantifiers, ask yourself whether the English sentence
commits itself to the existence of something or whether it remains
In the former case, use an existential quantifier; in the latter, use
a universal quantifier.
Sometimes a proposition which commits itself to the existence of
something ("UFO's exist") is made the antecedent of a conditional
("If UFO's exist, then our ammonia supplies are in jeopardy").
The "if" in front of the antecedent suspends our commitment to the
existence of whatever the antecedent, by itself, may have asserted
The result is that the compound proposition is non-committal
on the existence of what the antecedent asserts to exist.
In these cases we should still use an existential quantifier for
∃X (ufo(X)) ⇒ ∀Y (ammonia(Y) ⇒ jeopardy(Y)).
In our example, the antecedent took an existential quantifier, and
the overall compound was a conditional.
In such cases be sure that the scope of the existential quantifier
only extends to the end of the antecedent; otherwise you'll have an
existentially quantified conditional, which is rarely what you want.
See Tip 29, below.
Avoid the negative.
Translate into affirmative propositions when you can, not negated ones.
They are not just easier to read.
For example, "We have no bananas" can be translated as
∀X (banana(X) ⇒ ~have(X)) or
~∃X (banana(X) & have(X)) (they are equivalent).
Universe of discourse.
Remember that quantifiers implicitly refer to the universe of discourse.
The universal quantifier doesn't strictly say, "for all things", but more
precisely, "for all things in the universe of discourse".
Similarly, the existential quantifier does not merely say, "for at least
one thing", but "for at least one thing in the universe of discourse".
Remember our convention that the universe of discourse is unlimited
unless we stipulate otherwise.
Read statements with universal quantifiers as if the subject were
"everything whatsoever" (in the universe of discourse).
After a little practice, you'll discover how to make ordinary
assertions in this unusual idiom.
"Everything whatsoever, if it's a dog, goes to heaven."
Limiting the universe of discourse.
From the previous tip (24.ii), notice how the
"if-clause" (antecedent) in a universally quantified conditional functions
to limit the universe of discourse.
It carves out the subset of things, or the individual thing, that we want
to talk about.
We say something about it in the "then-clause" (consequent).
Another example: All humans are mortal.
∀X moratl(X) says that everything whatsoever (in the
universe of discourse) is mortal.
That is much too strong.
We want to limit the universe to humans and make our claim only about
the members of that subset.
We put the limitation in the antecedent of a conditional:
∀X (human(X) ⇒ mortal(X)): all things, if
they are human, are mortal.
(Also see Tip 27 below.)
Translating "and" as "or".
Be prepared to translate "and" as "or".
For example: "Men and women are welcome to apply."
It's tempting to translate the "and" here as a conjunction:
∀X ((man(X) & woman(X)) ⇒ apply(X)).
But this actually says that everything that is both a man and
a woman is welcome to apply.
But we mean that everything that is either a man or a
woman (or both) is welcome to apply:
∀X ((man(X) | woman(X)) ⇒ apply(X)).
Another perspective on this: We want to limit the universe of
discourse to the subset of things that are either men or
women (or both), not to the subset of things that are both men
We can avoid using | if we translate the original sentence
thus: ∀X (man(X) ⇒ apply(X)) &
∀Y (woman(Y) ⇒ apply(Y)) (men are welcome to apply
and women are welcome to apply).
This, however, is equivalent to our translation containing
Universal quantifiers typically take conditionals.
All humans are mortal: ∀X (human(X) ⇒ mortal(X)).
To see this, note that statements about "all" things of a certain kind
(e.g. all humans) contain an implicit "if, then" structure:
For all things in the universe, if they are humans,
then they are mortal.
To appreciate why universal quantifiers usually take conditionals,
try a conjunction to see how absurd it would be.
∀X (human(X) & mortal(X)) says that everything in the
universe is both human and mortal - including my chalk.
Sometimes we want to limit the universe of discourse to things
with two or more properties.
We indicate this limitation with conjunction.
Feel free to use conjunctions in this way even if the main connective
is material implication.
For example, "All fat bats are mammals":
∀X ((fat(X) & bat(X)) ⇒ mammal(X)).
Here the universal quantifier still takes a conditional; but the
antecedent of that conditional is a conjunction.
If we want to limit the universe to things with three or more
properties, we just enlarge the conjunctive string, e.g. "All old,
intellectual, tenured, rabid bats are mammals":
∀X ((old(X) & intellectual(X) & tenured(X) & rabid(X) & bt(X)) => mammal(X)).
(Because conjunction is associative and commutative, we can omit
parentheses inside the conjunctive string.
See Tip 15.ii.)
Remember the rule of exportation.
When the antecedent of a conditional is a conjunction, you can export
conjuncts outside the conjunction.
The last formula is equivalent to
∀X ((old(X) & intellectual(X) & tired(X) & rabid(X)) ⇒ (bat(X) ⇒ mammal(X)))
∀X ((old(X) & intellectual(X) & tired(X)) ⇒ (rabid(X) ⇒ (bat(X) ⇒ mammal(X)))),
and so on.
Use the version most natural for you.
Universal quantifiers should generally not take
negated conditionals, since they are equivalent to
conjunctions (conjunction of the antecedent and the negation of the
consequent) - and you rarely want to universally generalize a
conjunction. See Tip 27.i.
Existential quantifiers typically take conjunctions.
"Some humans are inhumane": ∃X (human(X) & insane(X)).
To see this, paraphrase the original thus: some things have two
properties, namely, being human and being inhumane.
For the error of using a conditional here, see the
Tip 29, next.
Avoid existentially quantified conditionals.
This is only a rule of thumb, not a flat ban.
Existentially quantified conditionals are "grammatical" in our notational
language, but are almost never good translations of English language
For example, "If something falls into a black hole, then it will be lost
forever," reads at first as if it takes an existential quantifier:
∃X (blackholed(X) ⇒ lasts(X)).
But this formula is equivalent to
∃X (~blackholed(X) | lasts(X)), and
∃X ~(blackholed(X) & ~lasts(X)) which are not conditionals.
They are far from what the speaker of the original English sentence
probably meant: there is something which is either not in a black hole
or not lost forever, or something that is not both in a black hole and
The English speaker was non-committal on the existence of things that
might fall into black holes; these formulas commit themselves to the
existence of something.
Moreover, these formulas are made true by the existence of my chalk,
since it has not fallen into a black hole.
The original English speaker did not intend that result.
When we notice that our translation is an existentially quantified
conditional, ∃X (blackholed(X) => lasts(X)), then we
should either change the implication to a conjunction,
∃X (blackholed(X) & lasts(X)) to suit the quantifier,
or change from an existential to a universal quantifier,
∀X (blackholed(X) => lasts(X)) to suit the operator.
The first solution won't work; it commits us the existence of things
in a black hole that are lost forever; the English does not.
The second one, however, is accurate, contrary to first impression.
To see this, paraphrase the English as "Everything that falls into
a black hole will be lost forever."
Note that existentially quantified negated
conditionals are acceptable, because they are disguised conjunctions.
∃X ~(blackholed(X) ⇒ lasts(X)) is equivalent to
∃X (blackholed(X) & ~lasts(X)), which says that there
is something in a black hole that is not lost forever.
This is not what the original example said, of course, but it would
be a good translation of the negation of the English original.
By the same token, existentially quantified negated
conjunctions are usually inaccurate translations, since
they are equivalent to conditionals (one conjunct as the antecedent,
the other conjunct, negated, as the consequent).
Don't mistake existentially quantified conditionals (which you should
generally avoid) for existentially quantified antecedents to
conditionals (which are perfectly acceptable).
An example of the latter is "If there is a God, then I'm in trouble":
∃X god(X) => trouble(i).
The scope of the existential quantifier only extends to the
antecedent, not the entire conditional.
Expressions like this help us translate sentences that say, in effect
"we are non-committal on the existence of X, but if we do
commit ourselves to the existence of X, then..."
It follows that there are two ways to be non-committal about
the existence of something: (1) use a universal quantifier, or
(2) use an existential quantifier in the antecedent of a conditional.
Translate names as constants.
"Elvis is alive" is simply "alive(elvis)".
If you forget this, you are likely to make Elvis into a predicate,
∃X (elvis(X) & alive(X)), or into a variable,
Bind all your variables.
If you don't, you have translated the English into a propositional
function rather than a proposition.
Since propositional functions are neither true nor false, the chances
are very slim that the English sentence was a propositional function.
In English we sometimes say "Somebody slept in my bed!" when we don't
know who it was. This is an existentially quantified statement:
We almost never say, "(blank) slept in my bed!".
This is a propositional function with a free variable: sleptinbed(X).
No A's are B's.
We translate this as ∀X (a(X) ⇒ ~b(X)).
By transposition, this is equivalent to
∀X (b(X) ⇒ ~a(X)); hence in translation, use either
If no A's are B's, then no B's are A's.
(See also Tip 33, next.)
It may be tempting to translate "No A's are B's" as
∀X~(a(X) ⇒ b(X)).
But this is equivalent to ∀X~(~a(X) | b(X)) (by
material implication) which is equivalent to
∀X (a(X) & ~b(X)) (by DeMorgan's theorem) which
asserts the much stronger claim that everything whatsoever is an A,
and nothing whatsoever is a B.
It may also be tempting to translate "No A's are B's" as
~∀X (a(X) ⇒ b(X)) or, in English, "it's false
that all A's are B's."
But this is equivalent to ∃X ~(a(X) ⇒ b(X)) which
is equivalent to ∃X ~(~a(X) | b(X)) which is
equivalent to ∃X (a(X) & ~b(X)) which asserts the
much weaker claim that there is at least one thing that is an A
but not also a B.
Not all / all not.
English speakers frequently mix these up; hence you might do so too.
For example, if you want to warn people that glittering things are
sometimes gold, but sometimes not gold, then you should say
"Not all that glitters is gold."
Despite this, the proverb says "All that glitters is
not gold," which is absurd; it says that no glittering
things are gold, not even gold.
(The "not all" / "all not" mistake is similar to the "not both" / "both
not" mistake; see Tip 7, above.)
There are two natural but non-equivalent ways to translate "all not"
statements, e.g. "All bats are not feathered."
First, ∀X~(bats(X) ⇒ feathered(X)), and second,
∀X (bats(X) ⇒ ~feathered(X)).
In the first, we are negating the conditional; this is equivalent to
∀X~(~bats(X) | feathered(X)), which is equivalent
to ∀X (bats(X) & ~feathered), which says that
everything in the universe is an unfeathered bat - including my
But this is absurd.
The second says that no bats are feathered (all bats are
Virtually every "all not" statement will take the second form.
Remember: "All A's are not B's" is equivalent to "No A's are B's."
There are two natural ways to translate "not all" statements, and
it turns out that they are equivalent.
For example, "Not all cars are lemons" could be translated
~∀X (car(X) ⇒ lemon(X)), or
∃X (car(X) & ~lemon(X)).
The former says that it's false that all cars are lemons; the
latter says that at least one car is not a lemon.
It would be inaccurate to translate into the formula,
∀X~(car(X) ⇒ lemon(X)), which is equivalent to
∀X (car(X) & ~lemon(X)), which says that everything
whatsoever is both a car and not a lemon - including my chalk.
When you want to say "all are not", then say that "none is".
It's equivalent and less confusing.
When you want to say "not all are", then say "some are not".
It's equivalent and less confusing.
Translating "only" sentences can be very counter-intuitive at first, but
a simple rule makes them easy.
The rule is this: "Only B's are A's" is equivalent to "All A's are B's".
Hence it should be translated ∀X (a(X) ⇒ b(X)).
The expression, ∀X (a(X) ⇒ b(X)), in short,
accurately translates both the following English sentences:
(1) All A's are B's, and (2) Only B's are A's.
Or both (1) All ax-murderers are bad, and (2) Only bad people are
This Venn or Euler diagram of the situation may make it more
All A's are B's.
Only B's are A's.
∀X (a(X) ⇒ b(X))
It often helps to draw a diagram of the English sentence, and then
translate the diagram into notation.
The antecedent in ∀X (a(X) ⇒ b(X)) refers to
the inner circle (subset), and the consequent to the outer circle
You should be able to figure this out when you need it so that you
don't have to memorize it.
All and only.
If "all" sentences and "only" statements are conditionals that reverse
each other (Tips 18, 27,
34), then "all and only" statements conjoin such
conditionals; they are biconditionals.
For example, "She picked out all and only the bad grapes":
∀X (pickedout(X) ⇔ bad(X)).
We can paraphrase "None but ripe bananas are edible" in many equivalent
No bananas except ripe ones are edible.
Only ripe bananas are edible.
A banana is edible only if it is ripe.
All edible bananas are ripe.
∀X ((bananas(X) & edible(X)) ⇒ ripe(X)).
Don't let these many forms confuse you.
The articles "a" and "an" sometimes take existential, sometimes universal,
"A bat is a mammal" really means "All bats are mammals":
∀X (bat(X) ⇒ mammal(X)).
"A bat is on my neck" means "There exists a bat on my neck":
∃X (bat(X) & neck(X)).
Because there is no hard and fast rule, paraphrase the English before
"The" sometimes takes existential, sometimes universal, quantifiers.
"The horse is a noble animal" really means "All horses are noble animals":
∀X (horse(X) ⇒ noble(X)).
"The horse in the winner's circle is on drugs" really means "There exists
a horse (namely, the one in the winner's circle) who is on drugs":
∃X (horse(X) & winner(X) & druggy(X)).
Because there is no hard and fast rule, paraphrase the English before
"Any" sometimes takes existential, sometimes universal, quantifiers.
"Any bat is a mammal" really means "All bats are mammals":
∀X (bat(X) ⇒ mammal(X)).
"If any bats are in the room, then I'm outtahere" means "If there exists a
bat in the room...": ∃X (bat(X) & inroom(X)) ⇒ out(i).
Because there is no hard and fast rule, paraphrase the English before
As in propositional logic, a common translation mistake is to omit
But in predicate logic, there are two reasons to insert parentheses,
not just one:
To resolve ambiguities of operator precedence.
See Tip 15, above.
To mark the scopes of quantifiers.
Make sure that each quantifier has the scope it needs.
Is every variable inside the scope of some quantifier?
Is every variable inside the scope of the right quantifier?
If you understand the role of parentheses, then you should
understand that these two expressions are not equivalent:
∀X a(X) | ∀Xb(X), and
∀X (a(X) | b(X)).
If our universe contains some things that are A's but not B's, and
other things that are B's but not A's, and nothing that is neither,
then the first of these expressions will be false and the second
Moreover, the first is truth-functional compound, while the second
For example, in the universe of people,
∀X living(X) | ∀X dead(X) asserts that either
everyone is living or everyone is dead, which is false.
By contrast, ∀X (living(X) | dead(X)) asserts that
everyone is either living or dead, which is true.
1st Order Logic: Multiply General Monadic
When do you need more than one quantifier?
The answer is not simple.
You will not err if, in translating compound statements, you add a new
quantifier for every component which would need a quantifier if you
were to translate it as an entire statement unto itself.
But on the other hand, sometimes you can get away with fewer.
For example, "All cats are mammals, but no cats are birds".
Each component of this compound would require a quantifier if
Hence, you will not err if you use two quantifiers:
∀X (cat(X) ⇒ mammal(X)) & ∀Y (cat(Y) ⇒ ~bird(Y)).
But on the other hand, the second quantifier is unnecessary in this
case, provided the second component uses the variables of the first
and is put within the scope of the first quantifier:
∀X ((cat(X) ⇒ mammal(X)) & (cat(X) => ~bird(X))).
The two translations in 41.i are equivalent,
not because the subject of the two components is the same (cats),
but because the quantifier appropriate to each component is the
same (universal) and the operator joining the components is
For example: "All cats are mammals, but no dogs are birds".
In this sentence, the two components no longer share a common
subject, but they still require the same kind of quantifier and
are still joined by conjunction.
As before, you will not err if you use two quantifiers:
∀X (cat(X) ⇒ mammal(X)) & ∀Y (dog(Y) ⇒ ~bird(Y)).
But we can still dispense with the second:
∀X ((cat(X) ⇒ mammal(X)) & (dog(X) => ~bird(X))).
These two translations are also provably equivalent.
When do you need a new variable letter?
The answer is simple: (1) logically, never, but (2) for clarity,
whenever you introduce a new quantifier into the same statement.
If you are using prenex normal form (introduced in
Tip 43, below), then you must use a new
variable letter for each new quantifier.
But the "logically never" part of the rule in
Tip 42 still stands, because you need not
ever use prenex normal form.
In an expression like "∃X a(X) ⇒ ∃X b(X)", each
quantifier governs the expression within its own scope.
The two don't interfere with each other.
Hence they may use the same variable letter without ambiguity.
But it is confusing to readers to see the same letter when it may
not refer to the same objects.
We might mistakenly infer that the things that are A's are the same
things that are B's; but that would not be warranted.
To prevent such mistakes, make it a habit to use new variable
letters with each new quantifier in the same statement:
∃X a(X) ⇒ ∀Y b(Y).
Even when quantifier scopes nest inside each other, the quantifiers
do not interfere with each other and may unambiguously use the same
∀X (a(X) => ∀X b(X)).
We can (and should) parse such expressions under the rule that
inner quantifiers should be read (have their scopes settled,
variables bound) before outer quantifiers.
But for the sake of poor humans who must read these, use new letters
with new quantifiers:
∀X (a(X) ⇒ ∀Y b(Y)).
Prenex normal form.
A predicate logic expression is in prenex normal form if (1) all its
quantifiers are clustered at the left, (2) no quantifier is negated,
(3) the scope of each quantifier extends to the right end of the
expression, (4) no two quantifiers use the same variable, (5) every
letter used by a quantifier is used later in the expression as a bound
Every predicate logic expression can be cast in prenex normal form.
Translating English sentences into prenex normal form is easier and more
natural for most people than using any other format.
For example, ∀X(a(X) ⇒ ∀Y (b(Y) ⇒ c(Y)))
can be restated in prenex normal form as
∀X ∀Y (a(X) ⇒ (b(Y) ⇒ c(Y))).
Repeating a reference, with constants.
To refer to the same object more than once in an expression, with
constants, you must use the same constant in each reference.
"If Socrates is human, then Socrates is mortal" becomes
human(socrates) ⇒ mortal(socrates (using the same
constant socrates in each case).
If we had said human(socrates) ⇒ human(plato), then the
socrates and plato might be two names for the same
object, but they might not.
The only way to enforce univocity of reference with constants is to use
the same letter.
Repeating a reference, with variables.
To refer to the same object more than once in an expression, without
constants, two conditions must be met: (1) you must use the same
variable in each reference, and (2) each occurrence of that variable
intended to refer to the same object must be bound by the same quantifier.
For example, "If all dancers are human, then they are mortal" becomes
∀X ((dancer(X) ⇒ human(X)) ⇒ mortal(X)).
Here the "they" refers back to the dancing humans; we use the same
variable X and put it in the scope of the same quantifier as
the component about dancing humans.
∀X ((dancer(X) ⇒ human(X)) ⇒ mortal(Y)), fails
by using a different variable, and this formula,
∀X (dancer(X) ⇒ human(X)) ⇒ mortal(X), fails
by leaving the final X outside the scope of the first quantifier.
(In addition both the latter two expressions fail by leaving the final
occurrence of the final variable free, creating a propositional function
instead of a proposition; see Tip 31, above.)
There is another way to repeat a reference with variables that
violates both the conditions stated in the previous rule.
For example, "If all dancers have knee injuries, then they will be
frustrated," can be translated under the rule in
Tip 15 as
∀X ((dancer(X) ⇒ knee(X)) ⇒ frustrated(X)).
But it could also be translated as
∀X (dancer(X) ⇒ knee(X)) ⇒ ∀Y (dancer(Y) ⇒ frustrated(Y)).
Requantifying on dancers in the second clause doesn't mean we are
talking about a different group of people.
On the contrary, the fact that we repeat the predicate
dancer, and quantify universally both times, guarantees
that we're talking about the same group.
All references to "all dancers" refer to the same group.
We can modify the second technique above to work even when we can't
use universal quantifiers in both clauses.
For example, "If all dancers have knee injuries, then some of them
will be frustrated," can be translated as
∀X (dancer(X) ⇒ knee(X)) ⇒ ∃Y (dancer(Y) & knee(Y) & frustrated(Y)).
Even though we requantified in the consequent, we are referring to a
subset of the same group described in the antecedent.
To make sure we're referring not just to some dancers, but to the
ones with knee injuries, we repeat those predicates in the scope
of the new quantifier.
The consequent does not mention knee injuries, but we must mention
them in our translation to assure that we are referring to the right
group of dancers.
The same thing may have more than one name or description.
Even when different variables are used, they may or may not
refer to the same thing.
For example, in ∃X human(X) & ∃Y mortal(Y), we
assert that some things are human and some other things (not
necessarily the same things) are mortal.
The existence of human mortals, or the possibility that the
X and Y refer to the same objects, is neither
asserted nor precluded.
In this expression,
∃X (human(X) & logician(X)) & ∀Y (logician(Y) ⇒ foodchain(Y)),
we are saying that some humans are logicians and that all logicians
are high on the food chain.
Here, the second component's universal claim about logicians
guarantees that it covers the creatures referred to by the first
component's existential claim, even though different variables and
quantifiers are used.
See Tip 16.
If you want to ensure that a component of a compound refers to the
very same objects as another component of the same compound, see
Tips 44 and 45 above.
Quantifier exchange, by negation.
Let us say that to exchange quantifiers is to convert a
universal quantifier to an existential quantifier, or vice versa.
If we are willing to add or subtract negation signs appropriately, then
any quantifier can be exchanged without changing the meaning or
truth-value of the expression in which it occurs.
For the task of translation, this means that we can choose any quantifier
we like if we are willing to live with the needed negation signs.
It also means that we can always translate into affirmative rather than
negative propositions (Tip 23) if we are willing to
use the quantifier that makes that possible.
Quantifier exchange, by reassociation.
With some types of expression, we can exchange quantifiers
without adding or subtracting negation signs if we reassociate
or rebracket appropriately.
One family of such expressions is based on the logical truth,
∀X (f(X) ⇒ q) ⇔ (∃X f(X) ⇒ q), when
q is any statement with no free occurrence of X.
"If there are any tarantulas in the car, then I'm walking."
The logical truth above tells us that we can translate this sentence
with equal accuracy using a universal quantifier,
∀X (tarantulas(X) ⇒ walking(i)), or an existential
quantifier, ∃X tarantulas(X) ⇒ walking(i), provided
we are careful with our parentheses.
This is at first a surprising result.
But it begins to make sense when we translate the two formulas back into
English. "Given any x, if x is a T, then..." and "If there is at least
one x that is a T, then...".
Both say, "if there are any T's, then...".
The principle of least analysis.
If an argument's validity depends only on propositional logic relations -
structure between, not within, propositions - then don't bother
translating it into predicate notation.
Take this argument, for example: "If all cats are mammals, then all
tigers are mammals; All cats are mammals; Therefore, all tigers are
This argument is a simple modus ponens.
We capture everything relevant to its validity if we translate it thus:
cats_mammals ⇒ tigers_mammals, cats_mammals, tigers_mammals.
Opening up propositions cats_mammals and tigers_mammals
in order to see their internal subject-predicate structure would be
unnecessary, even distracting, although it would not make the argument
∀X (cat(X) ⇒ mammal(X)) ⇒ ∀Y (tiger(Y) ⇒ mammal(Y)), ∀X (cat(X) ⇒ mammal(X)), ∀Y (taiger(Y) ⇒ mammal(Y)).
The principle of least analysis is an exception to general rule to
translate English sentences into their specific form.
See Tip 16, above.
Variant of least analysis.
You can define predicate constants to suit yourself.
To translate "All the Martian students did well", you could use two
predicates, martian(X) (X is a Martian) and
student(X) (X is a student) to indicate who did well:
∀X ((martian(X) & student(X)) ⇒ didwell(X)).
Or you could use just one predicate to indicate who did well, and pack
two pieces of meaning into it, e.g. martian_student(X) (X
is a Martian student):
∀X (martian_student(X) ⇒ didwell(X)).
Unless you are doing a textbook exercise in which you are constrained
to use the predicates explicitly listed for you, you are free to choose
whether to lump many properties into a single predicate or to assign
separate predicates to separate properties.
Use jumbo predicates like the latter if revealing the internal structure
of that predicate is not necessary for validity.
It probably will be necessary for validity if another premise
separates what this one has joined together, by speaking e.g. of
non-Martian students or Martian non-students - for example, "The Martian
teachers were not surprised" or "The Venusian students
When you have more than one quantifier, it is easier than ever to fail
to give each one the right scope (Tip 40).
Check this before considering your translation finished.
Moreover, parentheses can mean the difference between a universal and an
existential quantifier (Tip 48).
1st Order Logic: Polyadic
Implicit and explicit relations.
Many propositions assert relations implicitly that sometimes must be
made explicit in translation: "Martha's paper had been graded" tacitly
asserts that "Martha's paper had been graded by the underpaid
We could translate the sentence
|| graded(X) = the teacher graded Martha's X
|| graded(X,Y) = X graded Martha's Y
|| graded(X,Y,Z) = X graded Y's Z
In the first case, we pack both the teacher and Martha into the
In the second case we pack just Martha into it.
In the third case, we pack neither of these people into the
graded predicate, and use it only to denote the act of grading,
which involves three individual objects (teacher, student, assignment).
How much we make explicit with our notation, and how much we pack away,
is entirely up to us.
For the sake of proofs, we should make explicit all the structures on
which validity depends (Tip 50), but no more than
that (Tip 49).
Order of quantifiers.
If an expression with all its quantifiers stacked at the left side
(e.g. in prenex normal form, Tip 43), contains
more than one quantifier, then does it matter in what order they appear?
If it does matter, which quantifier goes first and when?
When the quantifiers are of the same type, then their order does
But when the quantifiers are of different types, then their order
We will soon see the rule telling us which order to use.
But first a note on what this rule corresponds to in English:
- ∀X ∀Y (a(X,Y) ⇒ b(X,Y))
∀Y ∀X (a(X,Y) ⇒ b(X,Y))
- ∃X ∃Y (a(X,Y) ⇒ b(X,Y))
∃Y ∃X (a(X,Y) ⇒ b(X,Y))
In English, "John loves Mary" and "Mary is loved by John" express
the same proposition.
One is in the active voice, the other in the passive.
In English we use voice and word order as clues to determine who
is the lover and who is the beloved - or, in a many-place predicate,
which individual occupies which position in the relation.
We need a comparable clue in our formal language.
When quantifiers are of different types, their order matters.
Follow this rule: when order matters, the first quantifier
quantifies the subject of the sentence; the others quantify the
objects of the verb.
For example, let our universe of discourse be human beings:
For the sake of further analysis, take the second example above,
∃Y ∀X loves(X,Y) =
Somebody (a particular person) is loved by everyone.
By putting the Y quantifier first, we are making the
individual in the Y position - the beloved, not the lover
- the subject of the sentence.
We now have a choice.
We can make the beloved the subject of the sentence, which requires
the passive voice, "Someone is loved by everyone."
Or we can shun the passive voice by reassigning the beloved to the
object position, "Everyone loves the same person."
So we can say that the Y individual is only the subject of
the sentence if we are willing to use the passive voice.
- ∀X ∃Y loves(X,Y) =
Everyone loves someone (not necessarily the same person)
- ∃Y ∀X loves(X,Y) =
Somebody (a particular person) is loved by everyone
- ∀X ∃Y loves(Y,X) =
Everyone is loved by someone (not necessarily the same person)
- ∃Y ∀X loves(Y,X) =
Somebody (a particular person) loves everyone
Here are 10 examples.
Note that pairs 1-2, 3-4, and 5-6 are equivalent.
Here are some other members of the same family.
What do they mean?
|| Everything attracts everything.
|| ∀X ∀Y attracts(X,Y)
|| Everything is attracted by everything.
|| ∀Y ∀X attracts(X,Y)
|| Something attracts something.
|| ∃X ∃Y attracts(X,Y)
|| Something is attracted by something.
|| ∃Y ∃X attracts(X,Y)
|| Nothing attracts anything.
|| ∀X ∀Y ~attracts(X,Y)
|| Nothing is attracted by anything.
|| ∀Y ∀X ~attracts(X,Y)
|| Everything attracts something.
|| ∀X ∃Y attracts(X,Y)
|| Something is attracted by everything.
|| ∃Y ∀X attracts(X,Y)
|| Everything is attracted by something.
|| ∀Y ∃X attracts(X,Y)
|| Something attracts everything.
|| ∃X ∀Y attracts(X,Y)
- ∃X ∃Y ~attracts(X,Y)
- ∀X ∃Y ~attracts(X,Y)
- ∃Y ∀X~attracts(X,Y)
- ∀Y ∃X ~attracts(X,Y)
- ∃X ∀Y attracts(X,Y)
"Something" and similar words like "somebody", "sometime", and
"somewhere" are ambiguous.
In the sentence, "Everything attracts something", the word "something"
It could mean (1) something in particular, or (2) something or other.
For later reference, let us say that the former is the definite
and the latter the indefinite sense of the word "something".
(Logicians have no terms for this important distinction, so I've had to
If we read "Everything attracts something" in its definite sense, it
asserts that everything attracts one and the same attractee; if we read
it in the indefinite sense, it asserts that everything attracts at least
one attractee, not necessarily the same one.
These are clearly not equivalent and must be translated differently, but
From Tip 53 we learned the rule that order matters
for quantifiers of different types, and that the first is regarded as
quantifying the subject of the sentence.
We will use that rule here, but it is not enough.
We must add a new rule: that when an existential quantifier comes first,
or applies to the subject of a sentence, it is to be understood in the
definite sense, and when it does not come first, or applies to an object
of the verb, then it is to be understood in the indefinite sense.
With this understanding, then our sentence in its definite sense would
be translated, ∃Y ∀X attracts(X,Y).
This says that something in particular is attracted by everything, which
is the same as saying that everything attracts some particular thing.
In its indefinite sense, it would be,
∀X ∃X attracts(X,Y).
This says that everything attracts something or other, which is the
same as saying that something or other is attracted by everything.
Another example to clarify the rule.
"Everyone is offended by something".
In its definite sense it means that somewhere there is a universally
We might be wise to find it and destroy it immediately.
But in its indefinite sense it means that everyone is offended by
something or other, not necessarily by the same thing, perhaps each
by a different thing.
What offends you might not offend me, and might even be precious to
The policy of destroying or prohibiting what offends you might be
one of the things that offends me.
So no obvious policy for eliminating offense suggests itself.
On the contrary, if my offended sensibilities count exactly as much
as yours, and vice versa, then we might have to live with a little
offense as a natural side-effect of differing from one another in
The sentence in its definite sense (the former), should be
translated, ∃X ∀Y offends(X,Y) (something in
particular offends everyone).
In its indefinite sense (the latter) it should be translated,
∀Y ∃X offends(X,Y) (everyone is offended by
something or other).
Although I've said "something in particular, some one thing" for
simplicity and clarity, the definite sense of "something" could
signify a plurality of particular things.
So ∃Y ∀X attracts(X,Y) could mean that some
particular set of things attracts everything.
Similarly, the indefinite sense of "something" could signify a
plurality of things.
So ∀X ∃X attracts(X,Y) could mean that
everything attracts some plural number of things, but not
necessarily the same plurality or set of things.
For other examples, see Tip 53.iv.
For a related ambiguity in the word "some", see
Tip 20, above.
The word "sometimes" can refer to the existence of some times at which
a predicate is true of certain objects.
"Sometimes John loves Mary" would be translated
∃X (time(X) & loves(john,mary,X)) - there is an X
such that X is a time and John loves Mary at that time.
"Once upon a time John loved Mary" would be translated the same way.
"John will always love Mary," would be translated
∀X (time(X) ⇒ loves(john,mary,X)).
"John never loved Mary":
∀X (time(X) ⇒ ~loves(john,mary,X)).
The word "somewhere" can refer to places where a predicate is true of
"Somewhere a wild boar is enjoying sunlight" would be translated
∃X ∃Y ∃Z (place(X) & boar(Y) & sunlight(Z) & enjoying(X,Y,Z))
- there is a place X, a boar Y, and some sunlight
Z such that that boar enjoys that sunlight at that place.
We can go beyond the crude quantities of all, some,
and none to express more precisely how many things have a
We can express the natural numbers as adjectives ("three blind mice"),
if not as nouns ("one, two, three").
We can already express zero: zero things are human, nothing is
human, all things are not human:
∀X ~human(X), or ~∃X human(X).
To express natural numbers in predicate notation, we must introduce
a predicate to express identity, that is, to do the work that
the "=" symbol does in arithmetic.
Adjectival natural numbers.
Exactly one thing is human:
∃X ∀Y (human(X) & (human(Y) ⇒ (X = Y))):
there is at least one thing, X, such that X is
human, and if there is anything else, Y, that is human,
then it is the same as the first.
Exactly two things are human:
∃X ∃Y ∀Z (((human(X) & human(Y) & X != Y & (human(Z) ⇒ ((Z = X) | (Z = Y)))):
there is at least one thing, X, that is human, and another
thing, Y, that is human, and X is not the same as
Y, and if there is another thing, Z, that is
human, then it is either the same as X or the same as
And so on for three, four, five...things.
At least one thing is human: ∃X human(X).
This is the unadorned existential quantifier.
At least two things are human:
∃X ∃Y ((human(X) & human(Y)) & (X != Y)).
There is a human X, and a human Y, and X
is not the same thing as Y.
At most one thing is human:
∀X ∀Y (human(X) ⇒ (human(Y) ⇒ (X = Y))).
For all X and for all Y, if X is human,
then if Y is human too, then X is the same thing
By avoiding the existential quantifier in this expression, we are
non-committal on the question whether there are any humans.
At most two things are human:
∀X ∀Y ∀Z (((human(X) & human(Y)) & (X != Y)) => (human(Z) => ((Z = X) | (Z = Y))))
"Only (name)" and "All but (name)" expressions.
Only Socrates is human:
human(socrates) & ∀X ((X != socrates) ⇒ ~human(X)).
Socrates is human, and for all things X, if X is
not Socrates, then X is not human.
Only Socrates and Plato are human:
human(socrates) & human(plato) & ∀X (((X != socrates) & (X != plato)) ⇒ ~human(X)).
All but Socrates are human:
~human(socrates) & ∀X ((X != socrates) ⇒ human(X)).
Socrates is not human, and for all things X, if X
is not Socrates, then X is human.
All but Socrates and Plato are human:
~human(socrates) & ~human(plato) & ∀X (((X != socrates) & (X != plato)) ⇒ human(X)).