# Agent Report - Prime Mobius Gap-Stratified Zero Gate
**Date**: 2026-05-08 21:21
**Piano**: 94
**Tension explored**: DUALITA_DIPOLARE_VS_ILLUSORIA (0.9)
**verdict**: CONSTRAINT
observables_registry: 1.0.0-2026-05-06
observables_used: [low_low_rate, high_high_rate, SR]
**observable_contract**: claim=la classe zero Mobius resta informativa dopo controllo per lunghezza del gap; observable=low_low_zero_minus_nonzero, high_high_zero_minus_nonzero, sr_zero_minus_nonzero sotto null stratificato; operator=shuffle delle cariche Mobius intervallari solo dentro bucket di lunghezza gap; generator=prime gaps up to p<=1e6 with Mobius sieve; denominator=main N={5000,10000,20000} offset=0 plus seedcheck offsets {3000,7000,11000}; not_tested=gap_ratio Sturmian, high-core phi survival, universal GUE/Poisson classification, det(M) diretto.

## Respiro fuori-tempo
- **Combo**: A2 confine det=-1 + A9 terzo incluso + A11 combo + QxG continuo/discreto vuoto + DUALITA_DIPOLARE_VS_ILLUSORIA + nodo regressivo del cycle 2108: lo zero Mobius puo' essere boundary aritmetico oppure effetto della lunghezza dell'intervallo.
- **Dipolo / punto-zero**: classe zero autentica / dipendenza da lunghezza del gap; punto-zero = null che conserva la frequenza delle cariche dentro ogni bucket di lunghezza.
- **Piano superiore**: boundary operator su grafo aritmetico stratificato. Il bordo non viene giudicato dalla statistica globale: viene passato attraverso classi di lunghezza che preservano la prima sorgente banale del segnale.
- **Operatori laterali scelti**: boundary operator, filtrazione, random walk. Boundary operator definisce il gap prime-free; filtrazione separa low/mid/high gap; random walk entra come permutazione locale delle cariche dentro la stessa classe di lunghezza.
- **Contaminazione cognitiva**:
  - **CE-0117**: usato per trasformare la possibilita' del cycle 2108 in vincolo regressivo, non in promozione.
  - **CE-0038**: usato per tenere il vuoto aritmetico come forma nel Nulla-Tutto, ma sottoporlo al controllo della lunghezza.
  - **CE-0001 / KSAR**: reiterazione del kernel 2108 con un solo nodo riparato: il null.
  - **PVI attack**: il risultato low/high del cycle 2108 puo' essere spiegato dalla lunghezza; il null stratificato e' costruito per far cadere questa scorciatoia.
- **Proto-ipotesi**: se `S=0` e' terzo incluso aritmetico oltre la lunghezza, allora low-low/high-high e SR devono restare fuori dal null che preserva la distribuzione delle cariche per bucket di gap. Se low/high cadono ma SR resta, il gate zero e' vincolo di forma del rapporto, non reader low/high autonomo.
- **Proiezione**: quattro bucket individuali del gap (`<=6`, `(6,q50]`, `(q50,q75)`, `>=q75`) e shuffle delle cariche solo dentro bucket. Soglia ex ante: `|z|>=2` e `p<=0.05`.

## Claim Under Test
> Nel perimetro primi x Mobius fino a `p<=1e6`, la classe zero resta informativa dopo un null che conserva la distribuzione delle cariche dentro le classi di lunghezza del gap.

## Question
Lo zero Mobius del boundary prime-free separa ancora low-core/high-tail quando la lunghezza del gap e' gia' conservata dal null, oppure il segnale low/high del cycle 2108 era denominatore di lunghezza?

