Is function `number of TM which terminates on an empty word` computable?
Is that proof correct?

Let's assume f is computable. Then I can show a TM which solves halting problem, actually even more - a TM which prints all halting TMs of given size.

This TM works as following:


Using blackbox for f, calculate f(n)
Iterate through ALL possible TMs of input alphabet {0, 1}, states {0, 1..., n}, work alphabet {_, 0, 1, .... n}
Simulate each machine on empty input BUT we don't check TM machine one by one. We check TMs STEP BY STEP. That means for each TM we make its one step.
When TM terminates, add 1 to counter
When counter reaches f(n), then we know which machines terminates and which don't. We have solved halting problem. Contradiction


The key is we  don't simulate TM machines one by one, but step by step, thus we don't get looped and we always terminate.