Typographical Number Theory
Typographical Number Theory (TNT) is a formal axiomatic system describing the natural numbers that appears in Douglas Hofstadter's book Gödel, Escher, Bach. It is an implementation of Peano arithmetic that Hofstadter uses to help explain Gödel's incompleteness theorems.
Like any system implementing the Peano axioms, TNT is capable of referring to itself (it is self-referential).
TNT does not use a distinct symbol for each natural number. Instead it makes use of a simple, uniform way of giving a compound symbol to each natural number:
zero 0 one S0 two SS0 three SSS0 four SSSS0 five SSSSS0
The symbol S can be interpreted as "the successor of", or "the number after". Since this is, however, a number theory, such interpretations are useful, but not strict. It cannot be said that because four is the successor of three that four is SSSS0, but rather that since three is the successor of two, which is the successor of one, which is the successor of zero, which has been described as 0, four can be "proved" to be SSSS0. TNT is designed such that everything must be proven before it can be said to be true. This is its true power, and to undermine it would be to undermine its very usefulness.
In order to refer to unspecified terms, TNT makes use of five variables. These are
- a, b, c, d, e.
More variables can be constructed by adding the prime symbol after them; for example,
- a', b', c', a'', a'''
are all variables.
In the more rigid version of TNT, known as "austere" TNT, only
- a', a'', a''' etc.
Addition and multiplication of numerals
In Typographical Number Theory, the usual symbols of "+" for additions, and "·" for multiplications are used. Thus to write "b plus c" is to write
- (b + c)
and "a times d" is written as
The parentheses are required. Any laxness would violate TNT's formation system (although it is trivially proved this formalism is unnecessary for operations which are both commutative and associative). Also only two terms can be operated on at once. Therefore to write "a plus b plus c" is to write either
- ((a + b) + c)
- (a + (b + c))
The "Equals" operator is used to denote equivalence. It is defined by the symbol "=", and takes roughly the same meaning as it usually does in mathematics. For instance,
- (SSS0 + SSS0) = SSSSSS0
is a true statement in TNT, with the interpretation "3 plus 3 equals 6".
In Typographical Number Theory, negation, i.e. the turning of a statement to its opposite, is denoted by the "~" or negation operator. For instance,
- ~(SSS0 + SSS0) = SSSSSSS0
is a true statement in TNT, interpreted as "3 plus 3 is not equal to 7".
By negation, this means negation in Boolean logic (logical negation), rather than simply being the opposite. For example, if I were to say "I am eating a grapefruit", the opposite is "I am not eating a grapefruit", rather than "I am eating something other than a grapefruit". Similarly "The Television is on" is negated to "The Television is not on", rather than "The Television is off". This is a subtle difference, but an important one.
Note that unlike most other logical systems where qualifiers over sets require a mention of the element's existence in the set, this is not required in TNT because all numbers and terms are strictly natural numbers or logical boolean statements. It is therefore equivalent to say ∀a:(a ∈ N):∀b:(b ∈ N): (a + b) = (b + a) and ∀a:∀b:(a + b) = (b + a)
- ∃ means "There exists"
- ∀ means "For every" or "For all"
- The symbol : is used to separate a quantifier from other quantifiers or from the rest of the formula. It is commonly read "such that"
- ∀a:∀b:(a + b) = (b + a)
("For every number a and every number b, a plus b equals b plus a", or more figuratively, "Addition is commutative.")
- ~∃c:Sc = 0
("There does not exist a number c such that c plus one equals zero", or more figuratively, "Zero is not the successor of any (natural) number.")
Atoms and propositional statements
All the symbols of propositional calculus apart from the Atom symbols are used in Typographical Number Theory, and they retain their interpretations.
Atoms are here defined as strings which amount to statements of equality, such as
1 is not equal to 2:
- ~ S0=SS0
2 plus 3 equals five:
- (SS0 + SSS0) = SSSSS0
2 plus 2 is not equal to 3:
- ~(SS0 + SS0) = SSS0