--- name: math-help description: Guide to the math cognitive stack - what tools exist and when to use each triggers: ["help", "guide", "how do I", "what math", "math help", "math tools", "which tool", "math tutorial"] user-invocable: false --- # Math Cognitive Stack Guide Cognitive prosthetics for exact mathematical computation. This guide helps you choose the right tool for your math task. ## Quick Reference | I want to... | Use this | Example | |--------------|----------|---------| | Solve equations | sympy_compute.py solve | `solve "x**2 - 4 = 0" --var x` | | Integrate/differentiate | sympy_compute.py | `integrate "sin(x)" --var x` | | Compute limits | sympy_compute.py limit | `limit "sin(x)/x" --var x --to 0` | | Matrix operations | sympy_compute.py / numpy_compute.py | `det "[[1,2],[3,4]]"` | | Verify a reasoning step | math_scratchpad.py verify | `verify "x = 2 implies x^2 = 4"` | | Check a proof chain | math_scratchpad.py chain | `chain --steps '[...]'` | | Get progressive hints | math_tutor.py hint | `hint "Solve x^2 - 4 = 0" --level 2` | | Generate practice problems | math_tutor.py generate | `generate --topic algebra --difficulty 2` | | Prove a theorem (constraints) | z3_solve.py prove | `prove "x + y == y + x" --vars x y` | | Check satisfiability | z3_solve.py sat | `sat "x > 0, x < 10, x*x == 49"` | | Optimize with constraints | z3_solve.py optimize | `optimize "x + y" --constraints "..."` | | Plot 2D/3D functions | math_plot.py | `plot2d "sin(x)" --range -10 10` | | Arbitrary precision | mpmath_compute.py | `pi --dps 100` | | Numerical optimization | scipy_compute.py | `minimize "x**2 + 2*x" "5"` | | Formal machine proof | Lean 4 (lean4 skill) | `/lean4` | ## The Five Layers ### Layer 1: SymPy (Symbolic Algebra) **When:** Exact algebraic computation - solving, calculus, simplification, matrix algebra. **Key Commands:** ```bash # Solve equation uv run python -m runtime.harness scripts/sympy_compute.py \ solve "x**2 - 5*x + 6 = 0" --var x --domain real # Integrate uv run python -m runtime.harness scripts/sympy_compute.py \ integrate "sin(x)" --var x # Definite integral uv run python -m runtime.harness scripts/sympy_compute.py \ integrate "x**2" --var x --bounds 0 1 # Differentiate (2nd order) uv run python -m runtime.harness scripts/sympy_compute.py \ diff "x**3" --var x --order 2 # Simplify (trig strategy) uv run python -m runtime.harness scripts/sympy_compute.py \ simplify "sin(x)**2 + cos(x)**2" --strategy trig # Limit uv run python -m runtime.harness scripts/sympy_compute.py \ limit "sin(x)/x" --var x --to 0 # Matrix eigenvalues uv run python -m runtime.harness scripts/sympy_compute.py \ eigenvalues "[[1,2],[3,4]]" ``` **Best For:** Closed-form solutions, calculus, exact algebra. ### Layer 2: Z3 (Constraint Solving & Theorem Proving) **When:** Proving theorems, checking satisfiability, constraint optimization. **Key Commands:** ```bash # Prove commutativity uv run python -m runtime.harness scripts/cc_math/z3_solve.py \ prove "x + y == y + x" --vars x y --type int # Check satisfiability uv run python -m runtime.harness scripts/cc_math/z3_solve.py \ sat "x > 0, x < 10, x*x == 49" --type int # Optimize uv run python -m runtime.harness scripts/cc_math/z3_solve.py \ optimize "x + y" --constraints "x >= 0, y >= 0, x + y <= 100" \ --direction maximize --type real ``` **Best For:** Logical proofs, constraint satisfaction, optimization with constraints. ### Layer 3: Math Scratchpad (Reasoning Verification) **When:** Verifying step-by-step reasoning, checking derivation chains. **Key Commands:** ```bash # Verify single step uv run python -m runtime.harness scripts/cc_math/math_scratchpad.py \ verify "x = 2 implies x^2 = 4" # Verify with context uv run python -m runtime.harness scripts/cc_math/math_scratchpad.py \ verify "x^2 = 4" --context '{"x": 2}' # Verify chain of reasoning uv run python -m runtime.harness scripts/cc_math/math_scratchpad.py \ chain --steps '["x^2 - 4 = 0", "(x-2)(x+2) = 0", "x = 2 or x = -2"]' # Explain a step uv run python -m runtime.harness scripts/cc_math/math_scratchpad.py \ explain "d/dx(x^3) = 3*x^2" ``` **Best For:** Checking your work, validating derivations, step-by-step verification. ### Layer 4: Math Tutor (Educational) **When:** Learning, getting hints, generating practice problems. **Key Commands:** ```bash # Step-by-step solution uv run python scripts/cc_math/math_tutor.py steps "x**2 - 5*x + 6 = 0" --operation solve # Progressive hint (level 1-5) uv run python scripts/cc_math/math_tutor.py hint "Solve x**2 - 4 = 0" --level 2 # Generate practice problem uv run python scripts/cc_math/math_tutor.py generate --topic algebra --difficulty 2 ``` **Best For:** Learning, tutoring, practice. ### Layer 5: Lean 4 (Formal Proofs) **When:** Rigorous machine-verified mathematical proofs, category theory, type theory. **Access:** Use `/lean4` skill for full documentation. **Best For:** Publication-grade proofs, dependent types, category theory. ## Numerical Tools For numerical (not symbolic) computation: ### NumPy (160 functions) ```bash # Matrix operations uv run python scripts/cc_math/numpy_compute.py det "[[1,2],[3,4]]" uv run python scripts/cc_math/numpy_compute.py inv "[[1,2],[3,4]]" uv run python scripts/cc_math/numpy_compute.py eig "[[1,2],[3,4]]" uv run python scripts/cc_math/numpy_compute.py svd "[[1,2,3],[4,5,6]]" # Solve linear system uv run python scripts/cc_math/numpy_compute.py solve "[[3,1],[1,2]]" "[9,8]" ``` ### SciPy (289 functions) ```bash # Minimize function uv run python scripts/cc_math/scipy_compute.py minimize "x**2 + 2*x" "5" # Find root uv run python scripts/cc_math/scipy_compute.py root "x**3 - x - 2" "1.5" # Curve fitting uv run python scripts/cc_math/scipy_compute.py curve_fit "a*exp(-b*x)" "0,1,2,3" "1,0.6,0.4,0.2" "1,0.5" ``` ### mpmath (153 functions, arbitrary precision) ```bash # Pi to 100 decimal places uv run python scripts/cc_math/mpmath_compute.py pi --dps 100 # Arbitrary precision sqrt uv run python -m scripts.mpmath_compute mp_sqrt "2" --dps 100 ``` ## Visualization ### math_plot.py ```bash # 2D plot uv run python scripts/cc_math/math_plot.py plot2d "sin(x)" \ --var x --range -10 10 --output plot.png # 3D surface uv run python scripts/cc_math/math_plot.py plot3d "x**2 + y**2" \ --xvar x --yvar y --range 5 --output surface.html # Multiple functions uv run python scripts/cc_math/math_plot.py plot2d-multi "sin(x),cos(x)" \ --var x --range -6.28 6.28 --output multi.png # LaTeX rendering uv run python scripts/cc_math/math_plot.py latex "\\int e^{-x^2} dx" --output equation.png ``` ## Educational Features ### 5-Level Hint System | Level | Category | What You Get | |-------|----------|--------------| | 1 | Conceptual | General direction, topic identification | | 2 | Strategic | Approach to use, technique selection | | 3 | Tactical | Specific steps, intermediate goals | | 4 | Computational | Intermediate results, partial solutions | | 5 | Answer | Full solution with explanation | **Usage:** ```bash # Start with conceptual hint uv run python scripts/cc_math/math_tutor.py hint "integrate x*sin(x)" --level 1 # Get more specific guidance uv run python scripts/cc_math/math_tutor.py hint "integrate x*sin(x)" --level 3 ``` ### Step-by-Step Solutions ```bash uv run python scripts/cc_math/math_tutor.py steps "x**2 - 5*x + 6 = 0" --operation solve ``` Returns structured steps with: - Step number and type - From/to expressions - Rule applied - Justification ## Common Workflows ### Workflow 1: Solve and Verify 1. Solve with sympy_compute.py 2. Verify solution with math_scratchpad.py 3. Plot to visualize (optional) ```bash # Solve uv run python -m runtime.harness scripts/sympy_compute.py \ solve "x**2 - 4 = 0" --var x # Verify the solutions work uv run python -m runtime.harness scripts/cc_math/math_scratchpad.py \ verify "x = 2 implies x^2 - 4 = 0" ``` ### Workflow 2: Learn a Concept 1. Generate practice problem with math_tutor.py 2. Use progressive hints (level 1, then 2, etc.) 3. Get full solution if stuck ```bash # Generate problem uv run python scripts/cc_math/math_tutor.py generate --topic calculus --difficulty 2 # Get hints progressively uv run python scripts/cc_math/math_tutor.py hint "..." --level 1 uv run python scripts/cc_math/math_tutor.py hint "..." --level 2 # Full solution uv run python scripts/cc_math/math_tutor.py steps "..." --operation integrate ``` ### Workflow 3: Prove and Formalize 1. Check theorem with z3_solve.py (constraint-level proof) 2. If rigorous proof needed, use Lean 4 ```bash # Quick check with Z3 uv run python -m runtime.harness scripts/cc_math/z3_solve.py \ prove "x*y == y*x" --vars x y --type int # For formal proof, use /lean4 skill ``` ## Choosing the Right Tool ``` Is it SYMBOLIC (exact answers)? └─ Yes → Use SymPy ├─ Equations → sympy_compute.py solve ├─ Calculus → sympy_compute.py integrate/diff/limit └─ Simplify → sympy_compute.py simplify Is it a PROOF or CONSTRAINT problem? └─ Yes → Use Z3 ├─ True/False theorem → z3_solve.py prove ├─ Find values → z3_solve.py sat └─ Optimize → z3_solve.py optimize Is it NUMERICAL (approximate answers)? └─ Yes → Use NumPy/SciPy ├─ Linear algebra → numpy_compute.py ├─ Optimization → scipy_compute.py minimize └─ High precision → mpmath_compute.py Need to VERIFY reasoning? └─ Yes → Use Math Scratchpad ├─ Single step → math_scratchpad.py verify └─ Chain → math_scratchpad.py chain Want to LEARN/PRACTICE? └─ Yes → Use Math Tutor ├─ Hints → math_tutor.py hint └─ Practice → math_tutor.py generate Need MACHINE-VERIFIED formal proof? └─ Yes → Use Lean 4 (see /lean4 skill) ``` ## Related Skills - `/math` or `/math-mode` - Quick access to the orchestration skill - `/lean4` - Formal theorem proving with Lean 4 - `/lean4-functors` - Category theory functors - `/lean4-nat-trans` - Natural transformations - `/lean4-limits` - Limits and colimits ## Requirements All math scripts are installed via: ```bash uv sync ``` Dependencies: sympy, z3-solver, numpy, scipy, mpmath, matplotlib, plotly