study-feedback
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 | |
| composition | partial | composition |
| 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-forward | forward_relation | partial source model | forward |
study-feedback-behavior-complement | behavior_complement | partial source model | behavior-complement |
study-feedback-reverse-reconstruction | reverse_reconstruction | partial source model | reverse-reconstruction |
study-feedback-coupling | interaction_relation | partial source model | coupling |
Parts
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
First project review questions to phase=exercise and require equal length and pairwise question/answer identity with lesson exercises. Deterministically shuffled answers produce feedback F without changing retained fingerprint; priorities(P,F) then creates one lexical row per packet word.
behavior-complement
A successful feedback result with assessment-only questions, changed question/answer identities or changed retained fingerprint is outside the guarded relation. The fingerprint observation is narrower than proof of all possible hidden state preservation.
reverse-reconstruction
Given F and priorities, reconstruct compatible exercise subsequences with identical source/question/expected and compatible answer observations, plus arbitrary omitted assessment rows subject to external validation. Correct/understood/support flags do not uniquely identify retained parameters.
coupling
Feedback order supplies indices; priority child aggregates weak flags but ignores understood. The projection therefore loses assessment rows and fine answer evidence. Preserve all compatible inputs in the converse instead of inferring that absent support proves absent knowledge.
composition
The child consumes F only after question alignment and fingerprint checks. No learner update is authorized in this fragment. Feedback cost is two fingerprints plus one answer call per exercise; add child aggregation once. Existing identity/tamper tests cover guards; no full retained-state semantic equivalence is claimed.
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/