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

# latex-table-stage1

The groupant beside latex/src/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:** [`latex/src/table.rs`](https://github.com/ElamurAI/mova-free/blob/main/latex/src/table.rs)
- **source SHA-256:** `37b46b94914c5c15…`
- **covers:** negated(s) returns the explicitly listed negated counterpart, e.g Eq->Ne, In->Notin, Le/Leqslant->Nleq; all unmatched symbols return None. (bytes 3325–4365)
- **part of:** [latex-table](https://md.groupants.elamur.ai/free/en/mova/latex/src/table.rs.groupant/)
- **repository folder:** [`latex/src/table.rs.groupant/stage1.groupant`](https://github.com/ElamurAI/mova-free/tree/main/latex/src/table.rs.groupant/stage1.groupant)
- **repository commit:** `48f2e6f74146`

> **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` |
| **composition** | partial | [composition](#composition) |
| **descriptant** | present | [descriptant](#descriptant) |
| **invariant** | partial | [invariant](#invariant) |
| **tests** | executed bounded checks | [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) |
| `partial_map` | partial_map | partial source derived model | [partial_map](#partial-map) |
| `relation_class` | relation_class | partial source derived model | [relation_class](#relation-class) |

## Model text


### descriptant

#### latex-table-stage1

negated(s) returns the explicitly listed negated counterpart, e.g Eq->Ne, In->Notin, Le/Leqslant->Nleq; all unmatched symbols return None.

Epoch 2026-10-31: replaced stage topic lists with concrete transitions, exclusions and compatible antecedents. Four meaningful typed views replace the previous six-view bookkeeping catalog. Shared syntax and source byte bounds are unchanged.

### approximant

#### Scoped forward relation

negated(s) returns the explicitly listed negated counterpart, e.g Eq->Ne, In->Notin, Le/Leqslant->Nleq; all unmatched symbols return None.

This is an exact source-derived partial model, not an executable approximate replacement.

### invariant

#### Scoped invariants

negation cannot be assumed involutive: Ne has no reverse arm to Eq. Unsupported symbols cannot receive synthetic negations from this function.

Only Some outputs normalize parser Not(Sym) into one Sym; None tells parser to retain Node::Not around its operand.

Existing test checks every Some result's class is Rel or Ord; this finite table property does not assert logical complementation for every mathematical interpretation.

### composition

#### Scoped interaction

Parser Entry::Not uses this mapping after parsing its argument; arbitrary nonsymbol arguments bypass it and keep Not structure.

The manifest binds this stage to the unchanged parent syntax projection and exact source byte range. Parent cost remains an upper accounting context; no independent whole-file invocation or execution count is assigned to this fragment.

### models

### behavior_complement

negation cannot be assumed involutive: Ne has no reverse arm to Eq. Unsupported symbols cannot receive synthetic negations from this function.

### reverse_reconstruction

Preimage(Nleq) includes Le and Leqslant; Preimage(Ngeq) includes Ge and Geqslant. An observed None admits every unlisted symbol, including already-negated variants. Thus a negated result does not generally recover the original spelling or symbol.

### partial_map

Only Some outputs normalize parser Not(Sym) into one Sym; None tells parser to retain Node::Not around its operand.

### relation_class

Existing test checks every Some result's class is Rel or Ord; this finite table property does not assert logical complementation for every mathematical interpretation.

### tests

#### Evidence — 2026-10-31

table::tests::table_lookups; table::tests::every_negation_is_a_relation_or_ord

Selected library filters ast:: lex:: macros:: parse:: print:: table:: and integration gate excluding document_extraction_with_preamble_macros and random_token_soup_never_panics_and_roundtrips. Direct rustc --test latex/build.rs exercises private helpers. All selected tests twice debug/release with identical sorted names. Four compiled mutants at build/AST/parser/printer boundaries fail assertions then exact restoration passes. These do not individually cover every source. Build-main failure effects, allocation failures and universal roundtrip are unproved. Strict Clippy reports existing lints. No corpus/live VMM/API/GPU/full-school/held-out tests.
