in $\mathbb{R}^n$ to their closest lattice point, all points in $\mathcal{V}(\Lambda)$ are mapped to the all zero vector.

Two lattices are considered for nested lattice codes, a coarse lattice $\Lambda_c$ and a fine lattice $\Lambda_f$ where $\Lambda_c\subseteq\Lambda_f$. The codewords are chosen as the fine lattice points $\lambda_f\in\Lambda_f$ that lie in $\mathcal{V}(\Lambda_c)$. The power constraint is satisfied by an appropriate choice of $\Lambda_c$ and the rate of the code is defined by the number of fine lattice points in $\{\Lambda_f\cap\mathcal{V}(\Lambda_c)\}$ (codewords).

We denote the lattice corresponding to the message set $\mathcal{M}_{jk}$ by $\Lambda_{jk}$ with rate $R_{jk}$. Furthermore, we fix the rates such that $R_{jk}=R_{kj}$. Each message $m_{jk}$ is mapped into a codeword (lattice point) $x_j^n(m_{jk})=v_{jk}\in\Lambda_{jk}$. The lattices are constructed in such a way that the following alignment equations are satisfied: $$\begin{aligned}
h_1\Lambda_{12}&=h_2\Lambda_{21}\\
h_1\Lambda_{13}&=h_3\Lambda_{31}\\
h_2\Lambda_{23}&=h_3\Lambda_{32}\end{aligned}$$

The relay uses three Gaussian codebooks of rate $R_{12}$, $R_{23}$, and $R_{31}$. That is, e.g. it generates $2^{nR_{12}}$ i.i.d sequences $X_r^n$ where $X_r\sim\mathcal{N}(0,P_r)$. Each sequence is given an index $u_{12}\in\mathcal{U}_{12}\triangleq\{1,\dots,2^{nR_{12}}\}$. In this scheme, the relay communicates with two users at a time, we use $u_{ij}$ to indicate that the message sent carries information to both users $i$ and $j$.

Encoding at the sources
-----------------------

The encoding at 