quantum-shadow-maps_v2/scripts/symmetric_states/README.md

254 lines
No EOL
15 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Shadow maps / symmetric states — numerical scripts
Ausführungsreihenfolge (jedes Skript liest die .npy/.npz-Dateien des vorigen):
## 1. `1_recoupling_check.py`
Baut die zwei Basiszustände (6 Qubits, Singulett-Netzwerke mit den
Paarungen (A,D)(B,E)(C,F) bzw. (A,E)(B,F)(C,D)) und deren volle
Korrelationstensoren T1, T2 sowie den Kohärenz-Kreuzterm C12.
Verifiziert per Brute-Force-Quantensimulation (unabhängig, für mehrere
Werte von alpha), dass für JEDE kohärente Überlagerung
|Xi(alpha)> = (cos(alpha) psi1 + sin(alpha) psi2)/norm
der volle Korrelationstensor exakt
T(Xi) = [cos^2(a) T1 + sin^2(a) T2 + cos(a)sin(a) C12] / N2
ist -- UND dass diese drei festen Tensoren (unabhängig von alpha UND
unabhängig vom gewählten Schnitt!) per einfachem .reshape() sowohl den
Schnitt ABC|DEF (27x27) als auch AB|CDEF (9x81) liefern, exakt
übereinstimmend mit unabhängiger Brute-Force-Simulation für jeden Schnitt.
Output: T1.npy, T2.npy, C12.npy
## 2. `2_exact_casimir_projectors.py`
Baut die exakten SO(3)-Spin-1-Generatoren J_x,J_y,J_z symbolisch mit
sympy (Levi-Civita-Definition), verifiziert die so(3)-Kommutatorrelation
und J^2=2*I_3 symbolisch exakt. Konstruiert dann den totalen
Casimir-Operator J^2_total auf (R^3)^{⊗k} für k=2,3,4 und diagonalisiert
ihn (numpy, Hermitesch, maschinengenau). Die Eigenräume zu Eigenwert
j(j+1) SIND per Definition die Isotypen-Projektoren -- exakt, ohne
Monte-Carlo-Integration über SO(3) wie in einer früheren Version.
Output: projectors_exact.npz
## 3. `3_apply_exact_projectors.py`
Wendet die exakten Projektoren auf T1, T2, C12 an (für beliebiges alpha,
beliebigen Schnitt) und berechnet ||A_j||_* pro Drehimpulssektor j,
für zwei Beispielzustände und beide Schnitte (ABC|DEF und AB|CDEF).
Bestätigt exakte Additivität sum_j (2j+1)||A_j||_* = ||M||_*.
## Kontext
Diese Skripte gehören zur Diskussion der Frage, wie die bigraduierte
Shadow Map M_S(rho) sich unter globaler kollektiver SO(3)-Symmetrie in
Drehimpuls-Isotypen zerlegt (Erweiterung von symmetric_shadow_maps_formal.tex
/ shadow_maps_symmetric_states.tex um die Rotationssymmetrie-Seite neben
der bereits behandelten S_m-Permutationssymmetrie), und wie sich diese
Zerlegung zwischen verschiedenen Schnitten desselben global-invarianten
Zustands umrechnen lässt (siehe Skript 1: EIN Tripel (T1,T2,C12) liefert
JEDEN Schnitt per reshape, ohne erneute Kontraktion über den vollen
Hilbertraum).
## 4. `4_spherical_basis.py`
Baut eine Condon-Shortley-konsistente sphärische Basis {|1,-1>,|1,0>,|1,+1>}
für ein einzelnes Spin-1-Bein über Leiteroperatoren (nicht aus einer
memorierten Formel zitiert), ausgehend von den exakten Cartesischen
Generatoren. Validiert Kommutatoren, Normierung, Jz-Eigenwerte.
## 5. `5_six_j_recoupling.py`
Baut die gekoppelten Basen |p,j,m>_ABC (Baum (AB)C), |y,j,m>_DEF (Baum
(DE)F) und |y,j,p,m>_CDEF (Baum (C,(DE)F)) via sympy-Clebsch-Gordan-
Koeffizienten. Extrahiert die reduzierten Matrixelemente A_j^(1)[p,y]
(Schnitt ABC|DEF) und A_p^(2)[y,j] (Schnitt AB|CDEF) für zwei Zustände
und findet empirisch (numerisch bis auf 1e-6, an 15 unabhaengigen
Datenpunkten):
A_p^(2)[y,j] = -sqrt((2j+1)/(2p+1)) * A_j^(1)[p,y] (unabhaengig von y!)
Das ist die 6j-Rekopplungsformel zwischen den A_j-Bloecken zweier
verschiedener Schnitte desselben invarianten Tensors -- numerisch
bewiesen, aber NICHT sauber gegen eine Standard-Lehrbuch-6j-Formel
identifiziert (siehe verify_6j.py / search_6j.py Versuche, beide mit
Konventions-Mismatch). Das ist die offene Baustelle.
## 6. `6_six_j_recoupling_proof.py` (SUPERSEDES the earlier `5_six_j_recoupling.py`)
Vollstaendiger, verifizierter Beweis der Rekopplungsformel zwischen den
reduzierten Bloecken A_j^(1) (Schnitt ABC|DEF) und A_p^(2) (Schnitt
AB|CDEF) desselben invarianten Tensors:
A_p^(2)[y,j] = -sqrt((2j+1)/(2p+1)) * A_j^(1)[p,y] (y-unabhaengig!)
Kernschritte (jeder einzeln verifiziert):
(1) Schur-Lemma KORREKT auf die bilineare (nicht sesquilineare) Paarung
angewandt -- die Transponierte einer Wigner-D-Matrix haengt ueber die
Metrik C_j (nicht D selbst) mit der Inversen zusammen; das war der
Fehler im ersten Versuch.
(2) Exakte Konjugationsphase fuer CG-gekoppelte Multipletts:
conj(v_{J,m}) = (-1)^(J+n_leg) * (-1)^m * v_{J,-m}
(n_leg = Anzahl der elementaren Spin-1-Beine im Baum), verifiziert
fuer n_leg=3 und n_leg=4.
(3) Eine endliche CG-Summe Xi(p,j,m'), exakt symbolisch (sympy) zu
sqrt((2j+1)/(2p+1)) ausgewertet, m'-unabhaengig, fuer alle p,j<=3.
(4) End-to-End-Kreuzcheck gegen Brute-Force-Quantensimulation: Fehler
2.2e-16 (Maschinengenauigkeit).
Offen (siehe Kommentare im Skript und rem:six-j-scope im .tex): die
allgemeine (nicht nur p,j<=3) geschlossene Form von Xi als zitierfaehiges
Standard-6j-Symbol wurde nicht identifiziert (zwei Versuche dazu blieben
erfolglos, siehe search_6j.py-Fragmente); ebenso ist Gl. (2) nur verifiziert,
nicht fuer allgemeines n_leg induktiv hergeleitet.
## 7. `7_combined_sm_so3_collapse.py`
Kombiniert S_m-Permutationssymmetrie mit voller kollektiver SO(3)-Symmetrie
an einem konkreten 6-Qubit-Beispiel: |Q> = kanonische Invariante zweier
gekoppelter Spin-3/2-Dicke-Multipletts auf ABC und DEF (Gl.
eq:dicke-network-state im .tex). Verifiziert:
- |Q> ist exakt kollektiv-rotationsinvariant (|<Q|U^6|Q>|=1 exakt).
- Innerhalb des 10-dim S_3-symmetrischen Unterraums (Typ-Basis u_alpha,
Sym^3(C^3)) zeigt der Casimir NUR j=1 (x3) und j=3 (x7) -- j=0,2
komplett abwesend, multiplizitätsfrei wie klassisch vorhergesagt.
- Die gesamte Kernnorm (15.0) lebt exakt im doppelt-symmetrischen
Sektor (Norm ausserhalb: 7e-15).
- Konkrete Skalarwerte: A_1=1/3, A_3=2, mit 3*A_1+7*A_3=15 exakt.
Ist jetzt Proposition harmonic-decomposition + Example dicke-network im
.tex (Abschnitt sec:sm-so3-combination).
## 8. `8_general_r_check.py`
Schliesst die letzte offene TODO im Abschnitt: verallgemeinert die
Cut-unabhaengige Template-Aussage (Proposition coherence-templates) von
r=2 auf r=3, mit einem ECHT GEMISCHTEN (volle Rang-3, nicht reine
Ueberlagerung) Zustand. Korrigiert nebenbei einen Zaehlfehler im
urspruenglichen TODO-Kommentar: die Anzahl unabhaengiger reeller Tensoren
ist r^2 (= reelle Dimension hermitescher r x r Matrizen), nicht r(r+1)/2.
Drei verschiedene Perfect-Matchings von 6 Qubits als Basis-Zustaende,
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.
## 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).