soft3/zheng/specs/disclosed-noun-memory.md

Disclosed noun memory

Status: experimental component for the dynamic public certificate profile.

The verifier owns an append-only table of validated noun definitions. A table index addresses one occurrence of a noun; its four-limb Hemera particle gives its content identity. A definition consists of an atom or ordered pair of prior indices, the claimed particle and the claimed cached Cost. The verifier checks all three before admitting the definition. Construction starts with an empty table. Every read resolves through this table, including the reads used for Cost derivation. There is no constructor from an unchecked table or supplied root.

The compact append_value entry accepts only the atom or ordered prior indices and derives particle and Cost internally. It uses the same admission rules and validated storage as append. A transport can therefore omit redundant claimed metadata. Public root bindings must still compare the derived particles with the expected statement. Derived metadata is never a successful execution claim.

Admission

Atoms are canonical Goldilocks u64 values below p. Particle limbs are canonical field values. Atom identity hashes its eight little-endian bytes using native Hemera leaf framing (counter zero, non-root); pair identity hashes the ordered child particles using native Hemera parent framing (non-root). All four limbs must equal the claimed identity. The implementation uses Hemera directly and does not call the nox evaluator or accept a prover-supplied constraint system.

Both pair indices must be strictly less than the table length before insertion. Self, forward and missing references reject. Every Cost read consequently resolves to a previously validated record. Atom Cost is Exact(0). Pair Cost follows the complete native 0..17 table and malformed-body rules specified in noun-cost-component.md. Arithmetic saturates in u64; Cost values at or above the field modulus retain their full integer meaning. Quoted data and unselected branch arms have the same metadata interpretation. The claimed Dynamic selector and complete u64 value must equal this derivation.

Duplicate definitions are allowed and independently validated. Table indices are never used as content equality. Equal structural nouns derive equal Costs; identifying distinct structures by particle relies on Hemera collision resistance. This component makes no separate global collision-detection claim.

Bounds and reads

The caller supplies a maximum record count and a maximum requested record-buffer size. Checked multiplication must fit that byte allowance and the platform allocation range before table construction succeeds. Growth is fallible and geometric, bounded by that record count. The byte allowance covers requested record-buffer storage; allocator bookkeeping and the small table object are additional. Admission validates before reserving and appending. Any returned error leaves the existing table length and records unchanged.

A read view borrows one table with a caller-selected frontier no greater than its current length. Reads at or beyond that frontier reject, including records already present later in the table. A returned validated record has private fields and immutable accessors. Binding a root checks the expected particle against the record resolved within the view. The caller is responsible for obtaining that expected particle and frontier from its verified statement or preceding transition. A view itself establishes no job or transition boundary.

Composition boundary

This table supplies authenticated noun/header/Cost reads to a future semantic execution certificate: each accepted record is checked from previously accepted records. Dense indices allow a later external-memory implementation without a content-keyed verifier index. Current storage is bounded in memory.

The component has no execution-proof wire format or production Joy dispatch. It does not discharge the existing tagged CCS builder's unresolved reads; that guard remains unchanged. A separate disclosed semantic profile must specify and check all opcode equations, computed continuations, LIFO state, exact budgets, public program/subject/result bindings, chunk order and terminal completion. Those requirements and actual compiler measurements precede SH7 acceptance. Succinctness, zero knowledge and physical nox allocation/GC claims require separate evidence. Both complete frozen self-build proofs remain the SH8 gate.

Acceptance

Tests use actual nox-created DAGs as a differential oracle for native identities and all Cost cases. Independently forged definitions must reject changed header or particle limbs, noncanonical atoms/particles, wrong Dynamic or either Cost limb, missing/forward/self references, wrong ordered children and wrong expected root. Tests cover duplicate occurrences, malformed bodies, unselected dynamic arms, saturation, restricted frontiers, exact and one-below limits, and unchanged state after rejection. Observed sizes and timings belong in audit/ with exact source and command identities.

Homonyms

soft3/zheng/audit/disclosed-noun-memory
Compact disclosed noun memory The experimental table checks every noun header, four-limb particle and cached Cost before insertion. Pair and Cost reads resolve through prior validated records. Bounded views restrict reads to a caller-selected frontier. This is the memory component for a future…

Graph