---
title: "world-sense-roles — Mova code model"
description: "Mova code model of world/src/sense.rs: components with their labels, obernants and the model text."
url: "https://groupants.elamur.ai/free/en/mova/world/src/sense.rs.groupant/roles.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/src/sense.rs.groupant/roles.groupant/>

# world-sense-roles

The groupant beside world/src/sense.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_fragment
- **status:** partial source bound model
- **source:** [`world/src/sense.rs`](https://github.com/ElamurAI/mova-free/blob/main/world/src/sense.rs)
- **source SHA-256:** `32033a19e1ffaf79…`
- **covers:** Source region beginning #[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord)]
pub enum Kind; ending before fn sub_obj. (bytes 4573–7814)
- **part of:** [world-sense](https://md.groupants.elamur.ai/free/en/mova/world/src/sense.rs.groupant/)
- **repository folder:** [`world/src/sense.rs.groupant/roles.groupant`](https://github.com/ElamurAI/mova-free/tree/main/world/src/sense.rs.groupant/roles.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-sense-roles-behavior-complement` | behavior_complement | partial source model | [behavior-complement](#behavior-complement) |
| `world-sense-roles-reverse-reconstruction` | reverse_reconstruction | partial source model | [reverse-reconstruction](#reverse-reconstruction) |
| `world-sense-roles-noun-voice-gate` | constraint_relation | partial source model | [noun-voice-gate](#noun-voice-gate) |
| `world-sense-roles-swap-observation` | reverse_reconstruction | partial source model | [swap-observation](#swap-observation) |

## Model text


Source-bound deterministic projections, with explicit dependency and observation boundaries.

### forward

nodes preserves form/head/relation/UPOS and lowercases lemma, falling back to form for empty/_ lemma. animacy chooses first category from exactly one nonempty animate/inanimate family after exception suppression; both or neither means Unknown. violation checks role-specific fixed selection lists. arguments selects first noun child by index, with AuxPass presence switching agent/patient relation sets. check processes only VERB nodes; after any violation a known, clean swapped pair yields one RoleSwap flag, otherwise subject then object flags. run aligns gold by nonempty sent_id map or position and skips misaligned scoring.

### behavior-complement

Type: behavior_complement. For admissible input/observation pairs U with dependencies fixed, N = {(x,y) in U : y != F(x)}. This is the exact complement of the stated scoped mathematical relation, and only a source-derived hypothesis about unsampled Rust behavior. Unknown external transitions are outside U, not forbidden. Subject/revision: this manifest's source hash. Domain and observation are restricted by forward and the named view. Evidence is finite native correspondence where named, otherwise source inspection; no universal Rust proof.

### reverse-reconstruction

Type: reverse_reconstruction. B(y) = {x in D : F(x)=y}, retaining every compatible antecedent and fixed dependency state. Thus x belongs to B(F(x)); unique recovery requires injectivity. Enumeration establishes complete fibers only on each named bounded test domain. Strings, omitted fields and hidden configuration are not recoverable from a projected output. Subject/revision: this manifest's source hash. Domain and observation are restricted by forward and the named view. Evidence is finite native correspondence where named, otherwise source inspection; no universal Rust proof.

### noun-voice-gate

Type: constraint_relation. At fixed verb index, only head=v+1 nouns qualify. AuxPass among any child switches role relation sets. First qualifying index wins. 24 table cells and duplicate-child fibers are finite evidence. Subject/revision: this manifest's source hash. Domain and observation are restricted by forward and the named view. Evidence is finite native correspondence where named, otherwise source inspection; no universal Rust proof.

### swap-observation

Type: reverse_reconstruction. RoleSwap kind/indices loses lexical reasons and many token fields. Active/passive fixtures are distinct antecedents sharing a flag projection; the full why strings are not asserted identical. Subject/revision: this manifest's source hash. Domain and observation are restricted by forward and the named view. Evidence is finite native correspondence where named, otherwise source inspection; no universal Rust proof.

### invariant

Preserve ordered observations and all compatible antecedents; input indices and arithmetic must satisfy the scoped preconditions. Equality of a projection does not identify original text or intended meaning. Knowledge tables and normalization are part of the input context.

### cost

For n nodes, arguments scans n children per verb and check costs O(v*n) plus lexical queries/string construction; O(n+output bytes) transient storage. Category filtering costs category-count times selection-list membership cost. Report matching uses ordered maps O(s log s) and token comparisons; exact global lookup/I/O costs are external.

### composition

Compose fragment relations by joining shared token order, Mention/Node fields and the same dependency snapshot. Reverse composition is a union over compatible intermediate states, not a Cartesian product of independent fibers. Root includes CLI/reporting and inline tests beyond the scoped fragments. Partial syntax does not resolve types, expand macros or prove semantics.

### checks

Run cargo test -p world --lib sense::wave8_models -- --test-threads=1. Root evidence.md records repeated profiles, compiled controls and syntax identity. Each fragment inherits only checks addressing its source scope.

### epoch-memory

2026-10-30: first epoch. Prediction before tests: bounded native models match deterministic scoring/role projection and preserve ambiguity; changing a score weight or admitting proper names should reject. No production behavior change is proposed. Case normalization, full-field equality and first-child priority are observable policy, not semantic identity.

### limitations

No live annotator, teacher, GPU, training or filesystem report pipeline is exercised. Global tables are fixed build dependencies; parser cache/environment and report I/O are opaque. Native finite fixtures are not language-accuracy validation. No useful numeric approximation metric is established for categorical outputs; executable surrogates remain absent. CLI malformed-tree indexing and i64 overflow outside representable arithmetic domains remain unverified.
