Hello,
Does anyone know of a good symbolic expression library to do things like:
- format an arithmetic expression to a normal form
- simplify expression
- factorize expression
- symbolic differentiation
- symbolic integration
- etc
???
The only remotly relevant thing I found was a library for logtalk: Pack logtalk -- logtalk-3.89.1/examples/symdiff/NOTES.md
One time, I learned Term Rewriting System (TRS) in prolog, which is a very nice technique, but it was kind of a let down to realize that without the correct rules, the system is kind of useless.
Maybe somebody know of a good set of TRS rules to transform an arithmetic expression into a Normal Form or something else ?
[edit]
Here is a summary of all the resources linked in this thread:
- clpBNR has a partial derivative and simplification predicate
- works with variables, main goal of simplification is to factorize variables because of interval arithmetic
- symbolic differentiation with atoms from @damiazz94 : GitHub - damianoazzolini/symbolicdiff: Symbolic differentiation and more
- quick prototype, usable from C, has a parser for symbolic expression
- PRESS: PRolog Equation Solving System
- Old and very big project from R.A.O’Keefe partially working on swi-prolog
- tidy symbolic expression predicate: PRESS/util/tidy.pl at master · maths/PRESS · GitHub
- many more interesting thing should be in there
- interesting blog post from Ties Westendorp doing parsing, symbolic differentiation and simplification
- paper and code doing automatic differentiation