---
title: "mlab-builtins-table-sorting — Mova code model"
description: "Mova code model of mlab/src/builtins/table.rs: components with their labels, obernants and the model text."
url: "https://groupants.elamur.ai/free/en/mova/mlab/src/builtins/table.rs.groupant/sorting.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/mlab/src/builtins/table.rs.groupant/sorting.groupant/>

# mlab-builtins-table-sorting

The groupant beside mlab/src/builtins/table.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_fragment
- **status:** partial source bound model
- **source:** [`mlab/src/builtins/table.rs`](https://github.com/ElamurAI/mova-free/blob/main/mlab/src/builtins/table.rs)
- **source SHA-256:** `f1b0959092cfcdd3…`
- **covers:** Table sort resolves names/directions then sorted_rows; matrix sort interprets signed columns via abs as usize, copies real parts and class; second output is one-based original row positions. (bytes 6880–10371)
- **part of:** [mlab-builtins-table](https://md.groupants.elamur.ai/free/en/mova/mlab/src/builtins/table.rs.groupant/)
- **repository folder:** [`mlab/src/builtins/table.rs.groupant/sorting.groupant`](https://github.com/ElamurAI/mova-free/tree/main/mlab/src/builtins/table.rs.groupant/sorting.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** | partial | [approximant](#approximant) |
| **ast** | partial | `../syntax.json` |
| **cost** | symbolic source derived | [invariant](#invariant) |
| **descriptant** | present | [descriptant](#descriptant) |
| **invariant** | partial | [invariant](#invariant) |
| **tests** | partial bounded parent evidence | [tests](#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.

| id | type | label | where |
|---|---|---|---|
| `behavior_complement` | behavior_complement | partial source derived model | [behavior_complement](#behavior-complement) |
| `reverse_reconstruction` | reverse_reconstruction | partial source derived model | [reverse_reconstruction](#reverse-reconstruction) |
| `index_transport` | index_transport | partial source derived model | [index_transport](#index-transport) |
| `direction_policy` | direction_policy | partial source derived model | [direction_policy](#direction-policy) |
| `branch_relation` | branch_relation | partial source derived model | [branch_relation](#branch-relation) |
| `resource_cost` | resource_cost | partial source derived model | [resource_cost](#resource-cost) |

## Model text


### descriptant

#### mlab-builtins-table-sorting

Table sort resolves names/directions then sorted_rows; matrix sort interprets signed columns via abs as usize, copies real parts and class; second output is one-based original row positions.

Epoch 2026-10-31: isolated source-bound fragment over bytes [6880,10371); includes no claim beyond this relation. Source hash f1b0959092cfcdd3cbd171a48d252ce4c1e652b1e56ed030c160e7667d8cbb54.

### approximant

#### sorting: forward relation

Table sort resolves names/directions then sorted_rows; matrix sort interprets signed columns via abs as usize, copies real parts and class; second output is one-based original row positions.

Domain: Well-shaped values and finite practical windows; effects delegated to it.fs. Physical filesystem not exercised.

Executable surrogate gap: no measured cheaper implementation with a useful scoped metric is supplied. Categorical/error/effect relations are exact obligations, not percent losses. Future numeric caps only1/2/5/10%.

### invariant

#### sorting: invariant and cost

Internal zero-based order becomes idx+1 external indexing.

Single direction broadcasts; short direction vector defaults missing directions ascending.

Scope-specific cost: O(k*n log n + n*w) sorting/copying, O(nw) output; zero-based permutation stored O(n).

### models

### behavior_complement

Stable equal keys exclude row reversal. Fractional matrix column indices truncate rather than reject; complex imaginary components are not copied.

### reverse_reconstruction

Output with permutation admits original row order via inverse permutation only when full data is retained; real-only matrix output cannot recover imaginary values.

### index_transport

Internal zero-based order becomes idx+1 external indexing.

### direction_policy

Single direction broadcasts; short direction vector defaults missing directions ascending.

### branch_relation

Table sort resolves names/directions then sorted_rows; matrix sort interprets signed columns via abs as usize, copies real parts and class; second output is one-based original row positions.

### resource_cost

O(k*n log n + n*w) sorting/copying, O(nw) output; zero-based permutation stored O(n).

### tests

#### Evidence boundary

See ../tests.md for the actual selected source test and mutant. These tests sample the file, not every fragment branch. Stable equal keys exclude row reversal. Fractional matrix column indices truncate rather than reject; complex imaginary components are not copied. Other branches here are source-derived and unexecuted unless the parent test explicitly calls them.
