Evidence, RFC-0008
Negative controls
After an honest run, every verifier faces the same tampering tests, produced by the harness, never the adapter. Each control runs next to an honest twin that must be accepted; when the twin is not accepted the control is void. A control passes when its outcome is in its expected set. Passing byte-level controls shows integrity checking, not soundness.
flashprove on fp-maverick-w1024-b1
profile prover-h100, run mock-fp-b1-r1, mock outcomes
6 passed0 failed4 void, not applicable or error
| Control | Mutation | Expected | Outcome | Result | Reason |
|---|---|---|---|---|---|
| C1 | change the claimed output token | rejected | rejected | passed | |
| C2 | change one prompt token in the request | rejected | rejected | passed | |
| C3 | verify against the commitment of perturbed weights | rejected | not_applicable | not counted | perturbed commitment not created within the release budget (RFC-0008 Q2) |
| C4 | replay a valid proof for a different request | rejected | rejected | passed | |
| C5 | truncate the proof's largest part | rejected, invalid_call | invalid_call | passed | |
| C6 | flip one bit at a seeded offset, 5 seeds | rejected, invalid_call | rejected | passed | |
| C7 | swap the proofs of two requests in one batch | rejected | not_applicable | not counted | batch size 1 |
| C8 | drop one part of the proof | rejected, invalid_call | rejected | passed | |
| P1 | commit W, prove with perturbed W' | prover_failed, rejected | not_applicable | not counted | perturbed commitment not created |
| P2 | prove with another precision | prover_failed, rejected | not_applicable | not counted | the workload declares one precision |
flashprove on fp-maverick-w1024-b24
profile prover-h100, run mock-fp-b24-r1, mock outcomes
6 passed0 failed4 void, not applicable or error
| Control | Mutation | Expected | Outcome | Result | Reason |
|---|---|---|---|---|---|
| C1 | change the claimed output token | rejected | rejected | passed | |
| C2 | change one prompt token in the request | rejected | rejected | passed | |
| C3 | verify against the commitment of perturbed weights | rejected | not_applicable | not counted | perturbed commitment not created within the release budget (RFC-0008 Q2) |
| C4 | replay a valid proof for a different request | rejected | rejected | passed | |
| C5 | truncate the proof's largest part | rejected, invalid_call | rejected | passed | |
| C6 | flip one bit at a seeded offset, 5 seeds | rejected, invalid_call | invalid_call | passed | |
| C7 | swap the proofs of two requests in one batch | rejected | rejected | passed | |
| C8 | drop one part of the proof | rejected, invalid_call | void | not counted | honest twin returned no_verdict: verifier timeout |
| P1 | commit W, prove with perturbed W' | prover_failed, rejected | not_applicable | not counted | perturbed commitment not created |
| P2 | prove with another precision | prover_failed, rejected | not_applicable | not counted | the workload declares one precision |
sash on sash-l31-8b-c1024
profile prover-h100, run mock-sash-c1024-r2, mock outcomes
7 passed0 failed3 void, not applicable or error
| Control | Mutation | Expected | Outcome | Result | Reason |
|---|---|---|---|---|---|
| C1 | change the claimed output token | rejected | rejected | passed | |
| C2 | change one prompt token in the request | rejected | rejected | passed | |
| C3 | verify against the commitment of perturbed weights | rejected | rejected | passed | |
| C4 | replay a valid proof for a different request | rejected | not_applicable | not counted | one request per job, no second distinct request |
| C5 | truncate the proof's largest part | rejected, invalid_call | rejected | passed | |
| C6 | flip one bit at a seeded offset, 5 seeds | rejected, invalid_call | rejected | passed | |
| C7 | swap the proofs of two requests in one batch | rejected | not_applicable | not counted | batch size 1 |
| C8 | drop one part of the proof | rejected, invalid_call | rejected | passed | |
| P1 | commit W, prove with perturbed W' | prover_failed, rejected | prover_failed | passed | |
| P2 | prove with another precision | prover_failed, rejected | not_applicable | not counted | the workload declares one precision |
sash on sash-l31-8b-c4096
profile prover-h100, run mock-sash-c4096-r2, mock outcomes
8 passed0 failed3 void, not applicable or error
| Control | Mutation | Expected | Outcome | Result | Reason |
|---|---|---|---|---|---|
| C1 | change the claimed output token | rejected | rejected | passed | |
| C2 | change one prompt token in the request | rejected | rejected | passed | |
| C3 | verify against the commitment of perturbed weights | rejected | rejected | passed | |
| C4 | replay a valid proof for a different request | rejected | not_applicable | not counted | one request per job, no second distinct request |
| C5 | truncate the proof's largest part | rejected, invalid_call | rejected | passed | |
| C6 | flip one bit at a seeded offset, 5 seeds | rejected, invalid_call | invalid_call | passed | |
| C7 | swap the proofs of two requests in one batch | rejected | not_applicable | not counted | batch size 1 |
| C8 | drop one part of the proof | rejected, invalid_call | rejected | passed | |
| P1 | commit W, prove with perturbed W' | prover_failed, rejected | prover_failed | passed | |
| P2 | prove with another precision | prover_failed, rejected | not_applicable | not counted | the workload declares one precision |
| S-W1(system suite) | weakened prover with --unsound-skip-* (binding report must mark the edge unbound) | accepted | accepted | passed |