English
Experimentelle Beweiskomplexität · zufälliges 3-SAT an der Schwelle

Die Vorzeichenachse

Die Hälfte der Härtestreuung sitzt nicht im Gerüst, sondern in den Vorzeichen. Dieser Bericht vermisst sie vollständig bis zum Fourier-Grad 12 — und findet dort genau zwei Richtungen, die beide dasselbe tun: die Erfüllbarkeitsschwelle verschieben.

n = 200, α = 4,26728 808 gemessene Instanzen zwei Saatbereiche2 620 Eichproben, alle bestanden 20. August 2026
Signatur σ
dieselbe Formel, umbenannt: g · σ
beide Male
frust191
frust416
unwucht38
tr(M³)8 922
μ_max(M)14,98864

Ein echtes Beispiel, n = 12, m = 26. Jede Spalte ist eine Klausel, jede Zeile eine Variable; steht für ein positives, für ein negatives Vorkommen. Die beiden Bilder unterscheiden sich in 25 von 78 Vorzeichen. Sie beschreiben dieselbe Aufgabe — und jede Grösse dieses Berichts ist auf ihnen ziffernweise gleich. Das ist die Bedingung, die eine Vorzeichengrösse erfüllen muss, bevor sie überhaupt etwas messen kann.

01

Der Satz, der die Leiter endlich macht

Der Auftrag gibt eine nach Grad geordnete Leiter vor: Vierkreis, Sechskreis, allgemeiner Kreis der Länge 2ℓ. Dem Anschein nach ist sie unendlich. Sie ist es nicht.

Satz V1
Sei S die m×n-Matrix mit S[c][v] = σ(c,v), falls v in c vorkommt, und 0 sonst — die vorzeichenbehaftete Inzidenzmatrix. Sei A die Klauselmatrix, A[c][c′] = Σv ∈ c∩c′ σ(c,v)·σ(c′,v), A[c][c] = 0. Dann gilt für 3-CNF A = S·Sᵀ − 3·I, und mit M := Sᵀ·S ist spec(S·Sᵀ) = spec(M) ∪ {0}m−n.
(S·Sᵀ)[c][c′] = Σv S[c][v]·S[c′][v] ist die Summe über die gemeinsamen Variablen; die Diagonale ist Σv∈c σ(c,v)² = 3, weil jede Klausel drei Literale hat.

Drei Folgen, und jede erspart eine Messung:

  • λmin(A) = −3, exakt, für jede Instanz. S hat höchstens Rang n, bei m > n ist S·Sᵀ singulär. Der kleinste Eigenwert der Klauselmatrix ist keine Messgrösse, sondern eine Identität — beim Bau des Instruments gemessen, bevor er hergeleitet war.
  • Das ganze Spektrum sitzt in der n×n-Matrix M. Ihre Diagonale ist die Gradfolge, alles Vorzeichenhafte sitzt daneben. Unter der Eichung geht M ↦ D·M·D — das Spektrum ist invariant, der einzelne Eintrag nicht.
  • Die Stufe 4 der Leiter hat n Freiheitsgrade, nicht unendlich viele. Für jedes ℓ ist tr(A) eine Funktion der n Eigenwerte von M. Das Frustrationsprofil über alle Kreislängen ist damit in einem Durchgang ausrechenbar.

Und der Punkt, auf den der Auftrag selbst zeigt: die Unwucht Σv(pos−neg)² ist die quadratische Form von A am festen Vektor 𝟙 — jedes Klauselpaar mit Gewicht eins.

Satz V2 — das richtige Gewicht
μmax(M) − 3 = λmax(A) ist dieselbe quadratische Form am besten Vektor. Insbesondere ist λmax(A) ≥ (unwucht − 3m)/m.

Der Auftrag sagt: „Das Versagen der Unwucht widerlegt nicht den Grad 2. Es widerlegt die gleichmässige Gewichtung. Gesucht ist nicht eine neue Grösse, sondern das richtige Gewicht." Das richtige Gewicht ist μmax(M) — und es ist gemessen. Siehe Abschnitt 05.

Satz V7 — der Suchraum ist geschlossen
Ist für jede Variable v die Menge der Klauseln, die v enthalten, über Paare mit genau einer gemeinsamen Variablen zusammenhängend, so bestimmt A zusammen mit dem Gerüst die Signatur σ vollständig bis auf Eichung. Folglich ist jede Eichinvariante eine Funktion von A und H.
Für ein Paar (c,c′) mit genau einer gemeinsamen Variablen v ist A[c][c′] = σ(c,v)·σ(c′,v). Sind die Klauseln an v über solche Paare zusammenhängend, liegt σ(·,v) auf allen von ihnen fest, sobald man den Wert an einer festlegt — und diese eine Wahl ist genau die Eichfreiheit g_v.

Nachgerechnet, zweifach. Die Voraussetzung ist bei α = 4,267 in allen geprüften Fällen erfüllt — n = 50, 100, 150, 200, je fünf Gerüste, keine einzige Variable mit mehr als einer Komponente. Und die Rekonstruktion ist explizit durchgeführt, aus A und H allein, und stimmt bei n = 60, 120 und 200 bis auf Eichung mit dem Original überein.

Damit ist der Suchraum nicht mehr „irgendwelche Funktionen von 2 559 Vorzeichen", sondern exakt: Funktionen einer dünnbesetzten 853×853-Matrix. Und in diesem Licht sieht man, was alle Grössen dieses Berichts gemeinsam haben — jede ist eine globale Summe über A: eine Spur, eine quadratische Form am festen Vektor 𝟙, ein Moment von A𝟙, ein Randeigenwert. Gemessen sind die Mittelwerte von A, in vielen Varianten. Die Ecke ist ausgeschöpft; der Raum ist es nicht.

Der ausformulierte Nachfolgeauftrag steht in GENESIS_III.md: die Leiter auf regulären Gerüsten (billig, mit Präzedenzfall), Extremwerte statt Mittelwerte derselben Matrix — der Flaschenhals einer Widerlegung ist lokal, kein Mittel über 853 Klauseln —, und die grösste offene Frage aus diesen Daten: was der nicht zerfallende Rest der Varianz eigentlich ist.

02

Woran man dem Instrument glauben darf

Gemessen wird bei festem Gerüst über viele Signaturen. Damit ist Σv grad(v)² konstant, ebenso paare2 und jede andere Gerüstgrösse: die Zentrierung innerhalb der Gerüste erledigt das Herausregressieren der Gradstreuung exakt statt näherungsweise. SAT und UNSAT werden nie zusammengeworfen.

Drei Proben, bevor eine einzige Härte gedeutet wird

Gegen eine unabhängige Nachrechnung. Ein zweites Programm rechnet alle Grössen aus den blossen Variablentripeln neu — nicht aus dem Rust-Code übersetzt, sondern aus den Definitionen neu geschrieben, mit numpy.linalg.eigvalsh statt eigenem Eigenwertlöser. Bei n = 200, m = 853, zwei Saaten: alle 22 Grössen stimmen — die ganzzahligen ziffernweise, die spektralen auf 10⁻¹⁰ relativ.

Die Eichprobe. 320 Paare je Saatbereich, σ gegen g·σ. Grösste absolute Abweichung bei frust1, frust4, frust6, unwucht, unwucht4, tr(A²), tr(A³), tr(M²)…tr(M⁶), μmax, μmin: 0. Erfüllbarkeitsurteil in 320 von 320 Fällen gleich, in beiden Saatbereichen.

Und sie ist beim Bau fehlgeschlagen. Die erste Fassung bestimmte μmax und μmin mit einer Potenziteration; die lieferte für M und für D·M·D Werte, die sich in der sechsten Stelle unterschieden, weil die kleinen Eigenwerte von M dicht liegen. Ohne die Probe hätten die Spektralgrössen Rauschen gemessen. Ersetzt durch ein zyklisches Jacobi-Verfahren, danach exakt.

Die dritte Probe ist zugleich der Rauschboden: dieselbe Formel unter Umbenennung ist nach der Eichsymmetrie dieselbe Aufgabe, was der Solver an Konflikten trotzdem anders zählt, ist sein Eigenrauschen. Es ist auf den beiden Seiten der Schwelle völlig verschieden — und das entscheidet, was überhaupt erklärbar ist.

SeiteNσ²zwischen σ²innenσ²eigenDeckel
UNSAT, Saat A1 1970,130 0,2290,017r² ≤ 0,928
UNSAT, Saat B1 1910,128 0,2130,017r² ≤ 0,920
SAT, Saat A1 2030,087 2,9362,045r² ≤ 0,303
SAT, Saat B1 2090,162 2,9811,825r² ≤ 0,388

