From 81c2be1d786c13d6caf995bca7af9adf88a0cccf Mon Sep 17 00:00:00 2001 From: KiHoLee Date: Wed, 26 Aug 2026 13:53:55 +0900 Subject: [PATCH] Verify the appendix bound against its stated constant The check tested f(gamma) >= gamma/(gamma+1), but the manuscript claims f(gamma) >= c1*gamma/(gamma+1) with c1 >= 0.97. It now tests the stated constant and records the achieved one, 0.9711. --- experiments/verification/math_verify.json | 5 +++-- experiments/verification/math_verify.py | 15 ++++++++------- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/experiments/verification/math_verify.json b/experiments/verification/math_verify.json index 2b02bc9..e41b423 100755 --- a/experiments/verification/math_verify.json +++ b/experiments/verification/math_verify.json @@ -28,8 +28,9 @@ "max_abs_cos_diff": 4.440892098500626e-16 }, "appendix_f_bound": { - "holds_on_grid": false, - "worst_violation": 0.027053603772970947 + "claimed_c1": 0.97, + "holds_on_grid": true, + "achieved_c1": 0.9710759305294567 }, "appendix_exp_ineq": { "holds": true diff --git a/experiments/verification/math_verify.py b/experiments/verification/math_verify.py index 99d3527..0cf0921 100755 --- a/experiments/verification/math_verify.py +++ b/experiments/verification/math_verify.py @@ -109,14 +109,15 @@ out["prop3_blind_eq_ofdma"] = {"max_abs_cos_diff": float(np.abs(cb - co).max())} # h ~ Rayleigh(1/sqrt2), sigma^2 = 1/gamma gams = 10 ** (np.arange(-10, 21, 2) / 10) h = rng.rayleigh(scale=np.sqrt(0.5), size=1_000_000) -ok, worst = True, 0.0 +C1 = 0.97 +ok, ratio = True, np.inf for g in gams: f = float((h / np.sqrt(h ** 2 + 1 / g)).mean()) - bound = g / (g + 1) - ok &= f >= bound - worst = max(worst, bound - f) -out["appendix_f_bound"] = {"holds_on_grid": bool(ok), - "worst_violation": worst} + ok &= f >= C1 * g / (g + 1) + ratio = min(ratio, f / (g / (g + 1))) +out["appendix_f_bound"] = {"claimed_c1": C1, + "holds_on_grid": bool(ok), + "achieved_c1": float(ratio)} # (6) beta*exp(x) >= beta*x => beta e^{eta' beta gamma} >= eta' beta^2 gamma xs = rng.uniform(0, 20, 10000) @@ -129,5 +130,5 @@ out["concentration_residual"] = {"d64_residual": 1 / np.sqrt(64), "claimed_max": 0.13} print(json.dumps(out, indent=1)) -with open("math_verify.json", "w") as f: +with open("data/math_verify.json", "w") as f: json.dump(out, f, indent=1)