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.
1---2name: reduce-crack-basics3description: 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.4---56# CRACK workflows in REDUCE78## Docker readiness (when running in containers)910- Confirm the CLI and daemon: `docker --version` then `docker info`.11- If the daemon is down, start Docker Desktop (macOS: `open -a Docker`) and wait for `docker info` to succeed.12- If you use Colima instead of Docker Desktop, start it with `colima start` and re-check `docker info`.13- If you see `permission denied ... docker.sock`, rerun with elevated permissions or fix socket access.1415## Quick start (batch mode)1617```reduce18% Declare dependencies for all unknown functions1920depend f, x, y;21depend g, x;2223% Call crack with equations, inequalities, unknowns, extra vars24crack({eq1, eq2}, {}, {f, g}, {});25```2627## Before you call CRACK2829- Always declare functional dependence with `depend` for every unknown function.30- Unknown functions must appear polynomially in the equations.31- Keep parametric functions out of the `{fun1,...}` list; declare their dependencies and include any extra independent variables in the 4th argument.32- If you need interactive control, set `off batch_mode;` before calling `crack`.3334## Batch vs interactive control3536- Batch mode runs modules in `proc_list` automatically.37- Interactive mode lets you inspect, choose equations, and run modules step by step.38- A hybrid approach is to insert `stop batch` into `proc_list` so you can switch to interactive once safe steps are done.3940## Always explain results in natural language4142After any CRACK run, summarize the output clearly:4344- State what CRACK was solving (e.g., determining equations for Lie symmetries).45- Report the number of solutions returned and whether there were case splits.46- For each solution, list:47 - remaining conditions,48 - solved assignments for functions,49 - remaining free functions/constants,50 - nonzero assumptions.51- Explain what free functions mean (underdetermined/infinite-dimensional families).52- If CRACK returns `{}` or contradictions, say that no solutions exist under the given assumptions.53- Connect to PDE theory: these solutions typically determine infinitesimals of symmetry generators, which enable similarity reduction, invariant solutions, and conservation-law derivations.5455## Use the reference guide for details5657Open `resources/crack_manual_synopsis.md` for:58- the full interactive command set,59- module numbers and behavior,60- strategy notes and troubleshooting,61- global flags and tuning parameters.6263## When CRACK is used inside ReLie6465ReLie calls CRACK inside `reliesolve()`. If ReLie stalls or returns partial solutions:66- enable CRACK verbosity in ReLie (`onprintcrack()`),67- run the staged pipeline (`relieinit`, `relieinv`, `reliedet`) and inspect the determining equations,68- then solve interactively with CRACK if needed.