There isn’t a proof because it’s actually kind of arbitrary that 0.999... = 1. Fundamentally, this is true because we chose it to be true.
Now, there are good reasons we chose it to be true, and that’s what people usually use as proofs. If it’s not true then a bunch of mathematical expressions become more inconvenient. But there is no reason as such why 0.999... could not have been defined as something that was always < 1.
Fundamentally, 0.999... has no intrinsic meaning, and it’s value depends on the meaning we decide to give this representation.