I have been working on finding the preconditions for a situation calculus example for some time now. This example is called the game "15-puzzle" where you can find a discription here https://en.wikipedia.org/wiki/15_puzzle.
The following fluents are given for this game:
at(x,y,z,s) // which means: there is a tile z at position x,y.
free(x,y,s) // which means: position x,y is free.
And now I have to find the preconditions for the following actions (movements):
move_up()
move_down()
move_left()
move_right()
I have tried really cumbersome solutions which I am sure are not correct. I would be very grateful if someone has the right approach for me!