---
title: "algorithm-exact-cover — Mova code model"
description: "Mova code model of algorithms/src/exact_cover/mod.rs: components with their labels, obernants and the model text."
url: "https://groupants.elamur.ai/free/en/mova/algorithms/src/exact_cover/mod.rs.groupant/"
---
Elamur: [Mova](https://md.mova.elamur.ai/free/en/) · [Dictionary](https://md.dictionary.elamur.ai/free/en/) · [Research](https://md.research.elamur.ai/free/en/) · **Groupants**

This page as HTML: <https://groupants.elamur.ai/free/en/mova/algorithms/src/exact_cover/mod.rs.groupant/>

# algorithm-exact-cover

The groupant beside algorithms/src/exact_cover/mod.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

- **kind:** groupant
- **status:** partial source derived instance
- **source:** [`algorithms/src/exact_cover/mod.rs`](https://github.com/ElamurAI/mova-free/blob/main/algorithms/src/exact_cover/mod.rs)
- **source SHA-256:** `2ed84e7cb4f59ea4…`
- **repository folder:** [`algorithms/src/exact_cover/mod.rs.groupant`](https://github.com/ElamurAI/mova-free/tree/main/algorithms/src/exact_cover/mod.rs.groupant)
- **repository commit:** `855da7bd4a7b`

> **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** | source derived | [Forward](#forward) |
| **ast** | partial | `syntax.json` |
| **cost** | symbolic unmeasured | [Cost](#cost) |
| **descriptant** | present | [descriptant](#descriptant) |
| **invariant** | source derived | [Invariant](#invariant) |
| **tests** | bounded executed | [evidence](#evidence) |

## 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 |
|---|---|---|---|
| `nonbehavior` | behavior_complement | partial source derived | [nonbehavior](#nonbehavior) |
| `preimages` | reverse_reconstruction | partial source derived | [preimages](#preimages) |
| `transition` | specialized_relation | partial source derived | [transition](#transition) |
| `order` | specialized_relation | partial source derived | [order](#order) |
| `coordinate` | specialized_relation | partial source derived | [coordinate](#coordinate) |
| `fiber` | specialized_relation | partial source derived | [fiber](#fiber) |
| `errors` | error_partition | partial source derived | [errors](#errors) |

## Model text


### descriptant

#### algorithm-exact-cover

Original std-only implementation or original independent fixtures. See source citations. Prospective model was saved before implementation in $MOVA_DATA/runs/octopus-wave26-combinatorial-2026-10-30/prospective.md.

Preserve original coordinates, deterministic ties and distinct validation/resource/infeasibility outcomes. Repeated observations constrain this epoch only.

### model

## algorithm-exact-cover

### Domain

<=64 columns, <=4096 rows of distinct valid coordinates; finite u64 node budget; Option row-index witness or ResourceExhausted.

### Forward

Bitmask Algorithm X chooses minimum compatible-row-count uncovered column, ascending column and row ties; recurse only on disjoint rows; every visited state consumes budget.

### Invariant

Chosen row masks are pairwise disjoint and remaining is their complement in the full universe. Search success covers every column exactly once.

### Cost

O(budget*columns*rows) time; O(rows*columns) worst-case branch stack space.

### nonbehavior

Type: behavior_complement.

Exclude overlapping/incomplete witnesses, invalid row acceptance, None from interrupted search, or zero-budget success.

### preimages

Type: reverse_reconstruction.

For Some(indices), row families must partition all columns at those indices and deterministic branch order must select them within budget. Unselected rows and additional sufficient budget are generally unrecoverable. None requires exhausted complete search, not exhausted budget.

### transition

Type: specialized_relation.

Budget extension preserves successful witness or completed infeasibility, but exhausted runs may resolve either way.

### order

Type: specialized_relation.

Empty rows never participate; adding empty rows changes later original indices but not feasibility.

### coordinate

Type: specialized_relation.

Permuting columns preserves feasibility, but minimum-column tie decisions can change witness order.

### fiber

Type: specialized_relation.

Every recursive branch removes at least one bit, bounding recursion depth by 64 independent of row count.

### errors

Type: error_partition.

Public size caps precede input-order validation, then arithmetic/search. Exact cover budget exhaustion is not infeasibility; closure capacity overflow is not infeasibility. Bounded index arithmetic cannot overflow. Checked i128 arborescence arithmetic remains defensive. Allocation failure is process-level, not returned; no callbacks or external writes. Empty cases and deterministic ties follow API docs.

### Limits

Partial syntax, no macro expansion/type resolution or full formal proof. No justified generic numerical surrogate for categorical witnesses/errors; supported 1/2/5/10% profiles remain absent, not fabricated. No timing claims. Allocation failure untested.

### evidence

#### Evidence

2026-10-30: All row-subset families on zero through three columns (278 cases); independent row-subset counting oracle; budget zero/one, 64-bit boundary and duplicate validation.

Two debug and two release runs, compiled mutation detected by budget_ties_and_boundaries, restored positive rerun, strict all-target Clippy and twice-identical partial syntax. Logs: $MOVA_DATA/runs/octopus-wave26-combinatorial-2026-10-30. No timing measurement. Allocation failures and defensive i128 overflow unexercised.
