Elamur Groupants⌕
☰

latex-tomath-emission

The groupant beside latex/src/tomath.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
compositionpartialcomposition
descriptantpresentdescriptant
invariantpartialinvariant
testsexecuted bounded checkstests

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
wrappingwrappingpartial source derived modelwrapping
foldfoldpartial source derived modelfold
arityaritypartial source derived modelarity
compositioncompositionpartial source derived modelcomposition (models)

Model text

descriptant

latex-tomath-emission

from_expr emits with role-specific wrapping and unary function arity checks. fold_literals recurses and folds integer Div(p,q) when p>=0, q>1, Rat construction succeeds and the normalized numerator equals p; Div(0,2) therefore folds to zero despite reducibility. roundtrip runs all stages then folded equality.

Epoch 2026-10-31: complete sources read before tests/model edits. Partial source-bound modeling; no production optimization or speed claim. Nested fragments share the parent lexical syntax. Caller/callee contracts outside owned files remain delegated.

approximant

Forward relation

from_expr emits with role-specific wrapping and unary function arity checks. fold_literals recurses and folds integer Div(p,q) when p>=0, q>1, Rat construction succeeds and the normalized numerator equals p; Div(0,2) therefore folds to zero despite reducibility. roundtrip runs all stages then folded equality.

Domain and executable surrogate gap

Bounded UTF-8 inputs and synthetic local files; supported parser-produced trees and representable arithmetic. Arbitrary public constructors are not certified total. Exact categorical semantics lack a useful percentage surrogate; no executable approximant attachment. Future numerical profiles require an explicit metric, zero case, source/evidence binding and supported 1/2/5/10% cap. Failure/effect differences cannot count as numerical error.

invariant

Invariant

For the scoped transition bytes [17925,23885): from_expr emits with role-specific wrapping and unary function arity checks. fold_literals recurses and folds integer Div(p,q) when p>=0, q>1, Rat construction succeeds and the normalized numerator equals p; Div(0,2) therefore folds to zero despite reducibility. roundtrip runs all stages then folded equality. Unsupported arity/function/construct errors rather than fallback. Structural true does not establish arithmetic definedness. Empty Add/Mul outside inverse domain.

Cost

Recursive Expr output/folding plus print/parse/inverse; proportional emitted structure except delegated parser/arithmetic.

Allocation failure, stack exhaustion and unchecked counter overflow have no additional certificate. No timing claim or global error bound.

composition

Composition

from_expr emits with role-specific wrapping and unary function arity checks. fold_literals recurses and folds integer Div(p,q) when p>=0, q>1, Rat construction succeeds and the normalized numerator equals p; Div(0,2) therefore folds to zero despite reducibility. roundtrip runs all stages then folded equality.

For the scoped transition bytes [17925,23885): from_expr emits with role-specific wrapping and unary function arity checks. fold_literals recurses and folds integer Div(p,q) when p>=0, q>1, Rat construction succeeds and the normalized numerator equals p; Div(0,2) therefore folds to zero despite reducibility. roundtrip runs all stages then folded equality. Unsupported arity/function/construct errors rather than fallback. Structural true does not establish arithmetic definedness. Empty Add/Mul outside inverse domain.

Parser, printer, AST equality, Macros, Rat and evaluator dependencies retain their own contracts. Structural roundtrip is not arithmetic definedness or numeric truth. Exact lexical binding does not prove caller/callee semantics.

models

behavior_complement

Unsupported arity/function/construct errors rather than fallback. Structural true does not establish arithmetic definedness. Empty Add/Mul outside inverse domain.

reverse_reconstruction

Presentation chosen, original source unrecoverable; folded Rat/Div joins some representations. Unsupported Expr has no successful image.

wrapping

Sub wraps additive/negative RHS; Mul additive/negative/nested-mul; Pow nonbare bases.

fold

p>=0 integer q>1 and numerator unchanged; reducible2/4 stays Div.

arity

Zero/multi args reject before function support.

composition (models)

True iff folded back equals folded input after fallible stages; not numerical equality.

tests

Selected evidence

cargo test -p latex --features math --test bridge

Two debug/two release executions retained matching sorted named outcomes. External wave28 latexbridge receipts retain numeric exits, compiled assertion controls, restoration, feature checks and source-test map. This scope is not exhaustive branch coverage; parent tests may only exercise some child transitions. Frozen VMM DATA/classification/hash subprocess, live corpus, teacher/API, training/GPU excluded. Reexport/feature compilation is separate from runtime semantics.

This page in Markdown → https://md.groupants.elamur.ai/free/en/mova/latex/src/tomath.rs.groupant/emission.groupant/