Even after rereading this, I still cannot distinguish intuitively (A → B) → C vs A → (B → C). So please allow me to concretise that question with this example (from scrolling 40% down here):

[1.] If Hyperion and Starbucks are both closed, then if you insist on having coffee, you’re going to go to MacDonald’s but you’ll wish you hadn’t.
[2.] If Hyperion is closed, then Starbucks is too.
[3.] So, if Hyperion is closed, if you insist on having coffee, you’re going to wish you hadn’t.

I abbreviate each proposition as follows:

H = Hyperion is closed, S = Starbucks is closed, M = You go to McDonald's,
W = You wish you had not visited some store (which context determines).

Without relying on probability of occurrence, how do you deduce and decide whether:

  1. [1] should be:

1.1.  [(H ● S) ⊃ C] ⊃ (M ● W)    or     1.2.  (H ● S) ⊃ [C ⊃ (M ● W)]?

  1. [3] should be:

3.1.  H ⊃ (C ⊃ W)    or    3.2.  (H ⊃ C) ⊃ W?

3 Answers 3


In both your examples, the right-nested conditional is the correct interpretation, i.e. 1.2 and 3.1. One way to identify a right-nested conditional easily is to employ the import-export rule by seeing whether the sentence makes equal sense when you replace the first conditional with "and". So 1 is the same as "if Hyperion and Starbucks are both closed and you insist on having coffee, you're going to go to MacDonald’s but you’ll wish you hadn’t." And 3 is the same as "if Hyperion is closed and you insist on having coffee, you're going to wish you hadn't."

One can, of course, construct examples where the meaning is genuinely ambiguous, but in practice right-nesting is usually right.

  • 1
    This is an OK heuristic, but not a complete answer.
    – user9166
    Jan 2, 2016 at 1:31

Officially, in well written English, you can follow the dependent clause construction marked by the commas and the succession of the pronouns.

  1. If A, [then] if B, [then] C

is always going to mean

  1. A → (B → C).

Hereafter, '{Coffee Store}' means '{Coffee Store} is open.' So 'Starbucks' means 'Starbucks is open', and 'not Starbucks' means 'Starbucks is closed.' For example:

  1. If you want coffee, then if Starbucks is closed, I suggest we make it ourselves.

Can be encoded only as

  1. Coffee ⟹ (not Starbucks ⟹ Make_Coffee)

And never with the other nesting order.

The less likely

  1. (A → B) → C

would have to be written

  1. If1  if2  A,  [then1] B;  [then2] C.


  1. If1  B  if2  A,  then C.

In 7, note: if2 is the '←' Logical Connective, with no comma.

You have to close clauses in order. Put short: like parentheses, references in most Latinate grammars are 'last-in, first-out'.

"Then" has a referent, and officially, references must bind to the closest available potential candidate, that is the rightmost "if" that is not already spoken for. So in 6, then1 must go with if2 and then2 with if1.

When the "then" is merely implied, the comma that closes the dependent clause must close the clause most recently opened that has not already been closed (by another comma or reference). Same rule, different official reason. So you can just read it as if the implied 'then' were inserted.

When each "if" does not come with a comma or a "then" of its own, the comma or pronoun must split the one that has a clause, not the one that is a connective. Connective conditions like "B whenever A" have to bind most tightly.

Of course, in practice one is seldom going to see the two 'ifs' in a row. One or the other is going to be since/when/while, or some equivalent.

Since when Hyperion is closed, Starbucks is also closed, we will have to make our own coffee.

or the equivalent

If Starbucks is closed whenever Hyperion is, then we will have to make our own coffee.

unwinds as

(not Starbucks ⟹ not Hyperion) ⟹ Make_Coffee

And never the other order. The 'when' clause here must be closed before the preceding 'since' and connectives bind tighter than clauses.

  • Thank you. 1. Why did you write If B if A, then C', where you specify the 2nd 'if' as a ← connective? Is it simpler to write: If A → B, then C? 2. In ordinary English, is not "then" an adverb, and not a pronoun? Or are you using a subject-specific definition of 'pronoun'? 3. Can you please rewrite and simplify this independent clause: 'the comma that closes a dependent clause closes the last clause opened that is still open.'? I do not comprehend it, sorry. 4. Your last blockquote: What does 'not {Coffee Store}' mean: {Coffee Store} is closed or open? What is the scope of the adverb 'not'?
    – user8572
    Jan 3, 2016 at 21:05
  • 'Then' combines in the grammar as an adverb, but it stands in place of a reference to a specified time or condition, and standing namelessly in the place of something else is the job of a pronoun, so it is both.
    – user9166
    Jan 3, 2016 at 21:16
  • The form with <- is just tons more likely to appear in speech "If A when B, then C" or "Since A happens whenever B does we can expect C" are much more natural English phrases than "If A implies B, then C", (unless you are reading a text in logic)
    – user9166
    Jan 3, 2016 at 21:19
  • {Coffe Store} means "{Coffee Store} is open". In some sense, to what extent is the store present, when it is closed?
    – user9166
    Jan 3, 2016 at 21:21
  • I cannot help you read that phrase, other than to give you a parallel example. "Every parenthesis closes the grouping most recently opened, that is still open (not yet closed.)" No rewording of it gets much clearer.
    – user9166
    Jan 3, 2016 at 21:23

It is quite simple, but I'll use a little different example.

We will "unpack" the following nested conditional :

"if Hyperion and Starbucks are both closed, then (if you want a coffee, you’ll not have it)"

proceeding step-by-step.

We have to start with :

"if Hyperion and Starbucks are both closed, then tomorrow will rain",

that we translate with the formula :

(H ∧ S) ⊃ R.

Now, instead of the "simple" consequent : "tomorrow will rain", we have a "complex" statement, like "if you want a coffee, [then] you’ll not have it"; it is itself a conditional, and thus we have to formalize it with : C ⊃ N.

To get the final result, we have only to replace R with it, using suitable parentheses :

(H ∧ S) ⊃ (C ⊃ N).

You must log in to answer this question.