## Experiment Design
- Script: `tools/exp_prime_mobius_gap_stratified_zero_gate.py`.
- Dati: primi fino a `1_000_000`; Mobius sieve sullo stesso perimetro.
- Carica intervallare: `S_n = sum(mu(k))` per `p_n < k < p_{n+1}`.
- Null test: 400 permutazioni delle cariche `S_n` dentro bucket di lunghezza del gap. Il null conserva distribuzione delle cariche, frequenza degli zeri e relazione di primo ordine carica-lunghezza.
- Osservabili separati:
  - `low_low_zero_minus_nonzero`: transizioni `g_i<=6` e `g_{i+1}<=6`.
  - `high_high_zero_minus_nonzero`: transizioni `g_i,g_{i+1}>=q75`.
  - `sr_zero_minus_nonzero`: media `min(g_i,g_{i+1})/max(g_i,g_{i+1})`.
- Contratto osservabile-operatore: `gap_ratio` e gate Sturmian non testati. Il cycle testa solo se lo zero Mobius supera il null length-stratified.

## Results
| condition | primes | zero bucket rates low/midL/midH/high | low z0 obs/null z p | high z0 obs/null z p | SR z0 obs/null z p |
|---|---:|---|---:|---:|---:|
| N=5000 off=0 | 2..48619 | 0.381/0.209/0.153/0.103 | +0.1584/+0.1636 -0.49 0.648 | -0.1036/-0.1020 -0.28 0.771 | -0.0895/-0.0193 -9.76 0.002 |
| N=10000 off=0 | 2..104743 | 0.378/0.212/0.157/0.096 | +0.1350/+0.1455 -1.59 0.112 | -0.0653/-0.0639 -0.40 0.688 | -0.0898/-0.0198 -13.20 0.002 |
| N=20000 off=0 | 2..224743 | 0.382/0.214/0.160/0.094 | +0.1294/+0.1381 -1.89 0.060 | -0.0800/-0.0784 -0.58 0.566 | -0.0921/-0.0249 -19.58 0.002 |
| N=5000 off=3000 | 27457..81817 | 0.377/0.212/0.161/0.110 | +0.1196/+0.1301 -1.16 0.252 | -0.0633/-0.0626 -0.14 0.890 | -0.0855/-0.0240 -8.42 0.002 |
| N=10000 off=7000 | 70663..187973 | 0.379/0.192/0.138/0.086 | +0.1234/+0.1320 -1.32 0.175 | -0.0674/-0.0642 -0.95 0.357 | -0.0980/-0.0290 -13.55 0.002 |
| N=20000 off=11000 | 116461..363271 | 0.379/0.206/0.141/0.081 | +0.1180/+0.1225 -0.98 0.347 | -0.0596/-0.0593 -0.14 0.863 | -0.0928/-0.0291 -17.23 0.002 |

### Aligned/misaligned control under the same null
| condition | low aligned-misaligned z/p | high aligned-misaligned z/p | SR aligned-misaligned z/p |
|---|---:|---:|---:|
| N=5000 off=0 | 0.27 / 0.788 | -0.94 / 0.349 | 1.65 / 0.097 |
| N=10000 off=0 | 0.86 / 0.389 | -1.04 / 0.287 | 2.08 / 0.040 |
| N=20000 off=0 | 1.59 / 0.097 | -0.96 / 0.322 | 2.26 / 0.027 |
| N=5000 off=3000 | 0.80 / 0.441 | -0.82 / 0.409 | 2.30 / 0.025 |
| N=10000 off=7000 | 0.85 / 0.389 | 0.33 / 0.726 | 1.91 / 0.045 |
| N=20000 off=11000 | -0.38 / 0.658 | -1.90 / 0.065 | 1.45 / 0.142 |

## Key Findings
1. **Verificato: low-low non sopravvive al controllo di lunghezza.** `low_low_zero_minus_nonzero` passa 0/6 sotto il null stratificato. I valori osservati restano positivi (`+0.1180..+0.1584`), ma il null atteso e' gia' positivo (`+0.1225..+0.1636`).

