# Open Math Prover

> Attack an open mathematical problem end-to-end using problem selection, CDC-style problem-specific prompts, multi-approach search, proof drafting, and adversarial audit. Use when the user wants to prove or disprove an open problem, attack Erdős problems, run a long mathematical research loop, or invoke /open-math-prover. Keywords: open problem, proof, disproof, Erdős, math research, adversarial audit, multi-agent proof search.

- Skill: `meleantonio/open-math-prover` (Agent Skill)
- Install (CLI): `npx skillmds@latest add meleantonio/open-math-prover`
- Raw SKILL.md: https://api.skillmd.com/api/skills/meleantonio/open-math-prover/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: meleantonio (https://skillmd.com/u/meleantonio)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/meleantonio/open-math-prover

---


# Open Math Prover (full workflow)

You are the **proof orchestrator** for an open mathematical problem. Follow this skill exactly. Prefer long, patient search over early claims of success or impossibility.

## Inputs

The user provides one or more of:

- A problem statement (text, paper, arXiv link, or erdosproblems.com link)
- A problem ID / name
- Optional: known partial results, forbidden approaches, compute budget

If the problem is missing, ask once for the exact statement. Then proceed.

## Phase 0 — Workspace

1. Create `problems/<slug>/` if it does not exist (slug = short id, e.g. `erdos-390` or `cdc`).
2. Copy templates from this plugin's `templates/problem-workspace/` into that directory.
3. Write the exact statement into `PROBLEM.md` **without changing meaning**.

## Phase 1 — Problem selection / feasibility (optional but recommended)

If the user has multiple candidates, or asks whether to attempt this problem, run the **select-open-problem** skill:

- Prefer problems that mathematicians actively discuss.
- Filter out problems tightly equivalent to major open conjectures (RH, P vs NP, etc.) unless the user insists.
- Filter out problems that clearly require deep machinery far beyond a single research run.
- Score and recommend; do not block the user if they insist on a hard problem.

Write the selection rationale into `NOTES.md`.

## Phase 2 — Craft the problem-specific prompt

Run **craft-proof-prompt** (or follow `references/prompt-template.md`):

The prompt **must**:

1. Restate the problem with precise definitions.
2. State exactly what a complete proof **or** disproof must establish.
3. List weaker results that **do not count**.
4. List problem-specific traps and edge cases.
5. Require independent adversarial challenge of every candidate argument.
6. Encode multi-approach search heuristics (diverse portfolio, approach registry, blocked routes, keep incompatible routes alive).
7. Forbid returning reductions, partial results, or "best effort" as solutions.
8. Restrict public search to ordinary background theorems only.

Save the full prompt as `PROMPT.md`. Verify that the problem statement in `PROMPT.md` matches `PROBLEM.md` exactly in mathematical content.

## Phase 3 — Multi-approach research loop

Treat `PROMPT.md` as the **goal**. Work autonomously for as long as the host allows.

### 3.1 Launch approach portfolio

Initialize `APPROACHES.md` with at least **4–8** distinct approach families, chosen for **mathematical** diversity (not wording diversity). Examples of family types (adapt to the domain):

- Reformulation / equivalent statements
- Structural induction / minimal counterexample
- Invariants and potential functions
- Extremal / probabilistic construction
- Algebraic / spectral / geometric viewpoint
- Analytic / asymptotic estimates
- Reduction to known theorems (with care not to circularize)
- Computational search for counterexamples or patterns
- Dual certificates / LP–ILP relaxations (when applicable)

Assign explorers (real subagents if available; otherwise sequential independent sessions):

- Early rounds: **do not** tell most explorers the favored approach.
- Each explorer develops **one** family and returns concrete lemmas, constructions, or blockers.

### 3.2 Orchestrate rounds

For each round:

1. Collect concrete outputs only (reject vague status).
2. Update the approach registry (active / promising / blocked / dead).
3. Run adversarial checks on any candidate partial proofs (see Phase 4).
4. Redirect capacity away from overcrowded families toward underexplored ones.
5. Keep **several incompatible** routes alive until one is rigorously ruled out.
6. Mark a route **blocked** if it only reduces the problem to an unproved statement of comparable strength, unless a new mechanism appears.
7. Cross-pollinate only after independent development has exposed real strengths and gaps.
8. Launch the next round.

### 3.3 Computational support

When useful, spawn or simulate a **computational-checker**:

- Small/medium cases, exact values, SAT/ILP/exact-cover encodings
- Search for counterexamples to proposed lemmas
- Pattern mining for conjectures that will be proved rigorously later

Treat computation as **evidence**, not proof, unless converted into a rigorous argument or finite certificate.

### 3.4 Loop discipline

```
attempt → failure → diagnosis → new approach → proof draft → adversarial audit → repair
```

Do **not** stop after the first wave fails. Do not return merely because agents report theorem-strength gaps. Continue launching rounds until success criteria are met or the user stops the run.

## Phase 4 — Proof draft + adversarial audit

When a candidate complete proof or disproof exists:

1. Write it carefully to `PROOF_DRAFT.md` (full logical chain).
2. Invoke **adversarial-audit** with independent challenge perspective.
3. Record findings in `AUDIT.md`.
4. If any substantive gap remains: repair or abandon the route; return to Phase 3.
5. If the audit finds only cosmetic issues: fix them and re-audit briefly.

**Success criteria:** complete resolution of the exact claim + no remaining substantive gaps after audit.

## Phase 5 — Deliverables

On success, produce:

| File | Content |
|------|---------|
| `PROOF_DRAFT.md` or `paper.tex` | Final rigorous write-up |
| `AUDIT.md` | Adversarial audit log (passed) |
| `APPROACHES.md` | Final registry (what worked / failed) |
| Optional `code/` | Computational experiments |
| Optional `lean/` | Formalization if requested |

On incomplete stop, produce only:

- Strongest rigorously proved derivation
- **Exact** remaining gap
- Updated approach registry

Never present a reduction, partial bound, or numerical guess as a full solution.

## Multi-agent mapping

| Role | When host supports subagents | Fallback |
|------|------------------------------|----------|
| Orchestrator | You (root) | You |
| Approach explorer | Spawn independent agents with isolated approach briefs | Sequential independent passes; do not share favored approach early |
| Adversarial auditor | Spawn with **only** the draft + traps list (not the search history spin) | Fresh self-critique pass with hostile stance |
| Computational checker | Spawn with code tools | Run scripts / notebooks yourself |

## Public search policy

- OK: definitions, standard named theorems, textbook background.
- Forbidden: searching for a solution to this exact open problem; answering that it is open as a substitute for work.

## Patience

Long runs (hours) are expected for hard problems. Prefer continuing the loop over premature exit. If the host has time limits, checkpoint state into the workspace files so the next session can resume from `APPROACHES.md` and `NOTES.md`.

## Related skills

- `select-open-problem` — candidate filtering
- `craft-proof-prompt` — CDC-style prompt builder
- `adversarial-audit` — hostile review of a draft

## References

- `references/workflow.md`
- `references/prompt-template.md`
- `references/cdc-inspired-heuristics.md`
- `references/problem-selection.md`

