Definition of General Associativity for binary operations Let's say we are talking about addition defined in the real numbers. Then, by induction we define $\sum_{i=0}^{0}a_i=a_0$ and $\sum_{i=0}^{n}a_i=\sum_{i=0}^{n-1}a_i+a_n$ for $n> 1.\:$
Now, how do you define general associativity? I know that this has something to do with the fact that $\sum_{i=0}^{n}=\sum_{i=0}^{k}+\sum_{i=k+1}^{n}$ for $0\leq k<n$, being $\sum_{i=k}^{n}a_i=\sum_{i=0}^{n-k}a_{i+k}$ by definition. But the thing is that this doesn't quite define the notion of different ways of arranging brackets, like for example $(a_0+(a_1+a_2))+((a_3+a_4)+(a_5+a_6))$. 
So my question is how they formally define this process of bracketing. Think of the case when someone just tell you to prove the general associativity for the real numbers. How do they actually define this property in order to prove it? is it necessary to have one?
Look at for example this proof, specifically at the point where professor M. Zuker says: "Let us now assume that any bracketing of $a_1, a_2,...,a_k$ equals the standard form for $1\leq k\leq n-1$, where $n>3$". But, then again my question: what is the definition of bracketing? is it actually necessary to have a definition of bracketing or this proof works whatever the definition of bracketing is?
Also I have found this paper by William P. Wardlow - A generalized general associative law-  that contains different proofs of this general associativity law. The first one, the one that he suggests as his favorite, is done by Nathan Jacobson in his book "Lectures of Abstract Algebra" Vol. 1 page 20. Looking at this proof there is one point where he says "Consider now any product associated with $(a_1, a_2,..., a_n)$...", which means "any bracketing associated with...". Then again the same question. 


