# Agent Report — Logistic Surrogate Contract Gate

timestamp: 2026-05-07 10:42 UTC
category: gate_falsification_surrogate_contract
verdict: scoped_operator_with_surrogate_split
observables_registry: not used for canonical observables
observables_native_version: logistic-native-1.0.0-2026-05-07
observables_used: [block_entropy_deficit_k4, return_tail_alpha, recurrence_diag_mean, recurrence_determinism]
tool: tools/exp_logistic_surrogate_contract_gate.py
data: tools/data/logistic_surrogate_contract_gate_20260507_1042.json
seed_check: tools/data/logistic_surrogate_contract_gate_20260507_1042_seedcheck.json

## Claim Under Test

Verificato dal seme: `ORDER_DENOMINATOR_GATE` deve essere falsificato al nodo
regressivo del surrogate contract. Il run 10:06 ha usato solo marginal shuffle;
questo run confronta tre null:

- `marginal_shuffle`: preserva la distribuzione dei valori.
- `circular_shift`: preserva l'ordine temporale ciclico e cambia il taglio.
- `block_shuffle`: preserva blocchi locali di 64 campioni e rompe l'ordine tra
  blocchi.

Regola del gate: un osservabile ha supporto solo se `abs(z)>=2` contro tutte le
classi surrogate dichiarate. Supporto contro solo marginal shuffle non basta.

## Deposito Numerico

Run principale: `n_values=4096`, `n_returns=4096`, `n_baseline=24`,
`recurrence_max_points=300`, `block_size=64`, `seed=202605071042`.

Seed check: `n_baseline=20`, `seed=202605071043`.

| perimeter | contract-stable observables | marginal-only observables |
|---|---:|---:|
| logistic_orbit_values | block_entropy_deficit_k4 | [] |
| logistic_symbolic_itinerary | [] | [] |
| logistic_return_intervals | [] | recurrence_diag_mean |

Seed check:

| perimeter | contract-stable observables | marginal-only observables |
|---|---:|---:|
| logistic_orbit_values | block_entropy_deficit_k4 | [] |
| logistic_symbolic_itinerary | [] | [] |
| logistic_return_intervals | [] | [] |

Z values, run principale:

| perimeter | surrogate | block_entropy_deficit_k4 | return_tail_alpha | recurrence_diag_mean | recurrence_determinism |
|---|---|---:|---:|---:|---:|
| logistic_orbit_values | marginal_shuffle | 547.936 | -0.126 | 0.382 | -0.528 |
| logistic_orbit_values | circular_shift | 20.842 | -1.466 | 0.196 | -0.834 |
| logistic_orbit_values | block_shuffle | 7.184 | 0.455 | 0.041 | -0.995 |
| logistic_symbolic_itinerary | marginal_shuffle | -0.365 | 0.411 | 0.116 | 0.634 |
| logistic_symbolic_itinerary | circular_shift | -2.473 | -0.541 | -0.449 | -0.052 |
| logistic_symbolic_itinerary | block_shuffle | 1.187 | 0.045 | -0.078 | 0.071 |
| logistic_return_intervals | marginal_shuffle | -0.469 | 0.000 | 2.060 | 0.093 |
| logistic_return_intervals | circular_shift | 0.963 | 0.000 | 1.478 | 0.475 |
| logistic_return_intervals | block_shuffle | 0.262 | 0.000 | 2.934 | 0.573 |

Z values, seed check:

| perimeter | surrogate | block_entropy_deficit_k4 | return_tail_alpha | recurrence_diag_mean | recurrence_determinism |
|---|---|---:|---:|---:|---:|
| logistic_orbit_values | marginal_shuffle | 740.441 | -0.210 | 1.617 | -0.194 |
| logistic_orbit_values | circular_shift | 72.240 | -2.985 | 1.846 | -0.917 |
| logistic_orbit_values | block_shuffle | 8.301 | -1.960 | 1.710 | -0.836 |
| logistic_symbolic_itinerary | marginal_shuffle | 1.435 | -1.848 | -0.642 | 0.264 |
| logistic_symbolic_itinerary | circular_shift | 0.590 | -0.457 | -0.620 | -0.167 |
| logistic_symbolic_itinerary | block_shuffle | 0.376 | -0.377 | -0.847 | -0.111 |
| logistic_return_intervals | marginal_shuffle | 0.682 | 0.000 | -0.221 | 0.751 |
| logistic_return_intervals | circular_shift | 0.857 | 0.000 | -0.165 | 1.303 |
| logistic_return_intervals | block_shuffle | 1.914 | 0.000 | -0.491 | 0.664 |

