| name | theorem-proving |
| description | Construct and verify mathematical proofs using LaTeX typesetting and computational verification via jupyter_execute. Use when the user asks to prove a theorem, verify a mathematical argument, construct a formal proof, or check proof correctness computationally. |
Theorem Proving Skill
Description
Assist with constructing, verifying, and typesetting mathematical proofs. Combines rigorous logical reasoning with computational verification.
Tools Used
latex_compile - Typeset proofs and mathematical documents (auto-switches to LaTeX editor)
update_latex - Write LaTeX content to the editor for review before compiling
jupyter_execute - Verify results computationally (sympy, numpy)
update_notes - Write proof outlines and scratch work to Notes editor
Capabilities
Proof Construction
- Direct proofs, proof by contradiction, proof by induction
- Constructive and non-constructive existence proofs
- Epsilon-delta arguments in analysis
- Diagram chasing in algebra/category theory
Verification
- Symbolic computation to check algebraic manipulations
- Numerical examples to build intuition
- Counterexample search for false conjectures
- Automated checking of special cases
Typesetting
- AMS theorem environments (theorem, lemma, proposition, corollary, definition)
- Proper mathematical notation and spacing
- Cross-references and equation numbering
- Multi-part proofs with clear structure
Usage Patterns
Prove a Theorem
When user says: "Prove that [statement]"
- Clarify definitions and assumptions
- Outline proof strategy
- Construct formal proof step-by-step
- Verify key steps computationally if possible
- Typeset in LaTeX with proper environments
Verify a Conjecture
When user says: "Is it true that [conjecture]?"
- Test with specific examples (jupyter_execute)
- Search for counterexamples
- Attempt proof if examples support it
- Report findings with confidence level
Tool Examples
Typeset a theorem in LaTeX
update_latex content="\\documentclass{article}\n\\usepackage{amsthm,amsmath}\n\\newtheorem{theorem}{Theorem}\n\\begin{document}\n\\begin{theorem}\nFor all $n \\geq 1$, $\\sum_{k=1}^{n} k = \\frac{n(n+1)}{2}$.\n\\end{theorem}\n\\begin{proof}\nBy induction on $n$. Base case $n=1$: $1 = \\frac{1 \\cdot 2}{2}$. Inductive step: assume true for $n$, then $\\sum_{k=1}^{n+1} k = \\frac{n(n+1)}{2} + (n+1) = \\frac{(n+1)(n+2)}{2}$.\n\\end{proof}\n\\end{document}"
Verify computationally with SymPy
jupyter_execute code="from sympy import symbols, summation, simplify\nk, n = symbols('k n', positive=True, integer=True)\nresult = simplify(summation(k, (k, 1, n)) - n*(n+1)/2)\nprint(f'Difference: {result}') # Should be 0"