| name | adversarial-audit |
| description | Independently attack a candidate math proof or disproof: check exact claim match, edge cases, hidden assumptions, circular reductions, non-counting partial results dressed as solutions, and lemma counterexamples. Use when reviewing a proof draft, after a research loop iteration, or when invoking /adversarial-audit. Keywords: audit proof, adversarial review, gap finding, proof check, referee math.
|
Adversarial Audit
Hostile, independent review of a candidate resolution. You are not the author. Your job is to find substantive gaps, not to polish prose.
Stance
- Assume the draft is wrong until every step is forced.
- Prefer explicit counterexamples to proposed lemmas over vague doubt.
- Do not accept "routine," "clearly," or "similarly" for non-trivial steps.
- Do not search the web for whether the problem is open or already solved as a substitute for checking the argument.
Inputs
- Candidate proof/disproof (
PROOF_DRAFT.md or pasted text)
- Exact problem statement (
PROBLEM.md or PROMPT.md)
- Optional traps list from the problem-specific prompt
Audit procedure
1. Claim alignment
- Quote the exact claim being proved.
- Check the draft proves that claim, not a weaker/stronger/sibling statement.
- Flag any extra assumptions (regularity, connectivity, large n, characteristic zero, etc.) not in the problem.
2. Definition and scope check
- Verify every definition matches the problem (multiplicity, empty cases, strict vs non-strict inequalities, distinctness, etc.).
- Check boundary cases listed in the traps section.
3. Logical chain
For each lemma/step:
| Check | Fail if |
|---|
| Stated hypotheses used | Hidden hypothesis appears mid-proof |
| Quantification | ∀/∃ swapped; "for all large n" vs "for all n" |
| Uniformity | Constants depend on forbidden parameters |
| Constructivity | Existence claimed without construction or non-constructive theorem that does not apply |
| Reduction strength | Reduces to unproved statement ≈ original problem |
| Citation accuracy | Named theorem misapplied or outside hypotheses |
4. Non-counting detection
Flag if the draft only achieves something on the does not count list (special cases, weaker bounds, numerical evidence, conditional on open conjectures, etc.).
5. Circular and blocked-route detection
- Does any step assume a form of the conclusion?
- Is the "main lemma" equivalent in strength to the original problem without new proof?
- Are incompatible cases both needed but only one handled?
6. Counterexample search (lemmas)
For each intermediate lemma, try to:
- Find a small counterexample (by hand or code)
- Weaken hypotheses until failure to test tightness
- Check equality cases and extremal configurations
7. Computational sanity (when applicable)
- Verify small-n claims
- Check that constructed objects meet all constraints
- Confirm numerics are not silently used as asymptotics
Output format
Write to AUDIT.md (and summarize for the user):
# Adversarial audit
## Verdict
PASS | FAIL | PASS WITH MINOR FIXES
## Claim check
- Exact claim:
- Draft actually proves:
- Alignment: OK | MISALIGNED
## Critical issues (block acceptance)
1. [step/lemma] — [issue] — [counterexample or gap]
## Major issues (must fix)
1. ...
## Minor issues (cosmetic / clarity)
1. ...
## Lemma challenge log
| Lemma | Challenge | Result |
|-------|-----------|--------|
| L1 | ... | holds / counterexample / unproved |
## Non-counting risk
- [ ] Would this count as complete resolution under PROMPT.md?
## Required repairs before re-audit
1. ...
Verdict rules
| Verdict | Meaning |
|---|
| PASS | No substantive gaps; claim fully resolved |
| PASS WITH MINOR FIXES | Only clarity/typos; mathematical content complete |
| FAIL | Any critical issue or unresolved major issue |
On FAIL, the orchestrator must repair or abandon the route — not publish.
Independence rules
- If you also wrote the draft in the same session, reset perspective: ignore search history spin; re-derive doubts from the written proof alone.
- Prefer spawning a separate agent with only
PROOF_DRAFT.md + PROBLEM.md + traps when the host allows.
What not to do
- Do not rewrite the proof into a different theorem and pass it.
- Do not mark PASS because the approach is elegant or almost works.
- Do not accept computational plots as asymptotic proofs.