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

# prag-infer-maxims

The groupant beside prag/src/infer.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:** [`prag/src/infer.rs`](https://github.com/ElamurAI/mova-free/blob/main/prag/src/infer.rs)
- **source SHA-256:** `723690dfeebf9e8b…`
- **covers:** Question, exclamation and conjunction-order inference. (bytes 8565–12724)
- **part of:** [prag-infer](https://md.groupants.elamur.ai/free/en/mova/prag/src/infer.rs.groupant/)
- **repository folder:** [`prag/src/infer.rs.groupant/maxims.groupant`](https://github.com/ElamurAI/mova-free/tree/main/prag/src/infer.rs.groupant/maxims.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** | bounded executed evidence | `../model.md#evidence` |

## 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 |
|---|---|---|---|
| `prag-infer-maxims-behavior-complement` | behavior_complement | partial source model | [behavior-complement](#behavior-complement) |
| `prag-infer-maxims-reverse-reconstruction` | reverse_reconstruction | partial source model | [reverse-reconstruction](#reverse-reconstruction) |
| `prag-infer-maxims-event-order` | coordinate_relation | partial source model | [event-order](#event-order) |

## Model text


### forward

Filter PUNCT words from body. Question detection reads trimmed sentence suffix ?, ?! or !?; WH first form selects wh wording, AUX_INV first form selects yes/no wording without the auxiliary, otherwise declarative wording. Emit question before exclamation, where ! or !? suffix emits feeling. For each Conj VERB with distinct in-range nonzero head, require VERB head and and Cc child on the second verb, no stative lemma on either, no REORDER lemma anywhere and then only when attached to the second verb. Emit the head event before current event.

### behavior-complement

Universe: (W,S, finite maxim vector). Inner exclusions include reflexive event precedence, emission from root/out-of-range event heads, a manner pair with no and Cc on the second verb, and exclamation before question when both are emitted. Tests witness distinct valid pair versus invalid/reflexive heads and both mixed punctuation forms; old fixtures additionally witness stative and reorder blockers. This says nothing about actual chronological truth.

### reverse-reconstruction

For a rendered event pair retain every graph whose selected distinct verb forms, and attachment and blockers reproduce it. Identical surface forms can denote distinct coordinates; content does not recover positions. Quality output loses original punctuation tokens because punctuation comes from S, and PUNCT words are dropped from body. A question alone cannot distinguish all texts with the same terminal marker and body.

### event-order

Hold W fixed with source coordinates h and i. The emitted ordered pair is (h,i), using the dependency head as first event; the rule does not require h<i in text. Distinctness h!=i is now required. Shared event forms can still render equal strings, so a no-self *string* restriction would be wrong. Finite fixtures check h=0,i=2 for valid open/walk and reject actual identical coordinate. This is a linguistic heuristic, not a chronology proof.

### invariant

Question then exclamation then Conj token order. Manner head lookup is within bounds; its coordinate differs from the triggering event. All maxims are licensed irrespective of earlier text; the API has no history input. Word forms drive first-question classification while lemmas drive event gates.

### composition

The same words feed punctuation-body rendering and dependency gates but sentence punctuation is a separately supplied string. Caller agreement between string and words is a premise for linguistic interpretation, not enforced. The chain test deliberately supplies only suffixes to isolate this API observation.

### cost

Body/lemma construction O(n); up to n conjunction candidates each scan n conjunction/reorder tokens, O(n²) total with bounded strings. Distinct-head/bounds guards add constant work per candidate.

### epoch-memory

Old-source self-headed Conj emitted ran before ran. The repaired guard excludes self and dangling heads; valid legacy manner cases pass. Mixed punctuation remains legacy behavior and is tested without a tokenizer or annotator. No production punctuation or order heuristic was broadened.
