Hi everyone,

I am experimenting with this planner: Prolog Planner (unm.edu)

I already modified the planner a bit to allow for the action incrementValue which works.

My actions look like this:

```
move(plus(), [value(someVal, X)], [incrementValue(someVal, X , 1)]).
move(minus(), [value(someVal, X)], [incrementValue(someVal, X , -1)]).
```

And it works fine.

```
go([value(someVal, 10)], [value(someVal, 5)])
OUTPUT:
moves are:
minus()
minus()
minus()
minus()
minus()
```

But now I want to extend the functionality by changing the value based on X:

```
move(plus(), [value(someVal, X), X >= 10], [incrementValue(someVal, X , 1)]).
move(plus(), [value(someVal, X), X < 10], [incrementValue(someVal, X , 0.1)]).
```

But this does not work currently. To compare the precondition to the state the algorithm uses:

```
member(X,[X|_]).
member(X,[_|T]):-member(X,T).
member_set(E, S) :- member(E, S).
subset([], _).
subset([H|T], S) :-
member_set(H, S),
subset(T, S).
conditions_met(P, S) :- subset(P, S).
```

As far as I understand it the X condition is not checked here, as it is only checked if P is a subset on S and not if P is true given the statements in S. Can you give me a hint how I can really evaluate those statements?

I am quite new to Prolog so I am glad for any help and would even appreciate some tutoring or pay for it maybe. Thanks a lot