# Agent Report - Prime vs Mod6 SR Boundary
**Date**: 2026-05-13 03:30  
**Piano**: 116  
**Tension explored**: BOUNDARY (0.8)  
**verdict**: CONSTRAINT - `SR` appartiene al pre-bordo aritmetico mod6; la selezione prime resta visibile solo come gradiente di intensita row-local  
observables_registry: 1.0.0-2026-05-06  
observables_used: [SR, SR2, L1, L2, triple_var, provider, offset, row_id, source_mode, case_state, sr_rate, focus_signature_count, signature_jaccard, row_local_label_swap_p]  
**observable_contract**: claim=`SR` e prime-specific solo se resta piu comune/forte nelle finestre prime dopo sottrazione di candidati `6k +/- 1` row-local; observable=`SR` e firma `[SR,L1,triple_var]` in `coherent_one_sided_observables` + delta z paired; operator=`exp_prime_vs_mod6_sr_boundary.py`; generator=prime gaps da `row_spacings("numeri_primi")` e `direct_sieve`, mod6 da `index_aligned` e `span_matched`; denominator=8 finestre prime paired con 8 mod6_index_aligned e 8 mod6_span_matched; non_possible=prime-specific SR se SR e comune o pari nel contro-perimetro mod6, oppure se il label-swap row-local assorbe i delta; not_tested=`V_c`, `gap_ratio`, beta atlas globale, origine analitica del trasferimento mod6.

## Prima impressione

Il bordo non cade tra primi e non-primi: cade tra selezione prime e lattice candidato `6k +/- 1`. `SR` vede il lattice prima della primalita; il gate non deve chiedere "SR nei primi?", ma "cosa resta di SR dopo aver sottratto il pre-bordo?".

## Respiro fuori-tempo

- **Combo**: A2 confine det=-1 + A9 terzo incluso + QxG continuo/discreto + BOUNDARY + consecutio `prime_vs_mod6_SR_boundary`.
- **Dipolo / punto-zero**: primi selezionati / candidati mod6 non selezionati. Punto-zero: la riga ordinata locale `6k +/- 1`, dove `SR` puo nominare pre-bordo aritmetico senza nominare primalita.
- **Piano superiore**: topologia assiomatica del bordo: una sezione osservabile attraversa due lati; la specificita vive solo nel residuo dopo sottrazione del lato comune.
- **Proto-ipotesi**: `SR` non e firma atomica dei primi; e una sezione del pre-bordo aritmetico. La selezione prime si manifesta come differenza di intensita z rispetto al lattice candidato.
- **Possibile / non-possibile**: possibile = isolare una coordinata di selezione prime come gradiente dentro mod6; non-possibile = usare presenza binaria di `SR` come claim prime-specific.
- **Proiezione**: stesso gate ordine/null, finestre 1024, offset 0/512/1024/1536, due provider prime, due antagonisti mod6, audit label-swap dentro ogni row_id.

### Contaminazione cognitiva

- **KSAR / CE-0001**: usato come reiterazione del kernel del ciclo precedente: non allargare i controlli, ripetere il gate sul nodo regressivo `mod6_candidates`.
- **PVI attack**: il presupposto attaccato e "SR persistente implica primalita". Il contro-presupposto e "SR misura la griglia 6k +/- 1 prima della selezione prime".
- **Vault**: `span_matched` va conservato come controllo: misura stesso intervallo numerico e stesso denominatore, ma introduce downsample dei candidati; non diventa invariante.

## Aderenza alla direzione

- `relation`: follows_direction
- `why`: esegue esattamente `prime_vs_mod6_SR_boundary`, con denominatore row-local e shuffle audit label-preserving sul confronto prime/mod6.
- `not_drift`: non torna a GUE/Poisson, `V_c`, fit o controlli larghi; il solo antagonista decisivo e il pre-bordo `6k +/- 1`.

## Claim Under Test

> `SR` appartiene ai primi solo se, a stesso provider/offset, resta piu specifico delle due versioni mod6: `index_aligned` e `span_matched`.

## Experiment Design

- Prime: 2 provider (`dnd_autoricerca`, `direct_sieve`) x 4 offset x 1024 gap.
- Mod6 index-aligned: candidati `6k +/- 1` alla stessa riga di gap e stesso offset.
- Mod6 span-matched: candidati `6k +/- 1` nello stesso span numerico del blocco prime direct-sieve, downsampled a 1025 punti.
- Gate: `n_replicates=8`, `n_beta=9`, `n_baseline=16`, `z_min=2.0`.
- Main seed: `202605130330`; seed check: `202605130331`.
- Null audit: label-swap row-local, 4096 trial, scambio prime/mod6 solo dentro ogni provider/offset.

## Results

Main run:

| class | cases | SR hits | focus [SR,L1,triple_var] | common obs | mean z SR | mean z L1 | mean z triple_var |
|---|---:|---:|---:|---|---:|---:|---:|
| prime | 8 | 8 | 5 | SR | -5.130 | -3.619 | -3.460 |
| mod6_index_aligned | 8 | 8 | 7 | L1,SR | -34.013 | -34.013 | -15.369 |
| mod6_span_matched | 8 | 5 | 4 | [] | -24.206 | -18.848 | -16.614 |