Die SAT-Seite ist zu 61 bis 70 % Eigenrauschen. Wer die Seiten zusammenwirft oder den Rauschboden gemeinsam schätzt, deutet dort Rauschen als Struktur.

03

Die Kontrollen — zuerst, nicht zuletzt

Ein Nullbefund ohne funktionierende positive Kontrolle ist kein Befund. Drei Familien, aufsteigend nach Schärfe.

Alles positiv — bestanden, exakt

σ ≡ +1 auf 10 Gerüsten, 80 Instanzen: frust1 = frust4 = frust6 = 0, alle Instanzen erfüllbar, null Konflikte. Und unwucht = Σv grad(v)² in allen 80 Zeilen — die Probe auf die Unwucht-Identität am Randpunkt, wo pos − neg = grad ist.

Impfung mit Bias p — bestanden, mit einer Nebenbemerkung

Je Variable eine bevorzugte Polarität, jedes Vorkommen folgt ihr mit Wahrscheinlichkeit p. Alle Grössen antworten monoton; frust1 und unwucht mit Rangkorrelation ±1,000 über acht Stufen. Bei p = 0,50 ist frust4 = 83,3 gegen die Vorhersage paare2/2 = 85.

Die Nebenbemerkung ist der eigentliche Ertrag: zwischen p = 0,50 und p = 0,70 bricht die Härte um 11 Bit ein — Faktor 2000 — und frust4 bewegt sich dabei von 83,3 auf 80,8, weniger als eine halbe Standardabweichung seiner eigenen Streuung. Die Unwucht verdreifacht sich derweil. Schon die Kontrolle zeigt, wo frust4 nicht hinsieht.

Tseitin — nicht bestanden, und das ist ein Satz

Über einem 3-regulären Graphen entscheidet allein die Ladungsparität über die Erfüllbarkeit, und das Kippen einer Ladung ersetzt die vier Klauseln eines Knotens durch die vier komplementären: dasselbe Gerüst, andere Vorzeichen. Die schärfste denkbare Kontrolle der Vorzeichenachse.

Knoten = 40, n = 60, m = 160frust1frust4 frust6unwuchttr(A³)μ_maxμ_min SATlog₂ K
Ladung gerade4800 377,604 800 8,08,01,00 0,23
Ladung ungerade4800 377,604 800 8,08,00,00 11,49
faire Zufallssignatur, dasselbe Gerüst472,8 0537,1516,3 20 41616,51,3 1,002,85

Jede gemessene Invariante ist zwischen SAT und UNSAT identisch — je Graph gepaart, Δ = 0,000 bei allen zehn und an beiden Grössen. Die Härte unterscheidet sich um elf Bit. Das Instrument ist deshalb nicht blind: die dritte Zeile zeigt, dass es auf demselben Gerüst zwischen Tseitin und einer fairen Signatur massiv unterscheidet. Es ist der Gegenstand, der so gebaut ist.

Satz V5
Für die Tseitin-Formel über einem einfachen 3-regulären Graphen gilt M = grad · I, unabhängig von den Ladungen.
Zwei Kantenvariablen v, w kommen genau dann gemeinsam vor, wenn sie einen Knoten k teilen. Die Klauseln an k sind die vier Masken μ ∈ {0,1}³ einer Paritätsklasse, und σ(cμ, ei) = (−1)μi. Also M[v][w] = Σμ (−1)μvw. Die vier Masken bilden eine Nebenklasse der Untergruppe {μ : Σμ = 0}; darauf ist (−1)μvw ein nichttrivialer Charakter, die Summe also 0 — auf beiden Nebenklassen. Und M[v][v] = grad(v).

Damit ist tr(A) für Tseitin durch n, m und den Grad allein festgelegt. Nachgerechnet und gemessen, beide Male: tr(A³) = 45·125 − 75·27 = 3 600 bei n = 45 und 4 800 bei n = 60. Das gesamte Kreisprofil ist dort entartet. Auch frust1, die einzige gemessene Grösse ohne Kreisträger, ist blind: in jeder Paritätsklasse haben genau zwei der vier Masken das Bit e gesetzt, also sind von den 16 Paaren je Kante immer genau 8 uneinig — frust1 = paare1/2, exakt, gemessen 480 von 960 und 360 von 720.

Die Tseitin-Familie ist deshalb keine gescheiterte Kontrolle, sondern das exakt ausgerechnete Gegenbeispiel: eine Formelfamilie, in der die Erfüllbarkeit nachweislich allein im Vorzeichen sitzt und in der trotzdem jede hier gemessene Vorzeicheninvariante konstant ist. Wer nach einem lokalen Vorzeichenprädiktor sucht, weiss ab hier, dass es Gegenstände gibt, an denen keiner existieren kann.

04

Die Kernmessung

Zwei Saatbereiche zu je 40 Gerüsten mit 60 Signaturen, 4 800 Hauptzeilen und 640 Eichzeilen. Kein Lauf ins Konfliktbudget. Alles zentriert innerhalb der Gerüste, unerfüllbare Instanzen, Standardfehler von r unter der Nullhypothese je 0,029.

Stufe · GrösseFourier-Gradr (Saat A) r (Saat B)
0 · unwucht Σ(pos−neg)²2 +0,266+0,2870,071
1a · frust1, Breite-4-Funken2 −0,273−0,2900,074
1b · frust4, Breite-3-Funken4 −0,232−0,1910,054
2 · unwucht4 Σ(pos−neg)⁴4 +0,245+0,2600,060
3 · frust6, Sechskreise6 +0,068+0,1210,005
3′ · tr(A³)6 +0,235+0,1680,055
4 · tr(M³), Kreise der Länge 66 +0,236+0,1730,056
4 · tr(M⁴), Länge 88 +0,230+0,1560,053
4 · tr(M⁵), Länge 1010 +0,218+0,1420,048
4 · tr(M⁶), Länge 1212 +0,205+0,1300,042
4 · μ_max(M) — das beste Gewicht alle+0,060+0,050 0,004
4 · μ_min(M)alle +0,000−0,0690,000
— · Ordnung d(50 %) +0,165+0,1500,027

frust4 ist ein Treffer. Acht und 6,6 Standardabweichungen an zwei unabhängigen Saatbereichen, und mit dem vorhergesagten Vorzeichen: mehr frustrierte Vierkreise heisst mehr Resolventen der Breite 3 heisst leichter. Es ist die erste strukturelle Vorzeichengrösse dieses Projekts, die überhaupt etwas tut — und es ist nicht die Unwucht:

r(frust4, Härte | unwucht) = −0,256 (A) −0,212 (B) r(unwucht, Härte | frust4) = +0,287 (A) +0,301 (B) r(frust4, Härte | unwucht, d(50 %)) = −0,241 (A) −0,199 (B) r(μ_max, Härte | unwucht, frust4) = +0,013 (A) +0,024 (B) r(frust4, unwucht) = +0,055 — zwei Richtungen, nicht eine

Die Stufen 3 und 4 tragen nichts Eigenes: tr(M²) korreliert mit frust4 zu −0,997 (das ist Satz V3, exakt), tr(M³) zu −0,976, tr(M⁶) noch zu −0,817. Sie sind frust4 in längeren Kreisen wiedergesehen, mit abnehmender Güte. Und μmax(M) — das richtige Gewicht — trägt nichts. Das ist die schärfste Einzelaussage dieses Abschnitts, denn μmax ist nach V2 genau die Grösse, nach der der Auftrag sucht.

Ausserstichprobe — anpassen auf einem Saatbereich, prüfen auf dem anderen

Modell (R² der Innenvarianz, UNSAT)kA → B B → A
nur frust410,0350,052
nur unwucht10,0830,071
nur μ_max(M)10,0020,004
nur d(50 %)10,0210,026
Stufe 1 — frust1 + frust420,1240,133
Stufe 1–4 — alles12 0,1310,139
Stufe 1–4 + d(50 %)130,1340,142

Auf der SAT-Seite bleibt ausserhalb der Stichprobe nur die Unwucht (0,040 und 0,063), frust4 liefert exakt 0,000, und die Stufen 2 bis 4 machen die Vorhersage schlechter statt besser: 0,043 → 0,038 und 0,064 → 0,052. Mehr Freiheitsgrade, schlechtere Vorhersage — die Signatur des Anpassens an Rauschen.

Dieselbe Frage ohne Regression

Zu jeder Signatur die nächstgelegene Signatur desselben Gerüsts im zwölfdimensionalen Invariantenraum, mittlerer Abstand 2,2 σ. Wenn die Invarianten die Härte fassen, müssen solche Paare nahe beieinander liegen.

