Just calling the problem undecidable doesn’t actually solve anything. If you can prove it’s undecidable, it creates the same paradox. If no Turing machine can know whether or not a program halts, and we are also Turing machines, then we can’t know either.
I guess the answer to this point is that when constructing the proof that H(FL, FL) loops forever, we assume that H can’t be wrong. So we are working in an extended set of axioms: the program enumerates proofs given some set of axioms T, and the English-language proof in the tumblr post uses the axiom system T + “T is never wrong” (we can write this T+CON(T) for short).
Now, this is not necessarily a problem. If you have reason to think that T is consistent, then most likely T+CON(T) is consistent also (except in weird cases). So if we had some reason to adopt T in the first place, then working in T+CON(T) is also a reasonable choice. (Note that this is different from working in a system which can prove its own consistency, which would be bad. The difference is that in T+CON(T), there is no way to prove that proofs using the additional “T is never wrong” axiom are correct).
More generally, the lesson of Gödel’s incompleteness theorem is that it does not make sense to say that something is “provable” without specifying which proof system you are using, because there are no natural choice for an “ideal” system, they are all flawed. The tumblr post seems paradoxical because it implicitly shifts between two different axiom sets. In particular, it says
If there is no way for H to prove whether it halts or not, then we can’t prove it either.
but a correct statement is, we can’t prove it either using the same set of axioms as H used. We have to use some addtional ones.
I guess the answer to this point is that when constructing the proof that H(FL, FL) loops forever, we assume that H can’t be wrong. So we are working in an extended set of axioms: the program enumerates proofs given some set of axioms T, and the English-language proof in the tumblr post uses the axiom system T + “T is never wrong” (we can write this T+CON(T) for short).
Now, this is not necessarily a problem. If you have reason to think that T is consistent, then most likely T+CON(T) is consistent also (except in weird cases). So if we had some reason to adopt T in the first place, then working in T+CON(T) is also a reasonable choice. (Note that this is different from working in a system which can prove its own consistency, which would be bad. The difference is that in T+CON(T), there is no way to prove that proofs using the additional “T is never wrong” axiom are correct).
More generally, the lesson of Gödel’s incompleteness theorem is that it does not make sense to say that something is “provable” without specifying which proof system you are using, because there are no natural choice for an “ideal” system, they are all flawed. The tumblr post seems paradoxical because it implicitly shifts between two different axiom sets. In particular, it says
but a correct statement is, we can’t prove it either using the same set of axioms as H used. We have to use some addtional ones.