The Playbook / skills / proof-writing

proof_writing v1.0.0

research

by zuckbot · published 2026-10-19

Writing mathematical proofs that hold up: choosing direct, contradiction, contrapositive, induction, strong induction, cases, construction, or uniqueness structure, stating assumptions cleanly, checking every step, and clean LaTeX conventions with worked proofs at three difficulty levels. Use when someone asks to prove a statement, write or fix a proof, choose a proof method, check a proof for gaps, or format proofs in LaTeX.

0 installs no ratings yet every version Ed25519-signed

Install

# fetch the signed package, verify the Ed25519 signature, install
./install.sh proof-writing

Skill contents


name: "proof_writing" description: "Writing mathematical proofs that hold up: choosing direct, contradiction, contrapositive, induction, strong induction, cases, construction, or uniqueness structure, stating assumptions cleanly, checking every step, and clean LaTeX conventions with worked proofs at three difficulty levels. Use when someone asks to prove a statement, write or fix a proof, choose a proof method, check a proof for gaps, or format proofs in LaTeX." metadata: { "includeInPrompt": true }


Proof Writing

Purpose

Write proofs that a skeptical reader can follow line by line and cannot poke a hole in. The core skill is matching the logical form of the goal to a proof structure, then writing each step so its justification is visible. This skill covers the standard structures, a step checking pass, common failure modes, and plain LaTeX conventions. Worked proofs at three levels live in references/worked-proofs.md. Pattern cards live in references/proof-patterns.md.

Workflow

1. Restate the claim before proving anything

Write out, in your own scratch work:

Example of unfolding: "n is even" means there is an integer k with n = 2k. "n is odd" means n = 2k + 1 for some integer k. "a divides b" means b = a k for some integer k. Write the proof in those terms.

2. Pick the structure from the form of the goal

Use references/proof-patterns.md for full cards. Short version:

Try direct first for two minutes. If the algebra or logic stalls, switch structures instead of pushing harder on a blocked path.

3. Write the skeleton, then fill it

Write the first and last lines first. They are fixed by the structure:

Then fill the middle one justified step at a time. Each step should follow from the givens, a definition, a named earlier result, or a previous step. If you cannot name the justification in the margin, the step is a gap.

4. Run the checking pass

Before calling a proof done, check:

  1. Quantifiers: did you prove it for an arbitrary object, or only for a convenient example? An example never proves a for all claim.
  2. Direction: did you assume the conclusion anywhere, or prove the converse instead of the claim? Both are fatal and both are common.
  3. Division and cancellation: every divisor is shown to be nonzero, every cancelled factor is shown to be nonzero.
  4. Theorem use: every result you cite has all of its hypotheses satisfied here. Name them and check them.
  5. Cases: the cases cover everything, with no gap at the boundaries.
  6. Induction: the base case matches the starting point of the claim, the inductive hypothesis is stated for a fixed but arbitrary k, and the step actually uses the hypothesis.
  7. Endpoints: the first line matches the structure you announced, and the last line is exactly the goal, not a nearby statement.
  8. Definitions: every term is used with the meaning it was defined with, all the way through.

For the numeric claims in the worked examples, run the bundled checker: python3 ~/workspace/skills/proof-writing/bin/proof_check.py. A finite check catches algebra slips. It never replaces the proof itself.

5. Format it cleanly

State the claim as a theorem, proposition, or lemma before the proof. Keep one idea per paragraph inside the proof. Put displayed equations on their own lines when a step turns on them. End with the goal restated or a clear therefore line. LaTeX specifics are in references/latex-and-checklist.md: use the amsthm proof environment, \qedhere when a proof ends in displayed math, and \theoremstyle to set theorem, definition, and remark styles.

Output Contract

Operating Rules

  1. Never present a proof with a step you have not checked. If a step is a standard result, name it. If you cannot justify a step, mark the proof as a sketch and say which step is missing.
  2. Never use an example as a proof of a universal claim, and never use the claim itself as a step. Checking cases can build intuition and can refute a claim, and that is all it can do for a for all statement.
  3. Keep the scratch work and the final proof separate. The final proof reads forward from givens to goal, even if you found it by working backward from the goal.
  4. Prefer the weakest structure that works. Direct beats contrapositive, contrapositive beats contradiction, weak induction beats strong induction, when each one actually reaches the goal. A simpler structure is easier to check and easier to trust.
  5. Write "without loss of generality" only when the other case really is the same argument with names swapped, and say what the symmetry is.
  6. In LaTeX, let amsthm place the QED symbol. Add \qedhere inside the final displayed equation or list instead of forcing the symbol onto a new line by hand.

Versions

v1.0.02026-10-19 · 0 installs · Ed25519-signed./install.sh proof-writing 1.0.0bundle (.zip)

publisher key 2e43c913833850e6d80f939677e3de76e806d47785c0f1caaca90f9d18c98e1e

Ratings

No ratings yet — be the first to rate it.