fullseye

Allgemeine Algorithmen implementierbar machen — algo-c Kompatibilitäts-Roadmap

日本語 · English · 简体中文 · 繁體中文 · 한국어 · Deutsch

Nutzerwunsch (2026-08-16): Wie bei https://github.com/okumuralab/algo-c (Haruhiko Okumura, vollständiger Quellcode zu „[Revidierte Neuauflage] Standard-Algorithmen-Lexikon in der Sprache C”) sollen auch allgemeine Algorithmen in Fullseye implementiert werden können.

Ehrliche Einschätzung des Ist-Zustands: Fullseye ist derzeit eine Bild-Algorithmus-Design-KI (op-Registry = sort von image/region/feature/contour/volume, Evolution + Holdout-Gate + Python→C-Codegen). Allgemeine Algorithmen (Sortieren/Suchen/Graphen/Zahlentheorie/Kryptographie/Kompression) passen nicht auf das Bild-sort, daher ist eine Erweiterung von Sprache, Typen und Codegen nötig. Das ist Arbeit über mehrere Sessions. Dieses Dokument ist der verbindliche Plan dafür (das Grunddokument, das die nächste Session mit vollem Kontext ausführt).

Kategorien von algo-c (Buch-TOC · Implementierungs-Zielkarte)

※ Als verbindliche, vollständige Abdeckung gilt das /src des Repos.

Bereich Repräsentative Algorithmen Aufnahme in Fullseye
Numerik Gleichungen (Bisektion/Newton), numerische Integration (Simpson/Romberg), lineare Gleichungssysteme (Gauss/LU), Interpolation (Spline), FFT vorhandenes dsp (FFT) + neue numeric-op-Familie
Zufallszahlen · Statistik Mersenne Twister, Verteilungen, Kennzahlen neue rng/stat-op (deterministischer Seed)
Sortieren quick/heap/merge/shell/radix neue array-Sortierung + seq-Typ
Suchen Binärsuche, Hashing, BST/AVL/B-Baum neue array/map-op
Zeichenketten KMP/BM/Rabin-Karp, Editierdistanz, reguläre Ausdrücke neuer text-Typ + op
Graphen DFS/BFS, Dijkstra, Warshall-Floyd, MST, maximaler Fluss neuer graph-Typ + op
Geometrie konvexe Hülle, Streckenschnitt, Voronoi vorhandenes pcseg/Geometrie + neu geom2d
Zahlentheorie · Kryptographie Primzahlen, GGT, RSA, MD5/SHA, AES neu numtheory/crypto (zu Lehrzwecken · honest disclosure)
Datenkompression Huffman, LZ/LZW, arithmetische Codierung neue compress-op
DP/Suche 8-Damen, Rucksackproblem, DP Kontrollfluss von fscript + array

Implementierungsarchitektur (verbindliche Ausrichtung)

Die bestehenden Ressourcen von Fullseye werden auf das Allgemeine erweitert. Der Fokus auf Bild-KI wird nicht verwässert (allgemeine op sind ein separater Tier / opt-in).

  1. Erweiterung des Typsystems: Zu den aktuellen 6+1 sort (image/region/feature/contour/match/any/volume) kommen seq (1-D-Array)/text (Zeichenkette)/graph/scalar hinzu (sort in ops.py · fslib-Typen).
  2. fscript zur Allgemeinsprache machen: if/for/while, Zuweisung und Tupel existieren bereits. Array-/String- Literale, Indizierung, Prozedur (Funktion) werden schrittweise ergänzt (der Sprachumfang war bisher bewusst eingeschränkt, daher wird der allgemeine Tier in einem separaten Profil freigeschaltet). Verbindliches Dokument = die A/B-Verzweigung in docs/FSCRIPT_DECISION.md erneut prüfen.
  3. Erweiterung der op-Registry: Jeder Algorithmus von algo-c wird als op (name/in-out-sort/params/c_stmt) registriert. Der bestehende Python→C-Codegen (engine.to_python/to_c) + difftest (honest gate: Python als Oracle, C wird gegen Diff geprüft) werden unverändert weiterverwendet → „kann als C implementiert werden” wird durch reale Messung garantiert.
  4. Honest Gate: Der C-Code von algo-c wird als Referenzimplementierung an difftest übergeben und gegen den generierten C-Code von Fullseye auf numerische/Bit-Übereinstimmung geprüft (Erweiterung des bestehenden Gates). Die Lizenz des Originalcodes (algo-c = Buchbeilage, Nutzungsbedingungen sind zu prüfen) wird respektiert, keine Abschrift, sondern Neuimplementierung aus der Spezifikation (Offenlegungspolitik).

Phasenplan (ab der nächsten Session)

Ehrliche Grenzen und Disziplin


P1-Abschlussbericht (2026-08-16, Opus5[1m]/ultracode)

Minimaler Nachweis erreicht: „Fullseye kann auch für allgemeine Algorithmen C generieren und die C-Übereinstimmung honest messen.”

Verstärkung nach der P1-Adversarial-Review (2026-08-16, [[feedback_no_solo_ai_judgment]])

