Elamur Groupants⌕
☰

correspondence-cli

The groupant beside tools/correspondence/src/main.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
approximantpartialforward
astpartialsyntax.json
costpartialcost
descriptantpresentdescriptant
invariantpartialinvariant
testsfinite checkschecks

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
correspondence-cli-behaviorbehavior_complementpartial source modelbehavior-complement
correspondence-cli-reversereverse_reconstructionpartial source modelreverse-reconstruction

Model text

descriptant

CLI for bounded correspondence scans and create-new JSON reports.

2026-10-31, wave36. This file supports the first bounded typed correspondence scanner. The inventory found 200 algorithm implementations and 473 other registered source groupants at the baseline; 56 pure nonalgorithm groups and three mixed groups are reported separately. Root and mixed groups must not be mislabeled as ordinary application leaves.

Earlier source/model formats are predominantly prose. Missing machine formulas remain gaps. An initial ownership check based only on lexical model paths was strengthened after review: canonical model files must remain within the declared owner sidecar, including symlink targets. The negative control uses an internal foreign-sidecar symlink.

Finite relation structural candidates, finite coincidences and two-order composition summaries are distinct observations. Even an identity on the supplied finite endpoints is not an unrestricted inverse theorem or a production replacement. Effects require an explicit common-state adapter; generic composition of effectful formulas is rejected by the core.

model

Correspondence CLI model

forward

Accept exactly scan REPO REGISTRY CATALOG NEW_JSON. Run corpus::scan first; serialize a successful report with serde_json pretty formatting, then mova_modelcheck::write_new using create_new and sync_all. Print output path, coverage and explicit non-proof/non-substitution fields. Invalid arguments, scanner failures and existing output paths return errors.

behavior-complement

Within stable input files and successful allocation, excluded behavior includes accepting a different command/argument count, overwriting an existing report, presenting a scanner failure as success or marking a finite report as proof. The CLI does not run teacher calls, training, production replacements or network requests.

reverse-reconstruction

A successful report and console summary admit every invocation naming the same readable inputs and a previously absent writable output path. Serialization is a projection and cannot uniquely recover the shell environment, filesystem history or executable context. An existing-file error does not imply invalid formula semantics. If a write/sync fails after create_new, a partial file may remain; no atomic-replacement guarantee is claimed.

invariant

No output file is created until the scanner returns success. create_new protects existing output bytes. The scanner owns ownership/hash/type validation; CLI composition preserves the scanner report and adds only a concise status line.

cost

Scanner cost plus O(J) JSON serialization/write bytes for report size J; sync latency is environment-dependent. Arguments and report output are not semantically interpreted by the CLI.

checks

2026-10-31: baseline empty-catalogue CLI scan twice produced identical report bytes. Reusing the first output path returned File exists. Six scanner tests cover dispatch dependencies. Scoped Clippy and formatting pass; no full workspace suite was run. No universal semantic equivalence or production performance claim follows.

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