I am trying really hard to understand how Boolos’s proof works, but I keep having doubts about it. Can you spot any logical flaws in my reasoning? This question arose from a previous question, but it is different from it as a consequence of things that were explained to me in response to such previous question.
The first incompleteness theorem states that any consistent theory is not complete. In other words, stated very naively, the result of the proof is: ¬(“true” ↔ “provable”). To avoid making a circular argument, the assumption about the theory that carries out our proof must be “true” ↔ “provable”. If our theory starts with this assumption, it seems to me that it can be showed $C(x,y) → ¬C(x,y)$ and therefore $¬C(x,y)$ can be proved by contradiction (with $C(x,y)$ being the predicate found in Boolos's proof). The reason for this is it seems to me that assuming $C(x,y)$ true allows you to prove both $∃n(∀(()↔=[]))$ and $¬∃n(∀(()↔=[]))$.
$∃n(∀(()↔=[]))$ has to be proved as part of Boolos’s proof (it is asserted to be true along the proof). From the assumption “true” ↔ “provable”, ¬∃n(∀(()↔=[])) can be deduced in a few mechanical steps. If the implication $(∀(()↔=[]) → ¬∀(()↔=[]))$ is true then we also have $¬∃n(∀(()↔=[]))$. It can be seen easily by rewriting $∀(()↔=[])$ as $J(n)$ and using proof by contradiction $(J(n) → ¬J(n)) → ¬J(n)$ and the generalisation inference rule $J(n) → ∀nJ(n)$. Then just substitute $¬∃n¬$ with $∀n$ (they are syntactically the same) to get $∀n¬J(n) ↔ ¬∃n¬¬J(n) ↔ ¬∃nJ(n) ↔ ¬∃n(∀(()↔=[n]))$.
Now, how can we show the implication $(∀(()↔=[]) → ¬∀(()↔=[]))$ to be true? We see that $∀(()↔=[])$ implies $A(n,m)$. Let’s say $F(x)$ is d symbols long, with d<m by construction ($m = 10k$ and $d = 2k + 24$ in Boolos’s proof). We also have $A(n,m) → ¬(C(n,y) ∧ (y<m)) → ¬C(n,d) → ¬∀(()↔=[n])$.
An objection could be: $¬C(n,d)$ just implies that there is no proof for $∀(()↔=[n])$, it does not imply $¬∀(()↔=[n])$. But if we have to start with the assumption “true” ↔ “provable” we can deduce these two things are exactly the same.
So to summarise, it seems to me that starting by the assumption that your theory is consistent and complete, $¬C(x,y)$ is proved by showing $C(x,y)$ leads to contradiction. Therefore to me it looks like Boolos’s proof cannot be carried out if you start from these assumptions. But these are the assumptions you have to start from to avoid making a circular argument.
IMO the issue is with your use of formula $F(x)$.
According to Boolos' definition,
Boolos says (page 386): "$n$ is not named by $F$; in other words, $\forall x (F(x) \leftrightarrow x=[n])$ is not in the output of $M$."
You are switching from "$\forall x (F(x) \leftrightarrow x=[n])$ is not in the output of $M$" to "$\lnot \forall x (F(x) \leftrightarrow x=[n])$ is in the output of $M$."
But this is what we are trying to prove: that the system is (negation) complete:
Thus, if $\phi$ is not an output of the system, then $\lnot \phi$ must be.
But this is exactly what $\mathsf {PA}$ is not: it is (negation) incomplete.
See page 383:
And page 384:
This is the crux of the matter: from the fact that $\forall x (F(x) \leftrightarrow x=[n])$ is not in the output of $M$ we cannot conclude that $\lnot \forall x (F(x) \leftrightarrow x=[n])$ is the output of $M$.