σ²(Härte) nächste Paarebeliebige Paare Verhältnis
UNSAT, Saat A0,1900,2410,789
UNSAT, Saat B0,2000,2340,854
SAT, Saat A2,9823,1380,950
SAT, Saat B2,9053,1700,917

Zwei Signaturen, die in allen zwölf Invarianten fast übereinstimmen, haben auf der UNSAT-Seite noch 79 bis 85 % der vollen Härtestreuung zwischen sich — dieselbe Zahl wie die Ausserstichprobenregression, auf einem Weg, der keine lineare Form voraussetzt.

05

Die Zündprobe — hier trägt frust4, und zwar kausal

Der einzige Punkt des Auftrags, an dem eine kausale Kette vorliegt statt einer Korrelation. frust4 ist nicht ein Korrelat der Breite-3-Funken, sondern ihre exakte Anzahl: zwei Klauseln mit genau zwei gemeinsamen Variablen haben genau dann eine Resolvente der Breite 3, wenn sie sich über genau eine der beiden einig sind. Also — sagt frust4 vorher, ob der Abschluss der Breite 3 zündet?

unteres frust4-Drittel oberes frust4-Drittel
p₃ — Anteil der unerfüllbaren Instanzen, die der Breite-3-Abschluss widerlegt 0 % 25 % 50 % 75 % 100 % n = 45 1132 UNSAT n = 45, unteres frust4-Drittel: p₃ = 0.8080.808 n = 45, oberes frust4-Drittel: p₃ = 0.9630.963 n = 53 1183 UNSAT n = 53, unteres frust4-Drittel: p₃ = 0.3710.371 n = 53, oberes frust4-Drittel: p₃ = 0.7100.710 n = 60 1237 UNSAT n = 60, unteres frust4-Drittel: p₃ = 0.0650.065 n = 60, oberes frust4-Drittel: p₃ = 0.1820.182
Je 30 Gerüste zu 100 Signaturen, 3 000 Instanzen je n, zentriert innerhalb der Gerüste. Die Kappe der Sättigung stand auf der vollen Raumschranke und ist in allen 10 170 Zeilen nicht ein einziges Mal gefeuert — jede Zündaussage ist ein Urteil, kein Abbruch. Chancenverhältnisse 6,2× / 4,2× / 3,2× bei 6,9 σ / 10,2 σ / 5,2 σ.

Und keine andere Grösse tut es. Bei n = 53, innerhalb der Gerüste, gegen zündet: frust4 +0,308 — die Unwucht, die Grösse mit dem stärksten Zug auf die CDCL-Härte bei n = 200, liegt bei +0,006 bei N = 1 183. frust6 −0,020, frust1 +0,007, unwucht4 +0,013. Die beiden Richtungen der Vorzeichenachse gehören zu zwei verschiedenen Mechanismen.

Nebenbefund, ungeplant: p₃(53) = 0,527. Der Vorgängerbefund setzt den Übergang mit einer ganz anderen Messreihe auf n₅₀ = 52,9. Das Instrument reproduziert die Konstante, ohne dass sie irgendwo eingebaut wäre.

Was die Zündprobe nicht erklärt

Während die Zündwahrscheinlichkeit von 90 % auf praktisch null fällt, bleibt die Härtekorrelation flach und wächst danach weiter: −0,172 / −0,237 / −0,232 / −0,293 bei n = 100 / 150 / 200 / 250, also +0,072 je hundert Variablen. Der Breite-3-Abschluss ist bei n = 200 tot, der frust4-Effekt auf die Härte ist es nicht. Die Herleitung, die frust4 überhaupt erst auf die Tagesordnung gebracht hat, erklärt die Zündung — sie erklärt nicht, was frust4 bei der Arbeitsgrösse dieses Projekts tut.

06

Die Schwellen-Gegenprobe — und sie entscheidet

Der schärfste Einwand gegen jede Härtegrösse: sie verschiebt bloss α_c, und dann sitzt die Instanz tiefer in der unerfüllbaren Phase — und tief drin ist leicht zu widerlegen. Damit frust4 diese Prüfung bestehen kann, muss es als Stellschraube verfügbar sein. Es ist keine, also wird verworfen und neu gezogen, bis frust4 in einem vorgegebenen z-Fenster liegt. Das ist eine Bedingung, keine Impfung: frust4 ist eichinvariant, eine Bedingung darauf kann gar keine Belegung bevorzugen — anders als die Unwucht, die sich nur durch teilweises Planting erzeugen lässt.

n = 150, je 900 Instanzenz(frust4) frust4 von paare2 ≈ 165α_c
tiefes Drittel−3,2861,44,3513
ohne Auswahl−0,0182,44,2818
hohes Drittel+3,26103,34,2244

Die Schwelle wandert wirklich, um −0,127 über einen Hebel von 6,5 Standardabweichungen — rund ein Drittel der Wucht der Gradstreuung, die um 0,347 verschiebt. Also wird jede Gruppe bei ihrem eigenen α_c plus festem Abstand neu gemessen, je 120 Instanzen. Die UNSAT-Anteile stimmen paarweise überein: die Gruppen sitzen wirklich an derselben Stelle des Phasendiagramms.

Faktor „schwer / leicht" bei gleichem Abstand zur eigenen Schwelle 16× Gerüstachse · Σ grad² GRADSTREUUNG.md §7 α_c+0,25 Gerüstachse · Σ grad², α_c+0,25: Faktor 15.0015.00× α_c+0,50 Gerüstachse · Σ grad², α_c+0,50: Faktor 11.1011.10× α_c+0,75 Gerüstachse · Σ grad², α_c+0,75: Faktor 6.506.50× Vorzeichen · frust4 diese Arbeit, §7.3 α_c+0,25 Vorzeichen · frust4, α_c+0,25: Faktor 1.211.21× α_c+0,50 Vorzeichen · frust4, α_c+0,50: Faktor 1.191.19× α_c+0,75 Vorzeichen · frust4, α_c+0,75: Faktor 1.281.28× Vorzeichen · Unwucht unwucht.rs α_c+0,25 Vorzeichen · Unwucht, α_c+0,25: Faktor 1.241.24× α_c+0,50 Vorzeichen · Unwucht, α_c+0,50: Faktor 1.091.09× α_c+0,75 Vorzeichen · Unwucht, α_c+0,75: Faktor 1.031.03×
Logarithmische Achse. Die drei Balken je Familie sind die Abstände α_c + 0,25 / 0,50 / 0,75. Die gestrichelte Linie bei 1× ist „kein Effekt". Die Gradstreuung behält neben der Schwellenverschiebung einen Faktor 15; die Vorzeichenachse behält 1,2.

Der Höhe nach landet frust4 bei der Unwucht — der Form nach nicht. Die Unwucht zerfällt mit wachsendem Abstand (1,24 → 1,09 → 1,03), frust4 nicht (1,21 → 1,19 → 1,28). Bei Cohens d von 0,58 / 0,55 / 0,76 und N = 110 bis 120 je Gruppe ist das kein Rauschen (t = 4,3 bis 5,9).

Wieviel davon ist Schwelle? Die Zerlegung ohne Modell

Der Scan liefert beide Gruppen auch bei gleichem α, nicht nur bei gleichem Schwellenabstand. Die Differenz der beiden Vergleiche ist genau das, was die Schwellenverschiebung einbringt — ohne Extrapolation, ohne Steigungsschätzung, ohne Modell.

αN tiefN hochlog₂K tief log₂K hochDifferenzFaktor
4,3586114 11,6411,07 +0,571,48
4,50121141 11,3410,75 +0,601,51
4,65141149 10,9910,47 +0,521,44
Verschiebung α_c gesamt Rest Schwelle Rest n=100 −0,173 ± 0,016 0,492 Bit 0,256 Bit 48 % 52 % n=150 −0,127 ± 0,014 0,564 Bit 0,294 Bit 48 % 52 % n=250 −0,067 ± 0,011 0,660 Bit 0,480 Bit 27 % 73 % auf dem richtigen Massstab — die Härte wächst mit n exponentiell: Rest relativ zur Härte 3,1 % 2,8 % 3,1 % konstant Schwelle relativ 2,8 % 2,5 % 1,2 % halbiert sich

Das ist die Korrektur an der naheliegenden Lesart. frust4 wirkt nicht überwiegend über die Schwelle. Der Rest ist ein konstanter relativer Effekt von rund 3 % der Härte über n = 100 bis 250, während der Schwellenanteil sich halbiert. Der Split wandert von 48/52 auf 27/73, weil die Schwelle verschwindet — nicht weil der Rest wächst. Bei der Unwucht zerfällt der Rest dagegen auf 1,03 und der Schwellenanteil geht gegen 100 %.

