Pascal-Modifikations-Experiment · Hypothese 3 · Familie v3

Das Anti-Pascal-Dreieck existiert.
Es ist dasselbe Fraktal.

Ersetzt man in Pascals Rekurrenz die Summe durch den Absolutbetrag der Differenz, kollabiert das Wachstum von exponentiell auf linear — und das Sierpinski-Muster bleibt Zelle für Zelle unverändert. Vier Sätze, eine widerlegte Vermutung — und ein Audit, das drei frühere Publikationen dieses Experiments als bildgleich mit vorher verworfenen Läufen ausweist.

Hypothese 3 — Befund: Ja, es gibt ein Anti-Pascal-Dreieck, und es ist wohldefiniert als Rekurrenz. Aber es ist kein Anti-Fraktal. Die Deformation L+R → |L−R| ist paritätserhaltend: das mod-2-Bild ist eintragsweise identisch mit Pascal. Die Box-Dimension bleibt log₂3 ≈ 1,585. Was sich ändert, sind ausschließlich die Zahlen: Θ(2ⁿ) wird zu O(n).

1 · Was „Anti-Pascal" heißt

Der Begriff ist besetzt: IMO 2018, Aufgabe 3 definiert ein Anti-Pascal-Dreieck als Zahlendreieck, in dem jeder Eintrag der Absolutbetrag der Differenz der beiden Einträge unter ihm ist. Die Aufgabe fragt nach einem solchen Dreieck mit 2018 Zeilen, das genau die Zahlen 1 … 1+2+⋯+2018 enthält — Antwort: existiert nicht.

Als generative Rekurrenz von oben nach unten gelesen ist derselbe Operator:

Pascal:      C(n,k) =  C(n-1,k-1) + C(n-1,k)
Anti-Pascal: C(n,k) = |C(n-1,k-1) - C(n-1,k)|        (Rand = 0)

Für das Harness dieses Experiments ist das ein echter Familienwechsel. Die bisherigen Familien v1/v2 sind linear — C = a·L + b·R + c + d·G (mod m) — und der Absolutbetrag ist nicht linear. Er ist in v1/v2 nicht darstellbar, auch nicht durch b = m−1: modulo m ist L−R nur dann gleich |L−R|, wenn L ≥ R. Deshalb Familie v3, ein optionales Feld abs:

v3:  C(n,k) = |a·L + b·R + c + d·G|  mod m
Anti-Pascal = {"a":1, "b":-1, "c":0, "mod":null, "apex":[1], "abs":true}

2 · Vier Sätze

Satz 1 · bewiesen · maschinell geprüft

Paritätsinvarianz: Anti-Pascal ≡ Pascal (mod 2)

Für jeden Apex und alle n,k gilt anti(n,k) ≡ pascal(n,k) (mod 2).

Beweis. |x| ≡ x (mod 2), also L−R ≡ L+R (mod 2). Beide Dreiecke starten mit demselben Apex; Induktion über die Zeilen. ∎

Folge: Das Sierpinski-Dreieck ist invariant unter dieser Deformation. Der Betrag verändert die Werte drastisch — das Fraktal überhaupt nicht.

geprüft: 500 zufällige Apexe × 40 Zeilen, 200 × 30 Zeilen — 0 Abweichungen (parity_hash)
Satz 2 · bewiesen · maschinell geprüft

Einzel-Apex degeneriert: Anti-Pascal = s · (Pascal mod 2)

Für Apex [s] bleiben alle Einträge in {0, s}, und dort ist |x−y| = s·((x/s) XOR (y/s)). Das Dreieck ist also exakt das s-fache Pascal-Dreieck modulo 2 — Sierpinski, nichts weiter. Jedes mod m ≥ 2 ist dabei wirkungslos, weil das Alphabet {0,1} nie verlassen wird.

Folge für dieses Experiment: Der reinste Anti-Pascal-Fall ist keine Entdeckung, sondern algo-0002 des eigenen ZAEHL_ALGO_SET. Der Harness bestätigt es selbst: algo-0059 erhält die Signatur sig-a40e36ba3f67 — bitgleich mit algo-0002 — und meldet new_pattern: false.

