5
$\begingroup$

Implication does not appear to be associative:

a  b  c | (a -> b) -> c | a -> (b -> c) F  T  F | F             | T F  F  F | F             | T 

Is $a \implies b \implies c$ evaluated as $a \implies (b \implies c)$ or $(a \implies b) \implies c$?

  • 3
    @Doug: Yes, they're obviously different. What I posted would be highly ill-advised notation in any formal logic setting, but if instead someone comes across it elsewhere in mathematics it might actually be intended to be an abbreviation of what I wrote.2012-01-31

3 Answers 3

6

In computer science, the convention that $a \to b \to c$ means $a \to (b\to c)$ is near universal -- because, through the Curry-Howard isomorphism, such formulas correspond to useful curried types in functional languages.

4

The usual convention associates to the right, so $a \rightarrow b \rightarrow c$ is the same as $(a \land b) \rightarrow c$. But it's much better to put parentheses around.

  • 1
    What if the language doesn't have logical conjunction "^"? I mean I can see (a∧b)→c and a->(b->c) as logically equivalent, but is that all you mean by "the same"? And would you classify all logical theorems as "the same"?2012-01-31
3

It really depends on the author, of course.

That said, Carl Mummert, who researches in mathematical logic, indicates that he uses a->b->c to mean (a->(b->c)) in a comment in another thread. So, as others have kindly pointed out, if you're reading a logic text, I'd think it probable that you'd encounter that convention more often than anything else.

  • 1
    Thank you for the mention of my comment. The answer by Henning Makholm has the explanation behind this convention. The answer by Yuval Filmus alludes to the same thing.2012-02-01