Ein Vorbehalt, der zu dieser Gegenüberstellung gehört. Die drei Zahlenreihen sind mit verschiedenen Hebeln erzeugt: die Gradstreuung über die Familien σ = 0 gegen σ = 5,5, die Unwucht über den Impfgrad p, frust4 über eine Verwerfungsziehung auf ±3,3 σ. Vergleichbar ist deshalb die Form — zerfällt der Rest mit dem Abstand oder nicht —, nicht die absolute Höhe der Faktoren.

07b

Die andere Hälfte von G2 — die Wege

Die Leiter des Auftrags ordnet Kreise. Das ist nicht der ganze Raum, den die Eichbedingung zulässt: sie verlangt geraden Grad nur an den Variablenknoten. Hat ein Träger auch an jedem Klauselknoten geraden Grad, ist er ein Kreis — sonst hat er eine gerade Zahl ungerader Klauselknoten, und der Fall zwei ist ein Weg im Inzidenzgraphen.

Genau die zählt Ak: (Ak)[c][c′] summiert die Wege der Länge k mit Grad 2 an jeder Zwischenklausel und Grad 1 an den Enden. Das kanonische Aggregat ist deshalb pfad(k) = 𝟙ᵀ·A^k·𝟙.

Satz V6
pfad(1) = unwucht − 3m
unwucht = ‖Sᵀ𝟙‖² = 𝟙ᵀ·S·Sᵀ·𝟙 = 𝟙ᵀ(A + 3I)𝟙 nach V1.

Das ist G4 in neuer Schreibweise, und es ordnet die Unwucht endgültig ein: sie ist der Anfang des Wegzweigs, kein Sonderfall. An den Daten geprüft: max |pfad(1) − (unwucht − 3m)| = 0 über alle 4 800 Instanzen.

Warum die Momente und nicht der Haupteigenvektor

Naheliegender wäre gewesen, G4 und V2 direkt gegeneinander zu halten: ⟨𝟙, u₁⟩², der Überlapp der gleichmässigen Gewichtung mit der besten. Das ist eine Eichinvariante — und keine messbare Grösse. Die Spektrallücke μ₁ − μ₂ liegt im ersten Perzentil bei 0,105 und im Minimum bei 0,023; bei fast entartetem μ₁ dreht sich u₁ frei im entarteten Unterraum. Die Eichprobe hat es an der dritten Stelle gefangen, und die Grösse ist gestrichen worden.

Die Pfadsummen tragen dieselbe Information robust. Mit w_i = ⟨𝟙, u_i⟩² und Σ w_i = m ist pfad(k)/m = E[λ^k] unter der 𝟙-gewichteten Spektraldichte von A — die Unwucht ist ihr Mittel, alles Weitere sind höhere Momente. Momente sind Polynome in A und gegen Entartungen unempfindlich.

UNSAT: leer, wie vorhergesagt

Die längeren Wege sind die Unwucht in gestreckter Form — r zu ihr fällt von +0,893 bei k = 2 auf +0,559 bei k = 6, die Korrelation zur Härte bleicht mit. Ausserhalb der Stichprobe bringen alle fünf zusammen +0,0002 und +0,0078 über unwucht + frust4 hinaus. Damit sind beide Zweige der Klassifikation gemessen, gleich tief, und beide auf der UNSAT-Seite leer.

SAT: und hier steht etwas

SAT, R² der Innenvarianz, ausserhalb der Stichprobek A → BB → A
nur unwucht (= pfad(1), das Mittel)1 0,04000,0630
nur pfad(2)1 0,00320,0212
unwucht + Varianz der Dichte 20,08020,0879
unwucht + Varianz + Schiefe3 0,08190,1010
Placebo: unwucht + frust4 + 5 Zufallsspalten 70,03290,0554

Die Vorzeichenachse hat eine dritte Richtung, und sie lebt nur auf der SAT-Seite. Die Unwucht ist das Mittel der 𝟙-gewichteten Spektraldichte; ihre Varianz ist neu und unabhängig — Teilkorrelation +0,167 und +0,208 an zwei Saatbereichen — und verdoppelt die Vorhersage ausserhalb der Stichprobe. Der Placebo entscheidet: fünf Spalten Rauschen machen sie schlechter, fünf Pfadsummen besser. Keine Freiheitsgrade, Signal.

Zur Einordnung: der Deckel auf der SAT-Seite liegt wegen des Eigenrauschens bei r² ≤ 0,303 / 0,388. Davon erreichte die Unwucht allein 13 bis 16 %, mit der Varianz sind es 23 bis 28 %. Auf der UNSAT-Seite bringt dieselbe Grösse hier nichts (0,1216 → 0,1227) — und genau das ist erklärungs- bedürftig. Der nächste Abschnitt klärt es.

Wirkt die Varianz nur über die Schwelle?

Die Gegenprobe ist hier schwieriger als bei frust4, weil r(unwucht, Varianz) = +0,898: ein Verwerfungsziehen auf die Varianz allein zöge das Mittel mit, und das ist nachweislich reine Schwelle. Der Hebel muss die Varianz bei festgehaltener Unwucht bewegen — je Gerüst eine Eichstichprobe von 4 000 Signaturen, darin die Regression pfad(2) ~ unwucht, dann verwerfen auf den Rest. Erreicht: 3,65 σ Varianzhebel bei 0,19 σ Unterschied in der Unwucht.

Gemeinsame logistische Regression, unsat ~ α + unwucht + Varianz, 2 700 Instanzen dα_c / d(Varianz) = −0,150 je σ (bei fester Unwucht, t = 18,3) dα_c / d(unwucht) = +0,187 je σ (bei fester Varianz, t = 19,6) dα_c / d(frust4) = −0,016 je σ

Erstens: ja, und zwar stark — fast so stark wie die Unwucht selbst, neunmal stärker als frust4, und mit umgekehrtem Vorzeichen zur Unwucht, mit der sie zu +0,90 korreliert.

Zweitens: aber nicht nur. Jede Gruppe bei ihrem eigenen α_c, je 250 Instanzen, beide Seiten der Schwelle:

AbstandSeiteNlog₂K tief log₂K hochDifferenzt
α_c − 0,40SAT250/247 7,648,07 −0,425−2,7
α_c − 0,25SAT241/234 8,409,17 −0,769−4,6
α_c − 0,10SAT189/177 9,399,84 −0,450−2,7
α_c + 0,25UNSAT229/231 10,7111,15 −0,438−9,1
α_c + 0,50UNSAT248/249 10,2210,65 −0,430−10,6

Der Vorzeichentest entscheidet. Eine Schwellengrösse wechselt zwischen den Seiten das Vorzeichen — tiefer im UNSAT ist leichter, tiefer im SAT ist ebenfalls leichter. Der Rest der Varianz tut das nicht: −0,548 Bit auf der SAT-Seite, −0,434 auf der UNSAT-Seite, beide Male „mehr Varianz ist schwerer", über fünf Abstände ohne Zerfall. Kein Schwellenmuster.

Und damit erklärt sich der Nullbefund oben. Bei festem α zerfällt der Gesamteffekt in:

UNSAT: Schwelle +0,512 Bit Struktur −0,434 Bit Summe +0,078 Bit SAT: Schwelle −1,384 Bit Struktur −0,548 Bit Summe −1,932 Bit

Auf der UNSAT-Seite heben sich die beiden fast genau auf, auf der SAT-Seite addieren sie sich. Die Varianz ist keine SAT-Grösse — der UNSAT-Nullbefund war eine Auslöschung, kein Fehlen.

Ein Dichte-Artefakt ist ausgeschlossen: die Gruppen sitzen bei absoluten α, die um 0,29 auseinanderliegen. Ein reiner Dichteeffekt wirkte auf den beiden Seiten entgegengesetzt — mehr Klauseln machen UNSAT leichter und SAT schwerer. Gemessen ist die tiefe Gruppe auf beiden Seiten leichter. Was offen bleibt: die logistischen Steigungen der Gruppen unterscheiden sich um 7 %, „gleicher Abstand in α" ist also nicht ganz derselbe Abstand in Einheiten der Übergangsbreite. Der Vorzeichentest hängt daran nicht.

07c

Vier ungerade Klauselknoten — die Sterne

Null ungerade Klauselknoten sind die Kreise, zwei die Wege. Vier ist etwas Drittes, und die Form folgt aus der Eichbedingung: weil jede Variable geraden Grad braucht, kann ein Blatt des Trägers nur ein Klauselknoten sein — vier ungerade heisst also ein Klauselknoten mit drei oder vier Ästen.

