The Kaufman Decimals

You never know where conversations will turn with Jeff Kaufman. He goes barefoot, hates cucumbers, and donates fantastic chunks of his Google salary to charity. He’s fun.

One night over ice cream, we found ourselves talking about repeating decimals. After we filled a napkin with the proof that 0.999… = 1, Jeff had a brainstorm, and wrote the following:

“What the heck is that?” I asked.

“It’s a number where the nines go on forever,” he said. “And afterwards, there’s a four.”

“After forever?”

“Yes,” he said. “Exactly.”

“I see. So it’s bigger than this…”

“But smaller,” I continued, “than this.”

“Well, clearly,” he said. “All three numbers are identical up until the infinity-th place past the decimal. They differ at the infinity-and-1st place.”

A woman ordering her ice cream eyed us warily.

“What about this?” I said, and drew the following:

“Naturally,” Jeff said. “The 9’s go on forever. Then there’s a 4. Then the 8’s go on forever .Then there’s a 1.”

“That’s all logical enough,” I said (perhaps bending the meaning of “logical”). “But what if there’s something like this?”

“Is that different,” I continued, “from this?”

“That’s tricky,” Jeff said. “The first one is nines forever, then nines forever again. But the second one is just double-nines forever – which is the same as nines forever.”

“Let me get this straight,” I said. “You’re saying this…”

“And also…”

“Exactly,” he said.

By this point we’d filled most of our napkin. I unfolded another so that the treatise could continue to evolve. “I’m not convinced that these are well-ordered,” I said.

“Well-ordered” is a math term I’d learned in college. A set of items is “well-ordered” if you can put them into a nice, logical order, with no contradictions. For example, tennis players’ heights are well-ordered. But their skills are not – Anita beats Brianna, and Brianna beats Carla – so you’d expect Anita to beat Carla. But instead (in this real-life example from a friend’s high school tennis team), the reverse happens. Carla beats Anita. That’s not well-ordered.

“Well, let’s figure it out,” said Jeff. “If we can find a case where A > B and also B > A, then you’re right. If not, then everybody everywhere will have to start using these numbers, because they’re more fun.”

“Good luck with that,” I said.

At this point, my sister joined us for an ice cream. Holding her cone with one hand, her free hand contributed the following to our napkin:

“Oh!” Jeff exclaimed. “Cool.”

“I see,” I said. “The nines go on forever. And then the forevers go on forever. And then, after all that, there’s a 1.”

This is when things got out of hand (if they hadn’t already).

(the nines go on forever, and then there’s a one, and then that nine-forever-then-a-one pattern goes on forever, and then, at long last, there’s a two)

(as above, except that repeats forever, and then at the very end, there’s a 7)

(as above, except that repeats forever, and then there’s a 3, and then… well, hopefully you get the idea)

“Are these well-ordered?” I asked, as we began to unfold a fourth napkin.

“I don’t know,” Jeff said. “To be honest, I’m not entirely sure what they are.”

By this point, it was 11pm, closing time at J.P. Licks. The last ones there, we stuffed the napkins into our pockets, grabbed our bags, and made for the door.

“What were you guys working on?” one of the employees asked us.

“The Kaufman decimals,” I told him. “On napkins today, in textbooks tomorrow.”

He politely rolled his eyes.

Note: As usual, I’ve used imagination to plug the holes in memory – though Jeff is every bit as weird and wonderful as described. Mathematical minds out there: Are the Kaufman decimals well-ordered? I’m curious mostly about first-order Kaufman decimals. My hunch is that the higher-order ones must run afoul of logic somewhere or other, although I’d love to see a demonstration of that, too.

