modelcheck-library-inventory-assembly
The groupant beside tools/modelcheck/src/lib.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 | forward |
| ast | partial | ../syntax.json |
| cost | partial | invariant-and-cost |
| descriptant | present | descriptant |
| invariant | partial | invariant-and-cost |
| tests | finite native evidence | 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 relational specification | behavior_complement |
reverse_reconstruction | reverse_reconstruction | partial relational specification | reverse_reconstruction |
diagnostic_conjunction | diagnostic_conjunction | partial relational specification | diagnostic_conjunction |
backlog_state_partition | backlog_state_partition | partial relational specification | backlog_state_partition |
stable_report_order | stable_report_order | partial relational specification | stable_report_order |
nonexecution_boundary | nonexecution_boundary | partial relational specification | nonexecution_boundary |
Model text
descriptant
File/groupant report assembly and registered-source absence diagnostics groupant
Epoch 2026-10-31: materialized a scoped view after full-source review. Validate registry then filename-safe IDs, discover files, hash confined sources, load optional sidecars, validate source/group fragments and retain original manifests. Append diagnostics in discovery/declaration order. Process logical groups in sorted ID order and return valid iff diagnostics is empty.
Missing sidecars are backlog rather than invalid declarations; existing malformed sidecars invalidate the report. File and fragment/group IDs share one uniqueness set. Registry membership is checked against sorted discovery with the shared helper. verification_inferred and full_system_verification are false.
Useful prior epochs remain in the parent descriptant. This child uses exact byte anchors and the same whole-source hash: editing unrelated bytes also invalidates its binding. The fragment is a partial structural/behavior model, not a proof. No executable percentage surrogate is supplied: categorical gates have no defined useful loss metric; any future profile must use supported caps 1, 2, 5 or 10 percent with explicit domain and evidence.
catalog
Wave33 historical scope and evidence follow. Current source hashes and refreshed ranges are in manifest.json; wave34 refinements and evidence are at the source root.
File/groupant report assembly and registered-source absence diagnostics typed models
Subject/revision: source SHA-256 in manifest; scope [13336 , 20962). Domain is one completed scoped call on a fixed snapshot with adequate resources, unless narrowed below. Observation includes return/error and declared filesystem effects. Models are source-derived partial relational constraints; complements are inner exclusion hypotheses, converse relations retain compatible-input ambiguity. No universal proof or inverse executor is claimed. Evidence: groupant_tests::groupant_validation_negative_controls_and_open_extensions; groupant_tests::groups_bind_transitive_sources_and_preserve_open_families. Mutation evidence and limits are recorded in ../wave33-evidence.md.
behavior_complement
Exclude valid=true when a discovered sidecar contributes diagnostics or a registered source is absent. Do not exclude reports with missing sidecars: those are explicitly permitted backlog.
Oracle: groupant_tests::groupant_validation_negative_controls_and_open_extensions; groupant_tests::groups_bind_transitive_sources_and_preserve_open_families. Fixed source scope and the stated domain are required; finite checks do not establish untested generality.
reverse_reconstruction
Returned manifests and source hashes constrain compatible repository snapshots; missing-sidecar entries allow all absent sidecar states, and opaque extension fields survive. Mathematical semantics and check outcomes remain free.
Oracle: groupant_tests::groupant_validation_negative_controls_and_open_extensions; groupant_tests::groups_bind_transitive_sources_and_preserve_open_families. Fixed source scope and the stated domain are required; finite checks do not establish untested generality.
diagnostic_conjunction
valid = all local error vectors empty AND no registered-absence diagnostic. One invalid nested descendant propagates to its source row and the global report.
Oracle: groupant_tests::groupant_validation_negative_controls_and_open_extensions; groupant_tests::groups_bind_transitive_sources_and_preserve_open_families. Fixed source scope and the stated domain are required; finite checks do not establish untested generality.
backlog_state_partition
Classify each file as invalid if errors nonempty, else available_partial if sidecar exists, else not_materialized. Existence alone does not imply a valid JSON manifest.
Oracle: groupant_tests::groupant_validation_negative_controls_and_open_extensions; groupant_tests::groups_bind_transitive_sources_and_preserve_open_families. Fixed source scope and the stated domain are required; finite checks do not establish untested generality.
stable_report_order
File rows follow sorted Git paths, logical rows follow BTreeMap IDs, fragments follow declarations. Diagnostics preserve these traversal orders; changing registry input node order does not reorder logical rows.
Oracle: groupant_tests::groupant_validation_negative_controls_and_open_extensions; groupant_tests::groups_bind_transitive_sources_and_preserve_open_families. Fixed source scope and the stated domain are required; finite checks do not establish untested generality.
nonexecution_boundary
Check strings and opaque extension values are data. The function invokes Git discovery and filesystem reads only; it does not run declared tests, Rust artifacts, mathematical models or teacher commands.
Oracle: groupant_tests::groupant_validation_negative_controls_and_open_extensions; groupant_tests::groups_bind_transitive_sources_and_preserve_open_families. Fixed source scope and the stated domain are required; finite checks do not establish untested generality.
tests
Native correspondence
Exact named checks: groupant_tests::groupant_validation_negative_controls_and_open_extensions; groupant_tests::groups_bind_transitive_sources_and_preserve_open_families.
See ../wave33-evidence.md for current repeated profiles, actual production mutants and scope limits. AST generation alone is not behavioral evidence. Each reference test body was read before execution.
forward
Scoped forward model
File/groupant report assembly and registered-source absence diagnostics
Validate registry then filename-safe IDs, discover files, hash confined sources, load optional sidecars, validate source/group fragments and retain original manifests. Append diagnostics in discovery/declaration order. Process logical groups in sorted ID order and return valid iff diagnostics is empty.
invariant-and-cost
Invariant and cost
Missing sidecars are backlog rather than invalid declarations; existing malformed sidecars invalidate the report. File and fragment/group IDs share one uniqueness set. Registry membership is checked against sorted discovery with the shared helper. verification_inferred and full_system_verification are false.
O(B + Q log P) membership/hash work plus manifest/component/fragment validation and group subtree traversal. Source/artifact rereads are counted separately, not as once per source. Report retains JSON; filesystem mutation races are excluded from deterministic snapshot claims.
This page in Markdown โ https://md.groupants.elamur.ai/free/en/mova/tools/modelcheck/src/lib.rs.groupant/inventory-assembly.groupant/