Für den in dieser Session selbst geschriebenen Code wurde eine unabhängige Adversarial-Review durchgeführt (Workflow mit 4 Linsen = Algorithmus-Korrektheit / Codegen · C-Sicherheit / Gate-Gesundheit / Integration · Fokus-Sicherheit, 22 Findings). Alle Findings habe ich selbst am realen Code verifiziert (v11-Disziplin) und die echten Mängel behoben:

Weiter (ab P2)

P3-Abschlussbericht — String-op (2026-08-17, Opus5[1m]/ultracode, graph-loop-engineering)

3 String-Algorithmen dem algo-Tier hinzugefügt. Nach der Konvention „Zeichenkette = Codepoint-Folge, übertragen als float64” (Unicode-Skalare sind < 2^53, daher exakt) passt dies ohne Änderung auf das bestehende Float64-Binär-Harness (kein neuer Wire-Typ nötig). Werte werden nur auf Gleichheit verglichen (bei ganzzahligen Codes exakt) · Position/Distanz sind exakte Ganzzahlen → C-vs-Python bitgenau UND Python-vs-Oracle EXAKT (Toleranz 0).

Verstärkung nach der P3-String-Adversarial-Review (2026-08-17, [[feedback_no_solo_ai_judgment]])

Unabhängige Adversarial-Review als Workflow (4 Linsen · jedes Finding wird von einem Verifikations-Agenten am echten Code/echter Kompilierung bestätigt) = alle 3 Findings CONFIRMED (davon 2 mit demselben Grundursache aus verschiedenen Linsen berichtet). Nach eigener Verifikation alle behoben:

P2-Abschlussbericht — gauss_solve (2026-08-16, Opus5[1m]/ultracode, graph-loop-engineering)

Gauss-Elimination mit Teilpivotisierung für lineare Gleichungssysteme hinzugefügt, damit ist P2 (Numerik) abgeschlossen. Wie vom Nutzer angewiesen, wurde dies mit dem Skill graph-loop-engineering als Node im raptor-Work-Graph modelliert und von einem Tool-Treiber unbeaufsichtigt ausgeführt (Zwei-Schichten-Prinzip: die Breite läuft über das Difftest-Gate des Work-Graph, die Annahme der Adversarial-Findings sowie der Push bleiben der menschliche Checkpoint der Session).

Verstärkung nach der P2-gauss-Adversarial-Review (2026-08-16, [[feedback_no_solo_ai_judgment]])

Für den selbst geschriebenen gauss-Code wurde eine unabhängige Adversarial-Review als Workflow durchgeführt (4 Linsen = numerische Korrektheit / C-Sicherheit / Gate-Gesundheit / Integration · Abdeckung, jedes Finding vom Verifikations-Agenten real ausgeführt reproduziert). Von 5 Findings wurden 4 CONFIRMED, nach eigener Code-Verifikation alle behoben:

P1.5b-Abschlussbericht — General-Tier schreibgeschützt in Studio anzeigen (2026-08-17, Opus5[1m]/ultracode)

Anzeige des general-(algo)-Tiers im op-Browser. Um den Bild-Fokus nicht zu verwässern, sind general-op ein eigenes Berechnungsmodell für seq/scalar und daher schreibgeschützt (werden nicht in die Bild-Pipeline eingefügt).

P4-Abschlussbericht — Graph-op (2026-08-17, Opus5[1m]/ultracode, Bonus)

3 Graph-Algorithmen dem algo-Tier hinzugefügt (außerhalb der ursprünglichen Kandidaten, aber ein Bonus gemäß Nutzerwunsch „alles vorantreiben” + 7-8h Autonomie). Graphen werden in eine Eingabe-seq gepackt ([n, m, (u,v,w)*m], ungerichtet; bei dijkstra wird src vorangestellt: [n, m, src, ...]) und laufen so auf dem bestehenden Float64-Harness.

P5-Abschlussbericht — Zahlentheorie · Kompression · Lehrzweck-Hashing (2026-08-17, Opus5[1m]/ultracode, graph-loop-engineering)

5 allgemeine Algorithmen dem algo-Tier hinzugefügt, damit ist die algo-c-Roadmap (P1→P5) abgeschlossen. Ganzzahlen werden als float64 übertragen (exakt < 2^53), daher kein neuer Wire-Typ nötig. Bit-/Ganzzahl- Operationen werden auf der C-Seite als unsigned long long/unsigned int gecastet ausgeführt und dann zurück nach double konvertiert (das Ergebnis ist < 2^53, also exakt). Alle 5 op sind exakt (C==Python bitgenau UND Python==unabhängiges Oracle Toleranz 0).

Verstärkung nach der P5-Adversarial-Review (2026-08-17, [[feedback_no_solo_ai_judgment]])

