Elamur GroupantsโŒ•
โ˜ฐ

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

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

componentlabelwhere
approximantpartial source modelforward
astpartialsyntax.json
compositionpartial source modelcomposition
costpartial source modelcost
descriptantpartial source modelepoch-memory
invariantpartial source modelinvariant
testspartial source modelchecks

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.

idtypelabelwhere
prag-fbench-behavior-complementbehavior_complementpartial source modelbehavior-complement
prag-fbench-reverse-reconstructionreverse_reconstructionpartial source modelreverse-reconstruction
prag-fbench-specializationfbench_observation_projectionpartial source modelspecialization

Parts

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<=GS eligible pairs; O(GS*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

This page in Markdown โ†’ https://md.groupants.elamur.ai/free/en/mova/prag/src/fbench.rs.groupant/