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

# world-mind-line-projection

The groupant beside world/src/mind.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/mind.rs`](https://github.com/ElamurAI/mova-free/blob/main/world/src/mind.rs)
- **source SHA-256:** `d83c8c3b03e9b7c2…`
- **covers:** P(text) concatenates, in line order, babi::split_sentences(trim_start_matches('- ', trim(line))) for nonempty lines not starting '#'. Repeated bullet prefixes are stripped; a bare '-' remains text. Sentence splits require punctuation, ASCII space and an uppercase or supported quote successor. Headings are filtered before bullet removal. (bytes 1362–1638)
- **part of:** [world-mind](https://md.groupants.elamur.ai/free/en/mova/world/src/mind.rs.groupant/)
- **repository folder:** [`world/src/mind.rs.groupant/line-projection.groupant`](https://github.com/ElamurAI/mova-free/tree/main/world/src/mind.rs.groupant/line-projection.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-mind-line-projection-behavior-complement` | behavior_complement | partial source model | [behavior-complement](#behavior-complement) |
| `world-mind-line-projection-reverse-reconstruction` | reverse_reconstruction | partial source model | [reverse-reconstruction](#reverse-reconstruction) |
| `world-mind-line-projection-coupling` | constraint_relation | partial source model | [coupling](#coupling) |

## Model text


### forward

P(text) concatenates, in line order, babi::split_sentences(trim_start_matches('- ', trim(line))) for nonempty lines not starting '#'. Repeated bullet prefixes are stripped; a bare '-' remains text. Sentence splits require punctuation, ASCII space and an uppercase or supported quote successor. Headings are filtered before bullet removal.

### invariant

Output order preserves retained line/sentence order. No line crosses a newline. Trimmed headings contribute zero output; bullet-prefixed headings can survive. Sentence segmentation is a lexical heuristic, not an English parser.

### cost

Linear input scans plus allocated line/sentence bytes; babi splitting temporarily collects chars. No optimization or timing claim.

### composition

Source callers: main dispatches probe/serve/say; family preserves each Member Story, sets identity before tell, broadcasts statements and ignores tell gaps; worldbook::perceive uses ok+gaps.len as projected sentence count then separately classifies gaps as knowledge. Native public join: set_me -> tell/reply on zero projected sentences -> unchanged Story::state_lines and preserved identity (same name accepted, different name rejected). Nonempty Story read/ask remains opaque; no parser has been invoked for these checks.

### epoch-memory

2026-10-30: initial source-bound review. Prospective cost model predicts no asymptotic change: selection helper extraction preserves sorting and cloning; list repair replaces one scalar division with checked division. Old zero-limit native witness divides by zero. Final implementation returns a nonzero stride and take(0) produces no rows. Mind production behavior is unchanged. No surrogate, speed or full-system correctness claim.

### checks

cargo test -p world --lib mind::wave12_models -- --test-threads=1. File evidence.md binds repeated native profiles and compiled production controls. Partial syntax leaves macros opaque; source-bound syntax is not semantic AST verification.

### behavior-complement

Domain and observation scope: project(text) over finite UTF-8 text and candidate sentence vectors with fixed babi splitter revision.

Let P be the forward line-filter/bullet/split concatenation. U contains (text,candidate-vector) pairs; U minus graph(P) excludes contributions from filtered blank/heading lines, reordered or missing retained segments, and segments differing from the fixed splitter output. '- # keep' survives because heading filtering precedes bullet removal; bare '-' survives. 49 pair fixtures and the heading-order case support these exclusions without claiming English-parser correctness.

### reverse-reconstruction

B(v)={text | P(text)=v}. Preserve exact segment order and splitter-boundary compatibility; permit ignored headings, blank lines, trimmed whitespace and removable bullet prefixes. Different physical-line layouts can share v; original formatting/text is not uniquely recovered.

### coupling

49 pairwise line fixtures use literal expected sentences, independently of split_sentences. Heading/bullet order has a separate fixture. Inserting filtered lines must preserve the output vector.

Typed entries bind the manifest source revision, this section's domain/operator/observation, and the named finite checks. Status is partial source-derived model. No complete reconstruction search, universal proof or factual-truth guarantee is claimed.
