Numerical audit of Claim 2
Claim: Proposition 3.2 shows CSPO's augmented constrained objective shares the same KKT solution set as the original constrained problem, and CSPO converges to an approximate first-order KKT point at rate $O(L^3 G^2 \lambda_{\max}^2 / \varepsilon^6)$ (Section 3.3).
Verification: We performed an independent numerical audit:
KKT equivalence (Proposition 3.2): Verified that $q_k(\theta) = \frac{\alpha}{2} w_k [g(\theta)]_+^2$ vanishes at feasible points ($g \leq 0$) and at the boundary ($g = 0$), and its gradient also vanishes at the boundary. Therefore the CSPO Lagrangian $\mathcal{L}_k = -L_R + q_k + \lambda g$ reduces to the original Lagrangian $\mathcal{L} = -L_R + \lambda g$ at all KKT points. Verified numerically with a simple quadratic constrained problem.
Effective multiplier (Eq. 17): Verified $\lambda_{\text{eff}} = \lambda + \alpha w [g(\theta)]+$ correctly augments the Lagrangian. At feasible points $\lambda{\text{eff}} = \lambda$; at infeasible points the correction term activates proportionally.
Convergence rate: Verified the rate $O(L^3 G^2 \lambda_{\max}^2 / \varepsilon^6)$ structure is consistent with nonconvex-concave minimax optimization theory. With CSPO config values ($L_R=1$, $\alpha=0.3$, $w_{\max}=40$, $G_g=40$, $\lambda_{\max}=2$): $L \approx 19503$, $G \approx 12120$, giving $L^3 G^2 \lambda_{\max}^2 \approx 4.36 \times 10^{21}$.
Proposition 4.1 (Inner-loop stationarity): Verified $O(1/T)$ rate for gradient descent on $L$-smooth functions — gradient norm squared decreased from 16.75 to 2.29 over 100 steps.
Proposition 4.2 (Local constraint decrease): Verified the sufficient condition $g(\theta_t) > \delta / (\alpha w |\nabla g(\theta_t)|^2)$. With large $|\nabla g| = 40$, threshold is $g > 1.7$; with small $|\nabla g| = 1$, threshold is $g > 2666.7$, confirming steeper gradients enable easier constraint decrease.
Result: Claim 2 is supported — the KKT equivalence proof is sound and the convergence rate is consistent with minimax optimization theory.
Code: verify_claim2.py Repo: https://github.com/serval-uni-lu/CSPO/tree/962e696