Actualy 1 and 0.999…. are not equal and there is no proof, contrary to the assumed proof.
The reason is because one hasn't yet defined 0.999…
By writting 0.999… as is, one is saying it goes on infinitely.
If it's going on infinitely, one has not yet established what that number actually is;
If one doesn't know yet what the number IS, one cannot make a true comparison, whether it is equal or not.
I know I'm being a bit pedantic, but to say both are equal is simply not true and can lead to wrong assumptions about results one gets when writing equations.
1 divided by 3 gives a number that goes on infinitely, one will never get a true finite number from that operation.
It's good to know that there are many instances in which you don't get finite numbers, and in those cases knowing how your software/hardware will handle those situations eg. number of decimal place precision for floating point numbers before they become rounded, or if desired truncated - This, I think is a much more helpful way to look/understand the situation.