feat: add U(1) example script for nuclear norm calculations and corrections
This commit is contained in:
parent
991af99562
commit
8e4263f632
2 changed files with 173 additions and 1 deletions
36
scripts/symmetric_states/9_check_u1_example.py
Normal file
36
scripts/symmetric_states/9_check_u1_example.py
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
import numpy as np
|
||||
|
||||
X=np.array([[0,1],[1,0]],dtype=complex); Y=np.array([[0,-1j],[1j,0]],dtype=complex); Z=np.array([[1,0],[0,-1]],dtype=complex)
|
||||
I=np.eye(2,dtype=complex)
|
||||
paulis={'I':I,'X':X,'Y':Y,'Z':Z}
|
||||
|
||||
def state(phi):
|
||||
psi = np.zeros(16, dtype=complex)
|
||||
psi[0b0011] = np.cos(phi)
|
||||
psi[0b1100] = np.sin(phi)
|
||||
return psi
|
||||
|
||||
def kron4(a,b,c,d):
|
||||
return np.kron(np.kron(np.kron(a,b),c),d)
|
||||
|
||||
def corr(rho, labels):
|
||||
O = kron4(*[paulis[l] for l in labels])
|
||||
return np.trace(rho@O).real
|
||||
|
||||
for phi_deg in [10, 40, -10, -40, 100, 130, 200]:
|
||||
phi = np.deg2rad(phi_deg)
|
||||
psi = state(phi)
|
||||
rho = np.outer(psi, psi.conj())
|
||||
# build the 9x9 raw M_AB block (source AB active, target CD active) and get its true nuclear norm
|
||||
axes = [X,Y,Z]
|
||||
M = np.zeros((9,9))
|
||||
for ia in range(3):
|
||||
for ib in range(3):
|
||||
for ic in range(3):
|
||||
for id_ in range(3):
|
||||
O = kron4(axes[ia],axes[ib],axes[ic],axes[id_])
|
||||
M[3*ia+ib, 3*ic+id_] = np.trace(rho@O).real
|
||||
nn_true = np.linalg.svd(M, compute_uv=False).sum() / 3.0 # normalize by sqrt(3*3)=3
|
||||
pred_with_abs = 1/3 + 4/3*abs(np.sin(2*phi))
|
||||
pred_no_abs = 1/3 + 4/3*np.sin(2*phi)
|
||||
print(f"phi={phi_deg:+4d} deg: true ||M||_*={nn_true:.6f} pred_with_abs={pred_with_abs:.6f} pred_no_abs={pred_no_abs:.6f}")
|
||||
|
|
@ -115,4 +115,140 @@ Gram-Matrix-Konditionszahl 2 (linear unabhaengig), Haar-zufaellige
|
|||
hermitesche PSD-Koeffizientenmatrix voller Rang. Ergebnis: Fehler 1.1e-16
|
||||
zwischen Brute-Force- und Template-basierter Korrelationstensor-Berechnung,
|
||||
an BEIDEN Schnitten gleichzeitig, ohne erneute Simulation.
|
||||
Ist jetzt Corollary real-tensor-count + Example general-r-three im .tex.
|
||||
Ist jetzt Corollary real-tensor-count + Example general-r-three im .tex.
|
||||
|
||||
## Nachtrag: Review-Feedback eingearbeitet
|
||||
Ein externes Review (Team-Notiz) wurde gegen die bereits im Projekt vorhandenen
|
||||
Skripte (01_double_collapse_table.py, 02_subsector_multiplicity_example.py,
|
||||
shadow_su2_common.py) geprüft und folgende Punkte behoben:
|
||||
|
||||
1. **Vorzeichen-Fehler in Example dicke-network**: A_1=-1/3, A_3=-2 (nicht
|
||||
+1/3,+2 wie zuvor). Ursache identifiziert: die Sitzung hatte nur ||A_j||_*
|
||||
(Kernnorm, stets >=0) berechnet, nie das tatsächlich signierte A_j.
|
||||
2. **m=4,5-Verallgemeinerung** ergaenzt (neues Remark dicke-network-general-m):
|
||||
exakte Werte, Vorzeichenmuster (-1)^m und Verhaeltnis A_m/A_{m-2}=2m,
|
||||
explizit als verifiziertes Muster (nicht hergeleitete Formel) markiert.
|
||||
3. **Teilsektor-Beispiel V⊊S ergaenzt** (neues Example subsector-multiplicity,
|
||||
n=8 Qubits): erstes Beispiel im Paper mit echt nicht-skalarer,
|
||||
nicht-Identitaets A_j-Matrix (3x3, Rang 1). Das exakte Verschwinden von
|
||||
A_2, A_0 wird explizit als unverstanden/offen markiert.
|
||||
4. **BibTeX-Audit**: systematische Pruefung (Python-Skript, nicht nur
|
||||
visuelle Kontrolle) ergab: alle 20 tatsaechlich verwendeten \cite-Keys
|
||||
loesen sich in meiner Kopie sauber auf; die vom Review gemeldeten 7
|
||||
fehlenden Eintraege reproduzieren sich hier nicht. Als Robustheits-Fix
|
||||
trotzdem: zwei Nicht-ASCII-BibTeX-SCHLUESSEL (nicht Feldwerte) umbenannt
|
||||
(novomorodergühne2013 -> novomoroderguhne2013, bergmanngühne2013 ->
|
||||
bergmannguhne2013), da nicht-ASCII-Zeichen in BibTeX-Keys ein bekanntes,
|
||||
locale-abhaengiges Fragilitaetsrisiko sind -- unabhaengig von der
|
||||
tatsaechlichen Ursache des Review-Befunds.
|
||||
5. **Theorem/Proof-Praezisierung** fuer thm:six-j-recoupling: nicht
|
||||
herabgestuft zu "Conjecture" (die Aussage ist fuer den konkreten
|
||||
Sechs-Qubit-Fall durch erschoepfende exakte symbolische Fallpruefung
|
||||
tatsaechlich vollstaendig bewiesen, nicht nur numerisch beobachtet),
|
||||
aber Beweis und Remark komplett umstrukturiert, um praezise zu trennen:
|
||||
(a) was allgemein-repraesentationstheoretisch bewiesen ist (Schritt 1,
|
||||
fuer beliebige p,y,j), (b) was durch erschoepfende exakte Fallpruefung
|
||||
bewiesen ist (Schritt 3, Xi-Summe, deckt buchstaeblich JEDEN im Theorem
|
||||
vorkommenden Fall ab), (c) was numerisch (nicht exakt-symbolisch, aber
|
||||
erschoepfend) verifiziert ist (Schritt 2, Konjugationsphase), und (d)
|
||||
was tatsaechlich offen bleibt (Verallgemeinerung auf m>3; allgemeine
|
||||
n_ℓ-Induktion; Anschluss an eine zitierfaehige Lehrbuch-6j-Formel).
|
||||
|
||||
Nicht unilateral entschieden: die Frage, ob der SU(2)-Abschnitt (~300 von
|
||||
1590 Zeilen, ca. 19%) in ein eigenes drittes Paper ausgelagert werden sollte,
|
||||
ist eine redaktionelle Entscheidung und wird dem Team zur Diskussion
|
||||
vorgelegt statt vorwegzunehmen.
|
||||
|
||||
## Nachtrag: zweites (aelteres) Review eingearbeitet
|
||||
Ein detailliertes, mathematisch tiefes Review (bezog sich laut Nutzer nicht
|
||||
auf die aktuellste Fassung) wurde Punkt fuer Punkt geprueft. Behoben:
|
||||
|
||||
1. **Reelles vs. komplexes/quaternionisches Schur-Lemma** (Frobenius-
|
||||
Klassifikation): Proposition block-diagonal und Proposition
|
||||
reduced-formula gelten in der zitierten Form nur fuer real-type
|
||||
Irreps (End_G(V)=R, nicht C oder H). Neues Remark real-schur erklaert
|
||||
dies und bestaetigt, dass alles in diesem Paper (Ganzzahlspin-SO(3),
|
||||
Permutationsdarstellungen) automatisch real-type ist -- keine
|
||||
Einschraenkung fuer die tatsaechlichen Resultate, aber die allgemeine
|
||||
Propositions-Formulierung war zuvor unvollstaendig.
|
||||
2. **U(1)-Beispiel, negative Singulaerwerte**: echter Fehler, numerisch
|
||||
verifiziert (9_check_u1_example.py). Formel korrigiert zu
|
||||
1/3 + 4/3|sin(2phi)|, gilt jetzt fuer alle phi, nicht nur [0,pi/2].
|
||||
3. **Stabilisator-Gruppendefinition**: H als reiner F_2-Vektorraum legt
|
||||
die Vorzeichen der Stabilisator-Erzeuger nicht fest. Neue, explizite
|
||||
Vorzeichenfunktion s:H->{±1} mit Kozykel-Bedingung eingefuehrt; Lemma
|
||||
code-support entsprechend korrigiert (Tr[rho_H sigma_i]=s(i), nicht
|
||||
pauschal 1); neues Remark sign-independence zeigt, dass die
|
||||
Entartungs-KONKLUSION von Lemma stabilizer-degeneracy unabhaengig von
|
||||
der Vorzeichenwahl ist (nur Betraege werden benutzt).
|
||||
4. **Cut-independent templates**: Injektions-Behauptung war nur fuer den
|
||||
VOLLEN Tensor (mit Identitaetsbeinen, wie Hauptpapier-Konvention C(rho))
|
||||
korrekt, nicht fuer den nur-aktiven Sektor. Proposition
|
||||
coherence-templates und Corollary real-tensor-count jetzt konsistent
|
||||
auf den vollen Tensor umgestellt (per Nutzer-Bestaetigung: Hauptpapier
|
||||
nutzt ueberwiegend den vollen Tensor).
|
||||
5. Kleinere Praezisierungen: HS-Normierungskonvention explizit gemacht
|
||||
(Definition bigraduated); "operator norm" -> vollstaendige
|
||||
Submultiplikativitaets-Kette fuer Corollary sub-block; Frechet- statt
|
||||
pauschale Differenzierbarkeit; "only singular value" -> "only NONZERO
|
||||
singular value"; explizite CG-Formel fuer die Spin-3/2-Singulett-
|
||||
Konvention im doppelt-symmetrischen Beispiel ergaenzt.
|
||||
|
||||
Nicht (nochmals) veraendert: die sechs-j-Theorem/Proof-Struktur wurde
|
||||
bereits im vorherigen Durchgang praezisiert (siehe vorheriger Nachtrag);
|
||||
dieses Review bezog sich auf eine Fassung vor jener Ueberarbeitung.
|
||||
|
||||
## Nachtrag 2: Zwei weitere Reviews eingearbeitet (nicht blind übernommen)
|
||||
|
||||
### Review A (27 Punkte, math. Korrektheit)
|
||||
Geprüft und tatsächlich behoben (nach eigener Verifikation, nicht auf
|
||||
Zuruf):
|
||||
- U(1)-Formel: Singulaerwerte koennen nicht negativ sein -> |sin(2phi)|
|
||||
ergaenzt (numerisch verifiziert, echter Fehler).
|
||||
- Reelles vs. komplexes/quaternionisches Schur-Lemma: Proposition
|
||||
block-diagonal und reduced-formula auf real-type-Faelle beschraenkt,
|
||||
neues Remark real-schur ergaenzt (SO(3): automatisch ok; U(1) im
|
||||
Haupttext bereits korrekt ueber Gewichtsraeume umgangen).
|
||||
- Cut-independent templates: Injektions-Behauptung war fuer den
|
||||
"all-active"-Tensor falsch -> nach Rueckmeldung auf den VOLLEN
|
||||
Bloch-Tensor (mit Identitaets-Beinen, wie im Hauptpaper ueblich)
|
||||
umgestellt, dort stimmt sie exakt (Standard-Linearalgebra).
|
||||
- Sub-block witnesses: "operator norm" -> praezise Submultiplikativitaets-
|
||||
Kette (nuclear norm via operator-norm-Kontraktion).
|
||||
- Stabilizer-Setup: H als reiner F_2-Vektorraum legt Vorzeichen nicht
|
||||
fest -> Sign-Funktion s:H->{+-1} explizit eingefuehrt, Lemma
|
||||
code-support entsprechend korrigiert, neues Remark zeigt: die
|
||||
Entartungs-KONKLUSION (Lemma stabilizer-degeneracy) ist
|
||||
vorzeichenunabhaengig (nur Betraege werden benutzt).
|
||||
- HS-Normierung explizit geklaert (Definition bigraduated).
|
||||
|
||||
Bewusst NICHT uebernommen: Herabstufung von Theorem six-j-recoupling zu
|
||||
"Conjecture" -- die Aussage ist fuer den behandelten Sechs-Qubit-Fall
|
||||
durch erschoepfende exakte Fallpruefung tatsaechlich vollstaendig
|
||||
bewiesen (siehe Remark six-j-scope), keine Vermutung.
|
||||
|
||||
### Review B (Referee-Stil, fokussiert)
|
||||
- **Echter Fehler bestaetigt und behoben**: Corollary
|
||||
nuclear-norm-first-order. Gegenbeispiel diag(1,eps) nachgerechnet:
|
||||
||M(eps)||_* = 1+|eps|, nicht differenzierbar bei 0, obwohl sigma_0=1
|
||||
der einzige NICHTVERSCHWINDENDE Singulaerwert ist. Korrigiert: die
|
||||
Hypothese verlangt jetzt explizit, dass ALLE Singulaerwerte gleich
|
||||
sigma_0>0 sind (keine Nullsingulaerwerte vorhanden), mit expliziter
|
||||
Warnung inkl. desselben Gegenbeispiels im Text.
|
||||
- Wichtiger, unabhaengig bestaetigter Punkt: reelle 2-dim U(1)-Darstellung
|
||||
ist komplexen Typs (End=C, nicht R) -- mein vorheriges Remark hatte
|
||||
"automatic throughout" faelschlich auch fuer U(1) behauptet; jetzt
|
||||
praezise: SO(3)/Permutation = real type automatisch, U(1) = komplexer
|
||||
Typ, aber im Haupttext korrekt ueber Gewichtsraeume umgangen (nicht
|
||||
ueber die reelle Wigner-Eckart-Formel).
|
||||
- "fully proved" in Abstract UND Introduction abgeschwaecht zu einer
|
||||
praezisen Formulierung (allgemein bewiesen bis auf eine erschoepfend
|
||||
und exakt fuer den Sechs-Qubit-Fall verifizierte endliche Identitaet),
|
||||
da beide Reviews unabhaengig denselben internen Widerspruch zur
|
||||
Remark six-j-scope monierten -- berechtigt, auch wenn ich am
|
||||
Theorem-Status selbst festhalte.
|
||||
- 6/sqrt7 im Abstract als Wert des Ein-Partei- (1|3-) Schnitts
|
||||
praezisiert (war zuvor mehrdeutig zwischen "jedem Schnitt" lesbar).
|
||||
|
||||
Bewusst NICHT uebernommen: Downgrade des sechs-j-Theorems (siehe oben,
|
||||
gleiche Begruendung wie bei Review A).
|
||||
Loading…
Add table
Add a link
Reference in a new issue