bench-main
The groupant beside tools/bench/src/main.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 | model.md |
| ast | partial | syntax.json |
| composition | partial | Composition |
| cost | partial | invariant-and-cost |
| descriptant | present | descriptant |
| invariant | partial | invariant-and-cost |
| tests | bounded or representation | tests |
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 |
|---|---|---|---|
behavior_complement | behavior_complement | partial source derived model | behavior_complement |
reverse_reconstruction | reverse_reconstruction | partial source derived model | reverse_reconstruction |
stream_order | stream_order | partial source derived model | stream_order |
numeric_lexer | numeric_lexer | partial source derived model | numeric_lexer |
header_epoch | header_epoch | partial source derived model | header_epoch |
quick_scope | quick_scope | partial source derived model | quick_scope |
Parts
Model text
descriptant
bench-main
Epoch 2026-10-31
Prospective inspection identified this relation before additions: run launches requested root-relative command with supplied args/env, concatenates lossy stdout then stderr, selects first trimmed-prefix line and digit/dot token by index, defaults ?, adds rounded elapsed seconds. Main invokes fixed benchmarks and appends TSV, adding header when latest header differs.
The production implementation is unchanged; only selected inline tests are appended. Source-bound syntax is generated twice and compared. Native checks exercise bounded helpers; entry orchestration, teacher calls, models and corpora remain source-derived. Partial syntax is not semantic proof. Preserve failure prefixes and ambiguity when refining this model.
approximant
Forward relation
run launches requested root-relative command with supplied args/env, concatenates lossy stdout then stderr, selects first trimmed-prefix line and digit/dot token by index, defaults ?, adds rounded elapsed seconds. Main invokes fixed benchmarks and appends TSV, adding header when latest header differs.
Composition
Tagged independent measurement reporter; no caller join to cycle. Its helper subprocess protocol is tested with synthetic child; real math/world outputs and dataset quality remain unsupported.
catalog
Typed observations: bench-main
Subject: tools/bench/src/main.rs, SHA-256 7a5aff2d66b34bbe237903eefacc2f794692b2b28ca50dfb0595422fd443326e. Domain: bounded source inputs, declared filesystem/environment state and normal allocations. Each view is a partial source-derived relation, not a universal proof. Observation is one helper call or the explicitly described trace. Checks are in tests.md; unexecuted effects remain gaps.
behavior_complement
Missing prefix/index yields ?, not numeric zero. Nonzero child exit is not excluded from Ok metrics; treating metrics as successful benchmark status would be wrong.
Scope: the bound source interval and stated assumptions. Evidence: source inspection plus the checks explicitly named in tests.md; no finite check establishes all inputs.
reverse_reconstruction
Metric strings admit many stdout/stderr texts and child statuses. Minus/exponent loss makes -3.5 and 3.5 compatible; first-prefix selection hides all later matching rows.
Scope: the bound source interval and stated assumptions. Evidence: source inspection plus the checks explicitly named in tests.md; no finite check establishes all inputs.
stream_order
Combined observation is complete stdout then stderr, not chronological interleaving. Matching stdout line wins over stderr regardless of real emission time.
Scope: the bound source interval and stated assumptions. Evidence: source inspection plus the checks explicitly named in tests.md; no finite check establishes all inputs.
numeric_lexer
Split on everything except ASCII digits/dot, keep token only if some digit. 2e4 becomes 2,4; -3.5 becomes 3.5; malformed multiple-dot token may survive as string.
Scope: the bound source interval and stated assumptions. Evidence: source inspection plus the checks explicitly named in tests.md; no finite check establishes all inputs.
header_epoch
Read old table, find last time-tab header; append header iff unequal, then row. Old rows retained in successful write but full-file overwrite is not crash-atomic.
Scope: the bound source interval and stated assumptions. Evidence: source inspection plus the checks explicitly named in tests.md; no finite check establishes all inputs.
quick_scope
--quick removes only GSM8K. SVAMP training-like commands, world read/train and values remain; no authorization to run main follows from helper coverage.
Scope: the bound source interval and stated assumptions. Evidence: source inspection plus the checks explicitly named in tests.md; no finite check establishes all inputs.
tests
Checks and limits
wave33_tests::synthetic_extraction_preserves_current_lossiness executes actual run with bounded /bin/sh emitting literal stdout/stderr and exit 7 under temp MOVA_ROOT. No benchmark CLI or frozen benchmark.
Exact native outcomes and command metadata are retained in the external wave33 cycle receipt bundle. Selected names run twice in debug and release; syntax is independently regenerated twice. Compiled mutations and source restoration receipts distinguish behavior changes from assertion-only controls. These claims are finalized in evidence.md. No live teacher, real model/corpus, benchmark CLI or lesson-learning CLI is run.
evidence
Wave33 evidence — 2026-10-31
Across this nine-source slice, 14 exact native names passed twice in debug and twice in release (56 runs); sorted target-qualified outcomes agree. Six compiled behavior controls fail named assertions and exact restored bytes pass again. One exploratory parser-count control failed by unwrap panic; it was restored and replaced by a form-column assertion control. No assertion-only control is counted.
Nine syntax projections were generated twice and byte compared. Production source prefixes match the base exactly; four files append only formatted cfg(test) blocks. Local groupants validation reports valid=true, zero diagnostics. Counts: nine source roots, ten scoped children, 114 typed views.
See tests.md for this source's precise executed or representation-only coverage. Native evidence does not apply to ignored live teacher or lesson execution. No teacher/API, model/corpus, learning or benchmark CLI was run. Receipts retain numeric statuses, exact names, log/source hashes, original backups, unique mutation replacements and restoration assertions. The external bundle is named octopus-wave33-cycle-2026-10-31.
invariant-and-cost
Invariant and cost
run ignores nonzero child exit status. Numeric lexer drops sign and splits exponent; values remain strings. Main quick only excludes GSM8K, not other expensive/frozen paths; main never executed here.
Per run O(captured bytes×picks + command cost), captures output in memory. Main reads and rewrites entire old TSV O(history bytes); timing excludes no child work but includes process wait.
No executable percentage surrogate is claimed: effects, categorical acceptance and report text have no justified approximate metric here. Future profiles require a useful metric, zero case, reference and evidence at caps 1/2/5/10%.
This page in Markdown → https://md.groupants.elamur.ai/free/en/mova/tools/bench/src/main.rs.groupant/