nLab heap




In algebra, a heap is an algebraic structure which is almost that of a group structure but without the specification of a neutral element.

While closely related to notions such as affine space, principal homogeneous space and torsor, the concept of heap is simpler in the sense that it postulates just a single set with a single ternary operation obeying two axioms (see Def. below).

Concretely, any group gives a heap where this ternary operation is defined from the group’s binary operation (-)(-)(\text{-})\cdot(\text{-}) and inversion () 1(-)^{-1} by

(1)t:(a,b,c)ab 1c t \,\colon\, (a,b,c) \;\mapsto\; a \cdot b^{-1} \cdot c

and every heap arises this way, up to isomorphism (cf. Prop. below) from a group that may be called its structure group.

However, the category of heaps (Def. below) is not equivalent to the category of groups. Instead:


The category of heaps (Def. ) is equivalent to the evident category of pairs consisting of a group GG and a GG-torsor HH.


On the one hand, for any heap HH, choosing any element hHh' \in H, the endofunctions t(h,h,):HHt(h,h',-) \colon H \to H for hHh \in H constitute a group GG under composition, and the underlying set HH of the heap manifestly carries the structure of a GG-torsor. On the other hand, given a group GG and a GG-torsor HH we can make HH into a heap as follows: given elements a,b,cHa,b,c \in H let t(a,b,c)=gct(a,b,c) = g c where gg is the unique gGg \in G with gb=ag b = a.

There is also a dual version of the concept of heap, see at quantum heap.


Heaps in the sense of algebra should not be confused with either

nor with


There are also a number of synonyms for the term ‘heap’; below we consider ‘torsor’ in this light. In Russian one term for a heap is ‘груда’ (‘gruda’) meaning a heap of soil; this is a pun as it is parallel to the Russian word ‘группа’ (‘gruppa’) meaning a group: forgetting the unit element is sort of creating an amorphous version. This term also appears in English as ‘groud’. In universal algebra the standard name is associative Malcev algebra (in various spellings, including Mal’cev, Mal’tsev and Maltsev), other names include herd.

There is an oidification (horizontal categorification) of heaps, sometimes called heapoids.



A heap (H,t)(H,t) is a inhabited set HH equipped with a ternary operation t:H×H×HHt \colon H \times H \times H\to H satisfying the following two relations

  1. t(b,b,c)=c=t(c,b,b) t(b,b,c) = c = t(c,b,b),

  2. t(a,b,t(c,d,e))=t(t(a,b,c),d,e) t\big(a,b,t(c,d,e)\big) = t\big(t(a,b,c),d,e\big) .

More generally, a ternary operation in some variety of algebras satisfying the first pair of equations is called a Mal'cev operation. A Mal’cev operation is called associative if it also satisfies the latter equation (i.e. it makes its domain into a heap).

A heap is abelian if it additionally satisfies the relation

t(a,b,c)=t(c,b,a) t(a,b,c) = t(c,b,a)


A homomorphism of heaps f:HHf \colon H \to H' is, of course, a function of the underlying set which respects the ternary operations.

This defines a category HeapHeap whose objects are heaps and whose morphisms are heap homomorphisms.

The hom-sets of the full subcategory AbHeapAbHeap of abelian heaps inherit an abelian heap structure from the pointwise operation in the codomain: given f,g,h:HGf,g,h\colon H \to G, the function at G(f(a),g(a),h(a))a\mapsto t_G(f(a),g(a),h(a)) is again a heap homomorphism.


Structure groups of heaps

As indicated in (1) a group GG becomes a heap by setting

a,b,cGt(a,b,c)ab 1c. a,b,c \,\in\, G \;\;\;\;\;\; \vdash \;\;\;\;\;\; t(a,b,c) \,\coloneqq\, a \cdot b^{-1} \cdot c \,.


This construction (1) defines a functor

Prin:GrpHeap Prin \,\colon\, Grp \longrightarrow Heap

from the category Grp of groups to that of heaps, which is essentially surjective, meaning that, up to isomorphism all heaps arise in this way.

In fact, there is also a functor

Str:HeapGrp Str \,\colon\, Heap \longrightarrow Grp

such that

  1. there exist natural group isomorphisms of the form

    Str(Prin(G))GStr\big(Prin(G)\big) \,\cong\, G

  2. there exist heap isomorphisms of the form

    Prin(Str(H))HPrin\big(Str(H)\big) \,\cong\, H

    which however are not natural (whence we do not have an equivalence of categories).

