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, Macmillan, 1979.


Truth-Functional Propositional Logic

  1. Bivalence. 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.

  2. Exclusive disjunction. 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 both. 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.

  3. Conjunction. 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.
    1. Sometimes "and" does not join whole propositions into a compound proposition. 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 other.
    2. Sometimes "and" joins adjectives: "The leech was long and wet and slimy." This, however, can be paraphrased, "The leech was long, and the leech was wet, and the leech was slimy."

  4. Unless. 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, above. Because there is no hard and fast rule, paraphrase the English before translating. (I thank Susanna S. Epp for helpful correspondence on the subtlety of "unless".)

  5. And/or. 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.

  6. Neither, nor. "Neither p nor q" means that both p and q are false. Therefore translate it ~p & ~q or ~(p | q). These two formulas are equivalent by DeMorgan's Theorem.

  7. 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 DeMorgan's Theorems. (For the related distinction between "not all" and "all not", see Tip 33, below.)

  8. Material implication. 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 of p". The least intuitive is "p only if q". See the next two tips.
    1. 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 implication. They may seem so because they make p into a condition or reason for q. 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).

  9. 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.
    1. Satisfy yourself of this by reflecting on modus ponens and modus tollens. 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 ~p). Hence the consequent is the necessary condition of antecedent.
    2. 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.
    3. 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.
    4. If p is both necessary and sufficient for q, then we must say p ⇔ q (material equivalence).

  10. Only if. We translate "p only if q" as p ⇒ q. This is surprising to many people because "if" usually cues the antecedent. 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 consequent.

    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.

  11. 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.
    1. 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.
    2. Many logicians, mathematicians, and philosophers abbreviate "if and only if" as "iff". Hence "p iff q" should be translated as p ⇔ q.

  12. Just when. Sometimes in English we say that p is true "just when" q is true. (Or perhaps this locution is only common among logicians and mathematicians.) 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.

  13. Even if. "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.)

  14. Truth-functionality. 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 the rest. Two examples:
    1. "And" in English sometimes expresses temporal succession, not just conjunction. "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.
    2. 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, only implication. Moreover, not all senses of logical implication in English are truth-functional. 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.)

  15. Punctuation. Parentheses and brackets are the punctuation marks of our logical language. With a few exceptions, whenever you have two or more operators in a single compound expression, you will need parentheses in order to prevent ambiguity. For example, p ⇒ q | r is ambiguous. It could mean (p ⇒ q) | r, or p ⇒ (q | r), which are not equivalent.
    1. 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 variations.
    2. 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 create ambiguity. 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.)
    3. 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 precedence". There are customary rules of operator precedence in algebra, but none in logical notation. Hence, we must use parentheses.
    4. 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.
    5. Omitting necessary parentheses is a common mistake in translation. Make one last check before you think your translation is finished.

  16. Specific form. 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 original.

    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 our notation. 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

  1. Play. 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.
    1. Paraphrase. 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, 28, 29, 37, 38, and 39, below.
    2. Transform. 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, 32.i, 32.ii, 33.i, and 33.ii, below.

  2. 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.

  3. Quantifier scope. 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.
    1. Hence, ∀X a(X) ⇒ b(X) is not ambiguous. It means (∀X a(X)) ⇒ b(X), not ∀X (a(X) ⇒ b(X)).
    2. It follows that the way to put a long compound in the scope of a quantifer is: ∀X (...), not "(∀X ...)".

  4. Some. 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.)
    1. Remember that the existential quantifier expresses the inclusive sense of "some".
    2. 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 least two". Don't let the word "some", which usually translates this quantifier, and which usually suggests plurality, mislead you.
    3. 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.

  5. Only some. 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 sense. 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.

  6. Which quantifier? In deciding between quantifiers, ask yourself whether the English sentence commits itself to the existence of something or whether it remains non-committal. In the former case, use an existential quantifier; in the latter, use a universal quantifier.
    1. 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 to exist. 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 the antecedent: ∃X (ufo(X)) ⇒ ∀Y (ammonia(Y) ⇒ jeopardy(Y)).
    2. 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.

  7. 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).

  8. 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".
    1. Remember our convention that the universe of discourse is unlimited unless we stipulate otherwise.
    2. 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."

  9. 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.)

  10. 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)).
    1. 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 and women.
    2. 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 |.

  11. 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.
    1. 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.
    2. 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.)
    3. 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))) and to ∀X ((old(X) & intellectual(X) & tired(X)) ⇒ (rabid(X) ⇒ (bat(X) ⇒ mammal(X)))), and so on. Use the version most natural for you.
    4. 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.

  12. 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.

  13. 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 conditionals. 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 not lost. 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.
    1. 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."
    2. 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.
    3. 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).
    4. 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..."
    5. 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.

  14. Names. 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, ∀Elvis alive(Elvis).

  15. 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: ∃X sleptinbed(X). We almost never say, "(blank) slept in my bed!". This is a propositional function with a free variable: sleptinbed(X).

  16. 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 one. If no A's are B's, then no B's are A's. (See also Tip 33, next.)
    1. 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.
    2. 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.

  17. 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.)
    1. 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 chalk. But this is absurd. The second says that no bats are feathered (all bats are unfeathered). 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."
    2. 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.
    3. When you want to say "all are not", then say that "none is". It's equivalent and less confusing.
    4. When you want to say "not all are", then say "some are not". It's equivalent and less confusing.

  18. Only. 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)).
    1. 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 ax-murderers.
    2. This Venn or Euler diagram of the situation may make it more intuitive.

      A

      B

      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 (superset). You should be able to figure this out when you need it so that you don't have to memorize it.

  19. 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)).

  20. None but. We can paraphrase "None but ripe bananas are edible" in many equivalent ways. 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.

  21. Indefinite articles. The articles "a" and "an" sometimes take existential, sometimes universal, quantifiers. "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 translating.

  22. Definite articles. "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 translating.

  23. Any. "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 translating.

  24. Punctuation. As in propositional logic, a common translation mistake is to omit necessary parentheses. But in predicate logic, there are two reasons to insert parentheses, not just one:
    1. To resolve ambiguities of operator precedence. See Tip 15, above.
    2. 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?
    3. 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 true. Moreover, the first is truth-functional compound, while the second is not. 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

  1. 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.
    1. For example, "All cats are mammals, but no cats are birds". Each component of this compound would require a quantifier if translated separately. 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))).
    2. 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 conjunction. 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.

  2. 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.
    1. 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.
    2. 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).
    3. Even when quantifier scopes nest inside each other, the quantifiers do not interfere with each other and may unambiguously use the same letter: ∀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)).

  3. 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 variable. 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))).

  4. 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.

  5. 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. The formula, ∀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.)
    1. 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.
    2. 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.

  6. 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.
    1. 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.
    2. 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.
    3. 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.

  7. 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.

  8. 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...".

  9. 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 mammals." 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 invalid: ∀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.

  10. 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 flunked miserably".

  11. Punctuation again. 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

  1. 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 teacher." We could translate the sentence

    monadically graded(X) = the teacher graded Martha's X
    dyadically graded(X,Y) = X graded Martha's Y
    triadically graded(X,Y,Z) = X graded Y's Z

    In the first case, we pack both the teacher and Martha into the graded predicate. 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).

  2. 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?
    1. When the quantifiers are of the same type, then their order does not matter. For example:
      • ∀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))
      But when the quantifiers are of different types, then their order does matter. We will soon see the rule telling us which order to use. But first a note on what this rule corresponds to in English:
    2. Grammatical interlude. 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.
    3. 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:
      • ∀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
      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.
    4. Here are 10 examples.
      1 Everything attracts everything. ∀X ∀Y attracts(X,Y)
      2 Everything is attracted by everything. ∀Y ∀X attracts(X,Y)
      3 Something attracts something. ∃X ∃Y attracts(X,Y)
      4 Something is attracted by something. ∃Y ∃X attracts(X,Y)
      5 Nothing attracts anything. ∀X ∀Y ~attracts(X,Y)
      6 Nothing is attracted by anything. ∀Y ∀X ~attracts(X,Y)
      7 Everything attracts something. ∀X ∃Y attracts(X,Y)
      8 Something is attracted by everything. ∃Y ∀X attracts(X,Y)
      9 Everything is attracted by something. ∀Y ∃X attracts(X,Y)
      10 Something attracts everything. ∃X ∀Y attracts(X,Y)
      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?
      • ∃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)

  3. Something. "Something" and similar words like "somebody", "sometime", and "somewhere" are ambiguous. In the sentence, "Everything attracts something", the word "something" is ambiguous. 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 introduce some.) 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 how?

    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.

    1. Another example to clarify the rule. "Everyone is offended by something". In its definite sense it means that somewhere there is a universally offensive object. 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 me. 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 our sensibilities. 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).
    2. 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.
    3. For other examples, see Tip 53.iv. For a related ambiguity in the word "some", see Tip 20, above.

  4. Temporal relations. 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)).

  5. Spatial relations. The word "somewhere" can refer to places where a predicate is true of certain objects. "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.

  6. Numerical expressions. We can go beyond the crude quantities of all, some, and none to express more precisely how many things have a certain property. We can express the natural numbers as adjectives ("three blind mice"), if not as nouns ("one, two, three").
    1. Zero. We can already express zero: zero things are human, nothing is human, all things are not human: ∀X ~human(X), or ~∃X human(X).
    2. Introducing identity. 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.
    3. 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 Y. And so on for three, four, five...things.
    4. At least. 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.
    5. At most. 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 as Y. 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))))
    6. "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)).