Für den selbst geschriebenen P5-Code wurde eine unabhängige Adversarial-Review als Workflow durchgeführt (4 Linsen = Algorithmus-Korrektheit / C-Sicherheit-Codegen / Gate-Ehrlichkeit / Integration-Fokus, jedes Finding vom Verifikations-Agenten durch echte Kompilierung/Ausführung reproduziert, 18 Agenten). 14 Rohbefunde → 9 CONFIRMED / 5 REFUTED. Alle CONFIRMED habe ich selbst reproduziert (selbst mit ziglang kompiliert und ausgeführt) und behoben. Bemerkenswert ist der tiefgehende Fokus darauf, „ob das Gate den selbst gebauten Guard widerlegen kann”:

P6-Abschlussbericht — Computergeometrie (2026-08-17, Opus5[1m]/ultracode, 12h autonom, graph-loop-engineering)

3 geometrische Algorithmen dem algo-Tier hinzugefügt (Erweiterung nach Abschluss der algo-c-Roadmap P1→P5 = P6. Entspricht der „Geometrie = konvexe Hülle/Streckenschnitt”-Kategorie aus dem ursprünglichen TOC). Dient auch als Brücke zur Kontur-/Regionsverarbeitung im Bild-Tier. 2-D-Punkte werden in eine Eingabe-seq gepackt, mit ganzzahligen Koordinaten (jeweils [-100000, 100000]) werden alle Orientierungsentscheidungen/ Schnürsenkelsummen exakt ganzzahlig (keine Gleitkommadivision) = C bitgenau UND Python==unabhängiges Oracle Toleranz 0.

P6-Adversarial-Review (2026-08-17, [[feedback_no_solo_ai_judgment]])

2 unabhängige Adversarial-Review-Workflows parallel (jedes Finding vom Verifikations-Agenten durch echte Kompilierung/Ausführung/Stresstest reproduziert):

P7-Abschlussbericht — Streckenschnitt (2026-08-17, Opus5[1m]/ultracode, 12h autonom)

Das Geometrie-Toolkit um 1 op erweitert: segments_intersect (KIND_REDUCE) = ob sich zwei abgeschlossene Strecken [x1,y1,x2,y2,x3,y3,x4,y4] schneiden (1.0/0.0). Brücke zur Geraden-/Konturanalyse bei Bildern. Nach dem ganzzahligen Orientierungsverfahren aus CLRS 33.1 (Proper Crossing = ein Endpunkt überquert die andere Strecke exakt + 4 kollineare On-Segment-Sonderfälle). Bei ganzzahligen Koordinaten [-100000,100000] ist das Kreuzprodukt exakt (|cross| ≤ 8e10 passt in long long) = C bitgenau. Oracle = die Segmentschnitt- Berechnung von sympy.geometry (symbolische Berechnung = eine völlig andere Methode als Orientierung). Real gemessen: 8 feste Fälle korrekt + 0 Abweichungen zu sympy bei 2970 zufälligen ganzzahligen Streckenpaaren (einschließlich kollinearer Überlappung/T-Form/gemeinsamem Endpunkt/Beinahe-Treffer). Entartete (punktförmige) Strecken werden aus dem Holdout ausgeschlossen, da sympy dafür kein Segment bilden kann (die op funktioniert mit der allgemeinen Orientierungslogik, ist aber ungegatet = offengelegt). Difftest passed (Python exakt / C bitgenau / c_verified), Work-Graph-Node unbeaufsichtigt done (alle 24 algo-op sind gated).

Verstärkung nach der P7-Adversarial-Review (2026-08-17, [[feedback_no_solo_ai_judgment]])

Adversarial-Review mit 3 Linsen (vom Verifikations-Agenten durch echte Kompilierung/Ausführung reproduziert) = 1 Rohbefund → 1 CONFIRMED (MED · Gate-Ehrlichkeit). Die op selbst ist korrekt (stimmt vollständig mit sympy überein), aber der Difftest-Holdout treibt niemals die On-Segment-Sonderfälle d1/d3/d4 als alleinigen Grund für eine 1.0-Entscheidung an (ein Endpunkt liegt im Inneren der anderen Strecke, kein gemeinsamer Endpunkt), sodass ein Mutant, der diesen Zweig entfernt, das Gate besteht (keine der 50 Holdout-Entscheidungen ändert sich). Durch Eigenreproduktion bestätigt (der d3+d4-Drop-Mutant liefert passed=True · [0,0,10,0,3,0,3,5]→fälschlich 0.0). Behebung = für jeden on_seg-Zweig (d1/d2/d3/d4) wurde ein fester Holdout-Fall als alleiniger Grund hinzugefügt (Endpunkt im Inneren der anderen Strecke · 4 achsparallele + 2 diagonale Fälle) → jetzt schlägt das Entfernen jedes einzelnen Zweigs difftest fehl (d1/d2/d3/d4 alle passed=False), selbst bestätigt. Auch den bekannten-Lösung-Tests wurden 4 Endpunkt-im- Inneren-Fälle hinzugefügt. Gesamte Testsuite 4765 → 4772 passed / 0 failed (+7) · ruff clean · mypy keine neuen Fehler.

P8-Abschlussbericht — Suchen/Auswahl (2026-08-17, Opus5[1m]/ultracode, 12h autonom)

