each uniformly distributed over $[2^F]$ for some $F \in \mathbb{N}$. Each $W_n$ represents a file of size $F$ bits. Let $R_p, p\in [P],$ be the number of bits, normalized by the size of a file, transmitted by server $p\in [P]$ during the delivery phase. A $(M_S,M_U,R_1,\ldots,R_P)$ storage and caching scheme consists of $P$ server storage functions, $K$ caching functions, $P{P\choose \rho}^K$ encoding functions, and $K{P\choose \rho}^K$ decoding functions.

The caching function $$\begin{aligned}
    \phi_k : [2^F]^N \rightarrow [2^{\lfloor FM_U\rfloor}],\quad  k \in [K],\end{aligned}$$ maps the library $\{ W_n \}_{n=1}^{N}$ into the cache contents, of user $U_k$ during the placement phase: $$\begin{aligned}
    V_k \triangleq \phi_k (W_1,\ldots, W_N)\end{aligned}$$ The server storage function $$\begin{aligned}
    \sigma_{p}: [2^F]^N \rightarrow [2^{\lfloor FM_S\rfloor}], \quad  p\in [P]\end{aligned}$$ maps the library $\{W_n\}_{n=1}^{N}$ into the storage of server $S_p$: $$\begin{aligned}
    Y_p \triangleq \sigma_p (W_1,\ldots,W_N).\end{aligned}$$ We define a separate encoding function for each server depending on the network topology. Hence, the encoding function for server $S_p, p\in [P],$ $$\begin{aligned}
    \psi^{p}_{\{\mathcal{K}_p\}_{p=1}^{P}}: [N]^K \times [2^{\lfloor FM_S\rfloor}] \rightarrow [2^{\lfloor FR_p\rfloor}]\end{aligned}$$ maps the demand vector and the memory contents of server $S_p$ to message $X_p, $ i.e., $$\begin{aligned}
    X_{p} \triangleq  \psi^{p}_{\{\mathcal{K}_p\}_{p=1}^{P}}(\mathbf{d},Y_p),\end{aligned}$$ which is delivered to the users in $\mathcal{K}_p$ during the delivery phase. Finally, we define a 