world-prules-inputs
The groupant beside world/src/prules.rs in the Mova repository: what the code computes, what it never does, how to go back from its outputs, its invariants, cost and checks.
Facts
Implementation material. A Mova code model describes this code at one source revision: partial models, finite checks and their stated scope. It is not a reviewed general exposition, and its labels are shown as written, never raised.
Components
| component | label | where |
|---|---|---|
| approximant | partial source model | forward |
| ast | partial | ../syntax.json |
| composition | partial source model | composition |
| cost | partial source model | cost |
| descriptant | partial source model | epoch-memory |
| invariant | partial source model | invariant |
| tests | partial source model | checks |
Obernants
The typed relations around the forward model: the behaviour complement (what the code never does), the reverse reconstruction (every input compatible with an output) and specialised views.
| id | type | label | where |
|---|---|---|---|
world-prules-inputs-behavior-complement | behavior_complement | partial source model | behavior-complement |
world-prules-inputs-reverse-reconstruction | reverse_reconstruction | partial source model | reverse-reconstruction |
world-prules-inputs-gold-filter | selection_relation | partial source model | gold-filter |
Model text
forward
Load dev/teacher keys, read lesson prefixes, project scored frames, filter judged-only alignments and remap links.
invariant
Held keys excluded from teacher additions; corrupt shown/corrected frame removes teacher line. Key filtering is not a provenance proof.
cost
Rows+ordered maps+frame parsing; prefix parser and alignment costs external.
composition
Source-bound parent supplies exact shared state and dependency assumptions. Independently projected fragments do not prove their wiring.
epoch-memory
Initial 2026-10-30 scope. Preserve unknown lexical, data and effect semantics. Source inspection and executed bounded helpers remain distinct.
checks
Nine native tests in wave9_models (five prules, four school_tree), repeated twice per debug/release profile, plus compiled production mutants; see evidence.md in the file parent. Binomial word oracle n<=12, gate finite grid, supplied-head graph universe 6^4, feature boundaries and reverse fibers. No real learning/data-loading or parser-to-Reading run. Prospective math recorded before implementation; large-n old-code failure precedes repair.
domain
Fix source revision, external dependency outputs, configuration and sufficient resources. Observe one terminating call or explicitly bounded trace. Arithmetic domains exclude overflow except named refusal tests. Specialized relations are source-derived partial models unless a finite oracle is explicitly named. No unrestricted reverse solver is implemented.
behavior-complement
On fixed input tables and terminating dependency calls, excluded outputs include teacher rows at held/dev keys, mismatched teacher text, or unaligned frames retained in judged_only scoring. Invalid correction removes the entire teacher line rather than shifting indices. These are source-inspected inner exclusions, not proof of provenance beyond keys.
reverse-reconstruction
Given loaded rows, retain every teacher log/item/gold/lesson-prefix read that yields them. Extra held keys, malformed rows and trimmed whitespace can be invisible. Given judged-only counts, retain compatible aligned frames plus all discarded unaligned frames; original link index layout needs the discarded remap. No unique original text or gold log follows.
gold-filter
load selects dev with gold and teacher outside held/dev key sets, requiring teacher text trim-match. teacher_gold skips short/bad-index rows, rejects a whole line with unreadable shown/corrected frame, appends valid MISSING. judged_only aligns and removes unjudged system frames. This key-based filter was inspected, not exercised on external artifacts; schema/provenance beyond keys is assumed.
This page in Markdown โ https://md.groupants.elamur.ai/free/en/mova/world/src/prules.rs.groupant/inputs.groupant/