Ok... So i'm just gonna lay this out here. Aside from my issue with the 1/3 = .3(bar) proof, which is flawed because it assumes .3(bar) accurately represents 1/3, the other most common proof is the limits:

take the standard representation of .9(bar) to be the sum of an infinite geometric series, (sigma i=0 to infinity) 9/(10^i). Thus, we have a series of terms 9/10 +9/100 + 9/1000 + 9/10000 .... +9/(10^n)

Easily rewritten as .9 + .09 + .009 + .009 + ... + 9 x 10^(-n)

Given this proof, we take the limit as n approaches infinity to be 1. Here's the kicker. It's the LIMIT as n APPROACHES infinity. Two key points here, from any collegiate calculus textbook:

#1. by the definition of the limit, 1 is the value that it approaches, but does not ever technically reach. concept of an asymptote anyone?

#2. we APPROACH infinity. We never get there. We thusly assume we will always deal with approximations any time we attempt to get a numerical solution. .9(bar) is a numerical solution for the sum of the infinite series 9/(10^n), but it is NOT an appropriate analytic solution.

Now, for all intents and purposes, we can use .9(bar) as one. You need a higher level of pure math than I have taken as a numerical analysis major (math track for computer geeks) to even get into realms where .9(bar) does not equal 1 for all reasonable uses. However, I can tell you if you try that **** with floating point arithmetic, you WILL NOT get one. 3 x .3(bar) does not = 1 in double precision floating point arithmetic, it returns .999999999999999999999..i'm leaving off some, but whatever the precision is of your floating point, it doesn't return one.