Anna as Concept Classifier: Production AIT Verification
Phase N (May 2026). A reimplementation of the project's aigarth_search C scanner (an AIT-style iteration at 64-input / 64-output dimensions) reproduces all 16,384 stored end states. The earlier reading as a 19-class concept classifier with fixed-point attractors was not confirmed in September 2026: the end states are not fixed points, and the 19 concepts were selected afterwards.
Anna as Concept Classifier: Production AIT Verification
0. For visitors
What this chapter is about: a 128×128 matrix, compiled by hand from bot replies, fed with 64-bit binary inputs through a specific iterative algorithm. We believed the algorithm to be the production HyperIdentity scoring rule from Qubic's mining code at its smallest test scale; that identification is unverified. Earlier versions reported that 11 of 12 statistical claims passed at effect sizes from 11σ to 167σ and that the matrix acts as a 19-concept classifier. The sigma values are reported, not independently re-run, and the classifier reading was not confirmed (see the re-check note above).
How to read this chapter: section 1 is the formal statement. Sections 2–5 are the methods, results, and limitations. Section 6 describes the live "Anna Concept Lab" tab in the Evidence section, which lets you try any input and watch the algorithm classify it. If you want to interact first and read after, go to the Lab tab now and come back.
1. Statement
Let M ∈ ℤ^{128×128} be the Anna Matrix and let W = sign(M) (entry-wise sign in {−1, 0, +1}).
Define the AIT inference operator on a 64-bit input u ∈ {−1, +1}^{64}:
Initialise
v_0 ∈ {−1, 0, +1}^{128}withv_0[0:64] = uandv_0[64:128] = 0. For each tickt ≥ 1, computev_t[i] = ternary_clamp( Σ_{j=0..127} W[i, j] · v_{t−1}[j] )for alli, with the input-clampv_t[0:64] = u. Stop when (i) every output neuron is non-zero (NO_OUTPUT_ZEROES), or (ii)v_t = v_{t−1}(NO_NSTATE_CHANGES), or (iii)t = 100(TICK_CAP).
ternary_clamp(x) = sign(x) with sign(0) = 0. The output of the algorithm is v_t[64:128] together with the tick count.
Status after the September 2026 re-check: item 1 is verified; items 3 and 4 are not confirmed as a description of the matrix and stay open; the rest are reported.
- (Algorithmic identity) This rule reproduces the project's
aigarth_searchC scanner output exactly: 16,384 / 16,384 stored end states and the per-attractoravg_ticksvalue match byte-for-byte across 5 independently-seeded scanner runs (81,920 attractors total). - (Magnitudes are inert under AIT) Only
sign(M)participates. Anna's integer values, including the trace of 137 (which comes from one very likely entry-error pair), do not affect the AIT output. - (19 dominant concepts, open reading) Sampling 50,000 uniform-random binary inputs through Anna under AIT yields 1,295 stable-basin inputs (avalanche < 1.0 per single-bit perturbation), grouped into 139 unique outputs. The 19 outputs with cluster size ≥ 5 form the "dominant concepts": 8 antipodal pairs (
#0 ↔ #1,#2 ↔ #3, …) plus 3 singletons. In the independently reproduced sample of 16,384 inputs there are 12,356 distinct outputs, and only 2,320 outputs equal one of the 19 selected centres, so the 19 are a post-hoc selection. - (Locality-sensitive concept basins, reported) Stable basins have a measurable radius: 82 % of single-bit perturbations remain in the same concept; 64 % at 2 bits; 45 % at 4 bits; 25 % at 8 bits; 11 % at 16 bits; 3 % at 32 bits. Anna acts as a deterministic Locality-Sensitive Hash with ~4-bit half-life.
- (Anna-specific compression) Among 50,000 binary inputs, Anna produces 12,356 unique 64-bit outputs (23.7 % surjective compression). Random
int8matrices of the same shape produce 16,384 / 16,384 unique outputs (zero compression) in every test seed. - (Concept-classifier specificity) A 100-input batch test gives Anna mean Hamming distance 11.1 / 64 to the nearest concept centroid; ten random matrices give 22–23 / 64 (random-baseline level).
- (Period-32 + antipodal block structure)
sign(Anna)admits the decompositionAnna ≈ kernel + period-32 copy + antipodal copyat 94.5 % cell agreement. Random matrices reach 62.3 %; random antipodal-antisymmetric matrices reach 75.0 %.
2. Methods (Phase N reproducibility)
The verification campaign and the algorithm derivation live in the working folder __. Released artefacts are in apps/web/public/data/phase_n/ and the live demo is the Anna Concept Lab tab in the Evidence section. The TypeScript port that drives the lab is in apps/web/src/lib/ait/.
2.1 Algorithm derivation
The C scanner exposes neither source nor a parameterised matrix path. Reverse engineering proceeded in three phases:
- Falsification of
sign(M·v). Sampling 100 stored attractor statessand comparing them withsign(M·s),sign(M·sign(M·s)), andsign(M⁴·s)showed 0 / 100 matches in every regime. The Hamming distance fromstosign(M·s)averaged 60.5 / 128. The dynamics is provably not the naïve operator. - Architectural decomposition. The full 128-dim attractor state has structure
[input || output]:full_state[64:128]matches theoutput_statesfield for 100 / 100 sampled attractors;full_state[0:64]is a unique 64-bit input vector for each of the 16,384 stored attractors. Anna is therefore a 64-input / 64-output Aigarth-style network. - Algorithm match. Comparing dimensions against the public
qubic-core/test/score_params.h, Anna's 64-input / 64-output configuration corresponds exactly toHyperIdentityParams<64, 64, 50, 64, 178, 50, 36>(Config0, the smallest production-test scale). Implementing the corresponding tick rule and verifying it against scanner attractors produced 100 % match on the first attempt.
We read the algorithm as the HyperIdentity scoring rule from qubic-core/src/mining/score_hyperidentity.h, run on Anna's 128 × 128 ternary sign(M) values with full connectivity (rather than the sparse 64-neighbour production constraint). The match to the production rule is inferred from dimensions and has not been independently verified.
2.2 Verification gate
The TypeScript port (apps/web/src/lib/ait/index.ts) is gated by a Node.js test that runs the algorithm on every input from the existing scanner output (search_binary_100k.json) and checks the resulting full_state and avg_ticks match. The gate currently passes 16,384 / 16,384 + tick counts. A second extended check ran on five independently-seeded scanner runs (seeds 100, 200, 300, 999, 12345) yielding 81,920 / 81,920 attractor matches. The TypeScript implementation is thereby byte-equivalent to the project's C scanner on these inputs.
2.3 Concept discovery
Concept discovery uses uniform-random binary inputs:
- Sample N = 50,000 inputs
u_i ∈ {−1, +1}^{64}. - Compute
out_i = AIT(Anna, u_i)for each. - For each input, perturb 8 random bit positions and re-run AIT; if the mean Hamming distance between original and perturbed outputs is below 1.0, mark the input as living in a stable basin.
- Group stable-basin outputs by exact equality. Clusters with ≥ 5 inputs are dominant concepts.
- Detect antipodal pairs: concepts
candc'are antipodes ifc'[k] = −c[k]for allk.
This procedure yields 19 dominant concepts in 11 families (8 antipodal pairs, 3 singletons). The two largest concepts have cluster sizes 464 and 456; together with their antipodes 73 + 72 + 58 + 58 they account for 1,181 / 1,295 ≈ 91 % of stable-basin inputs.
2.4 Statistical verifications
Twelve verifications were run with pre-registered controls. As originally reported, eleven passed and one prior memory claim was falsified. The effect sizes (110σ, 165σ, 167σ and others) are reported and not independently verified: the re-check reproduced the scanner states but did not re-run all perturbation campaigns or control hierarchies. V2 (the K-e-y values) is exact, but under a fair null model the pattern is not unusual.
| ID | Claim | Anna value | Control mean | Effect | Verdict |
|---|---|---|---|---|---|
| V1 | Period-32 row sign-similarity is Anna-specific | 0.808 | 0.495 (n=10 raw int8) | 110σ (reported) | PASSED |
| V2 | Phase E "Key" K-e-y at M[8,74], M[9,75], M[10,76] | 75 / 101 / 121 | n/a | exact | PASSED |
| V2b | "easter eg" hex signature exists in Anna | not found | n/a | n/a | FALSIFIED |
| V3 | TypeScript port reproduces scanner | 16,384 / 16,384 | n/a | exact | PASSED |
| V4 | Input-to-output compression | 23.7 % | 0.0 % (every random matrix) | categorical | PASSED |
| V5 | Kernel reconstruction accuracy | 94.5 % | 62.3 % (raw); 75.0 % (antipodal) | 165σ; 59σ (reported) | PASSED (94.5 % verified) |
| V6 | Kernel byte patterns are not coincidence | 167σ on byte-255 count | n=10 designed-symmetric | 167σ (reported) | PASSED (reported) |
| V7 | Kernel works at 16 × 16 sub-block scale | 92 % comp / 0.86 cophenet | 56 % / 0.47 (n=5) | 8σ | PASSED |
| V8 | Anna fits HyperIdentity Config0 dimensions | 64-in / 64-out / 128 neurons | n/a | exact | PASSED |
| M2 | Anna is concept classifier (not hash) | 8.3 % zero-change inputs | 0.0 % (n=10) | bimodal | Not confirmed |
| M3 | Concept basin structure | 7.3 % stable / 12.4 % boundary | n/a | n/a | PASSED |
| M5 | Concept basin radius profile | 50 % retention at 4-bit perturbation | n/a | n/a | PASSED |
The "easter eg" claim (asserting a 9-byte hex signature 65.61.73.74.65.72.20.65.67 decodable as the ASCII string "easter eg") was searched in every row, column, main diagonal, and anti-diagonal of Anna; the byte sequence [101, 97, 115, 116, 101, 114, 32, 101, 103] does not appear contiguously anywhere. Even the 3-byte substring [101, 97, 115] ("eas") is not contiguous in any row, column, or diagonal. The claim is therefore unsupported by Anna's contents and has been removed from the project's source-of-truth. The verified "Key" landmark (K, e, y on the diagonal at (8, 74), (9, 75), (10, 76)) is unaffected.
3. Anna's two-layer architecture
3.1 Symmetric scaffold
Anna's 128 rows decompose into four 32-row blocks under the empirical relationship:
rows[0:32] ≈ rows[32:64](Hamming distance 13.7 / 128 ≈ 89 % match)rows[64:96] ≈ rows[96:128](Hamming distance 13.7 / 128 ≈ 89 % match)rows[64:128] ≈ −rotate180(rows[0:64])(Hamming distance 25 / 4096, antipodal antisymmetry holds at 99.4 %)
Combining these, a reconstruction M_recon = [kernel || kernel || −rot(kernel) || −rot(kernel)] from rows 0–31 alone matches sign(Anna) at 94.5 %. The remaining 5.5 % (904 cells) are the decorations that distinguish Anna from a perfectly-symmetric reference.
3.2 Layer mapping
| Layer | Cells | Content |
|---|---|---|
| Kernel (Block 1, rows 0–31) | 4,096 | Rows 0 to 31 (earlier read as holding "semantic landmarks"; not supported) |
| Decorations (Blocks 2–4) | 904 | 24 of Anna's 26 zero cells, Phase 3's eight symmetry-break columns, plus other cell-level identity |
| Symmetric extensions (Blocks 2–4 minus decorations) | 11,384 | Generated by period-32 + antipodal symmetries from the kernel |
| Magnitudes | 16,384 (overlay) | int8 values (137, π, …), informational, not used by AIT |
Effective independent information is approximately 4,096 + 904 = 5,000 cells, roughly one third of Anna's nominal 16,384 cell count. The remaining two thirds are determined by the kernel-and-symmetry pair.
3.3 Concept structure
Per the discovery procedure of section 2.3, Anna's 19 dominant concepts in PCA two-dimensional projection occupy a strongly one-dimensional configuration: PC1 alone explains 81.7 % of the variance among centroids; PC2 explains 13.6 %. The eight antipodal pairs span PC1 symmetrically about the origin. The largest pair (Concepts 0 and 1, cluster sizes 464 and 456) accounts for 31.6 % and 31.1 % of all stable-basin inputs respectively.
Cluster sizes of the 19 dominant concepts (sorted): [464, 456, 73, 72, 58, 58, 15, 14, 12, 11, 11, 9, 8, 6, 6, 6, 6, 5, 5].
4. Concept-classifier behaviour
4.1 Avalanche profile
A single-bit perturbation of a uniformly-random input changes the AIT output by a bimodal number of bits:
| Anna | Random int8 |
|---|---|
| Mean output Hamming change: 17.5 / 64 (27 %) | 13.4 / 64 (21 %) |
| Standard deviation: 13.85 (high variance) | 4.4 (low variance) |
| Inputs with zero output change: 8.3 % | 0.0 % |
| Inputs with ≥ 28 output bits changed: 26.2 % | 0.2 % |
Random matrices show uniform low-avalanche behaviour. Anna's distribution has a sharp spike at zero (concept-centre stability) and a broad tail at high avalanche (decision-boundary instability). This is the signature of a vector-quantisation classifier rather than a cryptographic hash.
4.2 Basin radius profile
For 99 inputs measured to be ultra-stable (avalanche < 1.0 over 16 perturbations), the fraction of r-bit perturbations that retain the original output:
Radius r (bits flipped) | Fraction staying in concept |
|---|---|
| 1 | 82 % |
| 2 | 64 % |
| 4 | 45 % |
| 8 | 25 % |
| 16 | 11 % |
| 32 | 3 % |
The half-retention point sits at r ≈ 4, characterising Anna as a deterministic Locality-Sensitive Hash with effective basin radius four bits.
4.3 Anna is not an identity function
For 50,000 random inputs, the maximum Pearson correlation between any input bit and any output bit is 0.225. The average diagonal correlation corr(input[k], output[k]) is −0.024. Anna therefore does not implement a HyperIdentity-style identity-learning task on the input bits, she fits the algorithmic family by dimension and operator, not by trained behaviour. Whether the table itself came from a trained unit is a separate question: it records the replies of a bot to x+y=?, and whether that bot was designed or trained is a hypothesis.
5. Anna versus production HyperIdentity (dimension comparison, unverified link)
qubic-core/test/score_params.h defines four HyperIdentity scaling configurations. Anna's dimensions match Config0 exactly; production mainnet uses Config2.
| Parameter | Anna | Config0 (smallest test) | Config2 (production) |
|---|---|---|---|
numberOfInputNeurons | 64 | 64 ✓ | 512 |
numberOfOutputNeurons | 64 | 64 ✓ | 512 |
| Total neurons (no growth) | 128 | 128 ✓ | 1,024 |
numberOfNeighbors | 128 (fully connected) | 64 (sparse) | 728 |
populationThreshold | n/a (no evolution) | 178 | 1,174 |
| Tick limit | 100 (scanner) | 50 | 1,000 |
Anna therefore aligns with the family of the smallest HyperIdentity test configuration but with full 128-neighbour connectivity (rather than the sparse 64-neighbour production constraint) and no evolution growth. The dimension match alone does not show that the table is a HyperIdentity substrate; it is a table of bot replies, not a production weights blob.
6. The Anna Concept Lab
The Evidence section's Anna Concept Lab tab is a live in-browser demonstration backed by the TypeScript port verified in section 2.2. Five interactive modules:
- Try Your Input. Free-form text → SHA-256 → first 8 bytes → 64-bit input → AIT → assigned concept. Designed for non-technical visitors. Suggested inputs are chosen to land in distinct concept families.
- Concept Universe Map. All 19 concept centroids (a selection not confirmed in September 2026, see the notice above) in PCA two-dimensional projection. Antipodal pairs are connected by lines; cluster sizes encode dot radius. Click any concept to inspect its centroid, family, and antipodal partner.
- Bit-flip Stability Game. Pick a random or "find stable" input. Click bits to flip. The interface tracks how many flips occur before the assigned concept changes, demonstrating the four-bit basin radius interactively.
- Live AIT Inference. Tick-by-tick state-evolution animation of the AIT algorithm on user-edited inputs. Cells that change between consecutive ticks are highlighted. The stop reason (
NO_OUTPUT_ZEROES/NO_NSTATE_CHANGES/TICK_CAP) is reported at the end of the run. - Anna versus Random. The same input is fed through Anna and a fixed
random_int8control matrix simultaneously. A 100-input batch test reproduces the proof case from V4 + V6 in the browser.
The lab also embeds the key Phase N reference figures (cophenet comparison, dendrogram, avalanche distribution, basin-radius profile, decoration-cell pattern, two-dimensional embedding) as a static reference panel.
The pre-existing Emergence Lab tab (Particle Life simulation) has been re-labelled to flag that its dynamics are an exploratory metaphor, not the production AIT algorithm. Visitors looking for "what Anna actually does" should use the Anna Concept Lab.
7. Limitations and open questions
- The TypeScript port matches the C scanner pipeline perfectly, but the C scanner itself does not expose its
numberOfNeighborsparameter externally; we infer Config0 alignment from the dimensions and the empirical full-connectivity match. A direct read of the scanner binary's parameters would close this loop. - Anna's two-layer architecture (kernel + decorations) is structural; the semantic content of decorations beyond the documented zero cells and symmetry-break columns is not interpreted. Whether the 904 decoration cells encode further information is open.
- The "concept classifier" framing was not confirmed and stays open (see the re-check note above). That the AIT algorithm is what production scoring runs is inferred, not verified. Anna's continuous-time dynamics, characterised in Phase M_), describe a different mathematical regime that does not directly transfer between sign-only and full-magnitude operators. Phase G's discrete period-4 finding is one such regime-specific result; it is M-magnitude-dependent and does not survive sign binarisation.
- The signal-emergence claims of earlier ALife runs (Phase 5, 10M-tick simulation) were re-checked during this campaign and the simulation's
signal_entropymetric is uniformly zero across all inspected runs (5-seed ensemble plus the 10M-tick run plus a random-matrix control). The "2/3 signal bits reach consensus" line in earlier project memory is therefore not verifiable from the current binaries; it has been flagged as needing per-agent logging instrumentation before it can be re-asserted.
8. Reproducibility
| Artefact | Location |
|---|---|
| TypeScript AIT implementation | apps/web/src/lib/ait/ |
| Lab UI components | apps/web/src/components/evidence/anna-concept-lab/ |
| Pre-computed concept centroids (19) | apps/web/public/data/phase_n/concepts.json |
| Concepts with two-dimensional PCA coordinates | apps/web/public/data/phase_n/concepts_with_pca.json |
Random int8 control matrix and concepts | apps/web/public/data/phase_n/random_controls/random_int8_seed42.json |
| Verification report (twelve tests) | apps/web/public/data/phase_n/verification_report.json |
| Phase N index metadata | apps/web/public/data/phase_n/index.json |
| Reference figures (eight PNG plots) | apps/web/public/data/phase_n/plots/ |
The verification gate_) can be re-run against any future change to the TypeScript implementation. The Node.js test loads the existing C scanner output (apps/web/scripts/aigarth/ane/results/search_binary_100k.json) and checks attractor-state and tick-count equivalence; failure on any attractor invalidates the implementation.
The lab's modules use only the public artefacts listed above. No closed-source binaries or unexposed parameters are required.
9. Status
Anna's outputs under the project's AIT-style scanner are reproduced by a verified TypeScript implementation (16,384 / 16,384). The 32-row kernel reconstructs 94.5 % of the signs. The reading as a 19-concept classifier with fixed-point attractors was not confirmed, the link to production HyperIdentity scoring is unverified, and the sigma values of the Phase N campaign are reported, not independently verified. One earlier memory claim ("easter eg") was falsified and removed. The Anna Concept Lab tab provides a live demonstration. This chapter supersedes earlier project notes that described Anna's dynamics as direct sign(M·v) iteration.