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

# computing-io

The groupant beside models/computing-io.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

- **kind:** groupant_group
- **status:** partial descriptive instance
- **bound sources:** 9
- **repository folder:** [`models/computing-io.groupant`](https://github.com/ElamurAI/mova-free/tree/main/models/computing-io.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 | [forward](#forward) |
| **ast** | not materialized |  |
| **composition** | partial | [composition](#composition) |
| **cost** | symbolic source derived | [cost](#cost) |
| **descriptant** | present | [descriptant](#descriptant) |
| **invariant** | partial | [invariant](#invariant) |
| **tests** | see source local evidence | [checks](#checks) |

## 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) |
| `value-transport` | representation_transport | partial source derived model | [value-transport](#value-transport) |
| `effect-order` | effect_order | partial source derived model | [effect-order](#effect-order) |
| `failure-precedence` | failure_precedence | partial source derived model | [failure-precedence](#failure-precedence) |
| `resource-composition` | resource_cost | partial source derived model | [resource-composition](#resource-composition) |

## Model text


### descriptant

#### computing-io: wave30

builtins/mod registers files/io; io calls display::format_disp and exp_str; fileio uses table inference/date/name adapters and column-major Mat; main creates Interp with selected fs and selected tests/fs CLI helper observes exit/stdout/stderr/journal/files. sprintf column-major traversal and display row layout are different adapters; JSON orientation/nonfinite loss prevents identity roundtrip. Octave calls lexical filter is not parser validation, and VMM digest helper evidence is not scenario correctness.

This source-bound partial group organizes existing Mova code. Native evidence and excluded effects are recorded in source sidecars and the root wave30 report. Registration is not a universal proof or whole-system runtime claim.

### model

## computing-io

### forward

Registry::with_defaults wires files and io builtin pointers into Interp. Files maps validated char paths to Interp.fs effects/status; io maps Value storage and fmt to String then Interp.out. fileio transports CSV/JSON to typed columns and matrices used by table builtins. CLI make_fs imports before Interp.run; finish_fs exports only on ok, then journal. Selected fs tests invoke this CLI on temporary synthetic data; Octave and VMM harnesses contribute only bounded selector/hash-helper evidence.

### invariant

Memory is default CLI/interpreter backend; file builtins do not bypass it. Formatting and serialization themselves perform no filesystem writes. Failed interpreter status suppresses CLI export; successful finalization is required for exit0. Test helpers use bounded synthetic data and frozen baselines stay unchanged.

### cost

Parsing has a linear input baseline; formatting adds repeated segment/flag scans up to O(format length * expanded atoms) and output allocation. JSON serialization copies each subtree at every ancestor, bounded by O(depth * output bytes); a singleton-array chain can require quadratic copying. Table key discovery/lookup can cost O(rows*keys^2). VFS/import/export and interpreter costs are delegated; external subprocess and frozen-suite costs remain unmeasured and unexecuted.

### composition

builtins/mod registers files/io; io calls display::format_disp and exp_str; fileio uses table inference/date/name adapters and column-major Mat; main creates Interp with selected fs and selected tests/fs CLI helper observes exit/stdout/stderr/journal/files. sprintf column-major traversal and display row layout are different adapters; JSON orientation/nonfinite loss prevents identity roundtrip. Octave calls lexical filter is not parser validation, and VMM digest helper evidence is not scenario correctness.

### domain

Valid Value/Mat/Table storage, UTF-8 input, synthetic in-memory or owned temporary filesystem fixtures, bounded output widths and available resources. CPU only.

### limitations

Delegated VFS and interpreter contracts are required; allocation and host fault injection absent. No external Octave corpus, VMM400 evaluation, benchmark or Monte Carlo run.

### checks

- 13 exact named tests twice debug/twice release; identical sorted outcomes
- 9 compiled assertion mutants across 9 sources; byte-exact restore and positive rerun
- 18 fresh syntax projections paired equal; source-scoped nested byte/hash bindings

### catalog

### behavior-complement

Interp failure excludes CLI export_dir but permits journal and previous imports; VFS error with requested status excludes throw for mkdir/rmdir/move/copy. J::Num/numeric-class nonfinite conversion excludes the original numeric literal; logical NaN instead converts to true under the nonzero predicate. No runtime scenario guarantee follows from helper checks.

### reverse-reconstruction

Printed output maps to sets of Value/format antecedents, serialization admits missing/null and shape ambiguities, exit codes admit multiple failure stages. Joint journal and filesystem observations narrow compatible histories but do not reconstruct all interpreter steps.

### value-transport

sprintf flattens m.re column-major, display accesses j*rows+i into row strings, JSON vectors collapse orientation. Matching scalar numbers is insufficient to prove shape-preserving adapters.

### effect-order

parse FS flags -> open/import -> run -> conditional export -> journal. Export failure can suppress journal; failed script skips each export but still attempts journal. Delete loops preserve earlier removals on later error.

### failure-precedence

CLI limit parsing precedes mem/import compatibility; atom validation precedes output; CSV syntax precedes table-width validation. These branches must be preserved across caller wiring.

### resource-composition

Captured strings plus serialized buffers plus VFS memory add rather than cancel; repeated format/flag scans, requested precision/width, JSON subtree copying and key lookup amplify input cost. No measured latency or global cap is supplied.
