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

# math-qread-constraints

The groupant beside math/src/qread.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:** [`math/src/qread.rs`](https://github.com/ElamurAI/mova-free/blob/main/math/src/qread.rs)
- **source SHA-256:** `8389b8d58f681217…`
- **covers:** Event accumulation at upto sums Set/Add values and subtracts Sub values for matching events with t<=upto, excluding Is/Rel. Before that accumulation, relation/direct/movement/initial-state decisions inspect the full event list. For q=a*u+r with one remaining unknown, solve inserts u=-r/a, in encounter order over four passes. (bytes 57912–64786)
- **part of:** [math-qread](https://md.groupants.elamur.ai/free/en/mova/math/src/qread.rs.groupant/)
- **repository folder:** [`math/src/qread.rs.groupant/constraints.groupant`](https://github.com/ElamurAI/mova-free/tree/main/math/src/qread.rs.groupant/constraints.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 | `model.md` |
| **cost** | partial | [Cost](#cost) |
| **descriptant** | present | [descriptant](#descriptant) |
| **invariant** | partial | [invariant](#invariant) |
| **tests** | source review only runtime gap | [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) |
| `full_history_branching` | full_history_branching | partial source derived model | [full_history_branching](#full-history-branching) |
| `ordered_single_unknown` | ordered_single_unknown | partial source derived model | [ordered_single_unknown](#ordered-single-unknown) |

## Parts

- [math-qread-constraints-temporal-fold](https://md.groupants.elamur.ai/free/en/mova/math/src/qread.rs.groupant/constraints.groupant/temporal-fold.groupant/)
- [math-qread-constraints-single-unknown-passes](https://md.groupants.elamur.ai/free/en/mova/math/src/qread.rs.groupant/constraints.groupant/single-unknown-passes.groupant/)

## Model text


### descriptant

#### math-qread-constraints

Event accumulation at upto sums Set/Add values and subtracts Sub values for matching events with t<=upto, excluding Is/Rel. Before that accumulation, relation/direct/movement/initial-state decisions inspect the full event list. For q=a*u+r with one remaining unknown, solve inserts u=-r/a, in encounter order over four passes.

Epoch 2026-10-31: replaced duplicate catalog sentences with concrete exclusions, compatible-antecedent examples and two distinct scoped behavioral views. Source and prior execution evidence are unchanged; this revision ran no tests.

### approximant

#### Scoped forward relation

Event accumulation at upto sums Set/Add values and subtracts Sub values for matching events with t<=upto, excluding Is/Rel. Before that accumulation, relation/direct/movement/initial-state decisions inspect the full event list. For q=a*u+r with one remaining unknown, solve inserts u=-r/a, in encounter order over four passes.

This source-derived relation is partial; no executable percentage surrogate or replacement is supplied.

### invariant

#### Scoped domain and invariants

Valid event and leaf indices are required. Relation recursion stops at depth3. Conditional temporal fold membership is preserved, but prefix causality is not guaranteed.

##### Cost

Repeated full-history scans occur before and during state queries; four solver passes repeatedly clone/substitute coefficient maps. Relation recursion has bounded depth3, not constant total event work.

### models

### behavior_complement

For owner=None, outside events cannot enter the accumulation. Is/Rel cannot be directly summed. An equation still containing two unknowns cannot add a solution in that visit. The implementation does not exclude dependence on future events when querying an earlier upto.

### reverse_reconstruction

With no future data, an initial Add may start at zero; adding a later Is for the same owner/thing can introduce an initial unknown into the same early-upto query. Distinct equation lists containing u-leaf0=0 or 2*u-2*leaf0=0 can yield the same solution, so neither prefix history nor equations are reconstructed uniquely.

### full_history_branching

direct, moved, initial_ev and told_state scans have no upto filter. Thus state_d(history,upto) is not generally equal to state_d(history restricted to t<=upto,upto). Only the final event fold is time-filtered.

### ordered_single_unknown

After substitution, exactly one unknown triggers assignment; zero or>=2 unknowns produce no insertion. Four passes can propagate short chains but are neither Gaussian elimination nor a consistency/uniqueness certificate.

### tests

#### Scoped evidence

Static source review only; no nonempty event-state/solve fixture. Solver completeness and contradictions remain unverified.

Named actual source fixtures: none.

Parent tests.md records commands and paired profiles. No additional coverage inferred from parent fixtures outside this byte range; source-scoped numeric/parse properties remain partial.

##### Wave34 direct-helper refinement

Earlier source-only gaps and wave28 receipts above are historical. Current descendants add actual helper fixtures; see ../wave34-evidence.md and each descendant's Tests section. Full English parsing and general solver correctness remain gaps.

### wave34-composition

## Constraint descendant composition

single-unknown-passes constructs its equations by invoking temporal-fold through state. Exact-thing/head selection and owner/total routing happen before the fold. Fold branch decisions inspect full history, while its final accumulator filters by upto; therefore an early-time equation may depend on a later condition. The solver then freezes the equation vector and performs four ordered substitution passes using Lin's pruning relation.

An output solution preimage needs event histories whose routed state calls create compatible equations in that construction order. A correct local isolation formula does not establish that the selected event equation expresses the story. Two unknowns after substitution cause no insertion; zero unknowns skip consistency checking. Relations, whole/part and time construction remain source-derived beyond the bounded direct Is fixtures.

### Cost

Equation assembly includes repeated event scans and bounded-depth relation exploration, plus affine map costs. Four passes visit each equation and pay actual support-dependent substitution and isolation work. No Gaussian solver or convergence complexity is claimed.
