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

# prag-fbench

The groupant beside prag/src/fbench.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 bound model
- **source:** [`prag/src/fbench.rs`](https://github.com/ElamurAI/mova-free/blob/main/prag/src/fbench.rs)
- **source SHA-256:** `ccddfbd624b55849…`
- **repository folder:** [`prag/src/fbench.rs.groupant`](https://github.com/ElamurAI/mova-free/tree/main/prag/src/fbench.rs.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 source model | [forward](#forward) |
| **ast** | partial | `syntax.json` |
| **composition** | partial source model | [composition](#composition) |
| **cost** | partial source model | [cost](#cost) |
| **descriptant** | partial source model | [epoch-memory](#epoch-memory) |
| **invariant** | partial source model | [invariant](#invariant) |
| **tests** | partial source model | [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 |
|---|---|---|---|
| `prag-fbench-behavior-complement` | behavior_complement | partial source model | [behavior-complement](#behavior-complement) |
| `prag-fbench-reverse-reconstruction` | reverse_reconstruction | partial source model | [reverse-reconstruction](#reverse-reconstruction) |
| `prag-fbench-specialization` | fbench_observation_projection | partial source model | [specialization](#specialization) |

## Parts

- [prag-fbench-notation](https://md.groupants.elamur.ai/free/en/mova/prag/src/fbench.rs.groupant/notation.groupant/)
- [prag-fbench-alignment](https://md.groupants.elamur.ai/free/en/mova/prag/src/fbench.rs.groupant/alignment.groupant/)
- [prag-fbench-counts](https://md.groupants.elamur.ai/free/en/mova/prag/src/fbench.rs.groupant/counts.groupant/)

## Model text


### model

## prag-fbench

### forward
Notation -> optional frames -> greedy partial injection -> ten role counts -> micro PRF. Tolerant parsing and heuristic matching precede exact counting relative to that match. Caller must already pair corresponding sentence lines.

### invariant
score_line has tp<=min(sys,gold) per role for representable counts. Manually constructed Prf need not satisfy this. Invalid link targets are omitted. Negation, attrs, quoted and condition are unscored.

### cost
G,S frames; P<=G*S eligible pairs; O(G*S*C+P log P+L log L+Q log Q) where C is role comparison/string work, L links, Q pronouns; O(P+L+Q+text) storage.

### behavior-complement
Supplied frames/candidate counts crediting unmatched slots, out-of-range links or more predicted copies than gold occurrences are excluded. Linguistic truth and globally optimal matching are not established. Universe: bounded supplied inputs and candidate observable outputs at this source revision. Partial source-derived inner exclusions with finite witness evidence; unsampled semantics remain unknown.

### reverse-reconstruction
All frame pairs yielding the same ten triples form the score fiber. Different lemmas, topology, unscored flags and alignments can yield identical output; micro sums lose role distribution too. Target is all x in the stated domain with F(x)=y, without unique recovery or an implemented complete solver.

### specialization
Information-loss relation: varying negation/attrs/quoted/condition with matching/scored fields fixed preserves scores, without establishing semantic equivalence.

### composition
Children share source identity. Preserve frame indices through alignment/link mapping and batch references through prompt/gate numbering. Independent marginal inverses can lose shared correlations; overlap costs are counted once.

### checks
Six fbench and five silver wave16_models tests: finite canonical role oracle, independent ten-role counts, old-code witnesses and compiled controls. See receipts at file root.

### epoch-memory
2026-10-30: prospective inspection predicted predecessor defects and duplicate-edge recall inflation. Three old-code witnesses confirm these. Valid adjacency and unique links retain semantics. No score assertions or deduplication introduced. Historical metrics retain original semantics.

### limitations
Partial syntax is not expanded semantic AST; macros opaque. Scoped models and finite observations, not full-file verification or proof. No live parser, teacher, corpus, filesystem aggregate, GPU, full course, speed or approximation-cap claim. External effects and resource-extreme malformed inputs remain unexecuted.

### evidence

#### Evidence scope

See root receipts.md for source and raw-log hashes. Pure supplied fixtures only; effects are source inspected.

### receipts

#### Wave16 evidence

Eleven named wave16_models tests (six fbench, five silver) pass twice debug and twice release with identical normalized names/results. Original supplied tiny fixtures only. old.log records three failures on unchanged production: duplicate_links_are_occurrence_bounded, prompt_context_is_source_scoped, prompt_adjacency_does_not_wrap. fbench membership credit yielded tp=3 against gold=1; prompt suppressed cross-source context and overflowed at i64::MAX. Corrections preserve ordinary unique-link and valid same-source adjacency behavior.

Compiled production controls: fbench roles<2 changed to roles<3 fails alignment_ties_and_threshold; silver duplicate-number guard removed fails gates_partition_numbers_and_keep_junk_separate. Exact source bytes restored before the four positive runs. No teacher/live parser/corpus/GPU or run/collect/read_silver calls. No global environment changes. Existing unrelated frames.rs unused_mut warning remains.

Source staged before two identical syntax projections. Full external registry scaffold validates twice identically; changed registration passes without editing shared registry or parents. Two file roots and six fragments contain 24 declared typed views. Partial syntax is not semantic AST; model declaration is not proof.

External evidence: $MOVA_DATA/runs/octopus-wave16-mova-2026-10-30.

##### SHA-256 receipts

- old.log: edc5ee1a9a60d4d0388a3a399a14b643593ebff159c3f06c7ea8d69dff3e8ba9
- mutant-fbench.log: 1da7cb3ccc043ad21b57bf45bfd0e78879a9c5440d2e69a2f218a245fae87316
- mutant-silver.log: a59d8fbd1dbc4063c229f6a760b5b3a4c810e0200cdca81292c1f4884f4c370f
- debug-1.log: 5e210c903b5345ac9f57e77ecd9ab41efbcb0c8cce2684bf24d1ffef5064c433
- debug-2.log: 958355cde5aa03b3ef8ba795ed39f2685d1a0a319387da6ebc17a121e71b728c
- release-1.log: 014601ab90414997d7dad60f45352284356b1ffe0e9f986a3e404735fc7ccbc0
- release-2.log: c049ef711fc353d394d6b4d6b8d9d5f592a9a2ef9425316da2551f407837488a
- normalized.txt: 20c3f1cb8f7854fe2d90f51a351b50a98894147ea991e2cfa90bbb84f8e321f1
- groupants-1.json: 662080ae53521982d655a55071f6306c7689d5049e971c2fa50051e708691c76
- groupants-2.json: 662080ae53521982d655a55071f6306c7689d5049e971c2fa50051e708691c76
- changed.json: 039a841bb953c81cd2f43a058ac68afc0fcdb306884582bbe6b292a83be1b106
- fbench-syntax-1.json: 267cd83b33b52d69de58771dc1064204eb0cbc1dcac1f5a3c1a60a4f132e56b5
- fbench-syntax-2.json: 267cd83b33b52d69de58771dc1064204eb0cbc1dcac1f5a3c1a60a4f132e56b5
- fbench.rs: ccddfbd624b5584905d4bf9f0a80eacfadbc4aeece072d68e0c216b36e7b04e3
