First Order Logic

You should probably add a keyword argument to pass in a custom iterator of symbols.