Raw denominator check for `logistic_orbit_values / block_entropy_deficit_k4`:

| run | surrogate | original | baseline mean | baseline std | z |
|---|---|---:|---:|---:|---:|
| main | marginal_shuffle | 0.339699144 | 0.005348953 | 0.000610199 | 547.936 |
| main | circular_shift | 0.339699144 | 0.338940830 | 0.000036383 | 20.842 |
| main | block_shuffle | 0.339699144 | 0.320447081 | 0.002680001 | 7.184 |
| seed | marginal_shuffle | 0.356679741 | 0.005451290 | 0.000474351 | 740.441 |
| seed | circular_shift | 0.356679741 | 0.355910140 | 0.000010653 | 72.240 |
| seed | block_shuffle | 0.356679741 | 0.335669705 | 0.002531149 | 8.301 |

## Risultato

1. **The orbit support survives the declared surrogate contract.**

   `logistic_orbit_values` keeps `block_entropy_deficit_k4` above gate against
   marginal shuffle, circular shift, and block shuffle in both runs. The
   surviving support is one observable, not a suite-wide endpoint support.

2. **The generating partition remains blank.**

   `logistic_symbolic_itinerary` has no replicated contract-stable observable.
   The main-run circular-shift value for `block_entropy_deficit_k4` is `z=-2.473`,
   but it does not survive marginal shuffle, block shuffle, or seed check.

3. **Return intervals stay outside the contract.**

   `logistic_return_intervals` shows `recurrence_diag_mean` against marginal and
   block shuffle in the main run, but not against circular shift and not in the
   seed check. The support is blank under the declared contract.

4. **The remaining logistic support lives at the cut-sensitive node.**

   Circular-shift denominators for orbit block entropy are very small
   (`0.000036383` main, `0.000010653` seed). The z gate passes, but the next
   falsification must separate local block grammar from artifact of the linear
   starting cut.

## Consecutio

`ORDER_DENOMINATOR_GATE` narrows again:

> The logistic orbit transfers through orbit block entropy under marginal,
> circular, and block surrogates. The generating itinerary and return intervals
> remain blank. The remaining logistic object is orbit-block-entropy support,
> not logistic dynamics as a whole.

Next experiment: falsify the residual support with a cyclic/start-invariant
block entropy observable and multiple block sizes. Declare support only if it
does not depend on the window's starting cut.

## Self-Audit: 5 Lenti

L1 hard constraint vs bias: blank claims are made only for replicated
contract-stable support. The report does not claim that all z values are zero.

L2 quantity vs ratio: raw original, baseline mean, baseline std, and z are
reported for the surviving observable because circular-shift denominators are
small.

L3 no silent patching: the claim under test changed from marginal shuffle to
surrogate contract because the seme directed that node. The old marginal result
is not discarded; it is reclassified as insufficient when it does not survive
the stronger contract.

L4 edge cases: main-run return-interval support is reported and then excluded
because it fails circular shift and seed check.

L5 re-discovery vs discovery: symbolic itinerary blank is consistent with the
classical Bernoulli coding of the logistic map at `r=4`. This report claims a
lab-gate scope, not a new theorem about the logistic map.

## Fonti

- Verificato: `tools/data/agent_field_live.md`
- Verificato: `tools/LAB_AGENT_CONTEXT.md`
- Verificato: `tools/data/seme.json`
- Verificato: `tools/exp_logistic_counter_scope_gate.py`
- Verificato: `tools/exp_logistic_surrogate_contract_gate.py`
- Verificato: `tools/data/logistic_surrogate_contract_gate_20260507_1042.json`
- Verificato: `tools/data/logistic_surrogate_contract_gate_20260507_1042_seedcheck.json`
- Verificato: `python -m py_compile tools/exp_logistic_surrogate_contract_gate.py`
- Inferito: the residual logistic support is cut-sensitive because circular
  shift preserves cyclic temporal order but changes the linear starting cut.
