Elamur GroupantsโŒ•
โ˜ฐ

math-steps-binding

The groupant beside math/src/steps.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

componentlabelwhere
approximantpartialapproximant
astpartial../syntax.json
descriptantpresentdescriptant
invariantpartialinvariant
testssource review only runtime gaptests

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.

idtypelabelwhere
behavior_complementbehavior_complementpartial source derived modelbehavior_complement
reverse_reconstructionreverse_reconstructionpartial source derived modelreverse_reconstruction
modifier_compatibilitymodifier_compatibilitypartial source derived modelmodifier_compatibility
environment_dispatchenvironment_dispatchpartial source derived modelenvironment_dispatch

Model text

descriptant

math-steps-binding

ignore_set v1 collects real quantities lacking question-context overlap, returning them only if>=2 real quantities remain. v2 uses target head/modifier matches over quantities with units; returns unmatched unit-bearing indices only if at least1 bound item, a nonempty ignored set and>=2 real survivors.

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

ignore_set v1 collects real quantities lacking question-context overlap, returning them only if>=2 real quantities remain. v2 uses target head/modifier matches over quantities with units; returns unmatched unit-bearing indices only if at least1 bound item, a nonempty ignored set and>=2 real survivors.

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

invariant

Scoped domain and invariants

Returned indices belong to real input quantities. Ignore selection is a heuristic feature/selection boundary, not proof that excluded numbers are irrelevant.

Cost

Membership checks repeatedly scan target/modifier/context lists; collecting bound/ignored indices uses Vec::contains. Training BindModel separately costs epochsitemsfeatures and is not executed here.

models

behavior_complement

A const-prefixed index cannot enter the returned ignore set. A result leaving fewer than2 real quantities is excluded. Missing-unit quantities in v2 cannot be ignored merely for lacking a unit.

reverse_reconstruction

With two bound apples plus one orange, [orange_index] can result for many subject/verb/number values. An empty set admits no targets, no unmatched units, or the survivor-count gate failing; it does not identify the reason.

modifier_compatibility

v2 treats empty target modifiers or empty description modifiers as compatible; otherwise any shared modifier suffices. It does not demand full modifier-set equality.

environment_dispatch

MATH_IGNORE_V=1 selects context-overlap v1; all other values use v2. Identical Prob can yield different ignore sets under these environments; constants are excluded in both.

tests

Scoped evidence

Static source review only; no ignore_set or BindModel execution.

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.

This page in Markdown โ†’ https://md.groupants.elamur.ai/free/en/mova/math/src/steps.rs.groupant/binding.groupant/