proof-theory
npx machina-cli add skill parcadei/Continuous-Claude-v3/proof-theory --openclawProof Theory
When to Use
Use this skill when working on proof-theory problems in mathematical logic.
Decision Tree
-
Proof Strategy Selection
- Direct proof: assume premises, derive conclusion
- Proof by contradiction: assume negation, derive false
- Proof by cases: split on disjunction
- Induction: base case + inductive step
-
Structural Induction
- Define well-founded ordering on structures
- Base: prove for minimal elements
- Step: assume for smaller, prove for current
z3_solve.py prove "induction_principle"
-
Cut Elimination
- Gentzen's Hauptsatz: cuts can be eliminated
- Subformula property: only subformulas appear
- Useful for proof normalization
-
Completeness/Soundness Check
- Soundness: if provable then valid
- Completeness: if valid then provable
z3_solve.py prove "soundness_theorem"
-
Proof Verification
- Check each step follows from rules
- Verify dependencies are satisfied
math_scratchpad.py verify "proof_steps"
Tool Commands
Z3_Induction_Base
uv run python -m runtime.harness scripts/cc_math/z3_solve.py prove "P(0)"
Z3_Induction_Step
uv run python -m runtime.harness scripts/cc_math/z3_solve.py prove "ForAll([n], Implies(P(n), P(n+1)))"
Z3_Soundness
uv run python -m runtime.harness scripts/cc_math/z3_solve.py prove "Implies(derivable(phi), valid(phi))"
Math_Verify
uv run python -m runtime.harness scripts/cc_math/math_scratchpad.py verify "proof_structure"
Cognitive Tools Reference
See .claude/skills/math-mode/SKILL.md for full tool documentation.
Source
git clone https://github.com/parcadei/Continuous-Claude-v3/blob/main/.claude/skills/math/mathematical-logic/proof-theory/SKILL.mdView on GitHub Overview
Learn core proof strategies for mathematical logic, including direct proofs, proofs by contradiction, and case analysis, plus induction techniques. The guide covers structural induction, cut elimination, and the role of completeness and soundness, with concrete tool-assisted checks.
How This Skill Works
Start by selecting a strategy from the decision tree, then formalize the proof (e.g., base and inductive steps or case splits). Use structural induction when a well-founded ordering on structures exists, and apply cut elimination to achieve the subformula property. Finally, verify each step and dependencies with automated checks like z3_solve.py and math_scratchpad.py.
When to Use It
- Tackle a proof-theory problem in mathematical logic.
- Decide between direct proof, proof by contradiction, proof by cases, or induction.
- Apply structural induction with a defined well-founded order.
- Normalize a proof and aim for the subformula property via cut elimination.
- Check soundness and completeness and verify steps using automation.
Quick Start
- Step 1: Define the goal and premises, then select a strategy (direct, contradiction, cases, or induction).
- Step 2: If using induction, establish a well-founded order, prove the base case, and prove the inductive step; otherwise structure the proof accordingly.
- Step 3: Run the tool commands to verify steps and dependencies (e.g., z3_solve.py prove <formula>, math_scratchpad.py verify <structure>).
Best Practices
- Define the theorem, premises, and conclusion before choosing a strategy.
- Follow the decision tree to select the appropriate method and use structural induction when warranted.
- Apply cut elimination to simplify proofs and ensure the subformula property.
- Rigorously verify each step and document dependencies.
- Leverage automation: use z3_solve.py for induction and soundness checks, and math_scratchpad.py for verification.
Example Use Cases
- Proving the base case P(0) for a recursive definition.
- Proving P(n) ⇒ P(n+1) using a two-part induction (base and step).
- Demonstrating the induction_principle with z3_solve.py prove induction_principle.
- Applying cut elimination to obtain a normalized proof with only subformulas.
- Verifying a multi-step formal proof with math_scratchpad.py verify proof_structure.