# Agent Report — Markov Layers Pass the First Recovery Gate, but Not All Observables Pass
**Date**: 2026-05-04 12:19
**Piano**: 61
**Tension explored**: META (0.5)

## Claim Under Test
> Tutti i 11 test passano — verifica che non stiamo testando solo tautologie.

## Question
Se la pipeline Mk0/Mk1/Mk2 vede due layer, li recupera anche quando l'ordine vero della sequenza è noto?

## Experiment Design
- **Primary audit**: `tools/exp_markov_layer_recovery_audit.py`
- **Scope**: 60,000 gap/spacings per sequenza; 20 surrogati per livello Mk; seed `20260504`.
- **Target**: prime gaps, ordine sconosciuto, solo confronto.
- **Known-order controls**:
  - `empirical_Mk0`: permutazione dei gap primi, ordine noto 0.
  - `empirical_Mk1`: surrogate Mk1 addestrato sui gap primi, ordine noto 1.
  - `empirical_Mk2`: surrogate Mk2 addestrato sui gap primi, ordine noto 2.
  - `poisson_iid`: spacings esponenziali iid, ordine noto 0.
- **Recovery rule**: un controllo passa se nessun osservabile viene classificato con layer maggiore dell'ordine noto.
- **Secondary calibration**: `tools/exp_meta_tautology_test.py --n-primes 300000 --n-trials 12`. Nota: il controllo chiamato `HL_markov` nello script è un AR(1) gap model che preserva lag-1, non un modello Hardy-Littlewood aritmetico.

## Results

### Recovery audit

| Sequence | Known order | Recovery | Max layer | Over-layer observables |
|---|---:|---|---:|---|
| `prime_gaps` | target | target only | 3 | - |
| `empirical_Mk0` | 0 | PASS | 0 | - |
| `empirical_Mk1` | 1 | PASS | 1 | - |
| `empirical_Mk2` | 2 | FAIL | 3 | `cond_entropy` |
| `poisson_iid` | 0 | FAIL | 1 | `num_var_10` |

Prime target layers, reported without recovery verdict:

| Observable | Layer | z vs Mk0 | z vs Mk1 | z vs Mk2 |
|---|---:|---:|---:|---:|
| SR | 1 | -22.21 | -0.08 | -0.16 |
| L1 | 1 | -12.25 | 0.79 | 0.86 |
| L2 | 2 | -3.60 | -4.09 | -0.19 |
| SR2 | 2 | -6.67 | -8.80 | -0.33 |
| cond_entropy | 3 | -435.40 | -26.11 | 2.56 |
| triple_var | 1 | -15.90 | -0.53 | 0.36 |
| num_var_10 | 1 | -7.46 | -1.42 | 0.00 |
| run_length | 3 | 27.59 | 7.19 | 3.43 |

Control failure details:

| Control | Observable | Expected max | Assigned | Diagnostic z |
|---|---|---:|---:|---:|
| `empirical_Mk2` | `cond_entropy` | 2 | 3 | z vs Mk2 = 3.15 |
| `poisson_iid` | `num_var_10` | 0 | 1 | z vs Mk0 = 2.13 |

### Secondary tautology calibration

| Observable | Verdict in tested controls | Blocking control |
|---|---|---|
| r-stat | STRUCTURAL | none in this run |
| mod3 fraction | STRUCTURAL | none in this run |
| lag1 ACF | TAUTOLOGICAL | lag1-matched AR(1), z = -0.62 |
| dr_ord | TAUTOLOGICAL | lag1-matched AR(1), z = -1.90 |
| dr_mag | STRUCTURAL | none in this run |

Numeri principali: prime mod3 same-class fraction = 0.158032. Questo è bias forte rispetto ai controlli ~0.34-0.35, non proibizione zero.

