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.
Installation
Details
Usage
After installing, this skill will be available to your AI coding assistant.
Verify installation:
npx agent-skills-cli listSkill Instructions
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.
More by hinsley
View allUse when working with ReLie in REDUCE (including inside Docker) to compute Lie group symmetries of differential equations, handle conditional/contact/variational/approximate symmetries or equivalence transformations, or interpret ReLie outputs and Lie algebra utilities.
Run REDUCE in Docker for this repo (using lunacamp/reduce-algebra), load the vendored ReLie file from resources/relie-src/relie.red, and perform a tiny smoke test. Use when you need the canonical docker run command or a minimal ReLie bootstrap.
