# Associativity: why does $((a \ast b) \ast c) = (a \ast (b \ast c))$ mean we can bracket longer expressions however we like? [duplicate]

Possible Duplicate:
How does one actually show from associativity that one can drop parentheses?

In some ways this question seems obvious, but it is rarely covered. The normal definition given for a binary operation $\ast$ on a set $S$ is that, for all $a,b,c \in S$: $$((a \ast b) \ast c)=(a \ast (b \ast c)) \tag{Assoc}$$

It is normal then to go straight from here to assuming that given any string of members of $S$, we can bracket them however we like. For example, if we have the string $(a,b,c,d,e,f)$, where $a,b,c,d,e,f \in S$, then: $$\Bigl((a \ast b) \ast \bigl(c \ast ((d \ast e) \ast f)\bigr)\Bigr)=\Bigl(a \ast \Bigl(\bigl((b \ast c) \ast d\bigr) \ast (e \ast f)\Bigr)\Bigr).$$

We can prove this particular identity by repeated use of (Assoc): \begin{align*} ((a \ast b) \ast (c \ast ((d \ast e) \ast f))) &= (a \ast (b \ast (c \ast ((d \ast e) \ast f))))\\ &=(a \ast (b \ast (c \ast (d \ast (e \ast f)))))\\ &=(a \ast ((b \ast c) \ast (d \ast (e \ast f))))\\ &=(a \ast (((b \ast c) \ast d) \ast (e \ast f))). \end{align*}

However, I am looking for a neat, formal proof for the general case. This will involve coming up with some way of coding a 'bracketing'. One thought I had was to write the string of things we are multiplying together as the ordered $n$-tuple $(a_1,a_2,a_3,\ldots ,a_n)$ and then considering the $(n-1)$-tuple of pairs of adjacent elements $(j_1,j_2,\ldots,j_{n-1})$ where $j_i=(a_i,a_{i+1})$. Then we can order the $j_i$ to define a bracketing - for example, if we have $(a_1,a_2,a_3,a_4)$, the order $(j_2,j_3,j_1)$ corresponds to the bracketing $(a_1 \ast ((a_2 \ast a_3) \ast a_4))$ where we first bracket together around the second $\ast$, then around the third and then around the first. The bracketing need not be unique to the ording of the $j_i$ - $(j_3,j_1,j_2)$ and $(j_1,j_3,j_2)$ both correspond to the bracketing $((a_1 \ast a_2) \ast (a_3 \ast a_4))$, but we have a surjective mapping from the set of orders of the $j_i$ to the set of bracketings. The statement (Ass) above then corresponds to the statement that the product represented by $(\ldots,j_i,j_{i+1},\ldots)$ is the same as the product represented by $(\ldots,j_{i+1},j_i,\ldots)$. We can write this as $(\ldots,j_i,j_{i+1},\ldots) \backsimeq (\ldots,j_{i+1},j_i,\ldots)$. If we can show that this implies that any ordering $(j_{i_1},j_{i_2},\ldots,j_{i_n}) \backsimeq (j_1,j_2,\ldots,j_n)$ then we win.

Has anybody got any ideas?

-

## marked as duplicate by Martin Argerami, Kannappan Sampath, Zhen Lin, anon, Asaf KaragilaMar 25 '12 at 13:56

See this question. –  Mikko Korhonen Mar 25 '12 at 13:03
Associativity means that you can bracket longer expressions however one likes when the structure has only one binary operation (semigroups, groups, monoids, semilattices, etc.). Associativity means that, because all meaningful "bracketings" come out equivalent. Associativity for two binary operations on a set doesn't imply that you can rearrange brackets however you like, because associativity by itself doesn't imply all meaningful bracketings as equivalent. You still need brackets in fields, rings, lattices, etc. This sort of question doesn't come up when you use prefix or suffix notation –  Doug Spoonwood Mar 25 '12 at 14:35
See my answer here, which I just elaborated to make the induction very clear. –  Bill Dubuque Mar 25 '12 at 16:10

You can prove by induction by $n$ that any bracketing of $n$-tuple is equivalent to the left-to-the-right bracketing like $a_1*(a_2*(a_3*(...)))$.
For example, $((a∗b)∗(c∗((d∗e)∗f))) = ((a*b)*(c*(d*(e*f)))) = (a*(b*(c*(d*(e*f))))$.