## Key Findings
1. **Il nucleo pair/triple non cade al primo audit.** `empirical_Mk0` recupera solo Layer 0; `empirical_Mk1` recupera solo Layer 1. Questo supporta l'uso di SR e L1 come Layer 1 e di L2/SR2 come Layer 2 nel perimetro testato.
2. **`cond_entropy` non può essere usata come prova forte di Layer 3 nel setup attuale.** Anche un controllo generato come Mk2 viene letto Layer 3 per `cond_entropy` (z vs Mk2 = 3.15). Questo indica bias del surrogate/binning o varianza finita, non necessariamente memoria reale oltre Mk2.
3. **`num_var_10` produce un falso positivo debole su iid.** `poisson_iid` viene letto Layer 1 per `num_var_10` con z = 2.13. Il segnale supera appena la soglia operativa, quindi va trattato come diagnostica secondaria finché non passa audit multi-seed.
4. **Il vecchio controllo `HL_markov` va rinominato nel linguaggio dei report.** Lo script non implementa Hardy-Littlewood; implementa un AR(1) lag1-matched. I claim futuri non devono chiamarlo controllo HL aritmetico.

## Verdict
**CONSTRAINT on META + BOUNDARY**: la decomposizione two-layer è utilizzabile solo con perimetro atomico.

Perimetro corretto: nei 60,000 gap primi testati con 20 surrogati Mk per livello, il nucleo `SR,L1` viene catturato da Mk1 e il nucleo `L2,SR2` da Mk2. Le diagnostiche `cond_entropy`, `num_var_10`, `run_length` non sono evidenza primaria finché non passano un recovery audit multi-seed e, idealmente, surrogati Markov esatti.

Non è una scoperta nuova di teoria Markov: è un audit metodologico vicino ai test di ordine Markov con surrogate data. La letteratura rilevante include test esatti di ordine Markov e surrogate vincolati che preservano proprietà Markov di ordine n, quindi il prossimo strumento deve avvicinarsi a quei null esatti invece di usare solo generatori bin-pool approssimati.

## Bicono della scoperta
- **Due radici**: layer osservato dai dati · ordine noto del generatore.
- **Singolare**: la pipeline Mk stessa, prima che venga usata come prova su un dominio reale.
- **Invariante di passaggio**: un claim di memoria sopravvive solo se recupera correttamente i controlli con ordine noto.
- **Campo di possibilità**: qui diventa possibile separare nucleo robusto e diagnostiche sovrastimate; qui diventa non-possibile usare `cond_entropy` o `num_var_10` come prova primaria di profondità senza recovery audit.

## Self-Falsification — 5 lenti
- **L1 hard constraint vs bias**: nessun claim "zero/never/always". La frazione mod3 è 0.158032, dichiarata bias, non proibizione.
- **L2 quantità vs ratio**: il claim principale usa layer recuperato e z-score, non percentuali fra spazi di taglia diversa.
- **L3 no silent patching**: dichiaro esplicitamente che `HL_markov` era nome scorretto per un controllo AR(1) lag1-matched.
- **L4 edge cases**: i fallimenti `cond_entropy` e `num_var_10` non vengono arrotondati via; diventano il vincolo.
- **L5 rediscovery**: non taggo NEW. Riferimenti classici vicini: surrogate-data tests for Markov order e constrained Markov-order surrogates.

## References
- Kandel et al.-lineage / surrogate tests: ["Testing the order of discrete Markov chains using surrogate data", Physica D 117, 1998](https://www.sciencedirect.com/science/article/pii/S0167278997003151).
- ["Exact significance test for Markov order", Physica D 269, 2014](https://www.sciencedirect.com/science/article/pii/S0167278913003230).
- ["Constrained Markov order surrogates", Physica D 2020](https://www.sciencedirect.com/science/article/pii/S0167278919305652).

## Files
- `tools/exp_markov_layer_recovery_audit.py`
- `tools/data/markov_layer_recovery_audit.json`
- `tools/data/meta_tautology_test.json`
- `tools/data/seme.json`
- `tools/data/reports/agent_20260504_1219.md`
