# Eckmann–Hilton argument

For the notion of duality in algebraic topology, see Eckmann–Hilton duality.

In mathematics, the Eckmann–Hilton argument (or Eckmann–Hilton principle or Eckmann–Hilton theorem) is an argument about two monoid structures on a set where one is a homomorphism for the other. Given this, the structures can be shown to coincide, and the resulting monoid demonstrated to be commutative. This can then be used to prove the commutativity of the higher homotopy groups. The principle is named after Beno Eckmann and Peter Hilton, who used it in a 1962 paper.

## The Eckmann–Hilton result

Let $X$ be a set equipped with two binary operations, which we will write . and *, and suppose:

1. * and . are both unital, and
2. $\forall a,b,c,d \in X,\ (a*b).(c*d) = (a.c)*(b.d)$.

Then * and . are the same and in fact commutative and associative.

## Remarks

The operations * and . are often referred to as multiplications, but this might imply they are associative, a property which is not required for the proof. In fact, associativity follows. If the operations are associative, each one defines the structure of a monoid on $X$, and the conditions above are equivalent to the more abstract condition that * is a monoid homomorphism $(X,.)\times(X,.)\to(X,.)$ (or vice versa). An even more abstract way of stating the theorem is: If $X$ is a monoid object in the category of monoids, then $X$ is in fact a commutative monoid.

It is important that a similar argument does NOT give such a triviality result in the case of monoid objects in the categories of small categories or of groupoids. Instead the notion of group object in the category of groupoids turns out to be equivalent to the notion of crossed module. This leads to the idea of using multiple groupoid objects in homotopy theory.

More generally, the Eckmann–Hilton argument is a special case of the use of the interchange law in the theory of (strict) double and multiple categories. A (strict) double category is a set, or class, equipped with two category structures, each of which is a morphism for the other structure. If the compositions in the two category structures are written $\circ, \bullet$ then the interchange law reads

$(a \circ b)\bullet (c \circ d) = (a \bullet c) \circ (b \bullet d)$

whenever both sides are defined. For an example of its use, and some discussion, see the paper of Higgins referenced below. The interchange law implies that a double category contains a family of abelian monoids.

The history in relation to homotopy groups is interesting.[according to whom?] The workers in topology of the early 20th century were aware that the nonabelian fundamental group was of use in geometry and analysis; that abelian homology groups could be defined in all dimensions; and that for a connected space, the first homology group was the fundamental group made abelian. So there was a desire to generalise the nonabelian fundamental group to all dimensions.

In 1932, E. Cech submitted a paper on higher homotopy groups to the International Congress of Mathematics at Zurich. However, Alexandroff and Hopf quickly proved these groups were abelian for $n > 1$, and on these grounds persuaded Cech to withdraw his paper, so that only a small paragraph appeared in the Proceedings. It is said that Hurewicz attended this conference, and his first work on higher homotopy groups appeared in 1935.[citation needed] Thus the dreams of the early topologists have long been regarded as a mirage.[citation needed]

Cubical higher homotopy groupoids are constructed for filtered spaces in the book Nonabelian algebraic topology cited below, which develops basic algebraic topology, including higher Seifert van Kampen Theorems, without using singular homology or simplicial approximation.

## Proof

First, observe that the units of the two operations coincide: $1_{.} = 1_{.}.1_{.} = (1_{*}*1_{.}).(1_{.}*1_{*}) = (1_{*}.1_{.})*(1_{.}.1_{*}) = 1_{*}*1_{*} = 1_{*}.$

Now, let $a,b \in X$. Then $a.b = (1*a).(b*1) = (1.b)*(a.1) = b*a = (b.1)*(1.a) = (b*1).(1*a) = b.a.$

For associativity, $(a*b)*c = (a*b)*(1*c) = (a*1)*(b*c) = a*(b*c).$

## Remarks on the Proof

The proof can be clarified with the following 'clock' diagram. In this image, "0" is the unit for p⊕q and "1" is the unit for ⊗. Starting from any position on the clock we can move to the next by some use of the unital character of "0" and "1" or the distributive rule: