Elamur GroupantsโŒ•
โ˜ฐ

world-schoolbench

The groupant beside world/src/schoolbench.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

componentlabelwhere
approximantpartial source modelforward
astpartialsyntax.json
compositionpartial source modelcomposition
costpartial source modelcost
descriptantpartial source modelepoch-memory
invariantpartial source modelinvariant
testspartial source modelchecks

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.

idtypelabelwhere
world-schoolbench-behavior-complementbehavior_complementpartial source modelbehavior-complement
world-schoolbench-reverse-reconstructionreverse_reconstructionpartial source modelreverse-reconstruction
world-schoolbench-cadence-preimagereverse_reconstructionpartial source modelcadence-preimage
world-schoolbench-selection-fiberinformation_losspartial source modelselection-fiber
world-schoolbench-score-projectionobservation_relationpartial source modelscore-projection
world-schoolbench-cursor-boundarystate_transitionpartial source modelcursor-boundary
world-schoolbench-artifact-ordereffect_boundarypartial source modelartifact-order
world-schoolbench-controls-scopeconstraint_relationpartial source modelcontrols-scope

Parts

Model text

model

world-schoolbench

Source-bound epoch 2026-10-30. Every view below uses this exact source revision and finite inputs with sufficient allocation resources. Forward/absent/reverse relations observe only the stated projection; filesystem models assume fixed supplied dependencies and distinguish successful returns from partial effects. Status: partial source model, with bounded native evidence in evidence.md at the root sidecar. No approximation percentage, universal proof or school accuracy claim.

forward

Options choose a validated course identifier, seed, explicit tier/round or automatic cursor+1. Selection groups by stars, ranks (SHA256(seed NUL course NUL lesson-number), original index), keeps ceil(group-size/divisor) and restores chronological indices. A plan returns before run creation or course execution. A real run writes plan, invokes run_course_lessons with the selected Lesson clones, validates and scores trace, writes report/result, then advances cursor only in automatic mode.

invariant

Selection indices are unique and ordered; quick is contained in medium contained in full for identical lessons and seed. Scores observe recorded rows, not lesson semantics. Automatic cursor advances only after result write succeeds; previous effects are not rolled back on failure.

cost

N lessons: hashing total identity bytes plus O(sum_s n_s log n_s) comparisons and O(N) storage; sorting selected indices O(K log K). Trace score O(trace bytes), width 15 per accepted row. Course execution and external parser/cache costs remain unknown.

composition

Leaf projections share exact lesson identities, selected indices, text bytes and option ordering. Compose only with those shared values retained; isolated score/length observations cannot recover them. Source inspection identifies knowledge::main_args dispatch, schoolbench selected-lessons -> counts -> run_course_lessons -> trace scoring, and schooltools option_line -> canon -> tally/lint/edit. Tests execute native pure helpers and isolated snapshot/restore; no live course/parser/teacher call.

epoch-memory

Initial coverage records tolerant parser/score semantics and per-file effect boundaries. Model review exposed the direct zero restore index panic, repaired after old-code failure. Benchmark score loop was extracted unchanged to a pure private helper to test actual classification and width/count gates. Lock constructor failure may leave a stale directory; argument failures can consume flags. These remain explicit source-inspected limitations.

checks

Native module filters schoolbench:: and schooltools::, including eight new wave9 tests; independent finite rank/cadence/length/fraction oracles and a restore no-effect fixture. Raw evidence is external under $MOVA_DATA/runs/octopus-wave9-school-2026-10-30; root evidence.md binds outcomes. Macro bodies in syntax projection remain opaque; finite agreement does not certify unbounded input space.

behavior-complement

Type: behavior_complement. Subject: world-schoolbench, epoch 2026-10-30. Domain and observation: scoped inputs and projected outputs defined here. Operator/assumptions: Universe is normal-return argument/lesson/trace/artifact transitions with fixed dependencies. Inner absence constraints exclude unsupported tier strings, zero explicit round, simultaneous round and tier, out-of-range selection indices, and successful trace scoring with wrong width/count. This is not a full complement of external course execution or failed I/O traces. Evidence/status: source-inspected relation with the bounded tests named under checks; unenumerated behavior remains unknown. Complement claims are inner constraints, reverse claims retain all compatible candidates rather than identifying a historical cause.

