Show HN: SymDerive – A functional, stateless symbolic math library
Hey HN,I’m a physicist turned quant. Some friends and I 'built' SymDerive because we wanted a symbolic math library that was "Agent-Native" by design, but still a practical tool for humans.It boils down to two main goals:1. Agent Reliability: I’ve found that AI agents write much more reliable code when they stick to stateless, functional pipelines (Lisp-style). It keeps them from hallucinating state changes or getting lost in long procedural scripts. I wanted a library that enforces that "Input -> Transform -> Output" flow by default.2. Easing the transition to Python: For many physicists, Mathematica is the native tongue. I wanted a way to ease that transition—providing a bridge that keeps the familiar syntax (CamelCase, Sin, Integrate) while strictly using the Python scientific stack under the hood.What I built: It’s a functional wrapper around the standard stack (SymPy, PySR, CVXPY) that works as a standalone engine for anyone—human or agent—who prefers a pipe-based workflow. # The "Pipe" approach (Cleaner for agents, readable for humans) result = ( Pipe((x + 1)**3) .then(Expand) .then(Simplify) .value ) The "Vibes" features:Wolfram Syntax: Integrate, Det, Solve. If you know the math, you know the API.Modular: The heavy stuff (Symbolic Regression, Convex Optimization) are optional installs ([regression], [optimize]). It won’t bloat your venv unless you ask it to.Physics stuff: I added tools I actually use—abstract index notation for GR, Kramers-Kronig for causal models, etc.It’s definitely opinionated, but if you’re building agents to do rigorous math, or just want a familiar functional interface for your own research, this might help.I have found that orchestrators (Claude Code, etc) are fairly good at learning the tools and sending tasks to the right persona, we have been surprised by how well it has worked.Repo here: https://github.com/closedform/deriverI will cry if roasted too hard
18 points by dinunnob - 5 comments
How did you verify the benefit?
https://docs.sympy.org/latest/tutorials/intro-tutorial/intro...
I have to admit that I still like to use the ancient
in scripts that only I will ever see. It makes it so much easier to use numpy in a "tool of thought" way. I would never do this in a library, though.