Adversarial proof audit
Every candidate argument must be challenged by an independent adversarial pass. In the source workflow this is continuous, not a single end ceremony.
Independence
Prefer a different model or a fresh subagent that did not author the draft. Do not defend the draft; try to break it.
Audit checklist
For the draft proof and each cited lemma:
- Claim match — Does the proved statement equal the problem’s principal question, or a weaker substitute banned by the prompt?
- Hidden strengthenings — Extra assumptions (smoothness, primes only, almost all (n), subsequence, asymptotic regime only)?
- Circular reductions — Is a key lemma equivalent in strength to the goal?
- Uniformity / ranges — Are error terms strong enough for the claimed main term? Are theorems applied inside their hypotheses?
- Definition drift — Did minimization targets, quantifiers, or discrete vs continuous relaxations change mid-proof?
- Computational leaps — Are numerics presented as proofs? Are finite checks converted into certificates correctly?
- Case leaks — Missing edge cases, empty configurations, small-(n) gaps?
- Citation accuracy — Named theorems stated correctly?
- Adversarial counterexamples — Attempt to falsify intermediate lemmas with constructions or computation.
- Blocked-route smell — Does the “proof” stop at “it suffices to show [open statement]”?
Output format (AUDIT.md)
# Audit — <problem id> — <date>
## Verdict
PASS | FAIL | PASS_WITH_REPAIRS_REQUIRED
## Claim match
...
## Findings
### F1 — <title> — severity: blocker|major|minor
- Location:
- Issue:
- Suggested repair or counterexample:
## Counterexample / computation attempts
...
## Required repairs before claiming success
- [ ] ...
Policy
- FAIL if any blocker remains.
- Authors must repair or abandon routes; do not paper over blockers with “routine” or “clearly.”
- Re-run audit after material repairs until PASS.