geprüft: apex [1] identisch über 40 Zeilen; apex [2],[5],[17] als exakte Skalierung über 30 Zeilen; mod 2/3/5/7 inert über 25 Zeilen
Satz 3 · bewiesen · maschinell geprüft

Kontraktion: max fällt monoton, Zeilensummen O(n) statt Θ(2ⁿ)

Wegen |x−y| ≤ max(x,y) ist max(Zeile n) monoton fallend. Also bleibt jeder Eintrag für immer ≤ max(apex), und die Zeilensumme ist durch max(apex)·(n+|apex|) beschränkt — linear, wo Pascal exponentiell wächst. Das ist die scharfe Umkehrung von Pascal und der eigentliche Sinn des Wortes „anti".

Die Schranke hängt an c = 0: mit c = 1 (|L−R+1|) fällt max nicht mehr monoton, und das Alphabet wächst wieder.

Für Apex [1] ist die Zeilensumme sogar exakt bekannt: 2^(Anzahl der Einsen in der Binärdarstellung von n) — Goulds Folge (OEIS A001316), also die Anzahl der ungeraden Einträge in Pascals Zeile n. Genau das erwartet man nach Satz 2.

geprüft: 15 Apexe × 120 Zeilen und 12 × 300 Zeilen monoton; Gould exakt für n < 64
Satz 4 · bewiesen (Apex [s]) · gemessen (breiter Apex)

Dimensionserhaltung: log₂3 ≈ 1,58496

Für Apex [s] hat das Anti-Pascal-Dreieck in seinen ersten 2ᵏ Zeilen exakt 3ᵏ von Null verschiedene Zellen — die klassische Zählung der ungeraden Binomialkoeffizienten, unmittelbar aus Satz 2. Box-Dimension: log₂3.

Für breitere Apexe kommen „gerade Geister" hinzu: Einträge, die gerade und trotzdem ungleich Null sind. Sie liegen nicht im Paritätsbild, machen die Null-Bitmap also dichter als Sierpinski. Gemessen bis 1024 Zeilen konvergiert die Dimension trotzdem von oben gegen log₂3 — die Geister haben verschwindende relative Dichte.

ApexN=64N=256 N=1024log(nz)/log(N) bei N=1024
[1]7296 561 59 0491,5850
[1,2]7936 817 60 0731,5874
[1,2,3]8637 335 63 1511,5947
[5,3,8]1 1739 313 73 9371,6174
[13,7,2,11,4]1 34411 004 92 9161,6504
Nichtnull-Zellen in den ersten N Zeilen. Für [1] exakt 3ᵏ bis k=11 (2048 Zeilen). Für breite Apexe fallend gegen 1,5850 — Grenzwert gemessen, nicht bewiesen.
Vermutung · WIDERLEGT

Keine Selbst-Linearisierung

Naheliegende Vermutung, aus der Ducci-Theorie („n-number game") entlehnt: sobald eine Zeile nur noch Werte aus {0, M} enthält, ist der Rest des Dreiecks M·Rule-90 über GF(2) — der nichtlineare Operator würde sich also selbst linearisieren. Für Apex-Breite 1 ist das trivial wahr (Satz 2).

Für Breite ≥ 2 ist es falsch. In 255 von 300 Zufallsproben wurde binnen 120 Zeilen nie eine Zwei-Wert-Zeile erreicht; die 45 Kollapse waren ausnahmslos Breite-1-Apexe. Das Alphabet schrumpft zwar auf 5–8 Werte (Apex [5,3,8]: {0,1,2,5,8} bei Zeile 399), wird aber nicht binär.

Das ist der interessante Teil: Anti-Pascal bleibt über ℤ echt nichtlinear, während sein mod-2-Schatten exakt der lineare Automat Rule 90 ist. Die Nichtlinearität lebt vollständig in den höheren 2-adischen Stellen.

geprüft: 300 Apexe × 120 Zeilen; Verifikation der Kollaps-Fälle: 40/40 stimmen mit M·Rule-90 überein

3 · Ansehen

Links Pascal mod 2, in der Mitte Anti-Pascal über ℤ mit demselben Apex, rechts das mod-2-Bild von Anti-Pascal. Mitte und rechts unterscheiden sich sichtbar — die geraden Geister; rechts und links sind bei jedem Apex bitgleich (Satz 1).

Apex:

Pascal mod 2

L+R mod 2 — Sierpinski

Anti-Pascal über ℤ

|L−R| — Null vs. Nichtnull

Anti-Pascal mod 2

|L−R| mod 2 — muss links gleichen

Die ersten Zeilen als Zahlen

4 · Audit des eigenen Korpus

Hypothese 3 hat einen Messfehler im Harness aufgedeckt. Die Muster-Signatur, mit der 67 Algorithmen über vier Sessions auf Neuheit geprüft wurden, enthält div2, div3, div5: die Dichte der Nullen. Nicht ihre Anordnung. Sie misst also gerade nicht das Fraktal, das man sieht.

Nachgerechnet auf der vergleichbaren Kohorte (64 Algorithmen mit 20 Zeilen): 56 Signaturen stehen für nur 45 verschiedene Null-Bitmaps. Der Detektor spaltet elfmal ein bereits bekanntes Bild in ein „neues Muster" auf — und einmal fällt er umgekehrt zusammen (algo-0015 und algo-0035 haben dieselbe Signatur bei verschiedenen Dreiecken, also ein falsches „bekannt").