2 Such-/Auswahlalgorithmen dem algo-Tier hinzugefügt (Wechsel von Geometrie zu einer anderen Domäne, um die Tiers auszugleichen). Vergleichsbasiert für beliebige (NaN-freie) Doubles = das Ergebnis ist ein Index oder ein vorhandenes Element, daher exakt (Toleranz 0) · C bitgenau.

Verstärkung nach der P8-Adversarial-Review (2026-08-17, [[feedback_no_solo_ai_judgment]])

Adversarial-Review mit 2 Linsen (echte Kompilierung/Ausführungsverifikation) = 1 Rohbefund → 1 CONFIRMED (LOW · Korrektheit). Die Korrektheit bleibt unverändert, aber es gibt ein Performance-Problem: Quickselect von kth_smallest verwendet eine einzelne Lomuto-Pivotisierung und ist daher bei großen Eingaben mit lauter gleichen/niedriger Kardinalität O(n²) (Median-of-three schützt nicht vor Duplikaten; bei n=40000 mit lauter gleichen Werten 7,44s, sortiert/umgekehrt sortiert ist schnell). Die Tests hatten Holdout n≤30 und der Timing-Test deckte nur den sortierten Fall ab, daher unentdeckt. Der Schwester- Algorithmus quicksort verwendet bereits eine 3-Wege-Partitionierung (Dutch Flag). Behebung = kth_smallest wurde auf eine 3-Wege-Partitionierung (Dutch National Flag) umgeschrieben (Equal-Band faltet Duplikate zusammen → all-equal wird O(n) · nur Vergleiche + reihenfolgeunabhängig, sodass C==Python==sorted()[k]-Parität erhalten bleibt). Selbst reproduziert bestätigt: all-equal n=40000 von 7,44s → 0,0019s (O(n) erreicht) · Korrektheit bei 5000 Fällen 0 Abweichungen · Difftest bitgenau. Der Timing-Test wurde um sortiert/umgekehrt/all_equal/few_distinct erweitert (schützt tatsächlich vor Regression).

P9-Abschlussbericht — Statistik/Aggregation (2026-08-17, Opus5[1m]/ultracode, 12h autonom)

2 Statistik-op dem algo-Tier hinzugefügt: count_distinct (Anzahl der distinkten Werte = Ganzzahl- Count) / mode_value (Modus/häufigster Wert · bei Gleichstand gewinnt der kleinere). Vergleichsbasiert (beliebiges NaN-freies Double) · das Ergebnis ist Count oder ein vorhandenes Element, daher exakt (Toleranz 0). Beide op sortieren eine Kopie und laufen sie durch (das Ergebnis ist reihenfolgeunabhängig, daher bitgenau, selbst wenn C-qsort und Python-sorted unterschiedlich sortieren). Oracle = len(set()) / collections.Counter (unabhängige Mechanismen). ★Proaktive Härtung: Bei mode_value führte eine Mischung von ±0.0 beim Modus 0 dazu, dass C-instabiles qsort und Python-stabiles sort im Vorzeichen des Rückgabewerts divergieren konnten und Bit-Nichtübereinstimmung entstehen konnte → Kanonisierung von −0.0→+0.0 via + 0.0 (andere Werte bleiben unverändert) macht C==Python robust (dieselbe Systematik wie die Offenlegung zu vorzeichenbehafteter Null bei rle_encode). Real gemessen: 0 Abweichungen zum Oracle bei je 5000 Zufallsfällen · difftest passed (Python exakt / C bitgenau / c_verified). Alle 28 algo-op sind gated. ruff clean · mypy keine neuen Fehler.

Verstärkung nach der P9-Adversarial-Review (2026-08-17, [[feedback_no_solo_ai_judgment]])

Adversarial-Review mit 2 Linsen (echte Kompilierung/Ausführung/Mutation-Verifikation) = 1 Rohbefund → 1 CONFIRMED (MED · Gate-Sicherheit). Die Korrektheit bleibt unverändert, aber es gibt eine Gate- Abdeckungslücke: Ein Mutant, der die +0.0-Kanonisierung von mode_value entfernt, konnte vom Holdout nicht falsifiziert werden (der einzige Fall mit vorzeichenbehafteter Null [0.0,-0.0,0.0] wird in beiden Backends auf +0.0-zuletzt sortiert → auch ohne Kanonisierung Bit-Übereinstimmung). Der Kommentar behauptete eine Absicherung durch den Bit-Check, der die Kanonisierung aber nie tatsächlich auslöste. Behebung = [0.0,-0.0]·[-0.0,0.0] (bei denen -0.0 nicht am Ende der Reihe landet) wurden zum Holdout hinzugefügt (beide Reihenfolgen sorgen dafür, dass mindestens eine unabhängig von der qsort-Tie-Reihenfolge divergiert). Selbst reproduziert bestätigt: der Mutant ohne Kanonisierung schlägt difftest fehl · der aktuelle (kanonisierte) Code besteht bei den zusätzlichen Fällen bitgenau. Gesamte Testsuite 4787 → 4796 passed / 0 failed.

