Это означает, что не существует доказательства G; следовательно, ни одно число не является кодом доказательства G: число 1 — не код доказательства G, так же как 2,3 и так далее.
Получается, что высказывания
"1 — не код доказательства высказывания с кодом m",
"2 — не код доказательства высказывания с кодом m", "k — не под доказательства высказывания с кодом т" и так далее являются финитными истинными высказываниями. Раз они финитные и истинные, они доказуемы. Следовательно,
"существует у, являющееся кодом доказательства высказывания с кодом m" недоказуемо. Но это высказывание — не-G, следовательно, не-G не будет доказуемым; однако это противоречит предположению того, что не-G доказуемо. От противного получили, что не-G в итоге недоказуемо (см. схему).
Итак, синтаксически доказано, что как G, так и не-G, ни одно из двух, недоказуемо. Таким образом, доказательство первой теоремы о неполноте может быть полностью переведено в синтаксические аргументы и понятия, как этого требует программа Гильберта. Этот способ представления доказательства, основанный исключительно на синтаксических аргументах, проверяемых механически, спас от любых споров.
В программе Гильберта требовалось, как мы уже сказали, найти непротиворечивое множество аксиом арифметики таким образом, чтобы каждое высказывание Р (либо его отрицание) было доказуемым. Но также требовалось, чтобы непротиворечивость этих аксиом проверялась алгоритмически, — это придавало уверенности, что аксиомы не приведут к парадоксу. В своей статье 1931 года Гёдель доказал вторую теорему, так называемую вторую теорему о неполноте. В ней доказывается, что эта цель также неосуществима.
Эта теорема часто формулируется следующим образом:
ни одно непротиворечивое множество аксиом не содержит арифметики, достаточной для того, чтобы доказать свою собственную непротиворечивость.