254 lines
No EOL
15 KiB
Markdown
254 lines
No EOL
15 KiB
Markdown
# 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). |