I've just started reading an english edition of Gems of Theoretical Computer Science. On page 5 (or page 12 of the overall pdf), the author brings up the set of all tautologies in propositional logic as an example of a set that is recursively/computably enumerable.
Could anyone explain why this is the case? If anything, it seems to me that complement of this set should be recursively enumerable, since you only need one counter-example to show that a formula isn't a tautology.
The syntactic notion of "tautology" is precisely the propositions for which there exists a formal proof without any hypotheses. So enumerating them is a simple application of a basic pattern in the relation between computability and logic:
The semantic notion of "tautology" is precisely the propositions for which plugging in truth values always produces a true result. So there is another straightforward algorithm for enumerating these:
Incidentally, there is a theorem of logic that syntactic tautologies are the same thing as semantic tautologies, so both of these algorithms enumerate the same propositions. (albeit in different order and with different multiplicity)