study-feedback-priority
The groupant beside tools/enrich/src/study.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
| component | label | where |
|---|---|---|
| approximant | partial | forward |
| ast | not materialized | |
| descriptant | present | epoch-memory |
| invariant | partial | invariant |
| tests | partial bounded 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 |
|---|---|---|---|
study-feedback-priority-forward | forward_relation | partial source model | forward |
study-feedback-priority-behavior-complement | behavior_complement | partial source model | behavior-complement |
study-feedback-priority-reverse-reconstruction | reverse_reconstruction | partial source model | reverse-reconstruction |
study-feedback-priority-coupling | interaction_relation | partial source model | coupling |
Model text
Partial source model, 2026-10-29. The raw Rust file remains authoritative. AST is not materialized; byte ranges are snapshot anchors, not semantic proofs.
forward
Define W_i = !(correct_i AND support_i), I_iw = source_i in sources_w OR headword_w in tokens(question_i), and H_w=sum_i W_i I_iw. tokens keeps alphabetic pieces whose UTF-8 byte length exceeds three, then lowercases. Sort rows by (-H_w, known_w, headword_w); preserve source vectors.
behavior-complement
A row whose hit count exceeds the number of weak feedback items, double-counts source and token membership, or depends on understood lies outside this relation. Unknown dictionary words at equal hits precede known words.
reverse-reconstruction
For observed hit vector H and fixed incidence matrix I, compatible weak masks are all binary W with I-transpose W=H. Every zero W position requires correct=support=true; every one allows the other three flag pairs. Projection commonly has multiple antecedents.
coupling
The bounded independent incidence oracle enumerates all 64 correctness/support assignments for three feedback items and both uniform understood values: 128 executions. Short fox is excluded from token-only matching but admitted by its source; repeated source IDs and overlapping source/token matches contribute at most once per item.
composition
For n words and m feedback items, current code repeatedly tokenizes questions per membership check: cost includes O(nmquestion_bytes), source-vector lookup and O(n log n) sorting. Pre-indexing is a prospective optimization, not implemented.
invariant
Forward and reverse observations refer to the same fixed source snapshot and dependency behavior. Ordering is deterministic for fixed inputs; filesystem/environment stability is assumed where relevant. The complement is an inner bound relative to this fragment's input/output universe.
checks
See the file-level tests.md for executed bounded checks and limits. The first three model relations are specifications; tests sample correspondence rather than proving all inputs. No expanded semantic AST or executable general inverse solver exists.
epoch-memory
2026-10-29: retained the file-level 23 models and added this finer scope. An initial incidence oracle incorrectly treated three-byte fox as a token; the existing tokenizer rejects it. Corrected the independent membership matrix rather than changing production behavior. This is a model correction, not an algorithm defect.
This page in Markdown โ https://md.groupants.elamur.ai/free/en/mova/tools/enrich/src/study.rs.groupant/feedback.groupant/priority.groupant/