reduce-crack-basics
Use when solving overdetermined algebraic/ODE/PDE systems with the CRACK package in REDUCE, especially for Lie symmetry determining equations; covers crack() usage, dependency declarations, batch vs interactive control, and interpreting solutions and case splits.
When & Why to Use This Skill
This Claude skill provides a specialized workflow for solving overdetermined algebraic, ODE, and PDE systems using the CRACK package within the REDUCE computer algebra system. It excels at handling Lie symmetry determining equations, guiding users through functional dependency declarations, batch versus interactive execution modes, and the systematic interpretation of complex mathematical case splits and solutions.
Use Cases
- Case 1: Calculating and solving determining equations for Lie symmetries of differential equations to find similarity reductions and invariant solutions.
- Case 2: Solving overdetermined systems of algebraic equations in theoretical physics or engineering where manual computation is prone to error.
- Case 3: Managing complex symbolic computation workflows by switching between automated batch processing and interactive module-by-module refinement.
- Case 4: Interpreting multi-solution outputs by identifying free functions, constants, and non-zero assumptions to understand the physical or mathematical constraints of a system.
| name | reduce-crack-basics |
|---|---|
| description | Use when solving overdetermined algebraic/ODE/PDE systems with the CRACK package in REDUCE, especially for Lie symmetry determining equations; covers crack() usage, dependency declarations, batch vs interactive control, and interpreting solutions and case splits. |
CRACK workflows in REDUCE
Docker readiness (when running in containers)
- Confirm the CLI and daemon:
docker --versionthendocker info. - If the daemon is down, start Docker Desktop (macOS:
open -a Docker) and wait fordocker infoto succeed. - If you use Colima instead of Docker Desktop, start it with
colima startand re-checkdocker info. - If you see
permission denied ... docker.sock, rerun with elevated permissions or fix socket access.
Quick start (batch mode)
% Declare dependencies for all unknown functions
depend f, x, y;
depend g, x;
% Call crack with equations, inequalities, unknowns, extra vars
crack({eq1, eq2}, {}, {f, g}, {});
Before you call CRACK
- Always declare functional dependence with
dependfor every unknown function. - Unknown functions must appear polynomially in the equations.
- Keep parametric functions out of the
{fun1,...}list; declare their dependencies and include any extra independent variables in the 4th argument. - If you need interactive control, set
off batch_mode;before callingcrack.
Batch vs interactive control
- Batch mode runs modules in
proc_listautomatically. - Interactive mode lets you inspect, choose equations, and run modules step by step.
- A hybrid approach is to insert
stop batchintoproc_listso you can switch to interactive once safe steps are done.
Always explain results in natural language
After any CRACK run, summarize the output clearly:
- State what CRACK was solving (e.g., determining equations for Lie symmetries).
- Report the number of solutions returned and whether there were case splits.
- For each solution, list:
- remaining conditions,
- solved assignments for functions,
- remaining free functions/constants,
- nonzero assumptions.
- Explain what free functions mean (underdetermined/infinite-dimensional families).
- If CRACK returns
{}or contradictions, say that no solutions exist under the given assumptions. - Connect to PDE theory: these solutions typically determine infinitesimals of symmetry generators, which enable similarity reduction, invariant solutions, and conservation-law derivations.
Use the reference guide for details
Open resources/crack_manual_synopsis.md for:
- the full interactive command set,
- module numbers and behavior,
- strategy notes and troubleshooting,
- global flags and tuning parameters.
When CRACK is used inside ReLie
ReLie calls CRACK inside reliesolve(). If ReLie stalls or returns partial solutions:
- enable CRACK verbosity in ReLie (
onprintcrack()), - run the staged pipeline (
relieinit,relieinv,reliedet) and inspect the determining equations, - then solve interactively with CRACK if needed.