in its cache can reconstruct $C_{d_k, \mathcal{H}_i \backslash \{k\}}^{p} $ as well. Then, for each $\mathcal{H}_i$ that includes at least one user from $\mathcal{K}_p$, $\mathrm{S}_p$ transmits $$\begin{aligned}
 \label{Tx}
    X_p(\mathcal{H}_i) = \bigoplus_{k \in \mathcal{K}_p \bigcap \mathcal{H}_i \setminus \{k\}} C_{d_k,\mathcal{H}_i \backslash \{k\}}^{p} ,\end{aligned}$$ where $\bigoplus$ denotes the bitwise XOR operation. Then, $\Bigl| \left\{i \in \left[{K\choose t+1}\right]: k \in \mathcal{H}_i \right\} \Bigr| = {K-1 \choose t} $ is the number of messages transmitted by server $\mathrm{S}_p$ that contain the coded version of a segment requested by $\mathrm{U}_k$, and is also equal to the number of segments of $W_{d_k}$ not present in the cache of user $\mathrm{U}_k$. Overall, the message transmitted by $S_p$ is given by $$\begin{aligned}
 \label{Tx_all}
   X_p = \bigcup_{i \in \left[{K\choose t+1}\right]: \mathcal{K}_p \bigcap \mathcal{H}_i\neq \phi} X_p( \mathcal{H}_i).\end{aligned}$$ From the transmitted message $X_p(\mathcal{H}_i)$ in for each set $\mathcal{H}_i$, user $\mathrm{U}_k$ can decode the MDS coded version $C_{d_k,\mathcal{H}_i \backslash \{ k\}}^{p}$ of its requested segment $W_{d_k, \mathcal{H}_i \backslash \{k\}}$. With the transmissions from all the servers, $\mathrm{U}_k$ receives $\rho$ coded versions of each missing segment from the $\rho$ servers it is connected to. Since each segment is coded with a $(P,\rho)$ MDS code, the user is able to decode each missing segment of 