Creo que ésta es una forma más intuitiva de demostrarlo.
Sea A $m \times n$ se deduce que B debe tener n filas para que exista AB. Así pues, siendo B una $n \times p$ matriz, (AB) será una $m \times p$ matriz. Para que exista (AB)C, C debe tener p filas, por lo que sea C una $p\times r$ matriz.
C es un $p\times r$ B debe tener $p$ columnas. Así que (de nuevo) dejando que B sea un $n \times p$ matriz, BC será una $n \times p$ matriz. Para que A(BC) esté permitida, A debe tener n columnas. Así que (de nuevo) dejando que A sea una $m \times n$ matriz, A(BC) será una $m \times p$ matriz.
Para que (AB)C y A(BC) tengan la misma forma, A debe tener el mismo número de columnas que filas tiene B, y C debe tener el mismo número de filas que columnas tiene B. En este caso, se cumple (como se indica a continuación) que $A(BC) = (AB)C$ . Todo lo que tenemos que hacer es demostrar que una columna arbitraria de (AB)C será igual a la misma columna arbitraria de A(BC) (llamaré a esta columna la j-ésima columna de ambas matrices).
$$\text{Notation: } K_i \text{ represents the ith column of the matrix } K.$$
$$B = \left[ {\begin{array}{*{20}{c}} {{B_1}}& \cdots &{B{_p}} \end{array}} \right]$$
$$C = \left[ {\begin{array}{*{20}{c}} {{c_{11}}}& \cdots &{{c_{1j}}}& \cdots &{{c_{1r}}}\\ \vdots & \vdots & \vdots & \cdots & \vdots \\ {\underbrace {{c_{p1}}}_{{C_1}}}& \vdots &{\underbrace {{c_{pj}}}_{{C_j}}}& \cdots &{\underbrace {{c_{pr}}}_{{C_R}}} \end{array}} \right]$$
$$AB = A\left[ {\begin{array}{*{20}{c}} {{B_1}}& \cdots &{B{_p}} \end{array}} \right] = \left[ {\begin{array}{*{20}{c}} {A{B_1}}& \cdots &{AB{_p}} \end{array}} \right]$$
$${\left( {BC} \right)_j} = B{C_j} = \left[ {\begin{array}{*{20}{c}} {{B_1}}& \cdots &{B{_p}} \end{array}} \right]\left[ {\begin{array}{*{20}{c}} {{c_{1j}}}\\ \vdots \\ {{c_{pj}}} \end{array}} \right] = \left[ {\begin{array}{*{20}{c}} {{c_{1j}}{B_1}}& \cdots &{{c_{pj}}B{_p}} \end{array}} \right]$$
$${\left( {\left( {AB} \right)C} \right)_j} = {\left( {AB} \right)_{{C_j}}} = AB\left[ {\begin{array}{*{20}{c}} {{c_{1j}}}\\ \vdots \\ {{c_{pj}}} \end{array}} \right] = \left[ {\begin{array}{*{20}{c}} {A{B_1}}& \cdots &{AB{_p}} \end{array}} \right]\left[ {\begin{array}{*{20}{c}} {{c_{1j}}}\\ \vdots \\ {{c_{pj}}} \end{array}} \right] = {c_{1j}}A{B_1} + \cdots + {c_{pj}}A{B_p}$$
$${\left( {A\left( {BC} \right)} \right)_j} = A{\left( {BC} \right)_j} = A\left( {{c_{1j}}{B_1} + \cdots + {c_{pj}}{B_p}} \right) = {c_1}A{B_1} + \cdots + {c_{pj}}A{B_p} = {\left( {\left( {AB} \right)C} \right)_j}$$