## 2 Distributed Fair Rate Allocation Algorithm
### Convergence to the Optimal Rate Allocation
Combining the results in Proposition 2 with (SR1)-(SR2), we realize that each dual candidate \(\hat{\lambda}_{j}^{k}\) approaches \(\lambda_{j}^{*}\) (w.r.t. \(\lambda_{j}^{k}\)) without overtaking it and that the candidate is valid to determine some of the variables in \(\mathbf{\mu}^{k+1}\). Since in the dual projection we obtain a determined linear system using these dual candidates, the new update \(\mathbf{\lambda}^{k+1}=[\mathbf{A}]^{T}\mathbf{\mu}^{k+1}\) necessarily approaches \(\mathbf{\lambda}^{k}=[\mathbf{A}]^{T}\mathbf{\mu}^{k}\). Hence, we can state that \(\mathbf{\mu}^{k}\to\mathbf{\mu}^{*}\). We summarize this result in the following lemma. **Lemma 1**: _The iterations of the CDM satisfy \(\mathbf{\mu}^{k}\stackrel{{ k\to\infty}}{{\longrightarrow}}\mathbf{\mu}^{*}\) given the subset of active constraints at the optimum._  
Activation/Deactivation of Constraints  
In the following, we use the partial result obtained in Lemma 1 to show that the proposed version of the CDM converges to the optimal solution. Let us state this in the following theorem. **Theorem 1**: _The proposed CDM is able to determine the subset of active constraints of Problem (3) at the optimal solution. Hence, the method converges to the optimal solution._  
We have proved in Lemma 1 that, given the subset of active constraints at the optimum, the CDM converges to \(\mathbf{\mu}^{*}\). Therefore, we need to prove that this subset is eventually found out. Let us start with the activation of a non-active constraint and let us assume that the l-th constraint is active at the optimal solution but not at the k-th iteration. This implies that, if we remove the constraint \([\mathbf{A}]_{l}\mathbf{y}\leq c_{l}\) from the original problem formulation in Problem (3), then the optimal solution to the modified problem \(\mathbf{y}^{\ddagger}\) would satisfy \([\mathbf{A}]_{l}\mathbf{y}^{\ddagger}\geq c_{l}\). In other words, the successive updates of the CDM tend to \(\mathbf{y}^{\ddagger}\) when the l-th constraint is not included in the active subset of constraints. However, there will be an iteration \(q\) where \([\mathbf{A}]_{l}\mathbf{y}^{q}\geq c_{l}\) so that the primal projection will detect that constraint violation, correct it and the l-th constraint will be activated. The opposite situation arises when the l-th constraint is active at the k-th iteration but not at the optimal solution. In that case, if the l-th constraint is not deactivated, _i.e._, the primal projection keeps forcing \(\mathbf{A}\mathbf{y}=c_{l}\), the CDM would converge to a solution \(\mathbf{\mu}^{*}\) with \(\mu_{l}^{*}<0\) (assuming that the dual projection allows negative values). Note that the allocation to the variables involved in the l-th constraint increases with respect to the optimum whereas the allocation to the remaining variables is reduced or remains unchanged in order to satisfy the rate constraints. Looking at the situation from the dual point of view, that is, taking into account Proposition 1, we notice that the values \(\lambda_{j}^{*}\) involved in the l-th constraint must converge to a value that is below \(\lambda_{j}^{*}\). Also, the remaining values remain unchanged or above the corresponding \(\lambda_{j}^{*}\). If we compare those values with \(\mathbf{\lambda}^{*}=\mathbf{A}^{T}\mathbf{\mu}^{*}\) and we know that \(\mu_{l}^{*}=0\), then we realize that \(\mu_{l}^{*}<0\). At this point, let us compute one more iteration of the CDM, thus obtaining \(\mathbf{\lambda}^{*+1}\). In this case, since the values \(\lambda_{j}^{*+1}\) involved in the l-th constraint increase with respect to \(\mathbf{\lambda}^{*}=\mathbf{A}^{T}\mathbf{\mu}^{*}\) because \(\mu_{l}^{*+1}\) is now 0, the corresponding values \(y_{j}^{*+1}\) decrease. Therefore the l-th rate constraint will not be exceeded, preventing its reactivation at the next primal projection.