\begin{definition}[Definition:Bimodule]
Let $\struct {R, +_R, \times_R}$ and $\struct {S, +_S, \times_S}$ be rings.
Let $\struct {G, +_G}$ be an abelian group.
Let $\circ_R : R \times G \to G$ and $\circ_S : G \times S \to G$ be binary operations such that:
:$(1): \quad \struct {G, +_G, \circ_R}$ is a left module
:$(2): \quad \struct {G, +_G, \circ_S}$ is a right module
:$(3): \quad \forall \lambda \in R: \forall \mu \in S: \forall x \in G: \paren {\lambda \circ_R x} \circ_S \mu = \lambda \circ_R \paren {x \circ_S \mu}$
Then $\struct {G, +_G, \circ_R, \circ_S}$ is a '''bimodule over $\tuple {R, S}$'''.
If $\struct {S, +_S, \times_S} = \struct {R, +_R, \times_R}$ then a '''bimodule over $\tuple {R, R}$''' is simply called a '''bimodule over $R$'''
\end{definition}