Agent SkillsAgent Skills
hinsley

reduce-crack-basics

@hinsley/reduce-crack-basics
hinsley
1
0 forks
Updated 4/1/2026
View on GitHub

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

$npx agent-skills-cli install @hinsley/reduce-crack-basics
Claude Code
Cursor
Copilot
Codex
Antigravity

Details

Path.codex/skills/reduce-crack-basics/SKILL.md
Branchmain
Scoped Name@hinsley/reduce-crack-basics

Usage

After installing, this skill will be available to your AI coding assistant.

Verify installation:

npx agent-skills-cli list

Skill 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 --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.