First Order Logic

I think there's an `iterable` function in the compatibility module that would be better to use here, so that we remain standard across SymPy.