Drei Publikationen betrifft das direkt:

publiziertRekurrenzgleiche Null-Bitmap wiedort bewertet
algo-0009
pascal-mod-3-subtraktion
L+2R mod 3algo-0003 (L+R mod 3) miss
algo-0014
pascal-subtraktions-gesetz
L+4R mod 5algo-0005, algo-0015, algo-0035 explored / miss
algo-0017
pascal-subtraktions-gesetz
L+6R mod 7algo-0010, algo-0032 explored

Der Grund ist elementar und war die ganze Zeit ausrechenbar. Mit c = 0 und Apex [1] hat die lineare Familie eine geschlossene Form:

C(n,k) = a^k · b^(n-k) · binom(n,k)        (mod m)

Sind a und b Einheiten mod m, ist dieser Vorfaktor nie 0 — die Nullstellenmenge ist für alle solchen (a,b) dieselbe wie bei Pascal mod m, nach dem Satz von Lucas. Deshalb teilen L+2R und L+3R mod 5 (algo-0015, algo-0035) ihre Bitmap mit dem gewöhnlichen Pascal mod 5 (algo-0005): 2 und 3 sind bloß Einheiten. Der publizierte Spezialfall b ≡ −1 ist nur die auffälligste Instanz davon.

Fairerhalber: dass „Subtraktion" das vorzeichenbehaftete Pascal-Dreieck ist, hat dieses Experiment selbst gefunden und unter pascal-aufloesung-subtraktion veröffentlicht — dort steht wörtlich, das Subtraktions-Dreieck sei „nichts anderes als das vorzeichenbehaftete Pascal-Dreieck". Zwei Dinge fehlen aber bis jetzt: die Verallgemeinerung auf beliebige Einheiten a, b (nachgeprüft: die geschlossene Form gilt eintragsweise für alle 18 Algorithmen mit c=0 und Apex [1], ohne Ausnahme) samt der Folgerung über die Nullstellenmenge — und, wichtiger, ein Detektor, der das sieht. Die Auflösung kam als dritte Publikation nachgereicht; die beiden überholten Seiten stehen weiter als eigenständige Funde da, und der Harness hätte auch beim vierten Versuch wieder new_pattern: true gemeldet.

Weitere belegte Defekte

Was jetzt anders gemessen wird

5 · Nachrechnen

python -m lab add-family v3 --formula 'C(n,k) = |a*L + b*R + c + d*G| mod m'

# Satz 2: Anti-Pascal apex [1] == algo-0002 (Pascal mod 2)
python -m lab run --family v3 --n 20 \
  --recurrence '{"a":1,"b":-1,"c":0,"mod":null,"apex":[1],"abs":true}'
python -m lab analyze algo-0059      # -> new_pattern: false, sig-a40e36ba3f67

# Audit: 56 Signaturen v1, aber nur 45 Null-Bitmaps
python -m lab reindex

python -m pytest -q                  # 58 Tests, davon 22 neu zu v3 + Signatur v2