reverse-reconstruction

Type: reverse_reconstruction. Subject: world-schoolbench, epoch 2026-10-30. Domain and observation: scoped inputs and projected outputs defined here. Operator/assumptions: For fixed lesson list and seed, observations of selected indices admit every tier yielding that subset; singleton strata make all tiers indistinguishable. Result totals admit many traces/questions and learning histories. Cursor alone cannot reconstruct manual runs, failures or previous artifacts. Evidence/status: source-inspected relation with the bounded tests named under checks; unenumerated behavior remains unknown. Complement claims are inner constraints, reverse claims retain all compatible candidates rather than identifying a historical cause.

cadence-preimage

Type: reverse_reconstruction. Subject: world-schoolbench, epoch 2026-10-30. Domain and observation: scoped inputs and projected outputs defined here. Operator/assumptions: For round in u64, Full fiber is residues 0 mod 20; Medium is 5,10,15; Quick all other residues. CLI forbids zero although Tier::for_round(0)=Full. Bounded test enumerates 0..399 and MAX against an independent cycle table. Evidence/status: source-inspected relation with the bounded tests named under checks; unenumerated behavior remains unknown. Complement claims are inner constraints, reverse claims retain all compatible candidates rather than identifying a historical cause.

selection-fiber

Type: information_loss. Subject: world-schoolbench, epoch 2026-10-30. Domain and observation: scoped inputs and projected outputs defined here. Operator/assumptions: Fixed identity/stars sequences differing only in facts/questions produce identical selection indices. Counts and scores require selected content; selection does not establish equal learning trajectory. Duplicate course/number keys break rank ties by original index. Evidence/status: source-inspected relation with the bounded tests named under checks; unenumerated behavior remains unknown. Complement claims are inner constraints, reverse claims retain all compatible candidates rather than identifying a historical cause.

score-projection

Type: observation_relation. Subject: world-schoolbench, epoch 2026-10-30. Domain and observation: scoped inputs and projected outputs defined here. Operator/assumptions: Map each 15-cell row after first line to bucket exam iff cell 3 equals exam, otherwise test; right iff cell 11 equals right. Comments beginning # vanish. All other cells are unconstrained by this helper, so equal totals have many antecedents. Sixteen synthetic rows and count/width refusal checks falsify alternative strict-kind/case-insensitive models. Evidence/status: source-inspected relation with the bounded tests named under checks; unenumerated behavior remains unknown. Complement claims are inner constraints, reverse claims retain all compatible candidates rather than identifying a historical cause.

cursor-boundary

Type: state_transition. Subject: world-schoolbench, epoch 2026-10-30. Domain and observation: scoped inputs and projected outputs defined here. Operator/assumptions: Explicit round bypasses cursor reading; explicit tier still reads cursor+1 despite not advancing it. Missing cursor means zero; malformed or MAX cursor refuses before course execution. checked_add bounds arithmetic. These are source-inspected branches, not live benchmark execution. Evidence/status: source-inspected relation with the bounded tests named under checks; unenumerated behavior remains unknown. Complement claims are inner constraints, reverse claims retain all compatible candidates rather than identifying a historical cause.

artifact-order

Type: effect_boundary. Subject: world-schoolbench, epoch 2026-10-30. Domain and observation: scoped inputs and projected outputs defined here. Operator/assumptions: Plan mode skips schedule creation and lock but still reads cursor/course. Real mode can leave plan, trace, cache or report on later failure. Lock::take creates directory before pid write and before constructing its RAII value: pid-write failure can leave stale directory; Drop covers only constructed locks. No durability or multi-process fairness proof. Evidence/status: source-inspected relation with the bounded tests named under checks; unenumerated behavior remains unknown. Complement claims are inner constraints, reverse claims retain all compatible candidates rather than identifying a historical cause.

controls-scope

