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
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 |
| ast | partial | ../syntax.json |
| cost | prospective source cost | cost |
| descriptant | present | epoch-memory |
| invariant | source derived partial | invariant |
| tests | bounded named actual code | 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 |
school-tail-recognition-preimage | reverse_reconstruction | partial relational specification | reverse-reconstruction |
school-tail-recognition-unicode-boundary | slice_safety | source derived partial | unicode-boundary |
school-tail-recognition-word-threshold | admission_boundary | source derived partial | word-threshold |
school-tail-recognition-punctuation-repartition | nonmonotone_normalization | source derived partial | punctuation-repartition |
school-tail-recognition-answer-coupling | dispatch_contract | source derived partial | 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.
This page in Markdown โ https://md.groupants.elamur.ai/free/en/mova/world/src/knowledge.rs.groupant/tail-recognition.groupant/