Rigorous mathematical proof verification and fixing workflow.

MITAuto-check: notesDocuments & Office

Install Proof Checker

skills CLI
$ npx skills add wanshuiyin/Auto-claude-code-research-in-sleep --skill proof-checker -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install wanshuiyin/Auto-claude-code-research-in-sleep proof-checker --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/wanshuiyin/Auto-claude-code-research-in-sleep.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/skills-codex/proof-checker .claude/skills/proof-checker && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
proof-checker
GitHub stars
17k
Used in
1 other repo
Token cost
~7.3k tokens
SKILL.md length
2,592 words
Files
1
Skills in repo
26
Repo updated
First seen
Licence
MIT

At a glance

Rigorous mathematical proof verification and fixing workflow.

  • Works in 11 steps: Preparation → 5: Proof-Obligation Ledger → First Review (Codex GPT-6-Astra ultra) → …
  • Check this proof
  • SKILL.md covers Context: $ARGUMENTS, Constants, Issue Taxonomy (20 categories,… and Two-Axis Severity System, plus 3 more sections
  • Calls python3

What it does

Proof Checker is an agent skill from wanshuiyin/Auto-claude-code-research-in-sleep. Rigorous mathematical proof verification and fixing workflow. Reads a LaTeX proof, identifies gaps via fresh-agent Codex GPT-6-Astra ultra review, fixes each gap with full derivations, re-reviews, and generates an audit report. Base review is same-family provisional. Use when user says "检查证明", "verify proof", "proof check", "审证明", "check this proof", or wants rigorous mathematical verification of a theory paper.

Its SKILL.md is about 7.3k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Documents & Office, covering LaTeX. It works with LaTeX. The repository describes itself as: ARIS ⚔️ (Auto-Research-In-Sleep) — Lightweight Markdown-only skills for autonomous ML research: cross-model review loops, idea discovery, and experiment automation. No framework… The licence is MIT.

When your agent uses it

  • Check this proof
  • Wants rigorous mathematical verification of a theory paper

Example prompts

  • “verify proof”
  • “proof check”
  • “check this proof”
  • “/proof-checker”

Requirements

  • Pre-approved tools (allowed-tools): Bash(*), Read, Grep, Glob, Write, Edit

Workflow steps

11 steps, taken from the step headings in SKILL.md.

  1. Preparation
  2. 5: Proof-Obligation Ledger
  3. First Review (Codex GPT-6-Astra ultra)
  4. 5: Counterexample Red Team
  5. Fix Implementation
  6. Re-Review (Codex GPT-6-Astra ultra)
  7. 5: Global Closure & Independent Verification
  8. 9: Unrecoverable Proof Protocol
  9. Audit Report Generation
  10. State Persistence
  11. 5: Research Wiki Claim Ledger (additive; only if a wiki is active)

What it can do on your machine

Read from SKILL.md and the folder at commit 26b95cf. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Bash(*)
    • Read
    • Grep
    • Glob
    • Write
    • Edit

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • python3

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Proof Checker loads about 7.3k tokens when it runs. Until then it costs about 107 tokens; SKILL.md has 2,592 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~107
When it runs · the whole SKILL.md, loaded when a task matches
~7.3k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NotePre-approves every shell command (allowed-tools: Bash)SKILL.md
    allowed-tools: Bash(*), Read, Grep, Glob, Write, Edit

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from wanshuiyin/Auto-claude-code-research-in-sleep at commit 26b95cf, republished under its MIT licence (© wanshuiyin). 2,592 words, ~7,272 tokens.

Download SKILL.mdSave it as .claude/skills/proof-checker/SKILL.md (or your agent's skills folder).
name
proof-checker
description
Rigorous mathematical proof verification and fixing workflow. Reads a LaTeX proof, identifies gaps via fresh-agent Codex GPT-6-Astra ultra review, fixes each gap with full derivations, re-reviews, and generates an audit report. Base review is same-family provisional. Use when user says "检查证明", "verify proof", "proof check", "审证明", "check this proof", or wants rigorous mathematical verification of a theory paper.
allowed-tools
Bash(*), Read, Grep, Glob, Write, Edit
argument-hint
[path-to-tex-file or proof-description]

Proof Checker: Rigorous Mathematical Verification & Fixing

Codex assurance: base Codex proof judgments are review_independence: same-family and acceptance_status: provisional. Deterministic compilation/algebra checks may be accepted; a semantic proof acceptance requires a cross-family overlay. Reviewer failure emits BLOCKED.

Systematically verify a mathematical proof via fresh-agent 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 via Codex reviewer agent, reasoning effort ultra for this deep-audit skill (capability fallback never below xhigh)
  • REVIEWER_BACKEND = codex — Default: Codex reviewer agent (spawn_agent, ultra — deep-audit tier). Override with — reviewer: oracle-pro for GPT-5.5 Pro via Oracle MCP. See shared-references/reviewer-routing.md.
  • 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 review gate (audit-class, math-heavy — render-fidelity check protects against MathJax breakage). Set false to skip, or pass — render html: false. Non-blocking: failures don't invalidate the proof audit.
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
CategoryDescriptionExample
UNJUSTIFIED_ASSERTIONClaim 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_ERRORWrong order ∀/∃, missing "for sufficiently small κ""For all π, there exists ε" vs "there exists ε for all π"
IMPLICATION_REVERSALUses (A⇒B) as (B⇒A), or claims equivalence with only one direction
CASE_INCOMPLETEMisses boundary/degenerate casesSingular covariance, zero weight, non-unique argmin
CIRCULAR_DEPENDENCYLemma uses theorem that depends on it
LOGICAL_GAPA step is not justified by what precedes itB=Θ(1) → β_K=0 without analyzing W
Group B: Analysis & Measure Theory
CategoryDescriptionExample
ILLEGAL_INTERCHANGESwaps limit/expectation/derivative/integral without DCT/MCT/FubiniDifferentiating under E without domination
NONUNIFORM_CONVERGENCEPointwise convergence used as uniformsup and limit swapped
MISSING_DOMINATIONDCT cited but no dominating function given
INTEGRABILITY_GAPUses EX
REGULARITY_GAPDifferentiability/Lipschitz/convexity used but not established
STOCHASTIC_MODE_CONFUSIONMixes a.s./in prob./in L²/in expectation
Group C: Model & Parameter Tracking
CategoryDescriptionExample
MISSING_DERIVATIONA quantity is used but never derived from the modelRisk functional with undefined B, W
HIDDEN_ASSUMPTIONProof silently uses a condition not in the theoremGaussianity assumed but not stated
INSUFFICIENT_ASSUMPTIONHypotheses too weak for proof (counterexample exists)Moment conditions admitting 2-point distributions
DIMENSION_TRACKINGParameter dependence (d, n, K, ...) not explicitd enters only through κ
NORMALIZATION_MISMATCHCoordinate/scaling conventions inconsistentRescaled vs raw coordinates
CONSTANT_DEPENDENCE_HIDDEN"C" depends on d,n,K but treated as universal
Group D: Scope & Claims
CategoryDescriptionExample
SCOPE_OVERCLAIMConclusion stated more broadly than proof supports"β_K=0" with only generic overlap
REFERENCE_MISMATCHCited theorem's hypotheses not verified at point of use

Two-Axis Severity System

Axis A — Proof Status (what is wrong)
StatusMeaning
INVALIDStatement false as written (counterexample exists or contradiction)
UNJUSTIFIEDCould be true, but current proof does not establish it
UNDERSTATEDTrue only after strengthening assumptions
OVERSTATEDTrue only after weakening conclusion / adding qualifiers
UNCLEARAmbiguous notation / definition drift (not wrong per se)
Axis B — Impact (how much breaks)
ImpactMeaning
GLOBALBreaks main theorem or core dependency chain
LOCALAffects a side result but not the main theorem
COSMETICExposition only
Severity Labels (derived)
LabelDefinition
FATALINVALID + GLOBAL
CRITICAL(INVALID + LOCAL) or (UNJUSTIFIED + GLOBAL)
MAJOR(UNJUSTIFIED + LOCAL) or (UNDERSTATED/OVERSTATED + GLOBAL)
MINORClarity / 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:

TheoremRequired Conditions
DCT (Dominated Convergence)Pointwise a.e. convergence + integrable dominating function
MCT (Monotone Convergence)Monotone increasing + non-negative
Fubini/TonelliProduct measurability + integrability (Fubini) or non-negative (Tonelli)
Leibniz integral ruleContinuity of integrand + dominating function for derivative
Implicit Function TheoremContinuous differentiability + non-singular Jacobian
Taylor with remainderSufficient differentiability + remainder form (Lagrange/integral)
Jensen's inequalityConvexity of function + integrability
Cauchy-SchwarzCorrect inner product space + integrability of both factors
Weyl/Davis-KahanSymmetry/Hermiticity + perturbation bound conditions
Analytic continuationDomain connectivity + identity theorem conditions
WLOG reductionInvariance under claimed symmetry + reduction is reversible

Workflow

Proof-obligation fan-out

Independent sections/theorems may be extracted by fresh read-only spawn_agent shards, with a sequential fresh-context fallback. Each shard returns {"shard_id": ..., "entries": [{"payload": ..., "dedup_key": "<theorem-or-obligation-id>"}]} and must not declare the proof valid. The parent mechanically merges obligations; the fresh Codex review that evaluates them records review_independence: same-family and acceptance_status: provisional. See fan-out-pattern.md.

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

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).

2. Assumption Ledger

For each theorem/lemma, list every hypothesis with WHERE each is verified (or mark "UNVERIFIED"). Track usage-minimal assumption sets — which assumptions were actually used vs merely stated.

3. Typed Symbol Table

Each symbol must have a type signature:

κ : scalar ∈ (0,1), depends on (d, α_t, Σ, μ)
u* : vector ∈ ℝ^d, u* = C^{-1}m
B^even : matrix ∈ ℝ^{(L+1)×(L+1)}, symmetric PSD
Ψ_v : function ℝ → ℝ, analytic in (ζ,κ), parity determined by v

Flag any symbol whose meaning changes or whose type is inconsistent across uses.

4. Canonical Quantified Statements

For each theorem/lemma, rewrite the statement with explicit quantifiers, domains, and limit order:

∀K ≥ 3, ∀π ∈ Π_K^{ms,∘} \ E_K, ∃κ_0 > 0 such that ∀κ ∈ (0, κ_0):
  h_act^{(K,π)} = Θ(κ^{α_K^act})  [uniform in π on compact subsets]

If you cannot restate a theorem this precisely, mark it UNCLEAR — needs disambiguation.

5. Micro-Claim Inventory

Every nontrivial step becomes a numbered micro-claim in sequent form:

MC-17: Context: [Lemma 3.1, κ < κ_0, Z_κ has bounded moments up to order 2m+2]
       ⊢ Goal: P̂_0 is positive definite
       Rule: monomials linearly independent on support of continuous distribution
       Side-conditions: positive density near origin ✓ (by GMM weak convergence)

Each micro-claim has: justification rule name + required conditions + where conditions are proven.

6. Limit-Order Map

Track every asymptotic statement's limit order and uniformity scope:

h_act = Θ(κ^α)  [as κ→0, uniform in π on compact subsets of Π_K, for fixed K]
τ_act ~ (b/a)n   [as n→∞, for fixed κ,K,π with x_K ≪ 1]

Flag any statement where limit order is ambiguous or uniformity is unclear.

Optional Lean verification

When the user requests Lean or a specific obligation warrants formal checking, delegate that obligation and its original hypotheses to /lean-formalize. Record the checked scope, exported declaration, statement-alignment evidence, build output and transitive-axiom audit, then resume this audit. A proved sublemma closes only the corresponding obligation. Keep the complete proof audit, acceptance decision and canonical wiki artifacts here; the nested Lean task returns evidence without starting another proof-checker run. Routine proof checks do not require Lean. Reviewer agreement and unsuccessful counterexample searches do not discharge a proof obligation.

Phase 1: First Review (Codex GPT-6-Astra ultra)

Submit the complete proof content with the following mandatory reviewer checklist in the prompt:

text
spawn_agent:
  model: gpt-6-astra
  reasoning_effort: ultra
  message: |
    You are performing a rigorous mathematical proof review. For EVERY theorem,
    lemma, and proposition, check ALL of the following:

    ## MANDATORY CHECKS

    A. DEFINITIONS: List any symbol whose meaning is ambiguous or changes.
    B. HYPOTHESIS DISCHARGE: For each lemma/theorem APPLICATION (not statement),
       list each hypothesis and whether it was verified, with location.
    C. INEQUALITY AUDIT: For each inequality chain, verify direction, missing
       absolute values, missing conditions (convexity, PSD, integrability).
    D. INTERCHANGE AUDIT: Flag every limit/derivative/expectation/integral
       interchange. State which theorem justifies it (DCT/MCT/Fubini/Leibniz)
       and which conditions are verified/missing.
    E. PROBABILITY MODE: Track whether claims are a.s./in prob./in expectation/
       w.h.p. Ensure transitions are justified.
    F. UNIFORMITY & CONSTANTS: For every O(·), o(·), Θ(·), ≲, state whether
       it is uniform over all parameters. List hidden parameter dependence.
    G. EDGE/DEGENERATE CASES: Attempt to break each key lemma with a 1D,
       low-rank, or extreme-parameter construction.
    H. DEPENDENCY CONSISTENCY: Detect cycles or forward references to unproven
       results.

    ## OUTPUT FORMAT (per issue)
    For each issue found, provide:
    - id: sequential number
    - status: INVALID / UNJUSTIFIED / UNDERSTATED / OVERSTATED / UNCLEAR
    - impact: GLOBAL / LOCAL / COSMETIC
    - category: [from taxonomy]
    - location: section/equation/line
    - statement: what the proof claims
    - why_invalid: why this is wrong or unjustified
    - counterexample: YES (describe) / NO / CANDIDATE (describe attempt)
    - affects: which downstream results break if this is wrong
    - minimal_fix: how to fix it

    [FULL PROOF CONTENT HERE]

Save the reviewer agent_id. Parse into structured issue list. Write to PROOF_AUDIT.md.

Phase 1.5: Counterexample Red Team

For each CRITICAL or MAJOR issue, and for every key lemma that introduces:

  • a new inequality bound
  • an identifiability/uniqueness claim
  • a curvature/PSD/strong convexity assertion
  • a uniform-in-parameter claim
  • a convergence mode upgrade (pointwise → uniform, in prob → w.h.p.)

Systematically attempt to construct counterexamples using:

StrategyDescription
Dimensional collapseSet d=1 or 2, K=2, n small
DegeneracySingular covariance, tiny weight, overlapping means, identical components
Extremal distributionsTwo-point ±a, bounded non-subGaussian, heavy tails
Adversarial parameter scalingPick parameters making neglected terms dominate
Numeric falsificationTranslate lemma to a function, brute-force optimize over small domain

Rule: Label "counterexample found" ONLY if algebraically verified. Otherwise log as "candidate counterexample — needs verification."

Record all attempts (successful or not) in PROOF_AUDIT.md.

Phase 2: Fix Implementation

For each issue, ordered by severity (FATAL → CRITICAL → MAJOR → MINOR):

Step 2a: Choose fix strategy

For each issue, explicitly choose one of:

  • ADD_DERIVATION: Write missing proof steps
  • STRENGTHEN_ASSUMPTION: Add conditions to theorem statement
  • WEAKEN_CLAIM: Reduce conclusion scope
  • ADD_REFERENCE: Cite known result + verify its conditions apply

Log this choice — it is a scope-changing decision when it alters theorem statements.

Step 2b: Derive the fix mathematically
  • Complete mathematical derivation, not just a claim
  • If new proposition/lemma needed, write in full theorem-proof style
Step 2c: Implement in LaTeX
  • Edit the .tex file
  • Preserve existing \label references where possible
Step 2d: Record the fix
markdown
### Fix N: [SHORT TITLE]
**Issue**: [id] [CATEGORY] — [description]
**Severity**: FATAL / CRITICAL / MAJOR / MINOR
**Status**: INVALID / UNJUSTIFIED / UNDERSTATED / OVERSTATED
**Impact**: GLOBAL / LOCAL / COSMETIC
**Fix strategy**: ADD_DERIVATION / STRENGTHEN_ASSUMPTION / WEAKEN_CLAIM / ADD_REFERENCE
**Location**: Section X, Lines Y-Z

**BEFORE**: [what the proof originally did]
**WHY WRONG**: [mathematical problem, with counterexample if applicable]
**AFTER**: [what the fix does]
**KEY EQUATION**: [central new equation]
**PROOF OBLIGATIONS ADDED**: [new conditions/lemmas introduced]
**DOWNSTREAM EFFECTS**: [which results now need re-checking]
Step 2e: Compile check
bash
pdflatex -interaction=nonstopmode <file>.tex 2>&1 | grep -E "Error|Warning|undefined"
Phase 3: Re-Review (Codex GPT-6-Astra ultra)

Launch a fresh reviewer agent for the next review round. Do not use send_input here; proof-checker keeps each round independent. Request the same mandatory checklist.

Check acceptance gate. If not met, repeat Phases 2-3 (up to MAX_REVIEW_ROUNDS).

Phase 3.5: Global Closure & Independent Verification
Global closure checks

After all fixes, verify the proof as a whole:

  • Statement–conclusion match: Does the proof end with EXACTLY what the theorem claims (quantifiers, constants, uniformity)?
  • All obligations discharged: Every node in the obligation DAG is proven or explicitly assumed (and the theorem statement includes it).
  • Case analysis coverage: Cases partition the domain AND include boundary/degenerate cases.
  • Induction correctness (if applicable): Base case, inductive step, correct use of IH, induction measure strictly decreases.
  • WLOG reductions: Each "without loss of generality" spawns a micro-claim proving the reduction is lossless.
  • No silent assumption strengthening: Any fix that strengthened assumptions has propagated to the main theorem statement.
Independent second review for FATAL/CRITICAL fixes

For any fix that resolved a FATAL or CRITICAL issue, submit the fixed section alone (without showing the previous critique) to a fresh Codex thread:

text
spawn_agent:
  model: gpt-6-astra
  reasoning_effort: ultra
  message: |
    Blind review of the following proof section. You have NOT seen any prior
    review or discussion. Check every step for correctness, hidden assumptions,
    illegal interchanges, and counterexamples.
    [FIXED SECTION ONLY]

If the blind reviewer finds new issues, re-enter Phase 2.

Show full SKILL.md (1,030 more words)Show less
Regression proof-audit

After fixes, re-run:

  • DAG acyclicity check (no new cycles introduced)
  • Counterexample suite on all DOWNSTREAM lemmas of modified results
  • Assumption-delta report: what became stronger/weaker due to fixes?
Phase 3.9: Unrecoverable Proof Protocol

If acceptance gate is not met after MAX_REVIEW_ROUNDS, output a Proof Unrecoverable Report:

  1. Minimal set of blocking FATAL/CRITICAL issues that could not be resolved
  2. Salvage options ranked: (a) weaken claim, (b) strengthen assumptions, (c) add missing lemmas, (d) restructure argument
  3. Which parts of the proof are likely still reusable
  4. Recommended next steps for the author

Do NOT silently declare success. The report must be honest.

Phase 4: Audit Report Generation

Generate proof_audit_report.tex with:

  1. Overview table: All issues with two-axis severity, category, fix strategy, status
  2. Before/After logic chain: Red (BEFORE) → Green (AFTER) comparison
  3. For each fix: original proof → why wrong → counterexample (if any) → complete derivation → remaining subtleties
  4. Proof-obligation diff: What was unverified before, what is verified now
  5. Summary: Now proven / still assumed / open problems
  6. Colored boxes: BEFORE (red), AFTER (green), WHY WRONG (orange), KEY INSIGHT (blue), WARNING (yellow)

Compile: pdflatex proof_audit_report.tex && pdflatex proof_audit_report.tex

Phase 5: State Persistence

Write PROOF_CHECK_STATE.json:

json
{
  "status": "completed",
  "rounds": 2,
  "review_agent_ids": ["..."],
  "fatal_fixed": 0,
  "critical_fixed": 3,
  "major_fixed": 2,
  "minor_fixed": 1,
  "counterexamples_found": 1,
  "counterexample_candidates": 2,
  "acceptance_gate": "PASS",
  "timestamp": "..."
}
Phase 5.5: Research Wiki Claim Ledger (additive; only if a wiki is active)

If — and only if — a research-wiki/ exists, persist each top-level theorem/headline as a claim node (the wiki's PROVE/JUDGE ledger). This is the birth point for wiki claim nodes. It is a detect-only record, never a verdict: it never changes the audit's verdict/reason_code, never blocks, and is skipped when verdict == NOT_APPLICABLE or no wiki is found. The claim's status is the PROOF axis only ({drafted, unproven, sound-modulo-imports, verified, refuted, retracted}); empirical experiment support is a separate axis carried by edges (/result-to-claim), never written into status.

Resolve the helper via the Codex-side chain (skip cleanly if unavailable; the audit is already complete):

ARIS_REPO="${ARIS_REPO:-$(awk -F'\t' '$1=="repo_root"{print $2; exit}' .aris/installed-skills-codex.txt 2>/dev/null)}"
WIKI_SCRIPT=""
[ -n "$ARIS_REPO" ] && [ -f "$ARIS_REPO/tools/research_wiki.py" ] && WIKI_SCRIPT="$ARIS_REPO/tools/research_wiki.py"
[ -z "$WIKI_SCRIPT" ] && [ -f tools/research_wiki.py ] && WIKI_SCRIPT="tools/research_wiki.py"
[ -z "$WIKI_SCRIPT" ] && [ -f ~/.codex/skills/research-wiki/research_wiki.py ] && WIKI_SCRIPT="$HOME/.codex/skills/research-wiki/research_wiki.py"

If research-wiki/ exists and WIKI_SCRIPT is available and verdict != NOT_APPLICABLE, for each top-level theorem map the audit outcome to an honest status — PASS/all proofs complete → verified; closes modulo flagged imports → sound-modulo-imports; counterexample found or statement judged false → refuted; open gap (UNJUSTIFIED, no counterexample) → unproven (never fake a gap as refuted/verified) — then record it (idempotent):

python3 "$WIKI_SCRIPT" add_claim research-wiki/ --slug "<stable-theorem-id>" \
     --name "<theorem headline>" --status "<mapped status>" \
     --provenance "<trace_path from PROOF_AUDIT.json>" --statement "<canonical statement>" \
     --scope "<what it does NOT say; flagged imports>" --update-on-exist

add_claim failure is non-fatal (warn and continue; the audit is unaffected).

Key Rules

Mathematical rigor
  • Never accept a proof step on faith. "Clearly" / "it follows" / "by standard arguments" are red flags — each must spawn a micro-claim.
  • Hypothesis discharge: Every time a lemma is APPLIED, verify EACH of its hypotheses at that point. Use the side-condition checklists above.
  • Interchange discipline: Every swap of limit/expectation/derivative/integral must cite a theorem (DCT/MCT/Fubini/Leibniz) and verify its conditions with explicit dominating function or integrability proof.
  • Uniformity discipline: Every O(·)/Θ(·) must declare what parameters it is uniform over. "O(1)" that secretly depends on d,n,K is a CONSTANT_DEPENDENCE_HIDDEN issue.
  • Quantifier discipline: Check ∀/∃ order. "For sufficiently small κ" must specify: does κ₀ depend on K? On π? On d?
  • Counterexample-first: Before trying to fix a gap, first try to break it.
  • WLOG prohibition: Every "without loss of generality" must have an explicit micro-claim proving the reduction. No free WLOGs.
  • No silent assumption strengthening: Any fix that adds conditions must propagate to the theorem statement.
Review-independence protocol
  • Codex executor analyzes and implements; a fresh Codex reviewer provides adversarial review. Base review remains same-family/provisional.
  • Codex reasoning always ultra (deep-audit tier): never below xhigh — only the capability fallback in reviewer-routing.md may step down, and only on explicit capability errors.
  • Send full content: Don't summarize — send actual math for line-by-line checking.
  • Fresh reviewer agents: Save each returned agent_id for traceability, but launch a new spawn_agent for each review round. Do not use send_input across proof-checker rounds.
Fix quality
  • Minimal fixes: Fix exactly what's broken, nothing more.
  • Full derivation: Every fix includes complete mathematical argument.
  • Explicit scope decisions: Each fix is tagged ADD_DERIVATION / STRENGTHEN_ASSUMPTION / WEAKEN_CLAIM / ADD_REFERENCE.
  • Compile after each fix: LaTeX must compile cleanly.
Scope honesty
  • Don't overclaim: If a fix makes a result conditional, say so.
  • Separate "proven" from "assumed": The audit report has an explicit section for this.
  • Log open problems: Issues requiring future work are listed, not hidden.

Output Files

FileContentWhen
PROOF_SKELETON.mdDependency DAG + assumption ledger + micro-claimsPhase 0.5
PROOF_AUDIT.mdCumulative round-by-round audit logUpdated each round
PROOF_AUDIT.jsonMachine-readable submission verdict (see below)Always emitted
proof_audit_report.tex/.pdfFormal before/after reportPhase 4
PROOF_CHECK_STATE.jsonState for recoveryPhase 5
PROOF_AUDIT.html (+ .review.json sidecar)Single-file HTML view auto-rendered via /render-html "PROOF_AUDIT.md" --json "PROOF_AUDIT.json". Non-blocking — if /render-html fails the audit still counts as complete.Workflow end (when RENDER_HTML = true, default)

Submission Artifact Emission

This skill always writes PROOF_AUDIT.json at the paper directory root (i.e. paper/PROOF_AUDIT.json when invoked from /paper-writing with paper-dir paper/; <your-paper-dir>/PROOF_AUDIT.json when invoked standalone), regardless of caller or whether the paper contains theorems. A paper with no \begin{theorem} / \begin{lemma} / \begin{proof} emits verdict NOT_APPLICABLE; silent skip is forbidden. paper-writing Phase 6 and verify_paper_audits.sh both rely on this artifact existing at <paper-dir>/PROOF_AUDIT.json.

The artifact conforms to the schema in shared-references/assurance-contract.md:

json
{
  "audit_skill":      "proof-checker",
  "verdict":          "PASS | WARN | FAIL | NOT_APPLICABLE | BLOCKED | ERROR",
  "reason_code":      "all_proofs_complete | minor_gaps | critical_gap | no_theorems | ...",
  "summary":          "One-line human-readable verdict summary.",
  "audited_input_hashes": {
    "main.tex":                 "sha256:...",
    "sections/4.theory.tex":    "sha256:..."
  },
  "trace_path":       ".aris/traces/proof-checker/<date>_run<NN>/",
  "thread_id":        "<codex mcp thread id>",
  "executor_model":   "codex-gpt-6-astra",
  "executor_family":  "openai",
  "reviewer_model":   "gpt-6-astra",
  "reviewer_family":  "openai",
  "review_independence": "same-family",
  "acceptance_status": "provisional",
  "reviewer_reasoning": "ultra",
  "generated_at":     "<UTC ISO-8601>",
  "details": {
    "theorems_audited": <int>,
    "issues": [ { "id": "T1-H3", "severity": "FATAL|CRITICAL|MAJOR|MINOR",
                  "category": "quantifier|domination|...",
                  "location": "sections/4.theory.tex:L182",
                  "note": "..." }, ... ]
  }
}
audited_input_hashes scope

Hash the declared input set actually reviewed — the theorem-bearing .tex files passed into this invocation — not a repo-wide union and not the reviewer's self-reported opened subset. The external verifier rehashes these entries; any mismatch flags STALE.

Path convention (must match verify_paper_audits.sh): keys are paths relative to the paper directory (no paper/ prefix — the verifier resolves relative to the paper dir; prefixing produces paper/paper/... and false-fails as STALE). Use absolute paths for files outside the paper dir.

Verdict decision table
Input stateVerdictreason_code example
No theorems / lemmas / proofs in paperNOT_APPLICABLEno_theorems
Theorems present but referenced files unreadableBLOCKEDsource_unreadable
All proof obligations discharged, no gapsPASSall_proofs_complete
Only MINOR issues (notation / exposition)WARNminor_gaps
Any FATAL or CRITICAL issue (logic gap, wrong claim)FAILcritical_gap
Reviewer invocation failed (network / malformed)ERRORreviewer_error

MAJOR issues alone map to WARN or FAIL at the reviewer's discretion and must carry an explicit justification in summary + details.issues.

Thread independence

Every invocation uses a fresh reviewer agent. Never use send_input across proof-checker runs. Do not accept prior audit outputs (PAPER_CLAIM_AUDIT, CITATION_AUDIT, EXPERIMENT_LOG) as input — the fresh thread preserves reviewer independence per shared-references/reviewer-independence.md.

This skill never blocks by itself; paper-writing Phase 6 plus the verifier decide whether the verdict blocks finalization based on the assurance level.

Example Invocations

/proof-checker "neurips_2025.tex"
/proof-checker "check the GMM generalization proof, focus on dimension dependence"
/proof-checker "verify proof in paper.tex — difficulty: nightmare"

© wanshuiyin, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/skills-codex/proof-checker of wanshuiyin/Auto-claude-code-research-in-sleep.

Open the folder on GitHubat commit 26b95cf

Used in 1 other repository

We found 3 copies of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in wanshuiyin/Auto-claude-code-research-in-sleep, which our catalogue first saw on October 7, 2026.

Compare with similar skills

Proof Checker next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Proof Checker compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Proof Checker this skillwanshuiyin/Auto-claude-code-research-in-sleep17k1 repos~7.3kAutomated safety check: NotesMIT
Research Writingalfonso0512/research-writing-skill4901 repos~818Automated safety check: PassMIT
Paper WritingMLNLP-World/Paper-Writing-Tips4.7k—~630Automated safety check: PassNone
Evomath TaoEvoScientist/EvoSkills4782 repos~3.8kAutomated safety check: PassApache-2.0
PaperjurySpark-To-Paper-Skills/paperjury1.2k—~5.3kAutomated safety check: PassMIT
PDFzai-org/ZCode7.7k—~18kAutomated safety check: NotesProprietary

Similar skills

  • Research Writing

    alfonso0512/research-writing-skill

    科研论文写作助手,提供 30 个 Prompt 模板覆盖论文写作全流程. An agent skill from alfonso0512/research-writing-skill.

    490 GitHub starsUsed in 1 repo~818 tokens
    Documents & OfficeAuto-check passed
  • Paper Writing

    MLNLP-World/Paper-Writing-Tips

    学术论文写作检查与优化助手。基于 MLNLP-World 社区整理的论文写作技巧,帮助检查和优化学术论文。Use when: (1) 检查论文 LaTeX 格式和排版, (2) 优化公式符号使用, (3) 改进图表设计, (4) 润色英文学术表达, (5) 检查参考文献格式, (6) 投稿前终稿检查, (7) 用户询问论文写作技巧或规范。

    4.7k GitHub stars~630 tokensUpdated 15 days ago
    Documents & OfficeAuto-check passed
  • Evomath Tao

    EvoScientist/EvoSkills

    A skill your agent uses whenever the user submits a non-trivial mathematical claim that needs a rigorous proof or audit.

    478 GitHub starsUsed in 2 repos~3.8k tokens
    Documents & OfficeAuto-check passed
  • Paperjury

    Spark-To-Paper-Skills/paperjury

    Three modes for CS-conference papers (CVPR/ICCV/ECCV vision, ACL/EMNLP/NAACL NLP, ICLR/NeurIPS/ICML/AAAI ML).

    1.2k GitHub stars~5.3k tokensUpdated 1 mo ago
    Documents & OfficeAuto-check passed
  • PDF

    zai-org/ZCode

    Professional PDF toolkit covering four production workflows: reports, creative visuals, academic LaTeX, and existing PDF processing.

    7.7k GitHub stars~18k tokensUpdated yesterday
    Documents & OfficeAuto-check: notes
  • Thesis Defense PPTX Builder

    zouchenzhen/thesis-defense-pptx-skill

    Builds an editable thesis defense PowerPoint from a thesis PDF or LaTeX project while preserving a supplied university or lab template, then runs a visual quality check.

    266 GitHub stars~2.4k tokensUpdated 4 mo ago
    Documents & OfficeAuto-check passed

More from wanshuiyin/Auto-claude-code-research-in-sleep

All 26 skills in this repo
  • Academic Poster Builder

    wanshuiyin/Auto-claude-code-research-in-sleep

    Builds an academic conference poster as a single HTML and CSS file with measurement-based gates, real paper figures and a print-ready PDF rendered through headless Chromium.

    17k GitHub starsUsed in 1 repo~4.5k tokens
    Auto-check: notes
  • Proof Run Orchestrator

    wanshuiyin/Auto-claude-code-research-in-sleep

    Runs a mathematical proof project as a stateful pipeline of run directories: a local attempt first, then a manual GPT Pro handoff package, with an optional DeepSeek audit.

    17k GitHub starsUsed in 1 repo~4.7k tokens
    Auto-check passed
  • Render HTML

    wanshuiyin/Auto-claude-code-research-in-sleep

    Render an ARIS Markdown / JSON artifact (IDEAREPORT, AUTOREVIEW, KILLARGUMENT, PAPERPLAN, research-wiki state, etc.) into a single-file HTML view designed for human reading.

    17k GitHub starsUsed in 1 repo~5.4k tokens
    Auto-check: notes
  • Experiment Audit

    wanshuiyin/Auto-claude-code-research-in-sleep

    Audit experiment integrity before claiming results. An agent skill from wanshuiyin/Auto-claude-code-research-in-sleep.

    17k GitHub starsUsed in 1 repo~2.7k tokens
    Auto-check: notes
  • Integrity Forensics

    wanshuiyin/Auto-claude-code-research-in-sleep

    Run the Anti-Autoresearch integrity-forensics DETERMINISTIC slice (numeric core + rules-only reporter) against a paper via a SHA-pinned thin launcher, then convert the verdict into a typed policy…

    17k GitHub starsUsed in 1 repo~1.5k tokens
    Auto-check passed
  • Interview Cheatsheet

    wanshuiyin/Auto-claude-code-research-in-sleep

    Generate a long-form Chinese interview-prep cheat sheet on a specific ML/LLM topic — formulas with derivations, from-scratch PyTorch code, comparison tables, and 25 高频面试题 (L1 必会 / L2 进阶 / L3 顶级 lab).

    17k GitHub starsUsed in 1 repo~3.3k tokens
    Auto-check: notes

Works with

Questions about Proof Checker

What does Proof Checker do?

Rigorous mathematical proof verification and fixing workflow. Proof Checker is an agent skill from wanshuiyin/Auto-claude-code-research-in-sleep. Rigorous mathematical proof verification and fixing workflow.

When should I use Proof Checker?

Proof Checker fits situations like: check this proof; wants rigorous mathematical verification of a theory paper.

How do I install Proof Checker in Claude Code?

Run `npx skills add wanshuiyin/Auto-claude-code-research-in-sleep --skill proof-checker -a claude-code`. Or copy the skill folder (skills/skills-codex/proof-checker in wanshuiyin/Auto-claude-code-research-in-sleep) into .claude/skills/proof-checker in your project. Claude Code loads it when a task matches its description.

How do I install Proof Checker in Codex?

Run `npx skills add wanshuiyin/Auto-claude-code-research-in-sleep --skill proof-checker -a codex`. Or copy the skill folder (skills/skills-codex/proof-checker in wanshuiyin/Auto-claude-code-research-in-sleep) into .agents/skills/proof-checker in your project. Codex loads it when a task matches its description.

Can I use Proof Checker in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add wanshuiyin/Auto-claude-code-research-in-sleep --skill proof-checker -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/proof-checker, .gemini/skills/proof-checker, .github/skills/proof-checker and .opencode/skills/proof-checker in your project.

What does Proof Checker need to run?

Going by SKILL.md and its folder, Proof Checker needs the command-line tools its instructions call (python3). Its frontmatter pre-approves these tools: Bash(*), Read, Grep, Glob, Write, Edit.

Does Proof Checker access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Proof Checker safe to install?

Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Proof Checker use?

Proof Checker is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Proof Checker use?

About 7.3k tokens (SKILL.md is roughly 29k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Proof Checker?

Skills that share tags, products or a category with Proof Checker: Research Writing (alfonso0512/research-writing-skill, 490 stars), Paper Writing (MLNLP-World/Paper-Writing-Tips, 4.7k stars), Evomath Tao (EvoScientist/EvoSkills, 478 stars) and Paperjury (Spark-To-Paper-Skills/paperjury, 1.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Proof Checker?

wanshuiyin (a GitHub user) maintains it in wanshuiyin/Auto-claude-code-research-in-sleep, which has 17,205 GitHub stars. The repository holds 26 skills in this directory. The repository was last updated on October 7, 2026.

Source: wanshuiyin/Auto-claude-code-research-in-sleep on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.