Exchanging two blocks of arguments of an alternating map #
An alternating map f in a + b + (c + d) arguments is evaluated on the concatenation
(x, y, z, w) of four families of lengths a, b, c and d. Exchanging the two middle
blocks y and z permutes the arguments by a block swap, which has b * c inversions; hence
f (x, z, y, w) = (-1) ^ (b * c) • f (x, y, z, w)
(AlternatingMap.map_append_append_comm). This is the Koszul sign rule for reordering two blocks
of vectors in a determinant, as in the multiplicativity of the torsion of chain complexes.
Similarly, negating the last block y of a concatenation (x, y) of families of lengths a and
b multiplies the value of an alternating map by (-1) ^ b (AlternatingMap.map_append_neg), as
for the negated differential of a shifted chain complex.
Exchanging the two middle blocks of arguments, of lengths b and c, of an alternating map
evaluated on a concatenation of four families multiplies its value by (-1) ^ (b * c).
Negating the last block of arguments, of length b, of an alternating map evaluated on a
concatenation of two families multiplies its value by (-1) ^ b.