mit x = A·𝟙, also x_c = Σ_{c′} A[c][c′] : Σ_c x_c^k = Summe über alle Sterne mit k Ästen am Zentrum c ungerade Klauselknoten = k + (k mod 2) k = 1, 2 → 2 ungerade die Wege: Σx = pfad(1), Σx² = pfad(2) k = 3, 4 → 4 ungerade DIESE STUFE k = 5, 6 → 6 ungerade die nächste

Die ersten beiden sind Identitäten und laufen als Probe mit — an allen 4 800 Instanzen mit max |Δ| = 0. Ab k = 3 ist es neu, und nicht bloss formal: Σ_c x_c³ ist nicht 𝟙ᵀA³𝟙 (an einem Beispiel −2 074 gegen 17 360). Der Stern verzweigt an einer Klausel, der Weg läuft durch sie hindurch.

Die rohen Momente sind die Wege in anderer Schreibweise — für eine glockenförmige Verteilung ist m₃ ≈ 3μσ² + μ³, und gemessen ist r(Σx⁴, Varianz) = +0,95. Das Neue steckt in der Form, also in den standardisierten Momenten.

Modell (UNSAT, R² der Innenvarianz)kA → B B → A
unwucht + frust4 + Varianz (die Wege)3 0,12270,1313
+ Schiefe und Wölbung von A𝟙5 0,12630,1370
+ alle sechs Sternmomente 90,13230,1455
+ nur die Schiefe von A²𝟙4 0,13170,1454
Placebo: + 6 Zufallsspalten9 0,12000,1282

Nicht leer, aber klein. +0,010 und +0,014 über die Wege hinaus — ein Zehntel dessen, was Wege und Kreise zusammen tragen. Der Placebo bestätigt, dass es Signal ist. Und praktisch alles davon steckt in einer Grösse: der Schiefe von A²𝟙. Auf der SAT-Seite: +0,001, also nichts.

Der Schwellentest zum Nulltarif

Die Gegenproben haben je einen eigenen Messaufbau gekostet. Es geht billiger: wer α_c verschiebt, muss bei festem Gerüst und festem α die Erfüllbarkeit vorhersagen. Die Kernmessung hat 4 800 solche Instanzen, je zur Hälfte SAT und UNSAT — der Test kostet nichts und misst alle Grössen auf einmal.

GrösseGradr(·, unsat) roh bei fester UnwuchtDeutung
unwucht2−0,432 / −0,419 die Schwellengrösse selbst
Varianz4−0,282 / −0,240 +0,267 / +0,320stark Schwelle
pfad(3)6−0,237 / −0,194 +0,219 / +0,267stark Schwelle
frust44+0,106 / +0,062 +0,120 / +0,065schwach Schwelle
Schiefe (A²𝟙)12 −0,024 / −0,034+0,004 / −0,011 keine Schwellengrösse
μ_max(M)alle−0,005 / +0,010 −0,017 / −0,003keine Schwellengrösse

Der Test bestätigt beide teuren Gegenproben unabhängig — das Vorzeichen der Varianz kehrt sich bei festgehaltener Unwucht um (−0,28 roh, +0,29 partiell), passend zu dα_c/d(Varianz) = −0,150, und frust4 landet neunmal schwächer, genau wie dort gemessen.

Und er entscheidet über die Sterne. Die Schiefe von A²𝟙 sagt die Erfüllbarkeit nicht vorher — ihr Beitrag von +0,010 ist der erste auf der Vorzeichenachse, der ganz jenseits der Phasenlage liegt. Klein, aber sauber.

07d

Triangulation — dieselbe Formel von vier Seiten

Ein Vorschlag von aussen: die Instanz zusätzlich mit allen Variablen negiert messen, und sie unter „alles wahr" und „alles falsch" durchgehen. Beide Teile haben eine kurze theoretische Antwort — und beide verdienen es, gezeigt statt behauptet zu werden. 280 Instanzen, vier Ansichten.

„Alle Variablen negiert" ist die Eichung g ≡ −1 und damit kein neuer Messpunkt, sondern derselbe Punkt mit anderem Namen. Gemessen: unwucht, frust4, tr(M³), gegen3 und Überschuss mit max |Δ| = 0 über alle vier Ansichten, Erfüllbarkeitsurteil in 280 von 280 Instanzen gleich.

„Alles wahr" zählt die rein negativen Klauseln — ein Träger mit Grad 1 an jeder Variablen, nach der Eichbedingung also keine Invariante:

Ansichtrein negativrein positiv Δ log₂K, UNSATSAT
Original106,9106,2
alle negiert (g ≡ −1)106,2106,9 +0,010 ± 0,015−0,164 ± 0,176
zufällige Eichung106,4107,2 +0,014 ± 0,014−0,030 ± 0,163
Mehrheitseichung 50,8194,3 +0,033 ± 0,013−0,060 ± 0,164

Unter g ≡ −1 vertauschen sich die beiden Zahlen exakt, in 280 von 280 Instanzen. Unter der Mehrheitseichung kippen sie auf 51 gegen 194, während sich an der Formel nichts ändert.

Ein Nebenbefund, der jede Zahl dieses Berichts stützt. Die Vermutung lag nahe, die Mehrheitseichung müsste dem Solver helfen — in ihr erfüllt „alles wahr" die meisten Klauseln, und CDCL hat eine Vorbelegungsheuristik. Sie hilft nicht: Faktor 1,02 auf der UNSAT-Seite, und zwar in die schwerere Richtung, 0,96 auf der SAT-Seite bei t = −0,4. Das Härtemass ist also nicht nur gegen zufällige, sondern auch gegen die kanonische Umbenennung neutral.

Es gibt eine Fassung des Vorschlags, die doch invariant ist, und sie ist von anderer Bauart als die ganze Leiter: erst die Eichung kanonisch festlegen, dann messen. Mit s_v = sign(pos_v − neg_v) ist σ(c,v)·s_v invariant, obwohl beide Faktoren es nicht sind — und es ist kein Charakter, weil ein Vorzeichen einer Summe darin steckt. Gemessen wird, wieviele Literale je Klausel gegen ihre Mehrheit stehen (Gleichstand mit Gewicht ½, weil jeder Tiebreak sonst willkürlich wäre).

Die Summe ist alt — r(gegensumme, unwucht) = −0,91. Neu wäre die Ballung. Ausserhalb der Stichprobe liegt das Profil zwischen Basis und Placebo, und die beiden Richtungen widersprechen sich im Vorzeichen (−0,008 gegen +0,007). Genau daran erkennt man Rauschen: echtes Signal verbessert beide, wie die Sterne es tun. Leer.

Was der Versuch trotzdem geliefert hat: die Bestätigung der Eichneutralität auch unter gezielter Umbenennung — und eine Invariante anderer Bauart, die ebenfalls leer ist. Das engt den Raum weiter ein, in dem die restlichen 85 % noch sitzen können.

08

Die Leiter, abgegangen

Dank Satz V1 liess sich die ganze Leiter in einem Durchgang messen statt in vieren. Verbundene Träger vor unverbundenen, kurze vor langen — die Ordnung, die der Auftrag selbst vorgibt.

  1. 1a
    Paar mit einer gemeinsamen Variablen — frust1
    Grad 2 · r = −0,273 / −0,290 · und es ist die Unwucht: r(frust1, unwucht) = −0,986
  2. 1b
    Vierkreis — frust4
    Grad 4 · r = −0,232 / −0,191 · Träger von tr(M²), r = −0,997 · die eine neue Richtung
  3. 1b′
    Vierkreis, nach Zusammenhang gewichtet — der Funkengraph
    r = −0,206 / −0,132 für berührende Funkenpaare, −0,104 / −0,063 für den grössten Kern · über frust4 hinaus: −0,092 / −0,031, uneinheitlich · der Zusammenhang schlägt die Zahl nicht
  4. 2
    Grad 4 an einer Variablen — unwucht4
    Mit einem Satz erschöpft: an einer Variablen kippt die Eichung alle Vorkommen zugleich, die einzige Invariante ist |pos − neg|. Höhere Grade liefern nur höhere Momente derselben Zahl.
  5. 3
    Sechskreis — frust6
    Grad 6 · r = +0,068 / +0,121 · uneinheitlich, knapp über 2 σ, kein Befund
  6. 4
    Kreise der Länge 8, 10, 12 — tr(M⁴), tr(M⁵), tr(M⁶)
    Korrelation mit frust4: −0,930, −0,874, −0,817. Es kommt nichts hinzu; es geht etwas verloren: +0,230 → +0,205 (Saat A), +0,156 → +0,130 (Saat B).
  7. 4
    Alle Ordnungen, bestes Gewicht — μ_max(M), μ_2, μ_min
    Roh +0,060 / +0,050, nach Herausnahme von unwucht und frust4 +0,013 / +0,024. Leer.
