SKILL.md
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/crackmanualsynopsis.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.