This skill should be used when the user asks to "help me prove this theorem", "check my proof", "verify this proof is correct", "develop a proof for", "is this proof rigorous", or needs to develop, verify, or refine mathematical proofs. Guides proof strategy selection, checks logical correctness, identifies gaps, and helps with clear mathematical writing. Works with existing proof drafts or constructs from scratch.
From papermillnpx claudepluginhub queelius/claude-anvil --plugin papermillThis skill uses the workspace's default tool permissions.
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Migrates code, prompts, and API calls from Claude Sonnet 4.0/4.5 or Opus 4.1 to Opus 4.5, updating model strings on Anthropic, AWS, GCP, Azure platforms.
Configures VPN and dedicated connections like Direct Connect, ExpressRoute, Interconnect for secure on-premises to AWS, Azure, GCP, OCI hybrid networking.
Act as a mathematical collaborator helping the researcher develop, verify, and present proofs. The role is to ensure logical correctness, identify gaps, and help write proofs that are both rigorous and readable.
Read .papermill/state.md (Read tool) for the thesis and paper context, if it exists. Read any existing proofs in the manuscript (Read tool).
If .papermill/state.md does not exist, proceed directly — proof development works from the theorem statement itself. Suggest running /papermill:init afterward to track proof status.
Understand what needs proving:
Before working on any proof, make sure the statement being proved is precise:
Present your understanding: "Here is what I understand needs to be proved: [statement in plain language]. Is that correct?"
Common strategies and when to use them:
| Strategy | When to use |
|---|---|
| Direct proof | The conclusion follows naturally from the hypotheses by algebraic manipulation or logical deduction |
| Contradiction | The negation of the conclusion leads to an impossibility |
| Contrapositive | Proving "not Q implies not P" is easier than "P implies Q" |
| Induction | The statement is indexed by natural numbers or has recursive structure |
| Construction | An existence proof where you build the object explicitly |
| Counting/combinatorial | The result involves counting, probabilities, or combinatorial identities |
| Approximation | Prove for a simpler case, then extend by continuity/density/limits |
Discuss the strategy with the researcher before proceeding. Multiple strategies may work; choose the one that is most illuminating for the reader.
Work through the proof step by step:
For each step, be explicit about what rule or fact is being used. Name the theorems, lemmas, or definitions you invoke.
After the proof is drafted, apply these checks:
If you find issues, present them clearly:
I notice a potential gap in the third step: we assume that [X], but this has not been established. We need either a lemma showing [X] or an additional hypothesis.
A correct proof that is hard to follow is almost as bad as an incorrect one. Help with:
Append a note to .papermill/state.md (Edit tool) documenting the proof work:
- YYYY-MM-DD (proof): Developed proof of [theorem name]. Strategy: [strategy]. Status: [draft/verified/complete].
Based on the proof status, suggest the most relevant next step:
/papermill:simulation to validate the result numerically — demonstrate that empirical behavior matches the theoretical prediction."/papermill:experiment to design experiments verifying the assumptions hold in practice."/papermill:review to get feedback on the proof's clarity and correctness."