1 Introduction

A recent attempt [3] to extend the Baer–Kaplansky theorem, relating isomorphisms of abelian p-groups to isomorphisms of their endomorphism rings [21, Theorem 16.2.5], to all abelian groups and to modules over rings led first to realise that the rings of group endomorphisms should be replaced by the trusses of the corresponding heap endomorphisms [7], and then that endomorphisms of modules should be replaced by endomorphisms of some more general module-like structures. The aim of the present text is to introduce and study in a systematic way such structures, which we term heaps of modules. In particular, we will enlarge upon their unexpected geometric interpretation as affine spaces and modules.

We begin in Sect. 2 by giving an overview of heaps [2, 27] and by carefully explaining why they can be understood as affine versions of groups. Next, we recall the definition and elementary properties of abelian heaps with an associative multiplication distributing over the ternary heap operation, which are called trusses, and their modules, that are abelian heaps on which the truss acts through a binary operation [6, 7]. In particular, we recall how with every module M over a truss T and with every element \(e\in M\), one can associate the induced T-module structure \((M,\triangleright _e)\) on M, which plays an important role in the paper. We also introduce the notions of stabiliser and annihilator for a module over a truss T and we study how these are related with the corresponding constructions for the induced T-module structures. Finally, we describe abelian groups with a structure of module over a truss T, called T-groups, which will represent the linear core of affine spaces over trusses.

Section 3 is devoted to the definition of heaps of modules over a truss T, Definition 3.1, and their elementary properties. The key feature here is that a truss T acts on its (abelian) heap of modules M not through a binary operation \(T\times M\longrightarrow M\) (as is the case for a T-module) but by a ternary operation \(\Lambda : T\times M\times M\longrightarrow M\) instead. In Sect. 3.1, we study some first properties of heaps of modules and, in particular, we show the mutual independence of axioms. We introduce sub-heaps of modules and explain how the corresponding equivalence relation is a congruence of heaps of modules and, conversely, how equivalence classes of a congruence of heaps of modules are sub-heaps of modules. We show how fixing a middle term in the action \(\Lambda \) of a heap of T-modules yields a T-module \((M,\!\cdot \!_e) = \Lambda (-,e,-)\) (so we have a heap of modules indeed), exactly as fixing a middle entry in a heap produces a group. Next, we prove that there is a correspondence between heaps of modules and induced actions and how this provides a functor \(\mathcal {H}\) from the category of T-modules to the category of heaps of T-modules. In Sect. 3.2, we consider stabilisers and annihilators for heaps of modules over a truss T, which play a key role in correctly identifying affine modules over a ring among heaps of modules over a suitably related truss. They extend the corresponding notions introduced for modules in Sect. 2. Heaps of modules with non-empty stabilisers are said to be isotropic, while those with non-empty annihilator are said to be contractible. We end Sect. 3 with an explicit construction, extending [11, Theorem 4.2], that provides a cross-product truss structure on the product \(M\times T\) of a heap of T-modules M and T itself for every element e of M.

Section 4 contains our main results showing how heaps of modules over a truss are intimately related with affine geometry and how they provide an algebraic description of affine modules over a ring or affine spaces over a field. We start Sect. 4 by showing, in Proposition 4.1, why homomorphisms of heaps of T-modules \(f\in T\text {-}{} {\textbf {HMod}}(M,N)\) are, in fact, translations of homomorphism of T-groups from \((M,\!\cdot \!_m)\) to \((N,\!\cdot \!_{n})\), for an arbitrary choice of \(m\in M\) and \(n\in N\), exactly as affine maps are translations of linear morphisms. In Sect. 4.2, we fully describe the affine nature of heaps of modules. After realising that affine modules over a ring, as defined in [25, page 45], are isotropic and contractible heaps of \(\textrm{T}(R)\)-modules (see Proposition 4.9), we present the definition of a T-affine space (Definition 4.12) as a straightforward extension of the classical definition of affine space over a field by replacing the free and transitive action of a vector space by a free and transitive action of a T-group. The main result of this section is Theorem 4.21, which states that the categories of T-affine spaces and of heaps of T-modules are equivalent. This result leads us to few immediate conclusions. For example, Corollary 4.23 asserts that the category of isotropic \(\star \)-affine spaces, where \(\star \) denotes the singleton truss, is equivalent to the category of isotropic heaps of \(\star \)-modules, that is, abelian heaps. Thus, we deduce that the categories of inhabited abelian heaps and of torsors over abelian groups are equivalent. We conclude this section by proving that the category of affine spaces over a field \(\mathbb {F}\) is equivalent to the full subcategory of heaps of \(\textrm{T}(\mathbb {F})\)-modules consisting of inhabited isotropic contractible heaps of T-modules (see Corollary 4.25). All of that together wells up in a sentence: heaps of T-modules are affine versions of T-groups, that is, heaps of modules are the natural extension of affine spaces to modules over rings or trusses.

Section 5 contains various examples and some applications of heaps of modules. In particular, Sect. 5.1 is devoted to prove a Baer–Kaplansky theorem for T-groups by taking advantage of the results from Sect. 4. Section 5.2 studies the appearances of heaps of modules in algebraic systems related to the classification of knots, such as spindles and quandles. For instance, we show how affine spindle structures on an abelian group can be organised into a heap of modules (Example 5.10). More generally, to any element u of a truss T one can assign a fully faithful functor from the category of heaps of T-modules to the category of spindles. If, in addition the element u has a suitable companion, this functor has its image in the category of (entropic) quandles; see Theorem 5.9. Since to every spindle (quandle) one can associate a solution to the set-theoretic Yang–Baxter equation, we conclude that heaps of modules yield such solutions. In Sect. 5.3, finally, we provide examples of heaps of modules that arise from (non-commutative) geometry and homological algebra. We show that non-commutative connections and hom-connections can be organised into heaps of modules, too. Thus, as a consequence of Theorem 5.9, they give rise to spindles (or, if the element inducing the spindle is a unit, quandles) and hence to solutions to the set-theoretic Yang–Baxter equation. Finally, we construct heaps of modules consisting of splittings and retractions of short exact sequences, and—more generally—consisting of chain contractions.

We use the following categorical conventions and notation. The set of morphisms with domain A and codomain B in a category \(\textbf{C}\) is denoted by \(\textbf{C}(A,B)\). In case of the same domain and codomain A, the monoid of endomorphism of A is denoted simply by \(\textbf{C}(A)\). We write \(\textbf{C}(A)^\times \) for the group of units in \(\textbf{C}(A)\), that is, automorphisms of A. In general, \(M^\times \) denotes the group of units in a monoid M. The category of groups is denoted by \(\textbf{Grp}\) and its full subcategory of abelian groups is denoted by \(\textbf{Ab}\). We denote by \({\textrm{End}_{}(A)}=\textbf{Ab}(A,A)\) the endomorphism ring of an abelian group A. In case of left (or right) modules M, N over a ring R, the abelian groups of homomorphisms are denoted by \(\text{ Hom }\,_ R(M,N)\), and the endomorphism ring of, say M, by \({\textrm{End}_{R}(M)}\). In anticipation of a possible confusion arising from the wealth of notation employed in this text, and for the convenience of the reader, we include the list of frequently used symbols in Appendix A.

2 Preliminaries and first results

In this section, we recall the notions of heap, truss, module over a truss and their morphisms, which will be needed throughout the paper. We also introduce and discuss the notions of isotropy and contracting paragons for a module and of abelian group with action of a truss, which will have a role to play in relating affine modules over rings or trusses with heaps of modules (see Sect. 4).

2.1 Heaps and their morphisms

We start with the definition of a heap, which can trace its roots back to [2] and [27].

Definition 2.1

A heap is a set H with a ternary operation \([-,-,-]:H\times H\times H\longrightarrow H\) such that for all \(a,b,c,d,e\in H\) the following axioms hold:

