
Gödel Without (Too Many) Tears – new version, posting a short chapter a day - HilbertsProgram
https://www.logicmatters.net/2020/09/01/godel-without-tears-slowly-1/
======
ProfHewitt
This is a good presentation of the traditional take on the work of [Gödel
1931].

References can be found here:
[https://papers.ssrn.com/sol3/papers.cfm?abstract_id=3603021](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=3603021)

However, [Gödel 1931] _fails_ to prove inferential undecidability of
foundations of computer science because it violates restrictions on orders of
propositions that were introduced in [Russell 1908] to block inconsistencies
in foundations. The crucial issue with the proof in [Gödel 1931] is that the
Gödel number of a proposition does not capture its order. In strongly-typed
theories, the Diagonal Lemma [Gödel 1931] fails to construct the proposition
_I’mUnprovable_ such that _I’mUnprovable_ ⇔⊬ _I’mUnprovable_.

If the proposition _I’mUnprovable_ existed, it would be a monster in the sense
of [Lakatos 1976] because adding it results in inconsistency in foundations of
computer science that have the following fundamental principle: ByTheoremUse
{⊢∀[Proposition Ψ] (⊢Ψ)⇒Ψ} [Euclid approximately 300 BC]

    
    
        Proof of a contradiction in foundations of computer science: First prove *I’mUnprovable* using proof by contradictions as follows:  
            In order to obtain a contradiction, hypothesize ¬*I’mUnprovable*. 
            Therefore, ⊢*I’mUnprovable* (using *I’mUnprovable*⇔⊬*I’mUnprovable*).  
            Consequently, *I’mUnprovable* using ByTheoremUse, which is a contradiction.
        Using proof by contradiction, ⊢*I’mUnprovable* meaning *I’mUnprovable* by ByTheoremUse.  
        However, ¬*I’mUnprovable* using  *I’mUnprovable*⇔⊬I’mUnprovable, which is a contradiction in foundations.
    

Also, adding _I’mUnprovable_ results in inconsistency in foundations of
computer science that have the following fundamental principle: ByAdequacy
{⊢∀[Proposition Ψ] (⊢Ψ)⇒⊢⊢Ψ}:

    
    
        Proof of a contradiction in foundations of computer science: First prove *I’mUnprovable* using proof by contradictions as follows:  
            In order to obtain a contradiction, hypothesize ¬*I’mUnprovable*.  
            Therefore ⊢*I’mUnprovable* (using *I’mUnprovable*⇔⊬*I’mUnprovable*).  
            Consequently, ⊢⊢*I’mUnprovable*using ByAdequacy.
            However, ⊢¬*I’mUnprovable*(using I’mUnprovable ⇔⊬I’mUnprovable), which is a contradiction.  
        Using proof by contradiction, ⊢*I’mUnprovable* meaning ⊢⊢*I’mUnprovable*using ByAdequacy. 
        However, ⊢¬*I’mUnprovable* (using *I’mUnprovable*⇔⊬*I’mUnprovable*), which is a contradiction in foundations.
    

Existence of relevant fixed points is extremely important because they enable
recursive definitions. Without restrictions, fixed points can be used to
construct monsters. For example, without orders on propositions, the “self-
referential” proposition _I’mFalse_ (such that _I’mFalse_ ⇔¬ _I’mFalse_ )
could be constructed as the fixed point of the mapping Ψ↦¬Ψ (↦ notation from
[Bourbaki 1939–2016]). Since Ψ is a propositional variable in the mapping, ¬Ψ
has order one greater than the order of Ψ. Thus because of orders on
propositions, there is no paradoxical fixed point _I’mFalse_ for the mapping
Ψ↦¬Ψ.

Gottlob Frege made major advances in notations in foundations [Frege 1884]. In
Frege’s system, Russell developed a paradox using the mapping
NotSelfApplicable[x]⇔¬x[x], which when applied with NotSelfApplicable for x
has the following self-contradictory consequence:
NotSelfApplicable[NotSelfApplicable]⇔¬NotSelfApplicable[NotSelfApplicable].
With orders on predicates, construction of the monster NotSelfApplicable is
blocked because NotSelfApplicable[NotSelfApplicable] is not a well-formed
proposition because if NotSelfApplicable is a predicate of order α substituted
for x then ¬x[x] has order α+1 since x is a predicate variable of order α
meaning that NotSelfApplicable is not a predicate of order α. In this way,
Russell continued the logicism programme [Frege 1884] to base the foundations
solely on the untyped predicate calculus writing that abstractions “are merely
symbolic or linguistic conveniences, not genuine objects” [Russell and
Whitehead 1927].

Attaching orders to abstractions enabled blocking the construction of monster
such a NotSelfApplicable. However, attaching orders to all abstractions made
Russell’s system unsuitable for standard mathematical practice, such as
analysis [Russell in Appendix B of Principia Mathematica 2nd Edition, Church
1976, Quine 1966] because every abstraction is an abbreviation for a
proposition with an order. Making types (where only propositional types have
orders) explicit is a better solution for Computer Science.