I hope you understand my point. If not, please fell free of asking anything related to my question.  
Edit: 
For clarification let's say we are talking about sum in the real numbers. Then, 
1.- $(...(((a_0+a_1)+a_2)+a_3)...+a_n)$ is a representation of the formal definition by recursion, meaning $\sum_{i=0}^{n}a_i$ just as defined above:  $\sum_{i=0}^{0}a_i=a_0$ and $\sum_{i=0}^{n}a_i=\sum_{i=0}^{n-1}a_i+a_n$ for $n> 1$.
2.- What is the formal definition of $a_0+(a_1+(a_2+...+(a_{n-1}+a_n)...)$ ?
3.- What is the formal definition of something like $(a_0+((a_1+a_2)+a_3))+(((a_4+a_5)+a_6)+....+(a_{n-1}+a_n))$?
 A: The meaning of “associativity of the binary operation $\cdot$ on the set $A$ holds for $k$ (items)” is (as Wardlaw writes) that “[If $a_1, a_2, \dots,a_k$ are elements of $A$, then] any bracketing of $a_1,a_2,\dots,a_k$ equals the standard form.”
When we say a binary operation is associative (without mentioning “for $k$”), we mean it’s associative for all positive integers $k$. That means we can write $\prod\limits_{i=1}^n a_i$ and know that (regardless of how big $n$ is) it’s well-defined, because the way in which we evaluate it doesn’t matter.
The standard form in the definition is (or can be taken to be) Wardlaw’s left associative product, $$\left(\dots\left(\left(a_1\cdot a_2\right)\cdot a_3\right)\dots\cdot a_k\right),$$
which is the element of $A$ obtained by finding $a_1\cdot a_2$, multiplying it by $a_3$, and so on, up to a final product with $a_k$.
For the definition to be entirely clear, one should also know what’s meant by any bracketing.
“Any bracketing” means the result of any particular sequence taken from among all the possible sequences that can be used to transform $a_1,a_2,\dots,a_k$ into an element of $A$ using $k-1$ applications of $\cdot$.
Bracketings are usually expressed with parenthesization. Example: For $k=5$, this is one of the bracketings that exist: 
$$\left(\left(a_1\cdot a_2\right)\cdot \left(\left(a_3\cdot a_4\right)\cdot a_5\right)\right).$$
This is the element of $A$ obtained by applying $\cdot\,$ according to the parenthesization. (Where two applications are performed on the same line, the result doesn’t depend on the order in which those evaluations are made.)
$$
\begin{align}
\left(\left(a_1\cdot a_2\right)\cdot \left(\left(a_3\cdot a_4\right)\cdot a_5\right)\right)&= \overbrace{(a_1\cdot a_2)}^{\mathrm{Let}\, v=a_1\cdot a_2} \cdot \left(\overbrace{(a_3\cdot a_4)}^{\mathrm{Let}\, w=a_3\cdot a_4}\cdot a_5\right)\\
&= v\cdot\overbrace{(w\cdot a_5)}^{\mathrm{Let}\, x=w\cdot a_5}\\
&=\overbrace{\left(v\cdot x\right)}^{\mathrm{Let}\, z=v\cdot x}\\
&=z.
\end{align}
$$
By the way, so long as a “standard form” for bracketing $a_1,a_2,\dots,a_k$ is well-defined, its specific form is irrelevant, since if all forms of bracketing $a_1,a_2,\dots,a_k$ are equal to the same specific one of the possible bracketings, associativity holds.
Does that help?
A: To put the question in a broader perspective, it all comes down to an unfortunate notational convention.
A binary operation is just a function $f:X \times X \rightarrow X$, where $X$ is a set, EXCEPT that it has the peculiar convention of writing the function with "infix notation" like 1+2 rather than ordinary function notation like, say, "add(1,2)".
"Bracketing" is the price we pay for using infix notation, since without bracketing, expressions like 12 / 6 / 2 are ambiguous $-$ does that mean (12/6)/2, which equals 1, or 12/(6/2), which equals 4? And since we don't like to bother writing so many parentheses all the time, we even go through the trouble of establishing conventional rules about order of operations: The rules that say that 1+3*4 implicitly means 1+(3*4) and 5 - 4 - 3 means (5-4)-3. In elementary school you had to pay the price of learning all these additional rules.
If we all used ordinary function notation instead, we wouldn't need bracketing or conventions about precedence: Instead of (9 - 15) / 3 we just write $\operatorname{divide}( \operatorname{subtract}(9,15), 3)$. Instead of a complicated "bracketing" like
$$(a_0+(a_1+a_2))+((a_3+a_4)+(a_5+a_6)),$$
we would just write
$$\operatorname{add}(\operatorname{add}(a_0,\operatorname{add}(a_1,a_2)),\operatorname{add}(\operatorname{add}(a_3,a_4),\operatorname{add}(a_5,a_6))).$$
You can treat this as the formal definition. (You can even create an algorithm to do this kind of conversion automatically; algorithms of this kind are well-known.) In fact, to take things a little further, the parentheses and commas aren't even needed. We could just write
/ - 9 15 3
+ + a0 + a1 a2 + + a3 a4 + a5 a6

for the two examples above. There is no ambiguity. (Make sure you see why.) This kind of notation, which requires no parentheses, is called "prefix" or "Polish" notation. Again, it's really just ordinary function notation except we recognized that we don't need to bother writing out all the parentheses and commas.
(There is also "postfix" or "reverse Polish" notation, where (9-15)/3 would be expressed as 9 15 - 3 /. For the purpose of algorithm computation, postfix notation is the much more natural choice. But we'll stick to prefix since it closely corresponds to familiar function notation.)
In the following examples, the first two constitute all the possible "bracketings" of a binary operation $f$ over $a_0,a_1,a_2$; the third is not legal:
f a0 f a1 a2
f f a0 a1 a2
f a0 a1 f a2

Again, the first is equivalent to $f(a_0, f(a_1,a_2))$ and the second is equivalent to $f(f(a_0,a_1),a_2)$. The third cannot be parsed. (Aside: In general, what's an easy way to  tell whether an expression with f's and a's is legal? Read the list from left to right. As you read, keep track of how many f's and how many a's you've seen so far. The running count of a's should be greater than the running count of f's precisely when you reach the end of the list, and no sooner.)
It's now clear what "any possible bracketing" means: It's any way to intersperse $n$ copies of $f$ among $a_0, a_1, ..., a_n$ (while keeping $a_0, a_1, ..., a_n$ in the same order) to form a legal expression in prefix notation.
Parentheses are just a silly way of notating what function notation does just as well $-$ no, better $-$ at expressing.

We've shown that bracketing is just an awkward consequence of using infix notation. But infix notation isn't just a load of crap as I've made it seem like. There's more to it than that. In fact, infix notation is a terrific convention, in the following sense:
In prefix notation, if I want to write $A*B*C$, I have to choose between writing either "* A * B C" or "* * A B C". But if $*$ is an associative operation, then both ways are equal. In other words, the prefix notation is now forcing me to make a distinction between two orders of evaluation that I shouldn't have to distinguish between. Notation should not force me to make irrelevant distinctions. That's the advantage of writing $A*B*C$: it leaves unspecified whether I mean $(A*B)*C$ or $A*(B*C)$, which is a good thing because the distinction is irrelevant. Thus infix notation makes sense for $*$ and for many of our everyday operations too, which are often associative.
You're trying to prove general associativity, which, as you recognized, requires an understanding of what "bracketing" means. But bracketing is a relic of infix notation, which in turn is a notation intended to hide the bracketing for associative operations! That's why thinking in terms of prefix notation is the way to go here, where (a priori) we're not dealing with a general-associative operation.
A: Here is a way to formally define the process of bracketing and a proof that associativity imply general associativity.
Given a context-free grammar $S\to\bullet,\,S\to(SS)$, which generates all sentences with matching brackets in expressions of binary operators: 
$$\bullet,(\bullet\bullet),(\bullet(\bullet\bullet)),\dots$$
Let $P$ be the set of all these sentences. Then $P$ is a free magma with the operation $(p,q)\mapsto(pq)\in P.$ That $P$ is free means that 
$(p\hat p)=(q\hat q)\implies p=q \wedge \hat p=\hat q$.
Define the degree of $p\in P$ as 
$|p|=1$ if $p=\bullet$ and $p=|p_1|+|p_2|$ if $p=(p_1 p_2)$. The degree of $p$ is the number of occurrences of the sign $\bullet$ in $p$. Let 
$P_n=\{p\in P|\;\;|p|=n\}$, $n>0$. Also define 
$l_n\in P_n$ by $\;l_1=\bullet\;$ and $\;l_{n+1}=(l_{n}\bullet)\;$ for $n>1$.
Given a magma $(M,\cdot)$ and elements $x_1,\dots,x_n\in M$. If $\;p\in P_n$ then
$p$ can be applied to $x_1,\dots,x_n$ in the obvious way, by in turn from left to right replace $\bullet$ with $x_k$, $k=1,\dots, n$. This can be written $p(x_1,\dots,x_n)\in M$.
Proof of general associativity by induction. Consider the statement:
$$S(n):\quad \forall x_1,\dots,x_n\in M\,\forall p,q\in P_n:p(x_1,\dots,x_n)=q(x_1,\dots,x_n)$$
If $M$ is associative then $S(3)$ is true since $P_3=\{(\bullet(\bullet\bullet)),((\bullet\bullet)\bullet)\}$. Now suppose that $S(m)$ is true for all $m<n$. For $p,q\in P_n$ there are $p^\prime,\hat p, \,q^\prime,\hat q\in P$ and $i,j>0$ such that:
\begin{cases}
p(x_1,\dots,x_n)=p^\prime(x_1,\dots,x_i)\cdot\hat p(x_{i+1},\dots,x_n) \\
q(x_1,\dots,x_n)=q^\prime(x_1,\dots,x_j)\cdot\hat q(x_{j+1},\dots,x_n)
\end{cases}
If $i=j$, then $p^\prime(x_1,\dots,x_i)=q^\prime(x_1,\dots,x_i)$ etc, 
because $i<n$. [In particular, $l_i(x_1,\dots,x_i)=p^\prime(x_1,\dots,x_i)$]. Suppose $i>j$, then
$p(x_1,\dots,x_n)=l_i(x_1,\dots,x_i)\cdot l_{n-i}(x_{i+1},\dots,x_n)=$
$\Big(l_j(x_1,\dots,x_j)\cdot l_{i-j}(x_{j+1},\dots,x_i)\Big)\cdot l_{n-i}(x_{i+1},\dots,x_n)=$
$l_j(x_1,\dots,x_j)\cdot\Big(l_{i-j}(x_{j+1},\dots,x_i)\cdot l_{n-i}(x_{i+1},\dots,x_n)\Big)=$
$q^\prime(x_1,\dots,x_j)\cdot\Big(l_{i-j}(x_{j+1},\dots,x_i)\cdot l_{n-i}(x_{i+1},\dots,x_n)\Big)=$
$q^\prime(x_1,\dots,x_j)\cdot l_{n-j}(x_{j+1},\dots,x_n)=$
$q^\prime(x_1,\dots,x_j)\cdot \hat q(x_{j+1},\dots,x_n)=q(x_1,\dots,x_n)\quad$ QED.
A: For any positive integer $n$ we will define a function $f_n:\mathbb{R}^n\rightarrow P(\mathbb{R})$ where $P(\mathbb{R})$ denotes the power set of $\mathbb{R}$ (the set of all subsets of $\mathbb{R}$) by recursion on $n$.
Define $f_1(a_1) = \{(a_1)\}$.
For $n\geq 2$, define $f_n(a_1,\ldots,a_n) = \bigcup_{m=1}^{n-1} 
\{(x+y) : x \in f_m(a_1,\ldots,a_m)$ and $y \in f_{n-m}(a_{m+1},\ldots,a_n)\}$.
Then by a "bracketing of $a_1, a_2, \ldots, a_n$" we mean any element of 
$f_n(a_1,\ldots,a_n)$.
Now the generalized associative law (for addition in the real numbers) states that for each integer $n \geq 3$ and for all real numbers $a_1, \ldots, a_n$, the set $f_n(a_1,\ldots,a_n)$ contains only one member.
A: A little old, but here's my two cents. Although darij's answer with binary trees is my favorite answer here and makes the most sense to me, I wouldn't want to introduce binary trees to prove this fact. So, I have a "different" definition of "bracketings".
First, some notation since I have to use several function compositions. Fix a natural number $n$ that's at least $1$. Suppose that $X_1, X_2, \ldots, X_n, X_{n+1}$ denotes $n+1$ sets. And suppose that $f_1, f_2, \ldots, f_n$ denote $n$ functions where $f_k:X_{n-k+2}\rightarrow X_{n-k+1}$ for every $k$ between $1$ and $n$. Then I shall define
$$\prod_{k=1}^n f_k=f_1\circ f_{2}\circ\cdots\circ f_{n-1}\circ f_n\,.$$
This could be made more rigorous with recursive definitions. But moving on....
Let's continue talking about the reals (although this could be extended to any field or even any group). Suppose that $n$ denotes a natural number that's at least $2$. For every $k$ between $1$ and $n-1$, there is a function $s_k^{(n)}:\mathbb{R}^n\rightarrow\mathbb{R}^{n-1}$ that adds the $k$th coordinate and $k+1$st coordinate together and concatenates the other unchanged coordinates onto this result. In other words, 
$$s_k^{(n)}(a_1, a_2, \ldots, a_{k-1}, a_k, a_{k+1},a_{k+2}, \ldots, a_n)=(a_1, a_2, \ldots, a_{k-1}, a_k+a_{k+1}, a_{k+2}, \ldots, a_n)$$

Now, the generalized associative law is the same as saying that for every $n\geq 2$ and for every $k_2, k_3, k_4, \ldots, k_{n-1}, k_n$ such that
  $$1\leq k_j\leq j-1\text{ for every }j\text{ between }2 \text{ and }n$$
  we may conclude the following equality:
  $$\sum_{k=1}^n a_k=\left(\prod_{j=2}^n s_{k_j}^{(j)}\right)(a_1, a_2, \ldots, a_n)\,.$$

The reader now has to convince themself in some fashion that each "valid bracketing" of
$$a_1+a_2+\cdots+a_n$$
corresponds to some composition
$$s_{1}^{(2)}\circ s_{k_3}^{(3)}\circ\cdots\circ s_{k_n}^{(n)}\,.$$
In general, there may more compositions than just one associated to any bracketing.
To help get a grasp of what these $s_k^{(n)}$ represent, notice that
$$s_1^{(2)}(a,b)=a+b\text{ for any pair of reals}\,,$$
$$s_1^{(2)}\circ s_1^{(3)}\circ\cdots\circ s_1^{(n)}(a_1, a_2, \ldots, a_n)=(\cdots(((a_1+a_2)+a_3)+a_4)+\cdots+a_n)\,,$$
$$s_1^{(2)}\circ s_2^{(3)}\circ\cdots\circ s_{n-1}^{(n)}(a_1, a_2, \ldots, a_n)=(a_1+\cdots+(a_{n-3}+(a_{n-2}+(a_{n-1}+a_n)))\cdots)\,.$$
A more concrete one:
$$s_1^{(2)}\circ s_2^{(3)}\circ s_3^{(4)}\circ s_3^{(5)}(1,2,3,4,5)= 1+(2+((3+4)+5))$$
A: A semigroup is a set $\mathbb{S}$ together with a binary operation (a function) $\circ:\mathbb{S}\times \mathbb{S} \rightarrow \mathbb{S}$ which satisfisies that $\forall x,y,z \in \mathbb{S}$
$$
\circ(\circ(x, y), z) = \circ(x, \circ(y, z))
$$
For such binary operations we often use infix rather than prefix notation. That is, $\circ(x,y)$ is instead written as $(x\circ y)$ or $x\circ y$. We will follow that convention here, so the condition above would appear as
$$
((x\circ y)\circ z) = (x\circ (y\circ z))
$$
We follow the very nice suggestion from @LeonardBlackburn.
We recursively define the set of $n$-operations over the (ordered) list of $n$ operands $(a_0,\ldots, a_{n-1})\in \mathbb{S}^n$ as follows.
$$
\circ _n:\mathbb{S}^n\rightarrow \mathcal{P}(\mathbb{S})
$$

*

*If $n=1$ then, for $a\in\mathbb{S}$ we have $\circ _1(a) = \{a\}$

*If $n>1$ then $\circ _n((a_0,\ldots, a_{n-1})) = \bigcup_{i=1}^{n-1} \{x\circ y:x\in\circ _i(a_0, \ldots, a_{i-1}) \text{ and } y\in \circ _{n-i}(a_i, \ldots, a_{n-1})\}$
As an example we write $\circ _4(a, b, c, d)$.
\begin{align}
\circ _4(a, b, c, d) = \{&(a \circ  (b \circ (c \circ d))),\\
&(a \circ ((b\circ c) \circ d)),\\
&((a\circ b)\circ (c\circ d)),\\
&((a\circ (b\circ c))\circ d),\\
&(((a\circ b)\circ c)\circ d)\}
\end{align}
The idea is that $\circ _n((a_0,\ldots, a_{n-1}))$ is a set containing all "parenthesizations" of the ordered operations over the elements $(a_0,\ldots, a_{n-1})$.
The generalized associative property can be stated as, for $(a_0, \ldots, a_{n-1})\in \mathbb{S}^n$ the set $\circ_n((a_0, \ldots, a_{n-1}))$ contains a single unique element. In other words, if $x\in \circ_n((a_0, \ldots, a_{n-1}))$ and $y\in \circ _n((a_0, \ldots, a_{n-1}))$ then $x=y$.
We now prove this by induction.
Base Case
Consider $n=1$. Consider $a\in \mathbb{S}$. We see that $\circ _1(a) = \{a\}$. Clearly this set has a single unique element.
Induction Hypothesis
For the induction hypothesis we suppose that, for any $m<n$ that if $(a_0, \ldots, a_{m-1}) \in \mathbb{S}^m$ then the set $\circ _m((a_0,\ldots, a_{m-1}))$ contains a single unique element. We denote this element by $a_0 \circ \ldots \circ a_{m-1}$ or $(a_0\circ \ldots\circ a_{m-1})$. Note, of course, that $(a_0\circ\ldots\circ a_{m-1}) \in \mathbb{S}$.
Lemma using the induction hypothesis
Note that, by the induction hypothesis, for $l < m$ we have that $(a_0 \circ \ldots \circ a_{l-1})$ is the unique element in $\circ _l((a_0, \ldots, a_{l-1}))$ and $(a_l\circ \ldots\circ a_{m-1})$ is the unique element in $\circ _{m-l}((a_l, \ldots, a_{m-1}))$. This means that
$$
(a_0 \circ \ldots \circ a_{l-1}) \circ (a_l \circ \ldots \circ a_{m-1}) \in \circ _m((a_0, \ldots, a_{m-1}))
$$
But $a_0 \circ \ldots \circ a_{m-1}$ was the unique element in this set. This means that
$$
a_0 \circ \ldots \circ a_{m-1} = (a_0 \circ \ldots \circ a_{l-1}) \circ (a_l \circ \ldots \circ a_{m-1})
$$
Note that if $l=1$ the expression $(a_0\circ\ldots\circ a_{l-1})$ is interpreted as $a_0$ and, likewise, if $l=m-1$ the expression $(a_l\circ\ldots\circ a_{m-1})$ is interpreted as $a_{m-1}$.
Induction Step
We consider $\circ _n((a_0,\ldots, a_{n-1}))$.
$$
\circ _n((a_0,\ldots, a_{n-1})) = \bigcup_{i=1}^{n-1} \{x\circ y:x\in \circ _i(a_0, \ldots, a_{i-1}) \text{ and } y\in \circ _{n-i}(a_i, \ldots, a_{n-1})\}
$$
By the induction hypothesis since $i<n$ we have that $\circ _i((a_0, \ldots, a_{i-1}))$ contains a single unique element expressed as $(a_0\circ \ldots \circ a_{i-1})$ and since $n-i<n$ we have that $\circ _{n-i}((a_i, \ldots, a_{n-1}))$ contains a single unique element expressed as $(a_i\circ \ldots \circ a_{n-1})$.
We can then rewrite
$$
\circ _n((a_0,\ldots, a_{n-1})) = \bigcup_{i=1}^{n-1} \{(a_0\circ \ldots\circ a_{i-1}) \circ (a_i \circ \ldots \circ a_{n-1})\}
$$
Now consider $x, y \in \circ _n((a_0, \ldots, a_{n-1}))$. We will show that $x=y$. We have, for some $i$ and $j$ with $1\le i \le n-1$ and $1 \le j \le n-1$ that
\begin{align}
x =& (a_0 \circ \ldots \circ a_{i-1}) \circ (a_i \circ \ldots \circ a_{n-1})\\
y =& (a_0 \circ \ldots \circ a_{j-1}) \circ (a_j \circ \ldots \circ a_{n-1})
\end{align}
If $i=j$ then clearly $x=y$. If not, we suppose, without loss of generality, that $j>i$.
We can then write
\begin{align}
x =& (a_0 \circ \ldots \circ a_{i-1}) \circ (a_i \circ \ldots a_{j-1} \circ a_j \ldots \circ \ldots \circ a_{n-1})\\
y =& (a_0  \circ \ldots \circ a_{i-1} \circ a_i \circ \ldots \circ a_{j-1}) \circ (a_j \circ \ldots \circ a_{n-1})
\end{align}
Note that in the special case $i=j-1$ that $a_i \circ \ldots \circ a_{j-1}$ should be interpreted as $a_i =a_{j-1}$
We then have, by the Lemma on the induction hypothesis, that
\begin{align}
x =& (a_0 \circ \ldots \circ a_{i-1}) \circ ((a_i \circ \ldots \circ a_{j-1}) \circ (a_j \circ \ldots \circ a_{n-1}))\\
y =& ((a_0 \circ \ldots \circ a_{i-1}) \circ (a_i \circ \ldots \circ a_{j-1})) \circ (a_j \circ \ldots \circ a_{n-1})
\end{align}
Let
\begin{align}
\alpha =& (a_0\circ \ldots \circ a_{i-1})\\
\beta =& (a_i \circ \ldots \circ a_{j-1})\\
\gamma =& (a_j \circ \ldots \circ a_{n-1})
\end{align}
So that we see
\begin{align}
x =& \alpha \circ (\beta \circ \gamma)\\
y =& (\alpha \circ \beta) \circ \gamma
\end{align}
We then see, by usual associativity on $\circ$, that $x=y$ as needed.
This concludes the proof meaning that $\circ_n((a_0, \ldots, a_{n-1}))$ has a single unique element which we denote as $a_0 \circ \ldots \circ a_{n-1}$ or $(a_0 \circ \ldots \circ a_{n-1})$.
Thus associativity of a binary operation implies general associativity of the binary operation.
We may also use notation like
$$
\bigcirc_{i=0}^{n-1} a_i = (a_0 \circ \ldots \circ a_{n-1}) = a_0 \circ \ldots \circ a_{n-1}
$$
I'll emphasize that the most challenging part of this proof was coming up with a satisfactory formalization of the concept of "all parenthesization of an operation over a set of operands".
Finally, this proof took a symmetric, abstract approach in which any $x, y\in \circ_n((a_0, \ldots, a_{n-1}))$ are directly to be shown to be equal to each other. This approach has the advantage that no particular parenthesization gets a privileged position.
However, an alternative approach, which has the advantage of being slightly more concrete, but the disadvantage of arbitrarily privileging a particular parenthesization, would be to show that there is a particular $z\in \circ_n((a_0, \ldots, a_{n-1}))$ such that for any $x,y \in \circ_n((a_0, \ldots, a_{n-1}))$ that $x=z$ and $y=z$.
For example, we might choose $z$ to be the so-called left-parenthesization:
$$
z = (\ldots((a_0 \circ a_1) \circ \ldots) \circ a_{n-1})
$$
