Elamur Groupants⌕
☰

elephant

The groupant beside models/elephant.groupant 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
Approximantpartial source derivedForward
Astnot materialized
Compositionpartial source derivedComposition
Costpartial source derivedCost
Descriptantpartial source derivedDescriptant
Invariantpartial source derivedInvariant
Testsfinite evidenceTests

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.

relationtypelabelwhere
Behavior complementbehavior complementpartial source derived finite checksBehavior complement
Reverse reconstructionreverse reconstructionpartial source derived finite checksReverse reconstruction

Model text

Descriptant

Elephant (mova-elephant): the keeper of Mova's word graph, one of Mova's animals. An incremental LSM store of counts over pass parts (runs, deltas, retractions; the graph built as the view), a program key on every part with a reprogramming plan that recounts only affected parts, English through Mova (a question-frame reader over the native parse for questions about words; the native deputy for its own state and work), a standing loop under Crab, and two consultant terminals asked only what counts cannot decide, with review-only proposals.

Forward

pass parts -> Store::add (hash, key) -> deltas; Store::tamp (fan_in smallest units, merge::compact) -> runs; Store::view (staged runs + deltas -> wordgraph::compile::build) -> graph; new key -> reprogram::plan (ok / attest by key::affected / recount) -> Store::rekey; prompt -> ask::read | Deputy with Hands(status, proposals, tamp, refresh) -> English; work: requests -> add -> tamp -> view -> papers (elephant-tamp) -> consult (suspect + consult) -> proposals.

Invariant

I1 a part is counted once; I2 one program key per store (or attested); I3 the view over runs + deltas equals the wordgraph build over the original parts in every section but provenance (same OOV registry state), and any merge tree writes the same run; I4 one graph per lineage. The English service never writes the store; consultants never write the graph or the lists; nothing is deleted.

Cost

Add: one hash per part; tamp: two streaming reads of its inputs and one write (O(R log k)); view: one wordgraph build over a bounded number of inputs (size-tiered compaction rewrites a record O(log_fan_in N) times). Measured 2026-11-06 on the 50 000-article pass: view over 4 runs + 5 deltas 39 s / 0.73 GB against the full build 54 s / 1.25 GB; major tamp 21-23 s / 0.04 GB; 11 whole-Wikipedia parts (126 M records) tamped in 69 s / 0.10 GB; English through serve 107-159 ms a question.

Composition

Leaves are file groupants under tools/elephant/src/*.rs.groupant and tools/elephant/tests/*.rs.groupant; the graph and its passes are the word-graph group (wordgraph). Correct leaves do not prove the wiring: the interaction checks are tests/lsm.rs (store, merge, key and wordgraph's build together), tests/work.rs (the loop, the store, the detector and the consultant rules together) and tests/english.rs (the reader, the deputy and the hands together).

Behavior complement

No model is called for native work; no part is copied or deleted; no proposal is admitted; no consultant question without the operator's word; the hand lists and the graph never take a consultant's answer.

Reverse reconstruction

The store's history (one manifest per generation), journal.jsonl, work.jsonl, english.jsonl, consult.jsonl and proposals.jsonl recover what was counted, merged, built, asked and proposed, with hashes. Evidence status: source-derived with finite checks.

Tests

Checks

lsm equality and merge-tree freedom on synthetic passes and on the 50 000-article pass (byte-identical 143 MB runs from two merge trees); reprogramming attests 3 of 4 parts; the loop with fake terminals; English with the 2026-11-05 model. Red controls: merge by max, the counted-hash skip removed, the reader's negation check removed, the comparison on a graph missing a pass. These are finite fixtures and measurements; not a proof.

History

2026-11-06 · document

Epoch 2026-11-06

First model: the Elephant made incremental (LSM store), an animal on Mova (English, loop under Crab) with two Sol consultants.

Provenance

This page in Markdown → https://md.groupants.elamur.ai/free/en/mova/models/elephant.groupant/