- #1
Gerenuk
- 1,034
- 5
I want to write a program that can do algebraic transformations and mathematical deduction for me. It's not meant to do anything by itself, but rather check the transformations that I do myself for validity. The set of rule I will specify in advance.
I want to capture all/most of the mathematical situations (algebra, operators, multiple equations,...).
So my idea was to store the current state in a tree (http://en.wikipedia.org/wiki/Tree_(data_structure)) with ordered leaves. For example
[tex]\frac{\mathrm{d}}{\mathrm{d}x}f(x)=ax[/tex]
[tex]a=2[/tex]
would be represented by
Then I also need to specify patterns with placeholders and the transformations into which they can be transformed. For example
can transform to
at any position in the expression.
Now I noticed it might be useful to introduce types for the variables (scalar, vector, matrix).
What else do I need to consider to make my system extendable to any maths formalism?
I want to capture all/most of the mathematical situations (algebra, operators, multiple equations,...).
So my idea was to store the current state in a tree (http://en.wikipedia.org/wiki/Tree_(data_structure)) with ordered leaves. For example
[tex]\frac{\mathrm{d}}{\mathrm{d}x}f(x)=ax[/tex]
[tex]a=2[/tex]
would be represented by
Code:
truth
/ \
= =
/ \ / \
D * a 2
| / \
f a x
|
x
Then I also need to specify patterns with placeholders and the transformations into which they can be transformed. For example
Code:
D
|
+
/ \
x y
Code:
+
/ \
D D
| |
x y
Now I noticed it might be useful to introduce types for the variables (scalar, vector, matrix).
What else do I need to consider to make my system extendable to any maths formalism?