108 thoughts on “The Kaufman Decimals

    1. I assume you mean the tennis example?

      “Subjective” is okay, as long as it’s consistent. If I say “Beatles are better than the Stones, and the Stones are better than the Who,” that’s well-ordered, so long as I believe the same thing from day to day. But if I switch my ranking depending on which album I’m listening to, we’re in trouble.

  1. 1. I absolutely love this discussion and now I’m gonna waste time at work playing with Kaufmann Decimals.
    2. It is always nice to hear about a fellow barefoot-er. If that is even a term.

      1. There are at least three barefoot mathematicians in the world!! This excites me greatly! (Well, as long as a math hobbyist can call herself a “mathematician.” The barefoot thing is definitely not a just a hobby though.)

        1. From what I can tell in my department, barefootness is a Thing™. As is never wearing long pants.

  2. Well… .0(repeating)1 would be what you add to .9(repeating) to get to 1. Right? So wouldn’t that make .0(repeating)1 be assigned some random Greek letter (though I’m pretty sure they are already all assigned so maybe Arabic or Norse letters…)

    So let’s say fehu ( |// ) is what you add to .9 (repeating) to get 1.

    1. Ooh, I like fehu. Gonna keep that one in my back pocket.

      I suspect that trying to add these will lead to a whole mess of contradictions. The discussion on my last post seemed to suggest that it’s hard to find a system in which 0.999… doesn’t equal 1, but still has a meaning.

      1. I also just realized you missed one idea. You have .(9)(9) and .(9) and .(99) and but you didn’t have a .(9)9 … which clearly would be be .(9)(9) > .(9)9 > .(9) = (.99)

        And then obviously it follows that if .(9)(9) > .(9) and .(9) = 1 then .(9)(9) > 1.

        MWAHAHAHA!

        1. I think this entire idea is based on the assumption that .(9)≠1, otherwise everything discussed would be equal to 1.

      1. Although, come to think of it, I don’t know what 0.0…5 + 0.0…5 is. Maybe addition doesn’t work very well after all.

        1. 0.0…1 + 0.9… wouldn’t be one in any case. If you can assume “equal cardinality of infinite expansions” (I’m being quite loose with the terminology), then yes, it would be 0.9…1. However, if we don’t have “equal infinities” it would be something like 0.9…109… (with just nine repeating) or 0.9…0…1. But that isn’t how infinities work, really.

          I don’t think the Kaufmann decimals would work like that, either. Infinite expansions rarely do.

        2. Also, if you jive with the whole .9… = 1 thing, it still wouldn’t be one! It’d be 1.0…1

          I just forgot to cover that case.

        3. Perhaps they’re like the p-adic numbers. It’s entirely possible that Kaufman stumbled upon something rather profound.

          Or 0.[0]5+0.[0]5 might instead equal 0.[0]10 and trailing zeros do actually change a Kaufman decimal’s value. I think that has a chance of running afoul of well-ordered-ness, though.

  3. Ok, so wait. You can multiply and divide Kaufman decimals, right? So 0.0…1 * 2 = 0.0…2

    So therefore 0.0…1 * 10 = 0.0…10. But normally when you have a zero at the end of a decimal you can just remove is (0.500 = 0.50 = 0.5), so 0.0…1 * 10 = 0.0…1. Divide each side by 0.0…1 and you get 10 = 1!

    I think this will be a big deal.

    1. I don’t think you can multiply and divide these. I’m not even sure you can add and subtract them. Orlin’s current question is very weak: are they even well ordered?

      1. You can divide by them normally, just not if they’re no finite distance from 0. You can multiply by them if you remember that infinity minus 1 is infinity, so 4*1.[9]3 = 7.[9]72, because the last 9 times 4 becomes a 6, then the 3 becomes a 12. Then you can at least divide by them some of the time?

      1. More technically:
        What we’re doing here is allowing ordinal locations rather than integer locations, in our decimal expansion. This doesn’t work well because limit ordinals have no predecessors, but we need predecessors in order to “carry” during addition operations!

    2. I think it could work if you specified your place values. Like if the 1 in 0.000…1 is at the omega-th place, then when you multiply it by 10, you get 0.000…10 with the 1 in the omega-minus-first place, and the omega-th place now has a zero in it.

  4. It seems that all the Kaufman decimals written thus far are what one might call “rational Kaufman decimals”, in that you can represent them in a nice finite way (finitely many numerals, finitely many bars). If you want things to get even CRAZIER, you could look at irrational Kaufman decimals, which have no representation with finitely many numerals and bars. For instance,

    0.(1 with a bar)0(1 with a bar)00(1 with a bar)000(1 with a bar)0000…

    or, perhaps more trippily, 0.1 with infinitely many bars over the 1. Or you could combine those two.

    Whee!

    1. Yikes! I like 0.(0)1, with infinitely many bars over the zero.

      I mean, we could have a notation for infinitely many bars, like a squiggly bar.

      But then you could have infinitely many squiggly bars…

    1. My hunch is no? I’m sure you’ve got more insight into this than I do, but I can’t imagine this notation has any meaningful visual interpretation on the real line. If we’re talking about Dedekind cuts, I’d suppose 0.(9)1 = 0.(9)2 = … = 0.(9) = 1.

      1. Yeah, this is correct. You can get lots of these for every rational number (which only see the part of the Kaufman decimal up to the end of the first bar). As produced in the post, you can’t get to irrational numbers this way.

  5. A useful notation when in text: instead of “123 with a bar” write (123). Now I can express “3, then 9 repeated forever, followed by 2, all that after the 3 repeated forever, then 4 repeated forever” as: 3((9)2)(4).

    Here’s an implementation in Python that orders them: https://github.com/jeffkaufman/decimals/blob/master/decimal.py

    There’s a list of examples that it sorts properly.

    It handles all the examples in the post except for the equivalence between (9) and (99).

    1. I like your parentheses notation.

      Am I right in reading that your sorter puts 0.2(0), 0.2(0)0, and 0.2(0)(0) in that order. Should those be equivalent? Can your sorter do cases of equality?

      Also, is your sorter saying 0.5589 < 0.((551)57)4? It seems like the opposite inequality should hold.

      1. > Can your sorter do cases of equality?

        The sorter doesn’t do equality, but I’d like to figure that out. In the post you have (9) and (99) as equivalent, and I feel like (0) shouldn’t matter unless it’s followed by something non-zero (trailing 0s are irrelevant). Right now anything with a distinct string representation will get compared as distinct.

        There was a missing comma, but there’s also a problem. I’ve fixed the comma and moved the test examples into the order that it sorts them, but it does still sort 58 < (51). Uh oh.

    2. Fascinating stuff! Jeff, I saw your GitHub project when I logged in and started digging. Glad I did.

      As soon as I saw the bars over bars I immediately started thinking about the Kleene star and context-free grammars. Here’s my attempt to define Kauffman values in Backus-Naur Form:

      ordered-alphabet = “0” | “1” | “2” | “3” | “4” | “5” | “6” | “7” | “8” | “9” ;
      sequence = { ordered-alphabet } | “(“, sequence, “)” ;
      kauffman-value = sequence, “.”, sequence ;

      What’s neat is when it’s structured this way it becomes apparent how arbitrary it is to use base 10. In fact, any arguments about the existence of well-orderings over s would almost certainly work for most other bases. Further constructions and proofs are left as an exercise for the reader 😉

      As the BNF is defined, there are a few cases worth considering. For instance, it makes both “” and “.” valid Kauffman values, but I’m not clear whether you’d want that. Furthermore, “0.1” and “.1” are both values, but are they equal? If not, how should they be ordered? What about when you throw “(0).1” into the mix? It’s beginning to seem like maybe the grammar I defined is too permissive, but how should it be further restricted while still allowing for this crazy variation? Is the conceptual idea even expressible as a context-free grammar? I’m guessing it would be.

        1. All this stuff comes from an area called formal language theory. A formal language specifies whether any given string of characters belongs to that language. Basically it forms a set of strings.

          There are several different classes of formal languages, each with differing levels of expressive power. Context free grammars are one such class, and Kaufman [1] values as I defined them are an example of a context free grammar.

          Backus-Naur Form [2] is a formal language for defining context free grammars. It’s pretty meta and can hurt your head if you think too hard, but the idea is rather simple. Here’s a more basic CFG for phone numbers expressed in BNF.

          digit = “0″ | “1″ | “2″ | “3″ | “4″ | “5″ | “6″ | “7″ | “8″ | “9″ ;
          area-code = “(“, digit, digit, digit, “)” ;
          prefix = digit, digit, digit ;
          line-number = digit, digit, digit, digit ;
          phone-number = area-code, ” “, prefix, “-“, line-number ;

          Notice that phone-number strings in the language will always have the same length. We don’t want that restriction in Kaufman values, so I had to use another special construct for unbounded repetition:

          sequence = { ordered-alphabet } …

          The braces mean, “whatever is inside can occur 0 or more times.” So the empty string “” is a valid sequence, and so are “0”, “00”, “000”, “6546841384”, and so on. This repetition idea is pretty much what’s meant by Kleene star. Kleene was a researcher in this field and the traditional syntax for it is to follow the thing that can be repeated by a star, like this: ordered-alphabet*

          [1] Sorry Jeff. I realized I got your last name wrong earlier!
          [2] Technically, I’ve been using Extended Backus-Naur Form (https://en.wikipedia.org/wiki/Extended_Backus%E2%80%93Naur_Form)

  6. I believe they are not well-order if you allow 0.(99) = 0.(9) [which I think you have to] as:
    0.(9) = 0.(99) = 0.(9)(9) > 0(9)(1) > 0.(9)1 > 0.(9)

      1. Hmm, yes. That is what you wrote originally. My thinking had diverged. Back to the infinite drawing board.

      2. Hi, non-mathematician here, wondering why the latter term is bigger?
        I thought they’d represent the same thing: the total infinite repeats in .(99) being of course half the size of that in .(9)(9), but the .(99) repeats two nines infinitely, but .(9)(9) just repeats nine infinitely, twice.
        I understand that if we’re saying .(99) = .(9) that creates a sticky situation, but I don’t think we have to say that in this case. If we deny the .(9)= 1 for a moment and just think about the number itself, if would seem that the infinities in .(99) and .(9)(9) create the same number, whereas .(9) is a smaller number.

  7. Hmm. This post made me think, and that’s fun 😀

    I’m not entirely sure if we can even *ask* for well-orderedness at this stage. First you have to define how the > and < symbols work, unless you do that the set is just an unordered collection of symbols. And if we define them by giving the obvious borrowed-from-real-numbers algorithm to "take the first digit, check which is larger, go to the next if they're not equal, ad so on"– that doesn't work here because infinity!=infinity. Basically, while it _seems_ obvious that 0.[9]3 b, find the lim (f(a,n)-f(b,n)) as n->infinity. If it converges to a positive number, a>b. If negative, a<b. If 0, a=b.

    *If* this limit converges for all a,b pairs in K, then well-orderedness seems to be a trivial thing derivable from the well-orderedness of real numbers.

    However, I'm not sure if I can prove this convergence. Though it would be interesting to check. Especially if there are cases where f(a,n)-f(b,n) oscillates their sign.

    —–
    * brackets mean a bar

    ** Consistent with real number inputs and gives us results we expect like 0.[9]3 < 0.[9]5.

    1. Argh, a bit of my input got eaten:

      Hmm. This post made me think, and that’s fun 😀

      I’m not entirely sure if we can even _ask_ for well-orderedness at this stage. First you have to define how the > and < symbols work, unless you do that the set is just an unordered collection of symbols. And if we define them by giving the obvious borrowed-from-real-numbers algorithm to "take the first digit, check which is larger, go to the next if they're not equal, ad so on"– that doesn't work here because infinity!=infinity. Basically, while it _seems_ obvious that 0.[9]3 because of the infinity standing in our way. Induction and other methods don’t work.

      I’m not sure if we can obtain a pleasant** ad rigorous definition for the > operator on K (Kaufman decimals), however, here’s my shot at it:

      I define f(k,n): KxN ->R (K is a Kauffman number and n is a natural number) such that f(k,n) is what you obtain by taking the bar’d representation of k, and replacing each bar with its constituents repeated n times. So, f(0.[9]1,3)=0.9991, and f(0.[9[3]]2)=0.933393339332. And so on.

      Now, to find if a>b (a,b belong to K), we find the lim (f(a,n)-f(b,n)) as n->infinity. If it converges to a positive number, a>b. If negative, a<b. If 0, a=b.

      *If* this limit converges for all a,b pairs in K, then well-orderedness seems to be a trivial thing derivable from the well-orderedness of real numbers.

      However, I'm not sure if I can prove this convergence (It seems to be false). Though it would be interesting to check. Especially if there are cases where f(a,n)-f(b,n) oscillates their sign.

      —–
      * brackets mean a bar

      ** Consistent with real number inputs and gives us results we expect like 0.[9]3 < 0.[9]5.

        1. That’s a really clever approach – I wouldn’t have thought of considering these families of terminating decimals, and allowing the number of digits to approach infinity.

          I think you’re right, though, that you’ll wind up approaching a difference of zero for all would-be-interesting comparisons. It seems like K’s structure is weird enough that it can’t really be embedded in the reals, even with a tricksy limit-driven definition.

          My dad’s approach below seems to achieve an ordering by converting each element of K to a finite sequence of rational numbers.

        2. I think you’re onto something good here. You can ask whether in the tail the differences are all eventually positive or negative. I think you should be able to prove that, at least for the types discussed in the post, this will be the case, and that will prove that they’re well-ordered — though perhaps this is as much work as proving that they’re well ordered to start with. Before this post, though, I didn’t have a clean notion of what the definition of the ordering was.

          Here’s a much more hackish proof that they can be well-ordered: do what you’re suggesting, watching the sign of things in the tail, and then if you’re worried that the signs might alternate you can apply a non-principal ultrafilter to pick which will be larger. This approach is used in defining the hyperreals. It’s a bit of a cheat, but fortunately I don’t think it’s needed here.

  8. The simple version is well-ordered by translating numbers with parenthesis into vectors of rational numbers, and then using lexicography to order the vectors. Every right parenthesis completes a number. The next digit starts the following number. Thus .(9) corresponds to the number 1. And (.4) corresponds to the number 4/9. And .(31) corresponds to 31/99. In this case, we let the notation .(9)(4)(31) corresponds to the vector: 1, 4/9, 31/99.

    In order to decide whether one vector is larger than another, one compares the elements until a tie is broken. Thus 1, 4/9, 31/99 is smaller than 1, 4/9, 31/99, 1/1000 and it is larger than 1, 4/9, 31/101.

    As you note, different notations do lead to the same number.

    I suspect that this is equivalent to what some others have written.

    I have no clue how to handle bars upon bars upon bars.

    1. I was scrolling down trying to find out who else thought of this like vectors. I’m fairly sure this can be extended – simply allow the components of your vector to be Kaufman numbers themselves. Then, there is an identity we can use:
      (b)=b,(b)
      (Note: specifically *not* (b)=(b),b. Otherwise, .(9)9=.(9) < .(9)8, which we don't want)
      I'm fairly sure that repeated applications of this allow us to compare any two different sized Kaufman's within a Kaufman. However, the margin is too small for me to write down a proof (hehehe).

  9. .9 repeating rounds up to 1. (maybe sharing your original proof that .9 repeating = 1 will help here)
    .9 repeating then a 2 does not round up to 1 so it is smaller than 1 but larger than .9 repeating 1.
    .9 repeating then a 5 rounds up to 1 but is smaller than just .9 repeating because at the end of all those repeating 9’s is, well….a 9 by default.
    does that make any sense?
    so, yes, well ordered.

    1. Interesting take! I’m not sure I’d say that 0.999… “rounds” up to 1. The word “round” suggests that we’re settling for an approximation, whereas in the real number system, 0.999… actually IS 1, precisely.

      That said, rounding the Kaufman decimals presents a whole new set of interesting issues…

  10. This is surprisingly sensible. I wouldn’t have thought you would get anything logical out of this, but it appears that you do — especially if you are only trying to get an ordering, not something with arithmetic defined on it. The transfinite sequences of digits appear to always correspond to well-orderings and thus to the ordinal numbers (one of the standard types of transfinite number in mathematics). These are a well-behaved and interesting area of mathematics. They have various unusual properties, including that addition and multiplication are not commutative. This helps to translate the intuitive concept into some established mathematics (which some but not all of you are probably familiar with). See here for more details: http://en.wikipedia.org/wiki/Ordinal_arithmetic

    It appears to me that all the numbers you have discussed correspond to order-types as follows. Take the parenthesis notation developed above. Get rid of everything before the decimal. Replace each digit with ‘1’. Replace juxtaposition with ‘+’ (i.e. xy becomes x+y). Replace ‘)’ with ‘)w’ (where the lowercase ‘w’ is meant to represent lowercase omega).

    For example:

    0.(9) => (1)w [= w]
    0.(9)1 => (1)w + 1 [= w + 1]
    0.(9)(9) => (1)w + (1)w [= w + w]
    0.((9)1) => ((1)w + 1)w [= (w + 1)w = w^2]
    0.((9))1 => ((1)w)w + 1 [= w^2 + 1]
    0.1((9)) => 1 + ((1)w)w [= 1 + w^2 = w^2]
    0.9(9) => (1)w [= w]

    0.(((…9…))) => w^w

    These capture the order types of the sequences but abstract away the value at each place in the sequence (the digits). To capture that, we want to use transfinite sequences of decimal digits. Or equivalently each Kaufman decimal will be a functions from the ordinal representing its structure to [0, …, 9]. It is unclear quite what structure of bars you want to allow. Each structure will give you a different set of ordinals to work with for your order types.

    The obvious way to then define ‘<' is to go through both orderings of digits. If you reach a point where the corresponding digits don't match, then the one with the smaller digit is smaller. If one runs out of digits without a disagreement, then it is smaller. This should give you a complete ordering.

    Note that the property of 'well-ordered' technically means more than just a complete ordering. It means that for all sets of the things, there is a least one. The ordinals are well-ordered, but even the rationals and the reals are not. Nor are the Kaufman decimals. Consider the boring set of decimals {0.1, 0.01, 0.001, 0.0001 …}. There is no least element of it. Since they are also Kaufman decimals, these aren't well-ordered either. (A more exciting example is {0.(0)1, 0.((0))1, 0.(((0)))1 …}).

    Finally, note that on my account:

    0.9(9) = 0.(9)
    0.(91) = 0.9(19)

    which makes sense to me. I'm not sure if you adjudicated examples like this one earlier.

    1. Actually, this method allows more Kaufman decimals than the standard notation for them does. For example the number that is the infinite decimal expansion of pi (3.14159…) followed by a 1. I see no reason why this wouldn’t be wanted though. The real numbers include numbers like pi with no finite decimal representations, even using bars, and this number could still be a Kaufman number, just not having a finite Kaufman decimal expansion.

      Similarly, you could have the digits of pi followed by the digits of e.

      Or the digits of pi, then the digits of pi, then the digits of e, then the digits of pi, and so on alternating between the two according to whether the nth digit of the expansion of pi is odd or even. One can represent this algorithmically, by having a function that takes a representation of an ordinal (indicating the digit location) and returns the value of the digit there. This method will work for the computable Kaufman numbers (cf the computable reals), but won’t work for Kaufman numbers with uncomputable decimal expansions.

    2. Oh, with my definition of ‘<', we might want to modify it to say that if one number runs out of digits while they haven't yet had any disagreements, then they can still be equal so long as the other number only has zeros remaining. So that 0.1 = 0.1(0) = 0.1(0)0 etc.

      1. Hey, an honor to have you on the blog!

        Your method for comparing these numbers seems cool (although I’ll have to mull the notation a little longer before I feel totally on top of it). I really like the extension of the idea into algorithmically defined Kaufman decimals, using the decimal expansions of irrationals, instead of limiting ourselves to the rationals.

        I wonder: Does your adjudication method always agree with the one my dad (James Orlin) describes above? More generally, I’d be curious to see an example of a set with two consistent orderings that don’t agree (or, if that can’t happen, to understand why).

        My dad’s approach shows that the Kaufman decimals are isomorphic to strings of rational numbers. Your approach makes obvious that you can use strings of reals instead. And ultimately, I guess, that’s what these are – lists of numbers with deliberately playful notation.

        I’m still not sure I’ve wrapped my head around the higher-order version, though… the recursive structure seems to complicate things pretty dramatically.

        1. I’m presuming James is ‘jimorlin’. I like his idea, but it doesn’t address bars on bars, and I’m not sure how it addresses non barred things. For example, on my account 0.(21) is equal to 0.2(12), which I think you agree with. I’m not sure how this would come out of James’ account though. He’d represent the first with 21/99 and my guess is that he’d represent the second with 2/10, 12/99, which is lower.

          I think my basic approach (inspired by your story) is to say that a real is represented by an infinite sequence of digits and ordered lexicographically, but we can instead use *transfinite* sequences of digits and continue to order them lexicographically. This seems simple and obvious in retrospect (well, at least if you are familiar with the ordinals), but I wouldn’t have thought of it without the really cute introduction via the extended bar notation.

          Surprisingly this system (extending the infinite sequence to a transfinite one) seems to ‘just work’ as far as ordering goes, though it fails for addition, multiplication etc as expected. Both the reals and these extended numbers have interesting finite representations via overhead bars, which only represent a subset of the numbers. Both have algorithmic representations (programs to calculate any digit you request), which also only represent a subset of the numbers. In both cases there are actually uncountably many numbers, which is more than the (countable) number of descriptions in any normal representation scheme, so there will be unrepresentable ones, but that’s OK.

          Cardinals, ordinals, and hyperreals are all great things to investigate for leisure. They are really fun and not that difficult to understand the basic results.

          One extra point is that if we allow the transfinite sequence to be long enough (i.e. to omega_1), we would end up with strictly more of these Kaufman decimals than there are real numbers (more in the sense of cardinality). There would be 2^(Aleph_0) reals and 2^(Aleph_1) of these. Indeed if the transfinite sequence is long enough, then each number has as many decimal digits as there are real numbers, and if the sequence is longer, it will have more digits than there are real numbers…

        2. I think I might be a little late to this. Recently found this blog and decided to browse the archives. This post is definitely one of the most interesting, and tobyord’s approach is (to me at least) the best. It encapsulates the whole idea and allows about as much abstraction as one could hope for.

          Just wanted to address “More generally, I’d be curious to see an example of a set with two consistent orderings that don’t agree (or, if that can’t happen, to understand why).”
          This can happen a lot. Take the set {1,2}. This has two consistent total orderings that don’t agree, namely (1<2) and (2<1). In fact, take a total ordering on any set, reverse it, and you get another total ordering which doesn't agree.

          More interestingly, the well-ordering theorem (which is equivalent to the axiom of choice) states that any set can be well-ordered. So take the reals, for example. The normal order on them is not well-ordered, so there's another order that "looks completely different".

          I guess morally speaking, orders are "loose" things.

  11. Funny, I’ve used 0.0̅1 (0.0…1) before as the numeric representation of the infinitesimal. (and thus 0.9̅+0.0̅1 = 1. I prefer using the hyperreal number system.)

    1. I’ve really got to look into the hyperreals. Based on the comments here, they’re starting to sound like a cool movie that everyone but me has seen.

    2. I’m not sure that would work in this system. Using .[9] to mean .9 repeating, it seems .[9] + .[0]1 = .[9]1. I don’t think there is any way getting around enough repeating 9s being equal to 1, perhaps .[9] + .[0] 9… = 1, where the ending 9… indicates that all remaining digit places, up to and beyond forever, are 9.

  12. Not only can these numbers be well-ordered, they are actually part of a field; i.e. they may be added, subtracted, multiplied, and divided. One way is with surreal numbers: http://en.wikipedia.org/wiki/Surreal_number

    Let e stand for 1-0.(9). If we were dealing with real numbers, e=0 since the reals are complete. However in nonstandard arithmetic, such as surreals, there are infinitesimals such as e. Note that e is positive, yet smaller than any positive real number. We have 0.(9)+e=1. Since this is a field, you can multiply. Hence we can write 0.(9)+0.4e, to express what you have as 0.(9)4.

    Continuing, what you have as 0.(9)(9) we may write as 0.(9)+0.(9)e=0.(9)*(1+e). We now calculate 1-0.(9)(9)=1-0.(9) – 0.(9)e=e-0.(9)e=[1-0.(9)]e = e^2. Hence 0.(9)(9)(9) is just 0.(9)*(1+e+e^2). Continuing on, what you have as 0.((9)) we may write as 0.(9)*(1+e+e^2+e^3+…)=0.(9)/(1-e). Alas this equals 1, so the fun stops here, if you want to use the nice (natural) properties my choice of e gives you.

    If you’re willing to have messier calculations, you don’t need to make e=1-0.(9), you can make it smaller, and then there will be room after 0.((9)) for still more.

  13. This is an interesting question, but one bit of terminology is bothering me. You’re asking (I believe) if they are TOTALLY ordered. Well-ordered means something different. (Specifically, if every set of elements that is bounded below has a least element. The integers are well-ordered. The real numbers are totally ordered, but not well-ordered. That’s why, for example, there is a smallest positive integer (1, of course), but not a smallest positive real number.

    As for ordering the Kaufman decimals, how about picturing them as a grid of numbers. Each “goes on forever” counts as one (infinite) row in the grid. So the usual 0.(9) looks like:

    0.99999999999…
    000000000000…
    000000000000…

    Where it’s understood that all those later zeroes are after the decimal point. But really, the number is the picture of the whole grid. So 0.(9)1(9)4 would be:

    0.9999999999…
    19999999999…
    4000000000…
    ….

    Etc. And then ordering them is easy using the usual comparison – keep comparing digits until one has a bigger digit in one place than the other. So 0.((9)) would be

    0.99999999999…
    999999999999…
    999999999999…

    To get deeper than that, you can just picture a 3-D grid of numbers – stack an infinite number of these grids on top of each other and read through them in order. Now, I suspect, sadly, that thinking about them this way has almost no correlation to any sort of arithmetic you could do on them using infinitesimals or anything like that. But I haven’t thought about that issue at all.

    1. Matt Davis–I had this same idea, and I’m glad I found your comment in this discussion, so I didn’t just repeat you. This seems like the most natural model for thinking about Kaufman numbers: imagine one quadrant of a grid, with each repeated (9) —for example—representing a vertical string of 9s. Then 0.(9)(1)1 is a vertical ray of 9s on the line x =1, followed by a vertical ray of 1s on the line x =2, followed by a single 1 at the point (2,0). So really, I’m doing just what you were doing, just rotated ninety degrees.

      I agree that well-ordering isn’t too bad for the first degree once you have that model. Arithmetic is much trickier. What seems odd to me is the fact that we’re in base 10. We could make it practically trivial to add, subtract, multiply, and divide if we allowed ourselves to use any number at any point on the grid–just carry out operations at the given point. But that violates the spirit of the origination, and just dodges the question. The key question is, what’s 0.(9)5+0.(0)5? Even with our model, there’s no clear spot to carry to.

      It’s tempting to imagine the 0.(0)5+0.(0)5 portions of the calculation pushing a distant 1 to the “end” of the vertical ray, creating an infinite domino knocking over of the 0.(9) part and leaving us with 1. But alas, what would 0.(0)5+0.(0)5 be in that case?

      We could solve this problem if we widened our grid from the first quadrant to the entire plane, and allowed 0.(0)5+0.(0)5 = a 1 at the point (2, -1). Unfortunately, there’s no clear way to write this in Kaufman notation.

      So, after this meandering, I think that with first order Kaufman numbers, we can get well ordering, but not addition. However, we we expand our model out a bit more, we can have both. But we’d lose tobyord’s idea of having the infinite digits of pi in there.

      If you expand out the dimension of your model, I think you can keep well ordering even as you add it more bars. You could even describe what dimension your model is depending on what one equals.

      If 0.(9) = 1, then you’re using the line.
      If 0.((9)) = 1, then you’re using the 2-D grid.
      If 0.(((9))) = 1, then you’re using the 3-D grid, and so on.

      I’m not sure how to handle the infinite bars over a 9, especially if it’s followed by anything else. That would suggest an infinite-dimensional model. Maybe it’s possible to set that infinite dimensional model on a point and begin again.

      Great blog–really fun to think about this stuff.

      I wonder if you can translate Kaufman numbers into other bases.

  14. I like your stuff! I’m studying engineering, so I don’t get much of the fancy-pants math anymore. If someone mentions something nifty like this (or something from the comments, cool stuff!) I get told that it’s equal to 1.
    Side note, if you’re in California, where did you find a JP Licks?! 🙂

  15. Forget about well-ordered. I’m not convinced these are even well-defined. (Not that this detracts from the whimsy.)

    1. I mean, if we’re talking about standard ideas of series and convergence, yes. But as a pure mathematical symbol, it’s perfectly logical. Math would be no fun if it ALL had to be realistic. 🙂

  16. Several other people have said things much like this already, but here’s another way of thinking about what you’re doing:

    Stop worrying about whether these sequences “represent” “actual” “numbers”. Instead of thinking about the real numbers (actually let’s restrict ourselves to the real numbers between 0 and 1, inclusive), we’re talking about sequences of digits. (In the real numbers, there are some pairs of sequences of digits that give the same real number, but part of the point of this exercise is that we don’t want to think about the standard 0.999999… = 1 or else we’re just stuck saying that none of these things makes sense.) Another way to say “sequences of digits” is to say “functions from the natural numbers to the set {0, 1, …, 9}.” Now replace “the natural numbers” with “the ordinal numbers” and you get something very close (but in fact substantially more general) than what you’re talking about. The fact that the ordinals are well-ordered immediately implies that the set of functions like this are totally ordered, with the order relation “find the first place where they differ; the one with the larger assignment is larger.” (The phrase “first place where they differ” makes sense because of the well-ordering of ordinals.) For example, your 0.9999…1 assigns to the ordinals 1, 2, … the value 9 and assigns to the ordinal omega the value 1 (and assigns to all other ordinals the value 0). Your 0.(9)(9) assigns the value 9 to all of the ordinals 1, 2, 3, …, omega, omega + 1, omega + 2, ….

    I’m not entirely sure I believe V.P. that this is all in the Surreal Numbers, but it’s certainly possible (they’re extremely huge and wild).

  17. Numbers like (9)2 and (9)2(9) remind me of putting the nonnegative integers in alphabetical order.

    You start with Eight. Then Eight Billion. Then Eight Billion Eight. Etc. The “Eight-stuff” goes on forever.

    Then you get to Five. Then Five Billion. And this goes on forever.

    Then you get to Four. Etc.

    You have quite a few forevers. And it all ends with Zero.

    (A small problem arises in that we don’t have English names for all the numbers … but it is fun to consider for a while.)

    1. I like that a lot!

      If we’re looking for English names for all numbers, we could just define a system where we start stacking names, something like this: … trillion, quadrillion, quintillion, … , decillion, thousand decillion, million decillion, billion decillion, … , decillion decillion, thousand decillion decillion, …

  18. Kaufman Decimals are well-ordered and I have Python code to sort them. I just need to polish it a bit because I am mainly biostatistician and my the current version would make Google programmer to wanna vomit. Thank you guys to take me back to good old high-school years.

    This is the ordering of KDs from https://github.com/jeffkaufman/decimals/blob/master/decimal.py:

    (0)1
    1
    (1)(2)(3)(4)
    (1)(3)(3)(4)
    2
    2(0)
    2(0)0
    2(0)(0)1
    2(0)1
    (2)(2)(3)(4)
    (2)3
    ((2)3) # I believe that one is lower to (2)(3) and should go here
    (2)(3)
    54
    55
    ((551)57)4 # now in correct position
    552
    5589
    56
    8
    (81) # now in correct position
    89
    9
    (9)
    ((9)1)2
    (((9)1)((27)))8
    (((9)1)2)7
    (((9)1)2)73(((8(46)))5)
    (9)3
    (9)4
    (9)4(8)1
    (9)5
    (9)(9)
    ((9))1

      1. Awesome, thanks. I’ve fallen way behind on comments on this thread, seeing as it’s mostly a discussion among people way more knowledgable than me, but I’m planning on catching up in the next few days!

  19. This is more about heperreal numbers of Abraham Robinsom than about surreal numbers of John Conway. However, what makes a number number is that it is included into a set of similarly defined items along with some operations on this set. Without an operation (or two) these are just symbols, strings if you will. For the underlying issues, please see http://www.cut-the-knot.org/WhatIs/Infinity/9999.shtml and the references therein.

  20. This idea is fun, Since it seems .(9) + .(0)1 = .(9)1, I was trying to come up with what 1 – .(9) should be. The idea I have is to extend this idea a little more, .(0), then go back one place and put a 1 there. If you can go forward an infinite (I’m assuming countable infinity here), and then go back some finite number of digits, this can also solve the problem of thing like .(0)6 + .(0)6. This does seem to make it less obvious whether or not the resulting number system really possesses a total ordering anymore. This also looks like it would result in numbers in this system having many representations, more so than the situation with a countable number of the reals having 2 representation.

  21. Here is a paradox that I think might help illustrate why you don’t want to have Kaufman decimals. Do we want to say that the following inequality is true?

    0.(9)5 + 0.(0)4 > 0.(9)5 – 0.(0)4

    Given that all (9)’s and all (0)’s have the same cardinality (aleph-zero), we are just doing arithmetic with the 5’s and 4’s and the end, so this inequality should be effectively the same as (5 + 4) > (5 – 4). So let’s accept that the inequality is true. Now we add the numbers on the left side.

    0.(9)5 + 0.(0)4 = 0.(9)9

    That is, an infinite sequence of nines with an extra nine at the end. But how is that different from a plain infinite sequence of nines? You can always accommodate an extra nine into (9), for the same reason that Hilbert’s Hotel can always accommodate an extra guest. So, we have to say that:

    0.(9)9 = 0.(9)

    Now we do the substraction on the right side.

    0.(9)5 – 0.(0)4 = 0.(9)1

    And given that

    0.(9)1 > 0.(9)

    we can expand and we get that

    0.(9)5 + 0.(0)4 < 0.(9)5 – 0.0(4)

    So, Kaufman decimals allow us to pick a positive number, add another positive number to it, and end up with a positive number smaller than the one we started with. Sort of like saying that 5 + 4 = 0.

    Either Kaufman's decimals are silly, or they are more sophisticated than I can understand.

    1. Well I think the point is that .(9)9 > .(9). It looks like what is going on is instead of assigning a digit to each natural number as we do for decimals representing real numbers, we are now assigning a digit with each ordinal number. If you are unfamiliar with the ordinal numbers, it turns out that they are too numerous to be contained in a set and instead form a proper class. They can be formed by continuing the idea of the set theoretic construction of the natural numbers. We start by identifying the empty set with 0 = ∅, and then define a successor function S(x) = x ∪ {x}, so 1 = {0}, 2 = {0,1}, 3 = {0,1,2}, etc. This is the successor function used in the axiom of infinity http://en.wikipedia.org/wiki/Axiom_of_infinity. This idea can then be continued by saying ω is represented by the set of natural numbers, we can then apply the successor function to ω, so S(ω) = ω+1, and we can then form ω+2, ω+3, … , ω*2. We can then continue applying the successor function to get ω*2 + 1, ω*2 + 2, ω*2 + 3, … , ω*3, …, ω*4, … , ω^2, …, ω^2*2, … , ω^3 , … , ω^4 , … , ω^ω , …. , ω^ω , … , (ω^ω)^ω = ω^(ω*2) , … , ω^(ω*3) , …, ω^ω^ω , … , ω^ω^ω^…
      These all are examples of countable ordinals, but we can then form the set of all countable ordinals which represents the first uncountable ordinal and continue this process even further. Since whenever we form a set of all the ordinals we have constructed so far, we can then take the successor of that to get the next ordinal, this means that no set can contain all of the ordinals and so the ordinals form a proper class. If my explanation is confusing, http://en.wikipedia.org/wiki/Ordinal_number might help, the concept is also explained in Naive Set Theory by Paul Halmos

      1. I just realized there is a mistake in the sequence of omegas, the middle part should be … , ω^ω , …. , (ω^ω)^2 = ω^(ω*2) , … , ω^(ω*3) , … , ω^ω^2 , …, ω^ω^ω , …

  22. Haha I used the 0.000000…00001 on a calc test this year to prove a limit, because I had forgotten the actual way to do it. I got the question right though, so it’s all good.

  23. For me to conceive of these, I am thinking of them in multiple dimensions. I cannot have 0.(9)1 in the same dimension, as the 9 digits go off infinitely, so there would be no place for the 1. What I am calling Kaufmann decimals of the first kind then have a structure somewhat like a complex number. They are an ordered pair (a,b) = 0.(a)b (at least for Kaufmann decimals “between” 0 and 1). I doubt we can say anything about their ordering unless we have operations. m 0. So, we should at least define addition with inverses before we talk about order. The addition which makes the most sense to me is to keep the dimensions separate, as we currently have no relation which allows transcending the barrier between dimensions (that seems implicit in the discussion). Kaufmann decimals of higher kinds would be built as nested tuples of Kaufmann decimals of the first kind.

    1. Hmm, apparently I don’t know how to use less than / greater than. That m 0. sentence should read m less than n implies n minus m greater than 0.

  24. How about an irrational sequence within a decimal fraction, like this:
    0.9irr4
    This means that there is a 9 in the tenths’ place, then an irrational — in the sense of infinite and non-repeating — series of digits, after which there is a four.

  25. As some others have pointed out, the Kaufmann decimals are well-ordered. I’m providing a proof

    The key insight is that we can index the decimal places of a Kaufmann decimal by the ordinal numbers. The ‘normal’ decimal places are indexed by

    0, 1, 2, …, n, …

    The first place after an infinite repetition is indexed by omega (w). Thus the ‘1’ in 0.(9)1 is at the w-th place in the decimal, and the 2 in 0.(9)12 is at the w+1-st place. Anything unspecified is assumed to be zeros ad nauseum.

    The standard arithmetic of the ordinals works as it should. Sequential, non-overlapping series of infinite repetition are addition of ordinals. The 1 in 0.(9)(8)1 is at the 2w-th place.

    Overlapping series of infinite repetition are multiplication of ordinals. The 1 in 0.((9))1 is at the w^2-th place in the decimal.

    Inifinite series of overlapping series of repetitions are exponents of ordinals. The 1 in 0.{9}1 is at the w^w-th place in the decimal.

    Then we can define our comparator: Two Kaufmann decimals k and n are equal if and only if they have equal digits at every ordinal-numbered place. If they differ at a place at ordinal u, the one with a higher digit at place u is greater.

    This is a transitive ordering. Suppose n>m and m>k. Then n differs from m at ordinal u and m differs from k at ordinal v. I will use the notation k[a] to denote the digit of k at the place of ordinal a. Then if u m[a] >= k[a] for all a<=u= m[b] > k[b] for all b<=vk.

    Although there are uncountably many ordinals, such that we could be concerned about our ability to ‘walk through’ the ordinal-indexed digits to compare any two numbers, the well-ordering of the ordinals gives us our well-ordering for the Kaufmann decimals. If someone who has worked with ordinals more recently wishes to, I’m sure there is a more formal and elegant way of putting my ‘intuitive’ proof that the decimal places of the Kaufmann decimals can be indexed by the ordinals.

    The ordering I describe therefore provides a well-ordering, assuming we are willing to accept a couple of unintuitive equalities, such as 0.((9)9)1 = 0.((9))1 and similar forms for higher orders. I believe that some thought will show these to be reasonable, if unintuitive at first. Continued unintuitive examples:
    0.{9}1 > 0.((9))8
    0.((9)) > 0.(9)(9) > 0.(9)
    0.(57) = 0.57(57) < 0.(57)57 < 0.(57(57)) = 0.((57)) = 0.((57)57) < 0.((57))57

    1. As I’ve thought about this more and read other comments (I had previously only checked for whether another proof existed) I’ve realized two things.

      1) This is not a well-ordering, this is a total ordering, and most of this discussion has been about total orderings. These will be hard to well-order, as they have the reals as a subset, and the reals are hard to well-order (although the well-ordering theorem says they are well-orderable). I have yet to prove to myself that the Kaufmann decimals properly form a set, although I think that they do, so I can’t yet apply the well-ordering theorem to them.

      2) Everything in my post applies equally when the decimal portions of irrational numbers are allowed in place of the first order of repetition, as in 0.98 1415926535…2, that is 0.98 followed by all of the digits of pi after the decimal point, followed by a 2. I don’t know what it would mean for there to be irrational repetition at higher levels though, so I don’t know whether allowing irrationals is more interesting in any meaningful way.

  26. I see this whole notion starts with “After we filled a napkin with the proof that 0.999… = 1, ”

    Y’know, you’ve done other explainers here about how sometimes the standard rules of math undergo a “bait and switch” at certain edge cases.

    https://mathwithbaddrawings.com/2015/09/09/the-exponential-bait-and-switch/

    It seems to me that at least one of the standard “proofs” of the ” 0.9[9] = 1 ” identity use an interesting violation of the ordinary rule of multiplication by ten. Do you take 0.9[9] and multiply by ten, and get 9.9[9] ? But, in nearly every other case, don’t we shift the decimal point AND APPEND A TERMINATING DIGIT OF ZERO? Isn’t that the rule? We multiply 2 by ten and get twenty. We multiply nine hundred ninety nine by ten and get nine thousand, nine hundred ninety (and no more). But now you want to multiply a “repeating” decimal “A” — could be any irrational or transcendental number) by ten (or five or any ordinary number “B” with familiar rules about how the resulting product will look) and arrive –at the end — with one or more digits that continues the pattern or rule of “A” but completely neglects the natural rules of multiplication by “B”.

    How is 0.9[9] x 10 = 9.9[9]9 more valid, by rule A, than 9.9[9]0 by a rule B of multiplying by ten?

    If we do impose a meta-rule that says that in operations among numbers chosen from two domains, (real and natural, say) that the rules of the smaller domain apply, don’t we get Kaufman decimals falling out the other end? (Naturally, so to speak?)

    1. That’s a very good question!

      When I think of the standard proof that 0.999… = 1, I’m privately thinking of 0.999… as the sum from k = 1 to infinity of 9 x 10^(-k). So I’m not applying a rule for decimal multiplication, so much as a rule for working with a sum as the number of terms goes to infinity.

      But you might be onto an interesting way to articulate it without reference to that kind of heavy machinery.

  27. Try thinking about it this way:

    /Infinity/ is not a number; it’s not a quantity; it’s a concept of method.

    What it means is that one can carry-out an identified process as long as he wants.
    Without limit.
    (It will output decimals, in our context of Kaufman Decimals)

    But what decimals exist at /any/ one time is a finite string.

    In this understanding, the whole concept of Kaufman Decimals falls.

    To me, this shows that although playing with mathy things can be endless ( 😉 ) fun, withough a solid conceptual base, the playing will lead to contradictions and consternation.

Leave a Reply to Ben OrlinCancel reply