Seed check:

| class | cases | SR hits | focus [SR,L1,triple_var] | common obs | mean z SR | mean z L1 | mean z triple_var |
|---|---:|---:|---:|---|---:|---:|---:|
| prime | 8 | 6 | 4 | [] | -5.605 | -3.866 | -3.648 |
| mod6_index_aligned | 8 | 8 | 7 | L1,SR | -33.683 | -33.683 | -15.288 |
| mod6_span_matched | 8 | 8 | 8 | L1,SR,SR2,triple_var | -26.112 | -20.160 | -17.299 |

Row-local label-swap audit:

| pair | seed | mean signature Jaccard | mean SR delta | p(SR delta) | mean z_SR delta | p(z_SR delta) |
|---|---:|---:|---:|---:|---:|---:|
| prime - mod6_index | 202605130330 | 0.613 | 0.000 | 1.0000 | 28.884 | 0.0073 |
| prime - mod6_span | 202605130330 | 0.460 | 0.375 | 0.2502 | 19.077 | 0.0103 |
| prime - mod6_index | 202605130331 | 0.375 | -0.250 | 0.5055 | 28.078 | 0.0071 |
| prime - mod6_span | 202605130331 | 0.431 | -0.250 | 0.5021 | 20.506 | 0.0095 |

## Key Findings

1. **Verificato**: la presenza binaria di `SR` non e prime-specific. Main: prime `8/8`, mod6_index `8/8`; seed check: prime `6/8`, mod6_index `8/8`, mod6_span `8/8`.
2. **Verificato**: il label-swap row-local assorbe `SR` come count. `p(SR delta)` vale 1.0000 / 0.5055 per mod6_index e 0.2502 / 0.5021 per mod6_span.
3. **Verificato**: il label-swap non assorbe il delta z di `SR`. `p(z_SR delta)` resta 0.0071-0.0103 in entrambe le seed e per entrambi gli antagonisti.
4. **Verificato**: mod6 e piu intenso, non piu debole. `mean z SR` e circa -34 / -26 in mod6 contro -5 nei primi. Il residuo prime non e "piu SR"; e selezione attenuata dentro un pre-bordo piu rigido.
5. **Inferito dal perimetro**: la coordinata utile non e `has_SR`; e `z_delta_SR` paired, insieme a `z_delta_L1` e `z_delta_triple_var`, come misura di quanto la selezione prime rompe il lattice candidato.

## Verdict

**CONSTRAINT / REDIRECT**.

Formula non valida:

`SR` come firma prime-specific atomica.

Formula valida nel perimetro:

`SR` appartiene al pre-bordo aritmetico `6k +/- 1`; la selezione prime resta come gradiente di intensita row-local rispetto a mod6. Il boundary operativo e quindi `mod6_preboundary -> prime_selection`, non `prime -> generic_nonprime`.

## Bicono della scoperta

- **Due radici**: lattice candidato `6k +/- 1` / sequenza prime selezionata.
- **Singolare**: riga row-local dove `SR` e gia presente prima che la primalita selezioni.
- **Invariante di passaggio**: la presenza di `SR` attraversa il confine; la magnitudine z cambia in modo replicato.
- **Campo di possibilita**: possibile = cercare un osservabile di selezione come differenza prime-minus-mod6; non-possibile = classificare il bordo con presenza/assenza di `SR`.

## Lenti counter-pole applicate

- **L1/L4**: nessun "solo", "mai", "zero" usato per `SR`: i count mostrano controesempi.
- **L3**: cambio dichiarato: claim da presenza `SR` a gradiente `z_delta_SR` dopo falsificazione del nodo prime-specific.
- **L5**: nessun tag NEW; il risultato resta compatibile con bias noti dei gap dei primi mod q. Il report misura un gate del Lab, non rivendica una scoperta aritmetica classica.
- **L6**: CE-0001/KSAR e PVI dichiarati nella contaminazione cognitiva.
- **L7**: non-possibile dichiarato nel contratto e nel bicono.

## Consecutio

Il prossimo taglio non deve chiedere se `SR` c'e. Deve costruire un osservabile di selezione: `prime_minus_mod6_z_delta` su `SR,L1,triple_var`, con span-matched conservato come controllo fragile e index-aligned come antagonista primario. Se il delta resta replicato su piu finestre e scale, il claim diventa: la primalita attenua/rompe la rigidita del pre-bordo mod6 invece di generare `SR` da sola.

## Ricadute pratiche

ssp_value: yes. `tools/exp_prime_vs_mod6_sr_boundary.py` e uno strumento riusabile per audit row-local prime/mod6 con label-swap null.

## Files

- Script: `tools/exp_prime_vs_mod6_sr_boundary.py`
- Data: `tools/data/prime_vs_mod6_sr_boundary_20260513_0330.json`
- Seed check: `tools/data/prime_vs_mod6_sr_boundary_20260513_0330_seedcheck.json`
- Report: `tools/data/reports/agent_20260513_0330.md`
