Is it possible to construct an algorithm that can formally prove any statement in some countable first-order theory except for exactly those which aren't provable in the theory? Why or why not?
Edit: so, apparently, the answer is affirmative. Has such an algorithm already been constructed?
Edit 2: I meant countable theories.
An algorithm can enumerate all consequences of the axioms, and so eventually list all the provable statements and all the disprovable statements.
An algorithm can take any non-independent statement and (if it really is not independent) determine if the statement, or its negation, has a proof.
An algorithm cannot tell, given an arbitrary statement, whether it is provable, or disprovable, or independent.