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
| component | label | where |
|---|---|---|
| Approximant | partial source derived | Forward |
| Ast | not materialized | |
| Composition | partial source derived | Composition |
| Cost | partial source derived | Cost |
| Descriptant | partial source derived | Descriptant |
| Invariant | partial source derived | Invariant |
| Tests | finite evidence | 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.
| relation | type | label | where |
|---|---|---|---|
| Behavior complement | behavior complement | partial source derived finite checks | Behavior complement |
| Reverse reconstruction | reverse reconstruction | partial source derived finite checks | Reverse 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/