In matematica, l'associatività (o proprietà associativa) è una proprietà che può avere un'operazione binaria. Significa che l'ordine di valutazione è irrilevante se l'operazione appare più di una volta in un'espressione. Detta in altro modo, non sono richieste parentesi per un'operazione associativa. Si consideri ad esempio l'uguaglianza
- (5+2)+1 = 5+(2+1)
Sommando 5 e 2 si ottiene 7, e sommando 1 si ottiene il risultato 8 per il membro a sinistra. Per valutare il membro a destra, si inizia a sommare 2 e 1 ottenendo 3, e quindi si somma 3 e 5 per ottenere 8 ancora. Quindi l'uguaglianza è verificata. Di fatto è verificata per tutti i numeri reali, non solo per 5, 2, e 1. Diciamo che "l'addizione nell'insieme dei numeri reali è un'operazione associativa".
Le operazioni associative sono frequenti in matematica, e infatti molte strutture algebriche richiedono esplicitamente che le loro operazioni binarie siano associative. Tuttavia, molte operazioni importanti non sono associative; un esempio comune è il prodotto vettoriale.
Seguono alcuni esempi di operazioni associative.
![{\displaystyle \left.{\begin{matrix}(x+y)+z=x+(y+z)=x+y+z\quad \\(x\,y)z=x(y\,z)=x\,y\,z\qquad \qquad \qquad \quad \ \ \,\end{matrix}}\right\}{\mbox{per ogni }}x,y,z\in \mathbb {R} .}](//wikimedia.org/api/rest_v1/media/math/render/svg/c74eeb5f901caebaa5cd7a66d874de7b5eb77784)
![{\displaystyle \left.{\begin{matrix}\operatorname {M.C.D.} (\operatorname {M.C.D.} (x,y),z)=\operatorname {M.C.D.} (x,\operatorname {M.C.D.} (y,z))=\operatorname {M.C.D.} (x,y,z)\ \quad \\\operatorname {m.c.m.} (\operatorname {m.c.m.} (x,y),z)=\operatorname {m.c.m.} (x,\operatorname {m.c.m.} (y,z))=\operatorname {m.c.m.} (x,y,z)\quad \end{matrix}}\right\}{\mbox{ per ogni }}x,y,z\in \mathbb {Z} .}](//wikimedia.org/api/rest_v1/media/math/render/svg/49c448dfbc57a74284ef1840eab5da3a3b7abb21)
![{\displaystyle \left.{\begin{matrix}(A\cap B)\cap C=A\cap (B\cap C)=A\cap B\cap C\quad \\(A\cup B)\cup C=A\cup (B\cup C)=A\cup B\cup C\quad \end{matrix}}\right\}{\mbox{per tutti gli insiemi }}A,B,C.}](//wikimedia.org/api/rest_v1/media/math/render/svg/630c0760e50085729c02546d2161addd0cf84a90)
- Se M è un dato insieme e S indica l'insieme di tutte le funzioni da M a M, allora l'operazione di composizione di funzioni su S è associativa:
![{\displaystyle (f\circ g)\circ h=f\circ (g\circ h)=f\circ g\circ h\qquad {\mbox{per ogni }}f,g,h\in S.}](//wikimedia.org/api/rest_v1/media/math/render/svg/a263fab79f3eeaea27fab969d48019448821827c)
- Leggermente più in generale, dati quattro insiemi M, N, P e Q, con f: M a N, g: N a P, e h: P a Q, allora
![{\displaystyle (f\circ g)\circ h=f\circ (g\circ h)=f\circ g\circ h}](//wikimedia.org/api/rest_v1/media/math/render/svg/7ac9ff2f14721c0ad9348126aad6a77a0a014b8d)
- come prima. In breve, la composizione di mappe è sempre associativa.
- Una matrice rappresenta una trasformazione lineare fra spazi vettoriali rispetto a basi fissate, e il prodotto di matrici corrisponde alla composizione delle trasformazioni lineari corrispondenti. Dunque dall'associatività della composizione di funzioni segue l'associatività del prodotto di matrici.
Un'operazione binaria
su un insieme S che non soddisfa la legge associativa è detta non associativa. In simboli,
![{\displaystyle (x*y)*z\neq x*(y*z)\qquad {\mbox{per qualche }}x,y,z\in S.}](//wikimedia.org/api/rest_v1/media/math/render/svg/5ebbb5ca25e8240bdeeebded81cc398b10018e2f)
Per tale operazione l'ordine di valutazione è importante. La sottrazione, la divisione e l'esponenziazione sono esempi ben noti di operazioni non associative:
![{\displaystyle {\begin{matrix}(5-3)-2\neq 5-(3-2)\quad \\(4/2)/2\neq 4/(2/2)\qquad \qquad \\2^{(1^{2})}\neq (2^{1})^{2}.\quad \qquad \qquad \end{matrix}}}](//wikimedia.org/api/rest_v1/media/math/render/svg/c6c1818086d41ca717f42a94eadeb5b683d2cd16)
In generale, le parentesi devono essere usate per indicare l'ordine di valutazione, se un'operazione non associativa appare più di una volta in un'espressione. Tuttavia i matematici si accordano su un particolare ordine di valutazione per molte operazioni non associative comuni. Questa è una convenzione, e non una verità matematica.
Un'operazione associativa a sinistra è un'operazione non associativa che viene valutata convenzionalmente da sinistra a destra, cioè,
![{\displaystyle \left.{\begin{matrix}x*y*z=(x*y)*z\qquad \qquad \quad \,\\w*x*y*z=((w*x)*y)*z\quad \\{\mbox{etc.}}\qquad \qquad \qquad \qquad \qquad \qquad \ \ \,\end{matrix}}\right\}{\mbox{per ogni }}w,x,y,z\in S}](//wikimedia.org/api/rest_v1/media/math/render/svg/c1e96e9826512a51d4756c96cff2f3f95f476bde)
mentre un'operazione associativa a destra è valutata convenzionalmente da destra a sinistra:
![{\displaystyle \left.{\begin{matrix}x*y*z=x*(y*z)\qquad \qquad \quad \,\\w*x*y*z=w*(x*(y*z))\quad \\{\mbox{etc.}}\qquad \qquad \qquad \qquad \qquad \qquad \ \ \,\end{matrix}}\right\}{\mbox{per ogni }}w,x,y,z\in S}](//wikimedia.org/api/rest_v1/media/math/render/svg/e8babdea8cb618d3aa1b430fda610edc582dedc9)
Esistono sia operazioni associative a sinistra che operazioni associative a destra; sotto sono dati alcuni esempi.
Le operazioni associative a sinistra includono:
- Sottrazione e divisione di numeri reali:
- ;}
![{\displaystyle x-y-z=(x-y)-z\qquad {\mbox{per ogni }}x,y,z\in \mathbb {R} ;}](//wikimedia.org/api/rest_v1/media/math/render/svg/aaafec83f9fb76b239ac88e705aa894352973ed5)
![{\displaystyle x/y/z=(x/y)/z\qquad \qquad \quad {\mbox{per ogni }}x,y,z\in \mathbb {R} {\mbox{ con }}y\neq 0,z\neq 0.}](//wikimedia.org/api/rest_v1/media/math/render/svg/19e70618997b266912322068eef5c1b0af0e313d)
Le operazioni associative a destra includono le seguenti:
![{\displaystyle x^{y^{z}}=x^{(y^{z})}.}](//wikimedia.org/api/rest_v1/media/math/render/svg/2bfb19d2e37612d1f6a44f86f48debc557532119)
- La ragione per cui l'esponenziazione è associativa a destra è che un'esponenziazione associativa a sinistra ripetuta sarebbe meno pratica: ad esempio, la funzione
senza parentesi verrebbe identificata con
. Le ripetizioni multiple possono (e, per chiarezza, vengono) riscritte con il simbolo di moltiplicazione:
![{\displaystyle (x^{y})^{z}=x^{(yz)}.}](//wikimedia.org/api/rest_v1/media/math/render/svg/d9467bca5039122c11225f6edec4b5943fcbcb36)
x = y = z;
significa x = (y = z);
e non (x = y) = z;
- In altre parole, l'istruzione assegna il valore di
z
sia a y
che a x
.
Operazioni non associative per cui non è stato definito nessun ordine convenzionale di valutazione includono le seguenti:
- Prendere la media di numeri reali:
![{\displaystyle {(x+y)/2+z \over 2}\neq {x+(y+z)/2 \over 2}\neq {x+y+z \over 3}\qquad {\mbox{per qualche }}x,y,z\in \mathbb {R} .}](//wikimedia.org/api/rest_v1/media/math/render/svg/bd4a301d126d46610ce7f12f2609e80fb9a17c6f)
![{\displaystyle (A\backslash B)\backslash C\neq A\backslash (B\backslash C)\qquad {\mbox{per qualche insieme }}A,B,C.}](//wikimedia.org/api/rest_v1/media/math/render/svg/90ab4be1790a40a1716dfc72be46411bced1f04a)