Bizonyítás

Először az átzárójelezhetőséget fogjuk igazolni. Nevezzük a * műveletet "szorzásnak", és alkalmazzunk a "tényezők" számára – azaz nn-re – vonatkozó teljes indukciót. Indukciós feltételként tegyük fel, hogy az állítás igaz bármely legfeljebb n1n-1 tényezős szorzatra, vagyis hogy ezekre az átzárójelezés akárhogyan elvégezhető. Azt kell megmutatnunk, hogy ekkor egy tetszőleges nn tényezős szorzatot is akárhogyan tudunk zárójelezni. Legyen például PP egy ilyen tetszőlegesen zárójelezett nn tényezős szorzat. Ekkor PP a zárójelezése alapján legutolsóként elvégzendő szorzás művelete mentén két részre bontható:

P=LRP = L * R

Itt LL és RR egy-egy olyan kifejezés, amelyben a tényezők száma legfeljebb n1n-1. Az indukciós feltétel miatt tehát őket akárhogyan zárójelezhetjük, ezért az általánosság megsértése nélkül feltételezhetjük, hogy ezek a zárójelezések balra vannak rendezve, azaz valamilyen 1k<n1 \leq k < n esetén:

P=(((a1a2)a3))ak=L(((ak+1ak+2)ak+3))an=RP = \underbrace{( \dots ((a_1 * a_2) * a_3) * \dots ) * a_k}_{=L} * \underbrace{( \dots ((a_{k+1} * a_{k+2}) * a_{k+3}) * \dots ) * a_n}_{=R}

Ám ekkor a * művelet asszociativitását kk-szor alkalmazva a PP kifejezést át tudjuk zárójelezni úgy, hogy az szintén egy balra rendezett zárójelezés legyen, azaz:

P=(((Lak+1)ak+2))anP = (\dots ((L * a_{k+1}) * a_{k+2}) * \dots ) * a_n
Az átzárójelezés technikai részletei

Jelöljük RiR_i-vel azt a balra rendezett zárójelezésű kifejezést, amelyet az RR kifejezés első ii darab tényezőjéből kapunk, azaz:

R1=ak+1R2=ak+1ak+2R3=(ak+1ak+2)ak+3Ri=(((ak+1ak+2)ak+3))ak+i\begin{aligned} R_1 &= a_{k+1} \\ R_2 &= a_{k+1} * a_{k+2} \\ R_3 &= (a_{k+1} * a_{k+2}) * a_{k+3} \\ &\vdots \\ R_i &= (\dots ((a_{k+1} * a_{k+2}) * a_{k+3}) * \dots ) * a_{k+i} \\ &\vdots \end{aligned}

Először megmutatjuk, hogy bármely ii index és az SS halmaz tetszőleges xx eleme esetén az xx tényező bevihető az RiR_i kifejezés legbelső zárójelén belülre, azaz teljesül az alábbi:

xRi=((((xak+1)ak+2)ak+3))ak+ix * R_i = (\dots (((x * a_{k+1}) * a_{k+2}) * a_{k+3}) * \dots ) * a_{k+i}

Ezt ii-re vonatkozó teljes indukcióval igazoljuk. Tegyük fel indukciós feltételként, hogy az állítás igaz i1i-1-re, azaz:

xRi1=((((xak+1)ak+2)ak+3))ak+i1x * R_{i-1} = (\dots (((x * a_{k+1}) * a_{k+2}) * a_{k+3}) * \dots ) * a_{k+i-1}

Most indukciós lépésként megmutatjuk, hogy ekkor ugyanez igaz lesz ii-re is. Vegyük észre, hogy az RiR_i kifejezések fenti definíciója miatt tetszőleges ii index esetén RiR_i = Ri1ak+iR_{i-1} * a_{k+i}. Emiatt az xRix * R_i kifejezést így is írhatjuk:

xRi=x(Ri1ak+i=Ri)=x * R_i = x * (\underbrace{R_{i-1} * a_{k+i}}_{=R_i}) = \dots

A * művelet asszociativitása miatt:

=(xRi1)ak+i=\dots = (x * R_{i-1}) * a_{k+i} = \dots

Végül az indukciós feltétel miatt:

=((((xak+1)ak+2)ak+3))ak+i\dots = (\dots (((x * a_{k+1}) * a_{k+2}) * a_{k+3}) * \dots ) * a_{k+i}

Felállítottuk a dominósort, most döntsük is le. Az i=1i=1 esetén nincs mit bizonyítani, hiszen xR1=xak+1x * R_1 = x * a_{k+1} csak egyféleképpen zárójelezhető. Az i=2i=2 esetén pedig a * művelet asszociativitása miatt nyilván xR2=x(ak+1ak+2)=(xak+1)ak+2x * R_2 = x * (a_{k+1} * a_{k+2}) = (x * a_{k+1}) * a_{k+2}.

