by $Z_k$. Then in a following delivery phase, only the server has access to the database of files, and each user requests one of the files in the database. To characterize the requests from the users, we define *demand* $\boldsymbol{d}=\left(d_1,...,d_K\right)$, where $d_k$ is the file requested by user $k$.

The server is informed of the demand and proceeds by generating a message of size $RF$ bits, denoted by $X_{\boldsymbol{d}}
    $, as a function of $W_1,...,W_N$, and sends the message over the shared link. $R$ is a fixed real number given the demand $\boldsymbol{d}$. The quantities $RF$ and $R$ are referred to as the load and the rate of the shared link, respectively. Using the contents $Z_k$ of its cache and the message $X_{\boldsymbol{d}}$ received over the shared link, each user $k$ aims to reconstruct its requested file $W_{d_k}$.

Problem Definition
------------------

Based on the above framework, we define the rate-memory tradeoff using the following terminology. We characterize a prefetching scheme by its $K$ caching functions $\boldsymbol{\phi}=(\phi_1,...,\phi_K)$, each of which maps the file contents to the cache content of a specific user: $$\begin{aligned}
    Z_k=\phi_k(W_1,...,W_N) ~~~~~~~~ \forall k\in\{1,...,K\}.
    \end{aligned}$$ Given a prefetching scheme $\boldsymbol{\phi}$, we say that a communication rate $R$ is 