caches of all the users $\mathrm{U}_k$ for which $k\in \mathcal{A}$, i.e., each user caches ${K-1 \choose t-1}$ segments of each file, or $\frac{{K-1 \choose t-1}}{{K \choose t}}NF = \frac{t}{K}N = M_U F$ bits, meeting the user cache capacity constraint.

Delivery Phase  {#sec:delivery}
---------------

We first make the following observation about the above placement scheme: in the worst-case demand scenario, consider any $t+1$ users. Any $t$ out of these $t+1$ users share in their caches one segment of the file requested by the remaining user. Enumerate these subsets of $t+1$ users as $\mathcal{H}_i$, $i\in \left[{K\choose t+1}\right]$. Consider server $\mathrm{S}_p$, $p \in [P]$, and one of the $q_p$ users connected to it, say $U_k$. Then, for any subset $\mathcal{H}_i$, that includes $k$, i.e., $k \in \mathcal{H}_i$, the segment $W_{d_k,\mathcal{H}_i \setminus \{k\}}$ is needed by user $\mathrm{U}_k$, but is not available in its cache because $k \notin  \mathcal{H}_i \setminus \{k\}$, while it is available in the caches of the users in $\mathcal{K}_p \bigcap \mathcal{H}_i \setminus \{k \}$. The MDS coded subsegment of $W_{d_k, \mathcal{H}_i \backslash \{k\}} $ stored by $\mathrm{S}_p$ is $C_{d_k, \mathcal{H}_i \backslash \{k\}}^{p}$, and since the users know the generator matrix $G$, each user which has $W_{d_k, \mathcal{H}_i \backslash \{k\}} $ 