CRACK workflows in REDUCE
Docker readiness (when running in containers)
- Confirm the CLI and daemon:
docker --version then docker info.
- If the daemon is down, start Docker Desktop (macOS:
open -a Docker) and wait for docker info to succeed.
- If you use Colima instead of Docker Desktop, start it with
colima start and re-check docker 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
depend for 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 calling crack.
Batch vs interactive control
- Batch mode runs modules in
proc_list automatically.
- Interactive mode lets you inspect, choose equations, and run modules step by step.
- A hybrid approach is to insert
stop batch into proc_list so 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.