agentleFS
flonatflonat/flonat-research/skills/verify-math/SKILL.md

verify-math

Skill150 starsChanged 12 days agoMITView on GitHub

Verify a self-authored mathematical result end to end by routing claims across adversarial review, numerical falsification, symbolic or CAS checks, and Lean, then aggregating one report. Use when a theorem, proposition, conjecture, or paper-wide mathematical argument needs the appropriate combination of verification methods. For one known method, use $numerical-check, $symbolic-check, or $lean-check directly.

1 other project uses a version of this.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

3 rules. About 0 are common, 3 are distinctive, and 0 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈3

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 0

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    When the claim lives in LaTeX, extract a self-contained theorem/proof block before dispatch:

    line 46
  2. Distinctive:

    Numerical alone is never VERIFIED: Only a proving rung (R2/R3) upgrades a claim from "unfalsified" to "verified".

    line 87
  3. Distinctive:

    Don't: treat a persuasive exploratory proof or counterexample as verification — it remains a lead until a verification rung checks it.

    line 96

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Verify Math: Route a Math Claim Through the Verification Spectrum

The front door for verifying self-authored mathematics. Classify each claim, dispatch it to the strongest applicable rung(s), and merge the sub-verdicts into one report. This skill does not verify anything itself — it routes and aggregates; the rungs do the work.

When to Use

  • You have a Proposition / Theorem / Conjecture (or a whole paper's worth) and want it verified with the right method(s), possibly combined.
  • verify-math, "verify this theorem", "check all the math in the paper", "is this result correct".
  • The operational front end of mark-unverified: run this before asserting a self-authored result.

When NOT to Use

  • You already know the single method → call it directly (numerical-check, symbolic-check, lean-check, or domain-reviewer).
  • Non-mathematical claims (citations, prose) → proofread, bib-validate, domain-reviewer.

The verification spectrum (the rungs it routes to)

RungMethodCan it…Tool
R0adversarial deductive readcatch conceptual/assumption gaps (no proof)domain-reviewer (agent)
R1numerical falsificationfalsify definitively; support (never prove)numerical-check
R2symbolic / CASprove or falsify an algebra stepsymbolic-check
R3formal Lean proofprove (strongest)lean-check

Procedure

1. Decompose the result into atomic claims

A theorem is usually several obligations. List each separately: the algebra steps, the distributional/parameter-space claims, the load-bearing lemma, the conceptual assumptions. Verify each with the rung that fits — a single "verdict" on a compound theorem hides which part is shaky.

When the claim lives in LaTeX, extract a self-contained theorem/proof block before dispatch:

uv run python <skill-dir>/scripts/extract_block.py paper/sections/model.tex "prop:concavity"

The helper includes an immediately following proof and any displayed equations referenced by label. Inspect the output and add missing definitions or assumptions before giving it to a reviewer or computational rung.

2. Classify each claim → rung

Claim shapeRungRoute to
algebra / derivative / limit / closed-form identityR2symbolic-check
monotonicity / threshold / comparative-static / inequality over a parameter space (distributional, probabilistic)R1numerical-check
a critical, faithfully-formalizable lemmaR3lean-check
conceptual correctness, assumption completeness, code-theory alignmentR0domain-reviewer (Task/agent)

3. Order: falsify cheap → prove expensive

  • Falsify first with the cheapest applicable rung (usually R1 numerical, or R2 for algebra). A counterexample stops the pipeline — no point proving a false claim.
  • Then prove the survivors with a proving rung (R2 for algebra, R3 for the key lemma) if the claim is important enough to warrant a positive guarantee.
  • R0 domain-reviewer runs across the whole result for the conceptual/assumption layer the computational rungs can't see.
  • Present the routing plan (claim → rung) and, when it involves R3 (expensive) or ambiguity, confirm with the user before dispatching.

4. Dispatch

  • Invoke each rung skill via the skill-routing mechanism (numerical-check, symbolic-check, lean-check); dispatch domain-reviewer via the Agent tool (fresh context — it reviews math it didn't write, per agents-vs-skills).
  • Each rung writes its own reviews/<scope>/verify-<method>/… report (shared shape).

For a hard proof strategy, existence/uniqueness question, or counterexample search that resists the standard rungs, use an adversarial reasoning pass as lead generation, never as a verdict. Make the prompt self-contained: state the exact claim, define every symbol and parameter domain, describe failed approaches, request multiple concrete strategies, and demand explicit algebra or numerical counterexamples. Route every proposed proof step or counterexample back through R1, R2, R3, or the fresh-context R0 reviewer before relying on it.

5. Aggregate → one verdict

ConditionAggregate verdict
Any rung returns FALSIFIEDFALSIFIED (name which claim + counterexample)
A proving rung (R2/R3) VERIFIES the core claim, nothing falsifiedVERIFIED (note the guarantee level: CAS vs Lean)
Only R1 supports (no counterexample), no proving rungINCONCLUSIVE (supported: no counterexample in N)
Rungs couldn't decide / not formalizableINCONCLUSIVE
Setup/toolchain failureERROR

Numerical alone is never VERIFIED. Only a proving rung (R2/R3) upgrades a claim from "unfalsified" to "verified".

Anti-Patterns

  • Don't collapse a compound theorem into one verdict — decompose; report per-obligation so the shaky step is visible.
  • Don't report VERIFIED off R1 (numerical) alone — that's INCONCLUSIVE(supported); numerical can't prove.
  • Don't prove before falsifying — a cheap counterexample saves an expensive Lean effort.
  • Don't self-review the conceptual layer — dispatch domain-reviewer as a fresh-context agent (the session that wrote the math is blind to its own gaps).
  • Don't skip R0 — the computational rungs verify the math as stated; they can't catch a wrong assumption or a statement that doesn't mean what you think.
  • Don't treat a persuasive exploratory proof or counterexample as verification — it remains a lead until a verification rung checks it.

Output — Aggregate Verification Report

Write to reviews/<scope>/verify-math/<YYYY-MM-DD-HHMM>.md:

result:   <the theorem/proposition being verified>
claims:   (one row per atomic obligation)
  - <claim 1> | rung R? | verdict | evidence/report link
  - <claim 2> | rung R? | verdict | ...
verdict:  VERIFIED (Lean|CAS) | FALSIFIED (<which claim>) | INCONCLUSIVE(supported|undecided) | ERROR
guarantee: <the weakest link — the result is only as verified as its least-verified obligation>
next:     <what to escalate — e.g. "obligation 3 unfalsified by R1; Lean-prove it (R3)">

Verification (did this skill work?)

  • Each atomic claim has a rung + a sub-verdict + a linked sub-report.
  • The aggregate verdict follows the table (FALSIFIED dominates; VERIFIED requires a proving rung).
  • The guarantee line names the weakest link honestly.

Worked example — 2026-07-04 (median-collapse paper), how it would route

  • Threshold ρ* = (μ_med/μ_max)² (closed-form identity) → R2 symbolic-check → VERIFIED.
  • Prop 3.1 d/dρ Φ(μ/√ρ) < 0 (derivative sign) → R2 → VERIFIED.
  • "Q₀(∞;ρ) monotone in ρ for all competence" (distributional monotonicity) → R1 numerical-check → FALSIFIED (bimodal counterexample) ⇒ aggregate FALSIFIED for that claim; conjecture removed.
  • Median collapse / assumptions (conceptual) → R0 domain-reviewer → substantive check.
  • Aggregate: the paper's symmetric theorem VERIFIED (CAS); the general conjecture FALSIFIED (R1) — exactly the split the paper now reports.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.