}
// Returns all the legal moves for the given player in the current state
// Now returns them in the format requested by the "SimulateStep" function
public ExpList GetLegalMoves(Expression player){
ExpList roleVar = new ExpList();
roleVar.add(player);
roleVar.add(vX);
try {
return theoryObj.finds(new Predicate(aDoes, roleVar), new Predicate(aLegal,roleVar));
} catch (InterruptedException e) {
wasInterrupted = true;
return null;