Type: constraint_relation. Subject: world-schoolbench, epoch 2026-10-30. Domain and observation: scoped inputs and projected outputs defined here. Operator/assumptions: Quick disables controls and before-tests, Medium enables controls only, Full enables both and parse refresh. controls_red requires exactly four #control tab lines ending tab red (three before 2026-11-04, when the cross-lesson control was added); false controls do not themselves prevent cursor advancement. Flags identify measurement scope, not a statistical error cap. Evidence/status: source-inspected relation with the bounded tests named under checks; unenumerated behavior remains unknown. Complement claims are inner constraints, reverse claims retain all compatible candidates rather than identifying a historical cause.

evidence

School coverage evidence โ€” 2026-10-30

Eight new native tests plus eleven existing source-local regressions: 19 pass, zero ignored in each of two debug and two release runs, and restored-control check. Command: cargo test -p world --lib [--release] -- schoolbench:: schooltools:: --test-threads=1. Normalized test identity/result lines agree in all five logs, SHA-256 3aa940ebe42f3bdbe08a603dde50ee3a8563eb40f0423e13ecf3a7881722717a. Earlier broad school filter also passed 24 with one ignored; final claims use the focused 19. No parser, teacher, run-course or actual lesson edits were invoked.

Bounded observations
Controls and provenance

Cadence production mutant changes modulus 20 to 10; cadence_fibers fails on mismatched enum. Character metric mutant replaces Unicode scalar count with byte length; parser_canonical_fibers_and_tally fails a Tally assertion. Both compile, execute the selected test, fail with status 101 and are restored byte-for-byte before the final 19-test positive check. Mutant SHA-256 records: benchmark dd5d47c4036666ee9945dc5dd978dabcc5de0bbd4e191f55c30ae1fd62a13370, tools d0d7e397b2f26dfd46d222c3f4e160e0e45b90b685a9a9d8bcc9a63b07e832c7.

Raw evidence is under $MOVA_DATA/runs/octopus-wave9-school-2026-10-30/.

ArtifactSHA-256Result
final-debug1.logccb409629b409b2357f7e31fe59764a4b1fb847e413283cd8d331d0f4087c14e19 pass
final-debug2.log62e85389b2e8a5932f7de205feab69b52ee018a6565ed11c451eab2b530bb86a19 pass
final-release1.logccbb98332df6a0026cd2d1bb4564453593ba2041cd87f74b9a2f645f32eb651119 pass
final-release2.logbe2aaff7bfaf8032b8fa18fa7814554cbcb2663cf12cb77b6edcc90f9fcd292519 pass
final-restored.log02889e4028b702207bf518947c3eb1c8d160c9c7a0cb79259eea39481bfb292219 pass
final-mutant-bench.logf58749d8ae4b6610af308d0b6eba6f25018f2442c5dc06d1108b589f8a4158b3named assertion rejected compiled mutant
final-mutant-tools.log66764920e4d59796060e3657456fcf7f6994bedc073bf55da99c7a49402f7591named assertion rejected compiled mutant
old-failure.log825db9e94b4bdd641efb2298a6b7435b8ca8fc5ae201872986861402f4ddbb58direct zero restore panicked before repair
Structural checks and limits

Both final syntax projections generated twice with identical bytes. Eight groupants (two file roots plus six scoped fragments), forty typed views: eight per root and four per fragment. Every source binding is exact. groupants using external full-registry scaffold succeeds with no diagnostics; its deliberately unmaterialized scaffold parent is not an integrated ancestor model. changed registers both changed sources. Integration registry and actual ancestors remain the parent task's responsibility.

These are finite tests plus source inspection, not proofs or percentage-error profiles. Hash correctness, allocation exhaustion, filesystem crash/permission failures, external annotation/cache semantics and full school learning remain outside executed evidence. Lock directory can survive constructor pid-write failure; per-file edit/lint writes can survive later errors; scoring does not validate header/kind identities. CLI argument vector mutations on error and unbounded line-range allocation remain explicit.

This page in Markdown โ†’ https://md.groupants.elamur.ai/free/en/mova/world/src/schoolbench.rs.groupant/