Algoritmul, pas cu pas
Operația pare complicată, dar are o citire foarte simplă: a înlocui două elemente adiacente cu xor-ul lor înseamnă a le lipi într-un singur număr. Aplicată repetat, ea nu face decât să grupeze elementele inițiale în blocuri consecutive, fiecare bloc devenind xor-ul elementelor sale. Așadar întrebarea „pot ajunge toate valorile egale?” devine: pot tăia șirul în cel puțin blocuri consecutive, toate cu același xor?
Fie — xor-ul total. El nu se schimbă niciodată (xor-ul e asociativ), deci e un invariant. Dacă reușim blocuri egale cu o valoare , atunci xor-ul tuturor blocurilor este ; cum xor-ul a copii ale lui este când e impar și când e par, obținem: ori (cu impar), ori (cu par).