R1 — Teaching is never evidence
The repair stage is recorded as unmeasured and contributes nothing to proof. A student being taught something proves nothing about whether they learned it. No amount of instruction advances the chain.
Refused as: the repair_started branch records the stage without evidence
R2 — Assisted work is never evidence
Every accepted attempt must carry assistancePresent: false. An answer produced with a hint, a worked example on screen, or a prompt is not counted.
Refused as: assisted_attempt
R3 — A question may never be reused
Enforced twice on every stage: a repeated question is rejected, and a repeated attempt is rejected. You cannot reach a verified receipt by answering the same question five times.
Refused as: reused_item and reused_attempt
R4 — Each stage must be a different question than the last, and must name it
Every stage records the item it came from, and the attempt is rejected if that reference does not match the previous stage's item, or if it is the same item. The chain is therefore linked: a stage cannot be skipped, reordered, or satisfied by an unrelated question.
Refused as: challenge_not_independent, not_parallel_form and not_exam_like
R5 — The delay is a real calendar delay
The elapsed time must be at least 1 day, measured from the previous stage's timestamp rather than from the start of a session. A retest later the same minute is not a delayed retest. A receipt records the actual number of days that elapsed for that student — we publish the real figure, never a typical or representative one.
Refused as: delay_too_short
R6 — The delayed check must be a parallel form
The relationship to the immediate challenge must be exactly parallel_form: a different question testing the same method. Anything else is rejected.
Refused as: not_parallel_form
R7 — Transfer must declare what changed
A transfer attempt must carry a contract naming its class and the dimensions that changed, and that statement is checked. A cosmetic rewording cannot be presented as transfer.
Refused as: invalid_transfer_contract
R8 — Exam conditions means four things, all of them
An exam-stage attempt must be timed, must carry the mark tariff, must use an exam-like response format, and must be aligned to the specification source. Any one missing and it is rejected.
Refused as: not_exam_like
R9 — Unmeasured evidence is refused, not estimated
Evidence is accepted only when a rule decided it or a checked marker decided it. Anything unmeasured is refused. Where we did not measure, we say so rather than infer.
Refused as: unmeasured_evidence
R10 — Fail closed
If evidence is missing, malformed, out of order or duplicated, the stage is not awarded. The default is not proven. There is no partial credit and no benefit of the doubt.
Refused as: every branch returns a refusal rather than a downgraded pass
R11 — Every refusal is kept
The protocol replays an append-only event stream and retains every exclusion for audit, with its reason. Rejected evidence is not deleted. A record that only keeps its successes is a marketing artefact, not an audit trail.
Refused as: replayProofOfLearning returns the full exclusion list