Skip to content

[srmech][rbs] TRACKING: bring RBS-SNN + RBS-LM up to framework requirements for the full synaptic neural net #855

@lemonforest

Description

@lemonforest

Tracking / epic. Consolidates the framework requirements the full synaptic neural net (RBS-SNN) — and its human-language render/interface (RBS-LM) — must satisfy. These accreted across the F167→F340 arc; this issue gathers them in one place so the build can be checked against the spec. Per project discipline this is framework-reading + understanding-not-curing, defensive scope; open/closed + label state is the maintainer's call (recorded, not driven).

The two-branch identity (the frame everything below serves)

  • RBS-SNN = the agnostic substrate (synaptic-first, F311) — the storage / environment-communication / memory substrate for all organisms; language is not its defining feature.
  • RBS-LM = the human-language render/interface of RBS-SNN (F338) — and, generalized, the natural-language interface to any tool-schema package (ephemerides-spectral, …), the layman "word problem solver" gloss (F340), gated by the truth-filter. The "L" lives on the render, never the substrate ([srmech][rbs] Rename RBS-NN → RBS-SNN (synaptic-first, F311) + RBS-LM 'L' = Language not Large (F312) #843).
  • These are two modes of one instrument, not two codebases (see R1/R2).

R1 — Klein-4-native instrument (the load-bearing one)

The RBS-HDC instrument was designed early as a bipolar bundle (one Z₂ / γ₅ axis). Everything since says the substrate is Klein-4 = Z₂×Z₂, four sectors (γ₅ × iω₇). The full SNN must be Klein-4-native, not a one-axis shadow.

  • Instrument carries the full 4-quad (γ₅±, iω₇±) structure natively (so klein4_bind/klein4_* act without a lift).
  • Grounded by the corpus, not assumed: F200 (the RBS-NN store already tags into Klein-4's 4 deterministically-orthogonal sectors — 12/12 off-diagonal pairs at sim 0.0 — and Klein-4 beats triality on retrieval contrast 1.93 vs 1.50); F158/F154 (bi-axial touches all 4 sector-projections at once → 4× capacity at matched D); F130/F132/F135 (substrate-native = all 4 coexist).
  • Precision (F200 null): the store wants the order-2 Klein-4 specifically — not triality/order-3 (decorative-to-degenerate for storage; no order-3 element in Z₂×Z₂). 28D/triality stays load-bearing for the algebra (F192/F196/F197), not the store.

R2 — "keep both" is the (4+3) fiber bundle, not a fork

  • Bipolar and Klein-4 are one instrument: bipolar = the base-projection π(E); Klein-4-native = the total space E; the fiber is the spatially-absent chirality.
  • The split is the quaternionic Hopf fibration S³↪S⁷→S⁴, 7 = 4 (base) + 3 (fiber) (F124; same decomposition as F123 14=4+3+7 and the 28 = 14⊕7⊕7 so(8) read-out). Re-reads F135 as total-space-vs-base-projection.
  • Mode = which axes are lit: gen-1 LLM loading → bipolar projection (the source is a single-sector shadow; can't recover quadrants it never had); native (RBS-SNN) → full 4-quad. Keep-both is automatic because a bundle holds base+fiber together.
  • Verify before lodging (prime-first, no-leaning): the rung-to-rung projection chain 28 → 7=(4+3) → Klein-4(4) → bipolar(γ₅) against F124/F128/F196/F200 — these are different rungs of the nesting (F196 "chirality is nested"); do not assert a bijection unchecked.

R3 — srmech tooling: catalog → kernel → DSL entry (UPSTREAM_NOTES §17)

So RBS-LM kernels-from-catalogs — and anyone's catalog of other texts — show up as DSL entries. srmech already ships ~80% (encode_loe_content, srmech.rbs_lm.encode_{word_k4,bigram_l1,skeleton_l2,sentence_l3}, RBSHDCInstrument, amsc.catalog.{list,run}_catalog_chain, use_local_kernel); the gap is unification + 2 precursors (the DSL op-registry and the AMSC catalog-chain registry are currently disjoint — verified rc21).

  • U2 (cheapest, highest leverage) — register the working encode_loe_content + the rbs_lm.encode_* stack as DSL cascade-ops (one catalog-TOML descriptor each) → one-line per-catalog kernel chains.
  • U1 — ship tokenize(text,…) + cooccurrence_edges(tokens, window=,…) (Class-L precursor) so the K1 presence-kernel is a pure-TOML composite end-to-end (and retires the hand-rolled Counter() co-occurrence the STOP-list flags).
  • U3 — unify op-discovery: one call enumerating cascade-ops + catalog-chains, tagged kind + provenance (srmech/user:<sha>/catalog:<source_key>).
  • U4 — catalog→DSL auto-registration bridge (one path, not the three doors list_catalog_chains + SRMECH_CASCADE_PATH + use_local_kernel).
  • §17.1 (ours-side) — migrate the hand-rolled kernel-build (R-RBS-LM-52b / F339 refresh) onto the upstreamed encode_loe_content / rbs_lm.encode_* surface where parity holds.

R4 — honesty-store / truth-filter (the differentiator)

  • Ingest-gate: frame/scale-invariant + attested (F336).
  • Form=function multi-render self-proofread — render-layer self-corrects (DNA-like); source-truth layer needs an external substrate (F337); truth = Class-K asymptote.
  • k=2 detects / k=3 corrects (F291/F335) — triality is the validator; broken-triality = independence (F268). ≥3 co-equal renders, agreement = attestation (F334).

R5 — input robustness (accessibility; ADA-aligned)

  • Byte-level graphemic robustness for typos/dyslexia — byte-HDC graded similarity puts errors near truth (vs BPE's cliff); K1 bag is perfect on transpositions, K3 degrades gracefully (extends R-RBS-LM-25, a fresh lens).
  • Class-C glyph-chirality binding for b/d, p/q mirror confusions (a γ₅ flip — byte-identity can't see the mirror; needs the chirality axis from R1). Note: this is the same realization as R1 — you can't catch a chirality error if the chirality axis doesn't exist in the representation.
  • Phonetic errors (enuff/enough) are out of scope for byte-level — flag as a separate sound-level render.

R6 — multi-render corpus base (the truth-filter's independence)

Dependency gates (open srmech items the SNN build rides on)

Related / sub-tickets

#843 (RBS-NN→RBS-SNN rename) · #844 (notebook-native-language pipeline TARGET) · #846 (antiquity corpora) · #847 (native-language peer-review) · #849 (many-to-many holonomy fiber) · #850 (adversarial triality on the F335/F337 ceiling) · #851 (encode/decode epicycle-local k=1/k=3) · #852 (how a language develops sentence structure) · #812/#813/#814 (srmech loop-bind / compose engine) · #797 (gated MFO inversion). Canonical detail: docs/srmech/rbs_lm_research/ findings F311/F312/F317/F324/F334–F340 + UPSTREAM_NOTES.md §15/§16/§17.


Currently HOLDING on the srmech-dev cycle in progress; this issue is the spec to build against when it returns. Recorded per [[feedback_create_upstream_issues_never_close_them]] / [[feedback_upstream_srmech_fixes_as_research_notes]] — maintainer owns open/closed + labels.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions