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

# school-tail-recognition

The groupant beside world/src/knowledge.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/knowledge.rs`](https://github.com/ElamurAI/mova-free/blob/main/world/src/knowledge.rs)
- **source SHA-256:** `0128bd416063db7a…`
- **covers:** Scenario-tail partition and finite recognizer (bytes 47753–48990)
- **part of:** [school-runtime](https://md.groupants.elamur.ai/free/en/mova/world/src/knowledge.rs.groupant/)
- **repository folder:** [`world/src/knowledge.rs.groupant/tail-recognition.groupant`](https://github.com/ElamurAI/mova-free/tree/main/world/src/knowledge.rs.groupant/tail-recognition.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** | source derived partial | [forward](#forward) |
| **ast** | partial | `../syntax.json` |
| **cost** | prospective source cost | [cost](#cost) |
| **descriptant** | present | [epoch-memory](#epoch-memory) |
| **invariant** | source derived partial | [invariant](#invariant) |
| **tests** | bounded named actual code | [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 |
|---|---|---|---|
| `school-tail-recognition-complement` | behavior_complement | source derived inner bound | [behavior-complement](#behavior-complement) |
| `school-tail-recognition-preimage` | reverse_reconstruction | partial relational specification | [reverse-reconstruction](#reverse-reconstruction) |
| `school-tail-recognition-unicode-boundary` | slice_safety | source derived partial | [unicode-boundary](#unicode-boundary) |
| `school-tail-recognition-word-threshold` | admission_boundary | source derived partial | [word-threshold](#word-threshold) |
| `school-tail-recognition-punctuation-repartition` | nonmonotone_normalization | source derived partial | [punctuation-repartition](#punctuation-repartition) |
| `school-tail-recognition-answer-coupling` | dispatch_contract | source derived partial | [answer-coupling](#answer-coupling) |

## Model text


Subject: `world/src/knowledge.rs` at manifest source SHA. Horizon: one terminating call or explicitly named load prefix on finite synthetic inputs, pinned dependencies and ordinary allocation/I/O. This is a source-derived partial model; finite tests do not establish universal correspondence.

### forward

Trim end; remove final Unicode scalar from the search window; find the last ASCII sentence separator in that window; split inclusive scenario and following tail. Reject scenario with <3 whitespace words. Lowercase tail, strip terminal ?!. and trim, then match the explicit Cause/Next/Claim phrases; otherwise None.

### invariant

Successful scenario is a borrowed trimmed prefix ending at the selected separator. Tail vocabulary is finite; recognized class does not prove natural-language meaning.

### cost

O(B) trimming, reverse delimiter search, word count and tail lowercase allocation; O(tail bytes) auxiliary storage.

### behavior-complement

Type: behavior_complement. Over UTF-8 question/Option pairs, exclude Some for a selected scenario under three whitespace tokens or normalized tail outside the explicit phrase sets. Exclude changing scenario text or choosing a separator earlier than the last in the search window.

### reverse-reconstruction

Type: reverse_reconstruction. For Some(s,k), compatible questions preserve the trimmed selected prefix s and append whitespace plus any case/terminal-punctuation variant of a phrase in k, provided the last-break algorithm still selects that boundary. Extra punctuation can change the selected boundary; not every typographic variant is compatible.

### unicode-boundary

Type: slice_safety. Final scalar removal uses char_indices, and ASCII delimiters produce valid UTF-8 boundaries. Empty strings have empty windows and no match. Domain and fixed-source assumptions are those above; this is a source-derived constraint, checked only by the bounded named oracle where applicable.

### word-threshold

Type: admission_boundary. The scenario threshold counts split_whitespace tokens, not lexical words; exactly three suffice. No semantic length estimator is involved. Domain and fixed-source assumptions are those above; this is a source-derived constraint, checked only by the bounded named oracle where applicable.

### punctuation-repartition

Type: nonmonotone_normalization. Appending '? !' style repeated sentence punctuation may place a later separator inside the tail; the algorithm can reject a previously recognized question before phrase matching. Domain and fixed-source assumptions are those above; this is a source-derived constraint, checked only by the bounded named oracle where applicable.

### answer-coupling

Type: dispatch_contract. answer uses recognition only when student-tail is enabled, reads the scenario as nonquestion, and maps Cause/Next to the last root, Claim to Ask::Frame with no gap. Recognition alone invokes no parser. Domain and fixed-source assumptions are those above; this is a source-derived constraint, checked only by the bounded named oracle where applicable.

### parent-interaction

Runtime answer calls this before parser dispatch. A recognized tail selects scenario reading only if its feature flag is enabled; otherwise ordinary question reading applies. Recognition tests do not establish answer behavior or parser correctness.

### checks

`knowledge::wave34_tests::tail_recognition_keeps_scenario_and_rejects_short_or_unknown` directly executes this helper or its containing load/reuse path with literal expected results. Full source and selected test body reviewed; no implementation-copy oracle. Exact names, profile repetitions and mutation receipts are recorded in the wave34 evidence summary. These are finite synthetic witnesses; unobserved cases and opaque dependencies remain gaps.

### epoch-memory

2026-10-31 wave34: prospective relations saved before test additions. Production bytes preserved. This new finer scope retains its parent's earlier models and history. Shared partial syntax is generated twice and compared; no semantic AST or solver claimed. No teacher, corpus, model loading, successful examination, training or lesson replay is credited as persistent knowledge.