This group Str(H)Str(H) is called the structure group of the heap HH.

Given a heap HH, the claimed structure group Str(H)Str(H) is described, up to isomorphism, by any of the following constructions:

  1. Choosing any element eH\mathrm{e} \in H, then the binary operation

    (2)abt(a,e,b). a \cdot b \,\coloneqq\, t(a, \mathrm{e} ,b) \,.

    constitutes a group structure on HH, with neutral element e\mathrm{e}.

    This serves as the required structure group: Str(H)(H,)Str(H) \,\coloneqq\, (H, \cdot).

  2. Take the underlying set of Str(H)Str(H) to be that of equivalence classes of pairs (a,b)H×H(a,b) \in H\times H, subject to the equivalence relation

    (a,b)(a,b)ifft(a,b,b)=a (a,b) \,\sim\, (a',b') \;\;\;\;\text{iff}\;\;\;\; t(a,b,b') \,=\, a'

    (the idea is to think of the pair (a,b)(a,b) as the representative of ab 1a b^{-1})

    and take the binary operation on the group to be given on representatives by

    (3)(c,d)(a,b)(c,t(d,a,b)). (c,d) \cdot (a,b) \,\coloneqq\, \big( c, t(d,a,b) \big) \,.

    This again defines a group Str(H)Str(H).

    Notice that:

  3. Finally, Str(H)Str(H) is realized also as an actual subgroup of the symmetric group on the underlying set of HH, analogously to Cayley's theorem for groups. We take the elements of Str(H)Str(H) to be set bijections of the form

    (4)t(a,b,):HH, t(a,b,-) \,\colon\, H \rightarrow H \,,

    where a,bHa,b \in H, with composition as the group’s binary operation.

    Notice here that

    t(c,d,) Str(H)t(a,b,)=t(c,d,t(a,b,))=t(t(c,d,a),b,), t(c,d,-) \cdot_{Str(H)} t(a,b,-) \;=\; t\big(c,d,t(a,b,-)\big) \;=\; t\big(t(c,d,a),b,-\big) \,,

    so that Str(H)Str(H) is closed under this operation.

    The first axiom of a heap shows that Str(H)Str(H) contains the neutral element t(,x,x)t(-,x,x), for any xx), and the inverse element of t(,a,b)t(\cdot,a,b) is t(,b,a)t(\cdot,b,a); thus Str(H)Str(H) is a subgroup of the symmetric group of HH.

It remains to see that these constructions all agree and are functorial.

