Let's start with (an ordered field, for instance) the real numbers. We can look at the relationship between addition and multiplication. We can then try to define a relationship on the positive numbers which has the same relationship to multiplication that multiplication had to addition.
Because phpbb makes it annoying to use so many of the useful HTML character entities, I'm going to just use + for addition, * for multiplication and # for my tetration. So, we're looking for an operation # so that # is to * as * is to + except that we're only going to use the positive numbers for the first half of the analogy.
Let's start by enumerating the laws of (fields like) the real numbers. First, the addition laws:
- a + b = b + a
- a + ( b + c ) = ( a + b ) + c
- There exists a 0 so that a + 0 = a for all a
- For every a, there exists a unique number -a so that a + -a = 0
- a * b = b * a
- a * ( b * c ) = ( a * b ) * c
- There exists a 1 so that a * 1 = a for all a
- For every a, there exists a unique number a-1 so that a * a-1 = 1
- a * ( b + c ) = ( a * b ) + ( a * c )
Now, by analogy, the tetration laws must be (for positive numbers):
- a # b = b # a
- a # ( b # c ) = ( a # b ) # c
- There exists an E so that a # E = a for all a
- For every a not equal to 1, there exists a unique number a so that a # a = E
- a # ( b * c ) = ( a # b ) * ( a # c )
From that, we get some fun things like: ( a # b )-1 = ( a # b-1 ). The multiplicative inverse of the tetration of a and b is the tetration of a with b's multiplicative inverse. And, because tetration is symmetric, we can do it again on the a side to find that ( a # b ) = ( a-1 # b-1 ). The tetration of a and b is equal to the tetration of the inverses of a and b. This is analagous to the fact that ( a * b ) = ( (-a) * (-b) ).
I then started playing around with positive integer powers trying to evaluate ( am # bn ) in terms of ( a # b ). It turns out that, because of the distributive law, we must have that ( am # bn ) = ( a # b )m*n. I can prove that by induction in a separate reply if people want to see it. But, for now, suffice it to say that it is analogous to the fact that (a*m) * (b*n) = (a*b) * (m*n) when we replace multiplication by addition and tetration by multiplication. And, we can even extend the powers to negative numbers because of the previous paragraph.
So, given that, I started playing around. The first operation that I hit on which works (and, I'm pretty sure it's unique up to the choice (and, yes, I do mean "choice") of E) was:
- ( a # b ) = ElogEa * logEb = alogEb
- ( a # b ) = eln(a) * ln(b) = aln(b)
- a # ( b # c ) = a # ( eln(b) * ln(c) )
= eln(a) * ln( e[sup]ln(b) * ln(c) )[/sup]
= eln(a) * ln(b) * ln(c)
= ( eln(a) * ln(b) ) # c = ( a # b ) # c
- a = e1 / ln(a) for a not equal to 1
The distributive law is also easy:
- a # ( b * c ) = aln( b * c )
= aln(b) + ln(c)
= aln(b) * aln(c)
= ( a # b ) * ( a # c )
So, there you have it. Tetration that works, naturally. It gets around the problems raised in the "Why tetration breaks" thread.
As mentioned above, it works for any choice of E. For example, if we prefer base-10 logarithms, we can instead let E = 10. If we do that, then:
- ( a # 10 ) = a for all a
- ( 100 # 100 ) = 10,000
- ( 1000 # 100 ) = ( 100 # 1000 ) = 1,000,000 ... 1000 squared is 100 cubed
- ( 1000 # 1000 ) = 1,000,000,000
- ( 10,000 # 1000 ) = ( 1000 # 10,000 ) = 1,000,000,000,000
- ( 10,000 # 10,000 ) = 10,000,000,000,000,000
- ( 2 # 2 ) = 1.232023688689006...
- ( 20 # 20 ) = 49.2809475475602...