2. **Verificato: high-high non sopravvive al controllo di lunghezza.** `high_high_zero_minus_nonzero` passa 0/6. I valori osservati negativi (`-0.0596..-0.1036`) sono ricostruiti dal null stratificato (`-0.0593..-0.1020`).

3. **Verificato: SR resta fuori dal null in 6/6 condizioni.** `sr_zero_minus_nonzero` passa 6/6 con z da `-8.42` a `-19.58`, sempre `p=0.002`. Il null stratificato produce solo `-0.0193..-0.0291`, mentre l'osservato resta `-0.0855..-0.0980`.

4. **Verificato: la frequenza dello zero e' fortemente length-graded.** Nei bucket low/mid/high la frequenza di `S=0` scende circa da `0.377..0.382` nei gap `<=6` a `0.081..0.110` nei gap `>=q75`. Questo spiega il collasso dei segnali low/high sotto null stratificato.

5. **Ambiguo: aligned/misaligned porta un residuo SR parziale.** `SR aligned-misaligned` passa in 3/6 condizioni con `p<=0.05`, ma una condizione ha `z=1.91` con `p=0.045` e altre due cadono. Non e' portatore stabile in questo ciclo.

## Verdict
**CONSTRAINT on Prime Mobius zero-mediator gate**: nel perimetro primi x Mobius fino a `p<=1e6`, lo zero Mobius non autorizza un claim low-core/high-tail autonomo dopo controllo per lunghezza del gap. Il segnale low/high del cycle 2108 e' ricostruito dal null che conserva la distribuzione delle cariche dentro bucket di lunghezza. Sopravvive invece un vincolo su SR: le transizioni zero hanno ratio gap piu' basso del non-zero oltre quanto spiega la lunghezza stratificata. Formulazione corretta: `S=0` e' length-mediated per low/high; resta shape-residual per SR nel perimetro testato.

## Bicono della scoperta
- **Due radici**: zero come classe aritmetica autonoma . zero come effetto della lunghezza del gap.
- **Singolare**: il vuoto prime-free prima della partizione; non e' ancora informazione aritmetica o denominatore geometrico.
- **Invariante di passaggio**: preservando la lunghezza, cadono low/high e resta la forma del rapporto. L'invariante e' il residuo di shape, non l'arricchimento low-core.
- **Campo di possibilita**: qui diventa possibile cercare il portatore SR dello zero con null piu' forte per coppie di gap. Qui diventa non-possibile promuovere lo zero Mobius come reader low/high senza stratificazione di lunghezza.

## Consecutio
Il prossimo passo deve attaccare il residuo SR con un null che preserva la coppia di lunghezze `(bucket(g_i), bucket(g_{i+1}))`, non solo il bucket individuale di `S_i`. Se SR cade, tutto il gate zero e' length-pair mediated. Se SR resta, il residuo e' informazione d'ordine oltre lunghezza.

## Auto-audit: source flags e 5 lenti
- **Source 2108 repair**: eseguito il controllo richiesto dalla consecutio; il risultato low/high viene ridimensionato.
- **L1 hard constraint vs bias**: niente universal claim; perimetro dichiarato `p<=1e6`, sei condizioni, 400 permutazioni.
- **L2 quantita vs ratio**: low/high count-rate separati da SR; divergenza dichiarata come risultato.
- **L3 no silent patching**: il claim 2108 non viene salvato; viene corretto al nodo regressivo del null.
- **L4 edge cases**: `low_low` a N=20000 offset=0 ha `p=0.060`, quindi resta sotto soglia e non viene promosso.
- **L5 re-discovery vs discovery**: verdict `CONSTRAINT`; il residuo SR richiede null per coppie di lunghezza prima di diventare scoperta.

## Files
- Script: `tools/exp_prime_mobius_gap_stratified_zero_gate.py`
- Data: `tools/data/prime_mobius_gap_stratified_zero_gate_20260508_2121.json`
- Report: `tools/data/reports/agent_20260508_2121.md`
