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

# rule-derivation-rules

The groupant beside world/src/derive.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 derived instance
- **source:** [`world/src/derive.rs`](https://github.com/ElamurAI/mova-free/blob/main/world/src/derive.rs)
- **source SHA-256:** `2726211da9538f3f…`
- **covers:** rule-derivation-rules (bytes 1269–23271)
- **part of:** [rule-derivation](https://md.groupants.elamur.ai/free/en/mova/world/src/derive.rs.groupant/)
- **repository folder:** [`world/src/derive.rs.groupant/rules.groupant`](https://github.com/ElamurAI/mova-free/tree/main/world/src/derive.rs.groupant/rules.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 | [Forward](#forward) |
| **ast** | partial | `../syntax.json` |
| **composition** | partial | [Composition](#composition) |
| **cost** | symbolic unmeasured | [Cost](#cost) |
| **descriptant** | present | `model.md` |
| **invariant** | partial | [Invariant](#invariant) |
| **tests** | bounded evidence | `../model.md#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 |
|---|---|---|---|
| `nonbehavior` | behavior_complement | partial source derived model | [nonbehavior](#nonbehavior) |
| `antecedents` | reverse_reconstruction | partial source derived model | [antecedents](#antecedents) |
| `ranking` | decision_order | partial source derived model | [ranking](#ranking) |
| `conditions` | finite_combinatorics | partial source derived model | [conditions](#conditions) |
| `cycle-snapshot` | transition_order | partial source derived model | [cycle-snapshot](#cycle-snapshot) |

## Model text


### descriptant

## rule-derivation-rules

Partial source-derived groupant, 2026-10-29. Full source inspected; this node specializes its explicit syntax envelope. Macro expansion and semantic AST are absent.

### Forward

class retains lowercase closed-class lemmas. Induction counts each existing nearest POS target and gold-head hits. lists filters and orders by precision, applies and Rule order. Plain derivation uses first applicable non-cycling rule. apply_tr snapshots matching moves then applies in word order with current cycle checks.

### Invariant

Aligned vectors, valid heads, dir in {-1,1}, k in {1,2,3}; cond_sets needs a class atom. nth excludes its source. pending excludes a target whose head lies strictly inside the span except a head equal to the dependent. These are preconditions, not validated input checks.

### Cost

nth and cycle traversal O(n). For c atoms, cond_sets emits 1+(c-1)+choose(c-1,2) vectors of at most three atoms: 16 for ordinary six-atom words, 11 for five-atom roots. Induction and application conservatively O(n^2) per sentence.

### Composition

The syntax envelope includes load/run whose I/O semantics remain root dependency gaps. Classification is shared with packing, so lexical changes can change closed-class list lookup despite unchanged arcs.

### Epoch memory

Initial epoch: 90 assertions over twelve extracted pure source items with minimal enum dependencies. Closed-class erasure mutant rejected. No full learner, parser, GPU, corpus, filesystem-training or external state execution. Source-derived models and proposed oracles are distinct from executed bounded probes. See ../tests.md.

### catalog

## rule-derivation-rules typed models

Subject: derive.rs SHA-256 2726211da9538f3f5c225292219dfda4d4fd6f15d6b68deaaaf53c834ba60842. Domain: finite admitted inputs with fixed dependency/schedule state. First type is a candidate inner behavior-complement bound in explicit input/output universe, second is an ambiguous compatible-preimage relation. Other models specialize observations or costs. See descriptant for assumptions and ../tests.md for evidence; structural acceptance is not semantic proof.

### nonbehavior

Type: behavior_complement.

In admitted helper U, candidate inner absent behaviors: nth returning its source, returning a target with fewer than k matching POS words in that direction, cond_sets emitting empty or class-free sets. Loops establish the conditional model; literal directional probes and independent mask families provide finite evidence.

### antecedents

Type: reverse_reconstruction.

For nth returning j, all compatible POS sequences label j with u in direction d, with exactly k-1 u labels strictly between i,j; all other labels/lemmas remain free. None means fewer than k matches before the boundary. cond_sets preserves class and ordered subset members; duplicate atoms can prevent unique recovery. Probe checks directions and mask families.

### ranking

Type: decision_order.

lists admits applies>=min, hits>0 and not hidden; descending f64 precision precedes descending applies then ascending Rule. Stat::rel picks greatest count then smallest Rel order, or Dep. Ratios alone cannot recover list order. Proposed literal tie oracle is not executed.

### conditions

Type: finite_combinatorics.

For distinct ordered atoms c0..cm, cond_sets emits all subsets containing c0 with up to two tail atoms, preserving their input order. Count=1+m+m*(m-1)/2, not 2^m. Duplicates are positional and may repeat vectors. Probe checks prefix lengths 1..6 against independent bit-mask enumeration and literal counts.

### cycle-snapshot

Type: transition_order.

apply_tr computes all matching non-root moves from initial heads/labels, then mutates ascending word indexes and checks cycles on evolving heads. Matches are not recomputed. Same-head moves can overwrite relations. makes_cycle also returns true on an unrelated existing cycle after its traversal guard expires. Reverse retains overwritten fields and all prestates with compatible snapshotted moves. Cycle helpers executed; full apply_tr is not.