First to show that the equivalence relation used in the second construction is symmetric, and that it coincides with that implicitly used in the first construction, notice that the following are equivalent:

  • (i) the bijections t(a,b,)t(a,b,-) and t(a,b,)t(a',b',-) coincide

  • (ii) t(a,b,b)=at(a,b,b') = a'

  • (iii) t(a,b,b)=at(a',b',b) = a


(ii) follows from (i) and t(a,a,b)=bt(a,a,b) = b.

(ii) implies (iii) as follows. Given t(a,b,b)=at(a,b,b') = a', we have t(t(a,b,b),b,b)=t(a,b,b)t(t(a,b,b'),b',b) = t(a',b',b), but

t(t(a,b,b),b,b)=t(a,b,t(b,b,b))=t(a,b,b)=a t(t(a,b,b'),b',b) = t(a,b,t(b',b',b)) = t(a,b,b) = a

so t(a,b,b)=at(a',b',b) = a. (iii) implies (ii) by a similar argument.

(i) follows from (ii) by the calculation:

t(a,b,x)=t(a,b,t(b,b,x))=t(t(a,b,b),b,x)t(a,b,x) t(a',b',x) = t(a',b',t(b,b,x))= t(t(a',b',b),b,x) t(a,b,x)

Since the composition laws can also be seen to agree, the second two constructions of Str(H)Str(H) are canonically isomorphic.

To compare them to the first construction, observe that for a fixed eH\mathrm{e} \in H, any equivalence class contains a unique pair of the form (e,a)(\mathrm{e},a). (If (b,c)(b,c) is in the equivalence class, then aa is determined by a=t(e,b,c)a = t(\mathrm{e},b,c).) This sets up a bijection between the first two constructions, which we can easily show is an isomorphism.

Finally, the second construction is manifestly functorial.

Relation to torsors

Given a group GG, a GG-torsor is a nonempty set XX with a free and transitive action of GG, which we may write as

G×X X (g,x) gx \begin{array}{ccl} G \times X &\to& X \\ (g, x) &\mapsto& g x \end{array}

Equivalently, a GG-torsor is a set XX with an action of the group GG but also a “division” operation

X×X G (x,y) x/y \begin{array}{ccl} X \times X &\to& G \\ (x, y) &\mapsto& x/y \end{array}


(x/y)y=x (x/y) y = x

Given a group GG together with a GG-torsor XX, we can make XX into a heap by giving it the ternary operation

X×X×X X (x,y,z) (x/y)z \begin{array}{ccl} X \times X \times X &\to& X \\ (x, y, z) &\mapsto& (x/y) z \end{array}

Conversely, from any heap HH we can construct a group GG together with a GG-torsor whose underlying set is HH itself. To see this, note that the group G=Str(H)G = Str(H) (?) comes equipped with a canonical group action on HH, as is most clear from the third definition (4).

This action is


  • free

    since if t(a,b,c)=at(a,b,c) = a then by the previous statement t(x,b,c)=xt(x,b,c) = x for each xx, and in particular t(b,b,c)=bt(b,b,c) = b and also t(b,b,c)=ct(b,b,c) = c.

Therefore, HH is an Str(H)Str(H)-torsor (over a point).

Conversely, any torsor HH over a group GG becomes a heap, by defining

t(a,b,c)gc, t(a,b,c) \,\coloneqq\, g \cdot c \,,

where gGg\in G is the unique group element such that gb=ag\cdot b = a.

In fact, the category HeapHeap is equivalent to the following category TorsTors: its objects are pairs (G,H)(G,H) consisting of a group GG and a GG-torsor HH, and its morphisms are pairs (ϕ,f):(G,H)(G,H)(\phi,f):(G,H)\to (G',H') consisting of a group homomorphism ϕ:GG\phi:G\to G' and a ϕ\phi-equivariant map f:HHf:H\to H'.

The empty heap

If we wish HeapHeap to be an algebraic category, then we must remove the clause that the underlying set of a heap must be nonempty (see also at pseudo-torsor). Then the empty set becomes a heap in a unique way.

However, in this case, the various theorems relating heaps to groups above all break down. For this reason, one usually requires a heap to be inhabited.

On the other hand, we could generalize the notion of group to allow for an empty group. This even remains a purely algebraic notion: we can define a group as an inhabited invertible semigroup (S,,() 1)(S,\cdot,(-)^{-1}) or an inhabited associative quasigroup. Then any invertible semigroup or associative quasigroup is a possibly-empty-heap, and every possibly-empty-heap arises in this way from its automorphism invertible semigroup or automorphism associative quasigroup (defined by either method (2) or (3)); the category of possibly-empty-heaps is equivalent to the category of invertible semigroups equipped with torsors over the point, and the category of associative quasigroups equipped with torsors over the point; etc.

This is even constructive; the theorems can be proved uniformly, rather than by treating the empty and inhabited cases separately. (This rather trivial method is obvious to a classical mathematician, but it's not constructively valid, since a invertible semigroup/associative quasigroup/heap as defined here can't be constructively proved empty or inhabited; it can only be proved empty iff not inhabited. Indeed, taking any group GG and any truth value PP, the invertible subsemigroup or associative subquasigroup {xG|P}\{x \in G \;|\; P\} is empty or inhabited iff PP is false or true.)

Examples in homotopy theory

The map [0,1][0,1][0,1]\to[0,1] that sends 000\mapsto 0, 1/311/3\mapsto 1, 2/302/3\mapsto 0, 111\mapsto 1, and interpolates linearly between these points yields an associative Malcev operation on [ΣX,Y][\Sigma X,Y], where XX and YY are (unpointed) spaces, Σ\Sigma is the suspension functor, and [,][-,-] denotes the set of morphisms in the homotopy category.

Thus, [ΣX,Y][\Sigma X,Y] is a (nonabelian) heap. Likewise, the full mapping space Map(ΣX,Y)Map(\Sigma X,Y) can be turned into an (∞,1)-heap, defined as an (∞,1)-algebra (in spaces) over the algebraic theory of heaps.

See Vokřínek for more information.



In the context of stable homotopy theory:

category: algebra

Last revised on June 30, 2024 at 12:53:17. See the history of this page for a list of all contributions to it.