Elamur Groupants⌕
☰

treebanks-render

The groupant beside tools/treebanks/src/render.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
approximantpartialmodel.md
astpartialsyntax.json
compositionpartialComposition
costpartialinvariant-and-cost
descriptantpresentdescriptant
invariantpartialinvariant-and-cost
testsbounded 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
count_projectioncount_projectionpartial source derived modelcount_projection
identity_lifetimeidentity_lifetimepartial source derived modelidentity_lifetime
markdown_scopemarkdown_scopepartial source derived modelmarkdown_scope
sort_tiessort_tiespartial source derived modelsort_ties

Parts

Model text

descriptant

Descriptant

Card readme_md renders metadata, source attribution, split Counts and total; papers_md resolves Found identities against Matcher, sorts year/title, prints match method/fuzzy marker/alts and unmatched raw references. Empty found/unfound emits no-reference message. lang_md sums Counts and uses first card language/family; index_md sorts language/name and counts license categories. Formatting escapes pipes only in cell, converts surname-comma contributor names and groups decimal digits.

Epoch 2026-10-31

Prospective source reading identified conditional input alignment, information loss and failure order before tests. Existing production code is retained; added tests use actual helpers. Finite results update this source-bound model, not all parser/corpus semantics.

No executable percentage surrogate has a justified observation metric for these categorical/effectful APIs. Future profiles require metric, domain and real-reference evidence at caps 1/2/5/10%; no higher cap. Syntax is partial lexical Rust projection without macro expansion or semantic resolution.

approximant

Forward approximant

Card readme_md renders metadata, source attribution, split Counts and total; papers_md resolves Found identities against Matcher, sorts year/title, prints match method/fuzzy marker/alts and unmatched raw references. Empty found/unfound emits no-reference message. lang_md sums Counts and uses first card language/family; index_md sorts language/name and counts license categories. Formatting escapes pipes only in cell, converts surname-comma contributor names and groups decimal digits.

Composition

Child fragments model one narrow helper each; their correctness alone does not establish orchestration.

The containing source wires this scoped relation to its callers. Treeagree proposal→gate→commit and treebanks parse→match→collect→render are actual joins; parsecmp is an independent diagnostic path. The external group model distinguishes these tags.

catalog

Typed models for treebanks-render

Subject: source SHA-256 1d5101cda9ced92075a30cb2fd999239fc136ec6c5d315230f18c4c0fa15403a; manifest supplies exact source/byte scope. Domain: admitted states in forward model, nonoverflow arithmetic and successful allocations. Observation: one terminating invocation, except explicitly described file trace. Source-derived partial relations; named finite tests constrain selected cases only. Each entry holds arguments and environment fixed except its stated intervention.

behavior_complement

papers_md never downloads or links private library folders; only known anthology ids produce ACL links. Empty references return before Papers heading. Rendering cannot certify stats gates that were skipped by a direct caller.

Operator: inner exclusion on admitted domain. Evidence: source branch derivation plus tests.md; unexercised branches remain hypotheses. Oracle: evaluate the scoped actual helper on admissible fixtures and compare this observation. No universal proof.

reverse_reconstruction

Rendered totals admit all split distributions with same sums; contributor reordering loses original comma formatting; cell trims edges and conflates empty strings with dash. Paper output constrains indexed title/year/method but cannot recover raw matching evidence or all index records.

Operator: compatible antecedent relation, retaining ambiguity. Evidence: source branch derivation plus tests.md; unexercised branches remain hypotheses. Oracle: evaluate the scoped actual helper on admissible fixtures and compare this observation. No universal proof.

count_projection

Card displays empty nodes even though check_stats key excludes empty; equal validated tuples do not validate this displayed coordinate.

Operator: specialized observation relation under the stated fixed inputs. Evidence: source branch derivation plus tests.md; unexercised branches remain hypotheses. Oracle: evaluate the scoped actual helper on admissible fixtures and compare this observation. No universal proof.

identity_lifetime

Found stores Src/index; reordering underlying Index before papers_md changes resolved paper, so collect/render must share stable Matcher.

Operator: specialized observation relation under the stated fixed inputs. Evidence: source branch derivation plus tests.md; unexercised branches remain hypotheses. Oracle: evaluate the scoped actual helper on admissible fixtures and compare this observation. No universal proof.

markdown_scope

cell escapes pipes but raw references/title text are not globally escaped; no general Markdown injection-safety guarantee.

Operator: specialized observation relation under the stated fixed inputs. Evidence: source branch derivation plus tests.md; unexercised branches remain hypotheses. Oracle: evaluate the scoped actual helper on admissible fixtures and compare this observation. No universal proof.

sort_ties

Stable paper sort uses year/title only, retaining incoming order for exact ties; global cards use language/name, licenses count descending then lexical.

Operator: specialized observation relation under the stated fixed inputs. Evidence: source branch derivation plus tests.md; unexercised branches remain hypotheses. Oracle: evaluate the scoped actual helper on admissible fixtures and compare this observation. No universal proof.

tests

Bounded evidence — 2026-10-31

Source tools/treebanks/src/render.rs at SHA-256 1d5101cda9ced92075a30cb2fd999239fc136ec6c5d315230f18c4c0fa15403a. Selected actual-source tests in treebanks:

These names passed twice in debug and twice in release; the complete treebank/comparison slice has 25 target-qualified names and identical sorted outcomes in all four runs. Ten compiled behavior mutations (one per owned source) failed named runtime assertions; exact original/restored SHA-256 equality and positive reruns were checked. Zero assertion-only mutants, zero surviving exploratory mutants, zero production fixes. Fresh raw logs, numeric exits, commands and mutation hashes are external in the wave33 trees receipt set.

Scope and gaps

Only named finite assertions cover selected inputs; other branches and invalid-domain behavior remain source-derived. No corpus, network, downloads, annotation model, live teacher, full release build or site execution. The treebanks join is entirely in memory and parsecmp uses a tiny uniquely named temporary directory. Treeagree Registry::load uses the embedded UD registry. Tests are finite CPU observations, not universal semantic proof, title-match quality estimates or corpus accuracy.

invariant-and-cost

Invariant and cost

Rendering O(input/output bytes plus paper/card sorting), with repeated totals over at most three splits. String allocations proportional to output; Counts addition assumes no u64 overflow. lang_md requires nonempty cards; Found indices must belong to unchanged Matcher indexes.

papers_md never downloads or links private library folders; only known anthology ids produce ACL links. Empty references return before Papers heading. Rendering cannot certify stats gates that were skipped by a direct caller.

The complement and specialized catalog constrain preserved coordinates and effect boundaries. Empty/malformed domains are only guaranteed where explicitly admitted. No whole-program cost bound follows from a helper bound.

This page in Markdown → https://md.groupants.elamur.ai/free/en/mova/tools/treebanks/src/render.rs.groupant/