---
title: "world-groupant-wave9 — Mova code model"
description: "Mova code model of world/tests/groupant_wave9.rs: components with their labels, obernants and the model text."
url: "https://groupants.elamur.ai/free/en/mova/world/tests/groupant_wave9.rs.groupant/"
---
Elamur: [Mova](https://md.mova.elamur.ai/free/en/) · [Dictionary](https://md.dictionary.elamur.ai/free/en/) · [Research](https://md.research.elamur.ai/free/en/) · **Groupants**

This page as HTML: <https://groupants.elamur.ai/free/en/mova/world/tests/groupant_wave9.rs.groupant/>

# world-groupant-wave9

The groupant beside world/tests/groupant_wave9.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

- **kind:** groupant
- **status:** partial source bound model
- **source:** [`world/tests/groupant_wave9.rs`](https://github.com/ElamurAI/mova-free/blob/main/world/tests/groupant_wave9.rs)
- **source SHA-256:** `b82d92a98834f7c2…`
- **repository folder:** [`world/tests/groupant_wave9.rs.groupant`](https://github.com/ElamurAI/mova-free/tree/main/world/tests/groupant_wave9.rs.groupant)
- **repository commit:** `855da7bd4a7b`

> **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](#forward) |
| **ast** | partial | `syntax.json` |
| **composition** | partial source model | [composition](#composition) |
| **cost** | partial source model | [cost](#cost) |
| **descriptant** | partial source model | [epoch-memory](#epoch-memory) |
| **invariant** | partial source model | [invariant](#invariant) |
| **tests** | partial source model | [checks](#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-groupant-wave9-behavior-complement` | behavior_complement | partial source model | [behavior-complement](#behavior-complement) |
| `world-groupant-wave9-reverse-reconstruction` | reverse_reconstruction | partial source model | [reverse-reconstruction](#reverse-reconstruction) |
| `world-groupant-wave9-option-identity` | encoding_relation | partial source model | [option-identity](#option-identity) |
| `world-groupant-wave9-stratum-selection` | subset_relation | partial source model | [stratum-selection](#stratum-selection) |
| `world-groupant-wave9-temporal-registration` | state_transition | partial source model | [temporal-registration](#temporal-registration) |
| `world-groupant-wave9-world-separation` | scope_relation | partial source model | [world-separation](#world-separation) |
| `world-groupant-wave9-verdict-identity` | identity_relation | partial source model | [verdict-identity](#verdict-identity) |
| `world-groupant-wave9-adapter-negative` | counterfactual_relation | partial source model | [adapter-negative](#adapter-negative) |
| `world-groupant-wave9-effect-boundary` | effect_relation | partial source model | [effect-boundary](#effect-boundary) |

## Model text


### model

## Wave 9 native joins

### forward
Five tests compose actual public APIs on supplied fixtures. F maps fixture inputs and compiled dependencies to assertions; pass is bounded correspondence evidence.

### invariant
Shared IDs, option order, frame/world identity and selected lesson indices survive each stated adapter. Invalid time relation preserves the inspected graph observation.

### cost
Nine option parses, eight selections over 27 lessons, two tiny narrative programs and one four-question filesystem roundtrip. Selection sorts within strata; temporal reachability uses the called graph routines. No latency or throughput guarantee.

### composition
ftqa -> report uses Qa identity; schooltools and knowledge share the serialized lesson line before schoolbench consumes parsed Lessons. lang -> world -> narr -> story uses real registration. school_tree has no inspected direct prules call and is not claimed as a tested pipeline.

### checks
Five native tests, twice debug and twice release with single-thread execution; external raw logs and mutation evidence recorded after execution.

### epoch-memory
2026-10-30: supplied fixtures avoid external parser and live school resources. Distinguish common-domain canonicalization from general parser equivalence; story filename is an input to report identity. This harness observes five joins, not full pipeline accuracy.

### behavior-complement
Subject: current harness and compiled dependencies. Domain and observation: For the finite supplied-input universe U of these five fixture families, the intended relation excludes reordered event axes, cross-world temporal comparability, changed option identities, lost stratum counts and verdict joins on question number without story. This is a source-derived inner constraint on U minus R, conditional on valid acyclic frame ancestry and accepted programs; unsampled behavior is unknown.
Operator: behavior_complement. Status: partial source model; evidence is the named native fixture family, with finite acceptance rather than universal proof.

### reverse-reconstruction
Subject: current harness and compiled dependencies. Domain and observation: For an observed assertion vector y, retain every fixture and implementation state x with F(x)=y. Aggregate 50% accuracy admits both assignments of one correct verdict among two questions. Temporal Before admits many endpoint graphs. A passing vector cannot reconstruct a unique graph, input serialization, or implementation.
Operator: reverse_reconstruction. Status: partial source model; evidence is the named native fixture family, with finite acceptance rather than universal proof.

### option-identity
Subject: current harness and compiled dependencies. Domain and observation: On spaced-pipe option lines with one marked answer, canonical fields must equal knowledge::parse's question/right/wrong tuple, preserving wrong-option order. Recognition by option_line is weaker than validation: multiply marked rows may be recognized yet refused by parse. Nine valid fixtures and one refusal exercise this boundary.
Operator: encoding_relation. Status: partial source model; evidence is the named native fixture family, with finite acceptance rather than universal proof.

### stratum-selection
Subject: current harness and compiled dependencies. Domain and observation: For 27 parsed lessons, three strata of nine, quick selects two per stratum and medium three. Every quick identity remains in medium for each of eight seeds; selected indices remain chronological, preserving lesson number and right-answer identity. These are input-list indices, not lesson numbers.
Operator: subset_relation. Status: partial source model; evidence is the named native fixture family, with finite acceptance rather than universal proof.

### temporal-registration
Subject: current harness and compiled dependencies. Domain and observation: Accepted root events E1,E2,E3 produce span and strict chain edges. All six distinct ordered pairs agree with ordinal order; rejected E3 BEFORE E1 preserves edge count and E1 BEFORE E3. Closure is queried at event endpoints, not event IDs used as point-array indices.
Operator: state_transition. Status: partial source model; evidence is the named native fixture family, with finite acceptance rather than universal proof.

### world-separation
Subject: current harness and compiled dependencies. Domain and observation: world=new allocates a child world and a separate axis. After close, root event lookup includes copied E2 with its child world ID, while root entity lookup omits C2 and ent_any finds it; world_frame selects child 1 and TimeGraph reports OtherWorld across E1/E2. Closing the frame does not erase its stored world.
Operator: scope_relation. Status: partial source model; evidence is the named native fixture family, with finite acceptance rather than universal proof.

### verdict-identity
Subject: current harness and compiled dependencies. Domain and observation: qa_tsv -> read_qa derives story from filename and preserves supplied question numbers. report::sample excludes the full (story,n) key. manual_md joins on that same pair: a verdict for wrong-story#4 cannot count as fixture#4. No generated answer quality is measured; answers are supplied.
Operator: identity_relation. Status: partial source model; evidence is the named native fixture family, with finite acceptance rather than universal proof.

### adapter-negative
Subject: current harness and compiled dependencies. Domain and observation: Intervention swaps a,b at the ordered_events adapter while holding programs and independent ordinal oracle fixed. The native temporal test must reject Before/After reversal after compilation. Restoration is byte checked and positives rerun.
Operator: counterfactual_relation. Status: partial source model; evidence is the named native fixture family, with finite acceptance rather than universal proof.

### effect-boundary
Subject: current harness and compiled dependencies. Domain and observation: The question roundtrip creates an exclusive process-specific temporary directory, writes one TSV, reads it and removes it before reporting. Other joins consume supplied strings and values. No parser acquisition, teacher, live course, hot-state mutation or learned-rule application is executed.
Operator: effect_relation. Status: partial source model; evidence is the named native fixture family, with finite acceptance rather than universal proof.

### evidence

#### 2026-10-30 evidence

Five tests pass twice in debug and twice in release with --test-threads=1; restored debug passes five. The test identity/status lines match across all five logs. Normalized SHA-256: 8bd3954bf9f89207652de59b06ba8fd49796c341ab5f3e20da0b8c442895e2f3.

The compiled ordered_events operand-swap mutant fails narrative_registration_joins_time_queries_and_atomic_rejection: actual After, expected Before. Mutation log SHA-256: 1cec6798a0b5fb4844d2cf8f50510917c4e7020523242c9dece74d2394de30cf. Restored source equals the saved original: b82d92a98834f7c2c466a749198ba0fd0544e945733409fd17bd100e21c79ea4.

Syntax generated twice is byte-identical: 2b817ce5f411ed5bda4dbdda9c1eb6a54a4166c234d9c94ac44c3c8b60f01215. Changed reports one owned Rust source with no missing registry entry. Structural validation is isolated from global parent wiring; root integration supplies that wiring.

Raw logs: $MOVA_DATA/runs/octopus-wave9-joins-2026-10-30/.
Debug log hashes: eb2ed515ffffaa052299c5ab6df8add088fcb365f48c07c7c7ddb9f079767f79 and 93663ebd98f979502ea3cbfe2b2c426874c0c27a3893462cbd59ebfda69cc437.
Release log hashes: 5c29573f2248eddaf0d1d1f8bdffbdd94416148ff05a4e01dacba4272be5abd3 and 2d8e2f38b309232cdb3fb67171fa98599c7e0c356872bd50b9bf82019cf61825.
Restored log: a6408aca39f56454a7eb3002e26fa14163e09170997369e06281f2895f416800.

Finite correspondence only. An initial mistaken New-frame event-isolation prediction failed and was corrected after inspecting merge_from; entity isolation and event world identity are separate. No production source was changed.
