Определите GENERALIZED_NONCOMMUTATIVE_SUM(op, a1, ..., aN) следующее:
a1 когда N есть 1, иначе
op(GENERALIZED_NONCOMMUTATIVE_SUM(op, a1, ..., aK), op(GENERALIZED_NONCOMMUTATIVE_SUM(op, aM, ..., aN)) для любого K где 1<K+1=M≤N.
Определите GENERALIZED_SUM(op, a1, ..., aN) как GENERALIZED_NONCOMMUTATIVE_SUM(op, b1, ..., bN), где b1, ..., bN может быть любая перестановка a1, ..., aN.