I have a prolog program with given grammar:
sum --> [+], mult, sum | mult | num.
mult --> [*], num, xer.
xer --> [x] | [^], [x], num.
num --> [2] | [3] ... etc
I have an abstract tree representation of my expressions. For example: mul(num(2),var(x))
which equals [*,2,x]
is valid.
I want to be able to create all expressions that satisfies a given x and solution. Using
allExpressions(Tree, X, Solution).
For example:
?- allExpressions(Tree, 2, 6)
Tree = mul(num(3),x)
Tree = sum(num(2),mul(num(2),var(x))
etc.
Due to my grammar it will obviously not be an unlimited set of equations for this.
I have already programmed an evaluation(Tree, X, Solution)
which calculates the answer given the X-variable. So what I need help to is to generate the possible set of equations for given x-variable and solution.
Any ideas to how I approach this? Thanks