It seems like the article ["The Twin Primes Conjecture is True in the Standard Model of Peano Arithmetic: Applications of Rasiowa–Sikorski Lemma in Arithmetic (I)"](https://link.springer.com/article/10.1007/s11225-022-10017-2) by Janusz Czelakowski published in *Studia Logica* yesterday, claims to have proven that the twin prime conjecture holds in the standard model of Peano arithmetic using the technique of [forcing](https://en.wikipedia.org/wiki/Forcing_(mathematics)).


This seems like a very significant achievement (if the claim is not erroneous) but I am by no means an expert in logic or number theory, and therefore I'm not qualified enough to understand and evaluate the contents of this paper. So I would appreciate others' inputs on whether this claim has merit.



Czelakowski's claimed proof of the Twin Prime Conjecture
The error in the paper is in the proof of Theorem 7.2. The proof of Theorem 7.2 is immediately suspicious because of how vague it is in places and because of how lofty the expository text before and after it is. In the proof, the author claims that because we can identify the set of variables $(v\_i)\_{i \in \mathbb{N}}$ with the natural numbers, the induction scheme


* $(\beta)$ If $\mathbf{P} \Vdash \varphi(0)$ and for every variable $v\_i$, $\mathbf{P} \Vdash \varphi(v\_i)\Rightarrow \mathbf{P} \Vdash \varphi(S(v\_i))$, then for every variable $v\_i$, $\mathbf{P} \Vdash \varphi(v\_i)$.


is just an instance of ordinary induction in $\text{ZFC}$, but this is ridiculous. $0$ and $S(v\_i)$ are not variables; they're terms. Furthermore, even if the assumptions of Theorem 7.2 were enough to ensure that for every $i$, $\textbf{P}\Vdash S(v\_i) \approx v\_j$ for some $j$ (and they're not), that would in no way ensure that $\mathbf{P}\Vdash S(v\_i) \approx v\_{i+1}$.




---


That said, we need to step through a fair amount of the paper if we want to show conclusively that Theorem 7.2 is wrong. After all, maybe the assumptions of the theorem are inconsistent or otherwise overly strong and the error is really elsewhere in the paper. What makes this really tedious though is the forcing machinery, which only manages to make the proof more confusing and technical. It's pretty clear given the forcing posets being used (discrete posets and *singleton* posets) that the forcing can't really be doing anything that couldn't be described more simply in some other way.


We have the Lindenbaum-Tarski algebra of $\text{PA}$, written $\mathbf{B}\_{\text{PA}}(L)$, which is the Boolean algebra of formulas in some fixed countable collection of variables modulo logical equivalence over $\text{PA}$. We write $[\varphi]\_{\text{PA}}$ for the set of formulas that are logically equivalent to $\varphi$ over $\text{PA}$. The forcing posets $\mathbf{P}=(P,\subseteq)$ considered are certain families $P$ of non-empty subsets of $\mathbf{B}\_{\text{PA}}(L)$ (page 14). *But* the poset considered in Theorem 7.2 is a singleton, which means that all of the forcing machinery isn't really doing anything in Theorem 7.2. Nevertheless, let's go through some of the paper and track what the assumption that $P = \{p\}$ means (where $p$ is some non-empty subset of $\mathbf{B}\_{\text{PA}}(L)$).


On page 15 we get to the definition of a condition $p$ forcing an atomic formula $\sigma$. Again, since $P = \{p\}$, what this definition collapses to is just $p \Vdash \sigma$ if and only if $[\sigma]\_{\text{PA}} \in p$. We then extend this to arbitrary formulas in the standard way, but again everything collapses:


* $p \Vdash \neg \varphi$ if and only if $p \Vdash \varphi$ fails.
* $p \Vdash \varphi \wedge \psi$ if and only if $p\Vdash \varphi$ and $p\Vdash \psi$.
* $p \Vdash \exists x \varphi$ if and only if there is a variable $y$ such that $p \Vdash \varphi(x//y)$ (where $\varphi(x//y)$ is $\varphi$ with instances of $x$ substituted by $y$ and existing instances of $y$ in $\varphi$ changed to some fresh variable to avoid binding).
* $p \Vdash \varphi \vee \psi$ if and only if $p\Vdash \varphi$ or $p \Vdash \psi$.
* $p \Vdash \varphi \to \psi$ if and only if $p\Vdash\neg \varphi$ or $p\Vdash \psi$.
* $p\Vdash (\forall x)\varphi$ if and only if $p\Vdash\varphi(x//y)$ for all variables $y$.


(The author mentions this simplification at the end of page 15 and the beginning of page 16.) Finally, we write $\mathbf{P}\Vdash \varphi$ to mean that $p \Vdash \varphi$ for all $p \in P$, which in our case is just equivalent to $p \Vdash \varphi$.


We say that $\mathbf{P}$ is *compatible with equality axioms* if


* $[x \approx x]\_{\text{PA}} \in p$ for some variable $x$,
* whenever $[x \approx y]\_{\text{PA}}$ and $[R(...,x,...)]\_{\text{PA}}$ are in $p$, then $[R(...,y,...)]\_{\text{PA}}$ is in $p$ for any relation symbol $R$, and
* if $[x \approx y]\_{\text{PA}} \in p$, then $[F(...,x,...)\approx F(...,y,...)]\_{\text{PA}} \in p$ for any function symbol $F$.


This is essentially just what you need to ensure that $p$ forces the standard axioms of equality. (Transitivity and symmetry follow from special cases of the second bullet point.)


We say that $\mathbf{P}$ is *standard* if $\mathbf{P}$ is compatible with equality axioms and has that for any atomic formula $\sigma$, if $\text{PA}\vdash \neg \sigma$, then $[\sigma]\_{\text{PA}} \notin p$. (Remember, we're assuming $P = \{p\}$.)


This is all we need to understand the statement of Theorem 7.2, which claims that if $\mathbf{P} = (\{p\},\subseteq)$ is standard, then $\mathbf{P}\Vdash \mathrm{Ind}(x;\varphi)$ for every formula $\varphi$ (where $\mathrm{Ind}(x;\varphi)$ is $\forall \bar{z}[\varphi(0,\bar{z}) \wedge \forall x(\varphi(x,\bar{z})\to\varphi(S(x),\bar{z})) \to \forall x\varphi(x,\bar{z})]$, which is induction for the formula $\varphi(x,\bar{z})$). There is a typo in the statement of Theorem 7.2, but it's clear from the proof that the statement is meant to be $\mathbf{P} \Vdash \mathrm{Ind}(x;\varphi)$, not $\mathbf{P} \Vdash \mathrm{Ind}(x;\sigma)$.


The argument (suppressing the other free variables) proceed by showing that $\mathbf{P} \Vdash \mathrm{Ind}(x;\varphi)$ if and only if the following holds:


* $(\beta)$ If $\mathbf{P} \Vdash \varphi(0)$ and for every variable $y$, $\mathbf{P} \Vdash \varphi(y)\Rightarrow \mathbf{P} \Vdash \varphi(S(y))$, then for every variable $y$, $\mathbf{P} \Vdash \varphi(y)$.


As discussed above, $(\beta)$ does not work.


Let's see a concrete example of Theorem 7.2 failing. Fix an enumeration $(v\_i)\_{i \in \mathbb{N}}$ of our variable symbols. From now on we'll write $\varphi(y)$ for $\varphi(x//y)$, where $x$ is established by context to be the relevant free variable of $\varphi$. Let $p$ be
$$\{[\sigma]\_{\text{PA}}: \text{PA} \cup \{v\_0 \approx 0\}\vdash \sigma,~\sigma~\text{atomic}\}.$$
It is easy to check that $\mathbf{P} = (\{p\},\subseteq)$ is standard. Consider the formula
$$\varphi(v\_1) = \exists v\_2(v\_2 + v\_2 \approx v\_1 \vee S(v\_2 + v\_2) \approx v\_1),$$
i.e., "$v\_1$ is either even or odd."


First, let's see that $\mathbf{P} \Vdash \varphi(0)$ (i.e., $p\Vdash \varphi(0)$). We have that $[v\_0+v\_0\approx 0]\_{\text{PA}} \in p$, so $p \Vdash v\_0+v\_0 \approx 0$. Therefore $p \Vdash v\_0+v\_0\approx 0 \vee S(v\_0+v\_0) \approx 0$ and $p \Vdash \exists v\_2( v\_2+v\_2\approx 0 \vee S(v\_2+v\_2) \approx 0)$.


Now fix a variable $v\_i$. There are two cases. Either $i = 0$ or $i \neq 0$.


If $i = 0$, then we have that $[S(v\_0+v\_0) \approx S(v\_0)]\_{\text{PA}} \in p$, so $p \Vdash S(v\_0+v\_0)\approx S(v\_0)$ and $p \Vdash v\_0 + v\_0 \approx S(v\_0) \vee S(v\_0+v\_0) \approx S(v\_0)$. Therefore $p \Vdash \exists v\_2(v\_2+v\_2 \approx S(v\_0) \vee S(v\_2+v\_2) \approx S(v\_0)$, i.e., $p \Vdash \varphi(S(v\_0))$.


If $i \neq 0$, then I claim that $p \not \Vdash \varphi(v\_i)$ (i.e., $p \not \Vdash \exists v\_2(v\_2 + v\_2 \approx v\_i \vee S(v\_2+v\_2) \approx v\_i)$). Fix a variable $v\_j$. Since $i \neq 0$, we have that $v\_j+v\_j \not \approx v\_i\wedge S(v\_j+v\_j)\not\approx v\_i$ is consistent with $\text{PA} \cup \{v\_0 \approx 0\}$ (even if $j = 0$), so $[v\_j+v\_j \approx v\_i]\_{\text{PA}} \notin p$ and $[S(v\_j+v\_j)\approx v\_i]\_{\text{PA}} \notin p$. Since we can do this for any $j$, we have that $p \not \Vdash \varphi(v\_i)$.


So in any case, we have that if $p\Vdash \varphi(v\_i)$, then $p\Vdash \varphi(S(v\_i))$, but as we just established, $p \not \Vdash \varphi(v\_1)$, contradicting Theorem 7.2. Incidentally, this also shows that the assumptions of Theorem 7.2 are not enough to ensure that for every $i$, $\mathbf{P} \Vdash S(v\_i)\approx v\_j$ for some $j$.