P10-Abschlussbericht — Zahlentheorie (Teil 2) (2026-08-17, Opus5[1m]/ultracode, 12h autonom)

2 Zahlentheorie-op hinzugefügt (aufbauend auf der Ganzzahl-Infrastruktur von P5 · gemeinsame Kategorie numtheory). Ganzzahlen werden als float64 übertragen (exakt <2^53) · im honest Bereich passen alle modularen Produkte in uint64/long long = C bitgenau UND Python==unabhängiges Oracle Toleranz 0.

Verstärkung nach der P10-Adversarial-Review (2026-08-17, [[feedback_no_solo_ai_judgment]])

Adversarial-Review mit 2 Linsen (echte Kompilierung/Ausführung/Mutation-Verifikation) = 1 Rohbefund → 1 CONFIRMED (MED · C-Sicherheit-Gate). Die op selbst ist korrekt und overflow-sicher (mit 353 feindseligen Fällen verifiziert), aber der Holdout von modular_inverse deckt den deklarierten Bereich bis 2^53 nicht ab (in-domain m erreichte nur ~1e9), sodass ein C-Mutant mit Breiten-Verengung long long→int (der den 2^53-Bereich zerstört) das Gate bitgenau besteht. Während die Schwestern-op pow_mod (base=exp=2^53 gepinnt)/gcd_seq (2^53-Guard-Grenze)/is_prime (nahe 2^32) dieselbe Mutationsart erfassen, tat modular_inverse dies nicht. Behebung = Grenzfälle bei 2^53 zum Holdout hinzugefügt ([2, 2^53−1] teilerfremd→Inverse · großes teilerfremdes Paar nahe 2^53 · [2^52, 2^53] beide gerade→−1), sodass die Bezout-Operation |q·s|~2m~2^54 durchläuft. Selbst reproduziert bestätigt: der long long→int-Mutant schlägt difftest fehl, die Baseline besteht bitgenau. Das Oracle (pow) war bereits geeignet, es musste nur der Holdout ergänzt werden. Gesamte Testsuite grün.

P11-Abschlussbericht — Bitoperationen (2026-08-17, Opus5[1m]/ultracode, 12h autonom)

2 Bitoperations-op hinzugefügt: xor_reduce (bitweises XOR aller Elemente) / popcount_total (Gesamtzahl gesetzter Bits aller Elemente = Kernighan-Verfahren). Nicht-negative Ganzzahlen werden als float64 übertragen, im Bereich [0, 2^53−1] passen alle Werte in 53 Bit (auch das XOR-Ergebnis ist < 2^53, also exakt · popcount ist eine kleine Ganzzahl) = C bitgenau UND Python==unabhängiges Oracle (functools.reduce(operator.xor) / eingebautes int.bit_count() = ein anderer Mechanismus als Kernighan) Toleranz 0. Beide op passed=True · Python exakt / C bitgenau / c_verified. 0 Abweichungen zum Oracle bei je 3000 Zufallsfällen vorab real gemessen. Fail-soft = bei negativ/nicht-ganzzahlig/≥2^53 → 0.0. Alle 32 algo-op sind gated. ruff clean (FURB161: bin().count('1').bit_count() umgestellt) · mypy keine neuen Fehler.

Ergebnis der P11-Adversarial-Review (2026-08-17, [[feedback_no_solo_ai_judgment]])

Adversarial-Review-Workflow mit 2 Linsen (Korrektheit + Gate-Sicherheit, wf_7d130631-c0f) = 0 Findings (keine Mängel). Reviewer 1 lieferte {findings:[]}, Reviewer 2 wurde während des Mutation-Testings des Gates (Implementierung absichtlich beschädigen und prüfen, ob das Gate es erkennt) durch Fenster-Kompression unterbrochen (kein Ergebnis produziert). Der Disziplin folgend wurde der abgebrochene Background-Prozess nicht wiederbelebt, stattdessen habe ich denselben Mutation-Test selbst zur Erstverifikation durchgeführt: 7 repräsentative Mutanten von xor_reduce/popcount_total (leere Initialisierung acc=1 / fälschliches OR / Off-by-one an der 2^53-Grenze / entfernte Negativ-Guard / Kernighan→Shift [popcount≠Bitlänge] / +2-Fehler / Zulassung von 2^53) gegen den Holdout ausgeführt → alle 7 Mutanten wurden vom unabhängigen Oracle erfasst (oracle_err > 0). Fazit = das P11-Gate ist falsifizierend, kein bestätigter Mangel (fed093a ist korrekt, kein Folge-Commit nötig).

P12-Abschlussbericht — Erweiterter Euklidischer Algorithmus (2026-08-17, Opus5[1m]/ultracode, 12h autonom)

