quantum-shadow-maps_v2/scripts/universal_ceiling.py

46 lines
2 KiB
Python
Raw Normal View History

2026-07-26 14:09:49 +02:00
"""universal_ceiling.py -- closed-form universal ceiling for shadow-map nuclear norms,
derived via Cauchy-Schwarz (rank bound) + a trace identity for the Pauli correlation
tensor of a pure n-qubit state.
Single-party source (m=1) in n qubits:
max_rho ||M_a(rho)||_* = 3 * sqrt(2^(n-2) / (2^(n-1)-1))
reproduces sqrt(6) (n=3), 6/sqrt(7) (n=4), 2.19089... (n=5) -- exactly the "common
values" the paper reports numerically for GHZ_n / line_n / ring_n / connected graph
states.
General m-qubit cluster source S (m <= n/2):
max_rho ||M_S(rho)||_* = sqrt( (2^(2m)-1)(2^n - 2^(n-2m)) / ((2^m-1)(2^(n-m)-1)) )
which reduces to the m=1 formula above, and gives exactly 5 for (n=4, m=2) -- matching
the numerically found ceiling for the 2-qubit cluster maps M_AB, M_AC, M_AD.
Equality holds iff (i) the m-qubit source marginal rho_S is maximally mixed
(tr(rho_S^2) = 1/2^m), and (ii) the resulting shadow map has all singular values equal
("isotropic"). This ceiling is saturated not only by highly symmetric stabilizer states
(GHZ_n, connected graph states) but also by simple biseparable states across an
UNRELATED cut (e.g. two Bell pairs) -- which is why Phi_sym / a single ||M_S||_* cannot
serve as a genuine multipartite entanglement witness on their own.
"""
import numpy as np
def universal_ceiling(n, m):
num = (2 ** (2 * m) - 1) * (2 ** n - 2 ** (n - 2 * m))
den = (2 ** m - 1) * (2 ** (n - m) - 1)
return np.sqrt(num / den)
def universal_ceiling_singleparty(n):
return 3 * np.sqrt(2 ** (n - 2) / (2 ** (n - 1) - 1))
if __name__ == "__main__":
print("Single-party (m=1) ceiling for n=3,4,5:")
for n in [3, 4, 5]:
print(f" n={n}: {universal_ceiling_singleparty(n):.6f} "
f"(general formula gives: {universal_ceiling(n, 1):.6f})")
print(" compare: sqrt(6) =", np.sqrt(6), " 6/sqrt(7) =", 6 / np.sqrt(7))
print()
print("2-qubit cluster (m=2) ceiling for n=4 qubits:")
print(f" {universal_ceiling(4, 2):.6f} (matches the numerically found value 5.0)")