09

Der Abschlussbefund

Der Auftrag stellt einen Satz in Aussicht: ergeben die Stufen 1 bis 4 zusammen ausserhalb der Stichprobe keinen Beitrag jenseits des Rauschens, dann ist die Härte eine Funktion hohen Grades der Signatur, und keine lokale Vorzeichengrösse kann sie je vorhersagen.

Die Voraussetzung ist nicht erfüllt. Die Leiter liefert R² = 0,131 und 0,139, weit über jedem Rauschen. Der Satz wird deshalb nicht behauptet. Was stattdessen dasteht, ist schärfer, weil es genauer ist.

unwucht ≡ −2·frust1 + const Grad 2, gleichmässig r = +0,27 / +0,29 frust4 ≡ Träger von tr(M²) Grad 4, Vierkreis r = −0,23 / −0,19 r(unwucht, frust4) = +0,055 voneinander unabhängig

Dazu kommt die Varianz der 𝟙-gewichteten Spektraldichte (07b) und, klein aber sauber jenseits der Phasenlage, die Schiefe von A²𝟙 (07c). Alles andere ist eine dieser vier in anderer Schreibweise oder leer. Die Unwucht wirkt nur über die Erfüllbarkeitsschwelle; frust4 zur Hälfte. Die Gerüstachse verschiebt die Schwelle auch — und behält daneben einen Faktor 15, frust4 behält 1,2. Der Unterschied zwischen den beiden Achsen ist also quantitativ und gross, nicht qualitativ.

Gerüstachse: 36.2 % der Streuung von log₂(Konflikte) Gerüstachse 36.2 % Vorzeichenachse: 59.2 % der Streuung von log₂(Konflikte) Vorzeichenachse 59.2 % Eigenrauschen: 4.6 % der Streuung von log₂(Konflikte) Eigenrauschen 4.6 % Die ganze Leiter fasst 8,4 % der Gesamtstreuung — 14,1 % der Vorzeichenachse 8,4 % — was die ganze Leiter fasst
Streuung von log₂(Konflikte) bei n = 200, α = 4,267, unerfüllbare Instanzen, Saatbereich A (Saat B: 37,5 / 57,6 / 4,9 %). Der helle Ausschnitt ist der Teil, den die ganze Leiter ausserhalb der Stichprobe fasst — 14,1 % der Vorzeichenachse, in Saat B 15,1 %.

Bis zu welchem Grad das gilt

Die nach Trägerlänge geordneten Vorzeicheninvarianten bis zum Fourier-Grad 12 — also das vollständige Frustrationsprofil aller Inzidenzkreise bis zur Länge 12, in Gestalt der fünf Spurmomente tr(M²)…tr(M⁶), dazu die vier Randeigenwerte — erklären bei n ≤ 250 rund ein Siebtel der Vorzeichenstreuung, und rund die Hälfte davon ist die Lage zur Erfüllbarkeitsschwelle. Der Weg über die Kreise ist gegangen.

Nicht gemessen ist die Gesamtheit der Charaktere eines Grades; ihre Zahl ist astronomisch. Gemessen ist die Ordnung, die der Auftrag vorgibt, plus zwei Umgewichtungen, die eigens gesucht wurden — und beide sind leer.

Was ein Nachfolger bräuchte

Nicht mehr Kreise und nicht mehr Gewichte. Wenn 85 % der Vorzeichenachse nicht in den Kreisen sitzen, dann sitzen sie in Trägern, die keine Kreise sind — Charaktere χ_T mit ungeradem Grad an Klauselknoten. Die Eichbedingung lässt sie ausdrücklich zu, sie betrifft nur die Variablenknoten. Ihre Zahl ist immer gerade: |T| = Σv deg(v) ist als Summe gerader Zahlen gerade, und |T| = Σc deg(c). Der Fall zwei ist frust1, und frust1 ist die Unwucht. Die nächste Stufe hat vier, und sie ist unvermessen.

Und eine Warnung dazu, aus dem eigenen Material: der naheliegende Gedanke wäre, dass gerade diese Träger auf Tseitin die Ladung sehen. Der einfachste von ihnen tut es beweisbar nicht. Ein Nachfolger, der dorthin geht, hat mit Tseitin eine Positivkontrolle, die scharf genug ist, um ihn aufzuhalten — und das ist der Grund, sie zu bauen, bevor gemessen wird.

10

Was dieser Befund nicht sagt

  • Nicht, dass die Vorzeichenachse leer ist. frust4 ist ein Treffer, an zwei Saatbereichen, ausserhalb der Stichprobe, mit dem vorhergesagten Vorzeichen und einer nachgewiesenen kausalen Kette.
  • Nicht, dass keine lokale Vorzeichengrösse je etwas vorhersagen kann. Die Voraussetzung des Satzes ist nicht erfüllt, und der Satz wird nicht behauptet.
  • Nicht, dass die gemessenen Grössen alle Charaktere ihres Grades erfassen. Ausgeschöpft ist die Ordnung, nicht der Raum.
  • Nichts über andere Solver. Härte heisst hier: Konflikte des CDCL dieses Projekts. Die Zündprobe hängt dagegen an keinem Solver — der breitenbeschränkte Abschluss ist konfluent.
  • Nichts über P gegen NP. Das ist eine Aussage über den schlimmsten Fall; zufälliges 3-SAT an der Schwelle ist dafür weder notwendig noch hinreichend.
Der Vorasymptotik-Vorbehalt, wörtlich. Alles hier ist bei n ≤ 250 gemessen. Die minimale Resolutionsbreite w* ist bei n = 55 gemessen 3 und bei n = 110 gemessen 4, während die Theorie w* = Ω(n) sagt: der asymptotische Bereich ist bei n ≈ 100 nicht erreicht. Jede Konstante in diesem Bericht ist die Beschreibung eines endlichen Bereichs, keine Schätzung einer asymptotischen Konstanten. Für den frust4-Effekt ist das nicht bloss eine Formel, sondern der Kern der Sache: der Mechanismus, den er steuert, ist bei n ≈ 53 zur Hälfte tot und bei n = 200 ganz.

Vollständiger Bericht mit allen Zahlen, Beweisen und Prüfregeln: VORZEICHEN.md. Werkzeuge: solver/src/vorzeichen_mass.rs (alle Grössen, die Eichprobe, der Jacobi-Eigenwertlöser), vorzeichen_nachrechnung.py (die unabhängige Gegenrechnung), vorzeichen_laeufe.sh (alle Messläufe in der gefahrenen Reihenfolge). Rohdaten in mess_vorzeichen/.

Code & Daten ansehen — die unabhängige Gegenrechnung
vorzeichen_nachrechnung.py — unabhängige Gegenrechnung, nicht aus dem Rust-Code übersetzt
"""
Unabhängige Nachrechnung aller Vorzeichengrössen.

Nicht aus dem Rust-Code übersetzt, sondern aus den DEFINITIONEN in
`GENESIS_VORZEICHEN.md` G2 bis G5 neu geschrieben. Ein Instrument, das
nur sich selbst bestätigt, hat nichts bestätigt.

Aufruf: vorzeichen_nachrechnung.py < ausgabe_von_vorzeichen_probe
"""
import sys, itertools
import numpy as np


def lies(text):
    z = text.strip().split("\n")
    n, m = map(int, z[0].split())
    tri, sg = [], []
    for i in range(1, m + 1):
        t = list(map(int, z[i].split()))
        tri.append(t[:3]); sg.append(t[3:])
    rest = {}
    for zeile in z[m + 1:]:
        for stueck in zeile.split()[1:]:
            k, v = stueck.split("=")
            rest[k] = float(v)
    return n, m, np.array(tri), np.array(sg), rest


