First order predicate logic solver (needed for a game I'm writing)