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

# hbo-text

The groupant beside tools/hbo/src/text.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:** [`tools/hbo/src/text.rs`](https://github.com/ElamurAI/mova-free/blob/main/tools/hbo/src/text.rs)
- **source SHA-256:** `a123d548879eaa25…`
- **repository folder:** [`tools/hbo/src/text.rs.groupant`](https://github.com/ElamurAI/mova-free/tree/main/tools/hbo/src/text.rs.groupant)
- **repository commit:** `48f2e6f74146`

> **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 | [approximant](#approximant) |
| **ast** | partial | `syntax.json` |
| **composition** | partial | [composition](#composition) |
| **cost** | symbolic source derived | [invariant-and-cost](#invariant-and-cost) |
| **descriptant** | present | [descriptant](#descriptant) |
| **invariant** | partial | [invariant-and-cost](#invariant-and-cost) |
| **tests** | executed bounded checks | [tests](#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 source derived model | [behavior_complement](#behavior-complement) |
| `reverse_reconstruction` | reverse_reconstruction | partial source derived model | [reverse_reconstruction](#reverse-reconstruction) |
| `unit_coordinates` | unit_coordinates | partial source derived model | [unit_coordinates](#unit-coordinates) |
| `thin_threshold` | thin_threshold | partial source derived model | [thin_threshold](#thin-threshold) |
| `sentence_delimiter` | sentence_delimiter | partial source derived model | [sentence_delimiter](#sentence-delimiter) |
| `normalization_level` | normalization_level | partial source derived model | [normalization_level](#normalization-level) |

## Parts

- [hbo-text-tokenization](https://md.groupants.elamur.ai/free/en/mova/tools/hbo/src/text.rs.groupant/tokenization.groupant/)

## Model text


### descriptant

#### Descriptant

2026-10-31, prospective epoch: inspected source before edits and predicted norm filters Hebrew accent/joiner set and optionally points, then NFC. units slices original UTF-8 at each noncombining scalar; tokenize NFC-normalizes, splits whitespace/punctuation/maqaf and groups after closing marks plus paragraph markers. thin chooses points by raw-byte hash and scalar position.

Measured epoch: bounded supplied fixtures passed twice in debug and release; six behavioral mutants were rejected after compilation, each restored exactly. These observations support the scoped equations without extending them to corpus accuracy, semantic understanding or persistent learning. Production code bytes are unchanged; only isolated tests appended. No benchmark or percentage surrogate was introduced.

Retained caveats: Finite supplied-input checks only; no corpus, training, external annotator, GPU, throughput or semantic-understanding claim. Allocation exhaustion and malformed arbitrary model arithmetic are not exhaustively exercised. No useful numerical surrogate is implemented; future caps may only be 1/2/5/10% with a declared metric.

### approximant

#### Forward relation

norm filters Hebrew accent/joiner set and optionally points, then NFC. units slices original UTF-8 at each noncombining scalar; tokenize NFC-normalizes, splits whitespace/punctuation/maqaf and groups after closing marks plus paragraph markers. thin chooses points by raw-byte hash and scalar position.

Domain: Units partition exact original bytes; coordinates are neither Unicode scalar positions nor bytes. Point removal preserves nonpoint/nonaccent scalars before NFC. Leading marks form their own first unit. Hash overflow is explicit wrapping.

Source snapshot SHA-256: a123d548879eaa2575f9ca17c5836bab9068a0615ce5dd11f996afaa579e44b7. This is a partial source-derived mathematical relation, not an executable surrogate. Tests exercise actual production helpers with synthetic inputs.

### composition

#### Local composition

norm filters Hebrew accent/joiner set and optionally points, then NFC. units slices original UTF-8 at each noncombining scalar; tokenize NFC-normalizes, splits whitespace/punctuation/maqaf and groups after closing marks plus paragraph markers. thin chooses points by raw-byte hash and scalar position.

Nested scopes isolate the transitions described in their manifests and share the whole-source syntax projection. Other declarations and test helpers remain represented by the parent model. Cross-file joins: text units/norm feed seg Piece coordinates; conllu Token/Word carries segmenter and lattice representations; library cut_as realizes lattice callbacks; main routes supplied helpers and external workflows. These joins do not validate arbitrary external parser alignment.

### models

## Typed model catalog

Subject: hbo-text at SHA-256 a123d548879eaa2575f9ca17c5836bab9068a0615ce5dd11f996afaa579e44b7. Domain and fixed state: Units partition exact original bytes; coordinates are neither Unicode scalar positions nor bytes. Point removal preserves nonpoint/nonaccent scalars before NFC. Leading marks form their own first unit. Hash overflow is explicit wrapping.. Observation: return values, stated mutations and failure order of this scope. Models are partial source-derived relations; finite tests can falsify them but do not prove general completeness. Behavior complement is a scoped exclusion claim in the admitted transition universe. Reverse reconstruction retains compatible antecedents, not a unique historical cause. Specialized entries hold this domain fixed and isolate their named observation. Oracle: named actual-code fixtures in tests.md; unexecuted effect boundaries remain static hypotheses.

### behavior_complement

norm cannot retain selected accent/joiner characters; unpointed cannot retain selected points. tokenize cannot cut apostrophes inside a word merely because is_mark recognizes a standalone apostrophe.

### reverse_reconstruction

A normalized string admits all filtered-mark insertions and canonically equivalent original strings. Token sentences additionally lose whitespace spelling; units plus original slices reconstruct exact bytes, unlike normalization.

### unit_coordinates

units emits contiguous byte ranges from char_indices. Combining marks join the previous unit when one exists, and maqaf is a separate unit although tokenize keeps it on the left token.

### thin_threshold

For hash-derived u in [0,1), keep point iff u>=share: share0 keeps all, share1 drops all, NaN drops all. Equal inputs/seed repeat; this is deterministic thinning, not an independent random sample.

### sentence_delimiter

Colon also closes a sentence; following standalone פ/ס attach to it. Maqaf appends left and forces token emission without ending sentence. Empty whitespace yields no sentences.

### normalization_level

Pointed removes accents but retains vowels/dagesh/dots; Unpointed removes both sets. Level parse admits 'none' as Unpointed, unknown labels return None; is_pointed tests raw selected points.

### tests

#### Bounded evidence

Primary actual-code fixture: text::wave32::coordinates_thinning_and_sentence_edges. Run using cargo test --offline --locked -p hbo --lib text::wave32::coordinates_thinning_and_sentence_edges -- --exact --test-threads=1; repeat with --release. The external wave32 Hbo receipt set contains all 14 named outcomes twice per profile, numeric exit statuses, six compiled behavioral source negatives and byte-exact restoration hashes, and two identical source syntax projections. Source-local primary tests include assertions and caught expected panics. Fragments share these source witnesses; no claim of one test per branch.

Finite supplied-input checks only; no corpus, training, external annotator, GPU, throughput or semantic-understanding claim. Allocation exhaustion and malformed arbitrary model arithmetic are not exhaustively exercised. No useful numerical surrogate is implemented; future caps may only be 1/2/5/10% with a declared metric.

### invariant-and-cost

#### Invariant and cost

Units partition exact original bytes; coordinates are neither Unicode scalar positions nor bytes. Point removal preserves nonpoint/nonaccent scalars before NFC. Leading marks form their own first unit. Hash overflow is explicit wrapping.

##### Cost

B bytes,C scalars,T tokens: scanning O(B), NFC O(C+combining-order work), units O(C) time/O(C) slice pointers; tokenize stores O(B+T). Pathological combining sequences may increase normalization work.

Resources must permit allocations; cost variables are source bytes, units, words and table entries as explicitly stated. No measured speed or universal error claim.