def rechne(n, m, tri, sg):
    w = {}
    # --- Vorkommensliste ---
    occ = {v: [] for v in range(1, n + 1)}
    for c in range(m):
        for i in range(3):
            occ[tri[c][i]].append((c, i))

    # --- u(c,c';v) je gemeinsamer Variable, nach Ueberlappung geordnet ---
    gem = {}
    for v in range(1, n + 1):
        for (c, i), (d, j) in itertools.combinations(occ[v], 2):
            key = (min(c, d), max(c, d))
            gem.setdefault(key, []).append((v, sg[c][i] * sg[d][j]))

    p1 = [k for k, x in gem.items() if len(x) == 1]
    p2 = [k for k, x in gem.items() if len(x) == 2]
    dp = [k for k, x in gem.items() if len(x) >= 3]
    w["paare1"], w["paare2"], w["dopp"] = len(p1), len(p2), len(dp)

    # G5: Phi = u_a * u_b = -1  <=>  Resolvente der Breite 3
    w["frust1"] = sum(1 for k in p1 if gem[k][0][1] < 0)
    w["frust4"] = sum(1 for k in p2 if gem[k][0][1] * gem[k][1][1] < 0)

    # --- A = Klauselmatrix, unabhaengig ueber S S^T - 3I ---
    S = np.zeros((m, n))
    for c in range(m):
        for i in range(3):
            S[c, tri[c][i] - 1] = sg[c][i]
    A = S @ S.T - 3 * np.eye(m)
    w["spur2"] = np.trace(A @ A)
    w["spur3"] = np.trace(A @ A @ A)

    # --- Unwucht: G4 ---
    d = np.zeros(n + 1)
    for c in range(m):
        for i in range(3):
            d[tri[c][i]] += sg[c][i]
    w["unwucht"] = (d[1:] ** 2).sum()
    w["unwucht4"] = (d[1:] ** 4).sum()
    # G4 als Identitaet nachpruefen
    w["_G4"] = 3 * m + 2 * sum(u for k in gem for (_, u) in gem[k])

    # --- Sechskreise: drei Klauseln, drei VERSCHIEDENE Variablen ---
    nach = {}
    for (c, dd) in gem:
        nach.setdefault(c, set()).add(dd)
        nach.setdefault(dd, set()).add(c)
    f6, s6 = 0, 0
    for c in sorted(nach):
        for dd in sorted(x for x in nach[c] if x > c):
            for e in sorted(x for x in nach[dd] if x > dd and x in nach[c]):
                for (v1, u1) in gem[(c, dd)]:
                    for (v2, u2) in gem[(dd, e)]:
                        if v2 == v1: continue
                        for (v3, u3) in gem[(c, e)]:
                            if v3 in (v1, v2): continue
                            s6 += 1
                            if u1 * u2 * u3 < 0: f6 += 1
    w["frust6"], w["sechs"] = f6, s6

    # --- M = S^T S, Spuren und Randeigenwerte ---
    M = S.T @ S
    ev = np.linalg.eigvalsh(M)
    for k in range(2, 7):
        w[f"mspur{k}"] = (ev ** k).sum()
    w["mlam1"], w["mlam2"], w["mlam3"], w["mlamn"] = ev[-1], ev[-2], ev[-3], ev[0]
    w["sgrad2"] = sum(int((tri == v).sum()) ** 2 for v in range(1, n + 1))
    w["dreiecke"] = sum(1 for c in sorted(nach) for dd in nach[c] if dd > c
                        for e in nach[dd] if e > dd and e in nach[c])
    return w


if __name__ == "__main__":
    n, m, tri, sg, rust = lies(sys.stdin.read())
    py = rechne(n, m, tri, sg)
    print(f"  n = {n}, m = {m}\n")
    print(f"  {'Grösse':<12} {'Rust':>20} {'unabhängig':>20}  {'Δ':>10}")
    print(f"  {'-'*12} {'-'*20} {'-'*20}  {'-'*10}")
    schlecht = 0
    for k in ["paare1","paare2","dopp","dreiecke","sechs","sgrad2","frust1","frust4",
              "frust6","unwucht","unwucht4","spur2","spur3",
              "mspur2","mspur3","mspur4","mspur5","mspur6","mlam1","mlam2","mlam3","mlamn"]:
        if k not in rust: continue
        a, b = rust[k], py[k]
        dd = abs(a - b)
        ok = dd <= 1e-6 * (1 + abs(b))
        schlecht += not ok
        print(f"  {k:<12} {a:>20.6f} {b:>20.6f}  {dd:>10.2e} {'' if ok else '  <-- ABWEICHUNG'}")
    print(f"\n  G4-Identität  Σ(pos−neg)² = 3m + 2·Σu :  {py['unwucht']:.0f} = {py['_G4']:.0f}   "
          f"{'stimmt' if py['unwucht']==py['_G4'] else 'STIMMT NICHT'}")
    v = rust["paare1"]*2 + 8*(rust["paare2"] - rust["frust4"])
    print(f"  tr(A²)-Identität  2·p1 + 8·(p2−frust4) :  {v:.0f} = {rust['spur2']:.0f}   "
          f"{'stimmt' if abs(v-rust['spur2'])<1e-6 else 'STIMMT NICHT (dopp>0?)'}")
    print(f"\n  {'ALLE GRÖSSEN STIMMEN' if schlecht==0 else str(schlecht)+' ABWEICHUNGEN'}")
    sys.exit(1 if schlecht else 0)
