This book connects Gödel’s and Turing’s theorems to differences between ordinary language and mathematics. Ordinary language allows distinctions between things, names, concepts, programs, algorithms and problems but mathematics does not. Gödel’s proof arises due to category mistakes between things, names and concepts while Turing’s proof results from a categorical confusion between a programs and descriptions.

If mathematics and computing could distinguish between things, names, concepts, programs, algorithms and problems, paradoxes in logic, mathematics and computing will not exist. To make mathematics consistent and complete, we need to treat nature as symbols rather than things. Symbols are things too, but they also have meaning. Symbols, however, exist in a semantic space-time rather than a physical space-time. Symbols are therefore distinguished not as physical entities but as conceptual types. The book discusses revisions to logic, set theory and number theory required to build a consistent and complete mathematics.

The cornerstone of this shift is the idea that a type theory of distinctions and relations is needed to distinguish objects. Once objects have been distinguished, they can also be counted. The principles of distinguishing, ordering and relating objects are however based on types rather than quantities. The relation between the need for types and the role that consciousness plays in nature is discussed. The book argues that the types used in distinguishing, ordering and relating are properties of consciousness. Paradoxes in mathematics can be seen as stepping stones towards a new type-based foundation in mathematics, which reflects the observer’s type-perception capabilities into objects.