Mistake: clearing two cells at once lowers the count faster
“Strassen’s first move clears two of the multiplication tensor’s 1s where a schoolbook move clears one, so it leaves fewer nonzero cells than a schoolbook move would.”
weights = np.array([1, 0, 0, 1])
move = np.einsum("a,b,c->abc", weights, weights, weights)
before = np.count_nonzero(rule)
after = np.count_nonzero(rule - move)
assert (before, after) == (8, 12)
The move subtracts 1 from eight cells. Two held a 1 and go to 0, as the claim says. The other six held 0 and go to −1 — which the claim forgets. The count rises from 8 to 12, where a schoolbook move would have left 7.
The seven-move win begins by making the position look worse, which is why a player who only takes moves that lower the count never finds it.