mess_vorzeichen/abst100_hoch_d0.50.csv — eine der Messreihen (120 Instanzen, n=100)
n,alpha,zmin,zmax,instanz,paare2,frust4,z,unwucht,mlam1,sat,unsat,konflikte,zieh
100,4.7101,3,10,0,189,118,3.4187,1325,29.879079,0,1,258,67
100,4.7101,3,10,1,205,125,3.1429,1365,31.310069,0,1,288,365
100,4.7101,3,10,2,202,123,3.0958,1335,28.855501,0,1,278,1033
100,4.7101,3,10,3,188,115,3.0632,1529,30.375909,0,1,310,71
100,4.7101,3,10,4,207,126,3.1277,1039,30.940358,0,1,140,404
100,4.7101,3,10,5,216,139,4.2186,1241,29.079203,0,1,200,1000
100,4.7101,3,10,6,205,124,3.0033,1431,31.227336,0,1,261,1043
100,4.7101,3,10,7,213,131,3.3574,1361,29.500513,0,1,316,795
100,4.7101,3,10,8,179,110,3.0645,1579,29.717885,0,1,266,2589
100,4.7101,3,10,9,182,112,3.1132,1555,28.511420,0,1,384,1749
100,4.7101,3,10,10,196,121,3.2857,1499,28.143298,0,1,240,253
100,4.7101,3,10,11,191,120,3.5455,1375,29.723463,0,1,227,31
100,4.7101,3,10,12,180,112,3.2796,1207,29.694634,0,1,155,321
100,4.7101,3,10,13,209,128,3.2511,1525,30.644793,0,1,227,477
100,4.7101,3,10,14,220,133,3.1013,1553,30.562751,0,1,384,354
100,4.7101,3,10,15,219,137,3.7166,1747,28.406864,1,0,117,186
100,4.7101,3,10,16,204,127,3.5007,1455,28.610178,0,1,309,3385
100,4.7101,3,10,17,217,133,3.3263,1277,30.158252,0,1,281,349
100,4.7101,3,10,18,194,119,3.1590,1347,32.063699,0,1,297,751
100,4.7101,3,10,19,193,118,3.0952,1291,30.136241,0,1,238,319
100,4.7101,3,10,20,199,125,3.6153,1801,29.205677,1,0,169,146
100,4.7101,3,10,21,194,119,3.1590,1363,29.488920,0,1,267,135
100,4.7101,3,10,22,192,119,3.3198,1451,29.955704,0,1,413,1183
100,4.7101,3,10,23,204,124,3.0806,1695,30.276824,0,1,289,662
100,4.7101,3,10,24,195,119,3.0793,1343,27.607886,0,1,268,323
100,4.7101,3,10,25,217,131,3.0548,1283,29.946869,0,1,262,797
100,4.7101,3,10,26,206,127,3.3443,1613,30.655733,0,1,212,482
100,4.7101,3,10,27,197,120,3.0636,1353,30.187130,0,1,312,566
100,4.7101,3,10,28,202,126,3.5180,1161,29.635141,0,1,323,872
100,4.7101,3,10,29,200,122,3.1113,1201,29.436609,0,1,329,664
100,4.7101,3,10,30,201,124,3.3151,1465,29.395377,0,1,420,465
100,4.7101,3,10,31,212,128,3.0219,1831,29.830213,0,1,153,872
100,4.7101,3,10,32,196,119,3.0000,1303,30.604671,0,1,174,484
100,4.7101,3,10,33,216,137,3.9464,1599,32.286548,0,1,200,2282
100,4.7101,3,10,34,186,117,3.5195,1255,28.689172,0,1,243,2407
100,4.7101,3,10,35,179,112,3.3635,1565,30.381379,0,1,341,1063
100,4.7101,3,10,36,225,135,3.0000,1913,29.997976,0,1,177,1884
100,4.7101,3,10,37,209,130,3.5277,1341,28.658956,0,1,227,1719
100,4.7101,3,10,38,160,103,3.6366,1337,29.265701,0,1,245,87
100,4.7101,3,10,39,187,117,3.4370,1329,29.592564,0,1,267,871
100,4.7101,3,10,40,189,116,3.1278,1121,31.485369,0,1,260,282
100,4.7101,3,10,41,197,121,3.2061,1185,29.876202,0,1,309,1465
100,4.7101,3,10,42,201,123,3.1741,1681,27.079504,0,1,219,1221
100,4.7101,3,10,43,214,133,3.5546,1007,31.970780,0,1,206,1298
100,4.7101,3,10,44,210,129,3.3123,1421,28.938768,0,1,343,150
100,4.7101,3,10,45,206,127,3.3443,1511,27.442608,0,1,398,18
100,4.7101,3,10,46,197,120,3.0636,1629,30.274234,0,1,271,305
100,4.7101,3,10,47,192,121,3.6084,1221,28.347938,0,1,337,435
100,4.7101,3,10,48,205,124,3.0033,1485,29.762251,0,1,286,1378
100,4.7101,3,10,49,204,125,3.2206,1171,29.519099,0,1,340,1799
100,4.7101,3,10,50,219,132,3.0408,1589,29.581442,0,1,292,1936
100,4.7101,3,10,51,193,123,3.8150,1367,29.332066,0,1,322,681
100,4.7101,3,10,52,192,117,3.0311,1521,30.165658,0,1,271,3325
100,4.7101,3,10,53,197,121,3.2061,1553,30.093858,0,1,198,501
100,4.7101,3,10,54,227,138,3.2522,1279,29.730625,0,1,241,291
100,4.7101,3,10,55,191,118,3.2561,1535,29.206371,0,1,485,14
100,4.7101,3,10,56,205,130,3.8414,1657,28.803022,0,1,230,29
100,4.7101,3,10,57,179,113,3.5129,1279,34.710602,0,1,209,971
100,4.7101,3,10,58,210,127,3.0363,1445,30.439699,0,1,292,231
100,4.7101,3,10,59,195,121,3.3657,1265,28.201608,0,1,251,298
100,4.7101,3,10,60,211,136,4.1994,1769,28.081570,0,1,291,1351
100,4.7101,3,10,61,176,108,3.0151,1515,27.981539,0,1,331,215
100,4.7101,3,10,62,207,126,3.1277,1945,30.050375,0,1,249,1033
100,4.7101,3,10,63,210,129,3.3123,1533,30.604209,0,1,176,477
100,4.7101,3,10,64,219,135,3.4463,1665,29.098509,0,1,356,210
100,4.7101,3,10,65,191,117,3.1114,1543,29.765750,0,1,369,642
100,4.7101,3,10,66,234,140,3.0071,2049,29.034700,0,1,261,859
100,4.7101,3,10,67,196,120,3.1429,1255,28.682581,0,1,306,702
100,4.7101,3,10,68,210,128,3.1743,1419,28.976323,0,1,283,5421
100,4.7101,3,10,69,215,132,3.3418,1065,30.053209,0,1,265,482
100,4.7101,3,10,70,206,125,3.0656,1555,28.716996,0,1,386,242
100,4.7101,3,10,71,196,119,3.0000,1615,28.844573,0,1,397,233
100,4.7101,3,10,72,207,128,3.4057,1441,29.222615,0,1,134,337
100,4.7101,3,10,73,197,122,3.3486,1567,28.759932,0,1,337,63
100,4.7101,3,10,74,204,124,3.0806,1307,29.809344,0,1,382,95
100,4.7101,3,10,75,195,121,3.3657,1247,31.599401,0,1,268,2457
100,4.7101,3,10,76,183,112,3.0308,1189,28.747057,0,1,309,811
100,4.7101,3,10,77,212,129,3.1593,1231,31.017151,0,1,292,25
100,4.7101,3,10,78,177,109,3.0817,1351,30.883345,0,1,344,1078
100,4.7101,3,10,79,181,113,3.3448,1113,28.337614,0,1,222,364
100,4.7101,3,10,80,191,117,3.1114,1193,30.607281,0,1,231,635
100,4.7101,3,10,81,161,102,3.3889,1131,28.728226,0,1,335,1000
100,4.7101,3,10,82,205,125,3.1429,1265,29.554607,0,1,267,1075
100,4.7101,3,10,83,194,118,3.0154,1313,31.041071,0,1,221,284
100,4.7101,3,10,84,213,132,3.4945,1887,31.464551,0,1,208,1504
100,4.7101,3,10,85,186,114,3.0796,1321,29.251681,0,1,334,866
100,4.7101,3,10,86,191,118,3.2561,1671,27.906862,0,1,430,346
100,4.7101,3,10,87,197,120,3.0636,1047,27.947076,0,1,216,345
100,4.7101,3,10,88,173,107,3.1172,1333,29.732029,0,1,314,356
100,4.7101,3,10,89,192,117,3.0311,1413,28.054663,0,1,347,810
100,4.7101,3,10,90,202,126,3.5180,1281,28.341598,0,1,413,1307
100,4.7101,3,10,91,210,128,3.1743,1185,28.259972,0,1,268,1595
100,4.7101,3,10,92,188,117,3.3549,1031,28.901816,0,1,251,1162
100,4.7101,3,10,93,193,119,3.2392,1355,27.616181,0,1,361,2478
100,4.7101,3,10,94,187,116,3.2907,1549,30.625190,0,1,168,27
100,4.7101,3,10,95,192,117,3.0311,1243,29.291977,0,1,238,153
100,4.7101,3,10,96,198,121,3.1269,1639,28.266273,0,1,390,3856
100,4.7101,3,10,97,216,131,3.1299,1563,29.292993,0,1,320,1886
100,4.7101,3,10,98,187,117,3.4370,1267,28.675907,0,1,271,1193
100,4.7101,3,10,99,180,111,3.1305,1109,28.536644,0,1,227,1827
100,4.7101,3,10,100,189,116,3.1278,1577,29.659526,0,1,239,662
100,4.7101,3,10,101,208,128,3.3282,1631,29.989855,0,1,273,1069
100,4.7101,3,10,102,184,114,3.2437,1663,27.989117,0,1,321,603
100,4.7101,3,10,103,236,142,3.1245,1209,31.612255,0,1,230,50
100,4.7101,3,10,104,203,125,3.2988,1485,28.527351,0,1,309,348
100,4.7101,3,10,105,203,124,3.1584,1293,31.157074,0,1,294,52
100,4.7101,3,10,106,191,118,3.2561,1447,30.059268,0,1,227,271
100,4.7101,3,10,107,183,114,3.3265,1413,27.905446,0,1,403,114
100,4.7101,3,10,108,191,117,3.1114,1519,28.599308,0,1,404,238
100,4.7101,3,10,109,186,115,3.2262,1123,31.330567,0,1,298,1802
100,4.7101,3,10,110,194,121,3.4462,1517,29.328673,0,1,242,87
100,4.7101,3,10,111,216,134,3.5382,1205,27.983312,0,1,331,1114
100,4.7101,3,10,112,214,130,3.1445,1565,29.072503,0,1,344,796
100,4.7101,3,10,113,227,137,3.1195,1641,28.594489,0,1,339,1899
100,4.7101,3,10,114,174,107,3.0324,1249,28.263816,0,1,467,443
100,4.7101,3,10,115,213,130,3.2204,1405,31.273621,0,1,198,554
100,4.7101,3,10,116,198,126,3.8376,1157,30.124376,0,1,177,128
100,4.7101,3,10,117,197,123,3.4911,1471,28.664365,0,1,268,891
100,4.7101,3,10,118,218,133,3.2510,1585,28.589807,0,1,295,1124
100,4.7101,3,10,119,185,114,3.1614,1457,30.900984,0,1,209,1311

Rohdaten in mess_vorzeichen/ (viele weitere CSV je Abstand/Richtung), Werkzeug solver/src/vorzeichen_mass.rs (932 Zeilen — alle Größen, Eichprobe, Jacobi-Eigenwertlöser). Die Gegenrechnung hier ist bewusst unabhängig aus den Definitionen in GENESIS_VORZEICHEN.md neu geschrieben: „ein Instrument, das nur sich selbst bestätigt, hat nichts bestätigt.

Ausführung des Auftrags in GENESIS_VORZEICHEN.md, 20. August 2026. Kein Lauf ist ins Konfliktbudget gelaufen; keine Kappe der breitenbeschränkten Sättigung hat gefeuert.