$$\begin{aligned} {[}a,b,[c,d,e]]&= [[a,b,c],d,e]&\text {(Associativity)}, \end{aligned}$$
(2.1)
$$\begin{aligned} {[}a,b,b]&= [b,b,a] = a&\text {(Mal'cev identities)}. \end{aligned}$$
(2.2)

Moreover, if \([a,b,c]=[c,b,a]\) for all \(a,b,c\in H\), then H is called an abelian heap. \(\diamond \)

For a heap H, it can be checked that also the following associativity holds

$$\begin{aligned} {[}a,b,[c,d,e]] = [a,[d,c,b],e], \end{aligned}$$
(2.3)

for all \(a,b,c,d,e \in H\) (see [7, Lemma 2.3(2)]).

Definition 2.2

A homomorphism of heaps is a function \(f:H\longrightarrow H'\) between heaps H and \(H'\) which preserves the ternary operation, that is, for all \(a,b,c\in H\) we have \(f([a,b,c])=[f(a),f(b),f(c)]\). We denote by \(\textbf{Hp}\) the category of heaps and their homomorphisms and by \(\textbf{Ah}\) the full subcategory of \(\textbf{Hp}\) consisting of abelian heaps. \(\diamond \)

Among all homomorphisms of heaps, a special role is played by translation automorphisms, defined for all \(a,b\in H\) by the formula

$$\begin{aligned} \tau _a^b:H\longrightarrow H, \qquad x\longmapsto [x,a,b]. \end{aligned}$$
(2.4)

The set of all translation automorphisms together with the identity on H is denoted by \(\textrm{Trans}(H)\). Since the inverse of \(\tau _a^b\) is given by \(\tau _b^a\), the set \(\textrm{Trans}(H)\) is closed under inverses. Furthermore, one easily proves that, for all \(a,a',b,b'\in H\),

$$\begin{aligned} \tau _a^{b}\circ \tau _{a'}^{b'} {\mathop {=}\limits ^{(2.1)}} \tau _{a'}^{[b',a,b]} {\mathop {=}\limits ^{(2.3)}} \tau _{[a,b',a']}^{b}. \end{aligned}$$
(2.5)

Therefore, \(\textrm{Trans}(H)\) is a subgroup of the automorphism group of H, which is called the translation group of H. The translation group of H is abelian if H is abelian. In view of (2.4), for any homomorphism of heaps \(f:H\longrightarrow H'\), the map

$$\begin{aligned} \textrm{Trans}(f):\textrm{Trans}(H)\longrightarrow \textrm{Trans}(H'), \qquad \tau _a^b\longmapsto \tau _{f(a)}^{f(b)}, \end{aligned}$$
(2.6)

is a homomorphism of groups. This gives a functor \(\textrm{Trans}:\textbf{Hp}\longrightarrow \textbf{Grp}\) that restricts to a functor \(\textbf{Ah}\longrightarrow \textbf{Ab}\), that we denote by \(\textrm{Trans}\) again.

A sub-heap of a heap H is a subset S closed under the ternary operation. Given a non-empty sub-heap S of H, one can define the sub-heap equivalence relation by \(x\sim _Sy\) provided \([x,y,s]\in S\), for all \(s\in S\). The quotient set is denoted by H/S. In case of an abelian heap, the sub-heap relation is a congruence and consequently H/S is an abelian heap too. Furthermore, each equivalence class is a sub-heap of H. Any congruence relation of abelian heaps is a sub-heap relation.

With every group \((G,\cdot ,e)\), we can associate a heap \(\textrm{H}(G) = (G,[-,-,-])\) where \([x,y,z] = xy^{-1}z\) for all \(x,y,z\in G\). This assignment is functorial, thus yielding a functor \(\textrm{H}:\textbf{Grp}\rightarrow \textbf{Hp}\). In the opposite direction, with every non-empty heap H and an element \(e\in H\), we can associate a group \(\textrm{G}(H;e)=(H,[-,e,-])\), where the binary operation is acquired by fixing the middle variable in the ternary operation (e is the neutral element for this operation). The group \(\textrm{G}(H;e)\) is called the e-retract of the heap H. Note that for all heaps H and \(e\in H\), \(\textrm{H}(\textrm{G}(H;e))=H\), while for every group G and \(e\in G\), \(\textrm{G}(\textrm{H}(G);e)) \cong G\) with the equality if e is the neutral element of G.

We note in passing that, for any non-empty heap H and for all \(e\in H\), we have \(\textrm{G}(H;e) \cong \textrm{Trans}(H)\) as groups. The isomorphism and its inverse are given by

$$\begin{aligned} \begin{aligned} \varphi :&\textrm{Trans}(H)\longrightarrow \textrm{G}(H;e), \qquad \tau _a^b\longmapsto \tau _b^a(e) = [e,b,a],\\ \varphi ^{-1}:&\textrm{G}(H;e)\longrightarrow \textrm{Trans}(H), \qquad a\longmapsto \tau _a^e; \end{aligned} \end{aligned}$$

(the reader might find equations (2.5) useful for proving this statement).

The subsequent results explore the relationship between morphisms of heaps and morphisms of the associated retracts. In particular, they clarify why heaps can be understood as affine versions of groups.

Proposition 2.3

Let \(H,H'\) be non-empty heaps, let \(e \in H\) and \(e'\in H'\), and let \(f :H \longrightarrow H'\) be a function. Then, \(f \in \textbf{Grp}\big (\textrm{G}(H;e),\textrm{G}(H';e')\big )\) if and only if \(f \in \textbf{Hp}(H,H')\) and \(f(e) = e'\).

Proof

By definition \(f \in \textbf{Grp}\big (\textrm{G}(H;e),\textrm{G}(H';e')\big )\) if and only if

$$\begin{aligned} f\big ([x,e,y]\big ) = \big [f(x),e',f(y)\big ], \qquad \text {for all }x,y \in H. \end{aligned}$$
(2.7)

Clearly, if \(f \in \textbf{Hp}(H,H')\) and \(f(e) = e'\) then (2.7) is satisfied.

Conversely, if \(f \in \textbf{Grp}\big (\textrm{G}(H;e),\textrm{G}(H';e')\big )\) then

$$\begin{aligned} f = \textrm{H}(f) \in \textbf{Hp}\big (\textrm{H}(\textrm{G}(H;e)),\textrm{H}(\textrm{G}(H';e'))\big ) = \textbf{Hp}(H,H') \end{aligned}$$

and \(f(e) = e'\). \(\square \)

Corollary 2.4

([3, Lemma 2.1]) For non-empty heaps \(H,H'\), a function \(f :H \longrightarrow H'\) is a morphism of heaps if and only if \(\tau _{f(e)}^{e'} \circ f \in \textbf{Grp}\big (\textrm{G}(H;e),\textrm{G}(H';e')\big )\), for all \(e \in H\) and \(e'\in H'\). In particular, \(f \in \textbf{Hp}(H,H')\) if and only if \(f \in \textbf{Grp}\big (\textrm{G}(H;e),\textrm{G}(H';f(e))\big )\), for all \(e \in H\).

Proof

Recall that \(\tau _{f(e)}^{e'} \in \textbf{Hp}(H')^\times \) and observe that \(\big (\tau _{f(e)}^{e'} \circ f\big )(e) = e'\). Therefore, in view of Proposition 2.3, \(\tau _{f(e)}^{e'} \circ f \in \textbf{Grp}\big (\textrm{G}(H;e),\textrm{G}(H';e')\big )\) if and only if \(\tau _{f(e)}^{e'} \circ f \in \textbf{Hp}\big (H,H'\big )\), if and only if \(f \in \textbf{Hp}\big (H,H'\big )\). \(\square \)

Remark 2.5

Let \(f:H\longrightarrow H'\) be a morphism of heaps. It follows from Corollary 2.4 that for any group operation associated to H, there exists a group operation associated to \(H'\) such that f is a morphism of groups with respect to these operations. \(\triangle \)

Corollary 2.6

Let \((G,\cdot ,1_G)\) and \((H,\cdot ,1_H)\) be groups. Then,

$$\begin{aligned} f\in \textbf{Hp}(\textrm{H}(G),\textrm{H}(H)) ~\Leftrightarrow ~ \tau _{f(1_G)}^{1_H}\circ f=[x\longmapsto f(x)f(1_G)^{-1}]\in \textbf{Grp}(G,H). \end{aligned}$$

Proof

Since \(G = \textrm{G}\big (\textrm{H}(G);1_G\big )\) and \(H = \textrm{G}\big (\textrm{H}(H);1_H\big )\), the statement follows from Corollary 2.4. \(\square \)

Proposition 2.7

The category \(\textbf{Grp}\) is isomorphic to the under category \(\star /{\textbf {Hp}}\).

Proof

By Corollary 2.6, the functor \(\textrm{H}:\textbf{Grp}\longrightarrow \textbf{Hp}\) induces a fully faithful functor \(\textrm{H}_\star :\textbf{Grp}\longrightarrow \star /\textbf{Hp}\) sending every group G to the object \((\textrm{H}(G),1_G:\star \longrightarrow \textrm{H}(G))\). In view of Proposition 2.3, also the assignment \((H, e:\star \longrightarrow H) \longmapsto G(H;e)\) induces a fully faithful functor, which is inverse to \(\textrm{H}_\star \). \(\square \)

Remark 2.8

The properties from Proposition 2.3, Corollary 2.4, Corollary 2.6 and Proposition 2.7 hold unchanged in the abelian case, that is, if we substitute \(\textbf{Grp}\) with \(\textbf{Ab}\) and \(\textbf{Hp}\) with \(\textbf{Ah}\). \(\triangle \)

Example 2.9

Let us present a few elementary examples of heaps.

  1. (1)

    The empty set \(\varnothing \) is a heap with the trivial ternary operation \(\varnothing \times \varnothing \times \varnothing =\varnothing \longrightarrow \varnothing \).

  2. (2)

    Any singleton set \(\star :=\{*\}\) together with \([*,*,*] = *\) is a heap and it is the terminal object in \(\textbf{Hp}\).

  3. (3)

    The set \(H :=2\mathbb {Z}+1\) of odd numbers is an abelian heap with

    $$\begin{aligned} {[}2n+1,2m+1,2p+1] :=2(n-m+p)+1 \end{aligned}$$

    for all \(n,m,p \in \mathbb {Z}\). Its retract at 1 is a group with respect to

    $$\begin{aligned} (2m+1)\cdot (2n+1) = 2(m+n)+1 \end{aligned}$$

    for all \(m,n\in \textbf{Z}\) and with neutral element 1. Obviously, the latter is isomorphic to \(\mathbb {Z}\) via the map \(2m+1\longmapsto m\).

  4. (4)

    More generally, a subset S of a group G is a non-empty sub-heap of \(\textrm{H}(G)\) if and only if it is a coset for some subgroup \(G'\) of G (see [14, Theorem 1]) and any heap H can be realised as a coset of a certain group G.

    In fact, one may always consider the group \(G :=\textrm{Gr}_*(H) = \textrm{G}(H\boxplus \star ;*)\) from [28, §3] obtained by adding a neutral element \(*\) to the non-empty heap H via the coproduct of heaps \(\boxplus \). Then, the canonical injection \(\iota _H:H \rightarrow G\) into the coproduct allows one to realise H as a subset of G. For any \(x \in H\), if we consider the restriction of

    $$\begin{aligned} \tau _x^*:G \longrightarrow G,\qquad g \longmapsto [g,x,*] = gx^{-1}, \end{aligned}$$

    to H and we set \(G':=\tau _x^*(H) = Hx^{-1}\), then \(G'\) is a subgroup of G. Indeed,

    $$\begin{aligned} * = xx^{-1} \in Hx^{-1}, \quad yx^{-1}\cdot zx^{-1} = [y,x,z]x^{-1} \in Hx^{-1} \end{aligned}$$

    and

    $$\begin{aligned} \left( yx^{-1}\right) ^{-1} = [x,y,x]x^{-1} \in Hx^{-1}, \end{aligned}$$

    for all \(y,z \in H\). In this setting, it is clear that H as a subset of G coincides with the coset \(G'x\).

    It is noteworthy that for all \(y,z \in H\),

    $$\begin{aligned} \tau _*^x\left( \tau _x^*(y)\cdot \tau _x^*(z)\right) = \left[ \left[ y,x,*\right] ,*,\left[ z,x,*\right] ,*,x\right] = [y,x,z] = y\cdot z \in \textrm{G}(H;x). \end{aligned}$$

    Hence, the group structure on H obtained by transport of the group structure on \(G'\) along \(\tau _x^*\) is exactly the one of the retract of H at x.

2.2 Trusses and modules

Here, we recall briefly some notions from [7].

Definition 2.10

(Trusses and paragons) A truss is an abelian heap T together with an associative binary operation \(\cdot :T\times T\longrightarrow T\), \((a,b)\longmapsto ab\) such that, for all \(a,b,c,d\in T\),

  1. (1)

    \(a[b,c,d]=[ab,ac,ad]\) (left distributivity),

  2. (2)

    \([b,c,d]a=[ba,ca,da]\) (right distributivity).

A truss T is called unital if there exists a neutral element for \(\cdot \), usually denoted by \(1_T\) or simply 1. It is called commutative if the binary operation \(\cdot \) is commutative. A sub-truss of T is a sub-heap closed under multiplication.

A homomorphism of trusses is a heap homomorphism \(f:T\longrightarrow T'\) that preserves binary operations, that is, \(f(ab)=f(a)f(b)\) for all \(a,b\in T\).

Given a truss T, a paragon in T is a non-empty sub-heap \(P \subseteq T\) such that for all \(p,q \in P\) and all \(t \in T\),

$$\begin{aligned} {[}tp,tq,q] \in P \qquad \text {and} \qquad [pt,qt,q] \in P. \end{aligned}$$

Paragons are exactly equivalence classes of congruences in trusses, which in turn always arise as sub-heap relations by paragons.

Given a truss T, a two-sided ideal in T is a non-empty sub-heap \(I \subseteq T\) such that for all \(x \in I\) and all \(t \in T\), \(tx \in I\) and \(xt \in I\). \(\diamond \)

Remark 2.11

Observe that in the definitions of paragon and ideal, the word non-empty appears. Since the empty relation is not an equivalence relation, we cannot connect empty sub-heaps with congruences on heaps and trusses. Nevertheless, we still consider the empty set as a sub-heap and sub-truss. \(\triangle \)

Remark 2.12

For any morphism of trusses \(f:T\longrightarrow T'\) and \(e\in \textrm{Im}{f}\), the inverse image \(f^{-1}(e)\) is a paragon in T. In fact every paragon in T arises in this way. \(\triangle \)

Example 2.13

All the examples from Example 2.9 can be adapted to provide examples of trusses. For instance, for any (unital) ring R, the abelian heap \(\textrm{H}(R)\) is a (unital) truss with respect to the same product of R. We denote it by \(\textrm{T}(R)\).

Let us focus, in particular, on example (4). By summarising one of the main messages of [1, Part 2], given a (unital) truss T one can always endow the abelian group \(\textrm{G}(T\boxplus \star ;*)\) with a unique (unital) ring structure \(\cdot \) by declaring

$$\begin{aligned} s\cdot t = st, \qquad *\cdot *=* \qquad \text {and} \qquad t\cdot * = * = * \cdot t, \end{aligned}$$

for all \(s,t \in T\). Denote the resulting (unital) ring by R. Then, \(\iota _T :T \rightarrow R\) allows us to identify T with a subset of R. Moreover, if T is non-empty then for any \(e \in T\), \(I :=\tau _e^*(T)\) is a two-sided ideal of R. Indeed, we already know it is a subgroup and moreover one may check that the elements \([r \cdot t,r\cdot e,e]\) and \([t\cdot r,e\cdot r,e]\) of R are actually in T for all \(r\in R\), \(e,t \in T\), whence

$$\begin{aligned} \begin{aligned} r\cdot [t,e,*]&= [r\cdot t,r\cdot e,*] = \big [[r\cdot t,r\cdot e,e],e,*\big ] = \tau _e^*\big ([r\cdot t,r\cdot e,e]\big ) \qquad \text {and} \\ {[}t,e,*]\cdot r&= [t\cdot r,e\cdot r,*] = \big [[t\cdot r,e\cdot r,e],e,*\big ] = \tau _e^*\big ([t\cdot r,e\cdot r,e]\big ). \end{aligned} \end{aligned}$$

It is clear then that \(T = \tau _*^e(I) = I + e \subseteq R\). Therefore, a subset T of a ring R is an equivalence class for some congruence on R if and only if it is a paragon in \(\textrm{T}(R)\) (whence, in particular, a sub-truss) and any non-empty truss can be realised as a residue class modulo I for an ideal I in a certain ring R.

Example 2.14

For all abelian heaps \(H,H'\), \(\textbf{Ah}(H,H')\) is an abelian heap with the pointwise operation. Furthermore, the composition of morphisms distributes over this ternary operation. Consequently, \(\textbf{Ah}(H)\) is a unital truss, called the endomorphism truss and denoted by \(\textrm{E}(H)\).

Definition 2.15

A left module over a truss T or a left T-module is an abelian heap M together with an action \(\cdot :T\times M\longrightarrow M\) such that, for all \(t,t',t''\in T\) and \(m,n,e\in M\),

  1. (1)

    \(t\cdot (t'\cdot m)= (tt')\cdot m\),

  2. (2)

    \([t,t',t'']\cdot m=[t\cdot m,t'\cdot m,t''\cdot m]\),

  3. (3)

    \(t\cdot [m,n,e]=[t\cdot m,t\cdot n,t\cdot e]\).

A left module M over a unital truss T is said to be unital if \(1_T \cdot m = m\) for all \(m \in M\). Analogously, one can define (unital) right T-modules. A morphism of T-modules \(f:M \longrightarrow N\) is a heap homomorphism which is also T-linear, in the sense that \(f(t \cdot m) = t \cdot f(m)\) for all \(t \in T\) and \(m \in M\).

Modules over a truss T and their morphisms form the category \(T\text{- }\textbf{ Mod}\). \(\diamond \)

Remark 2.16

Given a truss T, a T-module can be equivalently described as an abelian heap M together with a truss homomorphism \(\phi :T \longrightarrow \textrm{E}(M)\). As in the case of modules over rings, the correspondence is given by \(\phi (t)(m) = t\cdot m\). \(\triangle \)

Example 2.17

Here are some elementary examples of modules.

  1. (1)

    The empty heap \(\varnothing \) is a T-module with the unique operation \(T\times \varnothing =\varnothing \rightarrow \varnothing \).

  2. (2)

    A singleton set \(\star :=\{*\}\) together with the heap operation from Example 2.9(2) and the action of T given by \(t\cdot * = *\) for all \(t\in T\), is the terminal object in \(T\text{- }\textbf{ Mod}\).

  3. (3)

    Given a ring R and the associated truss \(\textrm{T}(R)\), any R-module M can be seen as a \(\textrm{T}(R)\)-module with respect to the \(\textrm{H}(M)\) heap structure and the same R-action. We will denote the \(\textrm{T}(R)\)-module \(\textrm{H}(M)\) by \(\textrm{T}(M)\).

  4. (4)

    A truss T is a left module over itself by multiplication. We refer to this as the regular action.

  5. (5)

    For any abelian heaps \(H,H'\), \(\textbf{Ah}(H',H)\) is a left module over the endomorphism truss \(\textrm{E}(H)\) and a right module over \(\textrm{E}(H')\). The actions are by composition. Since \(\textbf{Ah}(\star ,H)\cong H\) as heaps, H is a left \(\textrm{E}(H)\)-module by evaluation.

Definition 2.18

Let M be a left T-module. For \(e \in M\), the action \(\triangleright _e:T \times M \longrightarrow M\) given by

$$\begin{aligned} t\ \triangleright _e\ m :=[t\cdot m,t\cdot e,e], \qquad \text {for all }m\in M, t \in T, \end{aligned}$$

is called the e-induced action or the e-induced module structure on M. We say that a subset \(N\subseteq M\) is an induced submodule of M if N is a non-empty sub-heap of M and \(t\ \triangleright _e\ n \in N\) for all \(t\in T\) and \(n,e\in N\). \(\diamond \)

Induced modules play a role similar to paragons in trusses. Every congruence class of a T-module M is an induced submodule of M. A sub-heap relation corresponding to an induced submodule of M is a congruence and every congruence arises in that way. Furthermore, for any epimorphism (that is, surjective morphism, [12, Proposition 2.6]) of T-modules \(\pi :M\longrightarrow N\), \(\pi ^{-1}(n)\subseteq M\) is an induced submodule of M, for all \(n\in N\), and \(N\cong M/\pi ^{-1}(n)\).

Recall also from [7, Lemma 4.29] that the induction procedure of Definition 2.18 stabilises after the first step. That is, if

$$\begin{aligned} t~{\triangleright _{f}}_{e} ~ m :=[t \triangleright _{f} m, t \triangleright _{f} e, e], \end{aligned}$$
(2.8)

then \(t~{\triangleright _{f}}_{e} ~ m = t \triangleright _{e} m\) for all \(t \in T\), \(e,f,m \in M\).

2.3 Isotropic and contractible modules

In this subsection, we introduce the notions of isotropy and contracting paragons for a module over a truss. They are preliminary notions to the introduction of isotropy and contracting paragons for heaps of modules Sect. 3.2 and their connection with affine modules over rings and trusses Sect. 4.

Lemma 2.19

Let T be a truss. For any left T-module M, the set

$$\begin{aligned} \textrm{Stab}(M) :=\{u\in T\; |\; u\cdot m = m, \; \text{ for } \text{ all } m\in M\} \end{aligned}$$

is a sub-truss and, if non-empty, a paragon of T, called the stabiliser or isotropy paragon of M.

Proof

The set \(\textrm{Stab}(M)\) is the inverse image of the identity endomorphism under the truss homomorphism \(\phi :T\longrightarrow \textrm{E}(M)\), \(\phi (t)(m)=t\cdot m\), and hence, if non-empty, a paragon in T by Remark 2.12. Clearly, \(\textrm{Stab}(M)\) is closed under the multiplication (this can also be seen from the fact that it is an inverse image of an idempotent element of \(\textrm{E}(M)\)). \(\square \)

Definition 2.20

A T-module M is said to be isotropic if \(\textrm{Stab}(M)\) is non-empty. Isotropic T-modules form the full subcategory \(T\text{- }\textbf{ Mod}_{\textbf{is}}\) of \(T\text{- }\textbf{ Mod}\). \(\diamond \)

Proposition 2.21

Let M be a T-module. Then:

  1. (1)

    For all \(e\in M\), \( \textrm{Stab}(M)\subseteq \textrm{Stab}(M,\triangleright _e)\).

  2. (2)

    If \(f:M \longrightarrow N\) is a morphism of T-modules, then \(\textrm{Stab}(M) \subseteq \textrm{Stab}(f(M))\).

  3. (3)

    For all \(e,f\in M\), \(\textrm{Stab}(M,\triangleright _e) = \textrm{Stab}(M,\triangleright _f)\).

  4. (4)

    If \(u\in \textrm{Stab}(M,\triangleright _e)\), then \([u,ut,t]\in \textrm{Stab}(M)\) for all \(t \in T\). Hence, if \(\textrm{Stab}(M,\triangleright _e)\ne \varnothing \), then \(\textrm{Stab}(M)\ne \varnothing \).

  5. (5)

    If T is a truss with identity, then M is a unital module if and only if \(\textrm{Stab}(M,\triangleright _e)\) is a unital sub-truss of T.

Proof

(1) Let \(u\in \textrm{Stab}(M)\). Then,

$$\begin{aligned} u\triangleright _e m=[u\!\cdot \!m,u\!\cdot \!e,e]=[m,e,e]=m, \end{aligned}$$

for all \(m\in M\). Thus, \(u\in \textrm{Stab}(M,\triangleright _e)\).

(2) For every \(u \in \textrm{Stab}(M)\) and every \(m \in M\), we can compute

$$\begin{aligned} u \cdot f(m) = f(u \cdot m) = f(m). \end{aligned}$$

(3) It follows from (2) after recalling that \(\tau _e^f:(M,\triangleright _e) \longrightarrow (M,\triangleright _f)\) is an isomorphism of T-modules (see [7, Proposition 4.28]).

(4) Consider the heap homomorphism \(E:T \longrightarrow M\), \(t\longmapsto t\cdot e\). For all \(u\in \textrm{Stab}(M,\triangleright _e)\) and \(m\in M\), \(m = u\triangleright _em = [u\cdot m,u\cdot e,e]\), and hence

$$\begin{aligned} u\cdot m =[m,e,E(u)] = [E(u),e,m]. \end{aligned}$$
(2.9)

Therefore,

$$\begin{aligned} {[}u,ut,t]\!\cdot \!m = \big [u\!\cdot \!m,ut\!\cdot \!m,t\!\cdot \!m\big ] {\mathop {=}\limits ^{\big (2.9\big )}} \big [m,e,E(u),E(u),e,t\!\cdot \!m,t\!\cdot \!m\big ] = m. \end{aligned}$$

Thus, \([u,ut,t]\in \textrm{Stab}(M)\) as required.

(5) If T has a unit \(1_T\) and M is unital, then \(1_T\in \textrm{Stab}(M)\) and by statement (1) \(1_T\in \textrm{Stab}(M,\triangleright _e)\). In the opposite direction if \(1_T\in \textrm{Stab}(M,\triangleright _e)\), then by statement (4) we have that \(1_T = [1_T, 1_T^2,1_T]\in \textrm{Stab}(M)\) and hence M is a unital module. \(\square \)

Remark 2.22

Consider the restriction

$$\begin{aligned} \textrm{Stab}(M,\triangleright _e) \longrightarrow M, \qquad u\longmapsto u\!\cdot \!e. \end{aligned}$$
(2.10)

of the heap morphism \(E:T \longrightarrow M\) from the proof of Proposition 2.21(4). By (2.9), for all \(u_1,u_2\in \textrm{Stab}(M,\triangleright _e)\),

$$\begin{aligned} E(u_1u_2)=(u_1u_2)\!\cdot \!e=u_1\!\cdot \!E(u_2)=[E(u_1),e,E(u_2)], \end{aligned}$$

and hence the map (2.10) is a truss homomorphism between \(\textrm{Stab}(M,\triangleright _e)\) and the trivial brace \(\textrm{G}(M;e)\) (any abelian group \((G,+,0)\) is a brace with \(m\cdot n :=m + n\)). \(\triangle \)

Example 2.23

The reverse inclusion in Proposition 2.21(1) does not necessarily hold. For example, take \(T = \mathbb {Z}\) with multiplication \(m \cdot n :=m + n\) and \(M = T\) itself with the regular action. Then \(\textrm{Stab}(M) = \{0\}\) and \(\textrm{Stab}(M,\triangleright _e) = \mathbb {Z}\), for all \(e\in \mathbb {Z}\).

Recall that an absorber for a T-module structure \((M,\cdot )\) on an abelian heap M (or, simply, an absorber) is an element \(e \in M\) such that \(t \cdot e = e\) for all \(t\in T\). By an absorber in T, we mean a (necessarily unique) two-sided absorber \(0_T \in T\), that is, \(t\, 0_T = 0_T = 0_T\, t\) for all \(t \in T\).

Lemma 2.24

An element \(e \in M\) is an absorber if and only if \(t \triangleright _e m = t \cdot m\), for all \(t \in T\) and \(m \in M\). In particular, a T-module \((M, \cdot )\) admits an absorber e if and only if \((M,\cdot ) = (M, \triangleright _e)\).

Proof

Since e is always an absorber for the e-induced action, if \(t \triangleright _e m = t \cdot m\), then e is an absorber in M. Conversely, if e is an absorber in M then

$$\begin{aligned} t \triangleright _e m = [t \cdot m, t \cdot e, e] = [t \cdot m,e,e] = t\cdot m. \end{aligned}$$

\(\square \)

The notion of a stabiliser is complemented by that of an annihilator. Unlike the former, the latter is associated to an element and its nature depends on the nature of this element.

Lemma 2.25

Let T be a truss and let M be a non-empty T-module. For any \(e \in M\), if the set

$$\begin{aligned} \textrm{Ann}_e(M) :=\big \{z\in T \mid z \cdot m = e, \text { for all } m\in M\big \} \end{aligned}$$

is non-empty, then \(\textrm{Ann}_e(M)\) is a paragon and a right ideal in T. If, moreover, \(e \in M\) is an absorber, then \(\textrm{Ann}_e(M)\) is a two-sided ideal in T.

Proof

For every \(e \in M\) consider the constant map \(\widehat{e}:M \longrightarrow M, m \longmapsto e,\) in \(\textrm{E}(M)\) and the truss homomorphism \(\phi :T\longrightarrow \textrm{E}(M)\), \(\phi (t)(m)=t\cdot m\). If \(\textrm{Ann}_e(M) \not =\varnothing \), then \(\widehat{e} \in \phi (T)\), \(\textrm{Ann}_e(M)\) is the inverse image of \(\widehat{e}\) and hence it is a paragon by [7, Lemma 3.21]. Since \(\widehat{e}\circ f = \widehat{e}\), i.e. \(\widehat{e}\) is a left absorber in \(\textrm{E}(M)\) in the terminology of [7, Remark 3.13], \(\textrm{Ann}_e(M)\) is also a right ideal (adapt [7, Lemma 3.27]). If \(e \in M\) is also an absorber in M, then \(\widehat{e}\) is an absorber in \(\phi (T) \subseteq \textrm{E}(M)\) and hence \(\textrm{Ann}_e(M)\) is a two-sided ideal by [7, Lemma 3.27]. \(\square \)

Definition 2.26

Let T be a truss and let M be a T-module. For any \(e \in M\), the set \(\textrm{Ann}_e(M)\) is called the e-annihilator or e-contracting paragon of M.

A T-module M is said to be e-contractible if \(\textrm{Ann}_e(M)\) is non-empty. \(\diamond \)

To conclude the subsection and in analogy with Examples 2.9 and 2.13, the subsequent results are aimed at showing that modules over trusses can be understood as equivalence classes of congruences on modules over rings.

Lemma 2.27

Let R be a ring and let \(\textrm{T}(R)\) be the associated truss. A subset S of an R-module M is an equivalence class of a congruence modulo an R-submodule N if and only if it is an induced \(\textrm{T}(R)\)-submodule of the \(\textrm{T}(R)\)-module \(\textrm{T}(M)\) as in [10, §4] or Example 2.17(3).

Proof

If \(S = m + N\) for some \(m \in M\) and some R-submodule \(N \subseteq M\), then we already know that S is a sub-heap of \(\textrm{H}(M)\) and moreover

$$\begin{aligned} r \triangleright _m(m + n) = \big [r\cdot (m+n),r\cdot m,m\big ] = r\cdot m + r\cdot n - r\cdot m + m = m + r\cdot n \in m + N, \end{aligned}$$

for all \(n \in N\), whence \(R\triangleright _m S \subseteq S\) and thus S is an induced submodule.

Conversely, if \(S \subseteq \textrm{T}(M)\) is an induced submodule, then for an arbitrary \(s\in S\) we can consider \(N :=\tau _s^0(S) = S - s\). We claim that \(N \subseteq M\) is an R-submodule. In fact,

$$\begin{aligned} r\cdot (s'- s) = r\cdot s' - r\cdot s + s - s = r \triangleright _s s' - s \in S - s \end{aligned}$$

for all \( r\in R\) and hence \(r \cdot N \subseteq N\). The assertion follows by observing that \(S = s + N\). \(\square \)

Proposition 2.28

Given a truss T, any non-empty T-module can be realised as an equivalence class of a congruence modulo a submodule in a module over a ring.

Proof

Let M be a non-empty T-module. We already know from Example 2.9(4) that \(\textrm{Gr}_*(M) = \textrm{G}(M \boxplus \star ; *)\) is an abelian group. Denote it by \(\textrm{R}(M)\). By [10, §3], \(M \boxplus \star \) is a T-module as follows. For every \(t \in T\), we can consider morphisms of heaps

$$\begin{aligned} M \longrightarrow M \boxplus \star , \quad m \longmapsto t \cdot m, \qquad \text {and} \qquad \star \longrightarrow M \boxplus \star , \quad * \longmapsto *. \end{aligned}$$

By the universal property of the coproduct, there exists a unique morphism of heaps \(\lambda _t:M \boxplus \star \longmapsto M \boxplus \star \) extending them. Furthermore, since for all \(r,s,t \in T\) the morphisms of heaps \(\lambda _{[t,r,s]}\) and \(\big [\lambda _t,\lambda _r,\lambda _s\big ]\) coincide on M and on \(\star \), they coincide on \(M \boxplus \star \), and analogously for the morphisms \(\lambda _{ts}\) and \(\lambda _t \circ \lambda _s\). Therefore, we constructed a morphism of trusses

$$\begin{aligned} T \longrightarrow \textbf{Ah}({M \boxplus \star }), \end{aligned}$$

which makes of \(M \boxplus \star \) a T-module. Proceeding further, we can consider the obvious \(\star \)-modules structure

$$\begin{aligned} \star \longrightarrow \textbf{Ah}({M \boxplus \star }), \qquad * \longmapsto [x \longmapsto *], \end{aligned}$$

and hence the heap (truss, in fact) homomorphism

$$\begin{aligned} T \boxplus \star \longrightarrow \textbf{Ah}({M \boxplus \star }), \end{aligned}$$
(2.11)

given by the universal property of the coproduct. Denote by \(\textrm{R}(T)\) the abelian group \(\textrm{G}(T \boxplus \star )\) with the ring structure coming from Example 2.13. Since every endomorphism in the image of (2.11) preserves the neutral element \(*\), it follows from Corollary 2.6 that we constructed a ring homomorphism

$$\begin{aligned} \textrm{R}(T) \longrightarrow \textbf{Ab}({\textrm{R}(M)}), \end{aligned}$$

so that \(\textrm{R}(M)\) is an \(\textrm{R}(T)\)-module. The canonical map \(M \rightarrow M \boxtimes \star \) of the coproduct allows us to realise M as a sub-heap of \(\textrm{H}(\textrm{R}(M))\) and since

$$\begin{aligned} t \triangleright _e m = [t\cdot m,t\cdot e,e]_{\textrm{R}(M)} = [t\!\cdot \!m,t\!\cdot \!e,e]_{M} \in M, \end{aligned}$$

where subscripts indicate in which set the heap operations are taken, and

$$\begin{aligned} * \triangleright _e m = [* \cdot m,* \cdot e,e]_{\textrm{R}(M)} = [*,*,e]_{\textrm{R}(M)} = e \in M \end{aligned}$$

for all \(m,e \in M\), \(t \in T\), it follows that M is an induced \(\textrm{T}(\textrm{R}(T))\)-submodule of \(\textrm{R}(M)\) and hence an equivalence class of a congruence modulo a submodule (\((-m)+M\), in fact) in the \(\textrm{R}(T)\)-module \(\textrm{R}(M)\). \(\square \)

2.4 Abelian groups with a T-module structure

Let \(T\text{- }\textbf{Abs}\) denote the category whose objects are pairs, a T-module and a fixed absorber, and morphisms are T-linear maps that preserve the absorbers. Note that all the modules in \(T\text{- }\textbf{Abs}\) are inhabited (they are non-empty). Our aim is to interpret \(T\text{- }\textbf{Abs}\) as the category of abelian groups with T-actions.

Proposition 2.29

The category \(T\text{- }\textbf{Abs}\) is (isomorphic to) the under category \(\star /T \text {-} \textbf{Mod}\).

Proof

Recall that \(\star =\{*\}\) is a T-module with \([*,*,*] = *\) and \(t \cdot * = *\) for all \(t \in T\). In light of this, for every T-module M,

$$\begin{aligned} T\text{- }\textbf{ Mod}(\star ,M) = \textrm{Abs}(M) :=\{m \in M \mid t \cdot m = m \text { for all } t \in T\}. \end{aligned}$$

Keeping in mind the foregoing observations, the property is almost tautological. To every object \((M,\cdot ,0_M)\) in \(T\text{- }\textbf{Abs}\), we assign the object \(\big ((M,\cdot ),\star \longrightarrow M:* \longmapsto 0_M\big )\) in \(\star /T\text {-}{} {\textbf {Mod}}\) and to every morphism \(f :M \longrightarrow N\) in \(T\text{- }\textbf{Abs}\) we assign the morphism \(f :M \longrightarrow N\) itself in \(\star /T\text {-}{} {\textbf {Mod}}\), and conversely. This gives the desired isomorphism. \(\square \)

Definition 2.30

Let T be a truss. A T-group is an abelian group G together with an action \(\cdot :T\times G\rightarrow G\) of the multiplicative semigroup of T on G such that for all \(t,t',t''\in T\) and \(g,h\in G\),

$$\begin{aligned} {[}t,t',t'']\cdot g = t\cdot g - t'\cdot g + t''\cdot g \qquad \text {and} \qquad t\cdot (g+h) = t\cdot g+t\cdot h. \end{aligned}$$
(2.12)

If additionally, there exists \(t\in T\) such that \(t\cdot g=g\), for all \(g\in G\), then we say that G is an isotropic T-group.

A morphism of T-groups is by definition a group homomorphism \(f :G \rightarrow G'\) such that \(f(t \cdot g) = t \cdot f(g)\) for all \(g \in G\) and \(t \in T\). For the sake of brevity, we may often call them T-linear group homomorphisms.

All T-groups together with T-linear group homomorphisms form the category \(T\text{- }\textbf{Grp}\). The full subcategory of isotropic T-groups is denoted by \(T\text{- }\textbf{Grp}_{\textbf{is}}\). \(\diamond \)

Remark 2.31

An abelian group G is a T-group if and only if \(\textrm{H}(G)\) is a T-module and \(0_G\) is an absorber. \(\triangle \)

Example 2.32

Let us present two elementary examples which will be useful later on.

  1. (1)

    Let R be a ring. Then, any R-module M is a \(\textrm{T}(R)\)-group. In particular, all vector spaces over a field \(\mathbb {F}\) are \(\textrm{T}(\mathbb {F})\)-groups.

  2. (2)

    Every group G is an isotropic \(\star \)-group with action \(*\cdot g=g\) for all \(g\in G\).

Theorem 2.33

The category \(T\text{- }\textbf{Abs}\) is (isomorphic to) the category \(T\text{- }\textbf{Grp}\).

Proof

We know from Remark 2.8 that the under category \(\star /\textbf{Ah}\) is isomorphic to \(\textbf{Ab}\). This isomorphism restricts to an isomorphism between \(\star /T\text {-}{} {\textbf {Mod}}\) and \(T\text{- }\textbf{Grp}\). \(\square \)

Henceforth, we will often omit the \(\cdot \) symbol when denoting the action of a truss T on a T-module M, that is, we will simply write tm instead of \(t \cdot m\).

3 Heaps of modules

In this section, we introduce and study heaps of T-modules, where T is a truss.

3.1 Heaps of modules. First properties

Definition 3.1

(Heaps of modules) Let T be a truss. A heap of T-modules is an abelian heap \((M,[-,-,-])\) together with a function

$$\begin{aligned} \Lambda :T \times M \times M \longrightarrow M, \qquad (t,m,n) \longmapsto \Lambda (t,m,n), \end{aligned}$$

such that

  1. (1)

    \(\Lambda \) is a heap homomorphism in the first and the third entry separately, that is,

    $$\begin{aligned} \Lambda \Big ([t,t',t''],m,n\Big ) = \Big [\Lambda \big (t,m,n\big ),\Lambda \big (t',m,n\big ),\Lambda \big (t'',m,n\big )\Big ] \end{aligned}$$
    (3.1)

    and

    $$\begin{aligned} \Lambda \Big (t,m,[n,n',n'']\Big ) = \Big [\Lambda \big (t,m,n\big ),\Lambda \big (t,m,n'\big ),\Lambda \big (t,m,n''\big )\Big ], \end{aligned}$$
    (3.2)

    for all \(t,t',t'' \in T\) and \(m,n,n',n'' \in M\)

  2. (2)

    \(\Lambda \) is T-associative, that is to say

    $$\begin{aligned} \Lambda (st,m,n) = \Lambda \Big (s,m,\Lambda \big (t,m,n\big )\Big ), \end{aligned}$$
    (3.3)

    for all \(s,t \in T\), \( m,n \in M\).

  3. (3)

    \(\Lambda \) satisfies the base change property

    $$\begin{aligned} \Lambda \big (t,m,n\big ) = \Big [\Lambda (t,e,n),\Lambda (t,e,m),m\Big ], \end{aligned}$$
    (3.4)

    for all \(m,n,e \in M\), \(t \in T\).

A morphism of heaps of modules is a morphism \(f :M \longrightarrow N\) of heaps such that

$$\begin{aligned} f\Big (\Lambda _M(t,m,n)\Big ) = \Lambda _N\Big (t,f(m),f(n)\Big ), \end{aligned}$$
(3.5)

for all \(m,n \in M\), \(t \in T\). The category of heaps of T-modules and their morphisms will be denoted by \(T\text {-} {\textbf {HMod}}\). \(\diamond \)

Example 3.2

Let T be a truss. Any abelian heap H is a heap of T-modules with any of the two trivial actions:

  1. (a)

    \(\Lambda (t,h,h') = h\),

  2. (b)

    \(\Lambda (t,h,h') = h'\),

for all \(t\in T\) and \(h,h'\in H\). In fact, in both cases, conditions (3.1), (3.2), (3.4) follow by the Mal’cev identities. The associativity (3.3) is obvious.

One may wonder if the base change property is independent or not of the other axioms. The following example shows that it is.

Example 3.3

Let \(T=\textrm{T}(\mathbb {Z})\) and \(M=\textrm{H}(\mathbb {Z})\), then we can define

$$\begin{aligned} {\Lambda :T\times M\times M\rightarrow M}\qquad \text {by}\qquad (a,p,m)\longmapsto {\left\{ \begin{array}{ll} p\ \text {if}\ p\ \text {even}\\ m\ \text {if}\ p\ \text {odd} \end{array}\right. }. \end{aligned}$$

One can easily show that \(\Lambda \) fulfils all conditions from Definition 3.1 apart from the base change property (3.4).

The following three lemmas explore the significance of the axioms presented in Definition 3.1, in particular they add significance to the base change property (3.4) and show how it can be used to repair the seemingly asymmetric requirement for \(\Lambda \) to be a heap morphism in the first and the third arguments, but not in the middle one.

Lemma 3.4

The base change property (3.4) is equivalent to

$$\begin{aligned} \big [\Lambda (t,m,e),e,\Lambda (t,e,n)\big ] = \Lambda (t,m,n) , \end{aligned}$$
(3.6)

for all \(t \in T\) and \(m,n,e \in M\).

Proof

In view of the Mal’cev identities and of the abelian property of the bracket,

$$\begin{aligned} \Lambda (t,m,n) = \big [\Lambda (t,e,n),\Lambda (t,e,m),m\big ] \end{aligned}$$

if and only if

$$\begin{aligned} \big [\Lambda (t,e,m),m,\Lambda (t,m,n)\big ] = \Lambda (t,e,n), \end{aligned}$$

that is to say, the base change property (3.4) is equivalent to (3.6). \(\square \)

Lemma 3.5

For fixed \(t\in T\) and \(n\in M\), the map \(\Lambda (t,-,n):M\rightarrow M\) is a heap homomorphism. Moreover,

$$\begin{aligned}{} & {} \Lambda (t,m,m)=m, \end{aligned}$$
(3.7)
$$\begin{aligned}{} & {} \Lambda (t,m,n) = [n,\Lambda (t,n,m),m] \end{aligned}$$
(3.8)

and

$$\begin{aligned} \Lambda \big (t,[e,m,f],[e,n,f]\big ) = [e,\Lambda (t,m,n),f], \end{aligned}$$
(3.9)

for all \(t\in T\), \(m,m',n,e,f \in M\).

Proof

Observe that equation (3.4) entails that

$$\begin{aligned} \begin{aligned} \Lambda \Big (t,[m,m',m''],n\Big )&= \Big [\Lambda (t,e,n),\Lambda (t,e,[m,m',m'']),[m,m',m'']\Big ] \\&= \Big [\Lambda (t,e,n),\Lambda (t,e,m),\Lambda (t,e,m'),\Lambda (t,e,m''),m,m',m''\Big ] \\&= \Big [\Lambda (t,e,n),\Lambda (t,e,m),m, \Lambda (t,e,n),\Lambda (t,e,m'), \\&m',\Lambda (t,e,n),\Lambda (t,e,m''),m''\Big ]\\&= \Big [\Lambda (t,m,n),\Lambda (t,m',n),\Lambda (t,m'',n)\Big ], \end{aligned} \end{aligned}$$

that is to say, that \(\Lambda \) is a heap map in the middle entry. Furthermore,

$$\begin{aligned} \Lambda (t,m,m) = \left[ \Lambda (t,e,m),\Lambda (t,e,m),m\right] = m, \end{aligned}$$

for all \(t\in T\), \(e,m \in M\), while equation (3.8) follows by replacing e on the right hand side of (3.4) by n and using (3.7).

Finally, by using (3.6) (to derive the third and fifth equalities) as well as (3.7) (to derive the second equality) and the fact that \(\Lambda \) is a heap morphism in all three arguments (to derive the first equality), we can compute

$$\begin{aligned} \begin{aligned} \Lambda \big (t,[e,m,f],[e,n,f]\big ) =&\Big [\Lambda (t,e,e),\Lambda (t,e,n), \Lambda (t,e,f), \Lambda (t,m,e),\Lambda (t,m,n),\\&\Lambda (t,m,f), \Lambda (t,f,e),\Lambda (t,f,n), \Lambda (t,f,f) \Big ]\\ =&\Big [e,\Lambda (t,e,n), \Lambda (t,e,f), f, \Lambda (t,f,e), \Lambda (t,m,e),\Lambda (t,m,n),\\&\Lambda (t,m,f), f, \Lambda (t,f,n), f \Big ]\\ =&\Big [e,\Lambda (t,e,n), e, \Lambda (t,m,e),\Lambda (t,m,n), \Lambda (t,m,n),f \Big ]\\ =&\Big [e,\Lambda (t,m,n), f \Big ]. \end{aligned} \end{aligned}$$

In addition to the above mentioned properties, we have also freely used the Mal’cev identities and the reshuffling rules for abelian heaps. This proves (3.9). \(\square \)

We note in passing that the property (3.9) implies that in \(\textrm{G}(M;e)\) we have

$$\begin{aligned} \Lambda (t,-m,-n) = -\Lambda (t,m,n), \end{aligned}$$

for all \(m,n\in M\) and \(t\in T\), where we recall that \(-m = [e,m,e]\). Furthermore, from (3.7) it follows that all constant maps are morphisms of heaps of modules, as the following example exhibits.

Example 3.6

Let T be a truss and let M be a heap of T-modules. For any \(m \in M\), the constant function

$$\begin{aligned} \widehat{m}:M \longrightarrow M, \qquad x \longmapsto m, \end{aligned}$$

is a morphism of heaps of T-modules. In fact, it is clearly a morphism of heaps and the compatibility with \(\Lambda \) follows from (3.7).

Lemma 3.7

Let M be a heap with a function \(\Lambda :T\times M\times M \longrightarrow M\) that satisfies (3.1), (3.2), (3.3) and (3.7). Then, for all \(e,f\in M\), the morphism of heaps

$$\begin{aligned} \tau _e^f:M\longrightarrow M, \qquad m\longmapsto [m,e,f], \end{aligned}$$

satisfies (3.5) (that is, \(\tau _e^f\) becomes a morphism of heaps of modules) if and only if the base change property (3.4) holds (that is, M becomes a heap of modules).

Proof

Let M satisfy (3.1), (3.2), (3.3) and (3.7). In one direction, if \(\tau _e^f\) satisfies (3.5) for all \(e,f \in M\), then

$$\begin{aligned} \begin{aligned} \Lambda (a,e,m)&= \big [\Lambda (a,e,m),e,f,f,e\big ] = \big [\tau _e^f(\Lambda (a,e,m)),f,e\big ] {\mathop {=}\limits ^{\big (3.5\big )}} \big [\Lambda (a,\tau _e^f(e),\tau _e^f(m)),f,e\big ] \\&= \big [\Lambda (a,f,[m,e,f]),f,e\big ] = [\Lambda (a,f,m),\Lambda (a,f,e),f,f,e] \\&= [\Lambda (a,f,m),\Lambda (a,f,e),e], \end{aligned} \end{aligned}$$

for all \(e,f,m \in M\) and \(a \in T\), and hence (3.4) holds. In the other direction, if (3.4) holds, then

$$\begin{aligned} \begin{aligned} \Lambda \big (a,\tau _e^f(m),\tau _e^f(n)\big )&{=} \Lambda \big (a,[m,e,f],[n,e,f]\big ) \\&{\mathop {=}\limits ^{\big (3.4\big )}} \big [\Lambda (a,e,[n,e,f]),\Lambda (a,e,[m,e,f]),m,e,f\big ] \\&{=} \big [\Lambda (a,e,n),e,\Lambda (a,e,f),\Lambda (a,e,m),e,\Lambda (a,e,f),m,e,f\big ] \\&{=} \big [\Lambda (a,e,n),\Lambda (a,e,m),m,e,f\big ] {\mathop {=}\limits ^{\big (3.4\big )}} \tau _e^f\big (\Lambda (a,m,n)\big ), \end{aligned} \end{aligned}$$

for all \(e,f,m,n \in M\) and \(a \in T\). Summing up: the translation isomorphisms are morphisms of heaps of modules if and only if the base change property holds. \(\square \)

Lemma 3.5 can be used to characterise congruences of heaps of modules. Let \((M,\Lambda )\) be a heap of T-modules. By a sub-heap of modules, we mean a sub-heap N of M that is closed under the operation \(\Lambda \), that is, a sub-heap such that, for all \(n,n'\in M\) and \(t\in T\), \(\Lambda (t,n,n')\in N\).

Proposition 3.8

Let \((M,\Lambda )\) be a heap of T-modules.

  1. (1)

    For every non-empty sub-heap of modules N of M, the sub-heap relation \(\sim _N\) is a congruence on M.

  2. (2)

    If \(\sim \) is a congruence on the heap of T-modules M, then its equivalence classes are sub-heaps of modules of T.

Proof

(1) Let N be a non-empty sub-heap of modules and consider any \(m,m''\in M\) such that \(m\sim _N m''\). This means that there exist \(n,n'\in N\) such that \(m'' = [n,n',m]\). For all \(m'\in M\),

$$\begin{aligned} \begin{aligned} \Lambda (t,m',m'')&= \Lambda (t,m', [n,n',m]) \\&= [\Lambda (t,m', n),\Lambda (t,m', n'), \Lambda (t,m',m)]\\&= [[\Lambda (t,m', n),\Lambda (t,m', n'), n'], n', \Lambda (t,m',m)]\\&= [\Lambda (t,n', n),n', \Lambda (t,m',m)], \end{aligned} \end{aligned}$$

by (3.2) and the base change property (3.4) combined with the associativity of the heap operation and the Mal’cev identity. Hence,

$$\begin{aligned} \Lambda (t,m',m'') \sim _N \Lambda (t,m',m). \end{aligned}$$
(3.10)

Next, by using in addition equation (3.8) in Lemma 3.5 and (3.6), we can compute

$$\begin{aligned} \begin{aligned} \Lambda (t,m'',m')&= \big [\Lambda (t,n,m'),\Lambda (t,n',m'),\Lambda (t,m,m')\big ] \\&= \big [\Lambda (t,n,m'),m',\Lambda (t,m',n'),n',\Lambda (t,m,m')\big ] \\&= \big [\Lambda (t,n,n'),n',\Lambda (t,m,m')\big ]. \end{aligned} \end{aligned}$$

Therefore,

$$\begin{aligned} \Lambda (t,m'',m') \sim _N \Lambda (t,m,m'). \end{aligned}$$
(3.11)

Finally, using (3.10) and (3.11) and the transitivity of equivalence relations we conclude that in general, if \(m\sim _N m''\) and \(m'\sim _N m'''\), then \(\Lambda (t,m'',m''') \sim _N \Lambda (t,m,m')\), as required for a congruence.

(2) Let [m] be a congruence class of \(m\in M\). Then, [m] is a sub-heap of M by the Mal’cev identities (idempotency of the heap operation). Similarly, (3.7) in Lemma 3.5 implies that if \(m'\sim m\) and \(m''\sim m\), then, for all \(t\in T\),

$$\begin{aligned} \Lambda (t,m',m'') \sim \Lambda (t,m,m) =m, \end{aligned}$$

and hence [m] is a sub-heap of modules. \(\square \)

The next two results justify the claim that heaps of modules can be understood as a different point of view on induced (sub)modules.

Proposition 3.9

Let T be a truss, let M be a T-module, and let N be an induced T-submodule of M. Then, \((N,\triangleright )\) is a heap of T-modules, where \(\triangleright :T\times N\times N \rightarrow N\) is a map which assigns to every triple \((t,e,n)\in T\times N\times N\), the induced e-action \(t\triangleright _e n\). Furthermore, the assignment

$$\begin{aligned} \mathcal {H}:T \text {-} \textbf{Mod} \rightarrow T \text {-} \textbf{HMod}, \qquad (M,[-,-,-],\cdot ) \longmapsto (M,[-,-,-],\triangleright ) \end{aligned}$$

is functorial.

Proof

Observe that since N with the induced action \(\triangleright _e\) is a T-module, for all \(e\in N\), it is enough to check that the base change property holds. Let \(m,n \in N\), \(t \in T\), then

$$\begin{aligned} {[}t\triangleright _e n, t\triangleright _e m, m]=[t\!\cdot \! n,t\!\cdot \!e,e,t\!\cdot \!m,t\!\cdot \!e,e,m]=[t\!\cdot \!n,t\!\cdot \!m,m] =t\triangleright _m n. \end{aligned}$$

Thus, \((N,\triangleright )\) is a heap of T-modules. Moreover, if \(f:M \longrightarrow M'\) is a morphism of T-modules then

$$\begin{aligned} f\left( t \triangleright _e m\right) = f\big ([t\!\cdot \!m, t \!\cdot \!e,e]\big ) = \big [t\!\cdot \!f(m), t\!\cdot \!f(e),f(e)\big ] = t \triangleright _{f(e)} f(m). \end{aligned}$$

Hence, f is a morphism of heaps of T-modules as well. \(\square \)

Example 3.10

Since an abelian heap H is an \(\textrm{E}(H)\)-module by evaluation (see Example 2.17), the map \( \Lambda :\textrm{E}(H)\times H\times H\longrightarrow H,\) \((f,a,b) \longmapsto [f(b),f(a),a],\) makes H into a heap of \(\textrm{E}(H)\)-modules.

Example 3.11

Let T be a truss. The endomorphism truss \(\textrm{E}(T)\) of T as an abelian heap is a T-module with \((t \cdot f)(t') :=tf(t')\) for all \(t,t'\in T\) and \(f \in \textrm{E}(T)\). Therefore, it also enjoys a structure of heap of T-modules as in Proposition 3.9, explicitly given by \(\Lambda (t,f,f') = [t\cdot f', t\cdot f, f]\).

Example 3.12

Let T be a truss. By Proposition 3.9, the regular action on T gives rise to the heap of T-modules with \(\Lambda (t,r,s) = [ts,tr,r],\) for all \(t,r,s \in T\).

Lemma 3.13

Let \((M,\Lambda )\) be a heap of T-modules over a truss T. For any \(e\in M\) define the operation

$$\begin{aligned} ~\!\cdot \!_e~ :T\times M\longrightarrow M,\quad t\!\cdot \!_e m :=\Lambda (t,e,m). \end{aligned}$$

Then:

  1. (1)

    The pair \(\big (M,\;\!\cdot \!_e\big )\) is a T-module with absorber e such that \(\mathcal {H}\big (M,\;\!\cdot \!_e\big ) = (M,\Lambda )\).

  2. (2)

    For all \(e,f\in M\), the translation map \(\tau _e^f: M\longrightarrow M\) is an isomorphism from \(\big (M,\;\!\cdot \!_e\big )\) to \(\big (M,\;\!\cdot \!_f\big )\).

  3. (3)

    For every T-module \((M,\cdot )\), \(\big (\mathcal {H}(M,\cdot ),\;\!\cdot \!_e\big ) = (M,\triangleright _e)\).

Proof

(1) Observe that since \(\Lambda \) is a heap homomorphism on the first and third entries and it is T-associative, \(\Lambda (-,e,-)\) is a T-action on M. Moreover, \(\Lambda (t,e,e)=e\), for all \(t\in T\), by (3.7). Thus, e is an absorber for \(\Lambda (-,e,-)\). If we consider \(\triangleright :T \times M \times M \rightarrow M\) associated with \(\cdot \!_e = \Lambda (-,e,-)\) as in Proposition 3.9, then

$$\begin{aligned} t\triangleright _m n = \big [t\!\cdot \!_e n, t \!\cdot \!_e m,m\big ] = \Big [\Lambda (t,e,n),\Lambda (t,e,m),m\Big ] {\mathop {=}\limits ^{\big (3.4\big )}} \Lambda (t,m,n), \end{aligned}$$

for any \(t\in T\) and \(m,n\in M\). Therefore, \(\triangleright =\Lambda \) and \(\mathcal {H}\big (M,\Lambda (-,e,-)\big )=(M,\Lambda )\).

(2) This follows from Lemma 3.7, since

$$\begin{aligned} \tau _e^f\big (t \!\cdot \!_e m\big ) = \tau _e^f\big (\Lambda (t,e, m)\big ) = \Lambda \big (t,f,\tau _e^f(m)\big ) = t \!\cdot \!_f \tau _e^f(m), \end{aligned}$$

for all \(e,f,m \in M\) and \(t \in T\).

(3) Finally, in \(\big (\mathcal {H}(M,\cdot ), \!\cdot \!_e\big )\), for all \(m \in M\) and \(t \in T\),

$$\begin{aligned} t \!\cdot \!_e m = \triangleright \big (t,e,m\big ) = t \triangleright _e m \end{aligned}$$

and hence \(\big (\mathcal {H}(M,\cdot );e\big ) = (M,\triangleright _e)\). \(\square \)

Put together, Proposition 3.9 and Lemma 3.13 immediately yield

Corollary 3.14

Every heap of T-modules \((M,\Lambda )\) is the heap of T-modules \(\mathcal {H}\big (M,\triangleright _e\big )\) associated with an induced action \(\triangleright _e\) on some T-module M (with absorber).

Remark 3.15

It is worth to mention here that two different T-modules can have the same induced module structure. Consider a T-module \((M,\cdot )\) without an absorber and its induced T-module \((M,\triangleright _e)\), for some \(e\in M\). Then, \(((M,\cdot ),\triangleright _e)=(M,\triangleright _e)\), but \((M,\triangleright _e)\) is not even isomorphic with \((M,\cdot )\) as there is no T-module homomorphism from \((M,\triangleright _e)\) to \((M,\cdot )\). \(\triangle \)

The correspondence of Corollary 3.14 can be used to prove the following entropic or interchange property of heaps of modules.

Lemma 3.16

Let \((M,\Lambda )\) be a heap of T-modules. Let \(t,t'\in T\) be such that for some \(e\in T\) and all \(m\in M\),

$$\begin{aligned} \Lambda (tt',e,m) = \Lambda (t't,e,m). \end{aligned}$$
(3.12)

Then, for all \(m,m', m'', n\in M\),

$$\begin{aligned} \Lambda \Big (t, \Lambda \left( t',m,m'\right) , \Lambda \left( t',m'',n\right) \Big ) = \Lambda \Big (t', \Lambda \left( t,m,m''\right) , \Lambda \left( t,m',n\right) \Big ). \end{aligned}$$

Proof

With no loss of generality, we may assume that \(\Lambda \) is given by an induced action on a T-module M (with an absorber, say, a), that is,

$$\begin{aligned} \Lambda (t,m,n) = t \triangleright _mn = [t\!\cdot \!n,t\!\cdot \!m,m]. \end{aligned}$$

Furthermore, the base change property implies that if the equality (3.12) holds for one \(e\in M\), then it does so for all \(e\in M\). Thus, in particular,

$$\begin{aligned} tt'\!\cdot \! m = [tt'\!\cdot \!m,tt'\!\cdot \!a,a] = \Lambda (tt',a,m) = \Lambda (t't,a,m) = [t't\!\cdot \!m,t't\!\cdot \!a,a] = t't\!\cdot \!m, \end{aligned}$$
(3.13)

for all \(m\in M\). Therefore, using the distributive laws of the T-action to derive the first and third equalities and the fact that M is an abelian heap and (3.13) to derive the middle one, we can compute,

$$\begin{aligned} \begin{aligned}&\Lambda \Big (t, \Lambda \left( t',m,m'\right) , \; \Lambda \left( t',m'',n\right) \Big )\\&\quad = \Big [[tt'\!\cdot \!n,tt'\!\cdot \!m'',t\!\cdot \!m''],[tt'\!\cdot \!m',tt'\!\cdot \!m,t\!\cdot \!m], [t'\!\cdot \!m',t'\!\cdot \!m,m]\Big ]\\&\quad = \Big [[t't\!\cdot \!n,t't\!\cdot \!m',t'\!\cdot \!m'],[t't\!\cdot \!m'',t't\!\cdot \!m,t'\!\cdot \!m], [t\!\cdot \!m'',t\!\cdot \!m,m]\Big ]\\&\quad = \Lambda \Big (t', \Lambda \left( t,m,m''\right) , \Lambda \left( t,m',n\right) \Big ), \end{aligned} \end{aligned}$$

as required. \(\square \)

Remark 3.17

Recall that if MN are abelian heaps, then we may perform the tensor product \(M \otimes N\) of abelian heaps and this satisfies properties similar to those of the tensor product of modules. With this convention and in view of Lemma 3.13, a heap of T-modules is an abelian heap \((M,[-,-,-])\) together with a heap homomorphism

$$\begin{aligned} \Lambda :T \otimes M \otimes M \rightarrow M, \qquad t \otimes m \otimes n \longmapsto t \triangleright _mn \end{aligned}$$

which is T-associative,

$$\begin{aligned} ts \triangleright _m n = t \triangleright _m \Big (s \triangleright _m n \Big ), \end{aligned}$$

and satisfies the base change property

$$\begin{aligned} t \triangleright _m n = \big [t\triangleright _en,t \triangleright _em,m\big ], \end{aligned}$$

for all \(m,n,e \in M\) and \(t,s \in T\). \(\triangle \)

3.2 Isotropy and contractibility for heaps of modules

Recall from Lemma 3.13 that if M is a heap of T-modules, then \((M,\cdot _e)\) denotes the associated T-module with \(t\cdot _em = \Lambda (t,e,m)\), for all \(t \in T\), \(e,m \in M\).

As modules over trusses do not need to be isotropic or contractible in general, the same happens for heaps of modules. Therefore, we are led to the following lemmata and definitions.

Lemma 3.18

Let T be a truss. For any heap of T-modules M, the set

$$\begin{aligned} \textrm{Stab}(M) :=\{u\in T\; |\; \Lambda (u,m,n) = n, \; \text{ for } \text{ all } m,n\in M\} \end{aligned}$$

is a sub-truss and, if non-empty, it is a paragon of T. In all cases, if M is non-empty, then for all \(e\in M\), \(\textrm{Stab}(M)= \textrm{Stab}(M,\;\!\cdot \!_e)\).

Proof

First of all, notice that if \(M = \varnothing \), then \(\textrm{Stab}(M) = T\) and the statement is true. If \(M\ne \varnothing \), then for any \(e \in M\), \(\textrm{Stab}(M) = \textrm{Stab}(M,\!\cdot \!_e)\), by the base change property (3.4), where

$$\begin{aligned} \textrm{Stab}(M,\!\cdot \!_e) = \{u\in T\; |\; \Lambda (u,e,n) = n, \; \text{ for } \text{ all } n\in M\}, \end{aligned}$$

(see Lemma 2.19). The inclusion \(\textrm{Stab}(M) \subseteq \textrm{Stab}(M,\!\cdot \!_e)\) holds trivially, while, for every \(u \in \textrm{Stab}(M,\!\cdot \!_e)\),

$$\begin{aligned} \Lambda (u,m,n) {\mathop {=}\limits ^{\big (3.4\big )}} \big [\Lambda (u,e,n),\Lambda (u,e,m),m\big ] = [n,m,m] {\mathop {=}\limits ^{\big (2.2\big )}} n \end{aligned}$$

for all \(n \in M\) and hence \(\textrm{Stab}(M,\!\cdot \!_e) \subseteq \textrm{Stab}(M)\), too. Therefore, the statement follows by Lemma 2.19. \(\square \)

Definition 3.19

For a heap of T-modules M, \(\textrm{Stab}(M)\) is called the stabiliser or isotropy paragon of M. A heap of T-modules M is said to be isotropic if \(\textrm{Stab}(M)\) is non-empty. The category of isotropic heaps of T-modules \(T\text {-} {\textbf {HMod}}_{{\textbf {is}}}\) is the full subcategory of heaps of T-modules whose objects are isotropic heaps of T-modules. \(\diamond \)

Remark 3.20

It follows from the proof of Lemma 3.18 that a (non-empty) heap of T-modules M is isotropic if and only if \(\big (M,\!\cdot \!_e\big )\) is an isotropic T-module for all \(e \in M\), if and only if there exists \(e \in M\) such that \(\big (M,\!\cdot \!_e\big )\) is isotropic. \(\triangle \)

Lemma 3.21

Let T be a truss. For any heap of T-modules M, the set

$$\begin{aligned} \textrm{Ann}(M) :=\big \{z\in T \mid \Lambda (z,m,n) = m, \; \text{ for } \text{ all } m,n\in M\big \}, \end{aligned}$$

is either empty or a two-sided ideal of T. Furthermore, if M is non-empty, then for all \(e\in M\), \(\textrm{Ann}(M)= \textrm{Ann}_e(M,\!\cdot \!_e)\).

Proof

Analogously to the proof of Lemma 3.18, if \(M = \varnothing \), then \(\textrm{Ann}(M) = T\) and the statement is trivially true. If \(M \ne \varnothing \), then for every \(e \in M\) we have that \(\textrm{Ann}(M) = \textrm{Ann}_e(M,\!\cdot \!_e)\) by the base change property (3.4), where

$$\begin{aligned} \textrm{Ann}_e(M,\!\cdot \!_e) = \big \{ z \in T \mid z \!\cdot \!_e m = e \text { for all } m \in M \big \}. \end{aligned}$$

The latter is a two-sided ideal by Lemma 2.25. \(\square \)

Definition 3.22

For a heap of T-modules M, \(\textrm{Ann}(M)\) is called the annihilator or contracting ideal of M. A heap of T-modules M is said to be contractible if \(\textrm{Ann}(M)\) is non-empty. The category of contractible heaps of T-modules \(T\text {-} {\textbf {HMod}}^{{\textbf {cn}}}\) is the full subcategory of heaps of T-modules whose objects are contractible heaps of T-modules. \(\diamond \)

Proposition 3.23

Let T be a non-empty truss and let M be a non-empty heap of T-modules. The following statements are equivalent:

  1. (1)

    M is contractible.

  2. (2)

    For every \(e \in M\), the T-module \(\big (M,\!\cdot \!_e\big )\) with absorber \(e \in M\) is e-contractible.

  3. (3)

    There exists \(e \in M\) such that \((M,\!\cdot \!_e)\) is e-contractible.

Proof

The chain of implications (1) \(\Rightarrow \)(2) \(\Rightarrow \) (3) is clear, while to prove that (3) \(\Rightarrow \) (1) it is enough to note that \(\textrm{Ann}(M) = \textrm{Ann}_e(M,\!\cdot \!_e) \ne \varnothing \), by Lemma 3.21. \(\square \)

Theorem 3.24

Let T be a truss and let M be a heap of T-modules.

  1. (1)

    If M is an isotropic heap of T-modules then, by considering T as a module over itself, \(\textrm{Stab}(T) \subseteq \textrm{Stab}(M)\). In particular, if T is a unital truss with unit \(1_T\), then \(1_T \in \textrm{Stab}(M)\).

  2. (2)

    If M is an isotropic heap of T-modules and T is a unital truss, then the set

    $$\begin{aligned} \textrm{Stab}(M)^\times :=\textrm{Stab}(M) \cap T^\times = \left\{ t \in T^\times \mid \Lambda (t,m,n) = n \text { for all } m,n \in M\right\} \end{aligned}$$

    is a group with respect to the product in T.

  3. (3)

    If M is a contractible heap of T-modules and the truss T admits an absorber \(0_T\), then \(0_T \in \textrm{Ann}(M)\).

Proof

(1) If \(u_T \in T\) is such that \(u_T\, t=t\) for all \(t \in T\) and \(u_M \in T\) is such that \(\Lambda (u_M,m,n) = n\) for all \(m,n \in M\), then

$$\begin{aligned} \Lambda (u_T,m,n) = \Lambda \big (u_T,m,\Lambda (u_M,m,n)\big ) {\mathop {=}\limits ^{\big (3.3\big )}} \Lambda (u_T\,u_M,m,n) = \Lambda (u_M,m,n) = n \end{aligned}$$

for all \(m,n\in M\) and hence \(u_T \in \textrm{Stab}(M)\).

(2) In view of Lemma 3.18, we know that \(\textrm{Stab}(M)^\times \) is closed under the multiplication in T. In view of (1), we know that \(1_T \in \textrm{Stab}(M)^\times \). Finally, if \(t \in \textrm{Stab}(M)^\times \) then

$$\begin{aligned} \Lambda (t^{-1},m,n) = \Lambda \big (t^{-1},m,\Lambda (t,m,n)\big ) {\mathop {=}\limits ^{\big (3.3\big )}} \Lambda (t^{-1}t,m,n) = \Lambda (1_T,m,n) = n, \end{aligned}$$

for all \(m,n \in M\), whence \(t^{-1} \in \textrm{Stab}(M)^\times \) too.

(3) Suppose that \(z_M \in T\) satisfies \(\Lambda (z_M,m,n) = m\), for all \(m,n\in M\). Then

$$\begin{aligned} m {\mathop {=}\limits ^{\big (3.7\big )}} \Lambda (0_T,m,m) = \Lambda \big (0_T,m,\Lambda (z_M,m,n)\big ) {\mathop {=}\limits ^{\big (3.3\big )}} \Lambda (0_T\,z_M,m,n) = \Lambda (0_T,m,n), \end{aligned}$$

for all \(m,n \in M\). Thus, \(0_T \in \textrm{Ann}(M)\). \(\square \)

3.3 Crossed products by heaps of modules

The following proposition extends the construction of [11, Theorem 4.2] to heaps of modules.

Proposition 3.25

Let T be a non-empty truss and \((M,\Lambda )\) be a non-empty heap of T-modules. Then, for all \(e\in M\), the Cartesian product of heaps \(M\times T\) is a truss with multiplication

$$\begin{aligned} (m,s)(n,t) = ([\Lambda (s,e,n),e,m], st), \end{aligned}$$

for all \((m,s),(n,t) \in M\times T\). We denote this truss by \(M\overset{e}{\rtimes }\ T\) and call it a cross-product of T with M.

Proof

By Lemma 3.13, if \((M,\Lambda )\) is a heap of T-modules and \(a \in M\), then \((M,\!\cdot \!_a)\) is a T-module, where \(t \!\cdot \!_a m = \Lambda (t,a,m)\) for all \(t \in T, m\in M\). Therefore, by [11, Theorem 4.2], for any \(e\in M\),

$$\begin{aligned} \begin{aligned} (m,s)(n,t)&= \big ([m,s\!\cdot \!_a e,s \!\cdot \!_a n],st\big ) = \big ([\Lambda (s,a,n),\Lambda (s,a,e),m],st\big ) \\&= \big ([\Lambda (s,a,n),\Lambda (s,a,e),e,e,m],st\big ) {\mathop {=}\limits ^{\big (3.4\big )}} \big ([\Lambda (s,e,n),e,m],st\big ), \end{aligned} \end{aligned}$$

and \(M \times T\) is a truss with the Cartesian product heap structure. \(\square \)

The cross-product by a heap of modules has similar properties to those of an extension of a truss by a module listed in [11, Theorem 4.4].

Lemma 3.26

Let T be a non-empty truss and \((M,\Lambda )\) be a non-empty heap of T-modules.

  1. (1)

    M is a left \(M\overset{e}{\rtimes }\ T\)-module by the action

    $$\begin{aligned} (m,t)\cdot n = [\Lambda (s,e,n),e,m]. \end{aligned}$$

    In particular \((m,t)\cdot e =m\), for all \(m\in M\) and \(t\in T\).

  2. (2)

    The trusses \(M\overset{e}{\rtimes }\ T\) and \(M\overset{f}{\rtimes }\ T\) are isomorphic for all \(e,f\in M\).

  3. (3)

    For all \(u\in T\), \(M_u = M\times \{u\}\) is a paragon in \(M\overset{e}{\rtimes }\ T\), and \(T \cong M\overset{e}{\rtimes }\ T/M_u\).

  4. (4)

    The heap \(T_e =\{e\}\times T\) is a sub-truss and a left paragon of \(M\overset{e}{\rtimes }\ T\), and \(M\cong M\overset{e}{\rtimes }\ T/T_e\) as left \(M\overset{e}{\rtimes } T\)-modules.

Proof

As in the proof of Proposition 3.25, apply [11, Theorem 4.4] to T and the T-module \((M,\!\cdot \!_a)\) for \(a \in M\). \(\square \)

4 Heaps of modules and affine spaces

In this section, we will focus on a geometric interpretation of heaps of modules over a truss. In particular, we will highlight the relationship between heaps of \(\textrm{T}(R)\)-modules and affine modules over a ring R. We will show that the straightforward extension of the notion of an affine module over a ring R to that of an affine space over a truss T by changing an R-module to a T-group (and it will be clear soon why this is the natural choice) provides for us a category which turns out to be equivalent to the category of heaps of T-modules. Thus, affine spaces over a ring R or over a field \(\mathbb {F}\) are special cases of heaps of \(\textrm{T}(R)\) or \(\textrm{T}(\mathbb {F})\)-modules, respectively.

4.1 Morphisms of heaps of modules as translations

The first observation to be made is that all morphisms of heaps of T-modules are translations of T-module morphisms, for a particular choice of T-modules.

To this aim, recall from Sect. 2.4 how the category of T-groups is isomorphic to the category of T-modules with a chosen absorber and morphisms preserving the absorbers.

Proposition 4.1

Let T be a truss and let MN be two non-empty heaps of T-modules. Let \(m \in M\) and \(n \in N\). Then, a function \(f :M \longrightarrow N\) is a morphism of T-groups from \(\big (\textrm{G}(M;m),\!\cdot \!_m\big )\) to \(\big (\textrm{G}(N;n),\!\cdot \!_n\big )\) if and only if f is a morphism of heaps of T-modules such that \(f(m) = n\).

Proof

If \(f \in T\text {-} \textbf{HMod} (M,N)\) and \(f(m) = n\), then \(f\in \textbf{Hp}(M,N)\) and

$$\begin{aligned} f\big (t \!\cdot \!_m m'\big ) = f\big (\Lambda _M(t,m,m')\big ) = \Lambda _N\big (t,n,f(m')\big ) = t \!\cdot \!_n f(m') \end{aligned}$$

for all \(m'\in M\), that is, it is a morphism of T-modules from \((M,\!\cdot \!_m)\) to \((N,\!\cdot \!_n)\). Moreover, it preserves the chosen absorbers \(m \in M\) and \(n \in N\), whence it is a morphism of T-groups. Conversely, if f is a morphism of T-groups from \(\big (\textrm{G}(M;m),\!\cdot \!_m\big )\) to \(\big (\textrm{G}(N;n),\!\cdot \!_n\big )\), then \(f = \mathcal {H}(f)\) is a morphism of heaps of T-modules from \(\mathcal {H}\big (\textrm{H}\big (\textrm{G}(M;m)\big ),\!\cdot \!_m\big ) = M\) to \(\mathcal {H}\big (\textrm{H}\big (\textrm{G}(N;n)\big ),\!\cdot \!_n\big ) = N\) and it clearly satisfies \(f(m) = n\). \(\square \)

The following corollaries of Proposition 4.1 highlight how heaps of modules behave as affine versions of T-groups.

Corollary 4.2

Let T be a truss, MN be non-empty heaps of T-modules and let \(f :M \longrightarrow N\) be a function. Then,

$$\begin{aligned} f \in T\text {-} \textbf{HMod}(M,N) \quad \iff \quad \tau _{f(m)}^{n} \circ f \in T\text {- }\textbf{Grp}\Big (\big (\text {G}(M;m),\!\cdot \!_m\big ),\big (\text {G}(N;n),\!\cdot \!_n\big )\Big ), \end{aligned}$$

for some (and hence for all) \(m\in M\) and \(n\in N\). In particular, \(f:M \longrightarrow N\) is a morphism of heaps of T-modules if and only if \(f(-) = F(-) +_n f(m)\) for some morphism of T-groups \(F:\big (\textrm{G}(M;m),\!\cdot \!_m\big ) \longrightarrow \big (\textrm{G}(N;n),\!\cdot \!_n\big )\).

Proof

Let us recall from Lemma 3.7 that \(\tau _{f(m)}^n \in T\text {-} {\textbf {HMod}}(N,N)^{\times }\) and notice that \(\big (\tau _{f(m)}^{n} \circ f\big )(m) = n\). Thus, by Proposition 4.1,

$$\begin{aligned} \tau _{f(m)}^{n} \circ f \in T\text{- }\textbf{Grp}\Big (\big (\textrm{G}(M;m),\!\cdot \!_m\big ),\big (\textrm{G}(N;n),\!\cdot \!_n\big )\Big ) \end{aligned}$$

if and only if \(\tau _{f(m)}^{n} \circ f \in T\text {-} {\textbf {HMod}}(M,N)\), if and only if \(f \in T\text {-} \textbf{HMod}(M,N)\).

To conclude, observe that by setting \(F :=\tau ^n_{f(m)} \circ f\) we find

$$\begin{aligned} f(-) = \left( \tau _n^{f(m)} \circ \tau _{f(m)}^n \circ f\right) (-) = \left[ F(-),n,f(m)\right] = F(-) +_n f(m). \end{aligned}$$

\(\square \)

Corollary 4.3

Let \((G,+,0_G,\cdot )\) and \((H,+,0_H,\cdot )\) be T-groups, for some truss T. Then

$$\begin{aligned} f \in T\text {-} \textbf{HMod}\big (\mathcal {H}(\text {H}(G)), \mathcal {H}(\text {H}(H))\big ) \quad \iff \quad \tau _{f(0_G)}^{0_H} \circ f \in T\text {- }\textbf{Grp}\big (G,H\big ). \end{aligned}$$

In particular, for all T-modules MN, and all \(m\in M, n\in N\),

$$\begin{aligned} f\in T\text {-} \textbf{HMod}\big (\mathcal {H}(M),\mathcal {H}(N)\big ) \iff \tau _{f(m)}^n\circ f \in T\text {- }\textbf{Grp}\big (\big (\text {G}(M;m),\triangleright _m\big ),\big (\text {G}(N;n),\triangleright _n\big )\big ). \end{aligned}$$

Proof

Recall from Lemma 3.13 that \(\big (\mathcal {H}\big (\textrm{H}(G,+,0_G),\cdot \big ),\cdot _{0_G}\big ) = \big (\textrm{H}(G,+,0_G),\triangleright _{0_G}\big )\) and the latter is the T-group \((G,+,0_G,\cdot )\) again by Lemma 2.24 and Theorem 2.33. Hence, the first claim follows from Corollary 4.2. The second claim is a particular instance of the first one. \(\square \)

Now, by the following example we can observe that, in general, the analogue of Corollary 4.3 for T-modules does not hold.

Example 4.4

Let us consider a non-empty T-module \((M,\cdot )\) without an absorber. For instance, \(M = \mathbb {Z}\) as a module over itself with the truss structure given by

$$\begin{aligned} m \cdot n = 2mn + m + n, \end{aligned}$$

(see [7, Corollary 3.53]). Consider also the induced submodule \((M,\triangleright _e)\), for an arbitrary element \(e\in M\). Since the identity morphism and the constant map \(\widehat{e}:M \longrightarrow M\), \(m \longmapsto e\), are elements of

$$\begin{aligned} T\text{- }\textbf{Grp}\Big (\big ((M,\triangleright _e),\triangleright _e\big ),\big ((M,\cdot ),\triangleright _e\big )\Big ) = T\text{- }\textbf{Grp}\big ((M,\triangleright _e),(M,\triangleright _e)\big ), \end{aligned}$$

we know from Corollary 4.3 that the identity morphism and all the constant maps \(\widehat{m}:M \longrightarrow M\), \(n \longmapsto m\), for \(m \in M\) are elements of \(T\text{- } \textbf{ HMod}\big (\mathcal {H}(M,\triangleright _e),\mathcal {H}(M,\cdot )\big )\). However, \(T\text{- }\textbf{ Mod}\big ((M,\triangleright _e),(M,\cdot )\big ) = \varnothing \), and so no translation of any morphism in \(T\text{- } \textbf{ HMod}\big (\mathcal {H}(M,\triangleright _e),\mathcal {H}(M,\cdot )\big )\) can be therein.

Even though the T-modules \((M,\cdot )\) and \((M,\triangleright _e)\) are not necessarily isomorphic, unexpectedly, every induced submodule of \((M,\cdot )\) is an induced submodule of \((M,\triangleright _e)\) and vice versa (see the paragraphs preceding (2.8)). Thus, we have an equality of heaps of T-modules \(\mathcal {H}(M,\triangleright _e)=\mathcal {H}(M,\cdot )\). On the other hand, such an equality always yields an isomorphism of modules in case the truss is a ring or the modules are T-groups. This points out how unique and different modules over trusses are from T-groups and modules over rings. Recall that we proved in Theorem 2.33 and Proposition 2.29 that the category of T-groups is equivalent to the category \(\star /T\text {-}{} {\textbf {Mod}}\). In fact, we can recover T-groups as heaps of modules under the singleton heap of modules.

Proposition 4.5

The category \(\star /T\text{- } \textbf{ HMod}\) is isomorphic to the category \(T\text{- }\textbf{Grp}\).

Proof

In view of Corollary 4.2, the assignment sending every \(\star {\mathop {\longrightarrow }\limits ^{f}} M\) in \(\star /T\text{- } \textbf{ HMod}\) to \(\big (\textrm{G}(M;f(*)),\cdot _{f(*)}\big )\) gives rise to a well-defined, fully faithful functor. In the opposite direction, by Corollary 4.3, the assignment sending every \((G,+,0,\cdot )\) in \(T\text{- }\textbf{Grp}\) to \(\star \longrightarrow \mathcal {H}\big (\textrm{H}(G),\cdot \big ), * \longmapsto 0\), is a well-defined, fully faithful functor, which is the inverse of the previous one. \(\square \)

Given a ring R, with every R-module M one can associate a heap of R-modules by taking \(\Lambda (r,m,m') = r\!\cdot \!m' - r\!\cdot \!m + m\) and \([m,m',m''] = m - m' + m''\), where \(r\in R\) and \(m,m',m''\in M\). Choosing these operations is the same as taking \(\mathcal {H}(\textrm{T}(M))\) as in Example 2.17(3) and Proposition 3.9. By Proposition 3.9 and Lemma 3.13, all heaps of \(\textrm{T}(R)\)-modules arise from \(\textrm{T}(R)\)-modules, but not necessarily from R-modules. Thus, we are led to consider also the full subcategory \(R\text {-} {\textbf {HMod}}\) of \(\text {T}(R)\text {-} {\textbf {HMod}}\) in which all objects are coming from R-modules, that is, \(\textrm{T}(R)\)-modules with exactly one absorber (see [10, Lemma 4.6 (2)(ii)]).

Proposition 4.6

The category \(R\text {-} \textbf{HMod}\) is the category \(\big (\text {T}(R)\text {-} \textbf{HMod}_{\textbf{is}}^{\textbf{cn}}\big )^{\textbf{in}}\) of inhabited isotropic contractible heaps of \(\textrm{T}(R)\)-modules.

Proof

First of all, let us show that the category \(R\text {-} {\textbf {HMod}}\) is closed under isomorphisms, whence it is the essential image of the composite functor

Let \((M,[-,-,-],\Lambda )\) be a heap of \(\textrm{T}(R)\)-modules for which there exist an R-module P and isomorphism of heaps of \(\textrm{T}(R)\)-modules \(\varphi :\mathcal {H}(\textrm{T}(P)) \longrightarrow M\). Then, M is non-empty, as \(e :=\varphi (0_P) \in M\), and \(1_R \in \textrm{Stab}(M)\) and \(0_R \in \textrm{Ann}\,(M)\), so that it is isotropic and contractible. Thus, we may consider the abelian group \(\textrm{G}(M;e) = (M, +_e, e)\) and the R-action \(R \times M \longrightarrow M, (r,m) \longmapsto r \!\cdot \!_e m\), which makes M an R-module. In this setting, \(\textrm{T}\big ((M, +_e, e),\!\cdot \!_e\big ) = \big ((M,[-,-,-]),\!\cdot \!_e\big )\) and \(\mathcal {H}\big ((M,[-,-,-]),\!\cdot \!_e\big ) = (M,[-,-,-],\Lambda )\) by Lemma 3.13, which shows that M is an object in \(R\text {-} {\textbf {HMod}}\).

Now, if M is an R-module, then \(\mathcal {H}(\textrm{T}(M))\) is an inhabited heap of \(\textrm{T}(R)\)-modules with \(1_R \in \textrm{Stab}\big (\mathcal {H}(\textrm{T}(M))\big )\) and \(0_R \in \textrm{Ann}\,\big (\mathcal {H}(\textrm{T}(M))\big )\). Whence any object of \(R\text {-} {\textbf {HMod}}\) is an object in \(\big (\text {T}(R)\text {-} {\textbf {HMod}}_{\textbf{is}}^{\textbf{cn}}\big )^{\textbf{in}}\), too. Conversely, for any object \((M,[-,-,-],\Lambda )\) in \(\big (\text {T}(R)\text {-} {\textbf {HMod}}_{\textbf{is}}^{\textbf{cn}}\big )^{\textbf{in}}\) we have that M is non-empty, so there exists \(e \in M\), and that \(1_R \in \textrm{Stab}(M)\) and \(0_R \in \textrm{Ann}\,(M)\) by Theorem 3.24. Thus, as above we may consider the abelian group \(\textrm{G}(M;e) = (M, +_e, e)\) and the R-action \(R \times M \longrightarrow M, (r,m) \longmapsto r \!\cdot \!_e m\), which makes of M an R-module. Again, it turns out that \((M,[-,-,-],\Lambda ) = \mathcal {H}(\textrm{T}(\textrm{G}(M;e)))\) and hence it is an object in \(R\text {-} {\textbf {HMod}}\). \(\square \)

The following is a particular instance of Corollary 4.3 (see also [3, Lemma 3.1]).

Proposition 4.7

Let R be a ring and MN be R-modules. Then,

$$\begin{aligned} f\in R\text {-} \textbf{HMod}\big (\mathcal {H}(\text {T}(M)),\mathcal {H}(\text {T}(N))\big ) \ \iff \ [f(-),f(0_M),0_N]\in R\text {-}\textbf{Mod}(M,N), \end{aligned}$$

where \(0_M\) is the neutral element of the additive group M and \(0_N\) is the neutral element of N. In particular, \(f:M \longrightarrow N\) is a morphism of heaps of R-modules if and only if \(f = F + f(0_M)\) for some morphism of R-modules \(F:M \longrightarrow N\).

4.2 Heaps of modules as affine spaces

In Sect. 4.1, we have shown that every homomorphism of heaps of T-modules \(f:\mathcal {H}(M)\longrightarrow \mathcal {H}(N)\) is a homomorphism of some particular choice of T-modules up to a translation \(\tau \). Moreover, in the case of rings, or in more general setting of T-modules with absorbers, we can find a homomorphism of native T-modules M and N which up to a particular choice of translation \(\tau \) is equal to f. In fact, this suggests a deep connection between heaps of modules and affine spaces. The aim of this section is to reveal this connection. To motivate this discussion, we adapt [25, page 45] to recall the following notion.

Definition 4.8

An affine module over a ring R is a set M together with maps \([-,-,-]:M \times M \times M \longrightarrow M\) and \(\Lambda :R \times M \times M \longrightarrow M\) such that

  1. P1.

    \([b,a,c] = [c,a,b]\),

  2. P2.

    \([b,a,a] = b\),

  3. P3.

    \([[b,a,c],c,e] = [b,a,e]\),

  4. V1.

    \(\big [\Lambda (r,a,b),a,c\big ] = \Lambda \big (r,c,[b,a,c]\big )\)

  5. V2.

    \(\big [\Lambda (r,a,b),a,\Lambda (r,a,c)\big ] = \Lambda \big (r,a,[b,a,c]\big )\),

  6. V3.

    \(\big [\Lambda (r,a,b),a,\Lambda (s,a,b)\big ] = \Lambda (r+s,a,b)\),

  7. V4.

    \(\Lambda (rs,a,b) = \Lambda (r,a,\Lambda (s,a,b))\),

  8. V5.

    \(\Lambda (1,a,b) = b\),

for all \(a,b,c,e \in M\) and \(r,s\in R\). \(\diamond \)

Proposition 4.9

An affine R-module is exactly an isotropic and contractible heap of \(\textrm{T}(R)\)-modules.

Proof

Clearly, any abelian heap satisfies P1–P3. By Theorem 3.24 (1) and (3), any isotropic contractible heap of \(\textrm{T}(R)\)-modules satisfies V5 and \(\Lambda (0,a,b) = a\) for all \(a,b\in M\). Thus, the only non-trivial check of V1-V4 consists in observing that

$$\begin{aligned} \begin{aligned} \Lambda \big (r,c,[b,a,c]\big )&{\mathop {=}\limits ^{\big (3.2\big )}} \big [\Lambda (r,c,b),\Lambda (r,c,a),\Lambda (r,c,c)\big ] \\&{\mathop {=}\limits ^{\big (3.7\big )}} \big [\Lambda (r,c,b),\Lambda (r,c,a),a,a,c\big ] \\&{\mathop {=}\limits ^{\big (3.4\big )}}\big [\Lambda (r,a,b),a,c\big ]. \end{aligned} \end{aligned}$$

Thus, an isotropic and contractible heap of \(\textrm{T}(R)\)-modules is an affine R-module.

Conversely, assume that \((M,[-,-,-],\Lambda )\) satisfies P1–P3 and V1–V5. If M is empty, then trivially M is also a heap of \(\textrm{T}(R)\)-modules and \(\textrm{Stab}(M)=R=\textrm{Ann}\,(M)\). If M is non-empty, then the fact that \((M,[-,-,-],\Lambda )\) is a heap of \(\textrm{T}(R)\)-modules such that \(\Lambda (1,a,b) = b = \Lambda (0,b,a)\) for all \(a,b \in M\) is a simple check. In fact, one may take advantage of the fact that for any chosen \(a \in M\), all \(b,c \in M\) and \(r \in R\),

$$\begin{aligned} b +_a c :=[b,a,c] \qquad \text {and} \qquad r\!\cdot \!_a b :=\Lambda (r,a,b), \end{aligned}$$

define an R-module structure on M (see [25, Satz 1]). \(\square \)

As a consequence, it is natural to define morphisms of affine R-modules as morphisms of the corresponding heap of \(\textrm{T}(R)\)-module structure and Proposition 4.7 confirms that they coincide with the intuitive idea of maps which are linear up to a constant.

Corollary 4.10

If R is a ring, then the category of affine R-modules is (isomorphic to) the full subcategory \(\text {T}(R)\text {-} \textbf{HMod}_{\textbf{is}}^{\textbf{cn}}\) of \(\text {T}(R)\text {-} \textbf{HMod}\) consisting of isotropic contractible heaps of \(\textrm{T}(R)\)-modules. Moreover, the category of non-empty affine R-modules is (isomorphic to) the category \(R\text {-} \textbf{HMod}\).

Proof

This follows from Proposition 4.6 and Proposition 4.9. \(\square \)

Remark 4.11

By Proposition 4.7, all morphisms of inhabited isotropic contractible heaps of \(\textrm{T}(R)\)-modules (that is, of affine R-modules) are translations of R-module homomorphisms. In both cases of affine R-modules and heaps of modules, the empty set is the initial object. \(\triangle \)

Inspired by the fact that, by Proposition 4.1, morphisms of heaps of T-modules are essentially morphisms of T-groups up to fixing an origin, and since considering affine R-modules amounts to considering (isotropic and contractible) heaps of \(\textrm{T}(R)\)-modules, let us consider the following extension of the well-known definition of an affine space as a free transitive action of the additive group of a vector space on a set (see [24, Appendix §2]).

Definition 4.12

Let T be a truss. A T-affine space is a triple \((A,G,\varrho _A)\), where A is a set, G is a T-group and is a group monomorphism into the symmetric group of A, such that the shear map

$$\begin{aligned} G\times A\xrightarrow {(\varrho _A,\pi _2)} A\times A,\qquad (g,a)\longmapsto (\varrho _A(g)(a),a) \end{aligned}$$

is bijective. \(\diamond \)

Example 4.13

Let A be a non-empty set. Then, \((A,G,\varrho _A)\) is a T-affine space if and only if G acts freely and transitively on A by \(\varrho _A\). For the empty set, there exists a unique T-affine space \((\varnothing , C_1,C_1\hookrightarrow \{\textrm{id}\})\), where \(C_1\) is the trivial group.

Remark 4.14

Affine spaces over a truss T are pseudo-torsors over the topological space \(\{*\}\) in the sense of [22, 16.5.15]. \(\triangle \)

Example 4.15

Recall that an affine space over a field \(\mathbb {F}\) is a triple \((A,V,\circ )\), where A is a set, V is a vector space over \(\mathbb {F}\) and \(\circ :V\times A\longrightarrow A\) is a free and transitive action of the additive group of V on A. If G is a vector space over \(\mathbb {F}\) and A is a non-empty set, then \((A,G,\circ )\) is an affine space if and only if \((A,G,\varrho _A)\) is \(\textrm{T}(\mathbb {F})\)-affine space with \(\varrho _A(g)(a) = g\circ a\).

Definition 4.16

A homomorphism of T-affine spaces \((A,G,\varrho _A)\) and \((B,H,\varrho _B)\) is a pair \((F,f)\in \textbf{Set}(A,B)\times T\text{- }\textbf{Grp}(G,H)\) such that f is equivariant, that is, the diagram

commutes for all \(g\in G\). The T-affine spaces and their homomorphisms form a category, which we denote by \(\textbf{Aff}_T\). \(\diamond \)

Remark 4.17

The empty T-affine space of Example 4.13 is the initial object in \(\textbf{Aff}_T\). This follows by the fact that \(\varnothing \) and \(C_1\) are initial objects in the categories of sets and groups, respectively. \(\triangle \)

Remark 4.18

Let us denote by \(\textbf{Aff}_{\mathbb {F}}\) the category of affine spaces over a field \(\mathbb {F}\). Recall that a homomorphism between two affine spaces \((A,V,\circ )\) and \((B,W,\bullet )\) is a map \(F:A\longrightarrow B\) such that for all \(a\in A\) and \(v\in V\), \(F(v\circ a)=f(v)\bullet F(a)\), where \(f:V\longrightarrow W\) is a homomorphism of vector spaces. Since every affine space over \(\mathbb {F}\) is a \(\textrm{T}(\mathbb {F})\)-affine space and \(F(v\circ a)=f(v)\bullet F(a)\) is the equivariant condition in the sense of Definition 4.16, we conclude that (Ff) is a homomorphism of \(\textrm{T}(\mathbb {F})\)-affine spaces. Hence, \(\textbf{Aff}_\mathbb {F}\) is a full subcategory of \(\textbf{Aff}_{\textrm{T}(\mathbb {F})}\). \(\triangle \)

Example 4.19

The truss \(\star = \{*\}\) acts on any group G by \(*\cdot g=g\) as in Example 2.32(2) and any group homomorphism is equivariant with respect to the unital action of \(\star \). Thus, the category of abelian groups is isomorphic to the category \(\star \text{- }\textbf{Grp}_{\textbf{is}}\).

The main aim of this section is to relate T-affine spaces to heaps of T-modules. We start by extending the translation group functor (2.6) to a functor between heaps of T-modules and T-groups.

Lemma 4.20

Let \((M,\Lambda )\) be a heap of T-modules. Then, \(\textrm{Trans}(M)\) is a T-group with T-action

$$\begin{aligned} t\cdot \tau _a^b=\tau _a^{\Lambda (t,a,b)} :m\longmapsto [m,a,\Lambda (t,a,b)]. \end{aligned}$$
(4.1)

Moreover, if \(f:(M,\Lambda _M)\longrightarrow (N,\Lambda _N)\) is a morphism of heaps of T-modules, then the group homomorphism \(\textrm{Trans}(f)\) is T-linear. In particular, the functor \(\textrm{Trans}:\textbf{Hp}\longrightarrow \textbf{Grp}\) induces a functor \(T\text {-} \textbf{HMod}\longrightarrow T\text {- }\textbf{Grp}\) which we denote by \(\textrm{Trans}\) again.

Proof

Let \((M,\Lambda _M)\) be a heap of T-modules. We already know from Sect. 2.1 that \(\textrm{Trans}(M)\) is an abelian group. The associativity of the action (4.1) follows by the associative law (3.3) for \(\Lambda \). The distributivity of the heap operation of T over the action (4.1), that is, the first of the properties (2.12), follows by the fact that \(\Lambda \) is a heap morphism in the first argument (3.1) and by equation (2.5) combined with the commutativity of the group operation \(\circ \) on \(\textrm{Trans}(M)\). Finally,

$$\begin{aligned} \begin{aligned} \Lambda \big (t,a,[b,a',b']\big )&{\mathop {=}\limits ^{\big (3.2\big )}} \Big [\Lambda \big (t,a,b\big ),\Lambda \big (t,a,a'\big ),\Lambda \big (t,a,b'\big )\Big ] \\&\quad {=} \Big [\Lambda \big (t,a,b\big ),a',a',\Lambda \big (t,a,a'\big ),\Lambda \big (t,a,b'\big )\Big ] \\&\quad {=} \Big [\Lambda \big (t,a,b\big ),a',\Lambda \big (t,a,b'\big ),\Lambda \big (t,a,a'\big ),a'\Big ] \\&{\mathop {=}\limits ^{\big (3.4\big )}} \Big [\Lambda (t,a,b),a',\Lambda (t,a',b')\Big ], \end{aligned} \end{aligned}$$

for all \(t\in T\) and \(a,b,a',b'\in M\). Combining this equality with (2.5), one obtains the distributivity of the T-action over the group operation, i.e. the second of properties (2.12).

Concerning the morphisms, it is clear that if \(f :M \longrightarrow N\) is a morphism of heaps of T-modules, then

$$\begin{aligned} \begin{aligned} \textrm{Trans}(f)\left( t\!\cdot \!\tau _a^b\right)&= \textrm{Trans}(f)\big (\tau _a^{\Lambda (t,a,b)}\big ) = \tau _{f(a)}^{f\big (\Lambda (t,a,b)\big )} = \tau _{f(a)}^{\Lambda \big (t,f(a),f(b)\big )} = t \!\cdot \!\textrm{Trans}(f)\left( \tau _a^b\right) , \end{aligned} \end{aligned}$$

and hence \(\textrm{Trans}(f)\) is morphism of T-groups. \(\square \)

The following theorem gives a geometric interpretation of heaps of T-modules.

Theorem 4.21

The categories \(\textbf{Aff}_{T}\) and \(T\text {-} \textbf{HMod}\) are equivalent.

Proof

Let us begin by defining a functor from \(\textbf{Aff}_T\) to \(T\text {-} {\textbf {HMod}}\). The empty T-affine space is sent to the unique empty heap of T-modules. Let \((A,G,\varrho _A)\) be a non-empty T-affine space and let us define the ternary operations \([-,-,-]\) and \(\Lambda \) as follows. For all \(a,b,c \in A\), there exists a unique \(u \in (G,+)\) such that \(\varrho _A(u)(b) = a\), and then we set

$$\begin{aligned} {[}a,b,c] :=\varrho _{A}(u)(c). \end{aligned}$$
(4.2)

Let us prove that this makes of A a (non-empty) abelian heap. First of all, if \(v \in G\) is the unique element such that \(\varrho _A(v)(b) = c\), then

$$\begin{aligned} \begin{aligned} \varrho _A(u)(c)&= \varrho _A(u)(\varrho _A(v)(b))=(\varrho _A(u)\circ \varrho _A(v))(b) =\varrho _A(u+v)(b)\\&=\varrho _A(v+u)(b)= \varrho _A(v)(\varrho _A(u)(b))= \varrho _A(v)(a), \end{aligned} \end{aligned}$$

whence

$$\begin{aligned} {[}a,b,c] = \varrho _A(u)(c) = \varrho _A(v)(a) = [c,b,a]. \end{aligned}$$

Furthermore, it is clear that \([b,b,a] = \varrho _A(0)(a) = a\). Finally, let \(a,b,c,d,e \in A\) and let \(u,v \in (G,+)\) be such that \( \varrho _A(u)(b)=a\) and \(\varrho _A(v)(d) = c\). In particular, \(\varrho _A(u)(c)=\varrho _A(u+v)(d)\). Then we have

$$\begin{aligned} {[}a,b,[c,d,e]] =\varrho _A(u)(\varrho _A(v)(e))=\varrho _A(u+v)(e)=[\varrho _A(u)(c),d,e]=[[a,b,c],d,e]. \end{aligned}$$

Given \(a,b \in A\), let \(u \in G\) be the unique element such that \(b = \varrho _A(u)(a)\). Then, we can define

$$\begin{aligned} \Lambda (t,a,b) :=\varrho _A(t\!\cdot \!u)(a). \end{aligned}$$

Let us check that \(\Lambda \) makes \((A,[-,-,-])\) a heap of T-modules. First,

$$\begin{aligned} \begin{aligned} \big [\Lambda (t,a,b),\Lambda (t',a,b),\Lambda (t'',a,b)\big ]&{=} \big [\varrho _A(t\!\cdot \!u)(a),\varrho _A(t'\!\cdot \!u)(a),\varrho _A(t''\!\cdot \!u)(a)\big ]\\&{=} \varrho _A\big ((t\!\cdot \!u)-(t'\!\cdot \!u)\big )\big (\varrho _A(t''\!\cdot \!u)(a)\big )\\&{=} \varrho _A(t\!\cdot \!u - t'\!\cdot \!u + t''\!\cdot \!u)(a) \\&{\mathop {=}\limits ^{\big (2.12\big )}} \varrho _{A}\big ([t,t',t'']\!\cdot \!u\big )(a) = \Lambda ([t,t',t''],a,b). \end{aligned} \end{aligned}$$

Second, for \(a,b,c,d \in A\), let \(u,v,w \in G\) be such that \(b = \varrho _{A}(u)(a) \), \(c = \varrho _A(v)(a)\), \(d= \varrho _A(w)(a)\). Then,

$$\begin{aligned} {[}b,c,d] = \varrho _A(u-v)(d) = \varrho _A(u-v+w)(a), \end{aligned}$$

and so

$$\begin{aligned}{} & {} \big [\Lambda (t,a,b),\Lambda (t,a,c),\Lambda (t,a,d)\big ] = \big [\varrho _A(t\!\cdot \!u)(a),\varrho _A(t\!\cdot \!v)(a),\varrho _A(t\!\cdot \!w)(a)\big ] \\{} & {} \quad = \varrho _A\big (t\!\cdot \!u-t\!\cdot \!v\big )\big (\varrho _A(t\!\cdot \!w)(a)\big ) {\mathop {=}\limits ^{\big (2.12\big )}} \varrho _A\big (t\!\cdot \!(u - v + w)\big )(a) = \Lambda (t,a,[b,c,d]). \end{aligned}$$

Summing up, \(\Lambda \) is a heap homomorphism in the first and third entries. Furthermore, with the same assumptions as above,

$$\begin{aligned} \Lambda (t,a,\Lambda (t',a,b))= & {} \Lambda \big (t,a,\varrho _A (t'\!\cdot \!u)(a)\big ) = \varrho _A(t\!\cdot \!(t'\!\cdot \!u))(a) \\= & {} \varrho _A((tt')\!\cdot \!u) (a) = \Lambda (tt',a,b). \end{aligned}$$

Finally,

$$\begin{aligned} \big [\Lambda (t,a,b),\Lambda (t,a,c),c\big ]= & {} \big [\varrho _A(t\!\cdot \!u)(a),\varrho _A(t\!\cdot \!v)(a),\varrho _A(v)(a)\big ] = \varrho _A\big (t\!\cdot \!u-t\!\cdot \!v +v\big )(a) \\= & {} \varrho _A\big (t\!\cdot \!(u-v)\big )\big (\varrho _A(v)(a)\big ) =\varrho _A\big (t\!\cdot \!(u-v)\big )(c)= \Lambda (t,c,b). \end{aligned}$$

Therefore, the assignment \((A,G,\varrho _A) \longmapsto (A,[-,-,-],\Lambda )\) from \(\textbf{Aff}_T\) to \(T\text {-} {\textbf {HMod}}\) is well-defined on objects.

Now, recall that a morphism of affine spaces \((A,G,\varrho _A) \longrightarrow (B,G',\varrho _B)\) is given by a function \(F:A \longrightarrow B\) and a T-group homomorphism \(f:G \longrightarrow G'\) such that

$$\begin{aligned} F\big (\varrho _A(v)(a)\big ) = \varrho _B(f(v))(F(a)), \end{aligned}$$

for all \(a \in A\), \(v \in G\). Therefore, if \(c = \varrho _A(v)(b)\) then \(F(c) = \varrho _B(f(v))(F(b))\), and hence

$$\begin{aligned} \big [F(a),F(b),F(c)\big ] = \varrho _B(f(v))(F(a)) = F\big (\varrho _A(v)(a)\big ) = F\big ([a,b,c]\big ), \end{aligned}$$

for all \(a,b,c \in A\). Moreover, if \(b = \varrho _A(u)(a)\) then \(F(b) = \varrho _B(f(u))(F(a))\), and hence

$$\begin{aligned} \begin{aligned} \Lambda (t,F(a),F(b))&= \varrho _B(t\!\cdot \!f(u))(F(a)) = \varrho _B(f(t\!\cdot \!u))(F(a))\\&= F\big (\varrho _A(t\!\cdot \!u)(a)\big ) = F\big (\Lambda (t,a,b)\big ). \end{aligned} \end{aligned}$$

Therefore, the assignment \((F,f)\longmapsto F\) gives a well-defined function

$$\begin{aligned} {\textbf {Aff}}_T\big ((A,G,\varrho _A),(B,G',\varrho _B)\big ) \longrightarrow T\text {-} {\textbf {HMod}}\big ((A,[-,-,-],\Lambda _A),(B,[-,-,-],\Lambda _B)\big ). \end{aligned}$$

Summing up, we have constructed a functor

$$\begin{aligned} \Phi :{\textbf {Aff}}_T \longrightarrow T\text {-} {\textbf {HMod}}, \qquad {\left\{ \begin{array}{ll} (A,G,\varrho _A) \longmapsto (A,[-,-,-],\Lambda ) \\ (F,f) \longmapsto F \end{array}\right. }. \end{aligned}$$

In the opposite direction, let \((M,[-,-,-],\Lambda )\) be a heap of T-modules and let us consider the T-group \(\textrm{Trans}(M)\) with the action \(\overline{\varrho _M} :\textrm{Trans}(M) \longrightarrow \mathfrak {S}_{M},\) given by the canonical inclusion. The shear map

$$\begin{aligned} \textrm{Trans}(M) \times M \longrightarrow M \times M, \qquad \big (\tau _a^b,m\big ) \longmapsto \big (\tau _a^b(m),m\big ), \end{aligned}$$

has the inverse \(M \times M \longrightarrow \textrm{Trans}(M) \times M\), \((m,n) \longmapsto \big (\tau _n^m,n\big ).\) Thus, \((M,\textrm{Trans}(M),\overline{\varrho _M})\) is a T-affine space

Moreover, if \(F:(M,\Lambda _M) \longrightarrow (N,\Lambda _N)\) is a morphism of heaps of T-modules, then the pair \((F,\textrm{Trans}(F))\) is a morphism of T-affine spaces directly from the definition of \(\textrm{Trans}(F)\) and the actions \(\overline{\varrho _M}\) and \(\overline{\varrho _N}\). Summing up, we have constructed a functor

$$\begin{aligned} \Psi :T\text {-} {\textbf {HMod}}\longrightarrow {\textbf {Aff}}_T, \qquad {\left\{ \begin{array}{ll} (M,[-,-,-],\Lambda _M) \longmapsto (M,\text {Trans}(M),\overline{\varrho _M}) \\ F \longmapsto (F,\text {Trans}(F)) \end{array}\right. }. \end{aligned}$$

To show that \(\Psi \) is the quasi-inverse of \(\Phi \), notice first of all that the heap operation and the action on \(\Phi \Psi (M,\Lambda )\) turn out to be

$$\begin{aligned} \overline{\varrho _M}\big (\tau _a^b\big )(m) = [m,a,b] \quad \text {and} \quad \overline{\varrho _M}\big (t \!\cdot \!\tau _a^b\big )(a) = \overline{\varrho _M}\Big (\tau _a^{\Lambda (t,a,b)}\Big )(a) = \Lambda (t,a,b). \end{aligned}$$

Hence, \(\Phi \Psi \) is the identity on objects.

On the other hand, \(\Psi \Phi (A,G,\varrho _A) = (A,\textrm{Trans}(A),\overline{\varrho _A}).\) The definition (4.2) of the heap operation on A gives that \(\tau _a^b = \varrho _A(g)\), for all \(a,b\in M\), where g is the unique element in G such that \(\varrho _A(g)(a) = b\). Hence, \(\textrm{Trans}(A) = \{\varrho _A(g)\; |\; g\in G\}\). In view of this and the arguments used to prove the associative law for the heap operation on A the assignment

$$\begin{aligned} \epsilon _G:\textrm{Trans}(A) \longrightarrow G, \qquad \tau _a^b \longmapsto g, \quad \text{ with } \quad \varrho _A(g)(a) = b, \end{aligned}$$

is an isomorphism of abelian groups. It commutes with T-actions since, for \(g \in G\) such that \(\varrho _A(g)(a) = b\),

$$\begin{aligned} \epsilon _G(t\!\cdot \!\tau _a^b) = \epsilon _G\Big (\tau _a^{\Lambda (t,a,b)}\Big ) = \epsilon _G(\tau _a^{\varrho _A(t\cdot g)(a)}) = t\!\cdot \!g = t \!\cdot \!\epsilon _G\big (\tau _a^b\big ). \end{aligned}$$

Therefore, we can consider the pair \((\textrm{id}_A,\epsilon _G) :(A,\textrm{Trans}(A),\overline{\varrho _A}) \longrightarrow (A,G,\varrho _A)\), which is an isomorphism of T-affine spaces since

$$\begin{aligned} \textrm{id}_A\Big (\overline{\varrho _A}\big (\tau _a^b\big )(m)\Big ) = \varrho _A(g)(m) = \textrm{id}_A(m) \circ \epsilon _G\big (\tau _a^b\big ), \end{aligned}$$

for all \(a,b,m \in A\), where \(g \in G\) is the unique element such that \(\varrho _A(g)(a) = b\). We leave to the reader checking the naturality of \((\textrm{id}_A,\epsilon _G)\). \(\square \)

Corollary 4.22

For a truss T, the categories \(\textbf{Aff}_{T}^{\textbf{is}}\) and \(T\text {-} \textbf{HMod}_{\textbf{is}}\) are equivalent.

Proof

If \((A,G,\varrho _A)\) is an object in \(\textbf{Aff}_{T}^{\textbf{is}}\) and if \(u \in T\) is such that \(u\cdot g = g\) for every \(g \in G\), then for any \(a,b\in A\) and \(g\in G\) such that \(\varrho _A(g)(a)=b\), we obtain

$$\begin{aligned} \Lambda (u,a,b)=\varrho _A(u\!\cdot \!g)(a)=\varrho _A(g)(a)=b. \end{aligned}$$

Thus, \(u \in \textrm{Stab}(A)\) and \((A,[-,-,-],\Lambda )\) is an isotropic heap of T-modules. Conversely, if \((M, [-,-,-],\Lambda )\) is an isotropic heap of T-modules and \(u \in \textrm{Stab}(M)\), then \(\textrm{Trans}(M)\) is an isotropic T-group as, for all \(a,b\in M\), \( u \cdot \tau _a^b = \tau _a^{\Lambda (u,a,b)}=\tau _a^b. \) Therefore, \((M,\textrm{Trans},\overline{\varrho _M})\) is an object in \(\textbf{Aff}_{T}^{\textbf{is}}\). Moreover, since \(\textbf{Aff}_{T}^{\textbf{is}}\) and \(T\text {-} {\textbf {HMod}}_{{\textbf {is}}}\) are full subcategories of \(\textbf{Aff}_{T}\) and \(T\text {-} {\textbf {HMod}}\), respectively, the restrictions \(\Phi |_{\textbf{Aff}_{T}^{\textbf{is}}}\) and \(\Psi |_{T\text {-} {\textbf {HMod}}_{{\textbf {is}}}}\) are well-defined, fully faithful, adjoint functors. Hence, they form an equivalence. \(\square \)

Consider further the category \(\textbf{Aff}_{\star }^{\textbf{is}}\) of affine spaces over the truss \(T = \star \) whose objects are triples \((A,G,\varrho _A)\), where G is an isotropic \(\star \)-group.

Corollary 4.23

The categories \(\textbf{Aff}_{\star }^{\textbf{is}}\) and \(\star \text{- } \textbf{ HMod}_{\textbf{is}}\) are equivalent.

Remark 4.24

Since \(\star \text{- } \textbf{ HMod}_{\textbf{is}}\) is isomorphic to \(\textbf{Ah}\) and the category of inhabited isotropic \(\star \)-affine spaces is isomorphic to the category of torsors over abelian groups, Corollary 4.23 recovers the equivalence between inhabited abelian heaps and abelian torsors. \(\triangle \)

Corollary 4.25

The category \(\textbf{Aff}_\mathbb {F}\) of affine spaces over a field \(\mathbb {F}\) is equivalent to the category \(\left( \text {T}(\mathbb {F})\text {-} \textbf{HMod}_{\textbf{is}}^{\textbf{cn}}\right) ^{\textbf{in}}\) of inhabited isotropic contractible heaps of \(\textrm{T}(\mathbb {F})\)-modules.

Proof

We keep the notation introduced in Remark 4.18. By definition, an affine space \((A,V,\circ )\) over \(\mathbb {F}\) is a non-empty \(\textrm{T}(\mathbb {F})\)-affine space, whence the functor \(\Phi \) sends it to the inhabited heap of modules \((A,[-,-,-],\Lambda )\) with

$$\begin{aligned} {[}a,b,c] = v \circ c \qquad \text {and} \qquad \Lambda (k,a,b) = kv \circ a, \end{aligned}$$

where \(v\in V\) is the unique vector such that \(v \circ a = b\). It is clear that

$$\begin{aligned} \Lambda (1,a,b) = v\circ a = b \qquad \text {and} \qquad \Lambda (0,a,b) = 0 \circ a = a, \end{aligned}$$

for all \(a,b \in A\). Therefore, \(\Phi \) restricts to

$$\begin{aligned} \Phi ' :{\textbf {Aff}}_\mathbb {F}\longrightarrow \left( \text {T}(\mathbb {F})\text {-} {\textbf {HMod}}_{{\textbf {is}}}^{{\textbf {cn}}}\right) ^{{\textbf {in}}}. \end{aligned}$$

In the opposite direction, the functor \(\Psi \) assigns every non-empty object \((M,[-,-,-],\Lambda )\) in \(\text {T}(\mathbb {F})\text {-} {\textbf {HMod}}_{{\textbf {is}}}^{{\textbf {cn}}}\) to the \(\textrm{T}(\mathbb {F})\)-affine space \((M,\textrm{Trans}(M),\overline{\varrho _M})\), where \(\textrm{Trans}(M)\) is a \(\textrm{T}(\mathbb {F})\)-group with action

$$\begin{aligned} k \cdot \tau _m^n = \tau _m^{\Lambda (k,m,n)}, \qquad \forall \,k \in \mathbb {F}, m,n \in M, \end{aligned}$$

and \(\overline{\varrho _M}:\textrm{Trans}(M) \longrightarrow \textrm{Aut}(M)\) induces a free and transitive action

$$\begin{aligned} \textrm{Trans}(M) \times M \longrightarrow M, \qquad \big (\tau _m^n,p\big ) \longmapsto [p,m,n]. \end{aligned}$$

In this case, and in view of Theorem 3.24, \(\textrm{Trans}(M)\) becomes a \(\mathbb {F}\)-vector space because

$$\begin{aligned} (k+k')\!\cdot \!\tau _a^b = \tau _a^{\Lambda \big ([k,0,k'],a,b\big )} = \tau _a^{[\Lambda (k,a,b),a,\Lambda (k',a,b)]} = \big (k\!\cdot \!\tau _a^b\big )\circ \big (k'\!\cdot \!\tau _a^b\big ) \end{aligned}$$

and \(1\cdot \tau _a^b = \tau _a^{\Lambda (1,a,b)} = \tau _a^b\). Thus, \((M,\textrm{Trans}(M),\circ )\) is an affine space over \(\mathbb {F}\) and \(\Psi \) restricts to

$$\begin{aligned} \Psi ':\big (\textrm{T}(\mathbb {F})\text{- } \textbf{ HMod}_{\textbf{is}}^{\textbf{cn}}\big )^{\textbf{in}} \longrightarrow \textbf{Aff}_\mathbb {F}. \end{aligned}$$

The pair of functors \((\Phi ',\Psi ')\) gives the stated equivalence. \(\square \)

In this way, we may also recover the following fact.

Corollary 4.26

The category of affine spaces over a field \(\mathbb {F}\) described in terms of a binary operation \(V \times A \longrightarrow A\) of a vector space on a set is equivalent to the category of affine spaces over \(\mathbb {F}\) described in terms of two ternary operations on a single non-empty set A as in Definition 4.8.

Proof

Both are equivalent to the category \(\big (\textrm{T}(\mathbb {F})\text{- } \textbf{ HMod}_{\textbf{is}}^{\textbf{cn}}\big )^{\textbf{in}}\). \(\square \)

5 Examples and applications

We conclude by providing examples and applications of heaps of modules which are coming from the study of the set-theoretic solutions of the Yang–Baxter equation, non-commutative geometry and classical ring theory.

5.1 The Baer–Kaplansky Theorem for T-groups

This first subsection is entirely devoted to an application of the theory developed in this paper, which represents the natural extension of the results from [3] in view of what we proved in Sect. 4.

Let ST be trusses, let M be a T-group, let N be an S-group, and let us denote by \(\textrm{E}_T(M)\) the truss \(T\text {-} {\textbf {HMod}}(\mathcal {H}(M))\) of endomorphisms of the heap of T-modules \(\mathcal {H}(M)\).

Theorem 5.1

The trusses \(\textrm{E}_T(M)\) and \(\textrm{E}_S(N)\) are isomorphic if and only if there exists an isomorphism \(\varphi :M \longrightarrow N\) of abelian groups and an isomorphism \(\phi :T\text{- }\textbf{Grp}(M) \longrightarrow S\text{- }\textbf{Grp}(N)\) of trusses such that

$$\begin{aligned} \varphi \big (F(m)\big ) = \phi (F) \big (\varphi (m)\big ) \end{aligned}$$
(5.1)

for all \(m \in M\) and \(F \in T\text{- }\textbf{Grp}(M)\).

Proof

The proof follows closely that of [3, Theorem 3.3], whence we just sketch it and we leave the details to the inquisitive reader.

Suppose that there exists an isomorphism \(\varphi :M \longrightarrow N\) of abelian groups and an isomorphism \(\phi :T\text{- }\textbf{Grp}(M) \longrightarrow S\text{- }\textbf{Grp}(N)\) of trusses such that (5.1) is satisfied. By Corollary 4.3, \(f \in \textrm{E}_T(M)\) if and only if \(F :=\tau _{f(0)}^{0} \circ f \in T\text{- }\textbf{Grp}(M)\) and hence \(f = F + f(0)\). Thus, we may define

$$\begin{aligned} \Phi :\textrm{E}_T(M) \longrightarrow \textrm{E}_S(N), \qquad f \mapsto \phi (F) + \varphi (f(0)). \end{aligned}$$

Since \(\Phi (f)(0) = \varphi (f(0))\) because \(\phi (F)(0) = 0\), it follows that \(\tau _{\Phi (f)(0)}^{0}\circ \Phi (f) = \phi (F)\) and hence \(\Phi \) is well defined by Corollary 4.3 again. The proof that it is an isomorphism of trusses is identical to the first part of the proof of [3, Theorem 3.3].

Conversely, suppose that we have an isomorphism of trusses \(\Phi :\textrm{E}_T(M) \longrightarrow \textrm{E}_S(N)\). By Example 3.6, we know that the constant map \(\widehat{m}\) is in \(\textrm{E}_T(M)\) and one can show, as in the proof of [3, Theorem 2.2], that for every \(m \in M\), there exists a unique \(\psi (m) \in N\) such that \(\Phi (\widehat{m}) = \widehat{\psi (m)}\). This induces an isomorphism of abelian heaps \(\psi :M \longrightarrow N\) which, by setting \(\varphi :=\psi - \psi (0)\), induces an isomorphism \(\varphi :M \longrightarrow N\) of abelian groups (see Corollary 2.4). Furthermore, by Corollary 4.3, the assignment

$$\begin{aligned} \phi :T\text{- }\textbf{Grp}(M) \longrightarrow S\text{- }\textbf{Grp}(N), \qquad F \longmapsto \tau _{\Phi (F)(0)}^0 \circ \Phi (F), \end{aligned}$$

is a well-defined function. As in the second part of the proof of [3, Theorem 3.3], one may show that \(\phi \) is an isomorphism of trusses satisfying (5.1), ending the proof. \(\square \)

Remark 5.2

The core of the reason for which Theorem 5.1 holds may be expressed as follows. Any T-group M is a module over its endomorphism truss \(T\text{- }\textbf{Grp}(M)\). By [11, Theorem 4.2], we may consider the crossed product \(M\overset{0}{\rtimes } T\text{- }\textbf{Grp}(M)\). Then, Corollary 4.3 entails that the assignment

$$\begin{aligned} \textrm{E}_T(M) \longrightarrow M\overset{0}{\rtimes }\ T\text{- }\textbf{Grp}(M), \qquad f \longmapsto \big (f(0),F\big ), \end{aligned}$$

is an isomorphism of trusses with inverse

$$\begin{aligned} M\overset{0}{\rtimes }\ T\text{- }\textbf{Grp}(M) \longrightarrow \textrm{E}_T(M), \qquad \big (m',F\big ) \longmapsto \big [m \mapsto F(m) + m'\big ]. \end{aligned}$$

\(\triangle \)

We conclude this subsection with a somehow finer result that can be obtained in the commutative framework. Notice that, for T a commutative truss and M a T-group, the truss \(\textrm{E}_T(M)\) gains a T-module structure given by \((t\cdot f)(m) = t \cdot f(m)\) for all \(t \in T, f \in \textrm{E}_T(M)\) and \(m \in M\), making of it a T-group (the distinguished absorber being the constant function \(\widehat{0_M}\)). In this setting, \(\textrm{E}_T(M)\) can be seen as a heap of T-modules \(\mathcal {H}\big (\textrm{H}\big (\textrm{E}_T(M)\big )\big )\) as in Proposition 3.9, and the binary composition law \(\circ :\textrm{E}_T(M) \times \textrm{E}_T(M) \longrightarrow \textrm{E}_T(M)\) (granting the truss structure) is a morphism of heap of T-modules in both entries separately. That is to say, \(\textrm{E}_T(M)\) is what we may call a heap of modules truss over T.

Theorem 5.3

Let T be a commutative truss and let M and N be T-groups. Then \(M \cong N\) as T-groups if and only if \(\textrm{E}_T(M) \cong \textrm{E}_T(N)\) as heap of modules trusses over T. Furthermore, for every isomorphism \(\Psi :\textrm{E}_T(M) \longrightarrow \textrm{E}_T(N)\) of trusses which is also T-linear there exists a unique isomorphism \(\psi :M \longrightarrow N\) of T-modules such that \(\Psi (f) = \psi \circ f \circ \psi ^{-1}\) for all \(f \in \textrm{E}_T(M)\).

Proof

If \(\varphi :M \longrightarrow N\) is an isomorphism of T-groups, then

$$\begin{aligned} \Phi :\textrm{E}_T(M) \longrightarrow \textrm{E}_T(N), \qquad f \longmapsto \varphi \circ f \circ \varphi ^{-1}, \end{aligned}$$

is an isomorphism of trusses and of (heap of) T-modules as well, whence it is of heap of modules trusses over T (observe that \(\Phi \) is the morphism induced by \(\varphi \) and \(\phi :T\text{- }\textbf{Grp}(M) \longrightarrow T\text{- }\textbf{Grp}(N)\), \(F \longmapsto \varphi \circ F \circ \varphi ^{-1}\), as in Theorem 5.1). Conversely, if \(\Phi :\textrm{E}_T(M) \longrightarrow \textrm{E}_T(N)\) is an isomorphism of heap of modules trusses over T, then \(\varphi :M \longrightarrow N\) from the proof of Theorem 5.1 is an isomorphism of T-groups. Concerning the last statement, it follows by the same argument as that of the proof of [3, Theorem 2.2]. \(\square \)

5.2 Shelves, spindles, racks, quandles and the Yang–Baxter equation

Heaps of modules give rise to examples of spindles and quandles that play an important role in the algebraic approach to knot theory and that also lead to solutions of the set-theoretic Yang–Baxter equation. We begin by recalling the necessary notions.

Definition 5.4

(Shelves, spindles, racks and quandles) A left shelf is a set X together with a left self-distributive binary operation \(\diamond :X\times X \longrightarrow X\), that is, for all \(x,y,z\in X\),

$$\begin{aligned} x\diamond (y\diamond z) = (x\diamond y)\diamond (x\diamond z). \end{aligned}$$
(5.2)

A left shelf \((X,\diamond )\) is called a left spindle provided that the operation \(\diamond \) is idempotent, that is, for all \(x\in X\),

$$\begin{aligned} x\diamond x=x. \end{aligned}$$
(5.3)

A left shelf \((X,\diamond )\) (respectively spindle) is called a left rack (respectively left quandle) if \(\diamond \) admits left division, that is, for all \(x,y \in X\), there exists unique \(x\backslash y \in X\) such that

$$\begin{aligned} x\diamond (x\backslash y ) = y. \end{aligned}$$
(5.4)

A shelf, spindle, rack or quandle \((X,\diamond )\) is said to be entropic (or medial or abelian), if, for all \(x,y,z,w\in X\),

$$\begin{aligned} (x\diamond y)\diamond (z\diamond w) = (x\diamond z)\diamond (y\diamond w). \end{aligned}$$
(5.5)

Morphisms of shelves, spindles, racks, quandles, are naturally defined. We denote by \(\textbf{Spin}\) and \(\textbf{Qndl}\) the categories of left spindles and quandles, respectively. \(\diamond \)

Remark 5.5

Note that the conditions (5.3) and (5.5) imply the left self-distributivity (5.2) as well as the right self-distributivity of \(\diamond \). So, an entropic left spindle can be safely referred to simply as an entropic spindle. \(\triangle \)

Remark 5.6

Self-distributive operations that form a shelf have appeared already in logic in the works of C.S. Peirce [26], but their possibly first systematic study is presented in [13].

The notion of a quandle was introduced by D. Joyce [23] as an algebraic system that encodes the Reidemeister moves of knot theory. In this context a spindle describes the first and the third Reidemeister moves. The term rack was coined by Fenn and Rourke in [20]. They attribute this notion to J.C. Conway and G.C. Wraith who, in their unpublished correspondence, refer to it as a wrack.

A comprehensive review of theory and applications of racks and quandles can be found in a seminal paper [4] (racks are called automorphic sets and quandles idempotent automorphic sets there). \(\triangle \)

Example 5.7

Let \((A,+)\) be an abelian group. For every endomorphism f of A, define the operation \(x\diamond _f y=x+f(y-x)\). Then, \((A,\diamond _f)\) is an entropic spindle that will be called the affine spindle induced by f. It enjoys the interesting property \(x\diamond _f y=y\diamond _{\textrm{id}-f} x\).

More generally, if \((H,[-,-,-])\) is an abelian heap and f is an endomorphism of H, then \(x\diamond _f y :=[f(y),f(x),x]\) defines the structure of an entropic left spindle over H.

Recall from [18] that a function \(r:X\times X \longrightarrow X\times X\) is said to be a solution to the set-theoretic Yang–Baxter equation provided that the equality

$$\begin{aligned} (r\times \textrm{id})\circ (\textrm{id}\times r) \circ (r\times \textrm{id}) = (\textrm{id}\times r) \circ (r\times \textrm{id})\circ (\textrm{id}\times r) \end{aligned}$$

holds in \(X\times X\times X\). We do not ask for r to be invertible, in general. We say that \(r(x,y) = \big (r_1(x,y),r_2(x,y)\big )\) is non-degenerate [19, Definition 1.1] if r is invertible and

$$\begin{aligned} x \longmapsto r_2(x,y) \qquad \text {and} \qquad x \longmapsto r_1(y,x) \end{aligned}$$

are invertible as functions \(X \longrightarrow X\) for any fixed \(y \in X\).

Bearing in mind the role that the Yang–Baxter equation plays in the knot theory [29] and that both self-distributivity and the Yang–Baxter equation correspond to the third Reidemeister move, the following lemma is not surprising.

Lemma 5.8

( [18, §9, Example 2], see also [16, Lemma 61]) Let X be a set with a binary operation \(\diamond :X \times X \longrightarrow X\). Then, \((X,\diamond )\) is a left shelf if and only if the function

$$\begin{aligned} r:X\times X\longrightarrow X\times X, \qquad (x,y)\longmapsto (x\diamond y,x), \end{aligned}$$

is a solution to the set-theoretic Yang–Baxter equation.

The key for unlocking the connection between heaps of modules and spindles and quandles can be found in the following result.

Theorem 5.9

Let \((M,\Lambda )\) be a heap of modules over a truss T and let \(u,v\in T\) be such that for some (equivalently, all) \(m\in M\) and for all \(n\in M\), \(\Lambda (uv,m,n) =\Lambda (vu,m,n)\). Then, the operations

$$\begin{aligned} \diamond _u, \diamond _v:M\times M \longrightarrow M, \qquad m\diamond _un :=\Lambda (u,m,n), \quad m\diamond _vn :=\Lambda (v,m,n), \end{aligned}$$

are idempotent and satisfy the entropic law, for all \(x,y,z,w\in M\):

$$\begin{aligned} (x\diamond _uy)\diamond _v(z\diamond _uw) = (x\diamond _vz)\diamond _u(y\diamond _vw). \end{aligned}$$

In particular, for any \(u\in T\), \((M, \diamond _u)\) is an entropic left spindle and the assignment \((M,\Lambda ) \longmapsto (M,\diamond _u)\) induces a fully faithful functor \(\mathcal {F}_u:T\text{- } \textbf{ HMod}\longrightarrow \textbf{Spin}\). Consequently, for any \(u\in T\), the function

$$\begin{aligned} r_u:M\times M\longrightarrow M\times M, \qquad (m,n)\longmapsto (\Lambda (u,m,n),m), \end{aligned}$$

is a solution to the set-theoretic Yang–Baxter equation.

If, in addition, there exists \(\bar{u}\in T\) such that, for all mn,

$$\begin{aligned} \Lambda (u\bar{u}, m,n) = n, \end{aligned}$$
(5.6)

then \((M,\diamond _u)\) is an entropic left quandle and the functor \(\mathcal {F}_u:T\text{- } \textbf{ HMod}\longrightarrow \textbf{Spin}\) induces a fully faithful functor \(\mathcal {F}_u:T\text{- } \textbf{ HMod}\longrightarrow \textbf{Qndl}\). Consequently, for such an \(u\in T\), the function

$$\begin{aligned} r_u:M\times M\longrightarrow M\times M, \qquad (m,n)\longmapsto (\Lambda (u,m,n),m), \end{aligned}$$

is a non-degenerate solution to the set-theoretic Yang–Baxter equation with inverse

$$\begin{aligned} r^{-1}_u:M\times M\longrightarrow M\times M, \qquad (m,n)\longmapsto (n,\Lambda (\bar{u},n,m)). \end{aligned}$$

Proof

The idempotent property of \(\diamond _u\) follows from (3.7), the entropic property (5.5) follows by Lemma 3.16 and thus the self-distributivity holds by Remark 5.5.

Furthermore, if \(f:(M,\Lambda _M) \longrightarrow (N,\Lambda _N)\) is a morphism of heaps of T-modules, then

$$\begin{aligned} f\left( m \diamond _u n\right) = f\left( \Lambda _M(u,m,n)\right) {\mathop {=}\limits ^{\big (3.5\big )}} \Lambda _N(u,f(m),f(n)) = f(m) \diamond _u f(n) \end{aligned}$$

for all \(m,n \in M\), whence it is a morphism of left spindles. The fact that \(r_u\) is a solution of the set-theoretic Yang–Baxter equation follows by Lemma 5.8.

If there exists \(\bar{u}\) such that (5.6) holds, then, for all \(m,n\in M\), we can define \(m\backslash n =\Lambda (\bar{u},m,n)\). The associativity of \(\Lambda \) (3.3) together with (5.6) imply (5.4). \(\square \)

Example 5.10

Let \((A,+)\) be an abelian group. Then, the set of all affine spindles defined on A as in Example 5.7 is induced by the structure of heap of \(\textrm{T}(\textrm{End}(A))\)-modules on A coming from Proposition 3.9, as in Theorem 5.9. In fact, since \(\Lambda (f,a,b) = \big [f(b),f(a),a\big ]\) for all \(a,b \in A\) and \(f \in \textrm{End}(A)\), we arrive exactly at \(\Lambda (f,a,b) = a\diamond _f b\). This allows us to organise the set of all the affine spindle structures on an abelian group A into a heap of \(\textrm{T}(\textrm{End}(A))\)-modules structure on A itself. It follows from Proposition 4.7 that an endomorphism \(\alpha \) of the induced abelian heap \((A,[-,-,-])\) is an endomorphism of this heap of \(\textrm{T}(\textrm{End}(A))\)-modules structure if and only if there exists a central endomorphism \(\overline{\alpha }\) of \((A,+)\) such that \(\alpha (a)=\overline{\alpha }(a)+\alpha (0)\) for all \(a\in A\).

A similar conclusion holds, more generally, for H an abelian heap, considered as a heap of \(\textrm{E}(H)\)-modules as in Proposition 3.9.

Moreover, if A is a left module over a ring R, the same construction induces a heap of \(\textrm{End}_R(A)\)-modules. We observe that all multiplications \(t_r :A\longrightarrow A\), \(t_r(a)=r \cdot a\), are morphisms of heaps of \(\textrm{End}_R(A)\)-modules.

5.3 Connections, splittings and contractions

We now proceed to give some examples of heaps of modules which arise in a classical ring theory, starting with an example motivated by (non-commutative) geometry.

Let \((\Omega = \bigoplus _{n\in \mathbb {N}} \Omega ^n,d)\) be a (unital) differential graded algebra over a commutative ring \(\textbf{k}\). Denote by \(\mathcal {O}=\Omega ^0\), the zero degree subalgebra of \(\Omega \). Recall, for instance from [15], that a connection on a left \(\mathcal {O}\)-module M is a \(\textbf{k}\)-linear degree-one map

$$\begin{aligned} \nabla :\Omega \otimes _\mathcal {O}M \longrightarrow \Omega \otimes _\mathcal {O}M, \end{aligned}$$

such that

$$\begin{aligned} \nabla (\omega \otimes m) = d(\omega )\otimes m + (-1)^k \omega \nabla (1\otimes m), \end{aligned}$$
(5.7)

for all \(\omega \in \Omega ^k\) and \(m\in M\). We denote the k-th component of \(\nabla \) by \(\nabla ^k\). That is,

$$\begin{aligned} \nabla ^k:\Omega ^k\otimes _\mathcal {O}M \longrightarrow \Omega ^{k+1}\otimes _\mathcal {O}M. \end{aligned}$$

Thanks to the connection Leibniz rule (5.7), \(\nabla \) is fully determined by its zeroth component \(\nabla ^0\) (of which we can think as of a map \(\nabla ^0:M\longrightarrow \Omega ^1\otimes _\mathcal {O}M\)).

In part dually, a hom-connection on a right \(\mathcal {O}\)-module M is defined as follows [5]. Starting with a differential graded algebra as before, we set \(\Xi _k(M) = {}{\textrm{Hom}_{\mathcal {O}}(\Omega ^{k},M)}\), \(k\in \mathbb {N}\) and form the \(\mathbb {N}\)-graded right \(\Omega \)-module,

$$\begin{aligned} \Xi (M) = \bigoplus _{k\in \mathbb {N}} \Xi _k(M), \qquad \big (\xi \cdot \omega \big )(\omega ') = \xi (\omega \omega '), \quad \xi \in \Xi _{k+l}(M),\; \omega \in \Omega ^k,\;\omega '\in \Omega ^l. \end{aligned}$$

A hom-connection on M is then a degree minus one \(\textbf{k}\)-linear endomorphism \(\Delta \) of \(\Xi (M)\) such that, for all \(\omega \in \Omega ^{k}\) and \(\xi \in \Xi _{k+1}(M)\),

$$\begin{aligned} \Delta (\xi ) (\omega ) = \Delta (\xi \cdot \omega ) + (-1)^{k+1} \xi (d\omega ). \end{aligned}$$

The k-th component of \(\Delta \), i.e. \(\Delta \mid _{\Xi _{k+1}}\) is denoted by \(\Delta _k\).

Lemma and Example 5.11

(Heap of connections) Let \((\Omega = \bigoplus _{n\in \mathbb {N}} \Omega ^n,d)\) be a differential graded algebra over a commutative ring \(\textbf{k}\), A be an algebra over \(\textbf{k}\), and M be an \(\mathcal {O}\)-A-bimodule. Consider \({\textrm{End}_{\textbf{k}}(\Omega \otimes _\mathcal {O}M)}\) as a left A-module with the dual action

$$\begin{aligned} (a \!\cdot \!\gamma )(\omega \otimes m) = \gamma (\omega \otimes m\!\cdot \!a), \end{aligned}$$

for all \(a\in A\), \(\gamma \in {\textrm{End}_{\textbf{k}}(\Omega \otimes _\mathcal {O}M)}\), \(\omega \in \Omega \) and \(m\in M\).

Let \(\Gamma ^k(M)\subseteq {}{\textrm{Hom}_{\textbf{k}}(\Omega ^k\otimes _\mathcal {O}M,\Omega ^{k+1}\otimes _\mathcal {O}M)}\) denote the \(\textbf{k}\)-module of all k-components of connections on M. Then, \(\Gamma ^k(M)\) is an induced \(\textrm{T}(A)\)-submodule of \({\textrm{End}_{\textbf{k}}(\Omega \otimes _\mathcal {O}M)}\), and hence a heap of \(\textrm{T}(A)\)-modules with the action

$$\begin{aligned} \Lambda (a,\nabla ^k_1,\nabla ^k_2) = \nabla ^k_1- a\!\cdot \!\nabla ^k_1 +a\!\cdot \!\nabla ^k_2. \end{aligned}$$
(5.8)

Furthermore, for all \(u\in A\), \(\Gamma ^k(M)\) is a left spindle with the operation

$$\begin{aligned} \nabla _1^k\diamond _u\nabla _2^k = \nabla _1^k -u\!\cdot \!\nabla _1^k + u\!\cdot \!\nabla _2^k. \end{aligned}$$

Consequently, the function

$$\begin{aligned} r_u:\Gamma ^k{(M)}\times \Gamma ^k{(M)}\longrightarrow \Gamma ^k{(M)}\times \Gamma ^k(M), \quad (\nabla _1^k,\nabla _2^k)\longmapsto (\nabla _1^k -u\!\cdot \!\nabla _1^k + u\!\cdot \!\nabla _2^k,\nabla _1^k), \end{aligned}$$

is a solution to the set-theoretic Yang–Baxter equation.

If u is a unit in A, then \((\Gamma ^k(M),\diamond _u)\) is an entropic quandle.

Proof

It is clear that if \(\nabla _1^k\), \(\nabla _2^k\), \(\nabla _3^k\) are the k-th components of connections \(\nabla _1,\nabla _2,\nabla _3\) on M, respectively, then so is their heap bracket \([\nabla _1^k, \nabla _2^k, \nabla _3^k] = \nabla _1^k- \nabla _2^k +\nabla _3^k\). Thus we only need to check if the map \(\Lambda (a,\nabla ^k_1,\nabla ^k_2)\) in (5.8) is the k-th component of a connection on M. Set \(\Lambda (a,\nabla _1,\nabla _2) :=\nabla _1 - a\cdot \nabla _1 + a \cdot \nabla _2\). For all \(\omega \in \Omega ^k\) and \(m\in M\) we observe that

$$\begin{aligned} \begin{aligned} \Lambda (a,\nabla _1,\nabla _2)&(\omega \otimes m) = \nabla _1(\omega \otimes m)- \nabla _1(\omega \otimes m \!\cdot \!a) +\nabla _2(\omega \otimes m\!\cdot \!a)\\&= d(\omega )\otimes m + (-1)^k \omega \nabla _1(1\otimes m) - d(\omega )\otimes m\!\cdot \!a\\&\quad + (-1)^{k+1} \omega \nabla _1(1\otimes m\!\cdot \!a) + d(\omega )\otimes m\!\cdot \!a + (-1)^{k} \omega \nabla _2(1\otimes m\!\cdot \!a)\\&= d(\omega )\otimes m + (-1)^k \omega \Big (\nabla _1(1\otimes m) - \nabla _1(1\otimes m\!\cdot \!a) + \nabla _2(1\otimes m\!\cdot \!a)\Big )\\&= d(\omega )\otimes m + (-1)^k\omega \Lambda (a,\nabla _1,\nabla _2)(1 \otimes m). \end{aligned} \end{aligned}$$

It follows then that \(\Lambda (a,\nabla _1,\nabla _2)\) is still a connection on M whose k-th component is exactly \(\Lambda (a,\nabla ^k_1,\nabla ^k_2)\), as required.

The second part of example follows by Theorem 5.9. \(\square \)

Remark 5.12

For the sake of notation, write \(\omega \in \Omega \) as \(\sum _{k}\omega _k\), with \(\omega _k \in \Omega ^k\). Notice that \(f \in {\textrm{End}_{\textbf{k}}(\Omega \otimes _\mathcal {O}M)}\) is the k-component of a connection on M if and only if there exists a \(\textbf{k}\)-linear map \(f^0:M \longrightarrow \Omega ^1\otimes _\mathcal {O}M\) such that

$$\begin{aligned} f(\omega \otimes _\mathcal {O}m) = d(\omega _k) \otimes _\mathcal {O}m + (-1)^k\omega _k f^0(m). \end{aligned}$$

Since \(\Gamma ^k(M)\) is an induced \(\textrm{T}(A)\)-submodule of \({\textrm{End}_{\textbf{k}}(\Omega \otimes _\mathcal {O}M)}\), there exists a congruence for which \(\Gamma ^k(M)\) is a congruence class. The submodule of \({\textrm{End}_{\textbf{k}}(\Omega \otimes _\mathcal {O}M)}\) for which \(\Gamma ^k(M)\) is a congruence class is the submodule

$$\begin{aligned} S(k) :=\left\{ f\in {\textrm{End}_{\textbf{k}}(\Omega \otimes _\mathcal {O}M)} ~\left| ~ \begin{aligned}&\exists \, f^0\in \text{ Hom }\,_\textbf{k}(M,\Omega ^1 \otimes _\mathcal {O}M) \\&\text {and } f(\omega \otimes _\mathcal {O}m)=(-1)^k\omega _k f^0(m), \\&\forall \, \omega \in \Omega \text { and } m\in M \end{aligned} \right. \right\} . \end{aligned}$$

Also the \(\textbf{k}\)-submodule \(\Gamma (M) \subseteq {\textrm{End}_{\textbf{k}}(\Omega \otimes _\mathcal {O}M)}\) of all the connections on M is a heap of T(A)-modules with the same structure and it is a congruence class with respect to the submodule

$$\begin{aligned} S :=\left\{ f\in {\textrm{End}_{\textbf{k}}(\Omega \otimes _\mathcal {O}M)} ~\left| ~ \begin{aligned}&f(\omega \otimes m) = {\textstyle \sum _k }(-1)^k\omega _k f(1\otimes m) \\&\forall \, \omega \in \Omega \text { and } m\in M \end{aligned} \right. \right\} . \end{aligned}$$

\(\triangle \)

Example 5.13

(Truss of connections) As in Example 5.11, let \((\Omega = \bigoplus _{n\in \mathbb {N}} \Omega ^n,d)\) be a differential graded algebra over a commutative ring \(\textbf{k}\), A be an algebra of \(\textbf{k}\), M be an \(\mathcal {O}\)-A-bimodule that is finitely generated and projective as a left \(\mathcal {O}\)-module. It is well known (see, e.g. [17, Section 8]) that the set of connections \(\Gamma ^1(M)\) is not empty. In particular, for any finite dual basis \(e_i\in M\), \(\varepsilon ^i\in {}{\textrm{Hom}_{\mathcal {O}}(M,\mathcal {O})}\), there is the associated Grassmannian connection,

$$\begin{aligned} \nabla :M\longrightarrow \Omega ^1\otimes _\mathcal {O}M, \qquad m \longmapsto \sum _i d(\varepsilon ^i(m)) \otimes e_i. \end{aligned}$$

Using the heap of A-modules structure of \(\Gamma ^1(M)\) described in Example 5.11, we can construct the cross-product truss \(\mathcal {T}(\nabla ):=\Gamma ^1(M)\overset{\nabla }{\rtimes } \textrm{T}(A)\) as in Proposition 3.25 with the product:

$$\begin{aligned} (\nabla _1,a)(\nabla _2,b) = \left( \nabla _1+ a\cdot \Big (\nabla _2 - \sum _i d\circ \varepsilon ^i\otimes e_i\Big ), ab\right) . \end{aligned}$$

In view of Lemma 3.26, \(\Gamma ^1(M)\) is a left \(\mathcal {T}(\nabla )\)-module with the action

$$\begin{aligned} (\nabla _1,a)\cdot \nabla _2 = \nabla _1+ a\cdot (\nabla _2 - \sum _i d\circ \varepsilon ^i\otimes e_i), \end{aligned}$$

that is, for all \(m\in M\),

$$\begin{aligned} \Big ((\nabla _1,a)\cdot \nabla _2\Big )(m) = \nabla _1(m)+ \nabla _2(m\!\cdot \!a) - \sum _i d(\varepsilon ^i(m\!\cdot \!a))\otimes e_i. \end{aligned}$$

Example 5.14

(Heap of hom-connections) Let \((\Omega = \bigoplus _{n\in \mathbb {N}} \Omega ^n,d)\) be a differential graded algebra over a commutative ring \(\mathbb {F}\), A be an algebra of \(\textbf{k}\), M be an A-\(\mathcal {O}\)-bimodule. Using the left A-action on M we consider \({\textrm{End}_{\textbf{k}}(\Xi ( M))}\) as a left A-module in the standard way. Then, the \(\textbf{k}\)-module of all k-components of hom-connections on M, is an induced \(\textrm{T}(A)\)-submodule of \({\textrm{End}_{\textbf{k}}(\Xi (M))}\), and hence a heap of \(\textrm{T}(A)\)-modules with the action

$$\begin{aligned} \Lambda (a,\Delta _k,\Delta '_k) = \Delta _k - a\!\cdot \!\Delta _k +a\!\cdot \!\Delta '_k. \end{aligned}$$

By Theorem 5.9, \(\Gamma _k(M)\) is a left spindle with the operation

$$\begin{aligned} \Delta _k\diamond _u\Delta '_k = \Delta _k -u\!\cdot \!\Delta _k + u\!\cdot \!\Delta '_k, \end{aligned}$$

for all \(u\in A\) (an entropic quandle if u is a unit in A). Consequently, the function

$$\begin{aligned} r_u:\Gamma _k{(M)}\times \Gamma _k{(M)}\longrightarrow \Gamma _k{(M)}\times \Gamma _k(M), \quad (\Delta _k,\Delta '_k)\longmapsto (\Delta _k -u\!\cdot \!\Delta _k + u\!\cdot \!\Delta '_k,\Delta _k), \end{aligned}$$

is a solution to the set-theoretic Yang–Baxter equation.

Example 5.15

(Heap of splittings of short exact sequences) Let B be a \(\textbf{k}\)-algebra over a commutative ring \(\textbf{k}\) and let PQR be left B-modules. Assume that

$$\begin{aligned} 0 \longrightarrow P \overset{\iota }{\longrightarrow }Q \overset{\pi }{\longrightarrow }R \longrightarrow 0, \end{aligned}$$

is a short exact sequence of left B-modules, that is to say, an extension of R by P in B-\({\textbf {Mod}}\). If R is a B-A bimodule for an (unital) algebra A, then the \(\textbf{k}\)-module \(\text{ Hom }\,_B(R,Q)\) is a left A-module via

$$\begin{aligned} (a\cdot \phi )(x) = \phi (x\cdot a). \end{aligned}$$

Consider the \(\textbf{k}\)-submodule \(\Sigma (\pi ) :=\{\sigma :R \longrightarrow Q \mid \pi \circ \sigma = \textrm{id}_R\} \subseteq \text{ Hom }\,_B(R,Q)\). It is a sub-heap of the heap \(\textrm{H}\big (\text{ Hom }\,_B(R,Q)\big )\) because

$$\begin{aligned} \pi \circ [\rho ,\sigma ,\tau ] = \pi \circ \rho - \pi \circ \sigma + \pi \circ \tau = \textrm{id}_R, \end{aligned}$$

and it becomes a heap of \(\textrm{T}(A)\)-modules over the truss \(\textrm{T}(A)\) associated with A with the ternary operation defined as follows

$$\begin{aligned} \Lambda :\textrm{T}(A) \times \Sigma (\pi ) \times \Sigma (\pi ) \longrightarrow \Sigma (\pi ), \qquad (a,\tau ,\sigma ) \longmapsto a\cdot \sigma + (1 -a )\cdot \tau =:a \triangleright _\tau \sigma . \end{aligned}$$

Furthermore, by Theorem 5.9, for all \(u\in A\), \(\Sigma (\pi )\) is a spindle with the operation

$$\begin{aligned} \tau \diamond _u\sigma = u\cdot \sigma + (1 -u )\cdot \tau , \qquad r\longmapsto \sigma (ru) +\tau (r(1-u)). \end{aligned}$$

Consequently, the function

$$\begin{aligned} r_u:\Sigma (\pi )\times \Sigma (\pi )\longrightarrow \Sigma (\pi )\times \Sigma (\pi ), \qquad (\tau ,\sigma ) \longmapsto (u\cdot \sigma + (1 -u )\cdot \tau , \tau ), \end{aligned}$$

is a solution to the set-theoretic Yang–Baxter equation.

Whenever u is a unit in A, \((\Sigma (\pi ), \diamond _u)\) is an entropic quandle.

Observe that \(\Sigma (\pi )\) is not a T(A)-submodule since, in general,

$$\begin{aligned} \pi \circ \left( a\cdot \sigma \right) (r) = r \cdot a \ne r. \end{aligned}$$

In this case, the submodule for which \(\Sigma (\pi )\) is a congruence class is the submodule

$$\begin{aligned} S(\pi ):=\{f\in \text{ Hom }\,_A(R,Q)\ |\ \textrm{Im}(f)\subseteq \ker (\pi )\} \end{aligned}$$

of \(\text{ Hom }\,_A(R,Q)\).

There is some overlap of this example with Example 5.11. Recall for instance from [15] that a universal differential envelope of an algebra B is a tensor algebra of the B-bimodule \(\Omega ^1 :=\ker m_B\), where \(m_B:B\otimes _\textbf{k}B \longrightarrow B\) is the multiplication map of B, with the differential given on B by \(d(b) = 1\otimes b - b\otimes 1\), and extended to the whole of \(\Omega \) by the graded Leibniz rule. It has been observed in [17] that the degree-zero components of connections on a left B-module M with respect to the universal envelope \(\Omega \) are in bijective correspondence with the splittings of the short exact sequence

where

$$\begin{aligned} \iota :\left( \sum _ib_i\otimes b'_i\right) \otimes m \longmapsto \sum _i b_i\otimes b'_i\!\cdot \!m, \qquad \pi :b\otimes m \longmapsto b\!\cdot \!m. \end{aligned}$$

Thus, \(\Gamma ^0(M) = \Sigma (\pi )\).

Example 5.16

(Truss of splittings) In the setup of Example 5.15 consider a split exact sequence of left B-modules

If R is a B-A-bimodule, then denote by \(\Sigma (\pi )\) the heap of A-modules of all splittings of \(\pi \). Then, by Proposition 3.25, \(\Sigma (\pi )\overset{\varrho }{\rtimes } \textrm{T}(A)\) is a truss on the heap \(\Sigma (\pi )\times \textrm{T}(A)\) with the product

$$\begin{aligned} (\sigma _1,a)(\sigma _2,b) = (\sigma _1+a\cdot (\sigma _2 -\varrho ), ab). \end{aligned}$$

Example 5.17

(Heap of retractions) Let B be a \(\textbf{k}\)-algebra and let

$$\begin{aligned} 0 \longrightarrow P \overset{\iota }{\longrightarrow }Q \overset{\pi }{\longrightarrow }R \longrightarrow 0, \end{aligned}$$

be a short exact sequence of right B-modules. If P is an A-B-bimodule for an (unital) algebra A, then the \(\textbf{k}\)-module \(\text{ Hom }\,_B(Q,P)\) is a left A-module via \((a\cdot \phi )(x) = a\cdot \phi (x).\) Consider the \(\textbf{k}\)-submodule

$$\begin{aligned} \mathcal {R}(\iota ) :=\{\rho :Q \longrightarrow P \in \text{ Hom }\,_B(Q,P) \mid \rho \circ \iota = \textrm{id}_P\} \subseteq \text{ Hom }\,_B(Q,P). \end{aligned}$$

It is a sub-heap of the heap \(\textrm{H}\big (\text{ Hom }\,_B(Q,P)\big )\) because

$$\begin{aligned} {[}\rho ,\sigma ,\tau ] \circ \iota = \rho \circ \iota - \sigma \circ \iota + \tau \circ \iota = \textrm{id}_P, \end{aligned}$$

and it becomes a heap of \(\textrm{T}(A)\)-modules through

$$\begin{aligned} \Lambda :\textrm{T}(A) \times \mathcal {R}(\iota ) \times \mathcal {R}(\iota ) \longrightarrow \mathcal {R}(\iota ), \qquad (a,\tau ,\sigma ) \longmapsto a\cdot \sigma + (1 -a )\cdot \tau =:a \triangleright _\tau \sigma . \end{aligned}$$

There is also an overlap between this and Example 5.14. As shown in [5, Section 3.9] and [9, Theorem 2.2], in the case of the universal differential graded algebra, there is a bijective correspondence between hom-connections on a right B-module M and retractions of the map \(\iota :M\longrightarrow {}{\textrm{Hom}_{\textbf{k}}(B,M)}\), given by \(\iota (m)(b) = m\!\cdot \!b\).

Example 5.18

(Heap of chain contractions) Let AB be two \(\textbf{k}\)-algebras. Let \((C_\bullet ,c_\bullet )\) be a chain complex of B-A-bimodules and \((D_\bullet ,d_\bullet )\) be a chain complex of B-modules. Let also \(f_\bullet :C_\bullet \longrightarrow D_\bullet \) be a chain map of the underlying chain complexes of left B-modules, that is, for every \(n \in \mathbb {Z}\) the function \(f_n:C_n \longrightarrow D_n\) is a morphism of left B-modules and all the squares in the following diagram of left B-modules are commutative

Denote by \(\Sigma (f)\) the set of all chain contractions of f (see [30, Definition 1.4.3]),

$$\begin{aligned} \Sigma (f) = \Big \{\{s_n:C_n \longrightarrow D_{n+1} \text { of }B\text {-modules}\mid n\in \mathbb {Z}\} ~\Big \vert ~ d_{n+1} \circ s_n + s_{n-1}\circ c_n = f_n\Big \}. \end{aligned}$$

It is a sub-heap of the heap \(\textrm{H}\left( \text{ Hom }\,_B^{\textrm{gr}}\left( \bigoplus _{n}C_n,\bigoplus _nD_{n+1}\right) \right) \) of degree-one morphisms of left B-modules, because (dropping the subscripts for the sake of clarity)

$$\begin{aligned} d \circ [s,s',s''] + [s,s',s'']\circ c = (d\circ s + s \circ c) - (d \circ s' + s'\circ c) + (d \circ s'' + s'' \circ c) = f. \end{aligned}$$

In addition, \(\Sigma (f)\) is a heap of \(\textrm{T}(A)\)-modules via

$$\begin{aligned} \Lambda :\textrm{T}(A) \times \Sigma (f) \times \Sigma (f) \longrightarrow \Sigma (f), \quad (a,s,s') \longmapsto a\cdot s' + (1-a) \cdot s. \end{aligned}$$

In fact, for every \(s\in \Sigma (f)\) and \(a \in A\), the function \(a\cdot s\) defined by

$$\begin{aligned} (a\cdot s)_n:C_n \longrightarrow D_{n+1}, \qquad x \longmapsto s_n(x \cdot a), \end{aligned}$$

is still left B-linear and it satisfies

$$\begin{aligned}{} & {} \left( d_{n+1} \circ (a \cdot s)_n + (a \cdot s)_{n-1}\circ c_n\right) (x) = d_{n+1}\big (s_{n}(x \cdot a)\big ) + s_{n+1}\big (c_n(x)\cdot a\big ) \\{} & {} \quad = d_{n+1}\big (s_{n}(x \cdot a)\big ) + s_{n+1}\big (c_n(x\cdot a)\big ) = f_n(x \cdot a) = (a\cdot f_n)(x), \end{aligned}$$

for all \(x \in C_n\) and all \(n \in \mathbb {Z}\). Therefore,

$$\begin{aligned}{} & {} d \circ \left( a\cdot s' + (1-a) \cdot s\right) + \left( a\cdot s' + (1-a) \cdot s\right) \circ c \\{} & {} \quad = \big (d\circ (a \cdot s') + (a \cdot s')\circ c\big ) + \big (d\circ ((1-a) \cdot s) + ((1-a) \cdot s)\circ c\big ) \\{} & {} \quad = a \cdot f + (1-a) \cdot f = f. \end{aligned}$$

In the same way, one may prove that if \((C_\bullet ,c_\bullet )\) is a chain complex of right A-modules, \((D_\bullet ,d_\bullet )\) is a chain complex of B-A-bimodules and \(f_\bullet :C_\bullet \longrightarrow D_\bullet \) is a chain map of the underlying chain complexes of right A-modules, then the set \(\Sigma (f)\) of all chain contractions of f is still a sub-heap of the heap \(\textrm{H}\big (\text{ Hom }\,_A^{\textrm{gr}}(\bigoplus _{n}C_n,\bigoplus _nD_{n+1})\big )\) and a heap of \(\textrm{T}(B)\)-modules with respect to the ternary operation

$$\begin{aligned} \Lambda :\textrm{T}(B) \times \Sigma (f) \times \Sigma (f) \longrightarrow \Sigma (f), \quad (b,s,s') \longmapsto b\cdot s' + (1-b) \cdot s. \end{aligned}$$

Notice that Examples 5.15 and 5.17 are particular cases of the present example. Regarding Example 5.15, if we consider the chain morphism

then chain contractions \((\ldots ,0,\sigma ,0,\ldots )\) are in bijective correspondence with splittings \(\sigma \) of the short exact sequence of left B-modules \(0 \longrightarrow P \xrightarrow {\iota } Q \xrightarrow {\pi } R \longrightarrow 0\). Concerning Example 5.17 instead, if we consider the chain morphism (now in the category of right B-modules)

then chain contractions \((\ldots ,0,\rho ,0,\ldots )\) are in bijective correspondence with retractions \(\rho \) of \(\iota \) in the short exact sequence of right B-modules \(0 \longrightarrow P \xrightarrow {\iota } Q \xrightarrow {\pi } R \longrightarrow 0\).

Lemma and Example 5.19

(Heap of derivations) Let T be a truss. A derivation of T is defined in [8] as a heap endomorphism \(D:T\longrightarrow T\), such that, for all \(s,t\in T\),

$$\begin{aligned} D(st) = [D(s)t, st, sD(t)]. \end{aligned}$$
(5.9)

As observed in [8] the set of all derivations of T, \(\textrm{Der}(T)\), is a sub-heap of \(\textrm{E}(T)\). If T is commutative, then \(\textrm{Der}(T)\) is a heap of T-modules with the action

$$\begin{aligned} \Lambda (t,D_1,D_2) = [D_1,t\!\cdot \!D_1,t\!\cdot \!D_2]: s\longmapsto [D_1(s),tD_1(s),tD_2(s)], \end{aligned}$$

for all \(D_1,D_2 \in \textrm{Der}(T)\) and \(s,t\in T\).

Proof

Since \(\Lambda \) is the restriction of the heap of modules action of T on its endomorphism truss \(\textrm{E}(T)\) as in Example 3.11, we only need to check that \(\Lambda (t,D_1,D_2)\) is a derivation of T. Since both \(D_1\) and \(D_2\) satisfy (5.9) and T is a commutative truss, for all \(s,s'\in T\),

$$\begin{aligned} \begin{aligned} \Lambda (t,D_1,D_2)(ss')&= [D_1(ss'),tD_1(ss'),tD_2(ss')]\\&=[D_1(s)s',ss', sD_1(s'), tD_1(s)s',tss', tsD_1(s'), tD_2(s)s',tss', tsD_2(s')]\\&=[D_1(s)s',tD_1(s)s', tD_2(s)s', ss', sD_1(s'), stD_1(s'), stD_2(s')]\\&= [\Lambda (t,D_1,D_2)(s)s',ss',s\Lambda (t,D_1,D_2)(s')], \end{aligned} \end{aligned}$$

where, in addition, we have also used the distributive laws of trusses (to derive the second and fourth equalities), and rules of reshuffling and cancellation stemming from the definition of an abelian heap. Hence, the operation \(\Lambda \) is well defined on \(\textrm{Der}(T)\). \(\square \)