1 Zahlentheorie-op hinzugefügt (aufbauend auf der Ganzzahl-Infrastruktur von P5 + der Bezout-Invariante von P10 · gemeinsame Kategorie numtheory=P5+P10+P12). extended_gcd (KIND_MAP): Eingabe [a, b] (nicht-negative Ganzzahlen ≤ 2^53) → Ausgabe [g, x, y] (exakte 3 Werte, a·x + b·y = g = gcd(a,b)), außerhalb des Bereichs fail-soft []. Ein iterativer Two-Variable-Sweep berechnet die Koeffizienten. Die Koeffizienten sind exakt (die Invariante |q·s| = |old_s − new_s| ≤ 2·max(a,b) ≤ 2^54 passt in long long), daher C == Python bitgenau. Der Bereich ist [0, 2^53] inklusive (2^53 ist exakt · auch die Koeffizienten |x|,|y| ≲ 2^52 sind in float64 exakt).

Verstärkung nach der P12-Adversarial-Review (2026-08-17, [[feedback_no_solo_ai_judgment]])

Adversarial-Review-Workflow mit 3 Linsen (Korrektheit / C-Sicherheit+Gate-Ehrlichkeit / Integration, jedes Finding vom Verifikations-Agenten durch echte Kompilierung/Ausführung als Mutation reproduziert, 5 Agenten · 125 Tool-Aufrufe) = 2 Rohbefunde (dieselbe Grundursache) → 1 CONFIRMED (MED · Gate-kann-nicht-falsifizieren). Die op selbst ist korrekt (bei 200k + allen Randfällen verifiziert · divergiert nicht vom rekursiven Oracle · kein Long-long-Overflow im gültigen Bereich), aber alle Außer-Bereich-Fälle im Difftest-Holdout betreffen nur den Operanden a ([2^53+2,3]/[2.5,7]/[-1,7]), während der einzige Fall mit fehlerhaftem b, [7,NaN], durch den Kurzschluss bei bd>=0.0 keinen der 3 b-Guard-Zweige allein antreibt → eine einseitige Regression der b-Guard (a/b sind kopiert-symmetrisch, also plausibel) besteht beide Gate-Hälften (dieselbe Gate-Abdeckungslehre wie bei P5/P7/P9/P10). Selbst reproduziert bestätigt: Entfernt man bd>=0 / bd<=2^53 / bd==int aus _PY und _C, ergibt sich jeweils passed=True (verpasst), während das symmetrische Entfernen auf der a-Seite jeweils passed=False liefert (erfasst, da die a-Randfälle im Holdout enthalten sind). Behebung = Fälle [valid_a, finite_bad_b] ([3, 2^53+2] · [7,-1] · [7,2.5]) wurden zum Holdout und zu den Fail-soft-Tests hinzugefügt → bei erneuter Messung werden alle 3 b-seitigen Entfernungen erfasst (passed=False, pydiff=inf) · die Baseline besteht bei 70 Fällen bitgenau. ★Die honest Korrektur des Verifikations- Agenten wurde übernommen (eine überzogene Behauptung des Findings wurde verworfen): Die Aussage „das Entfernen von bd<=2^53 verursacht bei b=2^62 einen Long-long-Overflow-UB in C” ist ungenau — bei b=2^62 stimmen C (long long) und Python (Bignum) bitgenau überein (kein Overflow). Der eigentliche Fehler ist ein Präzisionsverlust in der Ausgabe (die Bezout-Koeffizienten können bei > 2^53 nicht mehr exakt als float64 dargestellt werden, wodurch a·x+b·y==g verletzt wird), und genau diese Präzision wird durch die Obergrenze b<=2^53 geschützt. Der Mechanismus war falsch beschrieben, aber Mangel und Abhilfe waren korrekt = übernommen.

P13-Abschlussbericht — Nächstes Punktpaar (Divide-and-Conquer) (2026-08-17, Opus5[1m]/ultracode, 12h autonom)

Die Computergeometrie um 1 op erweitert (zweite Geometrie-Runde nach P6/P7): closest_pair (KIND_REDUCE) = die minimale quadrierte Distanz in einer Menge 2-D-Ganzzahlpunkte wird per Divide-and-Conquer (CLRS 33.4) bestimmt. Eingabe [x0,y0,x1,y1,...] (2n Werte · ganzzahlige Koordinaten [-1e5,1e5]) → Ausgabe = minimale quadrierte euklidische Distanz (ganzzahlig exakt). Nur die quadrierte Distanz (kein Sqrt), daher bleibt alles in long long/ganzzahligem float64, C==Python bitgenau. Die maximale quadrierte Distanz = (2e5)²×2 = 8e10 < 2^53 = exakt. Fail-soft = bei Punkten <2 (n<4) / ungerader Länge / nicht-ganzzahligen Koordinaten / außerhalb von [-1e5,1e5] → -1.0.

Verstärkung nach der P13-Adversarial-Review (2026-08-17, [[feedback_no_solo_ai_judgment]])

