proof-checker
Rigorous mathematical proof verification and fixing workflow. Reads a LaTeX proof, identifies gaps via cross-model review (external reviewer backend, ultra reasoning), fixes each gap with full derivations, re-reviews, and generates an audit report. Use when user says "检查证明", "verify proof", "proof c
By wanshuiyin · 371 installs
npx skills add wanshuiyin/auto-claude-code-research-in-sleep --skill proof-checker
Source repository · Upstream listing
Proof Checker: Rigorous Mathematical Verification & Fixing
🔒 Do not wrap this skill in /loop , /schedule , or CronCreate . It is
verdict bearing — it judges proof validity across rounds, threading the
reviewer's memory from Phase 1 → Phase 3 via codex reply so the reviewer can
check whether a fix actually closed the gap it flagged. An external timer
re enters from the top each tick, starting a fresh thread and losing that
memory. Schedule the external wait that precedes it , not the verdict. See
[ shared references/external cadence.md ](../shared references/external cadence.md).
Systematically verify a mathematical proof via cross model adversarial review, fix identified gaps, re review until convergence, and generate a detailed audit report with proof obligation accounting.
Context: $ARGUMENTS
Constants
MAX REVIEW ROUNDS = 3
REVIEWER MODEL = gpt 6 astra — Default model for the Codex backend, reasoning effort ultra (deep audit tier; capability fallback gpt 6 astra + xhigh → gpt 5.5 + xhigh per shared references/reviewer routing.md , capability errors only — never below xhigh ). Manual backend uses a model the user chooses, but it must be a non Claude model ARIS can classify (OpenAI, Google, DeepSeek, Moonshot/Kimi, Qwen) — the executor is Claude, so routing the proof review into any Claude product makes Claude judge Claude and voids the cross model invariant (see shared references/reviewer routing.md ).
REVIEWER BACKEND = codex — Default: Codex MCP (ultra). Override with — reviewer: oracle pro for Oracle MCP, or — reviewer: manual for Manual Review MCP. If manual review MCP is unavailable, stop and print the install command; do not fall back to Codex. See shared references/reviewer routing.md .
Reviewer Calling Convention
When calling the reviewer, branch on REVIEWER BACKEND:
If REVIEWER BACKEND = codex :
Use mcp codex codex for new review threads
( model: gpt 6 astra , config: {"model reasoning effort": "ultra"} ).
Use mcp codex codex reply for follow up rounds (reuse threadId).
If REVIEWER BACKEND = manual :
Use mcp manual review review for new review threads with:
prompt: [exact same prompt that would go to Codex]
config: {"model reasoning effort": "xhigh", "executor model": "<actual executor model ", "require reviewer model": true}
Save the returned threadId .
Use mcp manual review review reply for follow up rounds with:
threadId: [saved manual review threadId]
prompt: [follow up prompt]
config: {"model reasoning effort": "xhigh", "executor model": "<actual executor model ", "require reviewer model": true}
Prompt fidelity: the manual prompt must be exactly the same text that Codex would receive.
Review tracing applies equally to both backends.
AUDIT DOC: PROOF AUDIT.md at the paper directory root, alongside main.tex (cumulative log; when invoked via /paper writing , this is paper/PROOF AUDIT.md )
REPORT TEX: proof audit report.tex (formal before/after PDF)
STATE FILE: PROOF CHECK STATE.json (for recovery)
SKELETON DOC: PROOF SKELETON.md (micro claim inventory)
RENDER HTML = true — When true (default), auto render PROOF AUDIT.md to HTML at workflow end via /render html . Uses full Codex review gate (audit class artifact — math heavy content; render fidelity check protects against MathJax breakage and matches the skill's cross model audit invariant). Set false to skip, or pass — render html: false .
Acceptance Gate (objective, replaces subjective scoring)
The proof passes when ALL of the following hold:
1. Zero open FATAL or CRITICAL issues
2. Every theorem/lemma has: (i) explicit hypotheses, (ii) proof with all interchanges justified, (iii) every application discharges hypotheses in the ledger
3. All big O/Θ/o statements have declared parameter dependence and uniformity scope
4. Counterexample pass executed on all key lemmas (log candidates even if none found)
Issue Taxonomy (20 categories, 4 groups)
Group A: Logic & Proof Structure
Category Description Example
UNJUSTIFIED ASSERTION Claim stated without proof or reference "The Hessian splits into Gram blocks"
UNPROVEN SUBCLAIM "Clearly" / "it follows" hides a nontrivial lemma "By symmetry, the cross terms vanish" without checking
QUANTIFIER ERROR Wrong order ∀/∃, missing "for sufficiently small κ" "For all π, there exists ε" vs "there exists ε for all π"
IMPLICATION REVERSAL Uses (A⇒B) as (B⇒A), or claims equivalence with only one direction
CASE INCOMPLETE Misses boundary/degenerate cases Singular covariance, zero weight, non unique argmin
CIRCULAR DEPENDENCY Lemma uses theorem that depends on it
LOGICAL GAP A step is not justified by what precedes it B=Θ(1) → β K=0 without analyzing W
Group B: Analysis & Measure Theory
Category Description Example
ILLEGAL INTERCHANGE Swaps limit/expectation/derivative/integral without DCT/MCT/Fubini Differentiating under E without domination
NONUNIFORM CONVERGENCE Pointwise convergence used as uniform sup and limit swapped
MISSING DOMINATION DCT cited but no dominating function given
INTEGRABILITY GAP Uses E X ^p without proving/assuming finite moments
REGULARITY GAP Differentiability/Lipschitz/convexity used but not established
STOCHASTIC MODE CONFUSION Mixes a.s./in prob./in L²/in expectation
Group C: Model & Parameter Tracking
Category Description Example
MISSING DERIVATION A quantity is used but never derived from the model Risk functional with undefined B, W
HIDDEN ASSUMPTION Proof silently uses a condition not in the theorem Gaussianity assumed but not stated
INSUFFICIENT ASSUMPTION Hypotheses too weak for proof (counterexample exists) Moment conditions admitting 2 point distributions
DIMENSION TRACKING Parameter dependence (d, n, K, ...) not explicit d enters only through κ
NORMALIZATION MISMATCH Coordinate/scaling conventions inconsistent Rescaled vs raw coordinates
CONSTANT DEPENDENCE HIDDEN "C" depends on d,n,K but treated as universal
Group D: Scope & Claims
Category Description Example
SCOPE OVERCLAIM Conclusion stated more broadly than proof supports "β K=0" with only generic overlap
REFERENCE MISMATCH Cited theorem's hypotheses not verified at point of use
Two Axis Severity System
Axis A — Proof Status (what is wrong)
Status Meaning
INVALID Statement false as written (counterexample exists or contradiction)
UNJUSTIFIED Could be true, but current proof does not establish it
UNDERSTATED True only after strengthening assumptions
OVERSTATED True only after weakening conclusion / adding qualifiers
UNCLEAR Ambiguous notation / definition drift (not wrong per se)
Axis B — Impact (how much breaks)
Impact Meaning
GLOBAL Breaks main theorem or core dependency chain
LOCAL Affects a side result but not the main theorem
COSMETIC Exposition only
Severity Labels (derived)
Label Definition
FATAL INVALID + GLOBAL
CRITICAL (INVALID + LOCAL) or (UNJUSTIFIED + GLOBAL)
MAJOR (UNJUSTIFIED + LOCAL) or (UNDERSTATED/OVERSTATED + GLOBAL)
MINOR Clarity / notation / dimension bookkeeping that doesn't change claims
Side Condition Checklists for Common Theorems
When the proof invokes any of the following, require explicit verification of ALL listed conditions:
Theorem Required Conditions
DCT (Dominated Convergence) Pointwise a.e. convergence + integrable dominating function
MCT (Monotone Convergence) Monotone increasing + non negative
Fubini/Tonelli Product measurability + integrability (Fubini) or non negative (Tonelli)
Leibniz integral rule Continuity of integrand + dominating function for derivative
Implicit Function Theorem Continuous differentiability + non singular Jacobian
Taylor with remainder Sufficient differentiability + remainder form (Lagrange/integral)
Jensen's inequality Convexity of function + integrability
Cauchy Schwarz Correct inner product space + integrability of both factors
Weyl/Davis Kahan Symmetry/Hermiticity + perturbation bound conditions
Analytic continuation Domain connectivity + identity theorem conditions
WLOG reduction Invariance under claimed symmetry + reduction is reversible
Workflow
Phase 0: Preparation
1. Locate the proof : Find the main .tex file(s).
2. Read the entire proof : Extract list of all theorems/lemmas/propositions/corollaries/definitions/assumptions.
3. Read reference materials : Reference papers, prior results.
4. Build a section map : Structured list with line numbers and key claims.
5. Identify the main theorem : Central result, assumptions, claims.
Phase 0.5: Proof Obligation Ledger
Fan out (Tier aware) — build the ledger in parallel; never judge in
parallel. For a large multi theorem paper, ledger construction is breadth
over independent sections. Tier 1 (Workflow): spawn one Claude subagent
per section/theorem to extract that unit's symbols, assumptions, micro claims,
and local quantified statements, each returning a structured ledger fragment.
Tier 2 : the same subagents via the Agent tool. Tier 3 : walk the
sections sequentially. This follows
[ shared references/fan out pattern.md ](../shared references/fan out pattern.md).
Two hard rules:
1. The shards EXTRACT, they do not ADJUDICATE. Building the ledger
(inventorying obligations, typing symbols, restating with explicit
quantifiers) is structural extraction. Whether a proof step is valid —
whether an obligation is actually discharged — is a Type B correctness
verdict reserved for the cross model jury in Phase 1 / Phase 3 (codex or
manual, ultra ). A Claude shard MUST NOT mark a micro claim "proved" or
"sound"; it only records the obligation and where the paper claims to
discharge it. See [ acceptance gate.md ](../shared references/acceptance gate.md)
— the loop may self verify that the ledger is complete , never that the
proofs are correct .
This governs the ledger spec wording below. Where the artifacts say
"WHERE each is verified", "or mark UNVERIFIED", or "where conditions are
proven", a shard records a location pointer ( file:line the paper
claims discharge) — never its own judgment that the discharge is
mathematically valid. A shard's UNVERIFIED means "the paper cites no
discharge location" , NOT "the shard checked the math and it fails" .
Soundness is the jury's verdict, not the shard's.
Shard output (extraction schema, per
[ fan out pattern.md ](../shared references/fan out pattern.md)): each shard
returns {shard id: "<section/theorem id ", entries: [...]} — the typed
ledger items (symbols, assumptions, micro claims, canonical statements,
limit order facts) for that unit, each carrying its canonical id (e.g.
MC 17 , the symbol name) as dedup key . Never prose only; never a validity
verdict field.
2. Global artifacts are a barrier, computed on the merged ledger, not
per shard. The Dependency DAG and its cycle detection (incl. semantic
circularity), and cross section symbol type consistency, require the whole
paper in view. Merge all shard fragments first, then compute these on the
union — a per shard DAG would miss exactly the cross section cycles this
phase exists to catch.
Build formal accounting artifacts. Save to PROOF SKELETON.md :
1. Dependency DAG
Nodes = Definitions / Assumptions / Lemmas / Theorems. Edges = "uses". Detect cycles (including semantic circularity where Lemma A uses a corollary that quietly depends on A)