Ezzel igazoltuk tehát az alábbi összefüggést:

xRi=((((xak+1)ak+2)ak+3))ak+ix * R_i = (\dots (((x * a_{k+1}) * a_{k+2}) * a_{k+3}) * \dots ) * a_{k+i}

Ezt felhasználva az eredeti PP kifejezést fogjuk lépésenként átzárójelezni úgy, hogy az egy balra rendezett zárójelezés legyen. Ehhez az RiR_i-hez hasonlóan vezessük be az LjL_j jelölést is, amely tehát jelölje azt a kifejezést, amelyet az LL kifejezés első jj darab tényezőjéből kapunk, azaz:

L1=a1L2=a1a2L3=(a1a2)a3Lj=(((a1a2)a3))aj\begin{aligned} L_1 &= a_{1} \\ L_2 &= a_{1} * a_{2} \\ L_3 &= (a_{1} * a_{2}) * a_{3} \\ &\vdots \\ L_j &= (\dots ((a_{1} * a_{2}) * a_{3}) * \dots ) * a_{j} \\ &\vdots \end{aligned}

Vegyük észre, hogy ez alapján tetszőleges jj index esetén LjL_j = Lj1ajL_{j-1} * a_j, így az eredeti PP kifejezés átzárójelezésének első lépése így néz ki:

P=(((a1a2)a3))ak=L=Lk=Lk1ak(((ak+1ak+2)ak+3))an=R=Rnk==(Lk1ak)Rnk=Lk1(akRnk)==Lk1((((akak+1)ak+2)ak+3))an)=\begin{aligned} P &= \underbrace{( \dots ((a_1 * a_2) * a_3) * \dots ) * a_k}_{=L=L_k=L_{k-1} * a_k} * \underbrace{( \dots ((a_{k+1} * a_{k+2}) * a_{k+3}) * \dots ) * a_n}_{=R=R_{n-k}} = \\ &= (L_{k-1} * a_k) * R_{n-k} = L_{k-1} * (a_k * R_{n-k}) = \\ &= L_{k-1} * (\dots (((a_k * a_{k+1}) * a_{k+2}) * a_{k+3}) * \dots ) * a_n) = \dots \end{aligned}

A baloldali L=LkL=L_k kifejezés utolsó aka_k tényezőjét tehát sikerült átvinni a jobboldali RR kifejezés legbelső zárójelén belülre. Most ugyanezt a lépést végezzük el az eggyel rövidebb Lk1L_{k-1} kifejezésre is:

=Lk2((((ak1ak)ak+1)ak+2))an)=\dots = L_{k-2} * (\dots (((a_{k-1} * a_{k}) * a_{k+1}) * a_{k+2}) * \dots ) * a_n) = \dots

Látható, hogy ez az eljárás mindaddig folytatható, amíg a baloldali kifejezés el nem fogy. Ezen a ponton a PP kifejezés valóban egy balra rendezett zárójelezésű kifejezés lesz:

=((((a1a2)a3))an)\dots = (\dots (((a_1 * a_2) * a_3) * \dots ) * a_n)

Vagyis azt kaptuk, hogy amennyiben tetszőleges, legfeljebb n1n-1 tényezős szorzat átzárójelezhető, akkor ez igaz lesz az nn tényezős szorzatokra is. Felállítottuk tehát a dominósort, és beláttuk, hogy bármely dominó felborítása esetén a soron következő dominó is fel fog borulni. Az első dominó felborítása ebben az esetben triviális, hiszen n=1n=1 és n=2n=2 esetén nincs mit bizonyítani, a legfeljebb egy vagy két tényezős szorzatok ugyanis csak egyféleképpen zárójelezhetők, n=3n=3 esetén pedig a * művelet asszociativitása miatt nyilván (a1a2)a3=a1(a2a3)(a_1 * a_2) * a_3 = a_1 * (a_2 * a_3).

Most igazoljuk a tetszőleges sorrendezhetőséget is. Vegyük észre, hogy a tényezők bármely sorrendje előáll egymás utáni szomszédos cserékből, tehát elég egyetlen ilyen cserére megmutatni, hogy az nem változtatja meg a szorzat értékét. Vegyük például az aia_i és az ai+1a_{i+1} szomszédos elemeket. Ekkor a zárójelezés már bizonyított szabadsága miatt a teljes szorzatot így írhatjuk:

(baloldali reˊsz)(aiai+1)(jobboldali reˊsz)=(\text{baloldali rész}) * (a_i * a_{i+1}) * (\text{jobboldali rész}) = \dots

Ám a kommutativitás miatt aiai+1=ai+1aia_i * a_{i+1} = a_{i+1} * a_i, és így:

=(baloldali reˊsz)(ai+1ai)(jobboldali reˊsz)\dots = (\text{baloldali rész}) * (a_{i+1} * a_i) * (\text{jobboldali rész})