# M1A–M1C Numerical Audit Results

**Status:** current local baseline, generated by `npm run --silent audit`, `npm run --silent sweep`, and `npm run --silent boundary-audit` on the accepted model source.

## What this audit establishes

The audit checks whether the declared discrete rate-field rule is deterministic, bounded, and reasonably insensitive to smaller relaxation steps and a scaled grid. It does not establish a continuum limit, biological plausibility, or a discovery about neural tissue.

## Model decision

The initial implementation was rejected as the article baseline because its finite-kernel zero-sum correction created an oversized compensating self-feedback term and sent the state to hard-clamped binary values. The present baseline uses:

- a finite, periodic difference-of-Gaussians kernel;
- separate finite-lattice normalization of the excitatory and inhibitory lobes;
- an ordinary centre sample rather than a separate self-feedback correction; and
- a logistic response with a convex relaxation update.

This is now an explicit **abstract discrete rate field**. It is inspired by neural-field literature, not fitted to biological data.

## Reproducible baseline

At the default 72 by 48 grid and horizon 24, the default run has approximately:

- mean activity `0.500`;
- standard deviation `0.399`;
- active fraction above `0.1` of `0.683`;
- no values numerically at either bound under the audit tolerance; and
- mean spatial total variation `0.094`.

The finite kernel has 289 entries, a normal centre weight of approximately `0.057`, and a total weight of `0.2`. These are diagnostics of the selected discrete kernel, not universal constants.

## Sensitivity checks

For the same horizon, decreasing `dt` from `0.15` to `0.075` and `0.0375` gives mean absolute differences of about `0.0060` and `0.0020` from the finest tested step. A twofold grid scaling, with radii and Gaussian scales increased proportionally, keeps the mean (`0.500`), standard deviation (about `0.401`), and active fraction (about `0.682`) close to the baseline.

The audit also repeats the default run with seeds `3`, `17`, and `31`. These checks are deliberately modest: they test replay and small-noise sensitivity, not statistical robustness across a full parameter study.

## M1C boundary comparison

Four boundary modes are audited at the default configuration (seed 17, horizon 24, 160 ticks) and the full 3 × 3 parameter sweep. Run `npm run --silent boundary-audit` to reproduce.

**Core/edge partition.** `edgeMargin = kernel radius = 8`. Only non-periodic axes contribute to the edge zone. For torus (both axes periodic) `edgeMean` is `null` and `coreMean` equals the whole-field mean. For cylinder (x periodic, y non-periodic) only top/bottom bands of 8 rows are edge; x-boundary columns are never edge. For zero and replicate (both non-periodic) a 4-sided band of width 8 is edge.

### Default-configuration comparison (seed 17, torus baseline)

| Mode | Whole-field MAD from torus | Core MAD from torus | coreMean | edgeMean |
|---|---|---|---|---|
| torus | 0 | 0 | 0.499981 | null |
| zero | 0.434315 | 0.447143 | 0.424819 | 0.766190 |
| replicate | 0.197971 | 0.121633 | 0.546765 | 0.427141 |
| cylinder | 0.406469 | 0.399472 | 0.453306 | 0.778104 |

Core MAD values use the variant mode's own periodic axes to define the core region. All core MAD values are material (>0.12), indicating that boundary effects propagate well beyond the 8-cell edge zone into the interior.

### Parameter-sweep label agreement

All four modes agree on the same regime label at all 9 of the 9 sweep points (100% agreement).

**Important caveat: regime-label agreement does not imply state-level boundary robustness.** The regime classifier is a coarse numerical summary (mean, SD, step-change). Modes that agree on a label can still produce materially different field states, as the core MAD values above demonstrate. The MAD is the quantitative sensitivity measure; the label is not. Any article claim about boundary robustness must reference the MAD, not just label agreement.

## Strict claim limits

Every claim in a published article or public note must be bounded as follows:

- **System scope:** all results describe this specific discrete rule (defined in `src/neural-field.js`) on this synthetic lattice, at the documented configuration and horizon. No result extends automatically to a different grid size, kernel radius, time step, or boundary mode without re-running the relevant audit.
- **Biological scope:** the system is abstract. It is not fitted to neural recordings, not a clinical model, and not a validated simulation of any biological structure. The word "neural" in the project title is a statement of conceptual lineage, not biological equivalence.
- **Boundary scope:** differences between boundary modes are numerical properties of this implementation. They do not establish that any mode is biologically realistic, that the lattice approximates a continuum system with that boundary condition, or that results are robust beyond the tested parameter range.
- **Regime labels:** the four regime labels (low activity, broad activation, persistent spatial structure, unsettled or seed-sensitive) describe output statistics of this code. They are not biological states, not universally defined categories, and not transferable to other implementations without re-specifying the classifier thresholds.

See [`numerical-foundations.md`](numerical-foundations.md) for the exact equations and M1C comparison semantics, and [`references/README.md`](references/README.md) for the literature boundary.
