math-qread-affine-support-pruning
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
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 | Forward |
| ast | partial | ../../syntax.json |
| cost | partial | Cost |
| descriptant | present | Epoch |
| invariant | partial | Invariant |
| tests | bounded actual helper 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 |
threshold_endpoint | threshold_endpoint | partial source derived model | threshold_endpoint |
constant_map_asymmetry | constant_map_asymmetry | partial source derived model | constant_map_asymmetry |
cancellation_quotient | cancellation_quotient | partial source derived model | cancellation_quotient |
nonfinite_limit | nonfinite_limit | partial source derived model | nonfinite_limit |
Model text
Scope
Source-derived bounded relation for the manifest byte interval. All relations observe one invocation and its stated state effects. Valid caller structures and finite values where specified are premises. No universal proof, percentage-error surrogate or production replacement is claimed.
Forward
Clone left Lin; update constant by s*o.c and each right coefficient by ordered entry addition; retain only coefficients whose absolute value is strictly greater than1e-12. scale uses zero-left add. Floating operations are in source order, not ideal exact algebra.
Invariant
On finite inputs, every retained coefficient has magnitude>1e-12; constant is never threshold-pruned. Output keys are a subset of union of input keys.
Cost
Clone O(A), B ordered-map updates O(B log(A+B)), then O(A+B) retention scan; space O(A+B). Scalar scale still performs map construction and retention.
behavior_complement
A resulting finite coefficient exactly1e-12 cannot remain. A small constant may remain, so excluding it would contradict the implementation. No exact associativity claim follows from floating arithmetic and intermediate pruning.
reverse_reconstruction
An absent key admits exact cancellation and every residual within [-1e-12,1e-12]. Given nonpruned output and fixed right argument, compatible left coefficients satisfy the rounded addition and threshold relation; this is not globally unique.
threshold_endpoint
Retention is strict >; scale(var0,1e-12) drops key0 while2e-12 retains it. This is absolute support projection, not a relative-error certificate.
constant_map_asymmetry
A constant1e-13 survives scale1 even though the same variable coefficient is removed. Numeric state cannot be reconstructed from support alone.
cancellation_quotient
add(a,a,-1) removes matched keys, losing their provenance. Distinct canceled unknown/leaf histories share the empty support; inverse must retain this ambiguity.
nonfinite_limit
NaN coefficient fails the > predicate and disappears; infinite coefficient survives. Finite-domain invariant does not establish universal numerical sanitation.
Tests
Actual helper fixture: qread::wave34::sparse_projection_and_single_substitution. See file-root wave34-evidence.md for named profile/control receipts. Complement relations above are exclusions, not merely test lists; inverse relations retain compatible antecedents. Unexecuted paths remain source-derived.
Epoch
2026-10-31 wave34: new descendant refining the existing parent; prior parent descriptions and evidence retained as historical snapshots. Production code is unchanged; inline synthetic tests add bounded observations.
This page in Markdown โ https://md.groupants.elamur.ai/free/en/mova/math/src/qread.rs.groupant/affine.groupant/support-pruning.groupant/