Adversarial-Review-Workflow mit 3 Linsen (Korrektheit / C-Sicherheit+Gate-Ehrlichkeit / Integration, jedes Finding vom Verifikations-Agenten durch echte Kompilierung/Ausführung als Mutation reproduziert) = alle 3 Linsen konvergieren auf dieselbe Grundursache → 1 CONFIRMED (Schweregrad: meine anfängliche Einschätzung MED / der Verifikations-Agent bewertete HIGH [Gate-Ehrlichkeitsversagen, das Gate hätte einen fehlerhaften op durchgewinkt, was schwerwiegender gewertet wurde. Honest werden beide Einschätzungen dokumentiert, der Fix ist identisch]. Die op selbst ist korrekt (bei 30k+16k feindseligen Fällen 0 Abweichungen zum Brute-Force), aber der Difftest-Holdout treibt den y-Scan im Streifen nie über den unmittelbaren Nachbarn (j==i+1) hinaus → wird der Vorwärtsdurchlauf im Streifen auf nur j==i+1 verkürzt, kann das Gate dies nicht falsifizieren (das 7-Nachbarn-Theorem besagt „höchstens 7”, nicht „1”, daher kann das nächste Paar in y-Reihenfolge nicht-benachbart sein). Selbst reproduziert bestätigt: Der Mutant mit range(i+1, min(i+2, sc)) wurde auf _PY und _C angewendet → passed=True (verpasst). Ein minimaler falsifizierender Fall wurde im Ganzzahlgitter gesucht und gefunden (z. B. [0,-6,-2,-2,4,-3,-5,3] = das nächste Paar liegt in y-Reihenfolge 2 Positionen auseinander → korrekt/ Brute-Force 20, aber nur-j==i+1 liefert 25). Behebung = 3 Fälle, bei denen das nächste Paar im Streifen y-sortiert nicht benachbart ist ([0,-6,-2,-2,4,-3,-5,3]→20 / [-4,5,-1,-3,0,-1,3,-3]→5 / [-1,-6,-1,0,-5,-4,1,-4,4,4]→8), wurden zum Holdout und zu den bekannten-Werte-Tests hinzugefügt → bei erneuter Messung wird der nur-j==i+1-Mutant erfasst (passed=False, pydiff=12) · die Baseline besteht bei 61 Fällen bitgenau · die anderen 5 Mutanten zeigen keine Regression. Zusätzlich zu den bestehenden 6 Mutanten (Streifen ausgelassen/sq ignoriert y/Koordinaten-Ober-/Untergrenze/Ganzzahligkeit/leerer Streifen) ist nun auch die Streifen-Scan-Tiefe falsifizierbar (die Gate-Abdeckungslehre aus P12 wurde auf den Geometrie-Streifen-Scan übertragen).

P14-Abschlussbericht — Optimale Präfixcode-Kosten nach Huffman (2026-08-17, Opus5[1m]/ultracode, 12h autonom)

Die Datenkompression um 1 op erweitert (zweite Kompressionsrunde nach P5 rle_encode): huffman_cost (KIND_REDUCE) = für Symbolhäufigkeiten [f0,f1,...] (nicht-negative Ganzzahlen ≤2^40) die minimalen Gesamtkosten eines optimalen Präfixcodes (Huffman) = die Summe der kombinierten Gewichte aller inneren Knoten (= Σ freq×Codelänge). ★Kernpunkt = die optimalen Kosten sind gegenüber Gleichständen invariant (die Codelänge pro Symbol kann sich durch Tie-Breaking ändern, aber die Gesamtkosten sind bei einem Häufigkeits-Multiset eindeutig), daher ist es unerheblich, in welcher Reihenfolge C und Python gleichgewichtige Elemente ziehen = die Gesamtsumme ist identisch, Bit-Übereinstimmung ergibt sich sauber. Ganzzahlen werden als long long übertragen (durch Bereichs-Guard auf < 2^54 begrenzt = kein Overflow).

Verstärkung nach der P14-Adversarial-Review (2026-08-17, [[feedback_no_solo_ai_judgment]])

Adversarial-Review-Workflow mit 3 Linsen (Korrektheit / C-Sicherheit+Gate-Ehrlichkeit / Integration, jedes Finding vom Verifikations-Agenten durch echte Mutation reproduziert) = 3 CONFIRMED (alle betreffen die Gate-Abdeckung an der Overflow-Bail-Grenze · die op selbst ist korrekt, Tie-Invarianz bereits mit 50k+4k+20k abgesichert). 0 Findings zur Korrektheit (die Behauptung der Tie-Invarianz und die Optimalität des Zwei-Warteschlangen-Verfahrens sind robust). Alle CONFIRMED betreffen die vollständige Abdeckung der „Fail-soft-Grenze bei merge-total>2^53”:

P15-Abschlussbericht — Länge der längsten aufsteigenden Teilfolge (2026-08-17, Opus5[1m]/ultracode, 12h autonom)

Suchen/Auswahl um 1 op erweitert (zweite Suchrunde nach P8 binary_search/kth_smallest · neue DP-/Patience-Sorting-Algorithmenfamilie): lis_length (KIND_REDUCE) = die Länge der längsten strikt aufsteigenden Teilfolge (LIS) einer beliebigen NaN-freien Double-Folge wird per Patience Sorting bestimmt. Nur Vergleiche (keine Arithmetik auf den Werten), daher ist die Länge für ein gegebenes Array eindeutig = C==Python bitgenau. tails[k] hält das minimale Ende einer aufsteigenden Teilfolge der Länge k+1, für jedes Element wird an Position tails[mid] < x (bisect_left · strikt) ersetzt oder das Ende erweitert (O(n log n)). Leer→0.0, gemischt mit NaN→-1.0 Fail-soft (Erkennung über x != x).

Ergebnis der P15-Adversarial-Review (2026-08-17, [[feedback_no_solo_ai_judgment]])

Adversarial-Review-Workflow mit 3 Linsen (Korrektheit / C-Sicherheit+Gate-Ehrlichkeit / Integration, Mutation-Verifikation) = 0 Findings (keine Linse hatte Beanstandungen). Der strikte Vergleich beim Patience Sorting, die NaN-Guard, die Sicherheit des tails-Puffers, die Unabhängigkeit des O(n²)-DP-Oracles und die Frage, ob der Holdout den strikten Vergleich allein antreibt, wurden geprüft, ohne dass ein falsifizierbarer Mangel gefunden wurde. Die vorab durchgeführte Mutation (3/3 erfasst: strikt <<=/ NaN-Guard/Richtung der Binärsuche) und die 40k-DP-Übereinstimmung belegen ein robustes Gate.

P16-Abschlussbericht — Inversionszahl (Mergesort-Verfahren) (2026-08-17, Opus5[1m]/ultracode, 12h autonom)

Statistik um 1 op erweitert (zweite Statistikrunde nach P9 count_distinct/mode_value): count_inversions (KIND_REDUCE) = die Inversionszahl (Anzahl der strikten Paare mit i<j und a[i] > a[j]) einer beliebigen NaN-freien Double-Folge wird per Zähl-Mergesort in O(n log n) bestimmt. Nur Vergleiche (keine Arithmetik auf den Werten), daher ist der Count für ein gegebenes Array eindeutig = C==Python bitgenau. Beim Merge wird bei jeder Vorwegnahme der rechten Spalte die verbleibende Anzahl der linken Spalte addiert (klassisches Verfahren). Der Count ist eine nicht-negative Ganzzahl, daher ist -1.0 ein sicherer Sentinel-Wert: NaN→-1.0 Fail-soft, leer/einzeln→0.0. Gleichheit ist keine Inversion (bei Gleichstand wird links zuerst genommen = arr[i] <= arr[j]).

Verstärkung nach der P16-Adversarial-Review (2026-08-17, [[feedback_no_solo_ai_judgment]])

★Der erste Einsatz der Worktree-isolierten Review war erfolgreich: 3 Linsen × isolierter Git-Worktree (jeder Agent erstellt ab cd76da0 eine eigene Kopie und mutiert dort) → das algo.py im Haupt-Repo blieb durchgehend sauber (auch der Verifikations-Agent vermerkte explizit „das reale Repo ist read-only, mutiert wurde im isolierten Worktree, aufgeräumt”). Das Kontaminationsproblem von P14 wurde damit strukturell gelöst. Ergebnis = 2 CONFIRMED (beide LOW) · Korrektheitssystem 0 (die op ist korrekt):

P17-Abschlussbericht — Maximale Teilfolgensumme (Kadane-Verfahren) (2026-08-17, Opus5[1m]/ultracode, 12h autonom)

Suchen/Optimierung um 1 op erweitert (dritte Suchrunde nach P8 binary_search/kth_smallest · P15 lis_length): max_subarray (KIND_REDUCE) = für eine Folge ganzzahliger Double-Werte wird die maximale Summe einer zusammenhängenden Teilfolge per Kadanes O(n)-Reset-Durchlauf (cur = max(0, cur+x); best = max(best, cur)) bestimmt. Die leere Teilfolge ist zulässig (Summe 0), daher ist das Ergebnis stets ≥ 0 (bei lauter negativen Werten 0.0) = -1.0 ist ein sicherer Sentinel-Wert. Im ganzzahligen Bereich (jeweils |x| ≤ 2^52 und die laufende Summe der Beträge ≤ 2^52) bleiben alle Teilsummen exakt ganzzahlig < 2^53 → das Ergebnis ist exakt · C==Python bitgenau. Das unabhängige Oracle (Brute-Force-Maximum über alle O(n²) Teilfolgen) stimmt wegen der Assoziativität der Ganzzahladdition exakt mit Kadane überein. Fail-soft -1.0 = bei NaN / inf / nicht-ganzzahlig / |x| > 2^52 / Overflow der laufenden Summe.

Verstärkung nach der P17-Adversarial-Review (2026-08-17, [[feedback_no_solo_ai_judgment]])

Worktree-isolierte Review (4 Agenten · 3 Linsen + Adversarial-Verifikation) = 1 CONFIRMED (LOW · Gate-Ehrlichkeit) / 0 REFUTED. Der Verifikations-Agent reproduzierte alles im isolierten Worktree und vermerkte, dass das algo.py im Haupt-Repo nicht kontaminiert wurde (status --porcelain zeigt nur die automatische SESSION_SUMMARY). Korrektheit/Integration 0 (die op ist korrekt):

2026-09-03: 8 Korrekturen aus der Adversarial-Review (algo + C-Codegen)