# Agent Report — Det Non È Il Discriminatore Della Dualità
**Date**: 2026-05-07 20:42
**Piano**: 84
**Tension explored**: DUALITA_DIPOLARE_VS_ILLUSORIA (0.9)
**verdict**: CONSTRAINT
observables_registry: n/a
observables_used: [det_M, trace_M, eigvals, det_vs_shuffle_z]

## Claim Under Test
> Due tipi di dualita: dipolare-generativa come det=-1; illusoria-dispersiva come det=+1.

Il nodo regressivo e il framing stesso: se `det(M)` misura la dualita, allora nei gap primi deve separare il reale dallo shuffle e deve muoversi verso un polo leggibile (`-1` o `+1`) su scala.

## Question
Il determinante della matrice di trasferimento dei gap e un discriminatore operativo della dualita, o e solo un segno debole che va subordinato al denominator order-vs-shuffle?

## Experiment Design
- Perimetro: 7 finestre di 50,000 gap primi, start nominali `100..50,000,000`.
- Stato: `x_i=(g_i, g_{i-1})`, `y_i=(g_{i+1}, g_i)`.
- Fit: matrice `M` least-squares tale che `y = M @ x`.
- Osservabili: `det(M)`, `trace(M)`, autovalori, z-score di `det(M)` contro 20 shuffle della stessa finestra.
- Null baseline: shuffle dei gap nella stessa finestra, stessa distribuzione marginale, ordine distrutto.
- Tool: `tools/exp_det_drift.py`; output salvato anche in `tools/data/exp_det_drift_20260507_2042.json`.

## Results
| start | median p | ln(p) | det(M) | det shuffle mean | z(det) |
|---:|---:|---:|---:|---:|---:|
| 100 | 287,383 | 12.57 | -0.388048 | -0.378211 | -2.97 |
| 1,000 | 289,273 | 12.58 | -0.388161 | -0.379353 | -2.49 |
| 10,000 | 302,927 | 12.62 | -0.387626 | -0.378640 | -3.08 |
| 100,000 | 409,777 | 12.92 | -0.387652 | -0.377266 | -3.43 |
| 1,000,000 | 1,349,147 | 14.11 | -0.380926 | -0.371107 | -4.43 |
| 10,000,000 | 10,402,927 | 16.16 | -0.381040 | -0.370080 | -2.52 |
| 50,000,000 | 50,444,239 | 17.74 | -0.370717 | -0.368393 | -0.97 |

Fit scala:
- `det(M) = -0.425503 + 0.002982 * ln(p)`
- `R^2 = 0.9044`
- range reale: `-0.388161 .. -0.370717`
- range shuffle mean: `-0.379353 .. -0.368393`
- z-score: `[-3.0, -2.5, -3.1, -3.4, -4.4, -2.5, -1.0]`

## Key Findings
1. **Il segno negativo non basta a nominare dualita dipolare.** Il reale resta negativo in tutte le finestre, ma vale circa `-0.39`, non `-1`. La formulazione `dipolare = det=-1` non regge come osservabile diretto dei gap primi in questo fit.

2. **Lo shuffle ha lo stesso segno.** Il null preserva det negativo medio (`-0.379 .. -0.368`). Il segno deriva in larga parte dalla geometria dell'embedding e dalla marginale dei gap, non solo dall'ordine generativo.

3. **Il denominatore reale-vs-shuffle e presente ma decade.** Lo z-score e forte nelle finestre basse/intermedie (`-2.49 .. -4.43`) e cade a `-0.97` nella finestra `p ~ 5.0e7`. Il claim valido e differenza ordinata contro shuffle su perimetro finito, non polo `-1`.

4. **La scala va verso zero, non verso `+1`.** Il fit aumenta da `-0.4255` con slope positivo `0.002982`; l'extrapolazione a `+1` e astronomica (`~3.83e207`) e non e contenuto operativo. Il movimento osservato e indebolimento del segno, non transizione misurata a dualita illusoria `+1`.

## Verdict
**CONSTRAINT on DUALITA_DIPOLARE_VS_ILLUSORIA**: nel perimetro transfer-matrix dei gap primi, `det(M)` non e discriminatore primario della dualita. Il segno negativo e condiviso dallo shuffle; la parte informativa e lo scarto reale-vs-shuffle, che esiste fino alle scale misurate ma si indebolisce. La dualita dipolare va formulata come supporto ordinato contro null, non come valore `det=-1` del fit lineare.

## Bicono della scoperta
- **Due radici**: segno del determinante · denominatore contro shuffle.
- **Singolare**: la matrice fitted sui gap, dove il segno appare prima della distinzione ordine/null.
- **Invariante di passaggio**: non il valore `-1`; sopravvive solo la domanda se il reale si separa dallo shuffle.
- **Campo di possibilità**: qui diventa possibile usare det come diagnostica secondaria del supporto; qui diventa non-possibile usare `det=-1`/`det=+1` come tassonomia diretta della dualita nei gap primi.

## Consecutio
Applicare lo stesso test a un perimetro non-primi con ordine costruito e marginale identica: Beatty coerente, shuffle Beatty, GUE spacing order, Poisson. Se il segno resta condiviso, il nodo regressivo e l'embedding `x=(g_i,g_{i-1})`; se lo scarto z replica solo nei domini ordinati, det resta utile come osservabile subordinato al denominator gate.

## Auto-audit: 5 lenti
- **L1 hard constraint vs bias**: non dichiaro zero, sempre, mai. `z=-0.97` alla scala alta e riportato come indebolimento, non assenza.
- **L2 quantita vs ratio**: riporto valori assoluti di det e differenza z contro shuffle; non uso solo trend percentuali.
- **L3 no silent patching**: il claim originale `det=-1` e vincolato esplicitamente. Non viene salvato cambiando definizione in conclusione.
- **L4 edge cases**: la finestra alta e controesempio al supporto forte; resta dentro il perimetro e determina il verdict.
- **L5 re-discovery**: least-squares autoregressive embedding e shuffle test sono strumenti standard; il report non tagga NEW.

## Files
- Script: `tools/exp_det_drift.py`
- Data: `tools/data/exp_det_drift_20260507_2042.json`
- Discarded replication data: `tools/data/duality_gate_transfer_20260507_2042.json`
- Report: `tools/data/reports/agent_20260507_2042.md`
