macula-pragmatics-speech
The groupant beside tools/macula/src/prag.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 | partial | approximant |
| ast | partial | ../syntax.json |
| cost | symbolic source derived | invariant |
| descriptant | present | descriptant |
| invariant | partial | invariant |
| tests | executed bounded checks | 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 |
reverse_reconstruction | reverse_reconstruction | partial source derived model | reverse_reconstruction |
priority | priority | partial source derived model | priority |
closure | closure | partial source derived model | closure |
bare | bare | partial source derived model | bare |
open | open | partial source derived model | open |
Model text
descriptant
Descriptant
Prospective epoch
2026-10-31 source review predicted: Project rows/all/root, compute marks, quote first then close/carry/bare/narration. Resource model: Repeated quote/subtree/read scans polynomial, BTree scope storage. External prospective.md predates test additions and preserves APIs, effect order, hazards and interaction hypotheses.
Observed epoch
Bounded real helper checks in tests.md constrain these models; syntax is a partial lexical projection with no macro expansion, name resolution or proof. Production expressions unchanged; five inline test modules added. Compiled mutants are temporary and exactly restored. Existing malformed-input and nonfinite domains remain explicit, not silently repaired. Parent composes this scope with siblings without adding overlapping costs twice.
Exact byte scope; finite correspondence only. Untested branches source-derived.
approximant
Forward relation
Project rows/all/root, compute marks, quote first then close/carry/bare/narration.
Domain: Nonempty10-field rows required; frame/read separate; empty quote opens without carry; negation Type separate row.neg.
invariant
Invariant and cost
Invariant
Nonempty10-field rows required; frame/read separate; empty quote opens without carry; negation Type separate row.neg.
Cost
Repeated quote/subtree/read scans polynomial, BTree scope storage.
Limits
Exact byte scope; finite correspondence only. Untested branches source-derived. No percentage surrogate is implemented: categorical parsing/effect observations lack an admitted numerical error metric. Any future profile must define its metric/domain and use only1/2/5/10 percent caps.
models
Typed source-bound relations
Subject: exact source SHA-256 in manifest. Domain and resource premises are in invariant.md. Each model is partial, source-derived, over a single helper invocation or the described finite trace. Complements are proposed inner exclusions under those premises; reverse relations retain all compatible antecedents, with no unique inverse claim. The oracle is the named checks in tests.md; unexecuted cases remain hypotheses. No numerical approximation certificate.
behavior_complement
No-frame unmarked closed input cannot Bare; no carry cannot continue solely prior state.
reverse_reconstruction
Cont outside quote needs old open/carry/no close; Quote compatible both old states; lexical parse ambiguous.
priority
Found quote bypasses closure; frame=all minus quote, quote row.neg OR frame.neg.
closure
Narrative third-person wayyiqtol or enabled unmarked qatal closes before continuation.
bare
Bare inspects root/direct child marks; marked inspects all words.
open
Nonempty quote opens iff carry and last word included; empty quote always opens.
tests
Checks and evidence
Named source/helper checks: prag::tests::frame_and_quote, prag::tests::narrator_closes_quote.
Wave31 on2026-10-31:30 distinct exact tests passed twice debug and twice release, with equal sorted named outcomes. This node claims only its listed subset; empty subset means source review only. Six actual source-behavior mutants compiled, failed assertions, restored exact bytes/hash, and passed focused green reruns. No assertion-only mutants; existing swapped-input controls are separate. Receipt bundle: $MOVA_DATA/runs/octopus-wave31-corpus-2026-10-31 (native-commands.json, source-test-map.json, mutation-results.json, .status/.log). No live corpus, teacher, frozen assessment, download or production data used.
Exact byte scope; finite correspondence only. Untested branches source-derived.
This page in Markdown โ https://md.groupants.elamur.ai/free/en/mova/tools/macula/src/prag.rs.groupant/speech.groupant/