roundtrip-block-hebrew
The groupant beside tools/roundtrip/src/blocks/heb.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 | approximant |
| ast | partial | syntax.json |
| composition | partial | composition |
| cost | symbolic source derived | invariant-and-cost |
| descriptant | present | descriptant |
| invariant | partial | invariant-and-cost |
| tests | executed bounded checks | 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 |
ordered_completion | ordered_completion | partial source derived model | ordered_completion |
panic_boundary | panic_boundary | partial source derived model | panic_boundary |
block_conjunction | block_conjunction | partial source derived model | block_conjunction |
mode_projection | mode_projection | partial source derived model | mode_projection |
Parts
Model text
descriptant
Description and epoch memory
lines_of follows volume Text indices, ignoring literal layout. tally_of sums child by-language tallies with volumes/exact cleared then reports one block and conjunction of child exact counts. run constructs original/shuffled streams, loads language/Hebrew/lexicon state, parses before modes; sentence mode makes one job per verse, other modes one per block. par_each atomically claims jobs, catches job panic to Err, joins and collects by index; par then collects the first ordered error.
Epoch 2026-10-31
Prospective model retained externally before edits. Existing production bytes preserved; only bounded inline tests appended to six owned files. Models distinguish byte reconstruction with residual from semantic understanding and persistent learning. Finite tests and compiled mutants support selected boundaries only. Source inspection identified noninjective projections and explicit admissibility restrictions; no bug repair or performance claim.
Combiner input is this source snapshot, syntax projection, models, costs and retained receipts. Proposed next epoch: target the stated unexecuted branches with bounded witnesses before expanding any claim. AST remains partial, macros opaque; no name resolution or proof.
approximant
Forward relation
lines_of follows volume Text indices, ignoring literal layout. tally_of sums child by-language tallies with volumes/exact cleared then reports one block and conjunction of child exact counts. run constructs original/shuffled streams, loads language/Hebrew/lexicon state, parses before modes; sentence mode makes one job per verse, other modes one per block. par_each atomically claims jobs, catches job panic to Err, joins and collects by index; par then collects the first ordered error.
Domain: Valid Text indices; finite jobs and thread count with successful thread creation; usize/u64 counters representable. Job closure may panic but process-aborting panics, allocation or poisoned-lock failures are outside catch guarantee.
No executable percentage surrogate is supplied: these categorical codec/effect observations have no justified lossy metric. Future caps are 1/2/5/10% only after defining metric, zero behavior and differential reference.
composition
Local composition
lines_of follows volume Text indices, ignoring literal layout. tally_of sums child by-language tallies with volumes/exact cleared then reports one block and conjunction of child exact counts. run constructs original/shuffled streams, loads language/Hebrew/lexicon state, parses before modes; sentence mode makes one job per verse, other modes one per block. par_each atomically claims jobs, catches job panic to Err, joins and collects by index; par then collects the first ordered error.
Children scope selected internal mechanisms by byte ranges; remaining branches are covered only by the parent partial model. Their costs are included in parent costs, not added again. Shared values and caller order are those named above; sibling fragments are tagged independent where no direct call is named.
catalog
Source-bound typed models
Each section is a partial source-derived relation on the bound snapshot and declared domain; finite checks are falsification evidence, not a universal proof. Observation horizon is one call unless history is explicitly named.
behavior_complement
Within supplied-job execution traces, reordered result slots and lost successful jobs are excluded; caught panic does not cancel later jobs. This is a source-derived inner bound on absent behavior, not a universal no-panic claim.
Domain and held state: Valid Text indices; finite jobs and thread count with successful thread creation; usize/u64 counters representable. Job closure may panic but process-aborting panics, allocation or poisoned-lock failures are outside catch guarantee.
Status: partial source-derived model. Oracle: the named scoped tests in tests.md; unexercised branches remain inspection hypotheses.
reverse_reconstruction
Given ordered Result vector and closure, compatible antecedents are job vectors whose indexed closure calls produce those values/errors plus every scheduling interleaving consistent with unique atomic claims. Panic message loses payload type/stack. tally exact=1 permits zero child runs, so it cannot recover volume count.
Domain and held state: Valid Text indices; finite jobs and thread count with successful thread creation; usize/u64 counters representable. Job closure may panic but process-aborting panics, allocation or poisoned-lock failures are outside catch guarantee.
Status: partial source-derived model. Oracle: the named scoped tests in tests.md; unexercised branches remain inspection hypotheses.
ordered_completion
Result position i binds job i regardless of completion order; par waits for all jobs before selecting the first index error.
Domain and held state: Valid Text indices; finite jobs and thread count with successful thread creation; usize/u64 counters representable. Job closure may panic but process-aborting panics, allocation or poisoned-lock failures are outside catch guarantee.
Status: partial source-derived model. Oracle: the named scoped tests in tests.md; unexercised branches remain inspection hypotheses.
panic_boundary
catch_unwind surrounds f only; conversion captures str/String payload or empty text. Spawn, mutex and allocation failures are outside that boundary.
Domain and held state: Valid Text indices; finite jobs and thread count with successful thread creation; usize/u64 counters representable. Job closure may panic but process-aborting panics, allocation or poisoned-lock failures are outside catch guarantee.
Status: partial source-derived model. Oracle: the named scoped tests in tests.md; unexercised branches remain inspection hypotheses.
block_conjunction
tally_of([])=(volumes=1,exact_ok=1); nonempty runs conjoin exact_ok==volumes and retain at most first failure per failed run.
Domain and held state: Valid Text indices; finite jobs and thread count with successful thread creation; usize/u64 counters representable. Job closure may panic but process-aborting panics, allocation or poisoned-lock failures are outside catch guarantee.
Status: partial source-derived model. Oracle: the named scoped tests in tests.md; unexercised branches remain inspection hypotheses.
mode_projection
sentence partitions each block range into singleton verses; shuffle permutes within each range with id-derived seed. Mode strings outside named cases use original whole blocks.
Domain and held state: Valid Text indices; finite jobs and thread count with successful thread creation; usize/u64 counters representable. Job closure may panic but process-aborting panics, allocation or poisoned-lock failures are outside catch guarantee.
Status: partial source-derived model. Oracle: the named scoped tests in tests.md; unexercised branches remain inspection hypotheses.
tests
Actual checks
blocks::heb::wave32::ordered_jobs_and_panics
The listed parent/source tests exercise only their named mechanisms; other model statements are source inspection. Sixteen selected actual roundtrip library tests passed twice debug and twice release (64 exact-name executions), with identical sorted test outcomes. Eight compiled production-behavior mutants, one per source, failed assertions; exact originals were restored and the selected check passed. No assertion-only mutants or surviving compiled mutants. An initial mutation selector was ambiguous and stopped before writing that source; corrected selector retained separately.
Raw logs, numeric statuses, original/restored hashes, prospective.md, native-commands.json and syntax pairs: $MOVA_DATA/runs/octopus-wave32-rt_blocks-2026-10-31. No live model/corpus/site/learning workflow or full pipeline was executed.
invariant-and-cost
Invariants and cost
Within supplied-job execution traces, reordered result slots and lost successful jobs are excluded; caught panic does not cancel later jobs. This is a source-derived inner bound on absent behavior, not a universal no-panic claim.
Given ordered Result vector and closure, compatible antecedents are job vectors whose indexed closure calls produce those values/errors plus every scheduling interleaving consistent with unique atomic claims. Panic message loses payload type/stack. tally exact=1 permits zero child runs, so it cannot recover volume count.
Cost
For J jobs, T=max(threads,1): O(J+T) scheduler bookkeeping, O(J) result slots, T scoped threads; work sum(job_i), elapsed bounded below by max job duration, no measured speedup. run additionally retains streams/items and loads/parses external resources.
Integer additions/products and allocation sizes must fit native types. Floating costs require finite values; no throughput or all-input guarantee follows from synthetic tests.
This page in Markdown → https://md.groupants.elamur.ai/free/en/mova/tools/roundtrip/src/blocks/heb.rs.groupant/